Chapter 1: Introduction To Software Engineering
Chapter 1: Introduction To Software Engineering
Chapter 1: Introduction to
Software Engineering
Teaching Scheme & Reference books
T+P
3+1
Reference Books
1. Title: “Software Engineering: A Practitioner's Approach”, Seventh Edition,
TMH Publication. Author(s): Pressman R.S.
2. Title: “Object-Oriented Modeling and Design with UML”, Second Edition,
PHI Author(s): James Rambaug
3. Title: “Software Engineering”, Eighth Edition, Pearson Author(s): Sommer
Ville
4. Title: “Software Engineering principles and practice”, Second Edition,
TMH Publication Author(s):Waman S Jawadekar
5. Title: Grady Booch, Object-Oriented Analysis and Design with
Applications, Third Edition, Addison Wesley. 2
3
Overview
Learning Objectives.
Activity
Virtually all countries
depend on complex
Think about all the devices and systems computer-based
systems.
that you encounter in your everyday life
which have software controlling them…
Projects were:
• Late.
• Over budget.
• Unreliable.
• Difficult to maintain.
• Performed poorly.
8
Software Crisis
Example 1: 2009,Computer glitch delays flights
• The problem did not create a safety issue but could cause
delays in flights.
Software Crisis
Example 2: Ariane 5 Explosion
Software Crisis
Example 3: 1992, London Ambulance Service
• Overloaded problem.
• 46 deaths.
12
Therefore…
A well-disciplined approach to software
development and management is
necessary. This is called engineering.
13
Software Engineering
What is Software?
Programs
Software
System
Documentation
Data Documentation
User
Documentation
Software Engineering
software engineering = Software + Engineering
• Software is more than just a program code. A program is an
executable code, which serves some computational purpose.
Software is considered to be a collection of executable
programming code, associated libraries and documentations.
Software, when made for a specific requirement is called
software product.
+
• Engineering on the other hand, is all about developing
products, using well-defined, scientific principles and
methods.
15
IEEE Definition
• It is a collection of computer programs,
together with data, procedure, rules, and
associated documentation, which operate in a
specified environment with certain constraints
to provide the desired outcomes.
16
Need of Software Engineering
• Dynamic- Rapid change in user requirements.
Programming
Software
Software
AI S/W
Embeded S/W
Web S/W
18
19
• 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.
26
Changing Nature of Software
• System software
• Real time software
• Embedded software
• Business software
• Personal computer software
• Artificial intelligence software
• Web based software
27
LEGACY SOFTWARE:
Legacy Software
• Legacy software is software that has been
around a long time and still fulfills a business
need. It is mission critical and tied to a
particular version of an operating system or
hardware model (vendor lock-in) that has
gone end-of-life. Generally the lifespan of the
hardware is shorter than that of the software
28
Software Myths
• Management Myths
• Customers Myths
• Practitioners Myths
32
Customer Myths
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)
Software Model Waterfall 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..
References
IEEE Standards Collection: Software Engineering, IEEE standard 610.12-1990, IEEE 1993.