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

Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Software Engineering 2 A practical course in software engineering

Ekkart Kindler

Page 2: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

III. Specifying Software

Page 3: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

3 SE 2 (02162 e14), L03 (selected)

III. Specifying Software

Goals:

Defining what the software should do (before it is

really there)

Customer and Developer agree on what should be

delivered

Effort (resources and time) can be planned based

on that (contract will be based on that).

C-requirements D-requirements

Page 4: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

4 SE 2 (02162 e14), L03 (selected)

Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

what

how

Page 5: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

5 SE 2 (02162 e14), L03 (selected)

Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

rough

detailed

Page 6: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

6 SE 2 (02162 e14), L03 (selected)

Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

low cost

high cost

Page 7: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

7 SE 2 (02162 e14), L03 (selected)

Specifying Software

Goals:

Defining what the software should do before it is

really there

Customer and developer agree on what should be

delivered

Effort (resources and time) can be planned based

on that (contract will be based on that).

Page 8: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

8 SE 2 (02162 e14), L03 (selected)

Project Definition: Contents

Partners

Context

Objective

Scope (in particular, what is NOT to be done)

Functionality (from the end-users point of view)

Users

Use cases (as text, not necessarily as diagrams)

Main data (in our case ”modelling concepts”, ”extra 3D info”)

Platform (HW/SW)

Glossary of main terms

Page 9: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

2. Requirements Specification

Page 10: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

10 SE 2 (02162 e14), L03 (selected)

Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

Page 11: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

11 SE 2 (02162 e14), L03 (selected)

What do we need?

What should be achieved by the product?

How is it used?

Which functions does it have?

Which data are there?

What interfaces should be there?

In which quality?

On which platform or technology?

Page 12: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

12 SE 2 (02162 e14), L03 (selected)

Requirements Spec

Partners: Customer & Developer

1. Objectives

2. Product use

3. Product functions

4. Product characteristics (non-functional req.) Platform

Performance

Security

5. Glossary (could be included somewhere else)

Page 13: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

13 SE 2 (02162 e14), L03 (selected)

Differences

Project definition / idea

Requirements specification

Rough

detailed

Systems specification

Text (possibly sketch of screen

shots); not complete

Use cases (named), glossary,

rough domain model

Use cases modelled and

explained, complete domain

model, GUI design (sketch),

acceptance tests

Architecture & design of

Software, detailed models,

software models

Page 14: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

3. Software Specification

Page 15: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

15 SE 2 (02162 e14), L03 (selected)

Design Phase

Planning

phase

Definition

phase

Design

phase

Implem.

phase

Acceptance

phase

Mainten.

phase

Page 16: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

16 SE 2 (02162 e14), L03 (selected)

Specifying Software

Goals:

Defining what the software should do (before it is

really there)

Customer and developer agree on what should be

delivered

Effort (resources and time) can be planned based

on that (contract will be based on that).

C-requirements D-requirements

Page 17: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

17 SE 2 (02162 e14), L03 (selected)

Specifying Software

Project Idea

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

rough

detailed

what

how

Page 18: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

18 SE 2 (02162 e14), L03 (selected)

Now: Software Specification

Goals:

Defining how the software should be technically

realized

In such detail that the implementation is

“details only”

C-requirements

D-requirements

Page 19: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

19 SE 2 (02162 e14), L03 (selected)

Main issues

Software architecture /

implementation architecture

auxiliary systems and infrastructure

persistent storage of data (DB and DAL)

GUI

and the relation between them

(and the domain model).

Page 20: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

20 SE 2 (02162 e14), L03 (selected)

Architecture

Software architecture:

Main components and sub-components of the

system

Interfaces (provided and required) of the

components

Implementation architecture:

Software architecture +

Platform, technology, and language specific details

Page 21: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

21 SE 2 (02162 e14), L03 (selected)

Architecture

Notations:

Component diagrams

Class diagrams (refined)

Design patterns & their terminology

Sequence diagrams + state machines

Behaviour at

interfaces

Behaviour at

interfaces

Behaviour of

important components

or classes

Page 22: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

22 SE 2 (02162 e14), L03 (selected)

Reminder: Component Diagrams

Component (on different

levels of granularity)

Provided interface

Required interface

Sub-components

(could be classes)

Page 23: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

23 SE 2 (02162 e14), L03 (selected)

Design principles

Clearly identified functionality

Simplicity of interfaces

Loose coupling between different components

Performance / efficiency

Page 24: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

24 SE 2 (02162 e14), L03 (selected)

Model refinements

Naming conventions

Directions of associations

Relaxed cardinalities

Proper containments ( serialization)

Visibilities of attributes and references

“Characteristics” ( EMF generation)

Auxiliary attributes, classes, and associations

(in EMF often generated automatically)

DB Schema

Page 25: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

25 SE 2 (02162 e14), L03 (selected)

Excursion / Discussion

(OO) Analysis vs. (OO) Design

Page 26: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

26 SE 2 (02162 e14), L03 (selected)

GUI

Sketch GUI visually

Associate GUI elements with model elements

Discuss main use cases in terms of GUI

(hand book)

Page 27: Software Engineering 2 (02162)03).pdf · Design Phase Planning phase Definition phase Design phase Implem. phase Acceptance phase Mainten. phase . Ekkart Kindler SE 2 (02162 e14),

Ekkart Kindler

27 SE 2 (02162 e14), L03 (selected)

Req Spec vs. Swt Spec

1. Objectives

2. Product use

3. Product functions

4. Product characteristics (non-functional req.) Platform

Performance

Security

5. …

6. Glossary