Professional Documents
Culture Documents
SE Class Slides
SE Class Slides
Topics covered
• Software process models
• Process iteration
• Process activities
• The Rational Unified Process
• Computer-aided software engineering
4.0. The software process
• A structured set of activities required to develop a
software system
• Specification;
• Design;
• Validation;
• Evolution.
• A software process model is an abstract representation of a process. It presents a
description of a process from some particular perspective.
4.1. Generic software process models
• Problems
• Lack of process visibility;
• Systems are often poorly structured;
• Special skills (e.g. in languages for rapid prototyping) may be required.
• Applicability
• For small or medium-size interactive systems;
• For parts of large systems (e.g. the user interface);
• For short-lifetime systems.
Component-based software engineering
Risk
anal ysis
Risk
Oper a-
anal ysis
Prototype 3 tional
Prototype 2 pr otoype
Risk
REVIEW anal ysis Proto-
type 1
Requirements plan Simula tions , models , benchmar
ks
Life-cycle plan Concept of
Oper ation S/W
requir ements Product
design Detailed
Requir ement design
Development
plan validation Code
Unit test
Integ ration Design
V&V Integ ration
and test plan
Plan ne xt phase test
Acceptance
Service test Develop , verify
next-le vel pr oduct
4.3. Process activities
• Software specification
• Software design and implementation
• Software validation
• Software evolution
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.
The requirements engineering process
Software design and implementation
Phas e iteration
Testin g too ls
Debugg in g too ls
Co nfiguratio n
management too ls
Do cumentatio n to ols
Editing to ols
M ulti-meth od Sin gle-metho d Gen er al-p urp ose Lan gua ge-specific
wo rk ben ch es wo rk ben ch es wo rk ben ch es wo rk ben ch es
Characteristics of an SRS
Requirements 47
Characteristics…
• Correctness
• Each requirement accurately represents some desired
feature in the final system
• Completeness
• All desired features/characteristics specified
• Hardest to satisfy
• Completeness and correctness strongly related
• Unambiguous
• Each req has exactly one meaning
• Without this errors will creep in
• Important as natural languages often used
Requirements 48
Characteristics…
• Verifiability
• There must exist a cost effective way of checking if sw satisfies requirements
• Consistent
• two requirements don’t contradict each other
• Ranked for importance/stability
• Needed for prioritizing in construction
• To reduce risks due to changing requirements
Requirements 49
Structure of an SRS
• Introduction
• Purpose , the basic objective of the system
• Scope of what the system is to do , not to do
• Overview
• Overall description
• Product perspective
• Product functions
• User characteristics
• Assumptions
• Constraints
Requirements 50
Structure of an SRS…
• Specific requirements
• External interfaces
• Functional requirements
• Performance requirements
• Design constraints
• Acceptable criteria
• desirable to specify this up front.
• This standardization of the SRS was done by IEEE.
Requirements 51
Components of an SRS
• Functionality
• Performance
• Design constraints imposed on an implementation
• External interfaces
constraints
• An SRS should identify and specify all such constraints. Some examples of these are:
•
Standards Compliance: This specifies the requirements for the standards the system must follow. The
standards may include the report format and accounting procedures. There may be audit requirements
which may require logging of operations.
•
Hardware Limitations: The software may have to operate on some existing or predetermined hardware, thus
imposing restrictions on the design. Hardware limitations can include the type of machines to be used,
operating system available on the system, languages supported, and limits on primary and secondary
storage. Reliability and Fault Tolerance: Fault tolerance requirements can place a major constraint on how
the system is to be designed, as they make the system more complex and expensive. Recovery requirements
are often an integral part here, detailing what the system should do if some failure occurs to ensure certain
properties.
•
Security: Security requirements are becoming increasingly important. These requirements place restrictions
on the use of certain commands, control access to data, provide different kinds of access requirements for
different people, require the use of passwords and cryptography techniques, and maintain a log of activities
in the system. They may also require proper assessment of security threats, proper programming
techniques, and use of tools to detect flaws like buffer overflow.
Structure of a Requirements document
Functional Specification with Usecases
Use cases specify the functionality of a system by specifying the
behavior of the system, captured as interactions of the users with the
system.
Functional Specification with Usecases
Examples:
University
Auction
System
Extensions: Scope of a subsystem
Other approaches for
Analysis
Data Flow Diagrams (Data flow
graphs)
A datastore must be
connected to a process
(either in, out, or both)
Black Hole
Gray Hole
Miracle
Slide 66
Illegal Data Flows
Slide 67
DFD Naming Guidelines
Virtual reality system This is a system where the requirements will change and there will be an
extensive user interface components. Incremental development with, perhaps, some UI
prototyping is the most appropriate model. An agile process may be used.
University accounting system This is a system whose requirements are fairly well-known and
which will be used in an environment in conjunction with lots of other systems such as a
research grant management system. Therefore, a reuse-based approach is likely to be appropriate
for this.
Interactive travel planning system System with a complex user interface but which must be stable
and reliable. An incremental development approach is the most appropriate as the system
requirements will change as real user experience with the system is gained.
80