DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for...

26
EPM–RT–2010-15 DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS MODELING Noureddine Kerzazi, Pierre N. Robillard Département de Génie informatique et génie logiciel École Polytechnique de Montréal Novembre 2010

Transcript of DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for...

Page 1: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

EPM–RT–2010-15

DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS MODELING

Noureddine Kerzazi, Pierre N. Robillard Département de Génie informatique et génie logiciel

École Polytechnique de Montréal

Novembre 2010

Page 2: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific
Page 3: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

EPM-RT-2010-15

DSL4SPM: Domain-Specific Language for Software Process Modeling

Noureddine Kerzazi, Pierre N. Robillard Département de génie informatique et génie logiciel

École Polytechnique de Montréal

Novembre 2010

Page 4: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

2010 Noureddine Kerzazi, Pierre N. Robillard Tous droits réservés

Dépôt légal : Bibliothèque nationale du Québec, 2010 Bibliothèque nationale du Canada, 2010

EPM-RT-2010-15 DSL4SPM: Domain-Specific Language for Software Process Modeling par : Noureddine Kerzazi, Pierre N. Robillard Département de génie informatique et génie logiciel École Polytechnique de Montréal Toute reproduction de ce document à des fins d'étude personnelle ou de recherche est autorisée à la condition que la citation ci-dessus y soit mentionnée. Tout autre usage doit faire l'objet d'une autorisation écrite des auteurs. Les demandes peuvent être adressées directement aux auteurs (consulter le bottin sur le site http://www.polymtl.ca/

) ou par l'entremise de la Bibliothèque :

École Polytechnique de Montréal Bibliothèque – Service de fourniture de documents Case postale 6079, Succursale «Centre-Ville» Montréal (Québec) Canada H3C 3A7 Téléphone : (514) 340-4846 Télécopie : (514) 340-4026 Courrier électronique :

[email protected]

Ce rapport technique peut-être repéré par auteur et par titre dans le catalogue de la Bibliothèque : http://www.polymtl.ca/biblio/catalogue.htm

Page 5: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

DSL4SPM: Domain-Specific Language for Software Process Modeling

Noureddine Kerzazi, Pierre N. Robillard Department of Computer and Software Engineering

École Polytechnique de Montréal Montréal, Canada

{noureddine.kerzazi, pierre-n.robillard}@polymtl.ca

Abstract – This paper presents a novel formal approach to software process modeling based on the

Software Process Engineering Metamodel (SPEM) for the syntactic aspect of a process model and a

domain-specific language (DSL) for the semantic aspect of the model. This approach provides a

conceptual framework for designing processes in a more abstract way and to enable process

implementation on various platforms. A Process-Centered Software Environment (PCSE) called

DSL4SPM (Domain-Specific Language for Software Process Modeling) is a plug-in tool which

satisfies the meta-requirements for Process Modeling Languages (PMLs). The key concept of the

DSL4SPM is the use of a toolbox, containing SPEM elements, to instantiate objects in a graphical

scene. The process model designer links these elements with relations, and defines the values of the

attributes required for both these and the objects, with the aim of arriving at a consolidated view of

the problem. An overview of the advantages of the approach is presented. With it, the process

manager is able to quickly and easily model a process from innovative perspectives, with the aim of

better understanding the risks associated with software development.

Keywords: Process-Modeling Languages (PML); Process-Centered Software Environment (PCSE); Software Process; Software Process Engineering Metamodel (SPEM); Domain-Specific Language (DSL); Domain-Specific Language for Software Process Modeling (DSL4SPM).

1. Introduction

The lack of a conceptual framework for software process modeling limits perception of the risks

associated with software development activities. The use of the tool EPF Composer[1] in previous

work [2] revealed the solution to the issue underlying the textual description of processes, which is

to define all the concepts needed to structure a process before they are used (static instantiation

[3]). Furthermore, UML notation even when extended by specific profiles, is still incomplete for

process modeling and needs to be supported by an operational semantics.

The Model-Driven Architecture (MDA) paradigm [4] introduces the concept of the platform-

independent model. This involves modeling the solution in an abstract way and in the language of

the application domain, independently of the platform on which the process will be implemented.

Page 6: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

For the concept to be valid at the metamodel level, a process engineer must address several

concerns with respect to a process model (e.g. activity, risk, knowledge, measurement) to generate,

by transforming that model, a result suitable for a particular platform (a website, for example).

This project presents a new formal approach to Model-Driven Process (MDP) modeling. The central

idea is that the use of models can offer a conceptual framework for defining processes in a more

abstract way, with the aim of implementing them on various platforms (Visual Studio Team System

(VSTS), websites, or a project planning system, like MS Project or IBM’s Rational Portfolio

Manager). This approach is based on the Software Process Engineering Metamodel (SPEM)[5] for

