A UML-based Process Meta-Model Integrating a Rigorous Process Patterns Definition

Similar documents
Towards flexible Software Processes by using Process Patterns

Using and Extending the SPEM Specifications to Represent Agent Oriented Methodologies

Software Language Engineering of Architectural Viewpoints

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Conceptual Modeling and Specification Generation for B2B Business Processes based on ebxml

Spemmet - A Tool for Modeling Software Processes with SPEM

An Ontological Analysis of Metamodeling Languages

Perspectives on User Story Based Visual Transformations

Component-Based Software Engineering TIP

Designing a System Engineering Environment in a structured way

Using Component-oriented Process Models for Multi-Metamodel Applications

An Agent Modeling Language Implementing Protocols through Capabilities

Software Reuse and Component-Based Software Engineering

First Steps Towards Conceptual Schema Testing

Object-Oriented Theories for Model Driven Architecture

Minsoo Ryu. College of Information and Communications Hanyang University.

An Evaluation of a Use Case Driven Requirements Analysis Using Web UI Prototype Generation Tool

Refinement and Formalization of Semi-Formal Use Case Descriptions

challenges in domain-specific modeling raphaël mannadiar august 27, 2009

Component-Based Software Engineering TIP

OCL Support in MOF Repositories

ADELFE FRAGMENTATION

Proposed Revisions to ebxml Technical Architecture Specification v ebxml Business Process Project Team

Semantics-Based Integration of Embedded Systems Models

ASPECT GENERATOR. Audit Trail WEAVER. Aspect Editor. Weaving Strategies Editor. Model Editor. Mapping. Instructions. Original Model (XMI)

Proposed Revisions to ebxml Technical. Architecture Specification v1.04

Integrating Software Architecture Concepts into the MDA Platform with UML Profile

The Specifications Exchange Service of an RM-ODP Framework

Towards Transformation Migration After Metamodel Evolution

Extension and integration of i* models with ontologies

Pattern for Structuring UML-Compatible Software Project Repositories

Modeling Requirements

Meta Architecting: Towered a New Generation of Architecture Description Languages

A UML SIMULATOR BASED ON A GENERIC MODEL EXECUTION ENGINE

Modeling variability with UML

Modelling in Enterprise Architecture. MSc Business Information Systems

Feature Model to Orthogonal Variability Model Transformation towards Interoperability between Tools

A Lightweight Language for Software Product Lines Architecture Description

Reusing Scenario Based Approaches in Requirement Engineering Methods: CREWS Method Base

Communication Ontological Description Process Fragment. Author: M. Cossentino, V. Seidita Last saved on: 23/06/2010

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling with Metamodels. Using. UML/MOF including OCL

Activity Nets: A UML profile for modeling workflow and business processes

Experimenting with Multi-Level Models in a Two-Level Modeling Tool

Directives for Composing Aspect-Oriented Design Class Models

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

OCL for the Specification of Model Transformation Contracts

Process-Integrated Refinement Patterns in UML

Inheritance (Chapter 7)

Variability Implementation Techniques for Platforms and Services (Interim)

AUTOMATED BEHAVIOUR REFINEMENT USING INTERACTION PATTERNS

Transformation of the system sequence diagram to an interface navigation diagram

Chapter 2 Overview of the Design Methodology

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

An Approach Implementing Template-Based Process Development on BPMN

QoS-aware model-driven SOA using SoaML

Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures

UML Specification and Correction of Object-Oriented Anti-patterns

Agent-Oriented Software Engineering

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements

Software Engineering from a

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

Enhancing validation with Prototypes out of Requirements Model

E-Commerce Integration Meta-Framework General Methodology (ECIMF-GM) CEN/ISSS/WS-EC/ECIMF. Draft, version 0.2 July 11, 2001

Interface-based enterprise and software architecture mapping

Semi-Formal, not Semi-Realistic: A New Approach to Describing Software Components

Future Directions for SysML v2 INCOSE IW MBSE Workshop January 28, 2017

Existing Model Metrics and Relations to Model Quality

Train control language teaching computers interlocking

Towards the integration of security patterns in UML Component-based Applications

UNIT II. Syllabus. a. An Overview of the UML: Visualizing, Specifying, Constructing, Documenting

This document is a preview generated by EVS

Chapter 1 Introduction

Goals of the BPEL4WS Specification

Pattern-Based Architectural Design Process Model

Towards Better Support for Pattern-Oriented Software Development

Impact of Platform Abstractions on the Development Workflow

6. The Document Engineering Approach

COSC 3351 Software Design. An Introduction to UML (I)

Web Services Annotation and Reasoning

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

Executing Evaluations over Semantic Technologies using the SEALS Platform

