software engineering 2 (02162) · agile manifesto ekkart kindler „we are uncovering better ways...

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

Upload: others

Post on 17-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Software Engineering 2 A practical course in software engineering

Ekkart Kindler

Page 2: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Conclusion, Outlook, Discussion

Page 3: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

3 SE2 (02162 e17), L12

Motivation

Page 4: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

4 SE2 (02162 e17), L12

Page 5: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

5 SE2 (02162 e17), L12

1. What did you learn?

Objectives of this course:

Basic skills in software engineering!

Page 6: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

6 SE2 (02162 e17), L12

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) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

7 SE2 (02162 e17), L12

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) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

8 SE2 (02162 e17), L12

Issues

How to make useful UML models

Domain model OOA

Implementation OOD

Learn to use new technologies YOURSELF!

Eclipse / Android / openHAB / Jenkins / …

Page 9: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

9 SE2 (02162 e17), L12

Issues

Get requirements straight

Write a systems specification

Page 10: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

10 SE2 (02162 e17), L12

Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

what

how

Page 11: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

11 SE2 (02162 e17), L12

Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

rough

detailed

Page 12: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

12 SE2 (02162 e17), L12

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) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

13 SE2 (02162 e17), L12

Issues

writing,

talking,

communicating, and

organizing yourself

work together

version management

(other/better tools)

Page 14: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Issues

Quality

Management

Testing

Reviews

Many practical issues on programming and solving

problems

14 SE2 (02162 e17), L12

Page 15: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

15 SE2 (02162 e17), L12

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) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

16 SE2 (02162 e17), L12

Topics

Software Specifications (incl. writing)

Modelling & Meta modelling

Quality mangament (incl. testing)

Code generation

Working together

Management

Page 17: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Agile 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 plan

That is, while there is value in the items on the right, we value

the items on the left more.“

Kent Beck et al. 2001

17 SE2 (02162 e17), L12

Page 18: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Agile Values

Communication

Simplicity

Feedback

Courage

18 SE2 (02162 e17), L12

Page 19: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Agile (fundamental) Principals

Rapid feedback

Assume Simplicity

Incremental change

Embracing change

Quality work

19 SE2 (02162 e17), L12

Page 20: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Agile 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

...

20 SE2 (02162 e17), L12

Page 21: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

21 SE2 (02162 e17), L12

2. What did you not learn?

Page 22: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

22 SE2 (02162 e17), L12

Technology issues

MOF (Meta Object Facility)

Software without Programming (EMF and

more) / code generation technologies

Other technology: 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) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Advanced Topics

Just to give you some idea

Page 24: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

24 SE2 (02162 e17), L12

Future technologies

Modelling dynamic behaviour

(and generating code from that)

Get completely rid of programming?!

Defining transformations

Page 25: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

25 SE2 (02162 e17), L12

More details & experience

Master courses

Requirements Engineering (H.S)

Systems integration (H.B.)

Web Services (H.B.)

Formal methods (A.H.)

Advanced topics in SE (B.W.)

Bachelor and master projects

(last slides)

Page 26: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Coordinating Interactions

The Event Coordination Notation

Ekkart Kindler

Page 27: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

27 SE2 (02162 e17), L12

From lecture 1: Example

Page 28: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

28 SE2 (02162 e17), L12

From lecture 1: Example

Place Transition

1 source

1 target

Arc

*

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) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

29 SE2 (02162 e17), L12

From lecture 1

Place Transition

1 source

1 target

Arc

*

PetriNet

Token

*

Node

Object

Analysis

Design

Implementation

Coding

Manifest-Version: 1.0

Bundle-ManifestVersion: 2

Bundle-Name: %pluginName

Bundle-SymbolicName: APetriNetEditorIn15Minutes.diagr

Bundle-Version: 1.0.0.qualifier

Bundle-ClassPath: .

Bundle-Activator: PetriNets.diagram.part.PetriNetDiagr

Bundle-Vendor: %providerName

