Professional Documents
Culture Documents
Engineering
What is Software?
Software is a set of items or objects
that form a “configuration” that
includes
• programs
• documents
• data ...
What is Software?
software is engineered
software doesn’t wear out
software is complex
What are the attributes of good software?
The software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and acceptable.
Maintainability
• Software must evolve to meet changing needs;
Dependability
• Software must be trustworthy;
Efficiency
• Software should not make wasteful use of system resources;
Acceptability
• Software must accepted by the users for which it was designed. This
means it must be understandable, usable and compatible with other
systems.
Software’s Dual Role
Software is a product
• Delivers computing potential
• Produces, manages, acquires, modifies, displays, or transmits
information
Software is a vehicle for delivering a product
• Supports or directly provides system functionality
• Controls other programs (e.g., an operating system)
• Effects communications (e.g., networking software)
• Helps build other software (e.g., software tools)
The Changing Nature of Software
System Software. Operating Systems, Compilers
Application Software. Railway Reservation
Engineering / Scientific Software. CAD, Mat-Lab
Embedded Software. Key Stroke - Character
Product - Line Software. Ms.Office, Editors , Games
WebApps (Web applications Browser). Yahoo
Artificial Intelligence software: Robotics , Expert Systems
Ubiquitous Computing. Present every where
Netsourcing. Downloading using Internet
Legacy Software
Why must it change?
• software must be adapted to meet the needs
of new computing environments or
technology.
• software must be enhanced to implement
new business requirements.
• software must be extended to make it
interoperable with other more modern
systems or databases.
• software must be re-architected to make it
viable within a network environment.
Software Myths
If I decide to out source the software project to the third party,
I can just relax and let that firm build it.
Manage & Control
If we get behind Schedule, we can add more programmers
and catch up.
People can be added but only in a planned and
A Process defines who is doing what, when, and how to reach the goal
A Layered Technology
Software Engineering
tools
methods
process model
a “quality” focus
A Process Framework
Process framework
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella Activities
Framework Activities
Communication
Planning
Modeling
• Analysis of requirements
• Design
Construction
• Code generation
• Testing
Deployment
Umbrella Activities
Software project management
Formal technical reviews
Software quality assurance
Software configuration management
Work product preparation and production
Reusability management
Measurement
Risk management
Generic process frame work used as a basics
for the description of process models.
1. Communication
2. Planning
3. Modeling
4. Construction
5. Deployment
THE CAPABILITY MATURITY MODEL
INTERATION
(CMMI)
The CMMI
The CMMI defines each process area in terms of
“specific goals” and the “specific practices” required
to achieve these goals.
Specific goals [SG] establish the characteristics
that must exist if the activities implied by a process
area are to be effective.
Specific practices [SP] refine a goal into a set of
process-related activities.
For Example: PROJECT PLANNING
SG1 : Establish Estimates
Software Process
Assessment
Capability
Software Process leads to leads to
Determination
Improvement
motivates
Chapter 3
Co m m u n ic a t io n
p ro je c t in it ia t io n Planning
re qu ire m e n t g a t he rin g estimating Mo d e lin g
scheduling
a na lys is Co n s t ru c t io n
tracking
de s ign De p lo y m e n t
c ode
t es t d e liv e ry
s up p o rt
f e e d ba c k
Waterfall model phases
Requirements analysis and definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
The main drawback of the waterfall model is the
difficulty of accommodating change after the
process is underway. One phase has to be
complete before moving onto the next phase.
Waterfall model problems
Inflexible partitioning of the project into distinct stages
makes it difficult to respond to changing customer
requirements.
Therefore, this model is only appropriate when the
requirements are well-understood and changes will be
fairly limited during the design process.
Few business systems have stable requirements.
The waterfall model is mostly used for large systems
engineering projects where a system is developed at
several sites.
Problems occurred in waterfall model
Real projects rarely follow the sequential flow. As
the result, changes can cause confusion as the
project team proceeds.
It is often difficult for the customer to state all
requirements explicitly.
The customer must have the patience.
A working version of the program (s) will not be
available until late in the project time span.
The Incremental Model
incre m e nt # n
Co m m u n i c a t i o n
Pla n n in g
M o d e lin g
a n a ly s is Co n s t ru c t i o n
d e s ig n
code De p lo y m e n t
t est d e l i v e ry
fe e d b a c k
d e liv e ry o f
n t h in cre me n t
incre m e nt # 2
Co m m u n ic a t i o n
Pla n n in g
Mo d e lin g
a n a ly s is Co n s t ru c t i o n
d e s ig n code De p l o y m e n t
t est d e l i v e ry
fe e d b a c k
d e liv e ry o f
incre m e nt # 1 2 n d in cre me n t
Co m m u n i c a t i o n
Pla n n in g
Mo d e lin g
a n a ly s is Co n s t ru c t i o n
d e s ig n code
d e liv e ry o f
De p lo y m e n t
t est d e l i v e ry
fe e d b a c k
1 s t in cre me n t
C o n s t ru c t io n
c om p o ne n t re u s e
Te am # 2 a ut om a t ic c o de
Co m m u n ic at io n ge n e ra t ion
t e s t in g
Mo d e li ng
b u s in e s s m o d e lin g
d a t a m o d e lin g
p ro ce ss m o d e lin g
Plan n in g
Co ns t ruc t io n De p lo ym e n t
Te am # 1 co m p o n e n t re u se in t e g rat io n
a u t o m a t ic co d e
g e n e ra t io n d e liv e ry
Mo d e lin g t e st in g fe e d b ack
b u s in e s s mo d e lin g
d at a mo d e lin g
p ro ce s s mo d e lin g
Co n s t ru c t io n
co mp o n e n t re u s e
au t o mat ic co d e
g e n e rat io n
t e s t in g
6 0 - 9 0 d ay s
RAD Model
RAD is the incremental software process model
that emphasizes a short development cycle.
The RAD model is a “high - speed “ adaptation
of the water fall model, in which rapid
development is achieved by using a component
based construction approach.
If requirements are well understood and the
project scope is well constrained , the RAD
process enables a development team to create
a “ fully functional system” within a short period
of time.
RAD Model
The RAD approach maps into the
generic frame work activities.
• Communication works understand the
business problems and information
characteristics that the software must
accommodate.
• Planning is essential because multiple
software teams work in parallel on
different system functions.
RAD Model
Modeling encompasses 3 major phases:
• Business Modeling.
• Data Modeling.
• Process Modeling.
• Construction emphasizes the use of pre
existing software components and the
application of automatic code generation.
• Deployment establishes a basis for
subsequent iterations, if required.
Problems occurred in RAD model
1. For large , but scalable projects , RAD requires
sufficient human resources to create the right
number of RAD teams.
2. If developers and customers are not committed
total the system will fail.
3. RAD may not be appropriate when technical
risks are high( e.g ., when a new application
makes heavy use of new technology).
Evolutionary Process Models
1. Prototyping
2. The Spiral Model
3. The Concurrent Development Model.
Prototyping
Quick
Qu ic k p la n
plan
Co m m u n ic at io n
communication
MoModeling
d e lin g
Quickicdesign
Qu k d e s ig n
De p loym e nt
Deployment
De live ry&
delivery
&feedback
Fe e d b ac k Co n s t ru c t io n
Construction
of
of prototype
p ro t o t yp e
Prototyping
A Prototyping can be used as a standalone
process model, it is more commonly used a
technique that can be implemented within the
context of anyone of the process models.
The prototyping paradigm assists the software
engineer and the customer to better understand
what is to be built when requirements are fuzzy.
Evolutionary Models: The Spiral
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery code
feedback test
Evolutionary Models: Concurrent
none
Awa it ing
c ha nge s
Unde r re vie w
Unde r
re vis ion
Ba s e line d
Done
Still Other Process Models
Inc e p t io n
inception
inception
c o ns t ruc t io n
Re le a s e
t ra ns it io n
s oft wa re inc re m e nt
p ro d uc t io n
UP Phases
UP Phases
In ce pt ion Elaborat ion Cons t ruct ion Trans it io n Product ion
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations #1 #2 #n-1 #n
Inception Phase
1. Vision Document
2. Initial use case model
3. Initial project glossary
4. Initial business case
5. Initial risk assessment
6. Project Plan
Phases and Iterations
7. Business Model
If necessary
One or more prototypes
Elaboration Phase
1. Use case Model
2. Supplementary
requirements including non
- functional
3. Analysis Model
4. Software Architecture
description
5. Executable architectural
prototype
6. Preliminary design
7. Revised risk list
Elaboration Phase
Client Managers
System end- users
Client Engineers
User Requirements Contractor Managers
System Architects
In principle, requirements should be both complete and
consistent.
Complete
• They should include descriptions of all facilities
required.
Consistent
• There should be no conflicts or contradictions in the
descriptions of the system facilities.
In practice, it is impossible to produce a complete and
consistent requirements document.
Non-functional requirements
1. It is related to emergent system properties such as
reliability , response time and store occupancy.
Non - Functional
Requirements
Product
Requirements
Reliability
Usability Efficiency Portability
Requirements
Requirements Requirements Requirements
Performance
Space
Requirements
Requirements
Organizational Requirement types
Organizational
Requirements
External
Requirements
Legislative
Inter Operability Implementation Ethical
Requirements
Requirements Requirements Requirements
Privacy Safety
Requirements Requirements
SYSTEM GOAL
The system should be easy to
use by experienced controllers
and should be organised in
such a way that user errors are
minimised.
Domain requirements
Requirements that come from
the application domain of the
system and that reflect
characteristics of that domain.
They may be a functional or
Non - functional requirements
Domain requirements
Derived from the application domain and
describe system characteristics and features that
reflect the domain.
Domain requirements be new functional
requirements, constraints on existing
requirements or define specific computations.
If domain requirements are not satisfied, the
system may be unworkable.
Domain requirements problems
Understandability
• Requirements are expressed in the language of the
application domain;
• This is often not understood by software engineers
developing the system.
Implicitness
• Domain specialists understand the area so well that
they do not think of making the domain requirements
explicit.
Problems with natural language
( Requirements )
Lack of clarity
• Precision is difficult without making the document
difficult to read.
Requirements confusion
• Functional and non-functional requirements tend to
be mixed-up.
Requirements amalgamation
• Several different requirements may be expressed
together.
Software requirements document
The requirements document is the official
statement of what is required of the system
developers.
Should include both a definition of user
requirements and a specification of the system
requirements.
It is NOT a design document. As far as possible,
it should set of WHAT the system should do
rather than HOW it should do it
Users of a requirements document
System Customers
Specify the requirements and read them to check
that they meet their needs. Customers specify
changes to the requirements
Managers
Use the requirements document to plan a bid for the
System and to plan the system development process.
Users of a requirements document
System Engineers
• Product Perspective.
• Product Functions
• User Characteristics
• General Constraints.
• Assumptions and dependencies.
IEEE requirements standard
Specific Requirements
System requirements are intended to
communicate the functions that the system
should provide.
A software requirements document is an agreed
statement of the system requirements.
The IEEE standard is a useful starting point for
defining more detailed specific requirements
standards.