50
1 1 © Wolfgang Emmerich, 1999 Communications Software Engineering (Z01) Wolfgang Emmerich Dept. of Computer Science University College London 2 © Wolfgang Emmerich, 1999 How to reach me? Pearson Building, 402 020 7679 4413 www.cs.ucl.ac.uk/staff/w.emmerich

Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

1

1© Wolfgang Emmerich, 1999

Communications SoftwareEngineering (Z01)

Wolfgang EmmerichDept. of Computer ScienceUniversity College London

2© Wolfgang Emmerich, 1999

How to reach me?

Pearson Building, 402

020 7679 4413

www.cs.ucl.ac.uk/staff/w.emmerich

Page 2: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

2

3© Wolfgang Emmerich, 1999

Organization of the Course

■ 15 Lectures this week• every morning from 9-12 (G23)

■ Coursework: Group Project in Z15■ Coursework mark is course mark!■ No written exam paper

4© Wolfgang Emmerich, 1999

Aims and Objectives

■ In the short run:• Provide Foundation for Group Project

■ In the long run:• Achieve proficiency in modern software

engineering notations, methods & tools– Formal Methods: Process Algebra (FSP)– Unified Modeling Language– Use-case centred requirements elicitation– Object-oriented design for distributed systems

■ Enable you to define an appropriate softwareprocess for a distributed development project

Page 3: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

3

5© Wolfgang Emmerich, 1999

Outline of the Course

■ Introduction■ Software Process■ Requirements Analysis■ Intro to Formal Methods■ Process Algebra (FSP)■ Condition Synchronization■ Starvation and Deadlocks■ Liveness and Progress

■ Design Model■ Distributed Objects■ Design Patterns■ Project Management■ CASE

6© Wolfgang Emmerich, 1999

Literature

[JCJO92] I. Jacobson, M.Christerson, P.Jonsson andG.Oevergaard: Object-Oriented Software Engineering -A Use Case Driven Approach, Addison-Wesley, 1992.

[BRJ99] G. Booch, J. Rumbaugh and I. Jacobson. The UnifiedModeling Language User Guide. Addison-Wesley, 1999

[MK99] J. Magee and J. Kramer. Concurrency: State Modelsand Java Programs. John Wiley & Sons. 1999

[Emm99] Engineering Distributed Objects. John Wiley & Sons.2000. http://www.cs.ucl.ac.uk/staff/emmerich/book. Toappear.

Page 4: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

4

7© Wolfgang Emmerich, 1999

Z02: Communications Software EngineeringIntroduction

Wolfgang Emmerich

8© Wolfgang Emmerich, 1999

What do you know about SE?

On a blank sheet of paper, write down three tofive concepts, which you believe are essentialto Software Engineering!

Page 5: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

5

9© Wolfgang Emmerich, 1999

Outline

■ What is Software Engineering?

■ Software Development Processes

■ Software Process Case Study

10© Wolfgang Emmerich, 1999

Software Engineering

■ Ian Sommerville:• Software engineering is concerned with methods,

tools and techniques for developing andmanaging the process of creating and evolvingsoftware products;

■ Oxford English Dictionary:• the professional development, production, and

management of system software;

Page 6: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

6

11© Wolfgang Emmerich, 1999

Why Software Engineering?

■ The economies of ALL developed nations aredependent on software

■ More and more systems are softwarecontrolled

■ Software engineering is concerned withtheories, methods and tools for professionalsoftware development

■ Software engineering expenditure representsa significant fraction of GNP in all developedcountries

12© Wolfgang Emmerich, 1999

Software Costs

■ Software costs often dominate system costs.The costs of software on a PC are oftengreater than the hardware cost

■ Software costs more to maintain than it doesto develop. For systems with a long life,maintenance costs may be several times thedevelopment costs

■ Software engineering is concerned with cost-effective software development

Page 7: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

7

13© Wolfgang Emmerich, 1999

Software Products

■ Generic products• Stand-alone systems which are produced by a

development organisation and sold on the openmarket to any customer

