Upload
godwin-oliver
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
1
OverviewObjectivesFAQs about software engineeringEthical and professional issuesSW engineering vs. Systems
AnalysisCourse Syllabus
2
ObjectivesIntroduce what software engineering is and
why it is importantUnderstand ethical and professional issues
that are important for software engineersUnderstand the relation between this
course and the systems analysis and designView of topics to be discussed this course
3
Class Activity: Technology and us
With your team write down a list of everyday devices we use that contain software?
4
Software development crisesProjects were: LateOver budgetUnreliable Difficult to maintainPerformed 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
8
Loss of the Mars Climate orbiter in 1999 because an error in a Metric to English conversion formula (pounds and Kilograms)[1]
Ariane 5 ExplosionCaused by an
overflow error. Watch the video
http://www.youtube.com/watch?v=z-r9cYp3tTE
9
10
A well-disciplined approach to software development and
management is necessary. This is called engineering.
Software engineeringThe notion of software engineering was first proposed in 1968.
11
12
What is software?
Software is a product that software engineers design and build
It encompasses programs, documents, and data
Data Documents
Programs
Software
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 productsCustomized 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
softwareSoftware engineers need computer
science knowledge
16
What is the difference between software engineering and system engineering?
System engineering Hardware + Software + ProcessOlder than software engineering
Software engineering is part of system 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
Examples of process perspectives areWorkflow perspective
Sequence of activities: Human Actions What is input, output, and dependencies
Data-flow perspective - information flow; Activities = transformations of information How the input is transformed into output
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
22
Waterfall model
Iterative development
Component-based software engineering
Development and evolution costs for long-lifetime systems
System evolution
10 200 30 4000
System development
Specification Design Development Integration and testing
25 50 75 1000
Specification Development Integration and testing
25 50 75 1000
Specification Iterative development System testing
25 50 75 1000
What are software engineering methods?
Structured approaches to software development which include system models, notations, rules, design advice and process guidance.
Model descriptionsDescriptions 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
26
What are the key attributes for..
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
29
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.
SW Engineering vs. Systems Analysis and Design
30
Syllabus
31
References1. 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