software engineering 1 the life cicle of software lesson 5

34
ftware Engineering 1 Software Engineering Software Engineering The Life Cicle of Software Lesson 5

Upload: ernest-watson

Post on 26-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 1

Software EngineeringSoftware Engineering

The Life Cicle of SoftwareLesson 5

Page 2: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 2

0. Feasibility Study

1. Project Planning and Management

2. Risk Analysis

3. Requirements Analysis

4. Design Analysis

5. Software Implementation

6. V&V (Verification & Validation)

7. Maintness

The Life Cycle of Software

Page 3: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 3

The Life Cycle of Software

1. Project Planning and Management

Cost, time and effort definitionTo show these informations we use: Gantt

Chart

Page 4: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 4

The Life Cycle of Software

t0= Kickoff-Meeting tF= Software Derivable

Jan Feb Mar Apr May Jun Jul Aug

T1:= V&V

T4:= Requirements Analysis

T3:= Architectural Analysis

T2:= Software Implementation

a Dependency

= Milestone with

deliverable

Page 5: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 5

The Life Cycle of Software

The Gantt Chart is made by Project Manager in the first phases

BUT

Gantt Chart is updated by Project Manager during the project

To make a Gantt Chart we use Microsoft Project

Page 6: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 6

The Life Cycle of Software

Project Manager must update the Gantt Chart when:

• a developer changes work

• unexpected problems in the development

• …

Page 7: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 7

The Life Cycle of Software

Some solutions for the updating:

• increase resource allocation (overtime – it does not always work…)

• assign more resources to certain tasks (it does not always work)

• try and break task dependencies (e.g. 80%, …)

• make it a parallel process by splitting the system in independent tasks

• … or end the project 20 days late

Page 8: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 8

The Life Cycle of Software

t0= Kickoff-Meeting tF= Software Derivable

Jan Feb Mar Apr May Jun Jul Aug

T1:= V&V

T4:= Requirements Analysis

T3:= Architectural Analysis

T2:= Software Implementation

a Dependency

= Milestone with

deliverable

Page 9: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 9

The Life Cycle of Software

t0= Kickoff-Meeting tF= Software Derivable

Jan Feb Mar Apr May Jun Jul Aug

T1:= V&V

T4:= Requirements Analysis

T3:= Architectural Analysis

T2:= Software Implementation

try and break task

dependencies

= Milestone with

deliverable

Page 10: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 10

The Life Cycle of Software

t0= Kickoff-Meeting tF= Software Derivable

Jan Feb Mar Apr May Jun Jul Aug

T1:= V&V

T4:= Requirements Analysis

T3:= Architectural Analysis

T2:= Software Implementation

a Dependency

= Milestone with

deliverable

Page 11: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 11

The Life Cycle of Software

t0= Kickoff-Meeting tF= Software Derivable

Jan Feb Mar Apr May Jun Jul Aug

T1:= V&V

T4:= Requirements Analysis

T3A:= A part of Architectural Analysis

T2A:= A part Software Implementation

parallel process

= Milestone with

deliverable

T2BT3B

Page 12: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 12

The Life Cycle of Software

Project Planning and Management deliverable (made by user and software provider):

• Gantt Chart

• a table with more information about activities, developers, …

Page 13: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 13

2. Risk Analysis

The Life Cycle of Software

• How can we avoid adverse event (planned or unplanned)?

• What can we do when an adverse event impact?

Page 14: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 14

The Life Cycle of Software

Risk Analisys deliverable:

• a document with a list of adverse event and it’s solutions

Page 15: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 15

The Life Cycle of Software

3. Requirements Analysis:(what the system should

do)

Functionals Requirements

NONFunctionals

Requirements

Page 16: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 16

The Life Cycle of Software

Functionals Requirements

What the customer requires

Page 17: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 17

The Life Cycle of Software

NONFunctionals

Requirements

Constraints of the system

Page 18: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 18

Functionals Requirements:the services that the customer requires

The Life Cycle of Software

Page 19: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 19

NON-Functionals Requirements:• system properties and constraints

(e.g. reliability, response time and

storage requirements)

• a particular programming language

• development method

The Life Cycle of Software

Page 20: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 20

Requirements Analysis deliverable:

1. DSP (Checklist): requirements document

2. Test Planning: to check the requirements

3. User Manual

The Life Cycle of Software

Page 21: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 21

Requirements Analysis component:

1. DSP (Checklist):natural language and Use Case Diagrams

2. Test Planning:natural language anda set of pair <input data, output data>

3. User Manual:natural language and snapshot of the interface

The Life Cycle of Software

Page 22: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 22

Problems with natural language:

• functional and non-functional requirements tend to be mixed-up

• different requirements may be expressed together

• the analysis is difficult to understand

The Life Cycle of Software

Page 23: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 23

4. Design Analysis(how the system should implement the requirements)

• design analysis define the system’s architecture

• requirements and design are inseparable

The Life Cycle of Software

Page 24: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 24

The Life Cycle of Software

LogicalArchitecture

PhysicalArchitecture

StructuralBehaviour

How the modulesare structured

How the modules are implemented

How the modulesinteract

Page 25: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 25

The Life Cycle of Software

Logical Architecture: an example

InterfaceUser Software Storage

Page 26: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 26

The Life Cycle of Software

Physical Architecture : an example

PC Internet Server

Page 27: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 27

Design Analysis deliverable:

many UML Diagrams with different detail

• Class Diagram

• Sequence Diagram

• Interaction Diagram

• Deployment Diagram

• …

The Life Cycle of Software

Page 28: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 28

5. Software ImplementationWrite the code (e.g. Java. C++, …)

The Life Cycle of Software

Notice:only in sub-activity of this activity

the code is written!!!

Page 29: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 29

Software Implementationdeliverables:

o source code of the systemo document with some preliminary tests

The Life Cycle of Software

Page 30: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 30

6. V&V (Verification & Validation)

Make the test defined in the Requirerment Analysis

and some other test

Some of test are make by the developersOther test are make by other programmers

The Life Cycle of Software

Page 31: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 31

The Life Cycle of Software

Several types of test:

• test (during the implementation)• unit test (after the implementation)• integration test• system test• -Test• -Test

Page 32: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 32

The Life Cycle of Software

-Test

A version of the System tested by the users inside the Software Factory

V&V deliverable:

Page 33: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 33

The Life Cycle of Software

-Test

A version of the System tested by some other users

V&V deliverable:

Page 34: Software Engineering 1 The Life Cicle of Software Lesson 5

Software Engineering 34

The Life Cycle of Software

7. Maintness

• remove new bugs

• implement the change of requirements

• implement new requirements