You are on page 1of 26

SOFTWARE ENGINEERING

By
SATYANANDARAM N

CSE Dept Software Engineering: Introduction 1


Objectives
 What is Software Engineering?

 Why Software Engineering?

 How to do Software Engineering?

CSE Dept Software Engineering: Introduction 2


What is Software Engineering?

A historical definition:

“A systematic approach to the analysis, design, implementation and


maintenance of software”

“ Software is a set of instructions to acquire inputs and to


manipulate them to produce the desired output. It also include a set
of documents, such as the software manual , meant for users to
understand the software system.”

CSE Dept Software Engineering: Introduction 3


Software Engineering Definition
 The application of engineering to make it as
software
 Involves the field of computer science dealing with
software systems
– large and complex
– built by teams
– exist in many versions
– last many years
– undergo changes
Software Engineer
 Must know what to do, when to do it, and how to do
it efficiently

CSE Dept Software Engineering: Introduction 4


What is software?
 Computer programs and associated documentation such as
requirements, design models and user manuals.
 Software products may be developed for a particular
customer or may be developed for a general market.
 Software products may be
 Generic - developed to be sold to a range of different customers e.g.
PC software such as Excel or Word.
 Bespoke (custom) - developed for a single customer according to
their specification.
 New software can be created by developing new programs,
configuring generic software systems or reusing existing
software.

CSE Dept Software Engineering: Introduction 5


What is the difference between software
engineering and computer science?
 Computer science is concerned with theory and
fundamentals; Software engineering is concerned with
the practicalities of developing and delivering useful
software.

CSE Dept Software Engineering: Introduction 6


Role of a Software Engineer

• Programming skills are not enough


• Software engineering involves "programming-in-the-
large"
– understand requirements and write specifications
• derive models and reasons about them
– operate at various abstraction levels
– member of a team
• communication skills
• management skills

CSE Dept Software Engineering: Introduction 7


Software Crisis
Large Software Systems Often
• Do not provide the desired functionality
• Take too long to build
• Cost too much to build
• Require too much time, space, or other resources to run
• Cannot evolve to meet changing needs

CSE Dept Software Engineering: Introduction 8


Why Software Engineering?

9 software projects totaling $96.7 million: Where The Money Went


[Report to Congress, Comptroller General, 1979]

Delivered, but never


successfully used
45%

Used as delivered
2%
Usable w. rework
Paid for, but
3% not delivered
30% Why?
Used w. extensive rework, Software hurts
but later abandoned
Requirements
20%
design

CSE Dept Software Engineering: Introduction 9


What Factors Contribute to Project Success?

Project Success Factors


28% The CHAOS Ten

1. User Involvement 15.9%


completed on time overran original estimates:
-Time overrun averaged 63% 2. Executive Management Support 13.9%
and on budget - Cost overrun averaged 45%
3. Clear Statement of Requirements 13.0%
4. Proper Planning 9.6%
canceled before
completion
49% 5. Realistic Expectations 8.2%
23% 6. Smaller Project Milestones 7.7%
7. Competent Staff 7.2%
8. Ownership 5.3%
9. Clear Vision & Objectives 2.9%
10. Hard-Working, Focused Staff 2.4%
11. Other 13.9%
CSE Dept Software Engineering: Introduction 10
What Factors Contribute to Project Failure?

The CHAOS Ten The CHAOS Ten

CSE Dept Software Engineering: Introduction 11


Why Software Engineering?
What do software engineers do?

Non-productive
Activities
30%

Interaction
Work alone 50%
20%

programming ≠ software engineering


personal activity team activity
small, clear problem large, nebulous problem
CSE Dept Software Engineering: Introduction 12
Attributes of good software

The software should deliver the required functionality and performance to


the user and should be maintainable, dependable and usable.
• Maintainability
 Software must evolve to meet changing needs
 Dependability
 Software must be trustworthy
 Efficiency
 Software should not make wasteful use of system resources
 Usability
 Software must be usable by the users for which it was designed

CSE Dept Software Engineering: Introduction 13


Why Software Engineering?

Major symptoms of the “software crises”:

 Over budget
 Schedule slippage
 Poor quality

Major causes of the “software crises”:

The "software crises" came about when people realized the major problems in
software development were … caused by communication difficulties and the
management of complexity” [Budd]

CSE Dept Software Engineering: Introduction 14


What is a software process?
 A set of activities whose goal is the development or
evolution of software.
 Generic activities in all software processes are:
 Specification - what the system should do and its
development constraints
 Design – Diagrammatical representation of system
 Development - production of the software system
 Validation - checking that the software is what the
customer wants
 Evolution - changing the software in response to
changing demands.

CSE Dept Software Engineering: Introduction 15


What is a software process model?
 A simplified representation of a software process,
presented from a specific perspective.
 Examples of process perspectives are
 Workflow perspective - sequence of activities;
 Data-flow perspective - information flow;
 Role/action perspective - who does what.
 Generic process models
 Waterfall;
 Iterative development

CSE Dept Software Engineering: Introduction 16


How to Do Software Engineering?

Software Lifecycle Review


Systems Engineering

Quality Assurance
Requirements Analysis

Project Planning
Maintenance
Architectural Design

Detailed Design

Implementation

Release

CSE Dept Software Engineering: Introduction 17


Why SE?

CSE Dept Software Engineering: Introduction 18


CSE Dept Software Engineering: Introduction 19
CSE Dept Software Engineering: Introduction 20
CSE Dept Software Engineering: Introduction 21
CSE Dept Software Engineering: Introduction 22
CSE Dept Software Engineering: Introduction 23
CSE Dept Software Engineering: Introduction 24
CSE Dept Software Engineering: Introduction 25
CSE Dept Software Engineering: Introduction 26

You might also like