■ Bespoke (customised) products• Systems which are commissioned by a specific

customer and developed specially by somecontractor

■ Most software expenditure is on genericproducts but most development effort is onbespoke systems

14© Wolfgang Emmerich, 1999

Software Product Attributes

■ Maintainability: SW should be evolvable tomeet changing requirements

■ Dependability: SW should not causephysical/economic damage upon failure

■ Efficiency: SW should not make wasteful useof system resources

■ Usability: SW should have an appropriateuser interface and documentation

Page 8: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

8

15© Wolfgang Emmerich, 1999

Outline

■ What is Software Engineering?

■ Software Development Processes

■ Software Process Case Study

16© Wolfgang Emmerich, 1999

Software Development Process

■ Structured set of activities required todevelop a software system• Requirements Analysis• Design• Implementation• Validation• Evolution

■ Activities vary depending on organisation andtype of system being developed

■ Must be modelled to be managed

Page 9: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

9

17© Wolfgang Emmerich, 1999

Process characteristics

■ Understandability: Is the process defined andunderstandable

■ Visibility: Is the process progress externallyvisible

■ Supportability: Can the process be supportedby CASE tools

■ Acceptability: Is the process acceptable tothose involved in it

18© Wolfgang Emmerich, 1999

Process characteristics

■ Reliability: Are process errors discoveredbefore they result in product errors

■ Robustness: Can the process continue inspite of unexpected problems

■ Maintainability: Can the process evolve tomeet changing organisational needs

■ Rapidity: How quickly can the system beproduced

Page 10: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

10

19© Wolfgang Emmerich, 1999

Software process models

■ Normally, specifications areincomplete/anomalous

■ Very blurred distinction betweenspecification, design and manufacture

■ No physical realisation of the system fortesting

■ Software does not wear out - maintenancedoes not mean component replacement

20© Wolfgang Emmerich, 1999

Generic software process models

■ The waterfall model• Separate and distinct phases of specification and

development

■ Evolutionary development• Interleaved specification and development

■ Incremental development• Development of increments

■ Formal transformation• A mathematical system model is formally

transformed to an implementation

Page 11: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

11

21© Wolfgang Emmerich, 1999

Waterfall Approach

UserReqmnts

SystemReqmnts

Architect.Design

Design&Product.

Transfer

Operat. &Maintenance

22© Wolfgang Emmerich, 1999

Evolutionary Development

UR1

S1RAD1

DD1

TR1

OM1

UR2

SR2

AD2

DD2

TR2

OM2

...

Page 12: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

12

23© Wolfgang Emmerich, 1999

UR

SRAD

DD1

TR1

OM1

DD2

TR2

OM2

Incremental Development

24© Wolfgang Emmerich, 1999

Risk management

■ Perhaps the principal task of a manager is tominimise risk

■ The 'risk' inherent in an activity is a measureof the uncertainty of the outcome of thatactivity

■ High-risk activities cause schedule and costoverruns

■ Risk is related to the amount and quality ofavailable information. The less information,the higher the risk

Page 13: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

13

25© Wolfgang Emmerich, 1999

Process model risk problems

■ Waterfall• High risk for new systems because of

specification and design problems• Low risk for well-understood developments using

familiar technology

■ Evolutionary• Low risk for new applications because

specification and program stay in step• High risk because of lack of process visibility

26© Wolfgang Emmerich, 1999

Hybrid process models

■ Large systems are usually made up of severalsub-systems

■ The same process model need not be usedfor all subsystems

■ Prototyping for high-risk specifications■ Waterfall model for well-understood

developments

Page 14: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

14

27© Wolfgang Emmerich, 1999

Riskanalys is

R iskanalys is

R iskanalys is

Riskanalysis Prot o-

ty pe 1

P rot otyp e 2Prototyp e 3

Opera-tiona lprotoyp e

Concept o fOperati on

S im ulati ons, m odels, b en ch marks

S /Wrequi rements

Requi reme ntva lid ation

Desi gnV& V

Prod uctdesign Deta il ed

design

