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

Introduction SE PDF

Software engineering is the application of engineering principles to software development. It involves systematic, disciplined, and quantifiable approaches for software development. The document discusses why software engineering is needed by describing past software project failures and reasons for those failures. It also outlines the software engineering lifecycle including requirements analysis, design, implementation, testing, and maintenance. The key goals of software engineering are to deliver quality software that meets requirements, is maintainable, dependable, efficient, and usable.

Uploaded by

satyanandaram
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views

Introduction SE PDF

Software engineering is the application of engineering principles to software development. It involves systematic, disciplined, and quantifiable approaches for software development. The document discusses why software engineering is needed by describing past software project failures and reasons for those failures. It also outlines the software engineering lifecycle including requirements analysis, design, implementation, testing, and maintenance. The key goals of software engineering are to deliver quality software that meets requirements, is maintainable, dependable, efficient, and usable.

Uploaded by

satyanandaram
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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