Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

University of Kelaniya

Sri Lanka

Software Engineering
COSC 21052

INTRODUCTION

SACHINTHA PITIGALA
piti@kln.ac.lk
© 2022 - Sachintha Pitigala

1
What is Software Engineering?

What is a Software?

Programs Documentation

• A software consists of set of programs and documentations.

What is Engineering?

• Engineering is the use of scientific principles to design and build machines, structures,
and other items, including bridges, tunnels, roads, vehicles, and buildings.

2
So, What is Software Engineering?

The seminal definition:

[Software engineering is] the establishment and use of sound engineering principles in order
to obtain economically software that is reliable and works efficiently on real machines.
The IEEE definition:

Software Engineering: The application of a systematic, disciplined, quantifiable approach


to the development, operation, and maintenance of software.

Why do we need it?

• Large Software
• Scalability
• Cost
• Dynamic Nature
• Quality Management

Reasons for Failures


• Schedule Slippage
• Cost over-runs
• Doesn’t solve user’s problem
• Poor quality of software
• Poor maintainability

3
Why?
• Because, Ad hoc Software Development
• 'Ad hoc' is a term used to refer to
o spontaneous events which happen without planning.

Why Ad Hoc Development?


• No planning of development work (no milestones defined)
• Deliverables to user not identified
• Poor understanding of user requirements
• No control or review
• Technical incompetence of developer
• Poor understanding of cost and effort by both developer and user

Attributes of Good Software


• Maintainability
o Software must evolve to meet changing needs
• Dependability
o Software must be trustworthy
• Efficiency
o Software should not make wasteful use of system recourses
• Acceptability
o Software must be accepted by users for which it was designed

(User friendliness, Reliability, Reusability, Interoperability

How can we built a Good Software?


• Applying the engineering approach
o Attempt to estimate cost/effort
o Plan and schedule work
o Involve user in defining requirements
o Identify stages in development
o Define clear milestones so that progress can be measured
o Schedule reviews both for control and quality
o Define deliverables
o Plan extensive testing

4
Why it is Difficult?
• Dealing with users
− Define requirements
− Concern with ease-of-use and response time
• Dealing with technical people
− Concerned with coding, databases, file structures, etc.
• Dealing with management
− Concerned with return on their investment
− Cost-benefit analysis
− Schedule

Types of Software
• System Software
• Application Software

Types of Software
• Generic Software
• Bespoke Software (Custom Built Software)

You might also like