CodeUni t tes t

Integr ati ontestAccep tance

testServ ice

Integra tionand test p lan

Develop mentplan

Requi rements planLi fe-cyc le plan

REVIEW

Boehm’s Spiral model

Evaluate alternativesidentify & resolve risks

Determine objectivesalternatives & constraints

Plan next phase Develop and verifynext level product

28© Wolfgang Emmerich, 1999

Phases of the Spiral Model

■ Objective setting: Specific objectives for theproject phase are identified

■ Risk assessment and reduction: Key risks areidentified, analysed and information is soughtto reduce these risks

■ Development and validation: Find model fornext development phase

■ Planning: Review project and plans nextround of the spiral

Page 15: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

15

29© Wolfgang Emmerich, 1999

Template for a spiral round

■ Objectives■ Constraints■ Alternatives■ Risks■ Risk resolution■ Results■ Plans■ Commitment

30© Wolfgang Emmerich, 1999

Spiral model flexibility

■ Well-understood systems (low technical risk)- Waterfall model. Risk analysis phase isrelatively cheap

■ Stable requirements and formal specification.Safety criticality - Formal transformationmodel

■ High UI risk, incomplete specification -prototyping model

■ Hybrid models accommodated for differentparts of the project

Page 16: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

16

31© Wolfgang Emmerich, 1999

Spiral model advantages

■ Focuses attention on reuse options■ Focuses attention on early error elimination■ Puts quality objectives up front■ Integrates development and maintenance■ Provides a framework for hardware/software

development

32© Wolfgang Emmerich, 1999

Spiral model problems

■ Contractual development often specifiesprocess model and deliverables in advance

■ Requires risk assessment expertise■ Needs refinement for general use

Page 17: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

17

33© Wolfgang Emmerich, 1999

Outline

■ What is Software Engineering?

■ Software Development Processes

■ Software Process Case Study

34© Wolfgang Emmerich, 1999

What are Standards?

“ Standards are documented agreementscontaining technical specifications or otherprecise criteria to be used consistently asrules, guidelines, or definitions ofcharacteristics, to ensure that materials,products, processes and services are fit fortheir purpose.” [ISO 1997]

Page 18: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

18

35© Wolfgang Emmerich, 1999

Software Engineering Standards

■ Normative and informative reference defininghow to develop software or software intensivesystems

■ Document centred■ Scope for adoption to

• organisation /or• project needs

36© Wolfgang Emmerich, 1999

Overview of SE Standards

■ Int. Software Engineering Standards• PSS-05 (ESA)

• ISO-12207

■ Important American Standards• DoD Mil-Std 2915

• IEEE 1074-1995

■ Software Process Improvement Standards• ISO 15504

• SEI Capability Maturity Model

Page 19: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

19

37© Wolfgang Emmerich, 1999

PSS-05

PSS-05 defines practices for:■ production phases,■ software lifecycle and■ management phases.

A PSS-05 practice can be:

■ mandatory (“shall”),■ recommended (“should”) and■ guiding (“may”).

38© Wolfgang Emmerich, 1999

PSS-05 Production Phases

■ User requirements

■ Software requirements

■ Architectural design

■ Detailed design & production of code

■ Transfer of software to operations

■ Operations and maintenance

Page 20: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

20

39© Wolfgang Emmerich, 1999

PSS-05 Production Phases

PSS-05 practices determine for each phase:

■ Input documents

■ Activities to be conducted

■ Output documents

40© Wolfgang Emmerich, 1999

PSS-05 Example Practices for SR Phase

■ For incremental delivery, each software

requirement shall include a measure of

priority so that the developer can decide the

production schedule.

■ Critical functions should be identified.

■ The SRD shall be compiled according to the

table of contents provided in Appendix C.

Page 21: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

21

41© Wolfgang Emmerich, 1999

PSS-05 Software Lifecycle

■ Three lifecycle approaches are prescribed

■ Process Engineer can select one of

• Waterfall

• Incremental Delivery

• Evolutionary Development

42© Wolfgang Emmerich, 1999

