iii conferência cmmi portugal, presentation 4: make the software process visible - lessons learnt...
DESCRIPTION
Checking the validity of BPMN process models to indentify typical model smells and reduce students' learning curve.TRANSCRIPT
Portugal
Make the Software Process Visible:
Lessons learnt while preparing a future MOOC
Fernando Brito e Abreu
Associate Professor / Researcher
DCTI/ISCTE-IUL & CITI/FCT/UNL
2013-10-18
My business has mostly been …
SWEBOK 2014: the 15 Knowledge Areas • Software Engineering
Economics
• Software Requirements
• Software Testing
• Software Construction
• Software Configuration Management
• Computing Foundations
• Software Engineering Models and Methods
• Software Maintenance
• Mathematical Foundations
• Software Design
• Software Engineering Management
• Software Engineering Professional Practice
• Engineering Foundations
• Software Engineering Process
• Software Quality
CMMI is about the process! Capability Maturity Model Integration (CMMI) is a process improvement training and appraisal program and service administered and marketed by Carnegie Mellon University and required by many DOD and U.S. Government contracts, especially software development.
Under the CMMI methodology, processes are rated according to their maturity levels, which are defined as: Initial, Repeatable, Defined, Quantitatively Managed, Optimizing.
Let’s get our hands on it!
• Let us …
… discuss the process!
… tailor the process!
… assess the process!
… grade the process!
… improve the process!
• but …
… where is the process?
Find the
process!
A process is …
… a series of actions, changes, or functions bringing about a result
… a coherent set of activities carried out by a collaborating group to achieve a goal [Business Process Management: A Rigorous Approach,
Martyn Ould, BCS, 2005]
A process is a coherent set of activities
Waterfall process model
Requirements
Analysis
Design
Implementation
Test
Maintenance
V process model
Requirements
Analysis
Design
Implementation
Release
Acceptance
Integration
W process model
Requirements
Analysis
Design
Implementation
Release
Acceptance
Integration
Analysis
Review
Design
Review
Code
Review
System
Testing
Acceptance
Testing
Integration
Testing
Requirements
Review
Spiral process model
Determine Objectives,
Alternatives and
Constraints
Evaluate Alternatives:
Identify and
Reduce Risk
Plan Next
Phases
Develop and Verify
Next-Level Product
© Fernando Brito e Abreu
RUP process model
XP process model
Scrum process model
Scrum process model (detailed)
Why is process modeling important?
• Process models
o describe how we do things
omake the process visible!
o facilitate discussing and improving the process
o allow to automate tools (e.g. ASE)
o allow checking process correctness
Goals of a process model (1/3)
• Descriptive (as is)
o Track what actually happens during a process
o Allows discussing the improvements that must be made to make it perform more effectively or efficiently
Goals of a process model (2/3)
• Prescriptive (to be)
o Define the desired processes and how they should/could/might be performed
o Establish rules, guidelines, and behavior patterns which, if followed, would lead to the desired process performance
• They can range from strict enforcement to flexible guidance
Goals of a process model (3/3)
• Explanatory (why)
o Provide explanations about the rationale of processes
o Explore and evaluate the several possible courses of action based on rational arguments
o Establish an explicit link between processes and the requirements that the model needs to fulfill
o Pre-defines points at which data can be extracted for reporting purposes
Why is process modeling important in IT?
• software development process (e.g. CMMI-DEV)
• web services orchestration (e.g. Oracle BPEL Process Manager, TIBCO BusinessWorks)
• ERP workflows (e.g. SAP NetWeaver)
• ITSM (IT Service Management) processes (e.g. ITIL and ISO/IEC 20000 processes)
• IT Governance processes (e.g. COBIT)
• Quality Management System processes (e.g. ISO/IEC 9000)
Many ways for expressing IT processes
• UML2’s Activity Diagrams
• SysML Activity Diagrams
• SPEM2 based diagrams
• Event-driven Process Chain (EPC)
• Colored Petri Nets
• PSL (Process Specification Language)
• Business Process Modeling and Notation (BPMN)
Business Process Modeling and Notation
• BPMN is a UML profile published by
• OMG’s BPMN versions: – 1.1 – January 2008
– 1.2 – January 2009
– 2.0 – January 2011
– 2.0.1 – September 2013
Object Management Group (OMG) is
an international, open membership, not-
for-profit computer industry standards
consortium. OMG Task Forces develop
enterprise integration standards for a
wide range of technologies, namely
model-based standards.
A UML profile is a a generic
extension mechanism for
customizing UML models for
particular domains (e.g.,
aerospace, healthcare, financial) or
platform (J2EE, .NET)
• 3 kinds of flow objects
– Activity
– Gateway
– Event
• 3 ways of connecting
– Sequence flow
– Message flow
– Association
• Two types of container
– Pools
– Lanes (swimlanes)
BPMN: basic constructs
BPMN: activities
An activity is work
that is performed
within a process
Atomic
activities
Non-atomic
(compound)
activities
BPMN: connections
To show the order that
activities will be
performed in a process
To show the flow of
messages between
two entities
To associate artifacts
and information with
flow objects.
BPMN: gateways
Gateways are used to
control how Sequence
Flows interact as they
converge and diverge
within a process
BPMN: events (63!)
An Event is something
that “happens” during
the course of a
business process.
These Events affect
the flow of the Process
and usually have a
trigger or a result. They
can start, interrupt, or
end the flow.
BPMN: expanded subprocesses
Gartner’s Magic Quadrant for BPM tools
Bizagi Process Modeler (freeware)
Modeling software processes with BPMN2
• Software Engineering course (3rd year BSc)
• 150 to 200 students every year
• BPMN2 tutorial (around 3 hours in class)
• Assignment (around 2 weeks, in groups of 3 or 4)
o 2011/2012 – Scrum instantiation
o 2012/2013 – OpenUp instantiation
o 2013/2014 – XP instantiation
Title: Why MOOCs?
Massive Open Online Courses
MOOC Players
• https://www.udacity.com/
• https://www.coursera.org/
• http://www.edxonline.org/
• More info
o http://www.mooc-list.com
MOOC Assessments • Assessment can be the most difficult activity to
conduct online, and online assessments can be quite different from the bricks-and-mortar version.
• The two most common methods of MOOC assessment are machine-graded multiple-choice quizzes or tests and peer-reviewed written assignments. Machine grading of written assignments is also underway.
0
10
20
30
40
50
0%
20%
40%
60%
80%
100%
BPMN elements used
BPMN learning curve problem
• Coverage of BPMN constructs
# C
ase
s
BPMN model checking problem
• OMG’s BPMN standard syntactic rules
– 300+ pages of well-formedness textual rules
– Only partly enforced by modelling tools
• BPMN modelling best-practices rules
– May be defined at company level
– No support by current modelling tools
Results validation
# Errors BPMN Standard Violation Best-Practices Violation
0 53,6% 3,6%
1 26,8% 7,1%
2 12,5% 10,7%
3 3,6% 19,6%
4 1,8% 16,1%
5 1,8% 25,0%
6
7,1%
7 5,4%
8 3,6%
9 1,8%
• Model checking upon a sample of 56 industry models
Motivation
• Contribute to attain better quality in process modelling using BPMN
– Conforming to the BPMN 2.0 OMG standard
– Incorporating process BPMN modelling best-practices provided by experts in the field
• Contribute to ease the learning curve in BPMN2
Proposed solution
• Compile a catalogue of BPMN2 model smells
• Formalize those smells upon the BPMN2 metamodel using the OCL constraints language
• Develop an environment to perform BPMN 2 model checks
Anacleto Cortez e Correia, PhD thesis, FCT/UNL, 2013
From code smells to model smells
BPMN metamodel grants unambiguity • The notation used in process modeling must be
unambiguous
o That unambiguity is granted by its grammar
• The grammar of OMG’s languages such as BPMN are defined as a metamodel (M2)
o The metamodel is expressed as a set of class diagrams where modeling constructs are defined (meta-classes), along with their acceptable relationships (meta-associations)
The BPMN metamodel specification can be found at:
http://www.omg.org/spec/BPMN/2.0/
OMG’s Model Driven Architecture • BPMN models (M1 level) must be conformant to
the BPMN metamodel (M2 level)
BPMN
metamodel
BPMN process
model
BPMN process
model instances
BPMN2 metamodel
- Large number of modelling constructs:
- 151 metaclasses
- 200 associations
- Well-formedness rules are only stated in plain text
This is a very small subset ;)
BPMN model checking • Verification of well-formedness rules
e.g. Catch Error Event must trigger an exception flow
context CatchEvent
inv catchErrorEventTriggerExceptionFlow:
self.isErrorEvent() implies
(self.oclAsType(BoundaryEvent).
attachedToRef.isDefined() and
self.outgoing_a.targetRef
->notEmpty())
BPMN model checking • Verification of best-practices rules
– E. g. use explicitly Start Events and End Events
context FlowElementsContainer
inv bp_useExplicitStartAndEndEvents:
existsExplicitStartAndEndEvents()
BPMN model checker prototype
BPMN model is saved in
XPDL or XMI format
BPMN metamodel
instantiation
OCL rule checker (Bremen Univ.) used for model smells detection
BPMN model checking
UML UML
MM BPMN MM BPMN MM USE MM USE
XPDL/XMI Concrete
Syntax
XPDL/XMI Concrete
Syntax
USE Concrete
Syntax
USE Concrete
Syntax
conformsTo conformsTo
conformsTo conformsTo
Transformation
DOM, SAX, ATL
Conclusions
• BPMN2 is a good choice to make the process visible
• BPMN2 allows quick adoption, but has a steep learning curve for mastering the richness of modeling constructs
• BPMN2 tools have very limited model checking facilities
• We developed a catalog of BPMN model smells
• Our metamodel based model checker allows detecting all smells in that catalog, thus improving the quality of BPMN2 process models
• We expect that our process model checker will improve the learning curve as well (still an hypothesis)
Ongoing / Future work
• Integrate model checking with two BPMN tools (Bizagi and Eclipse BPMN2 Modeler)
• Compare the learning curves and model flaws with and without model checking (academic experiments in Portugal and Brazil)
• “Real-world” process model assessments at FioCruz, UFRJ and Portuguese Air Force Headquarters during 2014
• Deploy our Test-Driven Modelling framework (J-Unit)
• Semantic checking of BPMN process models – Similar to Mooshak for programming contests
– Define process inputs and outputs and run the process
63 © 2
013 C
MM
I P
ort
ug
al C
onfe
rence S
eri
es –
All
Rig
hts
reserv
ed.
Make the Software Process Visible:
Lessons learnt while preparing a future MOOC
Thank you for your attention ;)
For further info see the QUASAR research group website:
https://sites.google.com/site/quasarresearchgroup/
Or contact me at: