© 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett,...

34
© 2010 Bennett, McRobb and Farmer 1 Software Development Software Development Processes Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design Using UML, (4th Edition), McGraw Hill, 2010.

Transcript of © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett,...

Page 1: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

© 2010 Bennett, McRobb and Farmer 1

Software Development Software Development ProcessesProcesses

Based on Chapter 21 of Bennett, McRobb and Farmer:

Object Oriented Systems Analysis and Design Using UML, (4th Edition), McGraw Hill, 2010.

Page 2: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

2

© 2010 Bennett, McRobb and Farmer

In This Lecture You Will Learn:

• What a software development process is, and how this relates to method and methodology

• Why methodologies are used

• Some characteristics of the Unified Software Development Process

• Some issues in choosing a methodology

Page 3: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

3

© 2010 Bennett, McRobb and Farmer

Process, Method and Methodology

• Process or method refers to the tasks carried out during a project

• Methodology refers to the general framework and principles used to organise the tasks

• Some authors use method to mean methodology

• Some authors use process for both!

Page 4: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

4

© 2010 Bennett, McRobb and Farmer

Why Methodology?

• Techniques of system development must be organized if they are to work together– Analyst has drawn collaboration diagrams for

main use cases– Should she now convert these to sequence

diagrams and write operation specifications? – Or concentrate on class diagram, inheritance

and composition structures?

• UML itself contains nothing that helps to make this decision

Page 5: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

5

© 2010 Bennett, McRobb and Farmer

Why Methodology?

• Organization of tasks is not contained within the techniques

• Must be described at a higher level of abstraction

• Method or process of a project is the particular way that tasks in that project are organized

• Methodology is more abstract still: a meta-process that can be applied to many projects

• A methodology is instantiated on a project

Page 6: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

6

© 2010 Bennett, McRobb and Farmer

Process, Method or Methodology?

• Often confused, as if they were all the same thing, but actually these terms differ

• Method/Process = step-by-step description of the steps involved in doing a particular job

• No two projects are ever identical, so method is specific to one project

• Methodology = set of general principles that guide the choice of a method suited to a specific task or project

Page 7: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

7

© 2010 Bennett, McRobb and Farmer

Method/Process vs. Methodology

Level of abstraction

Typical product

Task Specific version of a class diagram

Technique Any UML class diagram

Method/Process A product costing system

Methodology

Example of application

Developing a first-cut class diagram

Description of how to carry out a technique, e.g. UML class

modelling

Specific techniques used on a particular project that lead to a

specific software product

General selection and sequence of techniques capable of

producing a range of software products

A range of business software

applications

Page 8: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

8

© 2010 Bennett, McRobb and Farmer

What Is a Methodology?

• Avison and Fitzgerald (2002): a collection of– Procedures– Techniques– Tools – Documentation aids

• Organised within a lifecycle structure (or process)

• Usually also an underlying philosophy that captures a particular view of the meaning and purpose of IS development

Page 9: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

9

© 2010 Bennett, McRobb and Farmer

Elements of a Methodology

• Technique: the UML class diagram• Tool: Rational Rose (CASE software)• Procedure: Find classes by inspecting use case

descriptions• Structure: Operation specifications should not be written

until class model is stable (also the stages)• Stages: Inception, Elaboration, Construction…• Activities: Requirements, Analysis, Design…• Philosophy: OO development promotes software which

is robust and resilient to change

Page 10: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

10

© 2010 Bennett, McRobb and Farmer

Methodology Metamodel

• The OMG has defined a metamodel for software development methodologies

• Software Process Engineering Metamodel (SPEM) uses UML notation for:– Roles (e.g. class designer)– Activities (e.g. design)– Products (e.g. design class model)– Phases (e.g. construction)

• The ultimate aim is to define a process with sufficient rigour that much of it can be automated

Page 11: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

11

© 2010 Bennett, McRobb and Farmer

Why Use a Methodology?

• Many advantages claimed– Helps produce better quality product

• Better documented software• More acceptable to user• More maintainable software• More consistent software

– Helps ensure user requirements are met– Helps project manager control the project – Reduces development costs– Promotes communication among all parties

Page 12: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

12

© 2010 Bennett, McRobb and Farmer

Unified Software Development Process (USDP)

• Public domain methodology for Object-Oriented software development

• Originally produced by Rational team• Now largely superseded by Rational Unified

Process (similar in their main aspects)• Main principles:

– Use-case driven– Architecture-centric– Iterative development– Incremental development

Page 13: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

13

© 2010 Bennett, McRobb and Farmer

Use-Case Driven

• In USDP the basic element is a single interaction between user and system

• Use cases are the start of modelling• Unit from which later models are derived• Each use case is a thread that links

requirements to implementation• Has practical significance for users• Constant reminder to systems developers

that only users’ requirements really matter

Page 14: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

14

© 2010 Bennett, McRobb and Farmer

Use Case-Driven 1

Accountant

Add new staff

Page 15: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

15

© 2010 Bennett, McRobb and Farmer

Use Case-Driven 2

:AddNewStaffUI

:AddNewStaff

:Staff

createStaff ( )

createStaff ( )

Staff ( )Accountant

Page 16: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

16

© 2010 Bennett, McRobb and Farmer

Use Case-Driven 3

staffName

staffNo

staffStartDate

assignNewStaffGrade()

assignStaffContact()

Staff Member

Page 17: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

17

© 2010 Bennett, McRobb and Farmer

Architecture-Centric

