raheelaslam9237
8,302 views
38 slides
Mar 30, 2014
Slide 1 of 38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
About This Presentation
intoroduction to software Engineering
Size: 272.49 KB
Language: en
Added: Mar 30, 2014
Slides: 38 pages
Slide Content
Chapter 4
Part-2
Software Processes
In Ch4 Lec 5 –Part 1 we discuss:
1-Genericsoftware process model
a. waterfall model
b. evolutionary model
c. Formal systems
d. reuse-based component model
In Ch4 Lec 5 –Part 2 we discuss:
2-Iterative process model
a. Incremental development (delivery)
b. Spiral development
3-software process
4-CASE tools
Process iteration
•process iteration where earlier stages are
reworkedinresponse to change requestis always
part of the process for large systems
•The iteration process modelsthat have been
designed to support process iteration??
–1-Incremental development (delivery)
–2-Spiral development
1-Incremental delivery
•It is an in between approachwhich combines the
advantagesof waterfalland evolutionarymodels.
•Rather than deliver the system as a single
delivery, the software specification, designand
implementationis broken downinto increments
with each increment delivering partof the required
functionality.
Incremental delivery
•User requirements are prioritizedand the
highest priority requirementsare included in
early increments
•Once the development of an increment is
started, the requirements are frozenthough
requirements for later increments can
continue to evolve
Incremental developmentValidate
increment
Develop system
increment
Design system
architecture
Integrate
increment
Validate
system
Define outline
requirements
Assign requirements
to increments
System incomplete
Final
system
Incremental delivery advantages
•Customer can gain value from the system with each
incrementso system functionality is available earlier
•Early increments act as a prototypeto help elicit
requirements for later increments
•Lower riskof overall project failure
•The highest priority system services tend to receive the
most testing
•it is useful when staffing is unavailablefor a complete
implementation.
Advice:when you encounter a difficult deadlinethat
cannot be changed, the incremental modelis a good
one to consider.
Increments should be relatively smalland each
increment should deliversome system functionality.
So it is difficultto map the customer’s requirement
with the right sizeof the increment.
A recent evolution of this increment approach called
extreme programming (XP).
Extreme programming (XP)-a new
evolution of incremental approach.
•New approach based on the development and
delivery of very smallincrementsof
functionality
•Relies on user involvementin the development
team (planning) and pair programming(Coding)
2-Spiral development
•Process is represented as a spiral ratherthan as a
sequence of activitieswith backtracking from one
activity to another.
•Each loopin the spiral represents a phase in the
software process.
•The inner loopmightbe connectedto feasibility, next
loop with requirements definitionsand so on.
•Risksare explicitly assessed and resolvedthroughout
the process
Spiral model of the software
processRisk
analysis
Risk
analysis
Risk
analysis
Risk
analysis
Proto-
type 1
Prototype 2
Prototype 3
Opera-
tional
protoype
Concept of
Operation
Simulations, models, benchmarks
S/W
requirements
Requirement
validation
Design
V&V
Product
designDetailed
design
Code
Unit test
Integration
test
Acceptance
test
Service Develop, verify
next-level product
Evaluate alternatives
identify, resolve risks
Determine objectives
alternatives and
constraints
Plan next phase
Integration
and test plan
Development
plan
Requirements plan
Life-cycle plan
REVIEW
Spiral model loop sectors
•Objective setting
–Specific objectivesfor the phase are identified
–constraintson the process and the product are
identified, alsoproject risksare identified.
•Risk analysis (assessment) and reduction
–Risks are assessedand activities put in placeto
reduce the key risks
–Example: if there is a risk that the requirements
are inappropriate, a prototype systemmay be
developed.
Spiral model loop sectors
•Development and validation (engineering)
–A development modelfor the system is chosen
which can be any of the generic models
–Example:if user interfacerisk are dominant
, an appropriate development model might
be evolutionary prototyping
•Planning
–The project is reviewedand the next phase of
the spiral is planned
Spiral model
•The main different between the Spiral modeland other
Software process model:
is the explicit recognition of the risk(something that
can be go wrong)
Process activities
•1-Software specification
•2-Software design and implementation
•3-Software validation
•4-Software evolution
1-Software specification (RE)
•It is the process of establishing what services are required
from the system and the constraintson the system’s
operation and development
1-Software specification (RE)
•Software specificationorRequirements Engineering process
phases:
–Feasibility study (is the proposed system cost-effective, is it
within the budget constraints)
–Requirements elicitation and analysis, this may involve
observation of existing system, task analysis, and may need
to development of system model an prototype.
–Requirements specification, translate info gathered to set of
requirements (document), it include:
User requirementand system requirements(more detail)
–Requirements validation, realism, consistency and
completeness.
The Requirements Engineering
processFeasibility
study
Requirements
elicitation and
analysis
Requirements
specification
Requirements
validation
Feasibility
report
System
models
User and system
requirements
Requirements
document
2-Software design and implementation
•The process of converting the system
specificationinto an executable system
•Software design,is a description of thestructure
of the software, the data, the interfaces, and
algorithms.
•Implementation, translate this structure into an
executable program
•The activities of design and implementationare
closely relatedand may be inter-leaved
Design process activities (phases)
•Architectural design, the sub systems making the system and their
relationshipare identified.
•Abstract specification, for each sub system, an abstract specification
of its servicesand constraints is produced.
•Interface design, for each sub system, its interfaces with others is
designed.
•Component design: servicesare allocated to the component and the
interfacesfor this component is designed
•Data structure design: the data structure used in this system are
designed in detail.
•Algorithm design: the Algorithm used in this system are designed in
detail.
The software design processArchitectural
design
Abstract
specification
Interface
design
Component
design
Data
structure
design
Algorithm
design
System
architecture
Software
specification
Interface
specification
Component
specification
Data
structure
specification
Algorithm
specification
Requirements
specification
Design activities
Design products
Programming and debugging
( Implementation)
•Translating a designinto aprogramand removing errors
from that program
•Programmingis a personal activity-there is no generic
programming process
•Programmerscarry out some program testingto discover
faultsin the program and remove these faultsin the
debugging process
•The debugging processare consisted of locate errors, design
error repair, repair errors, and re-test program.
The debugging processLocate
error
Design
error repair
Repair
error
Re-test
program
3-Software validation
•Verificationand validation (V & V)is intended to
show that a system conforms to its specification
and meets the requirements of the system’s
customer
•System testinginvolves executing the system with
test casesthat are derived from the specification
of the real datato be processed by the system
The stages of testing process Sub-system
testing
Module
testing
Unit
testing
System
testing
Acceptance
testing
Component
testing
Integration testing User
testing
Testing Process stages
•Unit(Component) testing,individual components
are tested to insure that it is work correctly
•Module testing, related collectionsof dependent
components are tested
•Sub-system testing,modules are integrated into
sub-systemsand tested. The focus here should be
on interface testing
Testing Process stages, cont…
•System testing, testing of the system as a whole.
integrate the component then make testing * to find the
errors result from integration and interfaceproblems for
this component. This test is used * to validate the system
to meet the functional and non-functionalrequirement
and * to check the emergent properties.
•Acceptance testing, testing with customer data to
check that it is acceptable. System is tested using a
real datasupplied by the user. This test reveals
requirement problemsand if the system performance is
not acceptable.
4-Software evolution
•Software is inherently flexibleand can change.
•As requirements changethrough changing business
circumstances, the softwarethat supports the business
must also evolve and change
•Although there has been a splitbetween developmentand
evolution(maintenance) .
•Software maintenance costis several timesthe
development cost.
System evolutionAssess existing
systems
Define system
requirements
Propose system
changes
Modify
systems
New
system
Existing
systems
Computer-aided software engineering (CASE)
•CASEis software to support requirement, design, software
development and evolution processes.
•Activity automation-can be used by CASE:
–Graphical editorsused for system model development
–Data dictionary that holds informationabout entities and
relations of design. Used to understand design.
–Graphical User Interface builder used for user interface
construction
–Debuggers to support program fault finding
–Automated translatorsto generate new versions of a
programfrom old one. (ex COBOL)
CASEtechnology
•Case technology has led tosignificant improvementsin the
software processand saving in the costof software
process.
•CASE is available for most routine activitiesof software
process.
•The improvement from the use of CASEare limited by two
factors:
–Software engineering requires creative thought-
(Artificial intelligent technology )-this is not easily
automatable.
–Software engineering is a team activityand,for large
projects, much time is spent in team interactions. CASE
technology does not really support these
CASE Tool classification
Classification helps us understand the differenttypes of
CASE toolsand their supportfor process activities:
•Functional perspective, tools are classified according to
their specific function
•Processperspective, tools are classified according to
process activitiesthat are supported
•Integrationperspective, tools are classified according to
how they are organisedinto integrated unitsthat provide
support for process activity.
Functional tool classificationTool type Examples
Planning tools PERT tools, estimation tools,
spreadsheets
Editing tools Text editors, diagram editors, word
processors
Change management tools Requirements traceability tools, change
control systems
Configuration management toolsVersion management systems, system
building tools
Prototyping tools Very high-level languages,
user interface generators
Method-support tools Design editors, data dictionaries, code
generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static
analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs, image editors
Re-engineering tools Cross-reference systems, program re-
structuring systems
CASE ClassificationCategories:
•Tools: support individual process activitysuch as design
consistency checking, text editing.
•Workbenches:support a set of related process phases and
activitiessuch as specification or design.
Normally include a number of integrated tools.
•Environments:support all or most partof an entire
software process activities. Normally include several
integrated workbenches
Key points
•Software processes are the activitiesinvolved in producing
and evolving a software system. They are represented in a
software process model
•General activities are specification, design,
implementation, validationand evolution
•Generic process modelsdescribethe organization of
software processes such as waterfall, evolutionary and
reuse-component.
•Iterative process modelsdescribethe software process as
a cycle of activities. Such as incremental delivery and
spiral model.
The main advantageof iteration process modelis to avoid
the commitment to specification and design.
Key points
•Requirements engineering is the process of developing a
software specification
•Design and implementation processes transformthe
specification to an executable program
•Validation involves checkingthat the system meets to its
specification and user needs
•Evolution is concerned withmodifyingthe system after it is
in use
•CASE technology supports software process activities