Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 28

Software Engineering

Introduction
Software Engineering - IEEE

1. The application of a systematic, disciplined,


quantifiable approach to the development,
operation, and maintenance of software; that
is, the application of engineering to software.

2. The study of approaches as in 1.


Software Engineering

‘all aspects of software production’ - Software


engineering is not just concerned with the
technical processes of software development but
also with activities such as software project
management and with the development of tools,
methods and theories to support software
production.

-Sommerville
A software engineer is challenged to
produce high-quality software with
finite amount of resources and to a
predicted schedule and budget.
Law of diminishing returns
Cost

Benefit
Making the engineering decision!
Software Engineering

Software Engineering is not just about producing software,


but about producing software in a COST-EFFECTIVE
manner.
The Balancing Act!

Potentially conflicting requirements

 Cost vs. Efficiency


 Cost vs. Reliability
 Efficiency vs. User-interface

Challenge is to balance these requirements.


Software Development Loop

Problem
Definition

Technical
Status Quo
Development

Solution
Integration
The name of the game is continuous
change and evolution in all dimensions!
Well-Engineered Software

 Provides the required functionality

 Reliable  Efficient
 User-friendly  Maintainable
 Cost-effective
Breakdown of Effort Cost - Software
Cost Estimation by Capers Jones
No. Activity Effort 13 Configuration Mgt. 0.41%
1 Requirements 3.84% 14 Integration 2.71%
2 Prototyping 4.50% 15 User Documentation 9.67%
3 Architecture 2.25% 16 Unit Testing 4.50%
4 Project Plans 1.33% 17 Function Testing 4.50%
5 Initial Design 3.84%
18 Integration Testing 3.84%
6 Detailed Design 4.50%
19 System Testing 3.38%
7 Design Reviews 3.02%
20 Beta Testing 3.02%
8 Coding 13.50%
21 Acceptance Testing 1.94%
9 Reuse acquisition 1.13%
10 Package Purchase 1.69%
22 Independent Testing 3.38%
11 Code Inspection 4.50% 23 Quality Assurance 4.50%
12 Independent V&V 5.42% 24 Installation and Training 1.94%
25 Project Management 6.75%
Effort Breakdown
• Project Management 8.08%
• Requirements 14.43%
• Design 11.36%
• Coding 13.50%
• SQA 30.64%
• SCM 13.02%
• Integration 6.54%
• Misc. ~3%
Software Engineering Practices

• Software product realization


• Software project management
• Software process management
• Software quality assurance
• Software configuration management
project planning and
management
configuration management
Management
quality assurance
installation and training
etc.
Construction

Requirements
Design
Coding
Testing
Maintenance
etc.
A Software Engineering Framework

Method T
O
Task Set Process O
L
Quality Focus S
Common Process Framework
Framework Activities
Task Sets

TASKS

MILESONES, DELIVERABLES

SQA POINTS

Umbrella Activities
The Process

• A software process is a road map that helps you create a timely,


high quality result.
• It is the way we produce software
• Provides stability and control
• Work Product
– Programs, documents, and data produced as a consequence o
the software engineering activities
Process Maturity

• SEI – Software Engineering Institute


• 5 maturity levels
• Capability Maturity Model (CMM)
CMM Maturity Levels

OPTIMIZED – Process Improvement

MANAGED – Process Measurement

DEFINED – Process Definition

REPEATABLE – Project Management

INITIAL – Ad hoc Process


Key Process Areas (KPAs)
• Goals • Commitments
• Abilities • Activities

• Methods for monitoring • Methods for verifying


implementation implementation
Level 2 KPAs

• Software Configuration Management


• Software Quality Assurance
• Software subcontract Management
Level 2 KPAs - Continued

• Software project tracking and oversight


• Software project planning
• Requirement management
Level 3 KPAs
• Peer reviews
• Inter-group coordination
• Software product Engineering
• Integrated software management
Level 3 KPAs - Continued
• Training program
• Organization process management
• Organization process focus
Level 4 KPAs
• Software quality management
• Quantitative process management
Level 5 KPAs
• Process change management
• Technology change management
• Defect prevention
Software Lifecycle Models

• The way you organize your activities


• Lifecycle model is a series of steps through which the
product progresses
Software Engineering Phases

1. Vision – focus on why


2. Definition – focus on what
2. Development – focus on how
3. Maintenance – focus on change

Vision Definition Development Maintenance

You might also like