the syntactic aspect of the process model and on a domain-specific language (DSL) [6] for the

semantic aspect, providing the structural and behavioral views of the problem respectively.

The DSL4SPM tool was developed to demonstrate the potential of such a conceptual approach to

process modeling. To illustrate the benefits of this tool and to explore the advantages of the

proposed MDP approach, we modeled a maintenance process in conformity with the ISO/IEC

14764:2006 standard [7].

This paper is organized as follows: Section 2 outlines the evolution of the process modeling domain

and related work. Section 3 gives a conceptual view of the formal approach that we are proposing.

Section 4 describes the DSL4SPM tool and illustrates some of its important functionalities. Section 5

presents concluding remarks.

2. Related Work

This section presents a synthesis view of the evolution of Process-Modeling Languages (PMLs) and

PCSEs. PMLs are languages, defined in a formal or semi-formal way, designed to clarify software

development activities. Their aim is to define, analyze, and improve a methodology (software

process improvement: SPI). Process-Centered Software Environments (PCSEs, also called PCEs or

PSEEs) are software systems which support the modeling, automation, and instantiation of a

software development process. The goal of this synthesis is to analyze the relationship between the

technological paradigm of software process and the technological paradigm adopted for PCSEs.

Figure 1 shows the most relevant technological steps in the evolution of PMLs and their

corresponding PCSEs.

Page 7: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

Fig. 1. Evolution of MPLs and PCSEs

First-generation PCSEs were derived from the use of generic computer programming languages [8].

This approach, characterized as declarative and functional, does not permit the dynamic and

incremental evolution of process models, as it is too restrictive to support flexibility in the

structuring of the model components (e.g. [9-13]).

Second-generation systems [8] are based on more specialized languages (e.g. [14-18]) or on graphs

and transitional networks. Several computer programming languages emerged at this time as well.

PCSEs of this generation focus on the scheduling of activities from a dynamic point of view, but do

not provide an organizational view of the process model.

Third-generation systems are known for the definition of the OMG standard: the Software Process

Engineering Metamodel (SPEM) [5], which was designed to harmonize PML definitions and

concepts. The harmonization approach is based on the use of UML for PMLs and the Object Oriented

(OO) paradigm for PCSEs. Languages such as UML and OO have gained broad acceptance in the

software industry. SPEM provides a static view of the process centered on the Role-Activity-Artifact

elements. However, it does not offer a dynamic representation of the behavioral aspects of the

process, the importance of which was underlined by Curtis [15] when the first-generation systems

emerged. The OMG suggests the use of UML (e.g. chart of activity and state) to fill this gap. Although

based on UML, PCSEs of this generation are oriented towards the creation of static content aimed at

defining the concepts and practices that describe software development activities – the project’s life

cycle (e.g. IBM Rational Method Composer, Microsoft Solution Framework, and EPF Composer).

They are also seen as having semantic weaknesses.

Page 8: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

Following this evolution, four metamodels have been compared and a new model has been

proposed , also based on UML, [19] which would become ISO/IEC 24744 [20], the basis and

concepts of which are described in [21].

It is clear from this evolution that a concern for standardization had emerged in the use of

metamodels by third-generation systems. These metamodels are based on UML and the OO

paradigm. However, a new Model Driven Architecture (MDA) paradigm is becoming established.

This paradigm is based on three principles:

Direct representation: focusing on the problem domain concepts using a DSL, instead of

attempting to adapt UML to the domain. The result is precise, semantically rich, and easy to

modify.

Automation: using transformation tools to map the model to the target platform, which

bridges the semantic gap between the domain concepts and the language of

implementation. So, from the same process model, the designer can generate a process in

conformity with the VSTS, a website, or a project planning system like MS Project or IBM’s

Rational Portfolio Manager.

Open standards: such as XML, on which DSLs can be based for improved interoperability.

The key to the MDA paradigm is the use of a DSL. Based on his experience with both MDA and DSL

Tools [6], Cook is convinced that it would be more advantageous to create a DSL adapted to the

domain problem than to use a UML profile. His conclusion has given rise to a new research

direction [22-25] related to process level, which we call the Model-Driven Process, or MDP.

In our work here, we formalize the MDP framework. This formalism is based on: 1) the SPEM

standard, which is used for building the syntactic structure, and so providing a standardized static

structural view; and 2) a new DSL, which is used to formalize the semantic relationships between

SPEM elements, and so providing a dynamic behavioral view. This formal approach allows process

designers to create, as well as to represent, analyze (from several points of view), validate,

instantiate, and easily modify a process model.