PSS-05 Management Phases

■ Software project management (SPM)

■ Software configuration management (SCM)

■ Software verification and validation (SVV)

■ Software quality assurance (SQA)

Page 22: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

22

43© Wolfgang Emmerich, 1999

PSS-05 Document Templates

■ Standard includes a dozen documenttemplates

■ Documents have to conform to structure oftemplates

■ PSS-05 templates are based on IEEE Stds.730, 828, 829, 830, 1012, 1016, 1058 and 1063.

44© Wolfgang Emmerich, 1999

PSS-05 Template Sample: SRD

1 Introduction2 General Description

2.1 Relation to current projectsDescribe the relationship to other projects…

3 Specific RequirementsList the specific requirements, with attributes. Subsectionsmay be regrouped around high-level functions.3.1 Functional requirements3.2 Performance requirements3.2 Interface requirements3.3 Operational requirements3.5 Resource requirements3.6 Verification requirements…

...

Page 23: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

23

45© Wolfgang Emmerich, 1999

Key Points

■ Software engineering is concerned with thetheories, methods and tools for developing,managing and evolving software products

■ The software process consists of thoseactivities involved in software development

46© Wolfgang Emmerich, 1999

Key points

■ The waterfall model considers each processactivity as a discrete phase

■ Evolutionary development considers processactivities as concurrent

■ The spiral process model is risk-driven■ Software engineering standards determine

refine software processes

Page 24: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

24

47© Wolfgang Emmerich, 1999

Why Define Process?

■ Introduction of good practice■ Tailoring towards Bank & Project■ Agreement on development process■ Basis for quality control■ Basis for process improvement■ Supports recruitment of internal / contracting

of external developers■ Improves collaboration / embedding of

contractors■ Records current experience for future use

48© Wolfgang Emmerich, 1999

Capability Maturity Model

■ Developed by Watts Humphrey at the SEI■ US DoD requires Level 3 maturity of contractors

Initial

Repeatable

Defined

Managed

OptimisingLevel

1

2

3

4

5This is where

you are!

This is whereyou want to be!

Page 25: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

25

49© Wolfgang Emmerich, 1999

What needs to be defined?

■ Activities• Leader• Reviewers• Resulting Deliverables• Dependencies to/from other activities

■ Deliverables• Purpose• Content• Owner• Tools to produce them

■ Roles• Reporting structure• Responsibilities• Skills

50© Wolfgang Emmerich, 1999

UserReqs

SystemReqs

DetailedDesign

Coding

Archit.Design

SystemIntegr.

Pre-Prod.Test

Stages of Development Process

Project and Risk ManagementSystem Management

Version and Configuration ManagementQuality Management

Page 26: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

26

51© Wolfgang Emmerich, 1999

User Requirements Def.

User RequirementsDefinition

Leader:• Chief Business AnalystTool: Office, (possibly

Requisite Pro / DOORS)Reviewers:• Users• Business Analysts• Domain Experts

User ReqsDocument +

Pre-Production Test Plan

BusinessNeeds *

Laws andBy-laws

MeetingMinutes *

+ To be completed after MRS goes into production* Optional (at this stage of the project)

52© Wolfgang Emmerich, 1999

User Reqs Document Contents

Owner: Chief Business Analyst1 Introduction

1.1 Purpose of the Document1.2 Scope of the software1.3 References

2 General Description2.1 Product Perspective2.2 General Capabilities2.3 General Constraints2.4 User Characteristics2.5 Operational Environment2.6 Assumptions and Dependencies2.7 Business Process

3 Specific Requirements3.1 Capability Requirements3.2 Constraint Requirements

4 Glossary of definitions, acronyms and abbreviations

Page 27: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

27

53© Wolfgang Emmerich, 1999

Pre-Production Test Plan

■ Owner: Chief Business Analyst■ Purpose of pre-production test:

• Test from users’ perspective• Test from operating perspective• Test integration with external systems• Test functionality of the entire system• Test in (simulated) deployment environment

■ Plan tests to be run before production

