iii conferência cmmi portugal, presentation 4: make the software process visible - lessons learnt...

30
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 …

Upload: isabelmargarido

Post on 06-May-2015

317 views

Category:

Technology


0 download

DESCRIPTION

Checking the validity of BPMN process models to indentify typical model smells and reduce students' learning curve.

TRANSCRIPT

Page 1: 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

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 …

Page 2: 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

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.

Page 3: 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

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?

Page 4: 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
Page 5: 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

Find the

process!

Page 6: 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

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

Page 7: 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

Waterfall process model

Requirements

Analysis

Design

Implementation

Test

Maintenance

V process model

Requirements

Analysis

Design

Implementation

Release

Acceptance

Integration

Page 8: 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

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

Page 9: 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

© Fernando Brito e Abreu

RUP process model

XP process model

Page 10: 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

Scrum process model

Scrum process model (detailed)

Page 11: 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

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

Page 12: 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

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

Page 13: 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

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)

Page 14: 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

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

Page 15: 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

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.

Page 16: 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

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.

Page 17: 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

BPMN: expanded subprocesses

Gartner’s Magic Quadrant for BPM tools

Page 18: 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

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

Page 19: 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

Title: Why MOOCs?

Massive Open Online Courses

Page 21: 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

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.

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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

Page 25: 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

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/

Page 26: 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

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 ;)

Page 27: 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

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()

Page 28: 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

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

Page 29: 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

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

Page 30: 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

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:

[email protected]

[email protected]