3. DSL4SPM Foundation: Concept Overview

To formalize the MDP approach, a syntax and one or more semantics (depending on the modeling

perspectives adopted) are required. SPEM, which is widely accepted in industry and academia, is

used for the syntax. To define a rich semantics, a DSL is created on the basis of a formalization of

the relationships between the SPEM elements that form the structure of the process model. This

Page 9: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

formalization creates views based on attributes to represent flows (activity, knowledge, risk, etc.).

The conceptual details are presented in the following section.

3.1. Syntax of a process model

The SPEM 2.0 profile defines a set of stereotypes which extends UML 2. The framework for this

model, which is illustrated in Figure 2, is composed of two containers labeled “Method Content”

and “Process”.

In the “Method Content” container are the definitions of the basic elements: Role, Task, Work

Product, and Guidance, which are used to build a process. All these elements must be defined in this

container before being instantiated in a process. They are classified in “Categories” (e.g. Disciplines,

Domains, Work Product Types, Role Set, Tools) to facilitate access to them. The Guidance element,

which can take several forms, e.g. guidelines, checklists, examples, or templates, lies at the

intersection of the “Method Content” and “Process” containers, because it can be used for either

basic elements or instances of processes. The “Process” container can contain one or more

instances of the Delivery Process, which are presented in a sequential list of activities describing

the flow of work to be performed. “Activity” is a “Task Uses”, “Role Use”, and “Work Product Use”

container. These latter elements are expressed on the basis of “Method Content” elements, in order

to promote reusability. This reuse mechanism is also ensured by the “Capability Patterns”

container, which serves as a container for reusable process blocks.

Fig. 2. SPEM Method Framework mapped to Method Content versus Process

It is important to note that SPEM defines a set of concepts with a graphical icon, and that a minimal

set of attributes and associations is specified for each concept. However, this representation offers

only a static view that refers to a list of activities. In addition to this representation, the process

designer needs to address other views related to other concerns (e.g. knowledge, risk), which

requires that another meaning be given to the same syntax, which is explained by a semantics.

Page 10: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

In a model-based approach, a semantic is supported by tools that ensure the interpretation or

transformation of the model to provide a precise direction. Essentially, such an interpretation

involves a systematic mapping of expressions from one language to another, the semantics of which

are well understood. For example, which attributes should we retain to represent the concept of

risk or knowledge in a process model? To answer this question, we developed the DSL4SPM, which

is a tool designed to interpret the properties of the relations between the SPEM elements with the

aim of building other views to represent flows (e.g. knowledge, risk; see Figure 7 below on the

generation of views starting with a reference set). These relations are formalized by ontological

concepts.

3.2. Formalization of Relations: Semantics

The basic idea is that, with the same elements as those defined in “Method Content” with SPEM (left

circle in Figure 2), it is possible to address other behavioral views using attributed relations. The

concept of the attributed relation does not exist in UML, from which the SPEM profile was defined.

This is one of the reasons why we chose the DSL paradigm.

Ontological view for formalizing relations

The semantic richness provided by our approach is based on the attributed relations between the

SPEM elements. These relations are formalized by means of an ontological approach with a twofold

objective: (1) to deduce a view based on the problem domain (see Figure 5 in the section on the

description and characteristics of the tool); and (2) to validate the design of the model at the

conceptual level using predetermined rules.

According to Gruber [26], an ontology is defined as the explicit specification of an abstract view of

the problem domain. This specification describes the concepts of the domain and their properties,

and the relations and constraints between them. Our domain is process modeling, and its concepts

are those provided by SPEM and other metamodels which we have created to satisfy views of the

domain other than the activities view. For each concept, the properties defined in the SPEM

specification were categorized and enriched. In terms of the relationship formalism, we have

adopted the axioms set out in [27].

An ontology is formally defined as a 2-tuple OntoSemantics : = ‹ Ε , R ›, where

Ε is a set of elements Ε := {e1, e2,… , en};

R is a set of relations R := {r1, r2, … , rn}.

Page 11: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

The following relations have been implemented, and examples of them are illustrated in the

conceptual model in Figure 3.

a. Inverse Properties

An object property may have a corresponding inverse property. Given the property TaskHasSteps

and its inverse property partOfTask, if Task T1 TaskHasSteps Step1, then the inverse property

states that Step1 is partOfTask T1. For example, by inference, we can know the steps (Step) of each

task, and we are enabled by the inverse property of the relationship to add an elementary Step to a

BreakdownList of tasks.

b. Functional Properties

If a property is functional, then, for a given element, there can be at most one element that is related

to the element via the property; for example, Rolen is responsible for Artifactm. Another example

that we have used for validation is the requirement to have Performer for Task through the relation

