Software Engineering 2 · Software Engineering 2 ... understanding of the software engineering...

40
Ekkart Kindler Software Engineering 2 A practical course on software engineering Ekkart Kindler Technical University of Denmark Informatics and Mathematical Modelling

Transcript of Software Engineering 2 · Software Engineering 2 ... understanding of the software engineering...

Ekkart Kindler

Software Engineering 2 A practical course on software engineering

Ekkart Kindler

Technical University of Denmark

Informatics and Mathematical Modelling

Ekkart Kindler

Conclusion, Outlook, Discussion

Ekkart Kindler

3 SE 2 (02162 e13), L11

Motivation

Ekkart Kindler

4 SE 2 (02162 e13), L11

Ekkart Kindler

5 SE 2 (02162 e13), L11

1. What did you learn?

Objectives of this course:

Basic skills in software engineering!

Ekkart Kindler

6 SE 2 (02162 e13), 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!

Ekkart Kindler

7 SE 2 (02162 e13), 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

Ekkart Kindler

8 SE 2 (02162 e13), L11

Objective

Practice the concepts, methods, notations and

Tools for software engineering

(improve programming skills)

understanding of the software engineering process

experiences with problems and concepts for

solving them

writing documents and creating models

use of methods and tools

practice communication and presentation skills

capability of teamwork and leadership

acquire new technologies

Ekkart Kindler

9 SE 2 (02162 e13), L11

Motivation

Ekkart Kindler

10 SE 2 (02162 e13), L11

Problems

imprecise requirements

mistakable and unclear requirements

inconsistent requirements

changing requirements

changing environments (software / hardware)

different versions and configurations

changing tools, notations, languages, methods, concepts, technologies

collective knowledge only

communication

Ekkart Kindler

11 SE 2 (02162 e13), L11

Software engineering

Branches: Development:

actual development of the software product

Management: Manage (control and improve) the development process

Quality management: Planning and implementing measures that guarantee that the software meets the required quality

Software maintenance: Remove faults occurring in operation, adapt software to changing requirements and environments

Ekkart Kindler

12 SE 2 (02162 e13), L11

Process

Planning

phase

Definition

phase

Design

phase

Implem.

phase

Acceptance

phase

Mainten.

phase

Ekkart Kindler

13 SE 2 (02162 e13), L11

Process Meta model

Phase

Role

Document

needs

produces

needs

Method Notation

used in

uses

is involved

works on

written in

State has

Ekkart Kindler

14 SE 2 (02162 e13), L11

Process

Planning

phase

Definition

phase

Design

phase

Implem.

phase

Acceptance

phase

Mainten.

phase

Ekkart Kindler

15 SE 2 (02162 e13), L11

Models

:Place

:Transition

:Arc

:Transition

:Place

:Arc

:Arc

source

target source

target

target source

:Arc source target

:Petrinet

:Token

Place Transition

1 source

1 target

Arc

*

PetriNet

Token *

Node

Object

1 source

1 target

Association Class

ClassDiagram

* *

:Class :Class

:Association

:Association

Place

Transition

Arc

Token

Ekkart Kindler

16 SE 2 (02162 e13), L11

Issues

Purpose and roles of models in SE

Model / View / Controller

Model Domain model and functions

View Representation of model and user interaction

Controller Makes changes and calls functions of the model

queries

informs on changes

makes changes

selects

informs on user interactions

Ekkart Kindler

17 SE 2 (02162 e13), L11

Issues

How to make useful UML models

Domain model OOA

Implementation OOD

Learn to use new technologies

YOURSELF!

Eclipse / GEF / EMF / GMF / Xtext…

Ekkart Kindler

18 SE 2 (02162 e13), L11

Issues

Get requirements straight

Write a systems specification

Petri net Animation info

shape: train

animation: move

geometry: track1

...

«3D models»

...

+

Simple interactive

3D animation of a

system

Ekkart Kindler

19 SE 2 (02162 e13), L11

Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

what

how

Ekkart Kindler

20 SE 2 (02162 e13), L11

Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

rough

detailed

Ekkart Kindler

21 SE 2 (02162 e13), L11

Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

low cost

high cost

Ekkart Kindler

22 SE 2 (02162 e13), L11

Issues

writing,

talking,

communicating, and

organizing yourself

work together

version management

(other/better tools)

Ekkart Kindler Issues

Quality

Management

Testing

Reviews

Many practical issues on programming and

solving problems

23 SE 2 (02162 e13), L11

Ekkart Kindler

24 SE 2 (02162 e13), 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)

Ekkart Kindler

25 SE 2 (02162 e13), L11

Topics

Software Specifications (incl. writing)

Modelling & Meta modelling

Quality mangament (incl. testing)

Code generation

Working together

Management

Ekkart Kindler

26 SE 2 (02162 e13), L11

2. What did you not learn?

Ekkart Kindler

27 SE 2 (02162 e13), L11

Technology issues

MOF (Meta Object Facility)

Content providers, …

Validation (OCL)

Transactionality (EditDomains)

Customised code transformations

(JET / XSLT and other concepts and

technologies)

Analyse, validate, verify these models, …

Other SE-Principles:

e.g. Aspect oriented Modelling

Ekkart Kindler

Advanced Software Engineering

Just to give you some idea

Ekkart Kindler

29 SE 2 (02162 e13), L11

Future technologies

Modelling dynamic behaviour

(and generating code from that)

Defining transformations

Get completely rid of programming?!

Ekkart Kindler

30 SE 2 (02162 e13), L11

Example: Moving Shuttles

Track Shuttle

Simple …

at occupied

1 0..1

pred

succ

Ekkart Kindler

31 SE 2 (02162 e13), L11

An Instance

t1:Simple s:Shuttle

pred

occ

t2:Simple

succ

at

:Simple

pred

succ

pred

:Simple

succ

Ekkart Kindler

32 SE 2 (02162 e13), L11

Behaviour

t1:Simple s:Shuttle

pred

occ

t2:Simple

succ

at

at

occ

:Simple

pred

succ

pred

:Simple

succ

before

<<delete>>

after

<<create>>

Ekkart Kindler

33 SE 2 (02162 e13), L11

Behaviour as Story Pattern

t1:Simple s:Shuttle

pred

occ

t2:Simple

succ

at

at

occ

<<delete>>

:Shuttle occ at

Ekkart Kindler

34 SE 2 (02162 e13), L11

More details & experience

Master courses

Systems integration (H.B.)

Formal methods (A.H.)

Advanced topics in SE (E.K., f13)

Bachelor and master projects

(next slides)

Ekkart Kindler

Bachelor and Master Projects

Ekkart Kindler

36 SE 2 (02162 e13), L11

Bachelor

3D-Visualisation (more advanced features / net

types)

fault

diagnosis

Real world

verification

controller

synthesis

simulation

performance

analysis

Virtual world

Ekkart Kindler

37 SE 2 (02162 e13), L11

Bachelor / Master

ePNK, PNML Tools, ISO/IEC 15909-2

Place Transition

1 source

1 target

Arc

*

PetriNet

Token

*

Node

Object

Ekkart Kindler

38 SE 2 (02162 e13), L11

ePNK

Ekkart Kindler

39 SE 2 (02162 e13), L11

Master

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

Ekkart Kindler

40 SE 2 (02162 e13), L11

Master

ePNK: Modular PNML

ePNK: XML Mapping mechanism

ECNO: Database integration (hibernate)

ECNO: DSL for defining a GUI