Introduction To Software Engineering
Introduction To Software Engineering
Introduction to Software
Engineering
2
Overview
Learning Objectives.
Activity
Virtually all countries
depend on complex
Think about all the devices and systems computer-based
that you encounter in your everyday life .systems
…which have software controlling them
Projects were:
• Late.
• Over budget.
• Unreliable.
• Difficult to maintain.
• Performed poorly.
7
Software Crisis
Example 1: 2009,Computer glitch delays flights
Software Crisis
Example 2: Ariane 5 Explosion
Software Crisis
Example 3: 1992, London Ambulance Service
• Overloaded problem.
• 46 deaths.
11
Therefore…
A well-disciplined approach to software
development and management is
necessary. This is called engineering.
12
Software Engineering
What is Software?
Programs
Software
System
Documentation
Data Documentation
User
Documentation
14
Types of Software
• Generic products.
• Stand-alone systems that are marketed and sold to any customer who wishes to buy
them.
• Examples – PC software such as graphics programs, project management tools;
CAD software; software for specific markets such as appointments systems for
dentists.
• The specification of what the software should do is owned by the software developer
and decisions on software change are made by the developer.
Systems Engineering:
Interdisciplinary engineering field (computer, software, and process eng.).
Focuses on how complex engineering projects should be designed and managed.
17
Frequently asked questions about software
engineering
Question Answer
What are the key challenges facing software Coping with increasing diversity, demands for reduced delivery
engineering? times and developing trustworthy software.
What are the costs of software engineering? Roughly 60% of software costs are development costs, 40% are
testing costs. For custom software, evolution costs often exceed
development costs.
What are the best software engineering While all software projects have to be professionally managed
techniques and methods? and developed, different techniques are appropriate for
different types of system. For example, games should always be
developed using a series of prototypes whereas safety critical
control systems require a complete and analyzable specification
to be developed. You can’t, therefore, say that one method is
better than another.
What differences has the web made to The web has led to the availability of software services and the
software engineering? possibility of developing highly distributed service-based
systems. Web-based systems development has led to important
advances in programming languages and software reuse.
18
19
Component-Based
Waterfall approach Iterative development Software Engineering CBSE
Depends on:
The process used, and
The type of software being developed.
Roughly 60% of costs are development costs, 40% are testing costs.
Cost distribution
Custom software development (Bespoke)
Waterfall Model
Software Model
Cost units 0 25 50 75 100
Cost distribution
Software development activity Specification Design Development Integration and testing
Iterative Development
0 25 50 75 100
Cost distribution
Generic software development
0 25 50 75 100
What is CASE?
Activity
What are the key attributes for..
Cardiac monitor in an ICU
Interactive game Banking system
unit
Players, score, scenes, Client accounts, stocks heart rate, temperature,
theme. bonds, money transfers. blood pressure.
28
29
30