TaskHasPerformers.

c. Inverse Functional Properties

If a property is inverse functional, it means that the inverse property is functional. So, if Artifactm is

produced by Rolea and Roleb is responsible for Artifactm, then Rolea and Roleb are the same; e.g. if

the relation TaskHasPerformers is inverse, then that relationship is the same, whether it is the role

or the task that is the active member, or, vice versa, the target of the relationship. An example of a

non inverse relationship would be that between Task and WorkProduct, where the direction of the

relationship indicates that WorkProduct is produced or consumed by Task through the relation

TaskHasWorkProducts.

d. Transitive Properties

If a property P is transitive, and that property relates element A to element B, and also element B to

element C, then element A is related to element C via property P. This relation is very important in

the ability to draw up a BreakdownList according to a particular flow (Activity Workflow,

Knowledge, Risk and Management). Through transitivity, we can deduce the order of the activities.

e. Symmetric Properties

If a property P is symmetric, and that property relates element A to element B, then element B is

also related to element A via property P. The relation TaskHasPerform is symmetric, but the

Page 12: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

relation TaskHasSteps is not (see Figure 3.1 for additional details). The first relation involves the

deduction of roles by fixing Task, while the second involves Step cannot contain a Task.

f. Antisymmetric properties

If a property P is antisymmetric, and that property relates element A to element B, then element B

cannot be related to element A via property P. For example, Stepn is a partOfTask Taskm, and the

relation partOfTask is antisymmetric, which means that Taskm cannot be part of Stepn.

g. Reflexive properties

A property P is reflexive when that property must relate element A to itself. For example,

WorkProduct can refer to itself with the relation isDeliverable.

h. Irreflexive properties

If a property P is irreflexive, it can be described as a property which cannot relate an element A to

itself. For example, Taska isPrecededBy itself. We have implemented this specification in the

relation TaskReferencesTargetTasks, which is not reflexive, but rather irreflexive. The management

of task sequencing is specified in SPEM by an enumerator (finishToStart, finishToFinish,

startToStart, and startToFinish).

Fig. 3. 1- Partial conceptual model; 2- Modeling example

Page 13: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

Figure 3 shows a partial view of the conceptual model (left-hand side). This view presents a Task

class domain that is attributed, and its attributed relations with the classes Step, Role,

WorkProduct, and Task. An example of the model that can be obtained is presented on the right-

hand side of the figure. The domain classes, identified in blue, represent the SPEM elements. Each

element either has attributes defined in the SPEM specification, or new ones, which were added to

satisfy a given view (see Figure 7). For example, a Step has the attributes Name and Description,

and a Rank, which means an order of operation.

Furthermore, the elements structuring a model process are linked by relations, identified in pink.

Unlike UML, these relations also have attributes, in order to better qualify the nature of the relation.

For example, the attributes of the relation TaskHasPerformers are elementary in type (e.g. label of

type string) or of a type that refers to a class (e.g. CognitiveFac is of the CognitiveFactor type). It

should be noted that the relations that have no attributes (e.g. TaskHasSteps, left-hand side of

Figure 3) are specific relations of membership, and in this example the object Step cannot exist

apart from a Task. For example, the relation TaskHasPerformers identifies the characteristics of the

link between a Task and a Role, it tells us whether or not the role is primary, as well as what

cognitive factor is required for the realization of the task and its importance. The relation

TaskReferencesTargetTasks defines the nature of the sequencing between the tasks as specified in

SPEM (finishToStart, finishToFinish, startToStart, startToFinish). The right-hand side of the figure

shows an example of what a process engineer can design. The details of the tool are illustrated in

the following section.

Fig. 4. 1- Example of “Meeting” element integration that is not provided by the SPEM specification

Page 14: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

DSL enables us to add new classes and new relations to allow modeling that is adapted to the

specific needs of a process model. For example, we illustrate the case where the aim is to model

meetings within the process model. The domain class “Meeting” has attributes which make it

possible to physically characterize the meeting and its relationships to role and concepts. The

domain class “Concept” allows representation of the required or desirable knowledge elements that

will be addressed at the meeting.

Figure 4 illustrates the integration of the “Meeting” class into the conceptual model, which is not

specified in the SPEM. This element is generally linked to a form of important tacit knowledge

within development project activities (planning, establishing and maintaining a shared vision of the

problem being solved, post-mortem analysis, etc.). The relation PhaseHasMeetings indicates that

one can have one or more “Meeting” objects in a phase. These “Meetings” are characterized by

attributes (isFormal, isPlanned, durationEstimation, goal, isDecisionBased, etc.) and must be

related to “Roles” and “Concepts”. A concept defines the type of knowledge involved in the meeting,

