Role based Software Process Modelling

Similar documents
Chapter 2 Overview of the Design Methodology

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Digital Archives: Extending the 5S model through NESTOR

HYBRID PETRI NET MODEL BASED DECISION SUPPORT SYSTEM. Janetta Culita, Simona Caramihai, Calin Munteanu

Cover Page. The handle holds various files of this Leiden University dissertation

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

A Case Study for HRT-UML

Business Process Modelling

ASL: Hierarchy, Composition, Heterogeneity, and Multi-Granularity in Concurrent Object-Oriented Programming. Abstract

Fundamentals of Programming Languages. PL quality factors Lecture 01 sl. dr. ing. Ciprian-Bogdan Chirila

Extension and integration of i* models with ontologies

Driving Vision Systems by Communication

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

Design Patterns for Description-Driven Systems

Graph Representation of Declarative Languages as a Variant of Future Formal Specification Language

Supporting Documentation and Evolution of Crosscutting Concerns in Business Processes

Ch 1: The Architecture Business Cycle

Fausto Giunchiglia and Mattia Fumagalli

The Analysis and Design of the Object-oriented System Li Xin 1, a

The New C Standard (Excerpted material)

JOURNAL OF OBJECT TECHNOLOGY

Model Driven Development of Context Aware Software Systems

INCREMENTAL SOFTWARE CONSTRUCTION WITH REFINEMENT DIAGRAMS

Meta Architecting: Towered a New Generation of Architecture Description Languages

An XML-based DEVS Modeling Tool to Enhance Simulation Interoperability

Lecture Notes on Liveness Analysis

To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED.

Guiding System Modelers in Multi View Environments: A Domain Engineering Approach

AND-OR GRAPHS APPLIED TO RUE RESOLUTION

Design and Evolution of an Agent-Based CASE System for OOAD

Object Oriented Finite Element Modeling

QUALITY METRICS IMPLEMENTATION IN COMPONENT BASED SOFTWARE ENGINEERING USING AI BACK PROPAGATION ALGORITHM SOFTWARE COMPONENT

Introduction to Formal Methods

Web Services Annotation and Reasoning

Ontology Creation and Development Model

What is Software Architecture

A MAS Based ETL Approach for Complex Data

Comparative Analysis of Architectural Views Based on UML

Model-Solver Integration in Decision Support Systems: A Web Services Approach

Design Pattern: Composite

What are the characteristics of Object Oriented programming language?

HyperFrame - A Framework for Hypermedia Authoring

A taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA

Towards a formal model of object-oriented hyperslices

A Design Method for Composition and Reuse Oriented Weaponry Model Architecture Meng Zhang1, a, Hong Wang1, Yiping Yao1, 2

On the correctness of template metaprograms

Inheritance (Chapter 7)

Petri-net-based Workflow Management Software

Q Body of techniques supported by. R precise mathematics. R powerful analysis tools. Q Rigorous, effective mechanisms for system.

A Teaching Environment to Model and Simulate Computer Processors

Request for Comments: 1787 T.J. Watson Research Center, IBM Corp. Category: Informational April 1995

Modeling Systems Using Design Patterns

Idioms for Building Software Frameworks in AspectJ

Rapid Prototyping with APICES

Inheritance Conflicts in Object-Oriented Systems

Evolution of XML Applications

Models versus Ontologies - What's the Difference and where does it Matter?

Building Knowledge Models Using KSM

Metaprogrammable Toolkit for Model-Integrated Computing

On the Definition of Sequential Consistency

An Evaluation of Geo-Ontology Representation Languages for Supporting Web Retrieval of Geographical Information

A Meta-Model for Composition Techniques in Object-Oriented Software Development

Adaptive Hypermedia Systems Analysis Approach by Means of the GAF Framework

INFORMATION DYNAMICS: AN INFORMATION-CENTRIC APPROACH TO SYSTEM DESIGN

The design of a programming language for provably correct programs: success and failure

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Development of an Ontology-Based Portal for Digital Archive Services

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach

Expression des Besoins et Identification des Objectifs de Sécurité

Replacing SEP-Triplets in SNOMED CT using Tractable Description Logic Operators

Java Learning Object Ontology

is easing the creation of new ontologies by promoting the reuse of existing ones and automating, as much as possible, the entire ontology

Access Control for Shared Resources

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

arxiv: v1 [cs.pl] 1 May 2017

DEPARTMENT OF COMPUTER SCIENCE

