Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is …...

67
Software Engineering 2 A practical course in software engineering Ekkart Kindler

Transcript of Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is …...

Page 1: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Software Engineering 2A practical course in software engineering

Ekkart Kindler

Page 2: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Conclusion, Outlook, Discussion

Page 3: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

3SE2 (02162 e19), L11

Motivation

Page 4: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

4SE2 (02162 e19), L11

Page 5: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

5SE2 (02162 e19), L11

1. What did you learn?

Objectives of this course:Basic skills in software engineering!

Page 6: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

6SE2 (02162 e19), L11

Software Engineering is

… much more than programming!

… listening and understanding!… analytic and conceptual work!… communication!… a social process!…… acquiring new technologies!

… a discipline with proven concepts, methods, notations, and tools!

… and ever new technologies emerging!

Page 7: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

7SE2 (02162 e19), L11

Experience

Software Engineering requires much experience!

This experience can not be taught theoretically! will be provided in this course!

tutorial project and (only) backed by the lectures

Page 8: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

8SE2 (02162 e19), L11

Issues

How to make useful UML models Domain model / analysis OOA Architecture and design OOD

Learn to use new technologies YOURSELF!

Spring / JPA / Jenkins / …

Page 9: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

9SE2 (02162 e19), L11

Issues

Get requirements straight

Write a systems specification

Page 10: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

10SE2 (02162 e19), L11

Specifying Software

Project Definition Requirements Specification rough detailed

Systems specification Complete Models Implementation, Documentation

Handbook

what

how

Page 11: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

11SE2 (02162 e19), L11

Specifying Software

Project Definition Requirements Specification rough detailed

Systems specification Complete Models Implementation, Documentation

Handbook

rough

detailed

Page 12: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

12SE2 (02162 e19), L11

Specifying Software

Project Definition Requirements Specification rough detailed

Systems specification Complete Models Implementation, Documentation

Handbook

low cost

high cost

Page 13: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

13SE2 (02162 e19), L11

Issues

writing, talking, communicating, and organizing yourself

work together version management Collaborative Development Environments

Page 14: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerIssues

Quality Management Testing Reviews

Many practical issues on programming and solving problems

14SE2 (02162 e19), L11

Page 15: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

15SE2 (02162 e19), L11

Issues

Integration and extension Integrating features in existing software

(PlugIn Mechanisms, …) Developing parts in parallel

(based on a common model) Separating concerns Stepwise extension

(prototyping, agile) …

Page 16: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

16SE2 (02162 e19), L11

Topics

Software Specifications (incl. writing)

Modelling & Meta modelling

Quality mangament (incl. testing)

Code generation

Working together

Management

Page 17: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerAgile manifesto

„We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and

tools Working software over comprehensive

documentation Customer collaboration over contract negotiation Responding to change over following a planThat is, while there is value in the items on the right, we value the items on the left more.“Kent Beck et al. 2001

17SE2 (02162 e19), L11

Page 18: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerAgile Values

Communication

Simplicity

Feedback

Courage

18SE2 (02162 e19), L11

Page 19: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerAgile (fundamental) Principals

Rapid feedback

Assume Simplicity

Incremental change

Embracing change

Quality work

19SE2 (02162 e19), L11

Page 20: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerAgile Practices (overview)

On-site customer Small/short releases 2-3 week Planning game Coding standards Testing Continuous integration Pair programming Simple design Refactoring Collective ownership ...

20SE2 (02162 e19), L11

Page 21: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

21SE2 (02162 e19), L11

2. What did you not learn?

Page 22: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

22SE2 (02162 e19), L11

Technology issues

Meta modelling (MOF Meta Object Facility) Software without Programming (EMF and

more) / code generation technologies Other technologies: other application servers,

cloud, IoT, databases, service technologies, … Analyse, validate, verify software, … Other programming and modelling paradigms:

e.g. Aspect Oriented Modelling ...

Page 23: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Advanced Topics

Just to give you some idea

Page 24: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

24SE2 (02162 e19), L11

Future technologies

Modelling dynamic behaviour(and generating code from that)

Get completely rid of programming?!

Defining transformations

More IoT and cloud technologies

Page 25: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

25SE2 (02162 e19), L11

More details & experience

Master courses Systems integration (H.B.) Web Services (H.B.) Formal methods (A.H.)

Bachelor and master projects(last slides)

Page 26: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Coordinating InteractionsThe Event Coordination Notation

Ekkart Kindler

Page 27: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

27SE2 (02162 e19), L11

From lecture 1: Example

Page 28: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

28SE2 (02162 e19), L11

From lecture 1: Example

PlaceTransition

1 source

1 targetArc

*

PetriNet

Token*

Node

Object

From this (EMF) model for Petri nets:Generation of (Java) code for• all classes• methods for changing the Petri net• loading and saving the Petri net as