examples of which are: knowledge of the business, knowledge of the tests, knowledge of technical

practices, management expertise, etc. The relation MeetingHasConcepts relays the importance of

the use of the concept within the framework of the meeting (isMandatory) and on the nature of the

knowledge (Knows or Understands). These two attributes indicate the level of knowledge or of

comprehension of the concept. The attribute CognitiveFactor indicates the nature of the cognitive

activity required to grasp this concept at the meeting: acquisition, synchronization, crystallization,

validation.

4. Description and characteristics of the tool

A PCSE called DSL4SPEM (Domain-Specific-Language for Software Process Modeling) has been

created to support our PML approach. The tool is a Microsoft Visual Studio 2008 Plug-in, and

satisfies the meta-requirements for PMLs and PCSEs defined and revised by many authors [3, 8, 14,

28-32].

This tool gives process engineers the ability to graphically design process models (see Figure 5) in

the same way that software designers design applications. Using the same SPEM elements

instantiated in the graphics scene, the designer can instantiate one or more relations between those

elements. Every relation can contain several classes of attributes to represent a given problem.

Tool illustration

Page 15: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

In order to validate the benefits of this approach and the performance of the DSL4SPM tool, a

maintenance process has been modeled in conformity with the ISO/IEC 14764 2006 standard [7].

The partial result is shown in Figure 5.

Fig. 5. DSL4SPM modeling interface

Figure 5 presents the DSL4SPM modeling environment. This environment is organized into six

main zones:

Zone 1 is the “Toolbox”, which contains the instantiable elements classified in groups, as follows:

SPEM elements (those specified in SPEM). For example, the drag-and-drop element of the

task icon in Zone 3 allows instantiation of a task (e.g. “Problem Verification”). The sub-

elements of a task can be specified by right clicking on the box defining the task. Examples of

sub-elements are presented on the right-hand side of Figure 3 (e.g. components of a task:

steps, required tools, pre-condition, post-condition, guidelines).

Content packaging: includes elements, specified in SPEM, which have a more global range that

can satisfy both a need for generalization and a need for reuse. They are instantiable only in

the Swim Lane “Global Package Elements” (Zone 2), which is unique to the process model.

Below, we provide a short description of these elements. For additional details, please consult

the SPEM specification available on the OMG website:

Page 16: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

ContentPackage: a container for reusable elements, such as role definition and guidance.

Note that a direct connection to “ContentPackage” from EPF Composer is envisaged to

recover the reusable concepts.

Standard Categories: a container for categories for classifying SPEM elements. For

example, Task can be classified in Discipline and Domain, and Role in RoleSet. DSL4SPM

makes it possible to import, in XML format, classifiers such as those used in the OpenUP

and Scrum processes.

CustomCategory: for creating other types of classification not available in Standard

Categories. For example, the designer can add a category which respects the VSTS

definition of WorkItems.

Capability Patterns: a container for parts of processes to be put into a dynamic process

assembly which is based on reuse. This element will be involved in future work, which will

await definition of the operators required to realize this type of dynamic assembly.

Relationship: the types of relations that the designer can use to link two elements of the

scene. A major effort has been made to simplify the number of relations in ToolBox. The

system automatically detects the original and target elements, and instantiates the type of

relation required.

Knowledge elements: elements added specifically to satisfy a view based on the management

of knowledge (both tacit and explicit). Note that the element Annotation, borrowed from the

cognitive maps domain, has also been added to facilitate collaboration during process model

design. This collaboration takes the form of a text message and can be one of the following:

Advice, Change, Comment, Example, Explanation, Question, or See Also.

The addition of new objects, borrowed from other disciplines, shows the type of enrichment that

can be brought to the process modeling domain by the use of models.

Zone 2 comprises the contents of the global elements. These elements originate from Content

Packaging in Zone 1.

Zone 3 is the modeling scene, structured in Swim Lanes, which represents the phases of the

process. Each element or relation is constructed using drag-and-drop from Zone 1. The icons in

Zone 3 can take various forms, depending on the possible categories for the element in question

(e.g. Work Product can have one of the following icons: Artifact, Deliverable, Outcome,

TechnicalArtifact).

Zone 4 is DSL4SPM Explorer, which constitutes the data repository of the model being created.

This repository is stored in a single XML file, which facilitates collaboration, as well as

Page 17: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

modification and management of the versions. Below, we illustrate the potential of this

repository to display the various modeling perspectives.

Zone 5 displays the properties of each instantiated object in the scene. These properties are

organized according to the corresponding predefined views. The modeling elements presented

in Zone 1 are generic and can be specified by distinctive icons.

Zone 6 is dedicated to posting exceptions and error messages sent by the system following a