54© Wolfgang Emmerich, 1999

System Requirements Def.

System RequirementsDefinition

Leader:• Chief Bus AnalystTools: Rose,Office,GUIReviewers:• Users• Business Analysts• Domain Experts• System Architect

System ReqsDocument

User ReqsDocument+

Non-Funct.Reqs +

ChangeRequest

Portfolio-levelTest Plan

Page 28: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

28

55© Wolfgang Emmerich, 1999

System Reqs Document

Owner: Chief Business Analyst1 UML Use Case Model (Rose) +2 UML Interaction Diagrams (Rose) +

• UML Sequence Diagrams• UML Collaboration Diagrams

3 UML Analysis Class Diagram (Rose) +4 User Interface Prototypes (GUI Tools, Office) *5 Specification of Report Format (Office)6 User Manual (Office)

• User Reference Manual• User’s Guide

AnalysisDocument

56© Wolfgang Emmerich, 1999

Non-Functional Requirements

• Owner: Chief Business Analyst• Capacity Requirements• Performance Requirements• Accuracy Requirements• Constraint Requirements

– Communication Interfaces– Hardware Interfaces– Interfaces to external software components– HCI Requirements– Adaptability Requirements– Availability Requirements– Portability Requirements– Security Requirements– Compliance to Standards– Resources– Time scales

Page 29: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

29

57© Wolfgang Emmerich, 1999

Architectural Design

Architectural DesignLeader:• System ArchitectTool: OfficeReviewers:• Business Analysts• Chief Designer• Experienced Programmer

SystemArchitecture +

User ReqsDocument +

Non-Funct.Reqs +

SystemIntegrationTest Plan

SystemIntegrationTest Report

58© Wolfgang Emmerich, 1999

System Architecture

Owner: System Architect1 Architecture Overview and Rationale2 Services provided by Modules3 Resources used by Modules

(disk, memory, CPU time, real-time)4 Dependencies between Modules

• Control flow• Data flow• Synchronization

5 Rationale of chosen implementation languages6 Traceability to non-functional requirements?

Page 30: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

30

59© Wolfgang Emmerich, 1999

Portfolio-level Test Plan

■ Owner: Chief Business Analyst■ Purpose of portfolio-level test

• Tests correctness of Value at Risk Figures basedon trade portfolios

• Compare Exact Pricing VaR computed byMRS/CAD and MRS/CAD light (spreadsheet)

• Test hierarchical simulation andvariance/covariance VaR by comparison to ExactPricing

• Test Back-testing and stress-testing■ Plan how to perform portfolio-level test

60© Wolfgang Emmerich, 1999

System Integration Test Plan

■ Owner: Test Manager■ Plan how to test integrated system■ Purpose of System Integration Test:

• Validate that modules work together• Trace how trades are processed through the

system• Validate that non-functional requirements are met

Page 31: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

31

61© Wolfgang Emmerich, 1999

Detailed Design

Detailed DesignLeader:• Chief DesignerTools:• Rational Rose• Power Designer• OfficeReviewers:• Chief Bus Analyst• System Architect• Programmer

SystemDesign

System ReqsDocument +

System Architecture +

Unit TestPlan

ModuleIntegrationTest Plan

Module TestReport

Unit TestReport

62© Wolfgang Emmerich, 1999

Module Integration Test Plan

■ Owner: Test Coordinator of Module■ Plan how to perform module test■ Plan is required for modules

• GDB• MRS

■ Purpose of module integration test:• Test the integration of packages that comprise a

module• Meet functionality and technical requirements

imposed by design• Test-Coordinator decides when hand over module

to other teams

Page 32: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

32

63© Wolfgang Emmerich, 1999

Unit Test Plan

■ Owner: Test Coordinator of resp. Module■ Plan how to perform unit tests■ Plan is required for each unit (UML package

in MRS and GDB, classes in SAI)■ Purpose of Unit Test

• Black/Box Test in MRS and GDB• White/Box Test in SAI• Test functionality exported by unit• Test functionality and behaviour of design• Test behaviour with invalid input parameters• Test coordinator decides when to hand over unit

