© 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett,...
-
Upload
violet-price -
Category
Documents
-
view
227 -
download
0
Transcript of © 2010 Bennett, McRobb and Farmer1 Software Development Processes Based on Chapter 21 of Bennett,...
© 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.
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
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!
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
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
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
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
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
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
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
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
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
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
14
© 2010 Bennett, McRobb and Farmer
Use Case-Driven 1
Accountant
Add new staff
15
© 2010 Bennett, McRobb and Farmer
Use Case-Driven 2
:AddNewStaffUI
:AddNewStaff
:Staff
createStaff ( )
createStaff ( )
Staff ( )Accountant
16
© 2010 Bennett, McRobb and Farmer
Use Case-Driven 3
staffName
staffNo
staffStartDate
assignNewStaffGrade()
assignStaffContact()
Staff Member
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
18
© 2010 Bennett, McRobb and Farmer
Architecture-centric
Control
Analysis Package
UserInterface
ManagementCampaign Staff
Management
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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)