Chapter 1
Chapter 1
It became clear that individual approaches to program development did not scale
up to large and complex system. This term was purposed in 1968.
Requirements definition
Operation and
maintenance
Fig 1.1 the water fall model
Because of the cascade from one phase to another is known as the water fall
model. We should plan and schedule all of the process activities before starting
works on them. Principle stages of the water fall model are listed below:-
Advantages
Concurrent activities
Requirements
Component analysis Requirement modification
specification
I. Requirement specification:
same as of water fall model
II. component analysis:
A search is made for components to implement that requirement
specification.
Usually there is no exact match
Components which are discovered may only provide some of
functionalities required.
III. Requirement modification:
The requirements are analyzed using the information about the
components that have been discovered.
They are the modified to reflect the available components
IV. System design with reuse:
Framework of the system is designed or existing frame work is
reused.
Some new software are designed if reusable components are not
available.
V. Development and integration
Software that cannot be externally procured is developed
And the components and COTS (commercial-of-the-shelf) are
integrated to create the new system.
There are three types of software component that may be reused:
a. Web services that are developed according to services and which
are available for remote invocation
b. Collection of object that are developed as a package to be
integrated with a component frame work such as .NET or J2EE.
c. Stand-alone software system that are configured for use in a
particular environment.
Advantages
Disadvantages
May lead to a system that does not meet the real necessary of
the user requirement.
Some control over the system evolution is lost as new as new
versions of the reusable components are not under the control
of the organization using them.
1.4.4 Spiral model
Risk analysis
Risk analysis
Prototype 1
prototype
Code
Integration test
Acceptance test
The Waterfall model has dominated software development for many years, but
iteration of processes is catching in. There are now a number of well-established
iterative development process models that can be classified according to the
levels where iteration is applied. Iteration can improve validation and verification
by allowing earlier quality feedback. Moreover, there seems to be a secret
marriage between teamwork and iteration. Altogether, from a SPI (software
process Iteration) point of view, changing to an iterative development process
model could very well raise your professional standards in software development.
Parts of the process are repeated as system requirement evolve.
System design & implementation work must be reworked to implement the
change requirement.
It is alternative approach to S/w development.
Makes the system that can do all to do little more.
Minimize the risk of building wrong product .e.g. building a table instead of
chair.
Several development process use iteration in high level or level or both.
A. software specification:
Software specification or requirements engineering process of the
understanding & defining what services are required from the system and
identifying the constraints on the system development.
fe
Feasibility study
Requirements
elicitation &analysis
Requirement
specification
Requirement
validation
Feasibility report
System model
User and system
requirement
Requirement
documentation
Feasibility study:
o An estimate is made whether the user need may be satisfied using
current software and hardware technologies.
o The study also considers whether the purposed system is cost-effective
from business point of view.
o It should be quick and cheap.
o Should provide information to decide whether or not to go ahead with
more detail analysis.
Requirement elicitation and analysis:
o Derivation of the system requirements by observing the existing
system, discussion with potential users & procurers, task analysis.
o Involve development of one or more system models & prototype.
o Helps us to understand the system to be specified.
Requirement specification
o Activity of translating the information gathered during the analysis
activity into document that defines the set of requirement.
o Two types of requirement are: i) user requirement b) system
requirement
Requirement validation
o Checks the realism, consistency, completeness of requirements.
o Errors in the requirements are discovered & modified to correct
these problems.
B. Software design and implementation
Design inputs
Design activities
Database design
Design outputs
Architectural design
o Identification of the overall system.
o Identify the relationship between principal component
Interface design
o Define the interfaces between system components.
Component design
o Here we take each system component and design how it will operate.
o It may be the list of changes to be made to a reusable component or
a detailed design model.
Database design
o Design the system data structure and how they are to be
represented in a database.
C. System validation
Software validation & verification is intended to show that both that a
System meets both specification and expectation of system customer.
Figure below is of testing phase of plan-driven software process
System Sub-system
service Acceptance test
integration test integration test
Validation may also involves checking process such as inspection and
review at each step of software process. Main process in software
testing and validation are as follow
Development testing
o Component making up the system are tested by the people
developing the system.
o Each component is tested separately.
o Component may be simple entities such as function, object and
class.
System testing
o System component are integrated to create a complete system.
o Concerned with finding error that happens due to components and
component interface problem.
Acceptance testing
o Is the final stage in testing before the system is accepted for
operational use?
o The system is tested with data supplied by a customer.
o May reveal errors and requirements problems.
Alpha testing: some time acceptance testing is known as alpha testing.
Custom system is developed for single client. It continues until the client
and developer agreed that the system is acceptable.
Beta testing: involves delivering the system to multiple clients. They report
the problem to the developer. After this developer modify it and release
the system.
D. Software evolution
It is very expensive to make changes to hardware design but changes can
be made to software at any time during or after the development in
cheaper in correspondence to hardware change. Software engineering is a
evolutionary process where software is continually changed over its life
time with response to changing requirements and user needs.
New system
Existing system
1.7Computer-aided software engineering(CASE)
CASE tools are programs that are used to support software engineering
process. These tools therefore include design editors, data dictionaries,
compilers, debuggers, system building tools, etc.
CASE tools provide process support by automating some process activities
and by providing information about the software that is being developed.
Assist in development and maintenance of software
Developed in 1970’s to speed up the s/w build up process
Allows rapid development of software to cope with the increasing speed of
market demand.
Classification of CASE tools
a. Business system planning
Information engineering tools
Process modeling and management tools
b. Project management
Project planning tools
Risk analysis tools
Project management tools
Requirement tracing tools
c. Programming tools
Integrating and testing tools
Client /server tools
d. Maintenance tools
Requirement engineering tools
Specific examples:
with class-object oriented design & code generation
oracle designer/200-integrated CASE environment
1.8 Functional and non-functional requirements
Functional requirements
Functional requirements specify the product capabilities, or things that a product must do for
its users. The functional requirements specify what the product must do. They relate to the
actions that the product must carry out in order to satisfy the fundamental reasons for its
existence. Functional requirement must fully describe the actions that the intended product can
perform. They describe the relationship between the input and output of the system.
Non-functional requirements
Non-functional requirements define system properties such as reliability, performance,
security, response time and storage requirements and constraints like Input output device
capability, system representations.
Non-functional requirements are more critical than functional requirements. A system user can
usually find ways to work around a system function that doesn’t really meet their needs but if
the non-functional requirements are not met, then the system will be useless.
They describe various quality factors, or attributes, which affect the functionality's
effectiveness.
Functional Nonfunctional
Product features Product properties
Describe the work that is done Describe the character of the work
Describe the actions with which the work is Describe the experience of the user while doing
concerned the work
Characterized by verbs Characterized by adjectives
1. Requirements Discovery
4. Requirements Prioritization
and Negotiation
Fig. The requirements elicitation and analysis process
1. Requirements discovery
This is the process of interacting with stakeholders of the system to discover their
requirements. A system stakeholder is anyone who should have some direct or indirect
influence on the system requirements.
2. Requirements classification and organization
The discovered unstructured collection of requirements are then classified and structured
properly. The most common way of grouping requirements is to use a model of the system
architecture to identify sub-systems and to associate requirements with each sub-system.
The main problem with requirement validation is that the requirements change continuously
during requirements elicitation.
Requirements validation techniques:
Requirement reviews: The requirements are analyzed systematically by a team of
reviewers who check for errors and inconsistencies.
Prototyping: An executable model of the system in question is used to check the validity.
Test-case generation: Requirements should be testable. If a test for a requirement is difficult or
impossible to design, this usually means that the requirements will be difficult to implement
and should be reconsidered.