to other teams

64© Wolfgang Emmerich, 1999

System Design

■ Owner: Chief Designer■ Design Overview■ Detailed Design: UML Class Diagrams (Rose) and

Design Paper (Soda)• Broken down into packages• Responsibility delegation for each package

■ UML State Diagrams for critical classes (Rose)■ UML Interaction Diagrams for critical scenarios

(Rose)• UML Sequence Diagrams• UML Collaboration Diagrams

■ UML Component Diagram (Rose)■ Data Model (Power Designer)

Page 33: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

33

65© Wolfgang Emmerich, 1999

Coding

CodingLeader:• Chief DesignerTools:• Prog. Env.,• Office,• Test Case DBReviewers:• Designer• Programmer

CodeSystemDesign

Unit TestReport

Module TestReport

Unit TestPlan

ModuleIntegrationTest Plan

66© Wolfgang Emmerich, 1999

Code

Owner: Responsible for Package1 Implementations of Classes

• C++ Code• Documentation• Rationale for Algorithms chosen

2 SQL schemas3 Makefiles4 Scripts, libraries, executables, configfiles

Page 34: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

34

67© Wolfgang Emmerich, 1999

Unit Test Report

Owner: Test Coordinator of Module

1 Test Plan (From Detailed Design)

2 Test Architecture

3 Test Case Description

4 Test Reports

68© Wolfgang Emmerich, 1999

System Integration

System IntegrationLeader:• System ArchitectTools:• Office• Prog. Env.• Test Case DBReviewers:• Module Leaders• Project Management

ReleaseCode

SystemIntegrationTest Report

Portfolio Level Test Report

SystemIntegrationTest Plan

Portfolio-levelTest Plan

Page 35: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

35

69© Wolfgang Emmerich, 1999

Release

■ Owner: System Architect■ Executable Increment■ Release Notes■ Package for Release Installation■ Installation Manual

70© Wolfgang Emmerich, 1999

System Integration Test Report

Owner: Test Manager

1 Test Plan (from Architectural Design)

2 Test Architecture

3 Test Case Descriptions

4 Test Reports

Page 36: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

36

71© Wolfgang Emmerich, 1999

Portfolio-level Test Report

Owner: Chief Business Analyst

1 Test Plan (from System Requirements)

2 Test Architecture

3 Test Case Descriptions

4 Test Reports

72© Wolfgang Emmerich, 1999

Pre-Production Test

Pre-Production TestLeader:• System ArchitectTools:• Office,• Test Case DBReviewers:• User• Project Mgmnt.• Programme Mgmnt.

Pre-ProductionTest Report

Release

Pre-Production Test Plan

Page 37: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

37

73© Wolfgang Emmerich, 1999

Pre-Production Test Report

Owner: System Architect

1 Test Plan (from User Requirements)

2 Test Architecture

3 Test Case Descriptions

4 Test Reports

74© Wolfgang Emmerich, 1999

1 Test Plan

1 Introduction (summary of items and features to be tested)2 Test Items (list items to be tested)3 Features to be tested (features to be tested and why)4 Features not to be tested (features untested and why)5 Approach (outline how tests will be carried out)6 Item pass/fail Criteria (Specify when tests pass or fail)7 Suspension criteria and resumption requirements8 Test deliverables (before start and after end)9 Testing tasks (tasks needed to prepare and carry out test)10 Environmental needs (properties of test environment)11 Responsibilities (authorize test, perform test, check)12 Staffing and training needs (skills of staff,training needs)13 Schedule (summarize when test activities will be done)14 Risks and contingencies (risk assumptions, mitigate)15 Approvals (specify who must approve this plan)

Page 38: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

38

75© Wolfgang Emmerich, 1999

2 Test Architecture

For each test architecture2.n.1 Test Design Identifier

Give a unique identifier to the test design

2.n.2 Features to be testedList the features to be tested

2.n.3 Approach refinementsDescribe how the tests will be done

