01-the scope of software engineering
TRANSCRIPT
-
7/29/2019 01-The Scope of Software Engineering
1/55
1
Chapter 1:
The Scope of Software Engineering
-
7/29/2019 01-The Scope of Software Engineering
2/55
2
By the end of this module, you will...
Recall what a software is and identify its categories.
Understand what software engineering is. Understand why software engineering is important.
Know answers to key questions related to the software
engineering discipline.
-
7/29/2019 01-The Scope of Software Engineering
3/55
Quick Look
WHAT is it?: Computer software encompassesprograms that execute within a computer of any
size and architecture, documents that
encompass hard-copy and virtual forms, and
data that combine numbers and text but alsoincludes representations of pictorial, video, and
audio information.
3
-
7/29/2019 01-The Scope of Software Engineering
4/55
WHO does it?: Software engineers buildsoftware products by applying software
engineering approach.
WHY is it important?: Computer software areused in nearly every aspect of our lives.
4
-
7/29/2019 01-The Scope of Software Engineering
5/55
Software
Programs
DocumentationData
5
Software: Where does it lie?
SystemDocumentation
UserDocumentation
It encompasses programs that execute
within a computer, documents that include
hard-copy & virtual forms, and data that
combine numbers and text but alsoincludes representations of pictorial, video,
and other information.
-
7/29/2019 01-The Scope of Software Engineering
6/55
6
The Evolving Role of Software
Software takes on a dual role:
It is a product
It is a vehicle for delivering a product
Significant change in its role has been
precipitated by:
Dramatic improvement in hardware performance
Profound change in computing architectures
Vast increases in memory and storage capacity
Wide variety of input and output options
-
7/29/2019 01-The Scope of Software Engineering
7/55
7
The Nature of Software
Software is intangible
Hard to understand development effort
Software is easy to reproduce but costly
In other engineering products, manufacturing is
the costly stage
In software, cost is in its development
Software is complex to develop esp. for
labor-intensive industry
Difficulty in automating some manual tasks
-
7/29/2019 01-The Scope of Software Engineering
8/55
8
The Nature of Software
Software quality problems are hard to notice
Finding all the errors in the software before
delivering it to the customer is difficult
Software is easy to modify
People make changes without fully understanding
the software
Software does not wear out
It deteriorates by having its design changed:
erroneously, or in ways that were not anticipated, thus
making it complex
-
7/29/2019 01-The Scope of Software Engineering
9/55
10
Types of Software
Custom / Bespoke
For a specific customer
Customization is based on user requirements
Generic
Sold on open market
Often called COTS (Commercial Off The Shelf)
Embedded
Intelligent products that reside in ROM
Built into hardware and is hard to modify/change
-
7/29/2019 01-The Scope of Software Engineering
10/55
11
Types of Software
Differences among custom, generic and
embedded software
Custom Generic EmbeddedNumber ofcopies in use low medium high
Total processing power
devoted to running this
type of software
low high medium
Worldwide annual
development effort
high medium low
-
7/29/2019 01-The Scope of Software Engineering
11/55
12
Specific Types of Software
Systems software
Programs written to service other programs
Include language translators, file management
utilities, operating systems, device drivers
Real time software
Programs that analyze and control real world
events
Include control and monitoring systems
-
7/29/2019 01-The Scope of Software Engineering
12/55
13
Business/Data processing software
Programs that facilitate business operations or
management decision making
Include payroll, sales & inventory, accounts
receivable/payable
Engineering & scientific software
Programs characterized by number crunchingalgorithms
Include applications used in the area of molecular
biology, volcanology, astronomy, systemsimulation, etc.
-
7/29/2019 01-The Scope of Software Engineering
13/55
14
Personal computer software
Commonly known as productivity tools
Include word processing, spreadsheets, computer
graphics, multimedia, entertainment, database
management, etc.
Web-base software
Web applications that incorporates executableinstructions (e.g. CGI, HTML, Perl, or Java)
-
7/29/2019 01-The Scope of Software Engineering
14/55
15
Artificial intelligence software
Programs that makes use of non-numerical
algorithms to solve complex problems that are not
amenable to computation or straightforwardanalysis
Include robotics, expert systems, knowledge-
based systems, pattern recognition (image and
voice), neural networks, theorem proving, game
playing
-
7/29/2019 01-The Scope of Software Engineering
15/55
16
Activity Think about all the devices and systems
that you encounter in your everyday lifewhich have software controlling them
List as many as you can
Virtually all countries
depend on complex
computer-based
systems.
-
7/29/2019 01-The Scope of Software Engineering
16/55
17
Why is Software Engineering important?
Complex systems need a disciplined approach for
designing, developing and managing them.
-
7/29/2019 01-The Scope of Software Engineering
17/55
18
Software Development Crises
Projects were:
Late Over budget
Unreliable
Difficult to maintain
Performed poorly
19
-
7/29/2019 01-The Scope of Software Engineering
18/55
19
Software errors incur cost.
20
-
7/29/2019 01-The Scope of Software Engineering
19/55
20
The Cost of Software Engineering
The cost depends on:
The type of software being developed, and The process used in software development
Each generic approach has a different profile of cost distribution.
Roughly 60% of costs are development costs, 40% are testing
costs.
For custom software, cost distribution depends on the process
used.
Evolution costs often exceed development costs.
21
-
7/29/2019 01-The Scope of Software Engineering
20/55
21
Cost distribution
Generic software development (COTS)
Product development costs
0 25 50 75 100
Specification Development System testing
22
-
7/29/2019 01-The Scope of Software Engineering
21/55
22
Cost distribution
Custom software development (Bespoke)Software Model
Cost units
Cost distribution
Software development activity
Waterfall Model
0 25 50 75 100
Specification Design Development Integration and testing
Iterative Development
0 25 50 75 100
Specification Iterative Development System testing
Component-based Software Engineering
0 25 50 75 100
Specification Development Integration and testing
23
-
7/29/2019 01-The Scope of Software Engineering
22/55
23
Errors in computer software can havedevastating effects.
24
-
7/29/2019 01-The Scope of Software Engineering
23/55
24
Software Crisis
Example 2: Ariane 5 Explosion
European Space Agency spent 10 years and $7
billion to produce Ariane 5.
Crash after 36.7 seconds.
Caused by an overflow error. Trying to store a 64-bit
number into a 16-bit space.
Watch the video:
http://www.youtube.com/watch?v=z-r9cYp3tTE
25
http://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTEhttp://www.youtube.com/watch?v=z-r9cYp3tTE -
7/29/2019 01-The Scope of Software Engineering
24/55
25
Software Crisis
Example 1: 2009,Computer glitch delays flights
Dozens of flights from the UK were delayed Saturday after
a glitch in an air traffic control system in Scotland, but theproblem was fixed a few hours later.
The agency said it reverted to backup equipment as
engineering worked on the system.
The problem did not create a safety issue but could cause
delays in flights.
Read more at:
http://edition.cnn.com/2009/WORLD/europe/10/03/uk.fl
ights.delayed
26
http://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayedhttp://edition.cnn.com/2009/WORLD/europe/10/03/uk.flights.delayed -
7/29/2019 01-The Scope of Software Engineering
25/55
26
Software Crisis
Example 3: 1992, London Ambulance Service
Considered the largest ambulance service in the
world.
Caused by database overload problem.
It was unable to keep track of the ambulances
and their statuses. Sending multiple units to some
locations and no units to other locations.
Generates many exceptions messages.
46 deaths.
27
-
7/29/2019 01-The Scope of Software Engineering
26/55
27
Therefore
A well-disciplined approach to
software development and
management is necessary. This is
called software engineering.
28
-
7/29/2019 01-The Scope of Software Engineering
27/55
28
Software Engineering: Historical Aspects
The term software engineering first appeared in the 1968 NATO
Software Engineering Conference and was meant to provokethought regarding what was then called the softwarecrisis..
.. An engineering discipline that is concerned with all aspects of
software production from the early stages of system specificationto maintaining the system after it has gone into use. Sommerville,
pg.7
-
7/29/2019 01-The Scope of Software Engineering
28/55
29
Software Engineering and the
Engineering Profession The term Software Engineering was coined in 1968
People began to realize that the principles of engineeringshould be applied to software development
Engineering is a licensed profession In order to protect the public
Engineers design artifacts following well acceptedpractices which involve the application of science,
mathematics and economics Ethical practice is also a key tenet of the profession
In many countries, much software engineering does not
require an engineering license, but is still engineering
30
-
7/29/2019 01-The Scope of Software Engineering
29/55
30
Software Engineering vs. Computer Science
Computer science is no more about computers than
astronomy is about telescopes. Edsger Dijkstra
Computer Science
Theory.
Fundamentals.
Software Engineering
Practicalities of softwaredesign, development anddelivery.
31
-
7/29/2019 01-The Scope of Software Engineering
30/55
31
Software Engineering vs. Systems Engineering
Systems Engineering:
Interdisciplinary engineering field (computer, software, and process eng.).
Focuses on how complex engineering projects should be designed and managed.
Systems Engineering
All aspects of computer-based systemsdevelopment: HW + SW +Process.
Older than SWE.
Software Engineering
Deals with the design,development and deliveryof SW.
Is part of SystemsEngineering.
-
7/29/2019 01-The Scope of Software Engineering
31/55
The process of solving customers problems by
the systematic development and evolution of
large, high-quality software systems within
cost, time and other constraints.
Other definitions: IEEE: (1) the application of a systematic, disciplined, quantifiable approach to
the development, operation, maintenance of software; that is, the applicationof engineering to software. (2) The study of approaches as in (1).
The Canadian Standards Association: The systematic activities involved in the
design, implementation and testing of software to optimize its production and
support.
32
What is Software Engineering?
To solve customers problems
To utilize systematic development
To produce high-quality softwareTo produce software within the
allotted budget & time
-
7/29/2019 01-The Scope of Software Engineering
32/55
33
Goals of Software Engineering
Solving customers problems
This is the goalof software engineering
Sometimes the solution is to buy, not build
Adding unnecessary features does not help solve
the problem
Software engineers must communicate effectively
with the customers to identify and understand theproblem
-
7/29/2019 01-The Scope of Software Engineering
33/55
34
Goals of Software Engineering
Systematic development and evolution
An engineering process involves applying well
understood techniques in a organized and
disciplinedway Many well-accepted practices have been formally
standardized
e.g. by the IEEE or ISO
Most development work is evolutionary
-
7/29/2019 01-The Scope of Software Engineering
34/55
35
Goals of Software Engineering
Large, high quality software systems
Software engineering techniques are needed
because large systems cannot be completely
understoodby one person Teamwork and co-ordination are required
Key challenge: Dividing up the work and ensuring
that the parts of the system work properlytogether
The end-product must be of sufficient quality
-
7/29/2019 01-The Scope of Software Engineering
35/55
36
Goals of Software Engineering
Cost, time and other constraints
Finite resources
The benefit must outweigh the cost
Others are competing to do the job cheaper and
faster
Inaccurate estimates of cost and time have caused
many project failures
-
7/29/2019 01-The Scope of Software Engineering
36/55
1. Users
Those who use the software
2. Customers
Those who pay for the software
3. Software developers
Include system analysts, system designers, system
builders
4. Development Managers
All four roles can be fulfilled by the same person37
Stakeholders in Software Engineering
-
7/29/2019 01-The Scope of Software Engineering
37/55
38
Software Quality and the Stakeholders
QUALITY
SOFTWARE
Developer:easy to design;
easy to maintain;easy to reuse its parts
User:
easy to learn;
efficient to use;
helps get work done
Customer:solves problems at
an acceptable cost in
terms of money paid and
resources used
Development manager:sells more and
pleases customers
while costing lessto develop and maintain
39
-
7/29/2019 01-The Scope of Software Engineering
38/55
Functional Attributes of a Software
Functional attributes
System performance; what the system does;
capability of the software to provide functions which
meet stated and implied needs when the software is
used
Key Goal: To capture the required behavior of asoftware system in terms of functionality and the
technology implementation through a system analysis
process.
40
-
7/29/2019 01-The Scope of Software Engineering
39/55
Non-Functional Attributes of a Software
Non-functional attributes
System quality; how the system does it; based on the
parameters of system performance, software quality
attributes, reliability and security, cost, constraints in
design and implementation
Key goal: To determine the factors that can be used tojudge the operation of a system or the quality attributes
of the system.
41
-
7/29/2019 01-The Scope of Software Engineering
40/55
Some Attributes of a Good Software
Product Characteristic Description
Usability Easy to learn how to use the system by target users.Efficient to use the system by users to accomplish a
task.
Satisfying to use by intended users.
Maintainability Evolution qualities such as testability, extensibility.
Dependability Reliability, security, safety.
Efficiency Response time, processing time, memory utilization.
Reusability Reprogramming is not needed.
http://en.wikipedia.org/wiki/Non-functional _requirement
43
http://en.wikiepedia.org/wiki/Non-functionalhttp://en.wikiepedia.org/wiki/Non-functional -
7/29/2019 01-The Scope of Software Engineering
41/55
Activity
What are the key attributes for..
Interactive game Banking systemCardiac monitor in an ICU
unit
Players, score, scenes,
theme.
Client accounts, stocks
bonds, money transfers.
heart rate, temperature,
blood pressure.
-
7/29/2019 01-The Scope of Software Engineering
42/55
44
Software Quality: Conflicts & Objectives
The different qualities can conflict Increasing usability can reduce efficiency
Increasing efficiency can reduce maintainability orreusability
Setting objectives for quality is a key engineeringactivity
You then design to meet the objectives
Avoids over-engineering which wastes money
Optimizing is also sometimes necessary E.g. obtain the highest possible reliability using a fixed
budget
45
-
7/29/2019 01-The Scope of Software Engineering
43/55
Challenges Facing Software Engineering
Challenge Why? Software needs to ..
HeterogeneityDifferent computers, different
platforms, different support systems.Cope with this variability.
Delivery
Businesses are more responsive
supporting software needs toevolve rapidly.
Be delivered in shorter timewithout compromising quality.
TrustSoftware is a part of many aspects of
our lives (work, study, leisure).Demonstrate that it can be
trusted by users.
-
7/29/2019 01-The Scope of Software Engineering
44/55
46
Software Engineering Projects
1. Most projects are evolutionaryor
maintenance projects, involving work on
legacysystems
Development and evolution costs for long-lifetime systems
0 100 200 300 400
System development System evolution
-
7/29/2019 01-The Scope of Software Engineering
45/55
47
Software Engineering Projects
Corrective projects: fixing defects
Adaptive projects: changing the system in
response to changes in
Operating system, Database, Rules and regulations Enhancement projects: adding new features for
users
Reengineering or perfective projects: changing
the system internally so it is more maintainable
-
7/29/2019 01-The Scope of Software Engineering
46/55
48
Software Engineering Projects
2. Greenfield projects
New development; project that lacks anyconstraints imposed by prior work; theres noneed to remodel or demolish an existing structure
Minority of projects are greenfield; projects thatare often coveted by engineers
Examples: Cellular networks, power plant, airports
-
7/29/2019 01-The Scope of Software Engineering
47/55
49
Software Engineering Projects
3. Projects that involve building on aframeworkor a set of existing components.
A framework is an application that is missing some
important details. E.g. Specific rules of this organization.
Such projects: Involve plugging together components that are:
Already developed. Provide significant functionality.
Benefit from reusing reliable software.
Provide much of the same freedom to innovate foundin green field development.
-
7/29/2019 01-The Scope of Software Engineering
48/55
50
Information Systems Framework
This provides a unifying framework, inspiredby the works ofJohn Zachman, by whichvarious people with different perspectives can
organize and view the fundamental buildingblocks ofsoftware projects.
1. DATA
2. PROCESSES
3. INTERFACES
-
7/29/2019 01-The Scope of Software Engineering
49/55
51
Activities Common to Software Projects
Requirements and specification
Includes
Domain analysis
Defining the problem Requirements gathering
Obtaining input from as many sources as possible
Requirements analysis
Organizing the information
Requirements specification
Writing detailed instructions about how the software should
behave
-
7/29/2019 01-The Scope of Software Engineering
50/55
52
Activities Common to Software Projects
Design Deciding how the requirements should be
implemented, using the available technology
Includes: Systems engineering: Deciding what should be in
hardware and software
Software architecture: Dividing the system intosubsystems and deciding how the subsystems willinteract
Detailed design of the internals of a subsystem
User interface design
Design of databases
-
7/29/2019 01-The Scope of Software Engineering
51/55
53
Activities Common to Software Projects
Modeling Creating representations of the domain or the software
Use case modeling
Structural modeling
Dynamic and behavioural modeling
Programming
Quality assurance Reviews and inspections
Testing
Deployment
Managing the process
Diffi lti d Ri k i S ft
-
7/29/2019 01-The Scope of Software Engineering
52/55
54
Difficulties and Risks in Software
Engineering
Complexity and large numbers of details
Uncertainty about technology
Uncertainty about requirements
Uncertainty about software engineering skills
Constant change
Deterioration of software design Political risks (considered as wicked problem)
-
7/29/2019 01-The Scope of Software Engineering
53/55
55
Software Depression
The software crisis has not been solved:
- Data on 9236 projects completed in 2004
-
7/29/2019 01-The Scope of Software Engineering
54/55
56
Cutter Consortium Data
2002 survey of information technology
78% have been involved in disputes ending in litigation
For the organizations that entered into litigation:
In 67% of the disputes, the functionality of the informationsystem as delivered did not meet up to the claims of the
developers
In 56% of the disputes, the promised delivery date slipped
several times In 45% of the disputes, the defects were so severe that the
information system was unusable
-
7/29/2019 01-The Scope of Software Engineering
55/55
Software Myths: Practitioners View
Once we write the program and get it to work, our
job is done.
Until I get the program running I have no way of
assessing its quality. The only deliverable work product for a successful
project is the working program.
Software engineering will make us create voluminous
and unnecessary documentation and will invariably
slow us down.