Lecture 1
Lecture 1
Lecture 1
Lecture 1
Software engineering
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 4
Frequently asked questions about software
engineering
Question Answer
Chapter 1 Introduction 5
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 6
Essential attributes of good software
Product characteristic Description
Maintainability Software should be written in such a way so that it can evolve to meet
the changing needs of customers. This is a critical attribute because
software change is an inevitable requirement of a changing business
environment.
Efficiency Software should not make wasteful use of system resources such as
memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.
Acceptability Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible
with other systems that they use.
Chapter 1 Introduction 7
Software engineering
Chapter 1 Introduction 8
Importance of software engineering
Chapter 1 Introduction 9
Software process activities
Chapter 1 Introduction 10
Software engineering fundamentals
Chapter 1 Introduction 11
Chapter 2 – Software Processes
https://www.testingexcellence.com/waterfall-model/