2.n.4 Test case identificationsList the specific test cases.

2.n.5 Feature pass/fail criteriaSpecify criteria for passing or failing a test

76© Wolfgang Emmerich, 1999

3 Test Case Specification

For each test case:3.n.1 Test case identifier

Give a unique identifier for the case3.n.2 Test items

List the items to be tested3.n.3 Input specifications

Describe the input for the case3.n.4 Output specifications

Describe the output required from case3.n.5 Environmental needs

Describe the test environment3.n.6 Special procedural requirements

Describe special constraints on this case3.n.7 Inter case dependencies

Test cases that must precede this case

Page 39: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

39

77© Wolfgang Emmerich, 1999

4 Test Reports

For each execution of a test procedure4.n.1 Test report identifier

Give a unique identifier for the test report

4.n.2 DescriptionList the items being tested

4.n.3 Activity and event entriesIdentify the test procedure.Say when the test was done, who did it and whowitnessed it.Describe the environmental conditions.Describe what happened.Describe where the outputs of the test procedure arekept.

78© Wolfgang Emmerich, 1999

Project & Risk Management

■ Owner: Project Manager■ Activities:

• Organising the Project– define roles of team members– define team structure– document responsibilities of team members

• Risk Management– quality and stability of user requirements– level of definition & stability of external interfaces– adequacy and availability of resources– availability and quality of tools– staff training and experience– definition of responsibilities– short time scales– technical novelty of the project

• ...

Page 40: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

40

79© Wolfgang Emmerich, 1999

System Management

■ Owner: System Manager■ Activities:

• Maintain Hardware/Software Platform• Maintain Network• Maintain Tool Infrastructures• Help desk• Administer Databases• Administer and Backup File stores• Administer Developer Accounts

80© Wolfgang Emmerich, 1999

Version & Configuration Mgmt.

■ Owner: Configuration Manager■ Activities

• Administer configurations of all deliverables (notjust the code!)

• Identify configuration items• ...

Page 41: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

41

81© Wolfgang Emmerich, 1999

Quality Management

■ Owner: Quality Manager■ Activities:

• Develop and maintain quality plan• Monitor compliance to

– quality plan– this process definition

• By means of– Audits– Reviews– Inspections

82© Wolfgang Emmerich, 1999

Roles

Project Management

SystemArchitect

Chief Bus. Analyst

Chief Designer

Bus.Analyst

Designer

Programmer

QAManager

ToolSmith

TestManager

Tester

Test Coord*

*

* *

Rep

orts

to

Release Coord

Config.Mgr.

Module Leader*

Programme Management

Tester*

SystemMgr.

SysAdm

* *

Page 42: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

42

83© Wolfgang Emmerich, 1999

Programme Management

■ Responsibilities• Agree on project aims and objectives• Agree on project plan (schedule, costs, quality,

resources)• Receive monthly reports from project

management• Decide on staffing resources• Agree / Reject changes to project plan

■ Skills• Very strong leadership• Diplomacy• Communication skills

84© Wolfgang Emmerich, 1999

Project Management

■ Responsibilities:• Planning scope, resources, deadlines, quality• Determining priorities• Reviewing Module leaders’ plans• Liasing with related departments• Reporting of serious unresolved problems to

Programme Management■ Skills:

• Strong leadership• Technical and domain knowledge• Substantial project management experience

Page 43: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

43

85© Wolfgang Emmerich, 1999

System Architect

■ Responsibilities:• Own and enforce the System Architecture• Assess technical risks• Define content of successive iterations• Mediate conflicts between module teams• Technical liaison with related projects• Consultancy

■ Skills:• Experience: Problem domain & OO SE• Vision, Leadership, Communication• Proactive and goal-oriented• Risk taker

86© Wolfgang Emmerich, 1999

Chief Business Analyst

■ Responsibilities:• Advise and support the Architect• Mentor and lead Business Analysts• Arrange and attend Analysis reviews• Define key interfaces

■ Skills• Leadership: manage Business Analysts• Communication• Proactive and goal oriented• Strong analysis skills and domain knowledge• Experience in testing business functionality

