57
Software Development of Large Systems F3

Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

Embed Size (px)

Citation preview

Page 1: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

Software Development of Large

Systems F3

Page 2: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

2

Lecture 3

• Project Management, Project Planning

• Documents, overview of the process

• Meetings

• Reviews

Page 3: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

Project management

Page 4: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

4

Project Management

• Goals

• Risk

• Planning

• Staffing and organization

• Management

• Control and follow-up

Page 5: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

5

Project goals

• Product the right product

• Which have the required quality

• And IS DELIVERED at the right time

• At a given cost

Page 6: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

6

Risk Management

An integral part of project management

The most important activities are:

– Risk identification

– Risk analysis (including cause analysis)

– Risk prioritization

– Development of the actions for these risks

Should we have a backup plan, avoid the risk or

minimize its effects on the system?

Page 7: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

7

“Classic” software project risks

• Barry Boehm (1991) identified 10 software risk items to

be addressed by software development projects:

– Personnel shortfalls

– Unrealistic schedules and budgets

– Developing the wrong functions and properties

– Developing the wrong user interface

– Gold plating (adding more features than is necessary)

– Continuing stream of requirements changes

– Shortfalls in externally furnished components

– Shortfalls in externally performed tasks

– Real-time performance shortfalls

Page 8: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

8

Shortcomings and risks

Two types of shortcomings:

– financial: being late; being over budget

– technical: does not meet requirements (functional and non-functional )

Three types of risks:

– chaos and confusion: change in requirements, uncovering

– problems and errors

– personnel: wrong people, too few people (or too many)

– project environment: undefined methods, unknown quality,

– errors discovered late, insufficient management

Page 9: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

9

Planning

• Establish goals

• Define the organization

• Define standards and policies

• Define project milestones and deliverables

• Draw up project schedule

• Estimate project cost and define a budget

• Evaluate risks

• Document planning activities

Page 10: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

10

Staffing and organization

• Experience and education

• Motivation and commitment

• Team composition

– Line organization

– Matrix organization

– Function sub-teams

Page 11: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

11

People management

Leadership

– give enthusiasm and

security

Follow up on personnel

– give daily instructions

– pursue good discipline

Delegate

Motivate

Support collaboration

Co-ordinate

Encourage communication

Solve conflicts

Stimulate improvement

Document decisions

Page 12: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

12

Project Control

Page 13: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

Documents

Page 14: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

14

Documentation from a project

• Defines the product in terms of e.g. Requirements,

Design and Test

• Describes the product for the customer and the

developers

• Supports the users of the product, e.g. user-,

administrator- and maintenance manuals

• Product documents and project documents

Page 15: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

15

Documentation from different phases

Page 16: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

16

Software development cycle

Page 17: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

17

High level what is done in each phase

• Phase 1, Specification

– Requirements ready

– Planning ready

– Test planning ready

• Phase 2, High level design and test

– High level design ready

– Test design ready

• Phase 3, Code ready

– All code ready

• Phase 4, Product ready

– The product is ready to be shipped

Page 18: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

18

Baseline

• After a review and bug correction, you create a baseline

whose constituent documents are ”frozen”. Subsequent

changes are controlled.

• Controlled means each change has to be handled by the

CCB (Change Control Board)

Page 19: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

19

Supporting the technical development

Page 20: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

20

Support in the development

• Techniques and tools

• Development environment

• Standards and rules

• (Further) education

• Metrics and evaluations

• Policies and strategies

Page 21: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

21

General rules for all documents

• Follow PH:2 if not stated otherwise in the SDP

• Keep them in the document library (we can provide one if

you need)

• No requirements to word processor and drawing tool

• Consistent front pages (see examples)

• All documents must have a configuration item number

• Don’t repeat the SRS and other base system documents

- reference it!

• Clearly mark differences against the base system.

Page 22: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

22

Information transmission

• Who is the target group

• Which pre-requisites do they have

• What is your message

• Does it say what you meant to say

• Is it unambiguous and clear

• Does is say from where you got the information

Page 23: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

23

Phase 1: Specification

• Decide on the project plan (SDP)

• Define and analyze the requirements to the product

• Plan reviews and tests

• This phase ends with a formal review and a formal

baseline

Page 24: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

24

SDP

• Responsible: PG

– careful plan for the development

» time/resources per phase/week/activity/group

» time plan (dates) for phases/documents/reviews

» a calendar overview per week of tasks for each group

