Académique Documents
Professionnel Documents
Culture Documents
Overview
Objectives
FAQs about software engineering
Ethical and professional issues
SW engineering vs. Systems Analysis
Course Syllabus
2
Objectives
Introduce what software engineering is and why it is
important
Understand ethical and professional issues that are
important for software engineers
Understand the relation between this course and the
systems analysis and design
View of topics to be discussed this course
3
Class Activity: Technology and us
4
Software development crises
Projects were:
Late
Over budget
Unreliable
Difficult to maintain
Performed poorly
5
Software errors... the cost
Errors in computer software can
have devastating effects
6
CNN: Computer glitch delays dozens of
UK flights
Saturday 3rd October 2009-London, England (CNN)
Dozens of flights from the UK were delayed Saturday after
a glitch in an air traffic control system in Scotland, but
the problem 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.flights.delayed
7
Loss of the Mars Climate
orbiter in 1999 because an
error in a Metric to English
conversion formula (pounds
and Kilograms)[1]
8
Ariane 5 Explosion
Caused by an overflow
error.
Watch the video
http://www.youtube.co
m/watch?v=z-
r9cYp3tTE
9
Therefore..
A well-disciplined approach to
software development and
management is necessary. This is
called engineering.
10
Software engineering
The notion of software
engineering was first proposed
in 1968.
11
12
What is software?
Software is a product Programs
programs, documents,
and data Data Documents
13
What is Software Engineering?
“An engineering discipline that is
concerned with all aspects of software
production from the early stages of system
specification to maintaining the system after
it has gone into use” [4]
14
Software Types
There are two types of software
products
Generic products
Customized or bespoke products
15
What is the difference between software
engineering and computer science?
Computer science
Theory and fundamentals
Software engineering
Practicalities of delivering useful software
Software engineers need computer science
knowledge
16
What is the difference between software
engineering and system engineering?
System engineering
Hardware + Software + Process
Older than software engineering
17
What is a Software Process?
Set of activities and associated results that produce a
software product.
There are four fundamental activities common to all
software process models
SW specification:
What does the customer need “Requirements”?
What are the constraints?
SW development
Design & programming
SW validation:
Checking whether it meets requirements
SW evolution :
Modifications (e.g. customer/market)
18
What is a Software Process Model?
A simplified description of a SW process that presents
one view of that process
Role/action perspective
What is the role of people step of the process?
19
What is a Software Process Model?
20
What are the costs of SW
engineering?
No simple answer, depends on :
The process used, and
The type of software being developed
Each generic approach has a different profile of
cost distribution.
Roughly 60% of costs are development costs, 40%
are testing costs.
For custom software, evolution costs often exceed
development costs.
21
Software engineering activity cost
distribution
Wat erfall mo del
0 25 50 75 100
0 25 50 75 1 00
0 25 50 75 1 00
Develo pm ent an d evo lut ion cost s for l on g-l ifet im e syst em s
0 10 20 0 30 400
22
What are software engineering
methods?
Structured approaches to software development which
include system models, notations, rules, design advice
and process guidance.
Model descriptions
Descriptions of graphical models which should be produced;
Rules
Constraints applied to system models;
Recommendations
Advice on good design practice;
Process guidance
What activities to follow.
23
What is CASE?
CASE (Computer Aided
Software Engineering)
Programs used to
support software process
activities such as system
modeling, debugging,
and testing
Some CASE tools include
automatic code
generation from
diagrams.
24
What are the attributes of good
software?
Some essential attributes :
25
Activity
What are the key attributes for..
26
What are the key challenges facing
software engineering?
27
Professional and Ethical
responsibility
Please read from the book section 1.2 pages 14-17
28
SW engineering vs. Systems Analysis
What you studied in System Analysis course
constitutes part of software engineering.
Software Engineering is a broader subject.
To be a software engineer, you must master
several skills, one of which is analysis and
design.
29
SW Engineering vs. Systems Analysis and
Design
30
Syllabus
31
References
1. PRESS&SUN-BULLETIN, The Binghamton Press Co., Binghamton, NY,
October 1,1999.
2. “Software Hell: Is there a way out?”, BUSINESS WEEK, December 6, 1999.
3. IEEE Standards Collection: Software Engineering, IEEE standard 610.12-1990,
IEEE 1993.
4. Sommerville, Ian “Software Engineering”, 8th edition, Addison-Wesley.
32