III Conferência CMMI Portugal, Presentation 4: Make the Software Process Visible - Lessons learnt while preparing a future MOOC, Fernando Brito e Abreu, DCTI/ISCTE-IUL & CITI/FCT/UNL
Similaire à III Conferência CMMI Portugal, Presentation 4: Make the Software Process Visible - Lessons learnt while preparing a future MOOC, Fernando Brito e Abreu, DCTI/ISCTE-IUL & CITI/FCT/UNL
Similaire à III Conferência CMMI Portugal, Presentation 4: Make the Software Process Visible - Lessons learnt while preparing a future MOOC, Fernando Brito e Abreu, DCTI/ISCTE-IUL & CITI/FCT/UNL (20)
III Conferência CMMI Portugal, Presentation 4: Make the Software Process Visible - Lessons learnt while preparing a future MOOC, Fernando Brito e Abreu, DCTI/ISCTE-IUL & CITI/FCT/UNL
1. 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 …
2. 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.
3. 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?
6. 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
8. W process model
Requirements
Requirements Review
Analysis
Acceptance
Analysis
Review
Design
Release
Acceptance
Testing
System
Testing
Design
Integration
Integration
Review
Testing
Implementation
Code
Review
Spiral process model
Determine Objectives,
Alternatives and
Constraints
Evaluate Alternatives:
Identify and
Reduce Risk
Plan Next
Phases
Develop and Verify
Next-Level Product
11. Why is process modeling important?
• Process models
o describe how we do things
o make 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
12. 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
13. 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)
14. Business Process Modeling and Notation
• BPMN is a UML profile published by
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)
Object Management Group (OMG) is
an international, open membership, notfor-profit computer industry standards
consortium. OMG Task Forces develop
enterprise integration standards for a
wide range of technologies, namely
model-based standards.
• OMG’s BPMN versions:
–
–
–
–
1.1 – January 2008
1.2 – January 2009
2.0 – January 2011
2.0.1 – September 2013
BPMN: basic constructs
• 3 kinds of flow objects
– Activity
– Gateway
– Event
• 3 ways of connecting
– Sequence flow
– Message flow
– Association
• Two types of container
– Pools
– Lanes (swimlanes)
15. BPMN: activities
An activity is work
that is performed
within a process
Non-atomic
(compound)
activities
Atomic
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.
16. 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.
18. 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
21. 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.
22. BPMN learning curve problem
100%
50
# Cases
• Coverage of BPMN constructs
80%
40
60%
30
40%
20
20%
10
0%
0
BPMN elements used
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
23. Results validation
• Model checking upon a sample of 56 industry models
# Errors
0
1
2
3
4
5
6
7
8
9
BPMN Standard Violation
53,6%
26,8%
12,5%
3,6%
1,8%
1,8%
Best-Practices Violation
3,6%
7,1%
10,7%
19,6%
16,1%
25,0%
7,1%
5,4%
3,6%
1,8%
24. Motivation
• Contribute to attain better quality in process
modelling using BPMN
– Conforming to the BPMN 2.0 OMG standard
– Incorporating process BPMN modelling bestpractices 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
25. 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/
26. 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 ;)
27. 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()
28. BPMN model checker prototype
OCL rule checker (Bremen Univ.)
used for model smells detection
BPMN model is saved in
XPDL or XMI format
BPMN metamodel
instantiation
BPMN model checking
UML
conformsTo
conformsTo
MM BPMN
MM USE
conformsTo
XPDL/XMI
Concrete
Syntax
conformsTo
Transformation
DOM, SAX, ATL
USE
Concrete
Syntax
29. 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