XML files (XMI)

Place

Transition

Arc

Token

With this and some more GMF information:Generation of the Java code of a graphical complete editor (with many fancy features). No programming at all.

Page 29: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

29SE2 (02162 e19), L11

From lecture 1

PlaceTransition

1 source

1 targetArc

*

PetriNet

Token*

Node

Object

AnalysisDesign

ImplementationCoding

Manifest-Version: 1.0Bundle-ManifestVersion: 2Bundle-Name: %pluginNameBundle-SymbolicName: APetriNetEditorIn15Minutes.diagrBundle-Version: 1.0.0.qualifierBundle-ClassPath: .Bundle-Activator: PetriNets.diagram.part.PetriNetDiagrBundle-Vendor: %providerNameBundle-Localization: pluginExport-Package: PetriNets.diagram.edit.parts,PetriNets.diagram.part,PetriNets.diagram.providersRequire-Bundle: org.eclipse.core.runtime,org.eclipse.core.resources,org.eclipse.core.expressions,org.eclipse.jface,org.eclipse.ui.ide,org.eclipse.ui.views,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.emf.ecore,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit.ui,org.eclipse.gmf.runtime.emf.core,org.eclipse.gmf.runtime.emf.commands.core,org.eclipse.gmf.runtime.emf.ui.properties,org.eclipse.gmf.runtime.diagram.ui,org.eclipse.gmf.runtime.diagram.ui.properties,org.eclipse.gmf.runtime.diagram.ui.providers,org.eclipse.gmf.runtime.diagram.ui.providers.ide,org.eclipse.gmf.runtime.diagram.ui.render,org.eclipse.gmf.runtime.diagram.ui.resources.edorg.eclipse.gmf.runtime.diagram.ui.resources.eAPetriNetEditorIn15Minutes;visibility:=reexpor

package PetriNets.impl;

