1 - Introduction To SE
1 - Introduction To SE
Engineering
Lecture 1
Preview
• ALL developed countries economies depend
highly on software products.
– More and more systems are software-controlled.
• Expenditure on software represents a
significant fraction of GNP.
– Software costs often dominate computer system
costs
• Software engineering is concerned with cost-
effective software development.
19-Sep-23 Introduction 2
What is Software?
• Software can be split into two main types
– system software
– application software or application programs.
• Refers to a set of instructions executed by a computer
• It includes both source code and machine code
• However, it does not include the data processed by
programs
• Software is more than programs.
– can therefore be defined as
– computer programs and associated documentation such as requirements,
design models and user manuals.
19-Sep-23 Introduction 3
What is Software? (Cont…)
• A software product may be developed for a particular
client or may be developed for general market.
– Generic
• developed to be sold to a wide range of different customers.
• For example, PC software such as Excel or Word.
– Bespoke (Custom)
• developed for a single customer according to their specification.
• Currently systems are being developed with a generic
product as a base
– It’s then adapted to suit the requirements of a customer.
Eg. Enterprise Resource Planning (ERP) systems.
19-Sep-23 Introduction 4
Components of software
• Software = program +documentation
+operating procedures.
Program
Operating
Documentation
Procedures
19-Sep-23 Introduction 5
Attributes of a good Software
• Maintainability
– software must evolve to meet changing needs of customers.
– This is a critical attribute because software change is an inevitable
requirement of a changing business environment.
• Dependability and security
– software must be reliable, secure and trustworthy.
– Dependable software should not cause physical or economic damage
in the event of system failure.
• Efficiency
– software should not make wasteful use of system resources such as
memory and processor cycles.
• Acceptability
– software must be accepted by the users of which it was designed.
– This means it must be understandable, usable and compatible with
other systems that they use.
19-Sep-23 Introduction 6
What is Software Engineering?
• Software is critical to advancement in almost all areas
of human endeavour.
• The art of programming only is not sufficient to
construct large programs.
• Serious problems in the cost, timeliness, maintenance
and quality of many software products.
• Solution, produce
– good quality,
– maintainable software,
– on time,
– within budget.
19-Sep-23 Introduction 7
What is Software Eng.? (Cont…)
• At the first conference on software engineering in
1968, Fritz Bauer defined software engineering as
– “The establishment and use of sound engineering
principles in order to obtain economically developed
software that is reliable and works efficiently on real
machines”.
• Stephen Schach defined the same as
– “A discipline whose aim is the production of quality
software, software that is delivered on time, within
budget, and that satisfies its requirements”.
19-Sep-23 Introduction 8
What is Software Eng.? (Cont…)
• It’s an engineering discipline that is concerned
with all aspects of software production from the
early stages of system specification through to
maintaining the system after it has gone into use.
• software engineers should
– adopt a systematic and organised approach to their
work
– use appropriate tools and techniques depending on
• the problem to solved
• the development constraints and
• the resources available.
19-Sep-23 Introduction 9
Why Software Engineering?
• More and more, individuals and society rely
on advanced software systems.
– Hence need to develop reliable and trustworthy
systems economically and quickly.
• It is usually cheaper
– to use software engineering methods
– techniques for software systems; rather than just
write the programs as if it was a personal
programming project.
19-Sep-23 Introduction 10
Challenges Facing Software Eng.
• Heterogeneity
– Developing techniques for building software that can cope
with heterogeneous platforms and execution
environments,
• Business & Social Change
– Development of emerging economies & new technology
– Developing techniques that lead to faster delivery of
software,
• Security & Trust
– Developing techniques that demonstrate that software can
be trusted by its users.
– Remote software systems accesses thro’ web browsers
19-Sep-23 Introduction 11
Essential attributes of good software
19-Sep-23 Introduction 12
Cost of software engineering
• 60% - development costs;
• 40% - testing costs;
• For custom software, evolution costs exceeds
dvpt costs
• Costs may vary depending on:
– Type of system
– Requirements of the system
• Costs can be distributed depending on the
model used for development
19-Sep-23 Introduction 13
End
• Thank you.
19-Sep-23 Introduction 14