Bundle-Localization: plugin

Export-Package: PetriNets.diagram.edit.parts,

PetriNets.diagram.part,

PetriNets.diagram.providers

Require-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.ed

org.eclipse.gmf.runtime.diagram.ui.resources.e

APetriNetEditorIn15Minutes;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, int

switch (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.0

Bundle-ManifestVersion: 2

Bundle-Name: %pluginName

Bundle-SymbolicName: APetriNetEditorIn15Minutes.diagr

Bundle-Version: 1.0.0.qualifier

Bundle-ClassPath: .

Bundle-Activator: PetriNets.diagram.part.PetriNetDiagr

Bundle-Vendor: %providerName

Bundle-Localization: plugin

Export-Package: PetriNets.diagram.edit.parts,

PetriNets.diagram.part,

PetriNets.diagram.providers

Require-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.ed

org.eclipse.gmf.runtime.diagram.ui.resources.e

APetriNetEditorIn15Minutes;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, int

switch (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) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler e.g. a Petri net simulator?

30 SE2 (02162 e17), L12

Page 31: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler 2. 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)

31 SE2 (02162 e17), L12

Page 32: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

32 SE2 (02162 e17), L12

2.1 Example: Vending machine

Slot

Panel

Control

Coffee

Brewer

Output

*

*

*

*

*

*

Safe

Coin

Tea

1

Page 33: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

33 SE2 (02162 e17), L12

Instance: Object Diagram

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

Page 34: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

34 SE2 (02162 e17), L12

Coordination Diagram

Slot

insert

return_

pass

reset

Panel GUI

coffee GUI

tea GUI

cancel GUI

Coffee

Output GUI

cup_in GUI

cup_out GUI

*

cup_in: 1

coffee: 1

tea: 1

reset: ALL

coffee: 1

tea: 1

cancel: ALL

reset: ALL

pass: 1

pass: 1

*

*

*

*

insert: 1

*

return_: ALL

pass: 1

Safe

pass

GUI Coin

insert GUI

pass

return_

Tea

Brewer

coffee

tea

reset

cup_in

1

Control

coffee

tea

cancel

pass

reset

Page 35: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

35 SE2 (02162 e17), L12

... + Event declaration

Slot

insert

return_

pass

reset

Panel GUI

coffee GUI

tea GUI

cancel GUI

Control

coffee

tea

cancel

pass

reset Coffee

Output GUI

cup_in GUI

cup_out GUI

*

cup_in: 1

coffee: 1

tea: 1

reset: ALL

coffee: 1

tea: 1

cancel: ALL

reset: ALL

pass: 1

pass: 1

*

*

*

*

insert: 1

*

return_: ALL

pass: 1

Safe

pass

GUI Coin

insert GUI

pass

return_

Tea

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

return(Slot slot) cancel() reset_()

cup_in() cup_out()

Brewer

coffee

tea

reset

cup_in

1

Page 36: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

36 SE2 (02162 e17), L12

Interactions

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

coffee

coffee

coffee

pass pass pass

pass

coffee: 1

pass: 1

pass: 1

coffee: 1

coffee: 1

pass: 1

Page 37: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

37 SE2 (02162 e17), L12

Interactions

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

coffee

coffee

coffee

pass pass pass

pass

coffee: 1

pass: 1

pass: 1 coffee: 1

pass: 1

Page 38: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

38 SE2 (02162 e17), L12

Another Interaction

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

cancel reset

reset

reset reset

return

return

cancel

reset return

reset: ALL cancel: ALL

reset: ALL

reset: ALL reset: ALL

return: ALL

return: ALL

Page 39: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

39 SE2 (02162 e17), L12

Local behaviour: Coffee

Page 40: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

40 SE2 (02162 e17), L12

Local behaviour: Coin

Page 41: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

41 SE2 (02162 e17), L12

Local behaviour: Control

reset

cancel

coffee

pass

Page 42: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

42 SE2 (02162 e17), L12