Process Modeling. Bill Curtis, Marc I. Kellner and Jim Over. Communications of the ACM Chanhee Yi

Unifying Software Reuse

Semantic Web Mining and its application in Human Resource Management

The Disciplined Use of Simplifying Assumptions

Inference in Hierarchical Multidimensional Space

1 Executive Overview The Benefits and Objectives of BPDM

Process modelling analysis: comparison between activity-oriented models, productoriented models and decision-oriented models

Design Patterns Design patterns advantages:

Towards a Logical Reconstruction of Relational Database Theory

Modeling variability with UML

Software Architectures

CS 565: Programming Languages. Spring 2008 Tu, Th: 16:30-17:45 Room LWSN 1106

A Lightweight Language for Software Product Lines Architecture Description

Maximizing the Value of STM Content through Semantic Enrichment. Frank Stumpf December 1, 2009

WEB APPLICATIONS: OUR IDEA FOR A DEVELOPMENT FRAMEWORK

Inducing Parameters of a Decision Tree for Expert System Shell McESE by Genetic Algorithm

Using Data-Extraction Ontologies to Foster Automating Semantic Annotation

40 Behaviour Compatibility

FUZZY BOOLEAN ALGEBRAS AND LUKASIEWICZ LOGIC. Angel Garrido

An Agent Modeling Language Implementing Protocols through Capabilities

Specification of Behavioural Requirements within Compositional Multi-Agent System Design

A Comparison of Modelling Frameworks. Norwegian Institute of Technology, Trondheim, Norway. The close relationship between the elds is indicated by a

Test Cases Generation from UML Activity Diagrams

Transcription:

Role based Software Process Modelling Fadila Atil, Djamel Meslati, Nora Bounour & Said Ghoul * LRI Laboratory, University of Badji Mokhtar, BP 12, Annaba, Ageria * Institute of Computer science, university of Philadelphia, Jordan atil_fadila@yahoo.fr meslati_djamel@yahoo.com nora_bounour@yahoo.com sghoul@philadelphia.edu.jo Abstract : Modelling software processes is a difficult and expensive task. It's confirmed by diversity of software processes modelling approaches which are however, not satisfactory. This paper presents roles and coordination as valuable abstractions for specifying and modelling methodological aspects of this processes, by formally defining the policy that lead the process, such as rules which determine activities and their organization and the component mechanisms, such as tools that realize activities and operate on objects according to policy. The purpose of role modelling is to achieve separation of concerns, allowing the designer to consider different aspects, or the same aspect at different levels of detail. The originality of our approach is to consider a process as a coordination of an agent system. This have include profits; among which, the modular distribution of methodologies upon implicated system agents, the construction and the realization of component methodologies, and the association of version of behaviours to the same agent. Key words: Activity, agent, coordination, methodology, role modelling and software process. Introduction In the real word, we discern the presence of processes with diverse nature (biological processes, chemical processes, software processes etc). We note that every process is a well-ordered series of facts or phenomena answering to a certain scheme and leading to the determination of result. In fact, this represents the resolution of problem that the process confronts. As part of software engineering, a large community defines a software process as a partially ordered set of activities accomplished during development or evolution of software [6]. This definition implies that each set of software life cycle activities (and not necessarily every activities) forms a software process. For against, number of searchers defines a software process as the total set of software engineering activities. This definition is a particular case of the first because it is interested with a particular software process (covering all the set of life cycle activities). Modelling, evaluation, improvement, formalizing description and progress of a software process have made the object of several research projects. Problem of this domain is that it calls at many technologies (knowledge representation, data bases, artificial intelligence, simulation ) and methodologies (sequential, cascade, expert system, prototyping ) of which the majority has not reach the stage of maturity and stability. This makes the software production a process with difficult approach to understand and with concepts difficult to unify. It also confirms the diversity of processes modelling approaches which are however not satisfactory [2, 5]. Rueher define the software process as a sequence of operations required for building up various information objects (specifications, prototype documentation, test cases, code ) that compose a software product [11]. The software process can be split into sub-processes, but it is often very hard to find a good decomposition and to describe the complex way in which they must communicate. Processes are dynamic, hard to comprehend, and to reason about. A software process model (SPM) is a descriptive representation of the software process structure, used as a reasoning support, allowing its understanding and its progress. 199