request for validation of the model. The validation is performed in accordance with predefined

rules of coherence, such as the necessity for a principal role for realizing a task.

The core principle of the DLS4SPM is the use of a toolbox containing basically SPEM elements. Once

the objects have been instantiated, the designer is able to link them with a type of relation and

define the values of the attributes necessary for the objects and the relations, with the aim of

consolidating a particular view.

Fig. 6. The various levels of abstraction for representing a SPEM element

Figure 6 shows the conceptual approach to the representation of SPEM elements in a process

model. This approach adopts three levels of abstraction, according to the degree of accuracy

targeted by the process engineer.

Page 18: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

1- First level of detail, illustrated by the arrow “hasProperties”: permits the definition of a

set of properties which characterizes an object in the scene. These properties are grouped

together in order to facilitate the representation of a given view. For example, a Task can be

instantiated by indicating the name in the properties window (e.g. Identify and Outline

Requirements).

2- Second level of detail, illustrated by “composedOf”: makes it possible to add the sub-

elements specific to the Task (Steps, Required Tools, Required Qualifications, Pre-condition,

Post-condition). Each sub-element is also characterized by a list of properties (e.g. a “STEP

is also characterized” has the properties: name, description and an order of realization).

This approach significantly simplifies the number of elements in ToolBox.

3- Third level of detail, illustrated by the arrow “hasPerspectives”: indicates the properties

of the task in order to register it in a particular flow, such as “Knowledge” for the cognitive

aspect and “Uses” for the use aspect of the task. In this case, we preferred to use a

personalized form to provide more flexibility on the level of mapping between the element

in question and the other elements of the scene which are connected to it.

The cognitive aspect (Third level in figure 6) refers to an XML file containing the list of required

competencies for realizing a task, and a mapping is made automatically with the list of skills

provided by the role. The aim is measurement of the variation in knowledge between the role and

the task. The usability aspect ensures mapping to the VSTS or MS Project. Discussion of these two

aspects is outside the scope of this paper.

Figure 7 shows the view generation functionality from the data repository which is stored in

standard XML format. DSL4SPM Explorer (Zone 4 in Figure 5), illustrated on the left-hand side of

the figure, lists all the elements of the modeling scene. These elements are organized in phases. For

example, the “Problem and Analysis Modification” phase (third from top of the phases list) contains

an annotation, two planned meetings, and lists of SPEM elements. The Breakdown Structure, based

on the activities view according to the flow of activity, is addressed (right-hand side of the figure). It

is possible to address other views (Knowledge, Risk, Organizational, Human) based on specific

attributes. This concept of views allows the process designer to focus on the interests concerned.

Page 19: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

Fig. 7. Generation of a number of views based on the same process model

5. Concluding remarks

This process modeling approach and the DSL4SPM tool have already been used by several different

groups in the context of software process training. We have observed that this approach is intuitive

and leads to fast and effective software process modeling. The integration of the DSL4SPM tool into

an Integrated Development Environment (IDE) offers software process engineers a natural use for

the tool.

The concept of DSL4SPM and its proof of concept implementation into a tool was realized to bring a

closer integration between the software process model and the two dimensions of the software

development environment, which are the appropriateness of the process model regarding the

practices and the integration of the process model into the development environment used by the

developers. The following five aspects are what we believe to be the most important contributions

toward this objective:

The DSL component enables the modeling of hybrid processes, in which the disciplined and

agile practices are combined. Collaborative activities such as pair-programming, stand-up

meeting and design meeting can be modeled at the various phases of the process. They are

defined in terms of outcomes or objectives rather than in terms of artefacts as with

conventional process modeling.

Page 20: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

The ontology definition validates the coherence rules of a process model and provides

helpful guidance when the model element relationships do not conform to the ontology

rules. It enables diagnosis at the conceptual level of modeling. For example, the

maintenance process based on the ISO/IEC 14764 2006 standard, which is presented in this

paper, identifies only a single role called ‘Maintainer’, while the modeling of this process

according to DSL4SPM shows that various competences are required to fulfill all the tasks

and accordingly more than a single role is needed.

The feature, which enables the definition of customized attributes for each SPEM element,

makes it possible to visualize the model according to various perspectives. For example, the

traditional activity perspective provided by most software process models can be

complemented with a risk level perspective or a knowledge flow perspective.

Some implementation related features facilitate the integration of the DSL4SPM tool to IDE.

One basic implementation feature is to record modeled processes on XML files, which

facilitates model configuration management and model exporting.

A pragmatic software process model should be exportable to various software tools for

detailed process element descriptions or integration into a development environment. For

example, processes modeled in DSL4SPM can be exported to content manager like EPF

Composer for a textual description of all the elements making up the process. The process

