3 Chapter 1
3 Chapter 1
1
What is software?
Programs
Documentatio Operating
n Procedures
Software=Program+Documentation+Operating Procedures
Components of software
2
Documentation consists of different types of manuals are
Formal Specification
Analysis Context-
/Specification Diagram
Data Flow
Diagrams
Flow Charts
Design
Entity-Relationship
Documentation Diagram
Manuals
Source Code Listings
Implementation Cross-Reference
Listing
Test Data
Testing
Test Results
Operating
Procedures
Installation Guide
Operational
Manuals
System
Administration Guide
5
Software Product
Software product is a product designated for
delivery to the user
source documents
codes reports
manuals
object plans
codes
data
6
What is software engineering?
• Lack of knowledge
9
Software Process
• Wrong motivations
• Insufficient commitment
Improved future state
Process improvement
begins
Initial state
state
Productivity
Learning curve
Time
10
Software Characteristics:
Burn-in
phase Wear out
phase
Failure Intensity
Useful life
phase
Time
11
Software Characteristics:
Software is not manufactured
Reusability of components
Software is flexible
12
Software Characteristics:
Comparison of constructing a bridge vis-à-vis writing a program.
Sr. Constructing a bridge Writing a program
No
1. Only some parts of the problem are
The problem is well understood
understood, others are not
2. Every program is different and designed for
There are many existing bridges
special applications.
3. The requirement for a bridge typically do Requirements typically change during all
not change much during construction phases of development.
4. The strength and stability of a bridge can be Not possible to calculate correctness of a
calculated with reasonable precision program with existing methods.
5. When a bridge collapses, there is a When a program fails, the reasons are often
detailed investigation and report unavailable or even deliberately concealed.
6. Engineers have been constructing bridges Developers have been writing programs
for thousands of years for 50 years or so.
7. Materials (wood, stone,iron, steel) and Hardware and software changes rapidly.
techniques (making joints in wood, carving
stone, casting iron) change slowly.
13
Software Characteristics
increased failure
rate due to side effects
Failure
rate
change
actual curve
idealized curve
Time
The Changing Nature of Software
System Real
Software Time
Software
Engineering
and Scientific Embedded
Software Software
16
Types of Software
• Embedded Software-:
Embedded software resides in read-only memory
and is used to control products and systems for the
consumer and industrial markets. It has very
limited and esoteric functions and control
capability.
21
Software Myths (Management Perspectives)
The infrastructure is
only one of the several factors
that determine the quality
of the product!
22
Software Myths (Management Perspectives)
Unfortunately,
that may further delay the schedule!
23
Software Myths (Management Perspectives)
24
Software Myths (Management Perspectives)
25
Software Myths (Customer Perspectives)
26
Software Myths (Customer Perspectives)
27
Software Myths (Developer Perspectives)
28
Software Myths (Developer Perspectives)
29
Software Myths (Developer Perspectives)
30
Software Myths (Developer Perspectives)
31
A Layered Technology
tools
methods
process model
a “quality” focus
Some Terminologies
The milestones are the events that are used to ascertain the status of
the project. Finalization of specification is a milestone. Completion of
design documentation is another milestone. The milestones are
essential for project planning and management.
33
Some Terminologies
Product and Process
Product: What is delivered to the customer, is called a product. It may
include source code, specification document, manuals,
documentation etc. Basically, it is nothing but a set of deliverables
only.
If the process is weak, the end product will undoubtedly suffer, but
an obsessive over reliance on process is also dangerous.
34
Some Terminologies
35
Some Terminologies
Software Process and Product Metrics
36
Some Terminologies
37
Some Terminologies
There are many definitions of the term module. They range from “a
module is a FORTRAN subroutine” to “a module is an Ada
Package”, to “Procedures and functions of PASCAL and C”, to
“C++ Java classes” to “Java packages” to “a module is a work
assignment for an individual developer”. All these definition are
correct. The term subprogram is also used sometimes in place of
module.
38
Some Terminologies
39
Some Terminologies
40
Role of Management in Software Development
Factors
People Project
Product Process
41
Role of Management in Software Development
People
Process
42
43
Software Life Cycle Models
44
Software Life Cycle Models
45
Build & Fix Model
defined
46
Build & Fix Model
47
Waterfall Model
Implementation
and unit testing
Operation and
maintenance
48
Waterfall Model
49
Waterfall Model
50
Incremental Process Models
51
Iterative Enhancement Model
This model has the same phases as the waterfall model, but with
fewer restrictions. Generally the phases occur in the same order as
in the waterfall model, but they may be conducted in several cycles.
Useable product is released at the end of the each cycle, with each
release providing additional functionality.
52
Iterative Enhancement Model
Requirements
specification
Architectural
design
Detailed
design
Implementation
and unit testing
Integration
and testing
Operation and
Maintenance
53
The Rapid Application Development (RAD) Model
55
The Rapid Application Development (RAD) Model
56
Evolutionary Process Models
This model is useful for projects using new technology that is not
well understood. This is also used for complex projects where all
functionality must be delivered at one time, but the requirements
are unstable or not well understood at the beginning.
57
Evolutionary Process Model
Concurr ent
activities
Initial
Specification
version
Outline Intermediate
Development
description versions
Final
Validation
version
58
Prototyping Model
59
Prototyping Model
• Linear model
• “Rapid”
60
Spiral Model
61
Spiral Model
The radial dimension of the model represents the cumulative costs.
Each path around the spiral is indicative of increased costs. The
angular dimension represents the progress made in completing each
cycle. Each loop of the spiral from X-axis clockwise through 360o
represents one phase. One phase is split roughly into four sectors of
major activities.
Planning: Determination of objectives, alternatives &
constraints.
Risk Analysis: Analyze alternatives and attempts to identify
and resolve the risks involved.
Development: Product development and testing product.
Assessment: Customer evaluation
62
Spiral Model
An important feature of the spiral model is that each phase is
completed with a review by the people concerned with the
project (designers and programmers)
The advantage of this model is the wide range of options to
accommodate the good features of other life cycle models.
It becomes equivalent to another life cycle model in
appropriate situations.
The spiral model has some difficulties that need to be resolved
before it can be a universally applied life cycle model. These
difficulties include lack of explicit process guidance in determining
objectives, constraints, alternatives; relying on risk assessment
expertise; and provides more flexibility than required for many
applications.
63
The Unified Process
64
Phases of the Unified Process
Time
65
Phases of the Unified Process
• Inception: defines scope of the project.
• Elaboration
- How do we plan & design the project?
- What resources are required?
- What type of architecture may be suitable?
• Construction: the objectives are translated in design &
architecture documents.
• Transition : involves many activities like delivering, training,
supporting, and maintaining the product.
66
Initial development & Evolution Cycles
V1
Inception Elaboration Construction Transition
Initial development Cycle
V2
Inception Elaboration Construction Transition
Evolution Cycle
V3
Inception Elaboration Construction Transition
68
Inception Phase
69
Outcomes of Inception Phase
70
Elaboration Phase
71
Outcomes of Elaboration Phase
72
Construction Phase
73
Outcomes of Construction Phase
Test Operational
Outline manuals
Documentation
Construction Test Suite
manuals
A description
Software of the
product User manuals current release
74
Transition Phase
75
Outcomes of Transition Phase
Transition
76
Selection of a Life Cycle Model
b) Development team
c) Users
77
Based On Characteristics Of Requirements
Are requirements
easily understandable Yes No No No No Yes
and defined?
Do we change
requirements quite No Yes No No Yes No
often?
Can we define
requirements early Yes No Yes Yes No Yes
in the cycle?
Requirements are
indicating a complex No Yes Yes Yes Yes No
system to be built
78
Based On Status Of Development Team
Less experience on
No Yes No No Yes No
similar projects?
Less domain
knowledge (new to Yes No Yes Yes Yes No
the technology)
Less experience on
tools to be used Yes No No No Yes No
Availability of
No No Yes Yes No Yes
training if required
79
Based On User’s Participation
Involvement Waterfall Prototype Iterative Evolutionary Spiral RAD
of Users enhancement development
User involvement
in all phases No Yes No No No Yes
Limited user
participation Yes No Yes Yes Yes No
User have no
previous experience No Yes Yes Yes Yes No
of participation in
similar projects
80
Based On Type Of Project With Associated Risk
Project type Waterfall Prototype Iterative Evolutionary Spiral RAD
and risk enhancement development
Project is the
enhancement of the No No Yes Yes No Yes
existing system
Funding is stable
for the project Yes Yes No No No Yes
High reliability
requirements No No Yes Yes Yes No
Tight project
No Yes Yes Yes Yes Yes
schedule
Use of reusable
components No Yes No No Yes Yes
Are resources
(time, money, No Yes No No Yes No
people etc.) scare?
81