public class PetriNetImpl extends EObjectImpl implements PetriNet {protected EList<PetriNets.Object> object;

protected PetriNetImpl() {super();

}

protected EClass eStaticClass() {return PetriNetsPackage.Literals.PETRI_NET;

}

public EList<PetriNets.Object> getObject() {if (object == null) {

object = new EObjectContainmentEList<PetriNets.Object>(Petri}return object;

}

public NotificationChain eInverseRemove(InternalEObject otherEnd, intswitch (featureID) {

case PetriNetsPackage.PETRI_NET__OBJECT:return ((InternalEList<?>)getObject()).basicRemove(otherEn

}return super.eInverseRemove(otherEnd, featureID, msgs);

}

public Object eGet(int featureID, boolean resolve, boolean coreType) {switch (featureID) {

case PetriNetsPackage.PETRI_NET__OBJECT:return getObject();

}return super.eGet(featureID, resolve, coreType);

Manifest-Version: 1.0Bundle-ManifestVersion: 2Bundle-Name: %pluginNameBundle-SymbolicName: APetriNetEditorIn15Minutes.diagrBundle-Version: 1.0.0.qualifierBundle-ClassPath: .Bundle-Activator: PetriNets.diagram.part.PetriNetDiagrBundle-Vendor: %providerNameBundle-Localization: pluginExport-Package: PetriNets.diagram.edit.parts,PetriNets.diagram.part,PetriNets.diagram.providersRequire-Bundle: org.eclipse.core.runtime,org.eclipse.core.resources,org.eclipse.core.expressions,org.eclipse.jface,org.eclipse.ui.ide,org.eclipse.ui.views,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.emf.ecore,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit.ui,org.eclipse.gmf.runtime.emf.core,org.eclipse.gmf.runtime.emf.commands.core,org.eclipse.gmf.runtime.emf.ui.properties,org.eclipse.gmf.runtime.diagram.ui,org.eclipse.gmf.runtime.diagram.ui.properties,org.eclipse.gmf.runtime.diagram.ui.providers,org.eclipse.gmf.runtime.diagram.ui.providers.ide,org.eclipse.gmf.runtime.diagram.ui.render,org.eclipse.gmf.runtime.diagram.ui.resources.edorg.eclipse.gmf.runtime.diagram.ui.resources.eAPetriNetEditorIn15Minutes;visibility:=reexpor

package PetriNets.impl;

public class PetriNetImpl extends EObjectImpl implements PetriNet {protected EList<PetriNets.Object> object;

protected PetriNetImpl() {super();

}

protected EClass eStaticClass() {return PetriNetsPackage.Literals.PETRI_NET;

}

public EList<PetriNets.Object> getObject() {if (object == null) {

object = new EObjectContainmentEList<PetriNets.Object>(Petri}return object;

}

public NotificationChain eInverseRemove(InternalEObject otherEnd, intswitch (featureID) {

case PetriNetsPackage.PETRI_NET__OBJECT:return ((InternalEList<?>)getObject()).basicRemove(otherEn

}return super.eInverseRemove(otherEnd, featureID, msgs);

}

public Object eGet(int featureID, boolean resolve, boolean coreType) {switch (featureID) {

case PetriNetsPackage.PETRI_NET__OBJECT:return getObject();

}return super.eGet(featureID, resolve, coreType);

Page 30: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindlere.g. a Petri net simulator?

30SE2 (02162 e19), L11

Page 31: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler2. The Event Coordination Notation

Motivation Given some object oriented software with (or without)

explicit domain model

Model behaviour on top of it – and make these models executable

Model behaviour on a high level of abstraction (domain):coordination of behaviour

Integrate behaviour models with structural models Integrate different structural models and manually written

code (or code generated by different technologies)31SE2 (02162 e19), L11

Page 32: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

32SE2 (02162 e19), L11

2.1 Example 1: Vending machine

Slot

Panel

Control

Coffee

Brewer

Output

*

**

*

*

*

Safe

Coin

Tea

1

Page 33: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

33SE2 (02162 e19), L11

Instance: Object Diagram

: Slot

:Panel

:Control

:Coffee

:Output: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

Page 34: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

34SE2 (02162 e19), L11

Coordination Diagram

Slot

insertreturn_passreset

Panel GUI

coffeeGUI

tea GUI

cancel GUI

Coffee

OutputGUI

cup_in GUI

cup_out GUI

*

cup_in: 1

coffee: 1 tea: 1

reset: ALL

coffee: 1tea: 1

cancel: ALL

reset: ALLpass: 1

pass: 1

**

*

*

insert: 1

*

return_: ALLpass: 1

Safe

pass

GUICoin

insert GUI

passreturn_

Tea

Brewercoffee

teareset

cup_in1

Control

coffeetea

cancelpassreset

Page 35: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

35SE2 (02162 e19), L11

... + Event declaration

Slot

insertreturn_passreset

Panel GUI

coffeeGUI

tea GUI

cancel GUI

Control

coffeetea

cancelpassreset

Coffee

OutputGUI

cup_in GUI

cup_out GUI

*

cup_in: 1

coffee: 1 tea: 1

reset: ALL

coffee: 1tea: 1

cancel: ALL

reset: ALLpass: 1

pass: 1

*

**

*

insert: 1

*

return_: ALLpass: 1

Safe

pass

GUICoin

insert GUI

passreturn_

Tea

insert(Coin coin, Slot slot) coffee()pass(Coin coin, Slot slot) tea()

return(Slot slot) cancel()reset_()

cup_in()cup_out()

Brewercoffee

teareset

cup_in1

Page 36: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

36SE2 (02162 e19), L11

Interactions

: Slot

:Panel

:Control

:Coffee

:Output: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

coffee

coffeecoffee

passpasspass

pass

coffee: 1

pass: 1

pass: 1

coffee: 1

coffee: 1

pass: 1

Page 37: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

37SE2 (02162 e19), L11

Interactions

: Slot

:Panel

:Control

:Coffee

:Output: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

coffee

coffeecoffee

passpasspass

pass

coffee: 1

pass: 1

pass: 1coffee: 1

pass: 1

Page 38: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

38SE2 (02162 e19), L11

Another Interaction

: Slot

:Panel

:Control

:Coffee

:Output: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

cancel reset

resetresetreset

return

return

cancel

resetreturn

reset: ALLcancel: ALL

reset: ALL

reset: ALLreset: ALL

return: ALL

return: ALL

Page 39: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

39SE2 (02162 e19), L11

Local behaviour: Coffee

Page 40: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

40SE2 (02162 e19), L11

Local behaviour: Coin

Page 41: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

41SE2 (02162 e19), L11

Local behaviour: Control

reset

cancel

coffee

pass

Page 42: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

42SE2 (02162 e19), L11

Local behaviour: Slot

reset

return

Page 43: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

43SE2 (02162 e19), L11

Interactions

: Slot

:Panel

:Control

:Coffee

:Output: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

cancel reset

resetresetreset

return

return

cancel

resetreturn

reset: ALLcancel: ALL

reset: ALL

reset: ALLreset: ALL

return: ALL

return: ALL

Page 44: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler2.2 ECNO: Basic Concepts

ElementTypes (Classes) EventTypes with

parameters

Global Behaviour: Coordination annotations for references Event type Quantification (1 or ALL)

Local behaviour: ECNO nets (or something else) Event binding (with parameter assignment) Condition Action

44SE2 (02162 e19), L11

insert(Coin coin, Slot slot)

Control

coffeetea

cancelpassreset

Brewer

coffee teareset

cup_in

coffee: 1tea: 1

reset: ALL

Page 45: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler2.3 Extensions

ECNO with its basic concepts has some limitations, which makes modelling things in an adequate way a bit painful.

Sometimes, we want to extend event types later

45SE2 (02162 e19), L11

Page 46: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerEvent Extension

46SE2 (02162 e19), L11

tea

tea_blend tea_temp

Page 47: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler2.4 Example 2: Petri nets

47SE2 (02162 e19), L11

Fire Transition t:for ALL incoming Arcs a:

for ONE source Place p of Arc a:find a token and remove it

for ALL outgoing arcs a:for ONE target Place p of Arc a:add a new Token

Transition t enabled:for ALL incoming Arcs a:

for ONE source Place p of Arc a:find a token

t

remove add

Page 48: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerPetri net: Abstract Syntax

48SE2 (02162 e19), L11

Page 49: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerExample2: Petri nets

49SE2 (02162 e19), L11

Fire Transition t:for ALL incoming Arcs a:

for ONE source Place p of Arc a:find a token and remove it

for ALL outgoing arcs a:for ONE target Place p of Arc a:add a new Token

Transition t enabled:for ALL incoming Arcs a:

for ONE source Place p of Arc a:find a token

t

remove add

Page 50: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerECNO Semantics of PN

50SE2 (02162 e19), L11

Page 51: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerResult

51SE2 (02162 e19), L11

t1

t2t3

t4

Page 52: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerPetri net simulator

52SE2 (02162 e19), L11

Page 53: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler3. Conclusion

53SE2 (02162 e19), L11

Page 54: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerMaster Project: WfMS

54SE2 (02162 e19), L11

Page 55: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

MSc and BSc Projects

Page 56: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerTopics / areas

CITIES, skoleklima/climify Solidify skoleklima/climify Create a secure version, which might run in production Generic backend for collecting

data from IoT devices

Flexible, configurable and generic data collection from all kinds of devices (e.g. Fitbit) health care energy EmpiRes CITIES

56SE2 (02162 e19), L11

Page 57: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerTopics / areas

Empirical Research Platform: EmpiRes

57SE2 (02162 e19), L11

Development Platform

triggers intervention

Intervention Service(feedback, recommendations,

adaptations)

Intervention Repository

Feature Extraction

Context Detection(e.g., Developer, Task, Tools &

Methods, Digital Artifact)

iTracePlugin

Lab Streaming Layer(Synchronization and time stamping)

User interactionslinked to digital artifact

eye gaze data linked to digital artifact

Mental State Detection

(e.g., high Cognitive Load)

GSR DriverC

leaning & Preprocessing

GSR Signal

…LoggingService

Middleware (Messaging, Authorization, etc.)

IDE Event Stream Layer(Synchronization)

Page 58: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerTopics / areas

Empirical Research Platform (cntd.)

58SE2 (02162 e19), L11

Page 59: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Live Road Assessment (LiRA)based on modern cars’ sensors

Ekkart Kindler

Page 60: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerBackground

Roads make a crucial contribution to economic development and growth and bring important social benefits.

60

The Road conditions change over the life time

SE2 (02162 e19), L11

Page 61: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerBackground

Standard road measures have been developed to guarantee proper road conditions and to optimize maintenance strategies focusing on (DRD operational costs 5 million DKK per year – do not include Env. Emissions) : Safety Comfort Durability Environmental emissions

(noise and CO2)

61SE2 (02162 e19), L11

Page 62: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerProject idea

Can we find a more efficient and faster way to monitor, maintain and manage the roads?

Modern cars are equipped with many sensors and can also provide further data including energy consumption. Can car sensors data be usedto measure road conditions?

62SE2 (02162 e19), L11

Page 63: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerOverview

63SE2 (02162 e19), L11

MODELING

SOFTWARE DEVELOPMENT

LiRA map

Page 64: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart Kindler

64SE2 (02162 e19), L11

ECNO

Behaviour modelling: ECNO

: Slot

:Panel

:Control

:Coffee

:Output: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

cancel reset

resetresetreset

return

return

cancel

resetreturn

reset: ALLcancel: ALL

reset: ALL

reset: ALLreset: ALL

return: ALL

return: ALL

Page 65: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerECNO Tool

65SE2 (02162 e19), L11

Page 66: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerECNO Projects

Improved IDE Integration & debugging

Smooth database integration (cntd.)

Case studies / larger examples (e.g. games)

Semantics of ECNO in ECNO

66SE2 (02162 e19), L11

Page 67: Software Engineering 2 (02162) · Ekkart Kindler SE2 (02162 e19), L11 6 Software Engineering is … much more than programming! … listening and understanding! … analytic and conceptual

Ekkart KindlerOther topics

Analysis and design of lighting in buildings

Model-based Software Engineering Domain Specific Languages (DSL) Automating the SE process Tools support for development process

67SE2 (02162 e19), L11