Analysis of any process get appear two levels: structural level which represent objects on which process's activities perform, and methodological level describing the policies which lead the process and its component methods. SPM = ({Methodologies: Policies, Mechanisms}, {Structures}) In this paper, we propose modelling software processes by a simple and natural way, using object approach. The problem that we have confronted is due to the fact that this approach doesn t allow the modelling of all dynamics and constant change of reality. To solve this problem, we attempt to use the role and coordination concepts to express how the object changes and to allow the definition of one or more methodologies controlling the behaviour of the software process. This approach presents many conceptual advantages with regard to actual works in the domain. In fact, a software process is regarded as an agent system, which cooperates for realizing the same objective. This vision is natural and present contribution concerning construction and reuse of software process s methodologies. In this approach, it's even possible to associate versions of roles to the same agent. We present, in section 2, insufficiencies of object approach to express methodological aspects of software processes, as well as the proposed solutions. In section 3, we detail foundations of our modelling approach. Finally, a comparison between our work and related works is taken out in section 4 and we terminate with a conclusion. 1. Insufficiencies of Object Oriented Approach and proposed solutions The object oriented modelling present many advantages; nevertheless, many deficiencies could be taken up [9]. To demonstrate the need of new concepts, we present a simple example of a software process, and we show afterwards limits of actual models. 1.1. Example of a Software Process Let a simple software process, which takes place in a little programming environment that includes an editor, a compiler and a tester. This process consists to edit a file, then to compile it (as soon as the programmer finishes edition). If compilation doesn t fail, the object program will be tested using data test. This minimal programming environment presents a simple model Edit-Compile-Test (figure 1). Edit Compile Test Figure 1. A minimal Programming Environment. A software process model, ProgramingEnvironment, which models this process, must support three steps as indicated in figure 2. ReadyToCompile Editor Edit FailTest EndEdit FailCompiler Test Compiler Edit SucessCompiler TestWithData Figure 2. Steps of Programming Environment. In ProgramingEnvironment, the mechanisms are defined by the set of implicated activities and are unchangeable. Run 200

Mechanisms = {ReadyToCompile, Editor, EndEdit, Compiler, FailCompiler, SuccesCompiler, Run, TestWithData, FailTest} The policies are defined by dependencies between process's activities. These policies and their control are taken under one s responsibility of the user, who must pass on the product from one step to other step. This often engenders diverse mistakes and exceeding delay. 1.2. Limitations in Modeling Methodological Aspects To model a software process according to the object approach, the principle is based one s argument on invocation of methods by sending messages to objects of a class hierarchy. The series of these methods must allow the correct and not ambiguous resolution of the given problem [3, 5]. Such series of methods qualified with sensible and explicit, define a coordination of these methods [5, 7]. If in object oriented programming languages, the semantic analysis allows verification of method invocation s validity by an object, nothing allows the verification of methods coordination s validity of the same object or of different objects. Nothing allows then to consider an object as a process, and consequently, to verify its correct exploitation (according to this process). This is due to the total absence of an explicit formulation of coordination in actual object oriented formalism, which is a serious handicap for software processes modeling. We attempt to remedy to that by the integration of methodologies in the definition of objects. We note that actually there are needs in this way as part of formal specifications. 2. Coordination Paradigm We use a coordination model permitting expression of software processes methodologies. We consider a software process as a set of agents that cooperate for realizing the same objective. This approach is based on the set of the following concepts [2, 3, 5]: 1. Activity: An activity corresponds to a simple or compound action, which is executed by a human being or a machine. 2. Agent: An agent is an active, a reactive or a cognitive entity responsible of the execution of a set of activities, defining its behaviours. 3. Dependency: A dependency defines a relation between two or some activities. We say that an activity A1 depend on the activity A2 if the working of A1 require this of A2. Some dependencies come under intrinsic semantic of activities. They exist independently of any context (global objective to reach). For example, any "Consumer" activity depends on a "Producer" activity: It must ever check that the "Producer" activity is accomplished before its results are required by "Consumer" activity. Some other dependencies between activities come under a global objective to reach. These dependencies must be dynamically introduced (or separated) to satisfy this goal. A same objective can be reach with different manners, according to the applicable methodology. The set of dependencies between activities is open, in view of the infinity of contexts were they evolve and the changeable goals to reach. In our study, we are interested with two types of dependencies, namely, functional dependencies and organizational dependencies. Functional dependencies: These types of dependencies regroup all data flux and control flux dependencies, well known in procedural languages. They must be verified every time and are explicitly defined by the relation Function that has a changeable semantic (Figure 3). Ctr IA Figure 3. Functional Dependency. TA The Function dependency expresses that a set of target activities TA depends on an optional set of initial activities IA under the optional constraint Ctr. When all activities of IA are executed, activities of TA could be executed under the constraint Ctr. Formally, this dependency is defined with: [IA] [Ctr] TA, were Ctr is defined with <condition; value; sense>. The Condition attribute defines conditions that must be satisfying in order that dependency being valid. Value attribute defines the data flux required by this dependency. Finally, Sense attribute defines the 201