• In USDP, software architecture is a theme from the earliest stages of a project

• Reflected most obviously in:– Stereotyping of boundary, control and

entity classes– Use of packages to organize both models

and development activity

Page 18: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

18

© 2010 Bennett, McRobb and Farmer

Architecture-centric

Control

Analysis Package

UserInterface

ManagementCampaign Staff

Management

Page 19: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

19

© 2010 Bennett, McRobb and Farmer

Iterative Development

• The USDP lifecycle is cyclic:– Analyse a bit– Design that bit– Code the design– Test the code– Refine the analysis and repeat

Page 20: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

20

© 2010 Bennett, McRobb and Farmer

Incremental Development

• USDP aims to deliver working, free-standing, useful ‘chunks’ of software, one at a time

• (Corresponds to DSDM in this respect)

• In its simplest form, each use case may represent one increment of delivered software

Page 21: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

21

© 2010 Bennett, McRobb and Farmer

Activities and Phases

• Activity has meaning for developers• Phase matters to project manager• Phases are sequential, delineated by milestones• Each milestone is a decision point:

– Begin next phase or stop now?

• Manager’s focus shifts from one phase to the next

• Within each phase, activities iterate

Page 22: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

22

© 2010 Bennett, McRobb and Farmer

1 2 3 4 5 6 7 8

Inception Elaboration Construction Transition

1 2 3 4 5 6 7 8

Requirements

Analysis

Design

Implementation

Test

Phases (and time)

WorkflowsIterations

1 2 3 4 5 6 7 8

Page 23: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

23

© 2010 Bennett, McRobb and Farmer

Phases and Iterations

• No set rule for number of iterations

• Within a phase, workflows are the same

• All 4 phases run from requirements to testing, but emphasis changes

• At first, main effort is on capture, modelling, analysis of requirements

• Later phases emphasize implementation and testing

Page 24: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

24

© 2010 Bennett, McRobb and Farmer

Inception Phase

• Essentially a feasibility stage: do potential risks outweigh potential benefits

• Decision based partly on CBA

• Viability of project judged on delivery of a small subset of requirements as working software

Page 25: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

25

© 2010 Bennett, McRobb and Farmer

Inception Phase

• Main activities:– Requirements capture – Analysis– Small amount of design, implementation

and testing

• Even at this early stage, iteration is likely

• OO approach makes this possible

Page 26: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

26

© 2010 Bennett, McRobb and Farmer

Elaboration Phase

• Produce design for a suitable system • Aim is to reduce cost uncertainties• Demonstrate how system can be built

within acceptable timescale and budget• Proportion of time spent on design

activities increases• Small increase in time on implementation

and testing (still small in relation to analysis and design)

Page 27: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

27

© 2010 Bennett, McRobb and Farmer

Construction phase

• Build, through several iterations, a system capable of satisfactory operation in target environment

• Implementation and testing rapidly become core activities

• Each iteration moves away from design and towards testing

Page 28: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

28

© 2010 Bennett, McRobb and Farmer

Transition phase

• Achieve the intended full capability of the system

• Deal with any defects or problems that have emerged

• Includes system conversion, if older system is being replaced

Page 29: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

29

© 2010 Bennett, McRobb and Farmer

Workers and Activities

• USDP differentiates between real people and the more abstract worker

• A Worker is a project role, e.g.– use-case specifier– system architect– component engineer– integration tester

• No direct one-to-one mapping between people and workers

Page 30: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

30

© 2010 Bennett, McRobb and Farmer

Use-Case Engineer

Analyse ause case

Outline description of analysis class

Analysis realization of use case

Use case model

Domain model

Non-functional requirements

Initial description of architecture

Use-Case Engineer

Analyse ause caseAnalyse ause caseAnalyse ause case

Outline description of analysis class

Analysis realization of use case

Use case model

Domain model

Non-functional requirements

Initial description of architecture

Inputs and Outputs of an Activity

Page 31: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

31

© 2010 Bennett, McRobb and Farmer

The Analysis Workflow in USDP

Analyse architecture

Analyse a Use Case

Analyse a Class

Analyse a Package

Analyse architecture

Analyse Architecture

Analyse a Use CaseAnalyse a Use Case

Analyse a Class

Analyse a Class

Analyse a PackageAnalyse a Package

Architect Analyse architecture

Analyse architecture

Use Case Engineer

Component Engineer

Analyse a Use CaseAnalyse a Use Case

Analyse a Class

Analyse a Class

Analyse a PackageAnalyse a Package

Analyse architectureAnalyse

Architecture

Analyse a Use Case

Analyse a Use Case

Analyse a Class

Analyse a Class

Analyse a Package

Analyse a Package

adapted from Jacobson et al., 1999

Page 32: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

32

© 2010 Bennett, McRobb and Farmer

USDP: Summary

• Rooted in:– Booch method (good at design and implementation)– OMT (good at analysis)– Objectory (strong at requirements engineering and

system architecture)

• USDP brought these together• Also large and complex: significant learning

curve involved, or tailor to fit• Led to RUP – the most mature OO

methodology to date

Page 33: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

33

© 2010 Bennett, McRobb and Farmer

Summary

In this lecture you have learned about:

• The role of a methodology in IS development

• The main principles, phases and activities of USDP

Page 34: © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.

34

© 2010 Bennett, McRobb and Farmer

References

• Avison and Fitzgerald (2006)

• Kruchten (2004)

• Jacobson et al. (1999)

(For full bibliographic details, see Bennett, McRobb and Farmer)