model can also be exported to VSTS to contribute to the definition of tasks, thereby

facilitating the management of the draft agreement with the real process in-used. Exporting

the process model tasks to MS Project tool facilitates resource planning in accordance with

the software process model.

There are conceptual and technical limitations to this approach. Conceptually, there is no limit to

the number of different views or perspectives that can be modeled. A new perspective is based on

the attributes that are associated to the relationships within the model. Lack of rigor in informally

defining these attributes can lead to misleading perspectives. In complex software process

modeling, which means including a large number of elements, it becomes difficult to manage many

perspectives.

The DSL4SPM proof of concept tool was implemented as a Plug-in in the IDE ‘Visual Studio’. Of

course, this limits the use of the DSL4SPM tool to that environment. This environment has been

used for two major reasons: the DSL Tool Framework is provided has ready to use graphic support

Page 21: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

and the C #partial class mechanisms facilitate implementation of such a tool. However, this is a

weak limitation, since given appropriate resources this tool could be implemented in any

environment.

This project presents a new approach to software process modeling, based on SPEM for the

syntactic definition and on DSL for the semantic definition of a process model. These two definition

components represent structural and behavioural views respectively. A DSL4SPM tool has been

created as a proof of concept to demonstrate the benefits of this approach.

With DSL4SPM, the process engineer is able to quickly and easily model a process from an

innovative perspective, with the aim of identifying the prospective views associated with the

software development project. These views can be created by the process engineers by defining the

attributes of the elements and relationships required to define them. Examples would be: the

activity flow view, the knowledge flow view, the risk view, etc. This can be done according to formal

ontological concepts.

Future work will include a more detailed analysis of the concepts related to modeling the

knowledge flow between the Role and Task components, with the aim of evaluating the propagation

of tacit knowledge through all phases of the process. Tacit knowledge complements the explicit

knowledge embodied in the artifacts, and this will enable us to integrate an important concept from

an agile process into a disciplined process in a rational way.

Acknowledgments

We would like to express our thanks to Mathieu Lavallee who was deeply involved at the technical

level to carry out the DSL4SPM tool.

This work was partly supported by the “Fonds de Recherche sur la Nature et les Technologies”

council of Québec (FQRNT) under Grant 127037.

References

[1] Eclipse.org, "EPFComposer," http://www.eclipse.org/epf/, visited 10 February, 2009.

[2] P. N. Robillard, N. Kerzazi, M. Tapp, and H. Hmima, "Outsourcing software maintenance:

processes, standards & critical practices," in 2007 Canadian Conference on Electrical

and Computer Engineering, Vancouver, BC, Canada, 2007, pp. 682-685.

[3] P. H. Feiler and W. S. Humphrey, "Software process development and enactment: concepts

and definitions," Los Alamitos, CA, USA, 1993, pp. 28-40.

Page 22: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

[4] G. Booch, A. Brown, I. Iyengar, J. Rumbaugh, and B. Selic, "An MDA Manifesto," in

http://www.bptrends.com/publicationfiles/05-04%20COL%20IBM%20Manifesto%20-

%20Frankel%20-3.pdf, M. Journal, Ed., 2004.

[5] OMG, "Software Process Engineering Metamodel Specification, SPEM v2.0,"

http://www.omg.org/spec/SPEM/2.0/PDF, 2008.

[6] S. Cook, G. Jones, and S. Kent, Domain-specific Development With Visual Studio Dsl Tools,

Addison-Wesley ed., 2007.

[7] ISO/IEC, "Software Engineering — Software Life Cycle Processes — Maintenance,"

International Standard ISO/IEC 14764 2006.

[8] S. M. Sutton and L. J. Osterweil, "The Design of a Next-Generation Process Language," in

ESEC/ACM Foundations of Software Engineering Symposium, 1997, pp. 142-158.