semantic of dependency, which can be repetition ( ), implication ( ), exclusion ( ), equivalence ( ), instantiation ( ), etc. For example, the instantiation dependency {Edit} < ; ; > E consists of generating an agent E from the class Edit. The dependency < ; ; > {NormalEdit, PascalSyntax, PrologSyntax} express exclusivity between tree type of editors: A normal editor, and two syntactic editors, one for Pascal and one for Prolog. Organizational dependencies: These dependencies allow an organization of activities during time (with Synchronous and Alternation dependencies) as well as their hierarchical organization (with Aggregation dependency). We note that organizational dependencies allow the modelling of behaviours of agent's software processes. Synchronous: This dependency allows ordering activities in time. It s expressed with: Syn a1, a2,..., an Endsyn. For example, the dependency Syn init, ReadyToCompile Endsyn expresses that the activity ReadyToCompile can t be executed only after the activity Init. Activities none implicated in a Syn dependency may be executed in any order. Alternation: It s a dependency, which allows establishing a nil order between a set of activities. These activities are then alternated, and could constitute a varying activity. By nil order, we imply that only one of concerned activities can be executed. This activity will be determined dynamically according to explicit or deduced contextual knowledge. It s defined with: Alt a1, a2,..., an Endalt. Only one activity ai (i=1,n) must be executed and all the others will be ignored. For example, Alt Edit1, Edit2 Endalt expresses that only one activity between the two exclusive activities can be executed at a fixed time. Aggregation: It allows constructing a complex activity with hierarchical composition (designed by an identifier) of different agent s activities. If the composition is designed with an identifier, this last will indicate the resulting activity. Such dependency will be expressed with: {IA1,IA2,...,IAn} < ; ;U> TA, were TA is the identifier of the resulting activity. None designed composition don't construct a complex activity. 3. Role Modelling We consider real word concepts to consist of several mutually cooperating and interacting entities, not standalone entities existing independently of other entities in the same domain of interest. The design approach presented here is related to the ideas of considering objects as playing different roles in different contexts [1, 4, 10]. Agent of a software process cooperates with each other to accomplish a global goal. So, they are related to each other in different way: Serving, using, and communicating with each other. From the way in which they treat one another, agents have different perspectives of each other. These perspectives define the role that an agent may play towards another. A role is formed as a set of behaviours of the agent. Different roles exist for different purpose, and the roles played by an agent may change over time. The role is a powerful modelling concept. It gives restricted, possibly complementary perspectives on a complex and compound agent and allow dynamicity of such perspectives. An agent has several roles that have been chosen in order to accomplish the objective of the modelling. The roles may change and they may exist simultaneously. The concept of role is intuitive and important to achieve a simple and natural modelling of process activities, and to aid comprehension. The mission of role modelling is to reduce complexity when doing "large-scale" design; i.e. complexity due to the size of the design task. This is done by supporting separation of concerns and reusable design [1]. In our approach, agent s activities can exist in many versions and can be organized during time in many different manners. Each acceptable organization of activities defines agent behaviour (a methodology of its working). In this way, behaviour presents the associated agent as a states machine [8] or simply as a process. The agent s behaviour according to a determined objective defines its role and the role is then a sensible series of activities. In order to illustrate the use of this concept for modelling software processes, we retain the same example of the figure 1. Behaviours present in the software process Edit are defined by the set of activities {Init, Editor, ReadyToCompile, EndEdit}. Edit correspond then to an agent that can be obtained by generating an instance from a class Edit. We can assign to this agent two distinct roles, schematically defined by the figure 4, allowing going buck or no to the edition step from the compilation step. 202

