More Related Content
Similar to Software Processes
Similar to Software Processes (20)
More from university of education,Lahore
More from university of education,Lahore (20)
Software Processes
- 1. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1
Software processes 2
Lecture 3
Special Thanks to Ian Sommerville
(prior permission is granted)
Inam Ul Haq
University of Education Okara Campus
Inam.bth@gmail.com
- 2. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 2
Process activities
Software specification
Software design and implementation
Software validation
Software evolution
- 3. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 3
Software specification
The process of establishing what services are required
and the constraints on the system’s operation and
development.
Requirements engineering process
• Feasibility study;
• Requirements elicitation and analysis;
• Requirements specification;
• Requirements validation.
- 4. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 4
Software design and implementation
The process of converting the system specification into an
executable system.
Software design
• Design a software structure that realises the specification;
Implementation
• Translate this structure into an executable program;
The activities of design and implementation are closely
related and may be inter-leaved.
- 5. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 5
Design process activities
Architectural design
Abstract specification
Interface design
Component design
Data structure design
Algorithm design
- 6. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 6
Structured methods
Systematic approaches to developing a software design.
The design is usually documented as a set of graphical
models.
Possible models
• Object model;
• Sequence model;
• State transition model;
• Structural model;
• Data-flow model.
- 7. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 7
Programming and debugging
Translating a design into a program and removing
errors from that program.
Programming is a personal activity - there is no
generic programming process.
Programmers carry out some program testing to
discover faults in the program and remove these
faults in the debugging process.
- 8. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 8
Software validation
Verification and validation (V & V) is intended to
show that a system conforms to its specification
and meets the requirements of the system
customer.
Involves checking and review processes and
system testing.
System testing involves executing the system with
test cases that are derived from the specification of
the real data to be processed by the system.
- 9. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 9
The testing process
Component
testing
System
testing
Acceptance
testing
- 10. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 10
Testing phases
Requirements
specification
System
specification
System
design
Detailed
design
Module and
unit test
Service
Acceptance
test
System
integ ration test
Sub-system
integ ration test
- 11. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 11
Software evolution
As requirements change through changing
business circumstances, the software that supports
the business must also evolve and change.
Although there has been a demarcation between
development and evolution (maintenance).
Fewer systems are completely new.
- 12. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 12
System evolution
Assess existing
systems
Define system
requirements
Propose system
changes
Modify
systems
New
system
Existing
systems
- 13. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 13
UML Models
UML diagrams represent two different models:
• Structural view: emphasizes the static structure of the system using
objects, attributes, operations and relationships. The structural view
includes class diagrams and composite structure diagrams.
• Behavioral view: emphasizes the dynamic behavior of the
system by showing collaborations among objects and changes to
the internal states of objects. This view includes sequence
diagrams, activity diagrams and state machine diagrams.
- 14. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 14
Computer-aided Software Engineering
Computer-aided software engineering (CASE) is the domain
of software tools use to develop and implement processes.
CASE includes:
• Graphical editors for system model development;
• Model Driven Engineering is a methodology and includes
tools: AADL, Acceleo, Actifsource and others
http://en.wikipedia.org/wiki/Model-driven_engineering#Tools
• Graphical UI builder for user interface construction;
• Debuggers to support program fault finding;
• Automated translators to generate new versions of a
program.
- 15. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 15
CASE classification
Classification helps us understand the different types of
CASE tools (GNU Debugger) and their support for process
activities. http://en.wikipedia.org/wiki/Computer-aided_software_engineering#Tools
Functional perspective
• Tools are classified according to their specific function.
Process perspective
• Tools are classified according to process activities that are
supported.
Integration perspective
• Tools are classified according to their organisation into
integrated units.
- 16. ©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 16
Activity-based tool classification
Specification Design Implementation Verification
and
Validation
Re-eng ineering tools
Testing tools
Debugg ing tools
Program analysis tools
Language-processing
tools
Method suppor t tools
Prototyping tools
Configuration
management tools
Change management tools
Documentation tools
Editing tools
Planning tools