Professional Documents
Culture Documents
What is
The product
that software professionals build and then support
Software?
over the long term.
Software encompasses: (1) instructions (computer programs)
that when executed provide desired features, function, and
performance; (2) data structures that enable the programs to
adequately store and manipulate information and (3)
documentation that describes the operation and use of the
programs.
Software products
Generic products
Stand-alone systems that are marketed and sold to any customer
who wishes to buy them.
Examples PC software such as editing, graphics programs,
project management tools; CAD software; software for specific
markets such as appointments systems for dentists.
Customized products
Software that is commissioned by a specific customer to meet
their own needs.
Examples embedded control systems, air traffic control
software, traffic monitoring systems.
Software costs
Software costs often dominate computer system costs. The
costs of software on a PC are often greater than the hardware
cost.
Software costs more to maintain than it does to develop. For
systems with a long life, maintenance costs may be several
times development costs.
Software engineering is concerned with cost-effective software
development.
Features of Software?
Its characteristics that make it different from other things human being
build.
Features of such logical system:
Software is developed or engineered, it is not manufactured in the
classical sense which has quality problem.
Software doesn't "wear out. but it deteriorates (due to change). Hardware
has bathtub curve of failure rate ( high failure rate in the beginning, then drop to
steady state, then cumulative effects of dust, vibration, abuse occurs).
Wear vs.
Deterioration
Wear vs.
Deterioration
Failure
rate
increased failure
rate due to side effects
change
actual curve
idealized curve
Time
Software
Applications
SoftwareNew Categories
Legacy Software
Why must it change?
Software Engineering
Some realities:
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
Software Engineering
These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e
(McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
Answer
What is software?
What is the difference between software Computer science focuses on theory and fundamentals;
engineering and computer science?
software engineering is concerned with the practicalities
of developing and delivering useful software.
What is the difference between software System engineering is concerned with all aspects of
engineering and system engineering?
computer-based
systems
development
including
hardware, software and process engineering. Software
engineering is part of this more general process.
Description
Maintainability
Dependability and
security
Efficiency
Acceptability
Software Engineering
A Layered Technology
tools
methods
process model
a quality focus
Any engineering approach must rest on organizational commitment to quality which fosters a
continuous process improvement culture.
Process layer as the foundation defines a framework with activities for effective delivery of
software engineering technology. Establish the context where products (model, data, report, and
forms) are produced, milestone are established, quality is ensured and change is managed.
Method provides technical how-tos for building software. It encompasses many tasks including
communication, requirement analysis, design modeling, program construction, testing and
support.
Tools provide automated or semi-automated support for the process and methods.
Software Process
A Process Framework
Umbrella Activities
Complement the five process framework activities and help team manage and control
progress, quality, change, and risk.
Software project tracking and control: assess progress against the plan and take
actions to maintain the schedule.
Risk management: assesses risks that may affect the outcome and quality.
Software quality assurance: defines and conduct activities to ensure quality.
Technical reviews: assesses work products to uncover and remove errors before
going to the next activity.
Measurement: define and collects process, project, and product measures to ensure
stakeholders needs are met.
Software configuration management: manage the effects of change throughout the
software process.
Reusability management: defines criteria for work product reuse and establishes
mechanism to achieve reusable components.
Work product preparation and production: create work products such as models,
documents, logs, forms and lists.
Plan
Req.
Spec
Design
Listing
Test Spec
Workin
g Pgm
Prototyping
Introduction:
This is process that enables the developer to create a model of
the software that must be built.
The model takes one of three forms:
1) a paper prototype
2) a working prototype
3) an existing program
Prototyping
Build/Revise
mock up
Listen to
Customer
Customer
test-drives
mock up
Prototyping
Advantages:
This model serves as a mechanism for identifying
software requirements.
The prototype is tuned to satisfy the needs of the
customer while at the same time enabling the
developer to better understand what needs to be done.
Because of the working prototype, the developer
attempts to make use of existing program fragments or
applies tools.
Prototyping
Disadvantages:
The customer sees the working version of the
software, unaware that the prototype is held together.
In the rush to get it working we havent considered
overall S/w quality or long-term maintainability.
The developer makes implementation compromises in
order to get a prototype working quickly.
Spiral development
Process is represented as a spiral rather than as a
sequence of activities with backtracking.
Each loop in the spiral represents a phase in the
process.
No fixed phases such as specification or design loops in the spiral are chosen depending on what is
required.
Risks are explicitly assessed and resolved throughout
the process.
Objective setting
Specific objectives for the phase are identified.
Planning
The project is reviewed and the next phase of the spiral is
planned.
38
Fourth Generation
Techniques
Encompasses a broad array of software tools.
Enables the s/w developer to specify characteristics of
s/w at a high level.
The tool then automatically generates the source code
based on the developers specification.
Fourth Generation
Techniques
Requirements
Gathering
Design
Strategy
Implement
ation using
4GL
Testing
Fourth Generation
Techniques
Advantages:
Enables the software developer to represent desired
results in a manner that results in automatic
generation of code to generate those results.
Fills the gap - s/w produced using conventional
methods and paradigms which contributes less and
less to all s/w developed.
The V-Model
44
Advantages of V-model
45
Disadvantages of V-model
46
47
C o n s t ru c t i o n
c ode
t es t
De p l o y m e n t
d e l i v e ry
fe e d b a c k
delivery of
nth increment
increment # 2
Communi c at ion
Planning
Modeling
analys is
des ign
C o n s t ru c t i o n
code
De p l o y m e n t
t es t
d e l i v e ry
fe e d b a c k
increment # 1
delivery of
2nd increment
Co mmuni c at io n
Planni ng
M odel ing
analys is
des ign
C o n s t ru c t i o n
c ode
De p l o y m e n t
t es t
d e l i v e ry
fe edbac k
delivery of
1st increment
50