KDPMEL: A Knowledge Discovery Process Modeling and Enacting Language

Ontology-based Model Transformation

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Distributed Systems Programming (F21DS1) Formal Verification

Event Metamodel and Profile (EMP) Proposed RFP Updated Sept, 2007

Designing MAS Organisation through an integrated MDA/Ontology Approach

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

Design Pattern Instantiation Directed by Concretization and Specialization

Integrating Software Lifecycle Models into a uniform Software Engineering Model

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

Towards a Component Agent Service Oriented Model

HyperFrame - A Framework for Hypermedia Authoring

Test Cases Generation from UML Activity Diagrams

Component-based software engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1

Sequence Diagram Generation with Model Transformation Technology

Compositional Model Based Software Development

Transcription:

A UML-based Process Meta-Model Integrating a Rigorous Process Patterns Definition Hanh Nhi Tran, Bernard Coulette, Bich Thuy Dong 2 University of Toulouse 2 -GRIMM 5 allées A. Machado F-3058 Toulouse, France {tran,coulette}@univ-tlse2.fr 2 University of Natural Sciences, VNUHCM 227 Nguyen Van Cu, Q5, HoChiMinh Ville, Vietnam thuy@hcmuns.edu.vn Abstract. Process Pattern is an emergent approach to reuse process knowledge. However, in practice this concept still remains difficult to be exploited due to the lack of formalization and supporting methodology. In this paper, we propose a way to formalize the process pattern concept by introducing it into a process meta-model. We provide a general definition to cover various kinds of process-related patterns in different domains. We define rigorously process concepts and their relations to allow representing processes based on process patterns and to facilitate the development of supporting tools. By distinguishing process patterns at different abstraction levels, we aim to develop a systematic approach to define and apply process patterns. Introduction Recently, process patterns approach has been adopted by process communities to capture and reuse proven processes. The expected interests of reduced development time and improved process quality make process patterns approach attractive. However, up to now works on process pattern have not been enough developed to permit applying this concept efficiently. Firstly, it lacks a definition that can cover the diversity of process patterns (c.f. [8][9] for more detailed discussions on process patterns definitions and taxonomy). Secondly, the representation of process patterns is not adequately formal to be directly reused in process modeling. Finally, a process patterns based methodology for developing processes is still needed to guide process designers applying process patterns systematically. To cope with these issues, we believe that the first step is to formalize process patterns. This objective can be achieved by introducing the process pattern concept into a process meta-model. We present in this paper a UML-based meta-model integrating the concept of process pattern into the description of software processes. Our meta-model provides rigorous concepts to describe process patterns and processes based on process patterns. The meta-model will be presented in the following section and exemplified in section 3. Related works and contributions are summed up in the final section.

2 A meta-model for representing Process Patterns Our objective is to define process patterns as patterns for modeling processes. Thus, we provide a wide definition to cover all the related notions. We introduce multi-abstraction levels into process representation to promote process reuse. The relations between process models at different abstraction levels are defined in order to clarify the way of defining process models (and then process patterns which capture them). To allow process modeling based on patterns and facilitate patterns organization, we also define explicitly the aspects of process pattern concept as well as the relationships among patterns, between process patterns and process models. To attaint the requirement on standardization, initially we aimed at integrating the process pattern concept into the software process meta-model SPEM.[4]. However, SPEM. has some deficiencies and is progressing towards a next version [5]. So, we decided to develop a meta-model which is strongly inspired by SPEM. for process description, but based directly on UML 2. To present our meta-model, we use UML class diagrams 3 for the abstract syntax. The semantics is expressed in natural language and reinforced by OCL expressions 4. 2. ProcessModel This concept is used to describe (part of) a process. It is composed of process tasks (), the required products () and the participating roles (Role) of these tasks (Figure a). +type (a) +product +responsiblerole 0.. Actor Parameter Parameter Model ProcessModel..* +participant Role +parameter 0....* +task +performedtask +assistant +performer Abstract Fig.. Meta-model for ProcessModel and is an artifact created, consumed or modified during the development. A is a unit of work realized to create or modify products. Necessary products for the (b) +component +refinedkind General Concrete +kind +kind Kind Language GeneralizableElement ModelElement The abstraction level of a process model reflects how detailed its content is described. 2 In our meta-model, the part describing processes (which is inspired by SPEM.) is defined separately with the part introducing process patterns. Thus, in the future, we just need to change the first part to conform our meta-model to the stable version of SPEM. 3 Light grayed classes represent ones from UML; white classes represent new defined concepts. 4 Due to the space constraint, we cannot present here the OCL well-formedness rules.