Local behaviour: Slot

reset

return

Page 43: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

43 SE2 (02162 e17), L12

Interactions

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

cancel reset

reset

reset reset

return

return

cancel

reset return

reset: ALL cancel: ALL

reset: ALL

reset: ALL reset: ALL

return: ALL

return: ALL

Page 44: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler 2.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

44 SE2 (02162 e17), L12

insert(Coin coin, Slot slot)

Control

coffee

tea

cancel

pass

reset

Brewer

coffee tea

reset

cup_in

coffee: 1

tea: 1

reset: ALL

Page 45: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler 2.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

45 SE2 (02162 e17), L12

Page 46: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Event Extension

46 SE2 (02162 e17), L12

tea

tea_blend tea_temp

Page 47: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler 2.4 Example2: Petri nets

47 SE2 (02162 e17), L12

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) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Petri net: Abstract Syntax

48 SE2 (02162 e17), L12

Page 49: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Example2: Petri nets

49 SE2 (02162 e17), L12

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) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler ECNO Semantics of PN

50 SE2 (02162 e17), L12

Page 51: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Result

51 SE2 (02162 e17), L12

t1

t2 t3

t4

Page 52: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Petri net simulator

52 SE2 (02162 e17), L12

Page 53: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler 3. Conclusion

53 SE2 (02162 e17), L12

Page 54: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Next Steps

54 SE2 (02162 e17), L12

Page 55: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

MSc and BSc Projects

Page 56: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Topics / areas

OpenHAB & CITIES

equipping an experimental room at DTU with devices

controlled by openHAB

equipping a school with devices for well-being

collecting, analysing and visualizing data

Flexible, configurable and generic data collection

from all kinds of devices (e.g. Fitbit)

health care

energy

science (SE-research)

CITIES

56 SE2 (02162 e17), L12

Page 57: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

57 SE2 (02162 e17), L12

ECNO

Behaviour modelling: ECNO

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

cancel reset

reset

reset reset

return

return

cancel

reset return

reset: ALL cancel: ALL

reset: ALL

reset: ALL reset: ALL

return: ALL

return: ALL

Page 58: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler ECNO Tool

58 SE2 (02162 e17), L12

Page 59: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler ECNO Projects

Improved IDE Integration & debugging

Smooth database integration (cntd.)

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

Semantics of ECNO in ECNO

59 SE2 (02162 e17), L12

Page 60: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

60 SE2 (02162 e17), L12

ePNK

Page 61: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler

61 SE2 (02162 e17), L12

Define a Petri Net Type

Defining a new PN by a model?

Page 62: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Projects

Usability, IDE integration and visualization

A generic simulator and state space analysis tool

...

62 SE2 (02162 e17), L12

Page 63: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Other 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

63 SE2 (02162 e17), L12

Page 64: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Internet of Things Lab: Setting up the

smart home of the future Build a home automation system for heating, cooling

and ventilation control

Page 65: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Goal of this Thesis

Set up a smart home IoT lab

Compare different monitoring technologies

Compare actuators from different brands

Integrate sensors and actuators into openHAB

Install and run:

A gateway (Raspberry Pi)

A Time Series Data Base (InfluxDB)

A Data Analysis and Visualization software (Grafana)

Providing an interface for model predictive control algorithms (Python, R)

Providing an interface for building energy performance simulation software

(Modelica, Dymola, IDA ice)

65 SE2 (02162 e17), L12

Page 66: Software Engineering 2 (02162) · Agile manifesto Ekkart Kindler „We are uncovering better ways of developing software by doing it and helping others do it. Through this work we

Ekkart Kindler Set up of the IoT Lab

Set up a IoT Lab, including (at least):

Indoor Air Sensors:

Temperature

Relative Humidity

CO2

Noise

A Weather Station:

Temperature

Relative Humidity

Actuators

Smart Thermostatic Valves

A Gateway

66 SE2 (02162 e17), L12