Post on 14-Apr-2017
A Model-Driven Approach for theDesign, Implementation, and Execution
of Software Development Methods
Mario Cervera Úbeda
Supervisors:Dr. Vicente Pelechano Ferragud
Dra. Manuela Albert Albiol
Agenda
1. Motivation2. Problem3. State of the Art4. Solution5. Tool Support6. Evaluation7. Conclusions
MotivationProblemState of the ArtSolution
MotivationTool SupportEvaluationConclusions
The tool is not adapted to the method
Method use decreased
The gvMétrica method
MotivationProblemState of the ArtSolution
MotivationTool SupportEvaluationConclusions
Tools adapted to gvMétrica
Hard to adapt MOSKitt to changes in gvMétrica
Inadequate support for method execution
MotivationProblemState of the ArtSolution
MotivationTool SupportEvaluationConclusions
How to define methods so that the construction of the supporting tools can be facilitated?
How to provide appropriate assistance for software engineers?
…
MotivationProblemState of the ArtSolution
MotivationTool SupportEvaluationConclusions
Method EngineeringThe engineering discipline to design, construct, and
adapt methods, techniques, and tools for the development of information systems
(Sjaak Brinkkemper, 1996)
MotivationProblemState of the ArtSolution
ProblemTool SupportEvaluationConclusions
Practitioners are reluctant to adopt existing Method Engineering techniques
Problem 1.High complexity
“The remedy is worse than the disease"
Francis Bacon (1561-1626)
Problem 2.Software support
(Henderson-Sellers & Ralyté, 2010) (Niknafs & Ramsin, 2008)
MotivationProblemState of the ArtSolution
ProblemTool SupportEvaluationConclusions
“The whole is greater than the sum of its parts”
Aristóteles (384 a.C. – 322 a.C.)
Problem 3.Lifecycle coverage
Problem 4.Process support
Method Engineering approaches do not offer a global solution
Lifecycle of methods Design Implementation Execution
Method parts Product Process
MotivationProblemState of the ArtSolution
ContributionTool SupportEvaluationConclusions
Model-Driven Engineering
A methodological approach for Method Engineering
Problem 1. Complexity
Problem 3. Lifecycle
Problem 4. Process
Problem 2. Software
• Design, implementation, and execution
• Product and process
• Software architecture
• CAME1 environment
MOSKitt4ME: A software infrastructure
1 Computer-Aided Method Engineering
Our contribution …
4ME
MotivationProblemState of the ArtSolution
State of the ArtTool SupportEvaluationConclusions
Problem 1. High complexity
AutomatedModel-driven
Ralyté (paradigm)Work Product Pool
Deneckère et al.
MMCPCA
MetaEdit+Rolland et al.
Method EditorOPF
Ralyté (assembly)Prakash
Brinkkemper et al.
Approaches
PartiallyPartiallyPartiallyPartiallyPartiallyPartiallyPartiallyPartiallyPartially
Partially
Partially
Partially
Partially
Partially
MotivationProblemState of the ArtSolution
State of the ArtTool SupportEvaluationConclusions
metaCASECAME
Ralyté (paradigm)Work Product Pool
Deneckère et al.
MMCPCA
MetaEdit+Rolland et al.
Method EditorOPF
Ralyté (assembly)Prakash
Brinkkemper et al.
Approaches
Problem 2. Software Support
MotivationProblemState of the ArtSolution
State of the ArtTool SupportEvaluationConclusions
Implementation ExecutionDesign
Ralyté (paradigm)Work Product Pool
Deneckère et al.
MMCPCA
MetaEdit+Rolland et al.
Method EditorOPF
Ralyté (assembly)Prakash
Brinkkemper et al. Supported
SupportedSupported
SupportedSupported
SupportedSupported
SupportedSupported SupportedSupported
SupportedSupported
Approaches
Problem 3. Lifecycle coverage
MotivationProblemState of the ArtSolution
State of the ArtTool SupportEvaluationConclusions
Process
Ralyté (paradigm)Work Product Pool
Deneckère et al.MMC
MetaEdit+Rolland et al.
Method EditorOPF
Ralyté (assembly)Prakash
Brinkkemper et al. Partially
Partially
Approaches
PartiallyPartially
Partially
Partially
Partially
Problem 4. Process support
Limited expressiveness
Lack of executability
MotivationProblemState of the ArtSolution
OverviewTool SupportEvaluationConclusions
Overview of our Approach
MotivationProblemState of the ArtSolution
OverviewTool SupportEvaluationConclusions
Method Design
references
Method Model
1
MethodEngineer
builds
stores
retrieves
Overview of our Approach
Asset Repository
Conceptual Technical
How to define the method so that it
supports product and process?
MotivationProblemState of the ArtSolution
Tool SupportEvaluationConclusions
Product• Product, Domain, Tool
Process• Task, Activity, Role, Sequence,
Process Pattern …
Method Design
How to define the method so that it supports product and process?
Using a DSL that combines SPEM 2.0 and BPMN 2.0
SPEM 2.0
Different types of tasks
Enhanced workflows
BPMN 2.0
MotivationProblemState of the ArtSolution
Method DesignTool SupportEvaluationConclusions
• From scratchHow to create the method model using the DSL?
Database Scripts Generation
Database Model Specification
Database Scripts Revision
Designer System Developer
Database Model DDL Script
MotivationProblemState of the ArtSolution
Method DesignTool SupportEvaluationConclusions
Conceptual fragments
Database Scripts Revision
Database Scripts Generation
Database Model Specification
Designer System
Database Model
How to create the method model using the DSL?
• Reusing conceptual fragments• From scratch
Integration of the reusable
asset
MotivationProblemState of the ArtSolution
OverviewTool SupportEvaluationConclusions
Overview of our Approach
Method ImplementationMethod Design
Asset Repository
references
Method Model
1 2
MethodEngineer
builds
stores
retrieves
ModelTransf.
Conceptual Technical
CASE Environment
Product Support
Process Support
Process Engine
How to enable the execution of the method in the process
engine?
How to enable the generation of
the tools that provide product
support?
MotivationProblemState of the ArtSolution
Tool SupportEvaluationConclusions Method Implementation
How to enable the generation of the tools that provide product support?
Enhancing the method using technical fragments
DB2DDL Transformation
MOSKitt component
MotivationProblemState of the ArtSolution
Method ImplementationTool SupportEvaluationConclusions
Database Scripts Generation
Database Model Specification
Designer System Developer
Database Model DDL Script
Database Scripts Revision
Technical fragments
DB2DDLTransformation
Example
DDL GeneratorDatabase Editor
Reference to the reusable software asset
MotivationProblemState of the ArtSolution
Tool SupportEvaluationConclusions Method Implementation
How to enable the execution of the method in the process engine?
We do not provide a process engine for our DSL
Model transformation
Methods represented in an executable language
Method Model
MotivationProblemState of the ArtSolution
Method ImplementationTool SupportEvaluationConclusions
Method Product Support
Method Process Support
Model Transformation
Product part
Process Engine
CASE EnvironmentProcess part
BPMN 2.0 deployed
integratedConfiguration
Model
MethodModel
The generation process
MotivationProblemState of the ArtSolution
OverviewTool SupportEvaluationConclusions
Overview of our Approach
Method ImplementationMethod Design Method Execution
Asset Repository
Software Engineer
references
Method Model
1 2 3
MethodEngineer
builds
stores
retrieves
ModelTransf.
Method Instance
follows
Conceptual Technical
interacts
CASE Environment
Product Support
Process Support
Process Engine
How does the CASE environment assist
the software engineer?
MotivationProblemState of the ArtSolution
Method ExecutionTool SupportEvaluationConclusions
How does the CASE environment assist the software engineer?
CASE Environment
Method Product Support
Technical Fragment
Method Process Support
CallGet
SoftwareEngineer
Read
Modelsat runtime
Execute InvokeBPMN 2.0Process Engine
Engine API
Process View Product Explorer View Help View
Project Manager
Project Explorer View
Technical Fragment
Technical Fragment
BPMN 2.0Model
MethodModel
MotivationProblemState of the ArtSolution
Tool SupportTool SupportEvaluationConclusions
What do we need to support?
Method Editor
Conceptual modeling of methods
Repository Client
Creation, storage, retrieval, and integration of fragments
Metatools
Creation of technical fragments
CASE Generator
Generation of CASE environments
Process Engine
Process execution
Project Manager
Assistance for software engineers
Editor…Transf.
Product creation
MotivationProblemState of the ArtSolution
Software ArchitectureTool SupportEvaluationConclusions
Architecture of MOSKitt4ME 4ME
MotivationProblemState of the ArtSolution
Software ArchitectureTool SupportEvaluationConclusions
Implementation
Eclipse UISWT/JFace
EclipsePDE
MotivationProblemState of the ArtSolution
EvaluationTool SupportEvaluationConclusions
High complexity of Method Engineering Negative effect on perceived usefulness
Is MOSKitt4ME useful and easy to use?
We performed an evaluation study following the guidelines proposed by Wohlin et al. (2012)
MotivationProblemState of the ArtSolution
PlanningTool SupportEvaluationConclusions
Measures of Usefulness and Ease of Use
MotivationProblemState of the ArtSolution
ExecutionTool SupportEvaluationConclusions
Video recordsScreencasts
8 subjects Individual think aloud sessions
Operation
MotivationProblemState of the ArtSolution
Data AnalysisTool SupportEvaluationConclusions
Think Aloud Method
We transcribed video records and screencasts
We annotated the transcriptions using a coding scheme think aloud protocols
We analyzed the protocols to obtain the objective measures
MotivationProblemState of the ArtSolution
Data AnalysisTool SupportEvaluationConclusions
An excerpt of a think aloud protocol …
8 protocols with 895 segments on average
Example
MotivationProblemState of the ArtSolution
ResultsTool SupportEvaluationConclusions
The subjective perception of the users indicates their willingness to accept and use MOSKitt4ME
Perceived ease of use
Perceived usefulness
MotivationProblemState of the ArtSolution
ResultsTool SupportEvaluationConclusions
MOSKitt4ME increases efficiency and effectiveness during method execution
The method design is the only phase where users experienced difficulty• MOSKitt4ME must be enhanced with assistance for method construction
A tool-supported methodological approach that is aimed at method/software engineers that need to carry out the design, implementation, and execution of methods
MotivationProblemState of the ArtSolution
ConclusionsTool SupportEvaluationConclusions
Contributions
1. Model-Driven Engineering Reduction in complexity
2. Equal support to three Method Engineering phases
3. Process support in a Method Engineering context
4. Software support for model-driven Method Engineering
MotivationProblemState of the ArtSolution
PublicationsTool SupportEvaluationConclusions
6 publications
• 2 journals• 3 international conferences• 1 national conference
CORE AJCR
(Impact factor: 1.456)
CORE A(Acceptance rate: 17%)
MotivationProblemState of the ArtSolution
Future WorkTool SupportEvaluationConclusions
Method families
Method as a Service (MaaS)
Megamodeling in Method Engineering
Method analysis and monitoring
A Model-Driven Approach for theDesign, Implementation, and Execution
of Software Development Methods
Mario Cervera Úbeda
Supervisors:Dr. Vicente Pelechano Ferragud
Dra. Manuela Albert Albiol