[9] M. I. Kellner, "Representation formalisms for software process modeling," in `Representing

and Enacting the Software Process'. Proceedings of the 4th International Software Process

Workshop (Cat. No.88TH0211-3), Moretonhampstead, UK, 1989, pp. 93-96.

[10] W. Deiters and V. Gruhn, "Managing software processes in the environment MELMAC," USA,

1990, pp. 193-205.

[11] S. Bandinelli and A. Fuggetta, "Computational reflection in software process modeling: The

SLANG approach," Los Alamitos, CA, USA, 1993, pp. 144-54.

[12] N. Belkhatir and W. L. Melo, "Supporting software development processes in Adele 2,"

Computer Journal, vol. 37, pp. 621-638, 1994.

[13] R. Conradi, B. P. Munch, J. O. Larsen, M. N. Nguyen, and P. H. Westby, "Integrated product

and process management in EPOS," Integrated Computer-Aided Engineering, vol. 3, pp. 5-19,

1996.

[14] X. Junchao, L. J. Osterweil, Z. Lei, A. Wise, and W. Qing, "Applying little-JIL to describe

process-agent knowledge and support project planning in soft PM," Software Process:

Improvement and Practice, vol. 12, pp. 437-448, 2007.

[15] B. Curtis, "Three problems overcome with behavioral models of the software development

process," Piscataway, NJ, USA, 1989, pp. 398-399.

[16] E. Di Nitto, L. Lavazza, M. Schiavoni, E. Tracanella, and M. Trombetta, "Deriving executable

process descriptions from UML," in Proceedings of the 24th International Conference on

Software Engineering. ICSE 2002, Orlando, FL, 2002, pp. 155-165.

Page 23: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

[17] K. Z. Zamli and P. Lee, "Exploiting a virtual environment in a visual PML," in Product Focused

Software Process Improvement. 4th International Conference, PROFES 2002. Proceedings,

Rovaniemi, Finland, 2002, pp. 49-62.

[18] P. Kruchten, The Rational Unified Process: An Introduction (3rd Edition): Addison-Wesley,

2003.

[19] C. Gonzalez-Perez and B. Henderson-Sellers, "A comparison of four process metamodels and

the creation of a new generic standard," Information and Software Technology, vol. 47, pp.

49-65, 2005.

[20] ISO/IEC, "Software Engineering — Metamodel for Development Methodologies,"

International Standard ISO/IEC 24744 First edition, 2007-02-15.

[21] C. Gonzalez-Perez and B. Henderson-Sellers, "Modelling software development

methodologies: A conceptual foundation," Journal of Systems and Software, vol. 80, pp. 1778-

1796, 2007.

[22] A. Gavras, M. Belaunde, L. F. Pires, and J. P. A. Almeida, "Towards an MDA-based

development methodology," in Software Architecture. First European Workshops, EWSA

2004. Proceedings, St Andrews, UK, 2004, pp. 230-240.

[23] F. Jouault and J. Bezivin, "KM3: a DSL for metamodel specification," in Formal Methods for

Open Object-Based Distribution Systems. 8th IFIP WG 6.1 International Conference, FMOODS

2006. Proceedings, Bologna, Italy, 2006, pp. 171-185.

[24] J. Greenfield, K. Short, S. Cook, and S. Kent, Software factories: assembling applications with

patterns, models, frameworks and tools: Wiley, 2004.

[25] J. Bezivin and E. Breton, "Applying the basic principles of model engineering to the field of

process engineering," UPGRADE: The European Journal for the Informatics Professional, vol.

5, 2004.

[26] T. R. Gruber, "Toward principles for the design of ontologies used for knowledge sharing,"

International Journal of Human-Computer Studies, vol. 43, pp. 907-928, 1995.

[27] M. Horridge, et al., "Practical Guide To Building OWL Ontologies Using Protégé 4 and CO-

ODE Tools: 2007," http://www.co-ode.org/resources/tutorials/protege-owl-tutorial.php,

visited 10 November 08.

[28] S. Bandinelli, A. Fuggetta, and S. Grigolli, "Process modeling in-the-large with SLANG," Los

Alamitos, CA, USA, 1993, pp. 75-83.

Page 24: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific

[29] R. Conradi and L. Chunnian, "Revised PMLs and PSEEs for industrial SPI," in Object-Oriented

Technology. ECOOP'97 Workshop Reader. ECOOP'97 Workshops. Proceedings, Jyvaskyla,

Finland, 1998, pp. 289-294.

[30] K. Z. Zamli and P. A. Lee, "Taxonomy of process modeling languages," in Proceedings

ACS/IEEE International Conference on Computer Systems and Applications, Lebanon, 2001,

pp. 435-447.

[31] S. Arbaoui, J. C. Derniame, F. Oquendo, and H. Verjus, "A comparative review of process-

centered software engineering environments," Annals of Software Engineering, vol. 14, pp.

311-340, 2002.

[32] R. Bendraou, M. P. Gervais, and X. Blanc, "UML4SPM: A UML 2.0-based metamodel for

software process modeling," in Model Driven Engineering Languages and Systems. 8th

International Conference, MODELS 2005. Proceedings, Montego Bay, Jamaica, 2005, pp. 17-

38.

Page 25: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific
Page 26: DSL4SPM : DOMAIN-SPECIFIC LANGUAGE FOR SOFTWARE PROCESS ... DSL4SPM: Domain-Specific Language for Software Process Modeling . Noureddine Kerzazi, Pierre N. Robillard ... DSL4SPM (Domain-Specific