NormalEdit1 Editor.1 Init.1 ReadyToCompile EndEdit NormalEdit2 Editor.1 Init.1 ReadyToCompile EndEdit Figure 4. Two roles NormalEdit1 and NormalEdit2 of Edit agent. 4. Agent Modelling A software process corresponds in our approach to an agent that can be simple or complex, i.e., compound of a set of agents which cooperate in order to achieve the same objective. The modelling of such agent is essentially based on the definition of the set of composing agents, of dependencies between its activities and of roles that it offers (Figure 5). Agent <Agent Name>; Interface <Interface description: Identification of roles> Agents <Definition of the set of composing agents> Functional Dependencies <Definition of functional dependencies> Organizational Dependencies <Definition of the set of roles> End <Agent Name> Figure 5. Definition of a formal agent. A formal agent define a generic software processes model, offering some alternatives, from which, we can generate specifics software processes (Real agents). The generation is done according to an appropriate behavior, and allows then the solving of a particular problem. Owing to such model, we can define a formal agent that can be independent of any problem (Figure 6), and from which, we can generate a real agent as an instance that can take part in development of specific software processes. Agent Edit; Interface NormalEdit1, NormalEdit2; Agents {File, Boolean} < ; ; > {F, EndEdit} Functional Dependencies < ; ; > {NormalEdit, PascalSyntax, PrologSyntax}... Organizational Dependencies NormalEdit1 =...; // Description of the first role NormalEdit2 =...; // Description of the second role End Edit Figure 6. Specification of the formal agent Edit. 203

For example, we can generate from this formal agent Edit two software processes, Editor1 and Editor2 respectively according to the roles NormalEdit1 and NormalEdit2. (Figure 4) Therefore, according to need, we can define or modify different methodologies (behaviors). The instance's methodology, generated from an agent, imposes to this last a controlled behavior that can be automated. This vision offers a considerable benefit for software processes modeling. We note that benefit of our approach is in the construction of methodologies of software processes that is done with a modular manner by reusing composing agent's methodologies. 5. Related Work In the IA approach, the rule concerns an activity and its interface with others, which make the dependencies between activities implicit and informal. Against, in our approach, a rule of dependency relates two sets of activities according to a coordination constraint, that make the methodology more explicit, more formal and especially well structured (set, behaviour, agent). This approach has the possibility of formal verification of methodologies and reasoning which it s the support. In the IA approach, the inference s motor constructs the different possible alternatives when with the model proposed, the alternatives to consider may be imposed by an explicit selection mechanism (description of behaviour). In this context, IA approach is purely analogue to an inference s motor with fixed strategy, when in our approach; it can correspond to a motor with a programmable strategy (behaviour of agent). 6. Conclusion In this paper, we have presented a modelling approach of software processes based on integration of object oriented paradigm and coordination paradigm. The notion of coordination concept has allowed expressing the methodological aspect, by formally defining the policy that lead it (rules determining the activities and their organization,), and composing mechanisms (tools realizing activities and operating according to this policy). We have proved that the construction of complex methodologies can be done with modular manner by reusing the composing methodologies. References [1] Andersen E.P., Reenskaug T., System Design by Composing Structures of interacting Objects, In Ole Lehrmann Madsen editor, Proceedings of the 6th European Conference on Object-Oriented Programming. [2] Atil F., Ghoul S., Meslati D., Bounour N., Modeling Software process using roles, 17th International Conference on software & systems engineering and their applications (ICSSEA) Paris, 2004. [3] Atil F., Ghoul S., Object based software process modeling, 1st UK Colloquium on object Technology & System Re-engineering (COTSR), Demontfort University, Leicester, 1998. [4] Blondo L., Designing and Programming with Personality, Master's thesis, University of Northeastern, 1998. [5] Ghoul S., Methodological and structural aspects in software processes models, PhD dissertation, University of Annaba, 1995. [6] Kellner M.I., Hansen G.A., Software Process Modeling: A case study, Proc. of 22nd Annual Hawaii Int. Conf. On System. Sciences, PP.175-188, 1989. [7] Malone T.W., Rowston K., The interdisciplinary study of coordination, ACM Computer Surveys, Vol. 26, No. 1, PP. 87-120, 1994. [8] McGregor J.D., Dyer D.M., Inheritance and state machines, ACM/SIGSOFT, PP. 61-69, 18 April 93. [9] Meslati D., Ghoul S., Semantic classification: A genetic approach to classification in object-oriented models, Journal of Object-Oriented Programming, January 1997. [10] Pernici B., Object with Roles, Proc. of conference on office Information Systems (COIS), Cambridge, Massachusetts, 1990. [11] Rueher M., Michel C., Using objects evolution for software processes representation, Proc. of 22nd Annual Hawaii Int. Conf. On System. Sciences, vol. 11, 1990. 204