SE Notes Unit 1
-
Upload
sundaravananrm -
Category
Documents
-
view
216 -
download
0
Transcript of SE Notes Unit 1
-
8/9/2019 SE Notes Unit 1
1/76
1
.
PART A:
Unit 1: Overview
Topics covered
FAQs about software engineering
Professional and ethical responsibility Emergent system properties
system engg. and Organization
people and computer system
legacy system
-
8/9/2019 SE Notes Unit 1
2/76
2
Software engineering
The economies of ALL developed nations
are dependent on software.
More and more systems are software
controlled
Software engineering is concerned withtheories, methods and tools for
professional software development.
Expenditure on software represents a
significant fraction of GNP in all developedcountries
-
8/9/2019 SE Notes Unit 1
3/76
3
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 itdoes 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.
-
8/9/2019 SE Notes Unit 1
4/76
4
What is software?
What is software engineering?
What is the difference between softwareengineering and computer science?
What is the difference between software
engineering and system engineering?
FAQs about software engineering
-
8/9/2019 SE Notes Unit 1
5/76
-
8/9/2019 SE Notes Unit 1
6/76
6
What is software?
It is not just computer programming.
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.
-
8/9/2019 SE Notes Unit 1
7/76
-
8/9/2019 SE Notes Unit 1
8/76
8
Software engineering is an engineering
discipline that is concerned with all aspects of
software production.
Software engineers should adopt a systematic
and organised approach to their work , use
appropriate tools and techniques depending on
the problem to be solved, the development
constraints and the resources available.
What is software engineering?
-
8/9/2019 SE Notes Unit 1
9/76
9
Computer science is concerned with theory and
fundamentals; software engineering is concerned
with the practicalities of developing and delivering
useful software.
Computer science theories are still insufficient to
act as a complete underpinning for softwareengineering (unlike e.g. physics and electrical
engineering).
What is the difference between software
engineering and computer science?
-
8/9/2019 SE Notes Unit 1
10/76
10
System engineering is concerned with all aspects
of computer-based systems development
including hardware, software and process
engineering.
Software engineering is part of this process
concerned with developing the software
infrastructure, control, applications and databases
in the system.System engineers are involved in system
specification, architectural design, integration and
deployment.
What is the difference between software
engineering and system engineering?
-
8/9/2019 SE Notes Unit 1
11/76
11
What is a software process?
A set of activities whose goal is the development
or evolution of software.
Generic activities in all software processes are:
Specification - what the system should do andits development constraints
Development - production of the software
system
Validation - checking that the software is what
the customer wants
Evolution - changing the software in response
to changing demands.
-
8/9/2019 SE Notes Unit 1
12/76
12
What is a software process model?
A simplified representation of a software
process, presented from a specific perspective.
Examples of process perspectives are
Workflow perspective - sequence of
activities;
Data-flow perspective - information flow;
Role/action perspective - who does what.
Generic process models
Waterfall;Iterative development;
Component-based software engineering.
-
8/9/2019 SE Notes Unit 1
13/76
13
What is a software process model?
.
Generic process models
Waterfall;
Evolutionary development;
Component-based software engineering
Formal transformation
System assembly from reusable components
-
8/9/2019 SE Notes Unit 1
14/76
14
What are the costs of software engineering?
Roughly 60% of costs are development costs,
40% are testing costs. For custom software,
evolution costs often exceed development
costs.Costs vary depending on the type of system
being developed and the requirements of
system attributes such as performance and
system reliability.Distribution of costs depends on the
development model that is used.
-
8/9/2019 SE Notes Unit 1
15/76
15
Activity cost distribution
-
8/9/2019 SE Notes Unit 1
16/76
16
Product development costs
-
8/9/2019 SE Notes Unit 1
17/76
17
What are software engineering methods?
Structured approaches to software development
which include system models, notations, rules,
design advice and process guidance.Component Description Example
Model descriptions Descriptions of system models object models,which should be produced data-flow model
Rules Constraints applied to system unique name in
model an entity
Recommendations Advice on good design practice sub-objects in a
objectProcess guidance What activities to follow Documentation
-
8/9/2019 SE Notes Unit 1
18/76
18
What is CASE ?
(Computer-Aided Software Engineering)
Software systems that are intended to provide
automated support for software process activities.
CASE 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 asprogramming, debugging and testing.
case tools may include code generator for
source codes
-
8/9/2019 SE Notes Unit 1
19/76
19
What are the attributes of good software?
The software should deliver the required
functionality and performance to the user
and should be maintainable, dependable
and acceptable.
MaintainabilitySoftware must evolve to meet changing
needs;
Dependability
Software must be trustworthy;
-
8/9/2019 SE Notes Unit 1
20/76
20
EfficiencySoftware should not make wasteful
use of system resources;
Acceptability
Software must accepted by theusers for which it was designed.
This means it must be
understandable, usable and
compatible with other systems.
-
8/9/2019 SE Notes Unit 1
21/76
21
What are the key challenges facing
software engineering?
Legacy Challenge
This is the challenge of maintaining and
updating old software with minimum
maintenance costs for continuous use.Heterogeneity
Developing techniques for building
software that can cope with
heterogeneous platforms andexecution environments in a
distributed network
.
-
8/9/2019 SE Notes Unit 1
22/76
22
Delivery
Developing techniques that lead to
faster delivery of software;
TrustDeveloping techniques that
demonstrate that software can be
trusted by its users
-
8/9/2019 SE Notes Unit 1
23/76
23
Professional and ethical responsibility
Software engineering involves widerresponsibilities than simply the application of
technical skills.
Software engineers must behave in an honestand ethically responsible way if they are to be
respected as professionals.
Ethical behaviour is more than simplyupholding the law.
-
8/9/2019 SE Notes Unit 1
24/76
24
Issues of professional responsibility
ConfidentialityEngineers should normally respect the
confidentiality of their employers or
clients irrespective of whether or not a
formal confidentiality agreement hasbeen signed.
Competence
Engineers should not misrepresent their
level of competence. They should notknowingly accept work which is out with
their competence.
-
8/9/2019 SE Notes Unit 1
25/76
25
Issues of professional responsibility
Intellectual property rights
Engineers should be aware of
local laws governing the use ofintellectual property such as
patents, copyright, etc. They
should be careful to ensure that
the intellectual property ofemployers and clients is
protected.
-
8/9/2019 SE Notes Unit 1
26/76
26
Computer misuse
Software engineers should not use their
technical skills to misuse other peoples
computers. Computer misuse ranges fromrelatively trivial (game playing on an
employers machine, say) to extremely
serious (dissemination of viruses)
-
8/9/2019 SE Notes Unit 1
27/76
27
The professional societies in the US have
cooperated to produce a code of ethical practice.
Members of these organisations sign up to the code
of practice when they join.
The Code contains eight Principles related to the
behaviour of and decisions made by professional
software engineers, including practitioners,educators, managers, supervisors and policy
makers, as well as trainees and students of the
profession.
ACM/IEEE Code of Ethics
-
8/9/2019 SE Notes Unit 1
28/76
28
Code of ethics - preamble
PreambleThe short version of the code summarizes
aspirations at a high level of the
abstraction; the clauses that are included in
the full version give examples and details ofhow these aspirations change the way we
act as software engineering professionals.
Without the aspirations, the details can
become legalistic and tedious; without the
details, the aspirations can become high
sounding but empty; together, the
aspirations and the details form a cohesive
code.
-
8/9/2019 SE Notes Unit 1
29/76
29
Software engineers shall commit themselves
to making the analysis, specification, design,
development, testing and maintenance of
software a beneficial and respected
profession. In accordance with their
commitment to the health, safety and welfareof the public, software engineers shall adhere
to the following Eight Principles:
-
8/9/2019 SE Notes Unit 1
30/76
30
Code of ethics - principles
PUBLIC
Software engineers shall
act consistently with the
public interest.
CLIENT AND EMPLOYERSoftware engineers shall
act in a manner that is in
the best interests of their
client and employerconsistent with the public
interest.
-
8/9/2019 SE Notes Unit 1
31/76
31
PRODUCT
Software engineers shall ensure that
their products and relatedmodifications meet the highest
professional standards possible.
JUDGMENT
Software engineers shall maintainintegrity and independence in their
professional judgment.
-
8/9/2019 SE Notes Unit 1
32/76
32
MANAGEMENT
Software engineering
managers and leaders shall
subscribe to and promote an
ethical approach to the
management of software
development andmaintenance.
PROFESSION
Software engineers shall
advance the integrity andreputation of the profession
consistent with the public
interest.
-
8/9/2019 SE Notes Unit 1
33/76
33
COLLEAGUES
Software engineers shall be fair to
and supportive of their colleagues.
SELF
Software engineers shall participate
in lifelong learning regarding thepractice of their profession and
shall promote an ethical approach
to the practice of the profession.
-
8/9/2019 SE Notes Unit 1
34/76
34
Ethical dilemmas-Examples
Disagreement in principle with the policies of
senior management.
Your employer acts in an unethical way andreleases a safety-critical system without
finishing the testing of the system.
Participation in the development of military
weapons systems or nuclear systems.
-
8/9/2019 SE Notes Unit 1
35/76
35
What is a system?
A purposeful collection of inter-related
components working together to achieve
some common objective.
A system may include software, mechanical,electrical and electronic hardware and be
operated by people.
System components are dependent on other
system components
The properties and behaviour of system
components are inextricably inter-mingled
-
8/9/2019 SE Notes Unit 1
36/76
36
System categories
Technical computer-based systemsSystems that include hardware and software
but where the operators and operational
processes are not normally considered to be
part of the system. The system is not self-aware.
Socio-technical systems
Systems that include technical systems but
also operational processes and people who
use and interact with the technical system.
Socio-technical systems are governed by
organisational policies and rules.
-
8/9/2019 SE Notes Unit 1
37/76
37
Socio-technical system characteristics
Emergent propertiesProperties of the system of a whole that depend on
the system components and their relationships.
Non-deterministic
They do not always produce the same output when
presented with the same input because the systems
behaviour is partially dependent on human operators.
Complex relationships with organisational objectives
The extent to which the system supports
organisational objectives does not just depend on the
system itself.
-
8/9/2019 SE Notes Unit 1
38/76
38
Properties of the system as a whole ratherthan properties that can be derived from the
properties of components of a system
Emergent properties are a consequence ofthe relationships between system
components
They can therefore only be assessed and
measured once the components have beenintegrated into a system
Emergent properties
-
8/9/2019 SE Notes Unit 1
39/76
39
Examples of emergent properties
Property Description
Volume The volume of a system (the total space occupied) varies depending on how the
component assemblies are arranged and connected.
Reliability System reliability dependson component reliability but unexpected interactions can
cause new types of failure and therefore affect the reliability of the system.
Security The security of the system (its ability to resist attack) is a complex property thatcannot be easily measured. Attacks may be devised that were not anticipated by thesystem designers and so may defeat built-in safeguards.
Repairability This property reflects how easy it is to fix a problem with the system once it has been
discovered. It dependson being able to diagnose the problem, access the componentsthat are faulty and modify or replace these components.
Usability This property reflects how easy it is to use the system. It depends on the technicalsystem components, its operators and its operating environment.
-
8/9/2019 SE Notes Unit 1
40/76
40
Types of emergent property
Functional propertiesThese appear when all the parts of a system work
together to achieve some objective. For example, a
bicycle has the functional property of being a
transportation device once it has been assembled from
its components.Non-functional emergent properties
Examples are reliability, performance, safety, and
security. These relate to the behaviour of the system in
its operational environment. They are often critical for
computer-based systems as failure to achieve someminimal defined level in these properties may make the
system unusable.
-
8/9/2019 SE Notes Unit 1
41/76
41
System reliability engineering
Because of component inter-dependencies,
faults can be propagated through the system.
System failures often occur because of
unforeseen inter-relationships betweencomponents.
It is probably impossible to anticipate all
possible component relationships.
Software reliability measures may give a false
picture of the system reliability.
-
8/9/2019 SE Notes Unit 1
42/76
42
Influences on reliability
Hardware reliabilityWhat is the probability of a hardware
component failing and how long does it take to
repair that component?
Software reliabilityHow likely is it that a software component will
produce an incorrect output. Software failure is
usually distinct from hardware failure in that
software does not wear out.
Operator reliability
How likely is it that the operator of a system
will make an error?
-
8/9/2019 SE Notes Unit 1
43/76
43
Reliability relationships
Hardware 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.
-
8/9/2019 SE Notes Unit 1
44/76
44
Measurable and non-measurable properties
Properties such as performance and reliabilitycan be measured.
However, some properties are properties that the
system should not exhibit
Safety - the system should not behave in anunsafe way;
Security - the system should not permit
unauthorised use.
Measuring or assessing these properties is veryhard.
-
8/9/2019 SE Notes Unit 1
45/76
45
Systems engineering
Specifying, designing, implementing, validating,
deploying and maintaining socio-technical
systems.
Concerned with the services provided by the
system, constraints on its construction and
operation and the ways in which it is used.
-
8/9/2019 SE Notes Unit 1
46/76
46
The system engineering process
Usually follows a waterfall model because of the need forparallel development of different parts of the system
Little scope for iteration between phases because
hardware changes are very expensive. Software may
have to compensate for hardware problems.
Inevitably involves engineers from different disciplines who
must work together
Much scope for misunderstanding here. Different
disciplines use a different vocabulary and much
negotiation is required. Engineers may have personal
agendas to fulfil.
-
8/9/2019 SE Notes Unit 1
47/76
47
The systems engineering process
Requirements
definition
System
design
Sub-system
development
SystemIntegration
System
Installation
System
Evolution
System
decommissioning
-
8/9/2019 SE Notes Unit 1
48/76
48
Inter-disciplinary involvement
Software Engg Electronic engg Mech.Engg
Structural
engg
ATC systems
enggUser Unterface
Civil engg Elec.Engg Architecture
Air Traffic Control
-
8/9/2019 SE Notes Unit 1
49/76
49
System requirements definition
Three types of requirement defined at this stage
Abstract functional requirements. System
functions are defined in an abstract way;
System properties. Non-functionalrequirements for the system in general are
defined;
Undesirable characteristics. Unacceptable
system behaviour is specified.
Should also define overall organisational
objectives for the system.
-
8/9/2019 SE Notes Unit 1
50/76
50
System objectives
Should define why a system is being procured for a
particular environment.
Functional objectives
To provide a fire and intruder alarm system for thebuilding 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 eventssuch as fire and unauthorized intrusion.
-
8/9/2019 SE Notes Unit 1
51/76
51
System requirements problems
Complex systems are usually developed to
address wicked problems
1. Problems that are not fully understood;
2. 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.
-
8/9/2019 SE Notes Unit 1
52/76
52
The system design process
Partition
Requirements
Identify
Sub-system
Assign requirementsTo sub-systems
Specify sub-system
functionality
Define sub-system
interfaces
-
8/9/2019 SE Notes Unit 1
53/76
53
The system design process Partition requirements
. Organise requirements into related groups.
Identify sub-systems
. Identify a set of sub-systems which
collectively can meet the system requirements. Assign requirements to sub-systems
. Causes particular problems when COTS
are integrated.
Specify sub-system functionality.
Define sub-system interfaces. Critical activity for parallel sub-system
development.
-
8/9/2019 SE Notes Unit 1
54/76
54
System design problems
Requirements partitioning to hardware,
software and human components may involve a
lot of negotiation.
Difficult design problems are often assumed tobe readily solved using software.
Hardware platforms may be inappropriate for
software requirements so software must
compensate for this.
-
8/9/2019 SE Notes Unit 1
55/76
55
Requirements and design
Requirements engineering and system design
are inextricably linked.
Constraints posed by the systems environment
and other systems limit design choices so the
actual design to be used may be a requirement.
Initial design may be necessary to structure the
requirements.
As you do design, you learn more about the
requirements.
-
8/9/2019 SE Notes Unit 1
56/76
56
Spiral Model of Requirements
-
8/9/2019 SE Notes Unit 1
57/76
57
System modelling
An architectural model presents an abstract
view of the sub-systems making up a system
May include major information flows betweensub-systems
Usually presented as a block diagram
May identify different types of functional
component in the model
-
8/9/2019 SE Notes Unit 1
58/76
58
Burglar alarm system
Movement
Sensors
Door
sensors
Alarm
Controller
SirenVoice
synthesisTelephone
Caller
External
Control
centre
-
8/9/2019 SE Notes Unit 1
59/76
59
Sub-system description
Sub system
Movement Sensor
Door sensors
Alarm ControllersSiren
Voice synthesizers
Telephone caller
Description
Detects movement in the room
Detect door opening
Controls the operation of the systemEmits an audible warning at the time ofintruder is suspected
Synthesizes voice message giving the
location of the intruderMake external call to security , policeetc.
-
8/9/2019 SE Notes Unit 1
60/76
60
Sub-system development Typically parallel projects developing thehardware, software and communications.
May involve some COTS (Commercial Off-the-
Shelf) systems procurement.
Lack of communication across implementationteams.
Bureaucratic and slow mechanism for
proposing system changes means that the
development schedule may be extended becauseof the need for rework.
-
8/9/2019 SE Notes Unit 1
61/76
61
System integration
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. Interface problems between sub-systems are
usually found at this stage.
May be problems with uncoordinated deliveries
of system components.
-
8/9/2019 SE Notes Unit 1
62/76
62
System installation
After completion, the system has to be installed inthe customers environment
Environmental assumptions may be incorrect;
May be human resistance to the introduction of
a new system; System may have to coexist with alternative
systems for some time;
May be physical installation problems (e.g.
cabling problems); Operator training has to be identified.
-
8/9/2019 SE Notes Unit 1
63/76
63
System evolution
Large systems have a long lifetime. They mustevolve to meet changing requirements.
Evolution is inherently costly
1. Changes must be analysed from a technical
and business perspective;
2. Sub-systems interact so unanticipated
problems can arise;
3. There is rarely a rationale for original design
decisions;
4. System structure is corrupted as changes are
made to it. Existing systems which must be maintained are
sometimes called legacy system.
-
8/9/2019 SE Notes Unit 1
64/76
64
System decommissioning
Taking the system out of service after its
useful lifetime.
May require removal of materials (e.g.
dangerous chemicals) which pollute theenvironment
Should be planned for in the system
design by encapsulation.
May require data to be restructured andconverted to be used in some other system.
-
8/9/2019 SE Notes Unit 1
65/76
65
Organisations/people/systems
Socio-technical systems are organizational
systems intended to help deliver some
organizational or business goal.
If you do not understand the organizational
environment where a system is used, the
system is less likely to meet the real needs ofthe business and its users.
-
8/9/2019 SE Notes Unit 1
66/76
66
Human and organisational factors
Process changes
Does the system require changes to the work
processes in the environment?
Job changesDoes the system de-skill the users in an
environment or cause them to change the way
they work?
Organisational changes
Does the system change the political power
structure in an organisation?
-
8/9/2019 SE Notes Unit 1
67/76
67
Organizational processes
The processes of systems engineering overlap
and interact with organizational procurement
processes.
Operational processes are the processesinvolved in using the system for its intended
purpose. For new systems, these have to be
defined as part of the system design.
Operational processes should be designed to beflexible and should not force operations to be done
in a particular way. It is important that human
operators can use their initiative if problems arise.
-
8/9/2019 SE Notes Unit 1
68/76
68
Procurement/developmentprocesses
Procurement
process
Development
Process
Operational
process
-
8/9/2019 SE Notes Unit 1
69/76
69
System procurement
Acquiring a system for an organization to meet some need
Some system specification and architectural design is
usually necessary before procurement
. You need a specification to let a contract for system
development. The specification may allow you to buy a commercial
off-the-shelf (COTS) system. Almost always cheaper than
developing a system from scratch
Large complex systems usually consist of a mix of off the
shelf and specially designed components. The procurementprocesses for these different types of component are usually
different.
-
8/9/2019 SE Notes Unit 1
70/76
70
The system procurement process
Adapt
Requirements
Choose
System
Invite
bids
Choose
Supplier
Survey
Existing
Systems
Issue for
Tenders
Select
TenderNegotiate
Contract forDevelopment
Custom system Requirement
Off the shelf requirement
-
8/9/2019 SE Notes Unit 1
71/76
71
Requirements may have to be modified to matchthe capabilities of off-the-shelf components.
The requirements specification may be part of thecontract for the development of the system.
There is usually a contract negotiation period toagree changes after the contractor to build asystem has been selected.
Procurement issues
-
8/9/2019 SE Notes Unit 1
72/76
72
The procurement of large hardware/softwaresystems is usually based around someprincipal contractor.
Sub-contracts are issued to other suppliersto supply parts of the system.
Customer liaises with the principal contractorand does not deal directly with sub-
contractors.
Contractors and sub-contractors
-
8/9/2019 SE Notes Unit 1
73/76
73
Contractor/Sub-contractor model
-
8/9/2019 SE Notes Unit 1
74/76
74
Legacy systems
Socio-technical systems that have been developedusing old or obsolete technology.
Crucial to the operation of a business and it is often too
risky to discard these systemsExamples:Bank customer accounting system;Aircraft maintenance system.
Legacy systems constrain new business processes andconsume a high proportion of company budgets.
-
8/9/2019 SE Notes Unit 1
75/76
75
Legacy system components
Hardware - may be obsolete mainframe hardware.
Support software - may rely on support software fromsuppliers who are no longer in business.
Application software - may be written in obsolete
programming languages.
Application data - often incomplete and inconsistent.
Business processes - may be constrained by software
structure and functionality.
Business policies and rules - may be implicit andembedded in the system software.
-
8/9/2019 SE Notes Unit 1
76/76
76
Socio Technical System
Business Processes
Application SoftwareSupport software
Hardware