execution of a task are described explicitly as its parameters (Parameter). A Role is an abstract concept describing a set of competences of development using to realize or assist a task. Typology of s: s help to specify the precise meaning of a task. An Abstract describes a certain product without any exact meaning. A General is specified by a product kind (Kind) which can be specialized further for more specific goals. A Concrete belongs to a product kind and is represented by a concrete formalism (Language) (Figure b). Description of s: Figure 2 shows the detailed description of a task with the conditions to begin or finish (PreCondition and PostCondition) and sub-tasks. Constraint PreCondition PostCondition +sub +origin +refinedtask Refinement Dependency State Abstract uses Resource General Concret 0.. Step ActionState Fig. 2. Meta-model for We propose a categorization of tasks abstraction levels based on abstraction levels of the products that they manipulate. An Abstract doesn t have any associated semantic action and is unexecutable. A General creates or modifies one or several general products. It has an associated semantic action but is not ready to be executed because the meaning of its actions depends on incompletely specified products. A Concrete creates or modifies concrete products. It can be decomposed into elementary actions (Step) that have a precise semantics. Actions of a concrete task are described completely in terms of resources (Resource) used to accomplish it. A concrete task is therefore ready to be executed. If a task works on several products having different abstraction levels, the abstraction level of the task is deduced from the highest abstraction level of its products. The relation «has sub» permits to decompose a task into sub-tasks which have to be realized together to accomplish the parent task. We also highlight the dependencies between tasks at different abstraction levels («Refinement»). This relation allows refining a task to obtain more specific tasks by specifying more details on its semantic action and its manipulated products. 2.2 A Process Pattern captures a Process Model that can be reused to resolve a recurrent process development Problem in a given Context (Figure 3). A Problem expresses the intention of a pattern and can be associated to a development task through the relation «is applied for». It is possible to have several process patterns addressing the same problem. A Process Model represents the solution of a process pattern. A Context characterizes conditions in which a process pattern can be applied (Initiation), results that must be achieved after applying the pattern (Resulting) and situation recommended for reusing it (Reuse Situation).

Abstract General Concrete Process Model Package +initialcontext +solution Initiation +resultingcontext..* Context Resulting +context Reuse Situation +subproblem +intention 0.. +appliedtask Problem +associatedtask 0.. 0.. Comment Constraint Fig. 3. Meta-model for We distinguish several types of process patterns according to abstraction level of their captured process model. An Abstract captures a recurrent generic structure for modeling or organizing processes. A General captures a process model that can be applied to realize a general task and a Concrete captures a process model that can be applied to realize a concrete task. Our meta-model reflects four important relations between process patterns: Sequence, Use, PatternRefinement and PatternAlternative (Figure 4). Pattern +variant +refinedpattern Pattern Alternative Refinement +superpattern +variant2 +component +composite +successor +predecessor Relationship Use Sequence Relationship Fig. 4. Process Patterns Relationships A Sequence relationship links two patterns if the predecessor produces all products required by the successor. A pattern uses another if the latter can be applied for one (or more) task in the solution of the composite pattern. A process pattern is refined from another if its associated task has the relation Refinement with the associated task of the super pattern. Two process patterns are related by the relationship PatternAlternative if they solve the same problem with different solutions. 3 Example of process patterns In this example, we will show how a process pattern is represented and how it can be applied in process modeling. Fagan Inspection Process [] is one of well-known processes used for detecting defects of software products. This process can be applied on different types of products (e.g. requirements, design, code test plans/cases and user documentation), therefore we define the general pattern FaganInspectionPattern to capture it 5 (Figure 5a). 5 For the sake of simplicity, here we just represent the principal elements of this process.

