0% found this document useful (0 votes)
22 views

1 - Introduction To SE

This document provides an introduction to software engineering. It defines software engineering as applying engineering principles and techniques to economically develop reliable and efficient software. It notes that software and computer systems are critical to modern economies and outlines challenges like managing heterogeneous platforms and ensuring security and trust. The document discusses what software is, key components, attributes of good software like maintainability and dependability, and costs associated with software engineering. It aims to explain why following software engineering practices is important for developing high-quality software on time and within budget.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

1 - Introduction To SE

This document provides an introduction to software engineering. It defines software engineering as applying engineering principles and techniques to economically develop reliable and efficient software. It notes that software and computer systems are critical to modern economies and outlines challenges like managing heterogeneous platforms and ensuring security and trust. The document discusses what software is, key components, attributes of good software like maintainability and dependability, and costs associated with software engineering. It aims to explain why following software engineering practices is important for developing high-quality software on time and within budget.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Introduction to Software

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

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.
Dependability and Software dependability includes a range of characteristics
security including reliability, security and safety. Dependable software
should not cause physical or economic damage in the event of
system failure. Malicious users should not be able to access or
damage the system.
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.

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

You might also like