Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
12 views31 pages

Lecture - 2 1680052332302

qns

Uploaded by

snetic17
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views31 pages

Lecture - 2 1680052332302

qns

Uploaded by

snetic17
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Software Process &

Requirements
Today’s Objectives
• To describe Process Iteration
• To describe outline process models for
requirements engineering, software
development, testing and evolution
• To introduce CASE technology to support
software process activities
Process Iteration
• Change inevitable in all large projects
• System requirements change as business
processing system responds to external
pressures
• Management priority change
• Due to new technology design &
implementation change
• Software process is not one off process-
change occurs
Contd..
Two related delivery are available
1. Incremental
2. Evolutionary(e.g. spiral model)
• Essence of iterative model- specification is developed in
conjunction with software
• Conflicts with procurement model where complete
specification is the part of system development contract.
• Incremental model -no completion stage of system
specification until final increment is specified
• Require new form of contract which large customers may
find difficult to accommodate.
Process activities
Four basic process activities
– Specification
– Development
– Validation
– Evolution are organized differently in different process
model
• Waterfall-Process organized in sequence
• Evolutionary- Process are interleaved
• How these process carried out depends on the
– Software, people, organizational structure involved
Contd…
a) Software Specification
• Software specification or requirement
engineering is the process of
– understanding ,
– defining services required from the system &
– Identifying constraints on the system’s operation &
development
• Considered - a critical stage of software process
b’coz error unidentified at this stage leads to
many problems later(design & implementation
stage)
Figure-Requirement Engineering
Process
Contd…
• Process leads to production of requirement
document i.e. specification for the system
• Requirements are usually presented in two
levels
– End user & customers needs high level statement
of requirements
– System developer need more detailed system
specification
Contd…
There are four main phases in the requirement
engineering process
1. Feasibility study
• An estimation is made whether identified user needs
will be satisfied using current h/w & s/w technologies
• Whether proposed system will be cost effective,
completes on time & operationally feasible
• Feasibility study should be relatively cheap & quick
• Result should inform the decision makers whether to go
ahead or not.
Contd…
2. Requirement elicitation & analysis
– Process of deriving system requirements through
• observation of existing system,
• discussions with potential users, procurers, task
analysts & so on
– May involve the development of one or more
system models or prototypes
– Helps the analysts understand the system to be
specified
Contd…
3. Requirement Specification
– Activity of translating information gathered
during analysis into document that defines set of
requirements
– Two types requirements may be included
• User requirements
– Abstract requirement for the customer & the end users
• System requirements
– More detailed description of the functionality
Contd…
4. Requirement Validation
– Activity checks the requirement of realism, consistency &
completeness
– Errors in the requirement document are discovered
– Then modified to correct problems
• Activities in requirement process - not carried out in strict
sequence-may be interleaved
• Requirement analysis continues during definition ,
specification & new requirements to light through out the
process
• In agile methods, such as extreme programming
requirements are developed incrementally according to
user priorities
Contd…
b) Software design
– A description of the structure of the software to be
implemented
– Data which is the part of the system
– Interface between the system components &
– Algorithms used
– Designers do not arrive at the finished design
immediately
– But design Iteratively through number of versions
– Design process involves adding formality & detail as
the design is developed with constant backtracking
to correct earlier designs.
Contd…
• Process may involve developing several
models at different levels of abstraction
• As design is decomposed, errors & omissions
in the earlier designs are discovered.
• Feedback to allow earlier design models to be
improved.
Fig: General model of design process
Contd…
• Fig shows the design descriptions may be
produced at various stages of design
• Figure suggests stages of the design process
are to be sequential
• However, can be interleaved as well
• Specification may be abstract, formal
produced to clarify requirements or
• May specify how the part of the system is to
be realized
Contd…
• As the specification process continues, design process
becomes more detailed
• Final results of the process are precise specifications of
the algorithms & data structures to be implemented
1. Architecture design
– Sub System making up the system & their relationships
are identified & documented
2. Abstract design
– For each subsystem abstract specification of its services &
constraints under which one operates is produced
Contd…
3. Interface design
– For each subsystem interface with other subsystem is
designed & documented
4. Component design
– Services are allocated to components & the interfaces are
designed
5. Data structure design
– The data structure used in the system implementation
are designed in detail & specified
6. Algorithm design
– Algorithm used to provide services are designed in detail
& specified
Software validation
• Verification and validation (V & V) intends 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
The testing process
Testing stages
• Component or unit testing
– Individual components are tested independently
– Components may be functions or objects or
coherent groupings of these entity
• System testing
– Testing of the system as a whole
– Testing of emergent properties is particularly
important
• Acceptance testing
– Testing with customer data to check that the
system meets the customer’s needs
Testing phases
Software evolution
• Software is inherently flexible and can change
• 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) this is increasingly irrelevant as
fewer and fewer systems are completely new
System evolution
Computer-aided software engineering
• Computer-aided software engineering (CASE) is software to
support software development and evolution processes.
• Activity automation
– Graphical editors for system model development;
– Data dictionary to manage design entities;
– Graphical UI builder for user interface construction;
– Debuggers to support program fault finding;
– Automated translators to generate new versions of a program.
Case technology
• Case technology has led to significant
improvements in the software process
• However, these are not the order of magnitude
improvements that were once predicted
– Software engineering requires creative thought - this
is not readily automated
– Software engineering is a team activity and, for large
projects, much time is spent in team interactions
– CASE technology does not really support these
CASE classification
• Classification helps us understand the different types of
CASE tools and their support for process activities
• 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
Functional tool classification
Tool 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 tools Version 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
Activity-based tool classification
Re-eng ineering too ls

Testing tools

Debugg ing tools

Prog ram analysis tools

Language-p rocessing
tools

Method suppor t tools

Prototyping tools

Configuratio n
management tools

Change management tools

Documentation tools

Editing tools

Planning to ols

Specificatio n Design Implementation Verification


and
Validation
CASE integration
• Tools
– Support individual process tasks such as design
consistency checking, text editing, etc
• Workbenches
– Support a process phase such as specification or
design
– Normally include a number of integrated tools.
• Environments
– Support all or a substantial part of an entire software
process
– Normally include several integrated workbenches
Tools, workbenches, environments
CASE
technolo g y

Tools Wor kbenches Environments

File Integ rated Process-centr ed


Editors Compilers
compar ators en vironments en vironments

Anal ysis and


Pro gramming Testing
design

Multi-method Single-method Gener al-purpose Langua ge-specific


workbenches workbenches workbenches workbenches

You might also like