Académique Documents
Professionnel Documents
Culture Documents
ROGER S. PRESSMAN
FIFTH EDITION
UNIT-I
The Evolving role of software
Software
Software crisis and Myths
Software Engineering a Layered Technology
The software Process models
Component Based development
The Formal Methods Model
4GT
Software Project Planning : Project planning Activities
Software Scope ,Resources
Software project Estimation,Decomposition Techniques
1.SOFTWARE
Computer Software is the product that software engineers
design and build. It encompasses programs that execute within
a computer of any size and architecture.
1.1 THE EVOLVING ROLE OF SOFTWARE
Software takes on a dual role
I)A product
ii) The Vehicle for delivering a product
As a Product, it delivers the computing potential embodied by
computer hardware. It resides within a cellular phone or
operates inside a mainframe computer.
Software is an information transformer Producing,
managing, acquiring, modifying, displaying, or transmitting
information.
As a vehicle ,it is used to deliver the product
The role of computer software has undergone significant
change in more than 50 years.
Popular books published during the 1970s and 1980s gives the
change perception of computer software.
1) Osborne Characterized a New industrial Revolution
2)Toffler called the advent of microelectronics part of The
third wave of change .
3)Naisbitt Information society- About transformation in an
industrial society.
4)Feigenbaum and Mccorduck suggested that information
and knowledge would be the focal point in the 21st century.
5) Stoll argued that Electronic Communityis created by the
network and the software was the key knowledge to
interchange information.
6)Toffler described a Power Shift in which a software lead
to a Democratization of Knowledge
7)Yourdon predicted The decline and fall of the American
programmer.
8) Hammer and Champy argues that information technology
is the pivotal role in Reengineering of the corporation .
9)During the later 1990s ,Yourdon suggested that the rise and
resurrectionof the American programmer.
10)As twentieth century closed, the focus shifted to the impact
on Y2K Time bomp.
1.2 SOFTWARE
Definition
Software is
1)Instructions ( Computer programs) that when
executed provide desired function and performance.
2) data structures that enable the programs to adequately
manipulate information.
3) Documents that describe the operation and use of the
programs.
Software is a logical rather than a physical element.
1.2.1 SOFTWARE CHARACTERISTICS
Management myths
Managers are responsible to maintain the budgets, Keep
schedules from slipping, and improve quality.
Myth :
We already have a book thats full of standards and procedures for
building software.wont that provide my people everything they
need to know?
Reality : The book of standards is well exists.
But are the s/w Engineers aware of its existence?
Does it reflects the modern s/w engineering Practices?
Is it complete?
- In many cases the the answer to this questions is no.
Myth : Many people have state-of the art s/w development
tools, we buy them the newest computers.
Reality : To produce the high quality s/w it takes much more time
and cost
CASE tools are more important to achieve good quality
and productivity.
Myth :If we get behind the schedule we can add more programmers
and catch up.
Reality: Brooks state the Adding people to a late s/w project makes
it later.
If new people are added ,people who were working must
spend time for educating new comers.
Myth : if i decide to outsource the s/w project to a third party, I can
just relax.
Reality: If an organization does not understand how to manage and
control s/w it will Struggle to when it outsource the s/w
project.
Customer myths : A Customer who requests the computer s/w .
Technical
Status Quo development
Solution
Integration
System/information Engineering
Customer
Customer
test
testdrives
drives
mock-up
mock-up
2) The developer often make implementation compromises
in order to get a prototype working quickly.
-An inappropriate OS or Programming language may be used
- An inefficient algorithm may be used to demonstration.
2.6 The RAD model :
Rapid Application Development
Application generation : RAD assumes the use of 4GT, rather than creating
S/W using III generation languages.
Business
Business Data
Business
Business modeling
modeling
Data
modeling
modeling
modeling
modeling
Data Process
Process
Data
modeling modeling
modeling
modeling
Data
Data Application
Application
modeling
modeling Process
Process generation
generation
modeling
modeling
Testing
Testing&&
Process
Process Application
Application turnover
turnover
generation
generation
modeling
modeling
Testing
Testing&&
turnover
Team #3
turnover
Application
Application
generation
generation
Testing
Testing &&
RAD turnover
turnover
model With in 60 to 90 days
The Drawbacks of RAD Approach:
1)For large projects, RAD requires sufficient human resources
4) RAD is not appropriate when technical risks are high. Ie,heavy use of new
technology, high degree of interoperability etc.
2.7 Evolutionary software process models :
1) The Incremental model :
It combines the elements of the linear sequential model with the
iterative philosophy of prototyping.
The incremental model applies linear sequences as calendar progress
Each linear sequence produces a deliverable Increment of the
software.
For Example :
Word processing S/W developed using incremental paradigm may deliver
1. Basic file management, Editing, and Document production function
in the first increment
2. More sophisticated editing and document production capabilities in
the second increment
3. Spelling and grammar checking in the third increment
4. Advanced page layout in the fourth increment.
When an incremental model is used the first increment is often a core
product.
The core product is used by the customer for detailed review
Evaluation a plan is developed for the next increment.
The plan addresses the modification of the core product.
This process is repeated following the delivery of each increment until
a the complete product is produced.
Incremental development is particularly useful when staffing is
unavailable.
Figure: The increment model
Increment 1
Delivery of
Analysis
Analysis Design
Design Code
Code Test
Test 1st increment
Delivery of
Increment 2 Analysis
Analysis Design
Design Code
Code Test
Test 2 increment
nd
Delivery of
Increment 3 Analysis
Analysis Design
Design Code
Code Test
Test 3 increment
rd
Increment 4 Analysis
Analysis Design
Design Code
Code Test
Test
Delivery of
4th increment
Calendar time
2.7.2 THE SPIRAL MODEL :It includes the features of both the classic life
cycle and prototyping.
A spiral model is divided in to number of framework activities also called Task
region.
There are six task region in spiral model. They are
1.Customer communication : Tasks required to establish effective
communication between developer and customer.
2.Planning : Tasks required to define resources, timelines, and other project
related information.
3)Risk analysis : Tasks required to assess both technical and management
risks
As the evolutionary begins, the S/W engineering team moves around the spiral
in clockwise direction.
Cost and schedule are adjusted based on the feed back derived from the
customer evaluation
Advantages :
Spiral model is the most realistic approach now. It uses prototyping as
a risk reduction mechanism and maintains systematic stepwise approach
suggested by the water fall model
Problems :
It may be difficult to convince customers.
Boehm's win win spiral model defines a set of negotiation activities at the
beginning of each pass around the spiral.
Rather than a single customer communication activity, the following
activities are defined
1)Identification of the system or subsystems key stakeholders.
2)Determination of stakeholders Win conditions
3)Negotiation of the stakeholders with a set of WINWIN conditions.
In this model the stress placed on early negotiation.
It introduces three process milestones, called anchor points that
helps to the completion one cycle.
The First anchor Point is Life cycle objectives (LCO)
Figure illustrates the activity analysis may be in any one of the states.
All activities exists concurrently but in different states.
In a project the customer communication activity has completed its first iteration
and exists in AWAITING CHANGES state.
The analysis activity now makes a transition to the under development state
Again if the customer indicates the changes in the requirements the analysis
activity moves from the under development state to Awaiting changes.
The concurrent process model often used as a paradigm for the
development of Client/Server applications.
Figure:
Under
One element of Under
development
The concurrent development
Process model
Awaiting
Awaiting
changes
changes
Under
Underreview
review
Under
Under
revision
revision
Base
Baselined
lined
Done
Done
Represents a state of a
Software engineered activity
2.8 Component Based development :
Object oriented technologies provide the technical frame work for component-
based process model.
.
If the classes need is exists in the library, then it is extracted from the library
and reused.
Customer
communication Construct Look up
nth iteration components
Of system in library
3)The use of 4GT demands much more analysis and design, but we
can save the time in coding.
DEMERITS :
4GT tools are not at all easy to use than programming languages, the
resultant source code produced by such tools is Inefficient
SOFTWARE PROJECT PLANNING
Planning involves Estimation- that is an attempt to determine how
much money, how much effort, how many resources, how much time
needed to build a project.
Projective planning objectives :
The objective of S/W project planning is to provide a framework that
enables the manager to make reasonable estimates of resources, cost,
schedule.
The objective is achieved through a process of information discovery
that leads to reasonable estimates.
SOFTWARE SCOPE:
The first activity in S/W project planning is the determination of S/W
Scope.
Obtaining information necessary for scope:
The most commonly used technique to bridge the communication gap
is to conduct a meeting or interview.
To avoid the problems in requirement gathering, a team oriented
approach is developed to gather the requirements called FAST ( Facilitated
Application Specification Technique).
This approach encourages the creation of the team of customers and
developers who work together to identify
The problem
Propose elements of the solution
Negotiate different approaches
Specify a preliminary set of requirements
Software scope describes
Data and control to be progressed
Function
Performance
Constraints
Interfaces
Reliability
Resources:
The second S/W planning task is estimation of Resources
required to develop a S/W. consider the following figure.
Fig :Resources
People
Reusable software
components
i) Off-the-shelf components :
COTS components are purchased from a third party, are ready for
reuse on the current project, and have been fully validated.
ii) Full-experience components :
Existing specifications, designs, code, or test data developed
for past projects that are similar to the S/W to be build for the current project.
Modifications required for full-experience components will be
relatively low risk.
ii) Base estimates on similar projects that have been already completed.
iii) Use relatively simple decomposition techniques to generate cost & effort.
iv) Use or more empirical models for S/W cost and effort estimation.
.
The first option indicates the longer wait leads to an effective estimation of cost and
effort
The second option indicates that if the current project is quite similar to past efforts
and other project influences (eg. The customer, business conditions, dead lines)
are equivalent.
Decomposition techniques take a divide and conquer approach to S/W project
estimation. That is decomposing the project in to major functions ,S/E engineering
activities, the cost and effort can be calculated.
Number of inputs 20 24 30 24 4 97
Number of outputs 12 15 22 16 5 78
Number of inquiries 16 22 28 22 5 88
Number of files 4 4 5 4 10 42
estimated efforts required for analysis, design, code, and test are then
calculated.
Based on an average labor rate of $8000, the total estimated project cost is
$368,000 , and the estimated effort is 46 persons-months .
5.7 EMPIRICAL ESTIMATION MODELS
An estimation model for computer S/W uses empirically derived formulas to
predict effort as a function of LOC or FP.
The empirical data that supports most estimation models are derived form a
limited sample projects.
The structure of estimation models
A typical estimation model is derived using regression analysis on data collected
from past S/W projects .
The over structure of such models takes the form
E=A+B x (ev)C
This model is one of the widely used S/W cost estimation model.
It has evolved into a more comprehensive estimation model called COCOMO II.
Screen 1 2 3
Report 2 5 8
3 GL Component 10
Figure: Complexity weighting for object types
When component-based development or general S/W reuse is applied, the
percentage Of reuse is
estimated and the object point count is adjusted.
PROD 4 7 13 25 50
Using these two equations, the productivity parameter for the CAD
S/W is
P=12,000.
t min=12.6 calendar months
E= 58 person-months.