software engineering
Software is
(1) instructions that when executed provide desired function and performance
(2) data structures that enable the programs to adequately manipulate information, and
(3) documents that describe the operation and use of the programs.
Software is a logically rather than a physical system element. Therefore, software has
characteristics that are considerably different than those of hardware:
1
Radiant info school kandy BCS DIPLOMA S/E
Figure above depicts failure rate as a function of time for hardware. The relationship
often called the "bath tub curve" indicates that hardware exhibits relatively high failure
rates early in its life (these failures are often attributable to design or manufacturing
defects); defects are corrected and the failure rate drops to a steady-state level (ideally,
quite low) for some period of time. As time passes, however, the failure rate rises again
as hardware components suffer from the cumulative effects of dust, vibration, abuse,
temperature extremes, and any other environmental maladies. Stated simply, the
hardware begins to wear out.
Software is not suspect able to the environmental maladies that cause hardware to wear
out. In, theory, therefore, the failure rate curve for the software should take the form of
the "idealized curve". Undiscovered defects will cause high failure early in the life of a
program. However these are corrected (ideally, without introducing other errors) and the
curve flattens. However, the implication is clear--software doesn't wear out. But it does
deteriorate!
Software Applications
2
Radiant info school kandy BCS DIPLOMA S/E
system software
application software
engineering/scientific software
embedded software
product-line software
AI software
Software—New Categories
Also …
Data mining
Grid computing
Cognitive machines
Legacy Software
3
Radiant info school kandy BCS DIPLOMA S/E
Consider the manner in which the control hardware for a computer-based product is designed
and built. The design engineer draws a simple schematic of the digital circuitry, does some
fundamental analyst to assure that proper function will be achieved, and then goes to the shelf
where catalogs of digital components exist. Each integrated circuit (called an IC or a chip) has a
part number, a defined and validated function, a well-defined interface, and a standard set of
integration guidelines. After each component is selected, it can be ordered off the shelf.
Software engineering is the establishment and use of sound engineering principles in order to obt
ain economically software that is reliable and works efficiently on real machines
A collection of theories, techniques, and tools which enable fallible humans to design, construct
and maintain large software products in a reliable and cost effective manner
June 9, 1980
US airline
4
Radiant info school kandy BCS DIPLOMA S/E
April 1983
The court discharged a woman (54), who was on trial for murdering her daughter…
Waterfall
Incremental model
System/information in c r e m e n t 1
engineering
d e liv e r y o f
4 t h in c r e m e n t
c a le n d a r t im e
5
Radiant info school kandy BCS DIPLOMA S/E
prototype
lis te n
to b u ild /re v is e
c u s to m e r m o c k -u p
c u s to m e r
te s t-d riv e s
m o c k -u p
team #3
team #2
business
mode ling
process
business mode ling
modeling data
modeling application
generation
testing
&
process turnover
data modeling
modeling
application
generation
process
modeling testing
&
turnover
application
generation
testing
&
turnover
60 - 90 days
6
Radiant info school kandy BCS DIPLOMA S/E
spiral
Planning
Risk Analysis
Customer
Communication
Engineering
Customer
Evaluation Construction & Release
Historical case studies contain a wealth of wisdom about the nature of design and the
engineering method
1. Technical slip
2. Bad management
3. Bad communication
Ariane 5, Flight 501
3. Over-confidence on software
7
Radiant info school kandy BCS DIPLOMA S/E
1. Bad communication
m technical difficulties
• For every 6 large software projects put into operation, 2 are cancelled
• The average software development project overshoots its schedule by half
• Three quarters of all large systems are “operating failures.” (Don’t function as
intended or are not used at all)
8
Radiant info school kandy BCS DIPLOMA S/E
A Process defines a framework for a set of key process areas that must be established to ensure
effective delivery of software engineering technology.
The Key process areas form the basis for management control of software projects. These
include tasks such as:
- Determining Deliverables
- Establishing milestones
- Software Quality Assurance
- Software Configuration (change) Management
Software Engineering methods provide the technical how to for building software.
- Requirements Analysis
- Design
- Program Construction
- Testing
- Maintenance
Software Engineering Tools provide automated or semi-automated support for the process and
the methods.
9
Radiant info school kandy BCS DIPLOMA S/E
A software engineering strategy that encompasses the process, methods, and tools used for
system development.
The Linear Sequential Model (also known as classic life cycle model and waterfall model):
- Developer and customer meet and define the overall objectives for the software,
identify whatever requirements are known, and outlines areas where further definition is
mandatory.
10
Radiant info school kandy BCS DIPLOMA S/E
11
Radiant info school kandy BCS DIPLOMA S/E
Customer
Communication
Engineering
C ustomer
Evaluation Construc tion & Release
spiral modal is an evolutionary software process model that couples the iterative nature of
prototyping with the controlled and systematic aspects of the linear sequential model. Using the
12
Radiant info school kandy BCS DIPLOMA S/E
spiral model, software is developed in a series of incremental releases. During early iterations,
the incremental release might be a paper model or prototype. During later iterations, increasingly
more complete versions of the engineered system are produce. A spiral model is divided into a
number of frame work activities.
. Customer Communication
. Planning
. Risk Analysis
. Construction and releases
. Customer Evaluation
ii)- Planning
The tasks required to define resources, timelines and other project related information.
iv)- Engineering
The tasks required to build one or more representations of the application.
2. Other Models:
- Incremental model
- Conformance to
- explicitly stated functional and performance requirements,
- explicitly documented development standards, and
- implicit characteristics that are expected of all professionally developed software.
- Quality is built into the system starting with methods and tools used to help analyze and
design the system, and not reached after the system has been developed.
- Quality factors:
- Correctness
- Reliability
- Efficiency
- Integrity
- Usability
- Maintainability
- Flexibility
- Testability
- Portability
- Reusability
- Interoperability
- The art of identifying, organizing, and controlling modifications to the software being built
by a programming team.
- SCM Activities:
14
Radiant info school kandy BCS DIPLOMA S/E
- Identify change
- Control change (improve quality and reduce error)
- Ensure correct implementation of change
- Report change to those who may be effected
1. Conventional Development
View software as an information transform and approach each problem using a input-
process-output viewpoint.
2. Object-Oriented Development
Consider each problem as a set of classes and work to create a solution by implementing a
set of communicating objects that are instantiated from these objects.
3. Formal Methods
15
Radiant info school kandy BCS DIPLOMA S/E
TESTING:
Verify that a small segment of source code has been correctly implemented
- Reuse
- Reengineering
- Retooling
16