– description of personnel organization and lines of

responsibility/authority

– description of support tools, methods and standards

– description of change management

Look into the RED book for more details.

Page 25: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

25

SRS

• Software Requirements Specification Responsible:

SG (also party UG)

– analysis and identification of the customers

”needs”

– functional and quality requirements

– all terms defined explicitly (wordlist)

– for each service at least two examples of use

must be described using scenarios

– structure of chapters like SRS; new section for

each service (see the course website and

download the SRS)

Page 26: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

26

SVVS

• Software Verification and Validation Specification

Responsible: TG

• Reviews – how and when

• Tests

– what kind of test

– a function test specification per service

– a system test specification

– all (testable) requirements must be referenced

Quality

– evaluation of non-functional requirements

Page 27: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

27

Phase 2 (high level design)

• Structure the software into high-level

components

• Create the design from every test case

• The phase ends with a formal review and a

formal baseline

Page 28: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

28

STLDD

Software Top-Level Design Document

Responsible: SG (UG)

– high-level design into components

– for all components it should say:

» where it is placed in the system

» its functionality

» control- and data flow to and from the component

» global data that are shared with other components

» input and output

Page 29: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

29

SVVI

Software Verification and Validation Instruction Responsible: TG

– Test instructions for every test case defined in SVVS

– Every test instruction must be ”self contained” the difficult

part is not to run the test – but to decide whether it went

well or wrong

– Test execution

which test cases are run where?

target machine/simulated environment

Page 30: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

30

Phase 3: Low level design (code)

• All units/modules must be specified completely

– low-level design is followed by an informal review

• Software Detailed Design Document Responsible: SG

(UG)

Page 31: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

31

Phase 4 – Integration and System

test

• System test - ensure that the system satisfies the

requirements

• Acceptance tests - show the customer that the system

fulfills his/her needs

• Collecting the experience from the project

• This phase ends with a formal review (review PDR) and a

formal baseline

Page 32: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

32

SVVR

Software Verification and Validation Report Responsible: TG

– results of function tests for every service

– results of system tests

– review protocol from formal reviews

– the number of errors and types that were found by each review

– the number of errors and types that were found in dynamic testing

– the number of errors and types that were found in the various document

– errors that remain in the system

– comments on the results

A TIP: SVVR might not be perfect ;-)

Page 33: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

33

SSD

• System Specification Document Responsible: PG

– version description (delivered version, differences

between versions, etc.)

– possible differences against SRS (motivated)

– installation instructions (where are the files)

Page 34: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

34

PFR

• Project Final Report Responsible: PG

– Summary of experience from the project

– Summary of metrics

– Conclusions from the metrics

– Error costs

– Comments on what you would be able to improve on

the project

Page 35: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

35

Document Timeline

Week 1 2 3 4 5 6 7

PG

SG

UG

TG

SDDD

SSD

PFR

PFR

PFR

PFR

SVVI

SDP

SRS

SRS

SVVS

STLDD

STLDD

SDDD

SVVR

Review: SSR

Baseline: SpecificationReview: PDR

Baseline: Design&Test

Review: PR

Baseline: Product

Page 36: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

36

Refinement of information

Page 37: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

Meetings

Page 38: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

38

Meetings

• Is a way to spread information and take decisions

• Give everybody in the project the same information

• One of the biggest reasons for failing project is lack of

communication with in project teams

• Project meetings - ~twice a week

• PG: meeting with the section manager - once a week

• Meeting with the design expert – W3

Page 39: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

39

Other deadlines and meetingsWeek 1 2 3 4 5 6 7

PG PSU,ESU LSU

PrM PrM PrM PrM PrM PrM PrM

KOM SMM SMM SMM SMM SMM

SG PSU,ESU LSU

PrM PrM PrM PrM PrM PrM PrM

KOM EM EM EM EM EM

UG PSU,ESU LSU

PrM PrM PrM PrM PrM PrM PrM

EM EM EM EM EM

TG PSU,ESU LSU

PrM PrM PrM PrM PrM PrM PrM

KOM EM EM EM EM EM

Project meetings = PrM PM, All

Section manager meeting = SMM PM

Expert meeting = EM PM, SG, UG, TG

Kick-off möten = KOM PG, SG, TG

Exercise sign-up = ESU All

Lab sign-up = LSU All

Project sign-up = PSU All

Page 40: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

Reviews

Page 41: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

41

The cost of mistakes