Page 44: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

44

87© Wolfgang Emmerich, 1999

Business Analyst

■ Responsibilities:• Work with Chief Business Analyst• Define interfaces and identify classes, packages,

patterns• Testing

■ Skills• Communication skills• Excellent analysis skills (finding abstractions)• Excellent business domain knowledge• Some programming skills

88© Wolfgang Emmerich, 1999

Quality Assurance Manager

■ Responsibilities• Own and enforce Project Standards• Work with Project Manager and Architect• Organise and attend reviews• Own and enforce testing and metrication

■ Skills• Knowledge of testing procedures• Strong interpersonal skills• Some analysis/design/coding skills

Page 45: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

45

89© Wolfgang Emmerich, 1999

Module Leader

■ Responsibilities:■ Planning of modules with respect to

• Schedule, resources, quality, contents• Leader of module team• Responsible for QA and Documentation• Reporting of serious unresolved problems

■ Skills:• Strong leadership• Project management experience

90© Wolfgang Emmerich, 1999

Configuration Manager

■ Responsibilities• Owns set up and operation of the whole CM

environment• Ensures CM standards are adhered to• Provides CM training/tools to team members

■ Skills• Detailed knowledge of the CM system• Good communication skills• Risk aversive• Reliable and trustworthy

Page 46: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

46

91© Wolfgang Emmerich, 1999

Toolsmith

■ Responsibilities• Buy or build the best software tools to maximise

team productivity

■ Skills• Intimate knowledge of available tools• Good communication skills• Excellent coding Skills• Inventive, proactive and goal-oriented• Likes to tinker

92© Wolfgang Emmerich, 1999

Chief Designer

■ Responsibilities• Manage team of Designers• Co-ordinate all design activities• Work with System Architect and Chief Business

Analyst to keep design and analysis models instep

■ Skills• Leadership: manage Designers• Good communication skills• Proactive and goal oriented• Strong design and programming skills

Page 47: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

47

93© Wolfgang Emmerich, 1999

Designer

■ Responsibilities• Mentor and lead 3 to 4 programmers• Detailed class design• Owns one or more packages from detailed design

through to implementation

■ Skills• Leadership of small teams• Good communication skills• Excellent design and programming skills

94© Wolfgang Emmerich, 1999

Test Manager

■ Responsibilities• Creates test plan for system testing• Creates testing standards and works with QA

Manager to enforce them• Manages a team of testers

■ Skills• Leadership• Excellent communication skills• Experience in testing

Page 48: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

48

95© Wolfgang Emmerich, 1999

Tester

■ Responsibilities• Unit and system testing• Designing test strategies• Track and document all tests

■ Skills• Knowledge of testing• Programming skills

96© Wolfgang Emmerich, 1999

Programmer

■ Responsibilities• Implement the design model• Tactical class design• Class-level testing• Participate in code walkthroughs

■ Skills• Good coding skills and likes to code!• Familiar with basic OOA/OOD principles• Understands the modelling language• Perhaps has a specialisation e.g. GUI

Page 49: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

49

97© Wolfgang Emmerich, 1999

Release Coordinator

■ Responsibilities• Works with Users, Project Manager and System

Architect to create a release plan• Monitors and maintains the plan• Advises the project manager on any non-

technical risks related to the release plan

■ Skills• Good communication and interpersonal skills• Good domain knowledge• Project planning skills

98© Wolfgang Emmerich, 1999

Test Coordinator

■ Responsibilities• Create test plan for module and unit tests• Works with QA manager to enforce test plans• May manage more testers

■ Skills• Excellent communication skills• Experience in testing

Page 50: Communications Software Engineering (Z01) · 1999-10-04 · Software Costs Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware

50

99© Wolfgang Emmerich, 1999

Summary of Benefits

■ Introduce proven process into MRS■ Indicate documentation contents as basis for

quality control■ Assist in identifying problems/risks early■ Guide staffing of development team■ Identify how to migrate to this process■ Record current experience for future use