«General» FaganInspectionPattern (5a) «ProcessModel» JavaCodeInspection (5b) «Context» Inspection context «Problem» Detect defects Initial context: Artifact is complete for review; inspection roles, resources (standards, tools) are available. Resulting context: Artifact is approved Reuse Situation: when one needs to verify statically the correctness of an artefact by using a formal group meeting based process and to get feedback for improving process itself. «ProcessModel» FaganInspection «General» Artifact (draft) Planning «General» Artifact (modified) «General» Artifact (approved) Overview Preparation InspectionMeeting ProcessImprovement «General» Rework «General» FollowUp [Artifact is not approved] «Concrete» JavaCode (draft) «Concrete» JavaCode (modified) «Concrete» JavaCode (approved) «PatternRefinement» «Concrete» JavaCodeInspectionPattern «Context» Inspection context «Concrete» PlanningCodeIspection «Concrete» ReadJavaCode «Concrete» JavaInspectionMeeting ModifyJavaCode VerifyJavaCode «Resource» JavaChecklist «Resource» JavaCodeAnalyzer [JavaCode is not approved] (5c) «Problem» Detect JavaCode defects Initial context: JavaCode is complete to be verified, and JavaProgrammers, JavaChecklist and JavaCodeAnalyzer are available. Resulting context: JavaCode is approved Reuse Situation: when one needs to verify the correctness of a Java source code by using a formal group meeting based process and some tools to facilitate the code verification. (5d) Study DesignModel Reuse existing Java components Writing JavaCode Review JavaCode «is applied for» Fig. 5. Patterns for software artifacts inspection and their applications When a process designer wants to define a group meeting-based process to review a Java source code, he can reuse the FaganInspection process by applying the pattern in Figure 5. To do so, he instantiates the captured process model of the pattern, then refines the general tasks by concrete tasks with their necessary resources (e.g. the concrete task ReadJavaCode which is refined from the general task Preparation uses the JavaChecklist and JavaCodeAnalyser as particular resources), and replaces general products by concrete products (e.g. the general product Artifact is replaced by the concrete product JavaCode). He can also modify the process model by choosing just the pertinent tasks to be refined (e.g. the task Overview and ProcessImprovement are omitted). Figure 5b shows the modified process model. After certain successfully applications of process described in Figure 5b, the process designer can capture this process model to define a new concrete process pattern JavaCodeInspection (Figure 5c). From now on, this concrete pattern can be applied over and over again in any process having a task of JavaCode verification. For example, Figure 5d shows a process for developing Java programs. In this process, the designer want to reuse exactly the process model captured in JavaCodeInspectionPattern, thus he applies this concrete pattern directly for the task ReviewJavaCode by making a link from the task to the pattern. This reference mechanism is permitted in process modeling thanks to the relationship is applied for described in our meta-model (c.f. Figure 3).

4 Related works and Conclusion In regard to process patterns formalization, works are still modest. Gnatz et al. proposed a process framework[2] to describe software processes and introduced the notion of process pattern as a modular way for the documentation of development knowledge. Hagen et al. developed a the UML-based language PROPEL[3] to describe explicitly process patterns and their relationships. The process modeling language PROMENADE[7] defines the process pattern concept as a parameterized process template and proposes a set of high-operators for manipulating process models. In the field of method engineering, Rolland et al.[6] have developed a metamodel to capture way of working a closed concept to process pattern. All of these meta-models are not based on a standardized process meta-model and just concentrate on general software process patterns, thus cannot cover other kinds and abstraction levels of process patterns. Compared with the above works, our approach aims at integrating process pattern to a widely accepted process meta-model, i.e. SPEM of OMG. We introduced a more general definition which covers a large variety of process patterns. Especially, our meta-model allows representing process models and process patterns at different abstraction levels. Furthermore, besides a semi-formal description, a set of OCL constraints are also defined to provide a more rigorous semantics for the proposed meta-model. In the first draft submission for SPEM 2.0[5], the process pattern concept is proposed as a Capability Pattern which describes reusable clusters of activities in common process areas. However, the internal structure of this concept as well as relationships between patterns is not defined. Moreover, in contrast to our approach, SPEM 2.0 does not pay attention to the different abstraction levels of patterns. Our work thus still will be useful on integrating and adapting to SPEM 2.0 when it is stabilized. References. Fagan, M.E.: Advances in Software Inspections. IEEE Transactions on Software Engineering, Vol. SE-2, No. 7, Page 744-75(986) 2. Gnatz, M. Marschall, F., Popp, G., Rausch, A., Schwerin, W.: The Living Software Development Process. Journal Software Quality Professional, Volume 5, Issue 3 (2003) 3. Hagen, M., Gruhn, V.: Process Patterns - a Means to Describe Processes in a Flexible Way. ProSim04, Edinburgh, United Kingdom (2004) 4. OMG: Software Process Engineering Metamodel (SPEM v.) Specification: OMG Document formal/05-0-06 (2005) 5. OMG: SPEM 2.0 Draft Adopted Specification. http://www.omg.org/docs/ad/05-06-05.pdf 6. Ralyté J., Rolland C.: An Assembly Process Model for Method Engineering. CAISE 0, Interlaken, Switzerland (200) 7. Ribó J. M; Franch X.: Supporting Process Reuse in PROMENADE. Research Report LSI-02-4-R, Dept. LSI, Politechnical University of Catalonia (2002) 8. Tran H.N., Coulette B., Dong T.B.T. Towards a better understanding of Process Patterns. SERP 2005 (2005) 9. Tran H.N., Coulette B., Dong T.B.T. A Classification of Process Patterns. SWDC-REK 2005. Reykjavik, Island (2005)