Page 42: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

42

Review/inspection

A meeting where you in a structured way check that

documents are correct and of a high quality. All errors are

recorded.

There are two types of reviews:

– Informal: the project’s internal quality control

– Formal: auditors, reviewers, inspectors, quality

assurers + the whole project group

Page 43: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

43

Reviews

The rule is simple: read the object of review in a

systematic way

That is: a manual technique with the goal of:

– find mistakes

– spread knowledge

– get a basis for decisions

These goals can be balanced in different ways in different

kinds of review

Page 44: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

44

Reviews

What?

– Requirements/design/

code/user interface

How?

• Reading technique:

– Ad hoc

– Checklist

– Scenario-based

Who?

• Number of reviewers

• Roles

When?

• Continuously

• Before decision

Page 45: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

45

An example of a review process

Roles:

– Author

– Moderator

– Reader

– Recorder

– Inspector

– Inspection process

responsible

Steps:

1. Planning

2. Overview

3. Preparation

4. Meeting

5. Rework

6. Follow-up

Page 46: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

46

Example review entry criteria

• Previous documents must be reviewed, e.g. The design is

not reviewed until after the specification

• Given standards have to be followed

• Automatic controls must have been carried out and been

approved (e.g. spelling checks)

Page 47: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

47

Review techniques

Page 48: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

48

Error types and severity

• Generic error types (see PH)

• Different specific error types for each document

– SRS

– SVVP & SVVR

– STLDD & SDDD

• Severity of errors: A, B, C

– A = showstopper (test stopper or a feature that has to

be correct to launch). Has to be corrected

– B = issue (stops only the tested functionality). Has to

be corrected

– C = smaller issue, does not need to be corrected

Page 49: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

49

Examples of checklist items

• Are all program variables initialized before their values are

used?

• Is there any possibility of buffer overflows?

• Are all conditional statements correct?

• Is each loop certain to terminate?

• Are all output variables assigned a value before they are

output?

• Can unexpected input result in errors?

• Are function parameters used in correct order?

• Is memory correctly de-allocated after it is no longer is used?

• And more…

Page 50: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

50

Review information collection

• Date for distribution of review material

• Time for preparation

• Date of review meeting

• End date for rework

• First review or re-review

• Identity of review material (e.g. document number)

• Size of review material

• Names of participants

• Number of reviewers

• Duration of meeting

• Number of errors divided by type and severity

• Decisions (approved, corrected or re-review)

• Compare the review protocol and problem reports

Page 51: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

51

Why do we need this information

• Short term: process control (cf. project control)

– example: estimation of remaining errors

• Long term: process improvement

Page 52: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

52

Experience

• Efficiency in reviews can be measured with respect to:

– average number of hours per found error

– number of errors found per review unit (e.g. page of design)

• Some numbers:

– efficiency: reviews are 2-10 times more efficient than tests

– reviews take time: 4-15% of a project’s resources

– can we motivate this

» reviews improve the quality

» reviews improve the productivity

• Example: one error in deployment that costs $10.000 -

– can pay for > 100 hours of review

• Reviews can replace some testing

Page 53: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

53

Reviews in your project

• Informal reviews - customer not present, done before

every formal review

• Formal reviews:

– Software Specification Review (week 2)

» SDP, SRS, SVVS

– Preliminary Design Review (week 4)

» STLDD, SVVI, monitor files (not on paper)

– Product Review (week 7)

» acceptance test

• The better informal review, the better formal review

• The document library is also reviewed at SSR, PDR, PR

Page 54: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

Preparation

Page 55: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

55

Labs

• Implement changes to the base system in Java and some

changes to an example system (we worked with it on

exercise 2 and 4)

• Mandatory preparation assignments!

• Mandatory preparation and participation on labs!

• Bring your computers if you have. This will help you

a lot during the lab. If you do not have computer with

internet connection, please a print out of the

exercise!

Page 56: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

56

TODO This week

• Prepare exercise session 3 (look at the base system in

the course website)

• Exercise 2 and 3 serve as preparation for the computer

exercises

• Sign up for computer exercises 1 & 2

• PG: schedule review 1, SDP

• SG: SRS

• UG: SRS

• TG: SVVS

• Do informal review

Page 57: Software Development of Large Systems F3 - Välkommen till ...cs.lth.se/fileadmin/cs/ETSN05/PUSS_Lecture3_2015.pdf · be addressed by software development projects: – Personnel

Questions?