Loading...
Flash Player 9 (or above) is needed to view slideshows. We have detected that you do not have it on your computer.To install it, go here
Software Analysis and Design (Lecture 2)
[SkillsFeed.com] Software Process Models and Project Management - by Dr Richard Clayton and Dr Marian Gheorghe (University of Sheffield)
6275 views | comments | 3 favorites | 0 downloads | 0 embeds (Stats)
More Info
This slideshow is Public
Total Views: 6275 on Slideshare: 6275 from embeds: 0
Slideshow Transcript
- Slide 1: COM 6030 Software
Analysis and Design
Lecture 2- Software Process Models and Project Management
Dr Richard Clayton & Dr Marian Gheorghe
Module (1st part) homepage http://www.dcs.shef.ac.uk/~marian
COM6030 Systems Analysis and Design 1 © University of Sheffield 2005
- Slide 2: Outline
Software engineering models
Software process models: waterfall, evolutionary, formal
development, reuse/component development
Management spectrum
Software teams
Managing people, project, product and processes
Reading: Sommerville chapter 3; Pressman chapter 2
COM6030 Systems Analysis and Design 2 © University of Sheffield 2005
- Slide 3: Software Engineering Problems
SE deals with practical problems
Complex software products (I)
Processes (II)
Methods/Models (III)
People (IV)
COM6030 Systems Analysis and Design 3 © University of Sheffield 2005
- Slide 4: (III) SE models
Models are used to abstractly represent various processes,
activities, entities etc.
SE process models:
Architectural perspective
Flow of activities
Linear vs iterative
Software processes depend on project type, complexity
aspects, technology, budget, people knowledge
Models of various activities (specification, design), entities
(data, transformations)
COM6030 Systems Analysis and Design 4 © University of Sheffield 2005
- Slide 5: SE process models
SE process models:
key for MAXI project
Waterfall
Evolutionary
Formal system development
Reuse/Component-based
Iterative
• Incremental
• Spiral
Others
COM6030 Systems Analysis and Design 5 © University of Sheffield 2005
- Slide 6: First part of the course
Waterfall model
Waterfall model maps linearly fundamental activities
Requirements analysis
and definition
System and software
design
Implementing and unit
testing
Integration and system
testing
Operation and
maintenance
COM6030 Systems Analysis and Design 6 © University of Sheffield 2005
- Slide 7: Waterfall: +’s and –’s
Advantages:
Help project management, documentation
Complex systems are well-defined and structured
Reflects engineering practice
Encourages a discipline of modelling
Limitations
Often stages overlap
Rather inflexible
Imposes early commitments to rigid requirements set
Impossible to deal with changes
COM6030 Systems Analysis and Design 7 © University of Sheffield 2005
- Slide 8: Evolutionary development
Initial implementation refined into final system
Exploratory development: the system evolves Initial version
through stages into a final software product
Throw-away prototyping
Advantages:
Intrm versions
Flexible and suitable for small systems
Helps in early stages or when little information
known about a system
Limitations:
Process is not visible
Poorly structured systems Final version
Special tools/techniques required
COM6030 Systems Analysis and Design 8 © University of Sheffield 2005
- Slide 9: Formal systems development
An approach based on formal mathematical transformations of a
set of system specifications into an executable program; it
consists of:
…
Requirements Formal Formal Integration and
definition specification transformation system testing
Refinement sequence
Limitations
Advantages
Require specialised expertise
Precise and error-free
No obvious quality over other
Suitable for safety-critical
non-formal approaches
systems
Introduce extra-complexity
Correctness proofs
COM6030 Systems Analysis and Design 9 © University of Sheffield 2005
- Slide 10: Reuse-oriented development
Reuse of components from other projects; essential in evolutionary
approach; it consists of
Component analysis – already existing components identified
Requirements modification – requirements vs information about
components
System design and reuse – design framework vs existing design
Development and integration – new components integrated with
existing frameworks/templates
Advantages:
Rapid and efficient development process
Reduces costs and risks
Limits
Systems that do not meet real expectations
Loose control over the inherited components
COM6030 Systems Analysis and Design 10 © University of Sheffield 2005
- Slide 11: Iterative development
Complex software systems require hybrid approaches (combination of various
models) and iterations over certain stages
Incremental development
Outline requirements
Assign requirements to increments
Define system architecture
Develop increment
Validate increment
Integrate increment
Validate (partial) system
Final system
Advantages
Gap between system specification and system delivery is reduced
Early increments may be used as prototypes
Lower risk of project failure
Highest priority services delivered first
Limitations
Increments should be small
Difficult to map customer’s requirements into increments
COM6030 Systems Analysis and Design 11 © University of Sheffield 2005
- Slide 12: Spiral development
The software process instead of being a sequence of activities
is now a spiral; each loop of the spiral represents a phase of
software process; each loop has four components:
Objective setting – specific objectives defined
Risk assessment and reduction
Development and validation – an appropriate model is
considered
Planning – when a new phase is requested
COM6030 Systems Analysis and Design 12 © University of Sheffield 2005
- Slide 13: Other models
Rapid Application Development (RAD) – an incremental
software development process model emphasizing on a very
short development cycle; useful when requirements are well-
understood, modular
Concurrent development model represents associated
activities as states in a concurrent statecharts – it is a
paradigm for client/server applications
XP (agile)
COM6030 Systems Analysis and Design 13 © University of Sheffield 2005
- Slide 14: Management spectrum
Software engineering management refers to four P’s: people,
product, process and project
People:
Key players in software projects:
senior managers
project (technical) managers
practitioners
customers
end-users
Software team (practitioners)
Team organization (skills, cohesion)
Team communication
COM6030 Systems Analysis and Design 14 © University of Sheffield 2005
- Slide 15: Software teams
Software team should have:
A long/medium/short term plan (+recovery)
A good mixture of skills (management, client interaction,
technical, analysis, design, modelling)
and should rely on
A coherent set of documents corresponding to software
processes (analysis, design, test) and team activities
(minutes, agendas, tasks, plans, charts)
COM6030 Systems Analysis and Design 15 © University of Sheffield 2005
- Slide 16: Software product management
Requires quantitative estimates and an organized plan (mostly
when solid information is unavailable !) .
Software scope is defined (context, objectives, function and
performance)
Problem decomposition
COM6030 Systems Analysis and Design 16 © University of Sheffield 2005
- Slide 17: Software process management
The suitable process model is decided for
The customers requesting the product
The characteristics of the product
The project environment
Actions
Preliminary plan developed
Process decomposition
COM6030 Systems Analysis and Design 17 © University of Sheffield 2005
- Slide 18: Software project management
Software project management requires assessing the risks involved and
understanding the problems that may threaten the project; 10 facts
undermining a project
Software people don’t understand customer’s needs
The project scope poorly defined
Changes poorly managed
The technology changes
Business is changing
Unrealistic deadlines
Resistant users
Losing the sponsorship
Lack of skilled people in software team
Managers/Practitioners do not use best practices
COM6030 Systems Analysis and Design 18 © University of Sheffield 2005
- Slide 19: Summary
Software engineering processes and their associated
models are presented.
Software life cycle is represented in different modelling
paradigms.
Management spectrum of activities covering people,
product, processes and project, is discussed.
The role of software teams is emphasized.
Learned about the need of modelling and using an
engineering approach to software production.
COM6030 Systems Analysis and Design 19 © University of Sheffield 2005