c
c
c
c
c
c c
c
c
The economies of ALL developed nations are dependent on software.
More and more systems are software controlled
Software costs often dominate computer system costs
Software costs more to maintain than it does to develop
Software engineering is concerned with cost-effective software development
c
c
Computer programs and associated documentation such as requirements,
design models and user manuals
Software products may be developed for a particular customer or may be
developed for a general market.
Software products may be
Ôc
- developed to be sold to a range of different customers
e.g. PC software such as Excel or Word.
Ôc 0 (custom) - developed for a single customer according to
their specification.
New software can be created by developing new programs, configuring generic
software systems or reusing existing software
c
c
Software engineering is an engineering discipline that is concerned with all
aspects of software production.
Software engineers should adopt a c
c
approach to
their work and c c c
c
depending on the
problem to be solved, the development constraints and the resources available
System engineering is concerned with all aspects of computer-based systems
development including hardware, software and process engineering. Software
engineering is c c c concerned with developing the c
!c
!c
c
c" in the system.
System engineers are involved in c
!cc
!c
c
c
.
#c
cc c$ %c
c
A cc& whose goal is the development or evolution of software.
Generic activities in all software processes are:
Ôc Specification - what the system should do and its development
constraints
Ôc ºevelopment - production of the software system
Ôc Ñalidation - checking that the software is what the customer wants
Ôc Evolution - changing the software in response to changing
demands.
#c
cc c$ c'()c
c
A simplified representation of a software process (cc&), presented
from a specific perspective.
Examples of process perspectives are
Ôc Workflow perspective - sequence of activities;
Ôc ºata-flow perspective - information flow;
Ôc pole/action perspective - who does what.
Generic process models
Ôc Waterfall;
Ôc terative development;
Ôc Component-based software engineering.
#c
c c*'$+,
((c c
-c
Software systems that are intended to provide automated support for software
process activities.
systems are often used for method support.
Upper-CASE
Tools to support the early process activities of requirements and
design;
Lower-CASE
Tools to support later activities such as programming, debugging
and testing.
#cc#c
0+ cc (c %c
c
The software should deliver the required functionality and performance to the
user and should be maintainable, dependable and acceptable.
Maintainability
Software must evolve to meet changing needs;
ºependability
Software must be trustworthy;
Efficiency
Software should not make wasteful use of system resources;
Acceptability
Software must accepted by the users for which it was designed. This
means it must be understandable, usable and compatible with other
systems.
#c c #c ./c #)) c
c c
%c
c
ueterogeneity, delivery and trust.
ueterogeneity (lack of uniformity)
ºeveloping techniques for building software that can cope with
heterogeneous platforms and execution environments;
ºelivery
ºeveloping techniques that lead to faster delivery of software;
Trust
ºeveloping techniques that demonstrate that software can be trusted
by its users.
)+ cc)
0
)
/c
uardware ² uardware failure
Operator ² Error by Operator
)
0
)
/c)
#
$
uardware failure can generate spurious signals that are outside the range of
inputs expected by the software.
Software errors can cause alarms to be activated which cause operator stress
and lead to operator errors.
The environment in which a system is installed can affect its reliability.
/ 'c0
0
Should define ca system is being procured for a particular environment.
Functional objectives
To provide a fire and intruder alarm system for the building, which
will provide internal and external warning of fire or unauthorized
intrusion.
Organisational objectives
To ensure that the normal functioning of work carried out in the
building is not seriously disrupted by events such as fire and
unauthorized intrusion.
/ 'c1+
' c$0)' c
Complex systems are usually developed to address wicked problems
Problems that are not fully understood;
Changing as the system is being specified.
Must anticipate hardware/communications developments over the lifetime
of the system.
Hard to define non-functional requirements (particularly) without knowing
the component structure of the system.
/ 'c'())
c
An architectural model presents an "c & of the sub-systems
making up a system
May include major information flows between sub-systems
Usually presented as a block diagram
May identify different types of functional component in the model
Y
",c (
c
Movement ºetects movement in the rooms monitored by the
sensors system
ºoor sensors ºetects door opening in the external doors of the
building
Alarm Controls the operation of the system
controller
Siren Emits an audible warning when an intruder is
suspected
Ñoice Synthesizes a voice message giving the location of the
synthesizer suspected intruder
Telephone Makes external calls to notify security, the police, etc.
caller
/ 'c
c
The process of putting hardware, software and people together to make a
system.
Should be tackled incrementally so that sub-systems are integrated one at a
time.
nterface problems between sub-systems are usually found at this stage.
May be problems with uncoordinated deliveries of system components.