Software Engineering: Lecture # 1
Software Engineering: Lecture # 1
Software Engineering: Lecture # 1
LECTURE # 1
Prepared By:
Jaswinder Kaur
CSE/IT
TOPICS:
INTRODUCTION
CHARACTERISTICS
CRISIS / CHALLENGES
MYTHS
What is Software?
Software is
Instructions that when executed provide desired
of the programs.
Student software
Industrial Strength software
Developed to solve some Meant for demonstration
problems of the client and purposes.
is used by organizations for Software failure does not
operating some part of cause any loss
business.
Software Characteristics
Software is developed or engineered; not manufactured.
Software does not wear out. But it does deteriorate.[Failure curves for H/W
and S/W]
Although industry is moving to component-based design, most software
continues to be custom built.
Maintainability
◦ Software must evolve to meet changing needs
Dependability
◦ Software must be trustworthy
Efficiency
◦ Software should not make wasteful use of system resources
Usability
◦ Software must be usable by the users for which it was designed
Software failures
Therac-25 (1985-1987):
o six people overexposed during treatments for
cancer
Taurus (1993):
o the planned automatic transaction settlement
system for London Stock Exchange cancelled
after five years of development
Ariane 5 (1996):
o rocket exploded soon after its launch due error
conversion (16 floating point into 16-bit
integer)
The Mars Climate Orbiter
o assumed to be lost by NASA officials (1999):
different measurement systems (Imperial and
metric)
Categories of computer softwares
System Software
Collection pf programs written to service other
programs; e.g.,compilers,editors,etc.
Application Software
Standalone programs that solve a specific buisness
need.
Categories cont…
Embedded Software
Web applications
AI Software's
Robotics, expert systems,
Software Engineering Challenges
Heterogeneity
◦ Developing techniques for building software that can cope
with heterogeneous platforms and execution environments;
Delivery
◦ Developing techniques that lead to faster delivery of
software;
Trust
◦ Developing techniques that demonstrate that software can
be trusted by its users.
Schedule
◦ Business trends need, time to market a product
should be minimum.
Software Engineering Challenges
Coping with legacy systems, coping with
increasing diversity and coping with demands for reduced
delivery times
Legacy systems
• Old, valuable systems must be maintained and updated
Scale
SOFTWARE PROCESSES
Definition:
A structured set of activities required to develop a
software system
◦ Specification;
◦ Design;
◦ Validation;
◦ Evolution.
A software process model is an abstract
representation of a process. It presents a description
of a process from some particular perspective.
Components in a S/W Process
PROCESS
PRODUCT PROCESS
ENGG. PROCESS MANAGEMENT
PROJECT
DEVELOPME MANAGEME SCMP
NT PROCESS NT PROCESS
SCMP
o Deal with managing change
Project Management Process
o Specifies how to plan and control these
I/P O/P
Desired characteristics of S/W process
Predictability
◦ Under stastiscal control[graph]
Support testability and maintainability
Support change
Early defect detection and removal
Process improvement and feedback
Generic software process models
The waterfall model
◦ Separate and distinct phases of specification and
development.
Evolutionary development
◦ Specification, development and validation are
interleaved.
Component-based software engineering
◦ The system is assembled from existing components.
There are many variants of these models e.g. formal
development where a waterfall-like process is used
but the specification is a formal specification that is
refined through several stages to an implementable
design
WATERFALL MODEL
MODEL
ENTRY AND EXIT CRITERIA
WORK PRODUCTS
◦ Feasibility report
◦ SRS
◦ Design documents
◦ Test plans and test reports
◦ Final code
◦ Software manuals
Waterfall model phases
SYSTEM FEASIBILITY
REQUIREMENT ANALYSIS
SYSTEM DESIGN
DETAILED DESIGN
CODING
TESTING
INSTALLATION
MAINTENANCE
Waterfall model problems
H/W obsolete.
EVOLUTIONARY MODELS
The Incremental Model
It combines elements of waterfall model
applied in an iterative fashion.
Each linear sequence produces a deliverable
Planning
Modeling
Construction
Deployment
The incremental Model
Example
word-processing software developed using
the incremental paradigm might deliver basic
file management, editing, and document
production functions in the first increment.
editing and document production capabilities
increment.
advanced page layout capability in the fourth
increment.
About the model
the first increment is often a core product.
basic requirements are addressed, but many
incremental releases.
At final stages, more complete versions of the