Chapter 1
Chapter 1
CHAPTER 1 – INTRODUCTION
TO SOFTWARE ENGINEERING
Chapter 1 - Introduction to SE 1
What is Software?
Chapter 1 - Introduction to SE 2
What is Software?
Chapter 1 - Introduction to SE 3
What is Software?
Chapter 1 - Introduction to SE 4
Software products
✧ 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.
✧ Customized products
▪ Software that is commissioned by a specific customer to meet
their own needs.
▪ Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
Chapter 1 - Introduction to SE 5
Product specification
✧ Generic products
▪ The specification of what the software should do is owned by
the software developer and decisions on software change are
made by the developer.
✧ Customized products
▪ The specification of what the software should do is owned by
the customer for the software and they make decisions on
software changes that are required.
Chapter 1 - Introduction to SE 6
Application types
✧ Stand-alone applications
✧ Interactive transaction-based applications
✧ Embedded control systems
✧ Batch processing systems
✧ Entertainment systems
✧ Systems for modeling and simulation
✧ Data collection systems
✧ Systems of systems
Chapter 1 - Introduction to SE 7
Software engineering
Chapter 1 - Introduction to SE 8
Importance of software engineering
Chapter 1 - Introduction to SE 9
Software process activities
✧ Software specification
✧ Software development
✧ Software validation
✧ Software evolution
Chapter 1 - Introduction to SE 10
“The Software Crisis”
Chapter 1 - Introduction to SE 11
Some “crisis” issues
Chapter 1 - Introduction to SE 12
Causes of Software Crisis
Chapter 1 - Introduction to SE 13
Example of Software Crisis
▪ https://www.youtube.com/watch?v=gp_D8r-2hwk
▪ https://www.youtube.com/watch?v=W3YJeoYgozw
Chapter 1 - Introduction to SE 14
Solution of Software Crisis
▪ Software Engineering
Chapter 1 - Introduction to SE 15
Solution of Software Crisis
Chapter 1 - Introduction to SE 16
Solution of Software Crisis
For the projects which are delivered late must adopt the following
methodology:
▪ Project Planning & Scheduling for the projects which are
delivered late must adopt the following methodology.
▪ Cost Estimation For the projects running out of budget, cost
estimation methodology must be applied.
▪ Risk Management In order to cope up with the increasing
system complexity, risk management should be applied.
Chapter 1 - Introduction to SE 17
Cost of Quality
Chapter 1 - Introduction to SE 18
Essential attributes of good software
Chapter 1 - Introduction to SE 19
Total Quality Management (TQM)
Therefore,
quality is “free”
Chapter 1 - Introduction to SE 20
Frequently asked questions about software engineering
Question Answer
Chapter 1 - Introduction to SE 21
Frequently asked questions about software engineering
Question Answer
What are the key challenges facing Coping with increasing diversity, demands for reduced
software engineering? delivery times and developing trustworthy software.
What are the costs of software Roughly 60% of software costs are development costs,
engineering? 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
techniques and methods? managed 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
software engineering? and the possibility of developing highly distributed
service-based systems. Web-based systems development
has led to important advances in programming languages
and software reuse.
Chapter 1 - Introduction to SE 22