SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Software Engineering
An Introduction

Fakhar Lodhi

1
Engineering
The science concerned with putting
scientific knowledge to practical use.
Webster’s Dictionary

Physics versus Electrical Engineering

2
Software Engineering
The science concerned with putting
computer science knowledge to practical
use.
Computer Science versus Software
Engineering

3
Software Engineering - IEEE
1.

2.

The application of a systematic,
disciplined, quantifiable approach to the
development, operation, and maintenance
of software; that is, the application of
engineering to software.
The study of approaches as in 1.

One of the largest efforts in
Software Engineering has been
the design of
Ada Programming Language!
4
Breakdown of Effort Cost - Software Cost
Estimation by Capers Jones

No. Activity
1 Requirements
2 Prototyping
3 Architecture
4 Project Plans
5 Initial Design
6 Detailed Design
7 Design Reviews
8 Coding
9 Reuse acquisition
10 Package Purchase
11 Code Inspection
12 Independent V&V

5

Effort
3.84%
4.50%
2.25%
1.33%
3.84%
4.50%
3.02%
13.50%
1.13%
1.69%
4.50%
5.42%

13
14
15
16
17
18
19
20
21
22
23
24
25

Configuration Mgt.
Integration
User Documentation
Unit Testing
Function Testing
Integration Testing
System Testing
Beta Testing
Acceptance Testing
Independent Testing
Quality Assurance
Installation and Training
Project Management

0.41%
2.71%
9.67%
4.50%
4.50%
3.84%
3.38%
3.02%
1.94%
3.38%
4.50%
1.94%
6.75%
Effort Breakdown of ~10000
Projects - Capers Jones
Project Management
Requirements
Design
Coding
SQA
SCM
Integration
Misc.

6

8.08%
14.43%
11.36%
13.50%
30.64%
13.02%
6.54%
~3%
Software Development
Management

Construction

7

project planning and
management
configuration
management
quality assurance
installation and training
etc.
Requirements
Design
Coding
Testing
Maintenance
etc.
Basic Activities of Software Engineering
•

•

managing the development project

•

describing the intended software product

•

designing the product

•

implementing the product

•

testing the parts of the product

•

integrating the parts and testing them as a whole

•

8

defining the software development process to be
used

maintaining the product
The Four P’s of Software Engineering
Project
People
Process
Product

9

– the task at hand
– by whom it is done
– the manner it is done
– the artifacts produced
Well-Engineered Software
•
•
•
•
•
•

10

Provides the required functionality
Maintainable
Reliable
Efficient
User-friendly
Cost-effective
Well-Engineered Software - contd.
•

These requirements may be conflicting:
•
•
•

•
•

11

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

Law of diminishing returns.
Challenge is to balance these requirements.
Software Life-Cycle Models
The way you organize your activities
The steps through which the product
progresses
–
–
–
–
–
–
–

12

Requirements phase
Specification phase
Design phase
Implementation phase
Integration phase
Maintenance phase
Retirement
Software Processes
Build-and-fix model
Waterfall model
Rapid prototyping model
Incremental model
Extreme programming
Synchronize-and-stabilize model
Spiral model
Object-oriented life-cycle models
Comparison of life-cycle models
13
Build and Fix Model
Problems
–
–

No specifications
No design

Totally unsatisfactory
Need life-cycle model
–
–
–

14

“Game plan”
Phases
Milestones
Waterfall Model (contd)
Characterized by
–
–

With or without feedback
loops
Documentation-driven

Advantages
–
–

Documentation
Maintenance easier

Disadvantages
–

15

Client feedback
Rapid Prototyping Model
Linear model
“Rapid”
Horizontal versus vertical prototyping

16
Three Key Points
Do not turn into product
Rapid prototyping may replace
specification phase—never the design
phase
Comparison:
–
–

17

Waterfall model—try to get it right first time
Rapid prototyping—frequent change, then
discard
Waterfall and Rapid Prototyping Models
Waterfall model
–
–

Many successes
Client needs

Rapid prototyping model
–

Cannot be used for robust
applications

Solution
–
–

18

Rapid prototyping for
requirements phase
Waterfall for rest of life
cycle
Incremental Model
Divide project
into builds

19
Incremental Model (contd)
Waterfall, rapid prototyping models
–

Operational quality complete product at end

Incremental model
–

Operational quality portion of product within weeks

Less traumatic
Smaller capital outlay, rapid return on
investment
Need open architecture—maintenance
implications
Variations used in object-oriented life cycle
20
Incremental Model (contd)
Problems
–
–

21

Build-and-fix danger
Contradiction in terms
Incremental Model (contd)
More risky version—pieces may
not fit
–

22

CABTAB and its dangers
Code a bit, test a bit – CABTAB
Haphazard undisciplined approach

23
Extreme Programming
Somewhat controversial new approach
Stories (features client wants)
Estimate duration and cost of each story
Select stories for next build
Each build is divided into tasks
Test cases for task are drawn up first
Pair programming
Continuous integration of tasks
24
Extreme Programming

25
Unusual Features of XP
Computers are put in center of large
room lined with cubicles
Pair programming with shared computers
Client representative is always present
Cannot work overtime for 2 successive
weeks
No specialization
Refactoring

26
Evaluating XP
XP has had some successes
Good when requirements are vague or
changing
Too soon to evaluate XP

27
Dilbert on eXtreme Programming

28
Synchronize-and Stabilize Model
Microsoft’s life-cycle model
Requirements analysis—interview potential
customers
Draw up specifications
Divide project into 3 or 4 builds
Each build is carried out by small teams
working in parallel

29
Synchronize-and Stabilize Model (contd)
At the end of the day—synchronize (test and
debug)
At the end of the build—stabilize (freeze build)
Components always work together
–

30

Get early insights into operation of product
Spiral Model
Simplified form
–

Waterfall model plus risk
analysis

Precede each phase by
–
–

Alternatives
Risk analysis

Follow each phase by
–
–

31

Evaluation
Planning of next phase
Simplified Spiral Model
If risks
cannot be
resolved,
project is
immediately
terminated

32
Full Spiral Model
Radial dimension: cumulative cost to date
Angular dimension: progress through the
spiral

33
Full Spiral Model (contd)

34
Analysis of Spiral Model
Strengths
–
–

Easy to judge how much to test
No distinction between development,
maintenance

Weaknesses
–
–

35

For large-scale software only
For internal (in-house) software only
Object-Oriented Life-Cycle Models
Need for iteration within and between phases
–
–
–
–

Fountain model
Recursive/parallel life cycle
Round-trip gestalt
Unified software development process

All incorporate some form of
–
–
–

Iteration
Parallelism
Incremental development

Danger
36

–

CABTAB
Conclusions
Different life-cycle models
Each with own strengths
Each with own weaknesses
Criteria for deciding on a model
include
–
–
–
–

The organization
Its management
Skills of the employees
The nature of the product

Best suggestion
37

–

“Mix-and-match” life-cycle model
Quality Assurance?
There is NO QA phase
QA is an activity performed throughout software
production
Verification
–

Performed at the end of each phase

Validation
–

38

Performed before delivering the product to the client
Documentation Phase?
There is NO documentation phase
Every phase must be fully documented before
starting the next phase
–
–
–
–

39

Postponed documentation may never be completed
The responsible individual may leave
The product is constantly changing—we need the
documentation to do this
The design (for example) will be modified during
development, but the original designers may not be
available to document it
Phase

Documents

QA

Requirement
Definition

Rapid prototype
Reviews

Functional
Specification

Specification document
(specifications)
Software Product
Management Plan

Traceability
FS Review
Check the SPMP

Design

Architectural Design
Detailed Design

Traceability
Review

Coding

Source code
Test cases

Traceability
Review
Testing

Integration

40

Rapid prototype, or
Requirements
document

Source code
Test cases

Integration testing
Acceptance testing

Maintenance

Change record
Regression test cases

Regression testing
Traceability matrix
Requirement Use Case UID
ID
ID

41

Class/
function

Test
Case ID
Questions?

42
Thank you!

43

Más contenido relacionado

La actualidad más candente

Sdlc fountain model
Sdlc fountain modelSdlc fountain model
Sdlc fountain model
Rana Atilli
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
Alaa' Amr Amin
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process Models
Education Front
 

La actualidad más candente (20)

System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
 
Ms
MsMs
Ms
 
Waterfall
WaterfallWaterfall
Waterfall
 
The Spiral Model
The Spiral ModelThe Spiral Model
The Spiral Model
 
A detailed-look-at-v-model-in-software-testing
A detailed-look-at-v-model-in-software-testingA detailed-look-at-v-model-in-software-testing
A detailed-look-at-v-model-in-software-testing
 
Iterative Waterfall model
Iterative Waterfall modelIterative Waterfall model
Iterative Waterfall model
 
Incremental model
Incremental modelIncremental model
Incremental model
 
Fountain model
Fountain modelFountain model
Fountain model
 
Waterfall, Spiral and iterative model
Waterfall, Spiral and iterative modelWaterfall, Spiral and iterative model
Waterfall, Spiral and iterative model
 
Materi Testing dan Implementasi System
Materi Testing dan Implementasi SystemMateri Testing dan Implementasi System
Materi Testing dan Implementasi System
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Spiral Model
Spiral ModelSpiral Model
Spiral Model
 
V model by_sandeep
V model by_sandeepV model by_sandeep
V model by_sandeep
 
Sdlc fountain model
Sdlc fountain modelSdlc fountain model
Sdlc fountain model
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
V model Over View (Software Engineering)
V model Over View (Software Engineering) V model Over View (Software Engineering)
V model Over View (Software Engineering)
 
Prototype Model
Prototype ModelPrototype Model
Prototype Model
 
Software development models hazahara
Software development models hazaharaSoftware development models hazahara
Software development models hazahara
 
Generic Software Process Models
Generic Software Process ModelsGeneric Software Process Models
Generic Software Process Models
 
Software engineering-quiz
Software engineering-quizSoftware engineering-quiz
Software engineering-quiz
 

Destacado

Edu+Presentation
Edu+PresentationEdu+Presentation
Edu+Presentation
gurbaxrawat
 
Chapter 5 Mis Software Development Life Cycle
Chapter 5 Mis Software Development Life CycleChapter 5 Mis Software Development Life Cycle
Chapter 5 Mis Software Development Life Cycle
management 2
 
The spiral model
The  spiral  modelThe  spiral  model
The spiral model
phatcom10
 
RPL : Incremental model
RPL : Incremental modelRPL : Incremental model
RPL : Incremental model
amalianuryamin
 
System development life cycle (sdlc)
System development life cycle (sdlc)System development life cycle (sdlc)
System development life cycle (sdlc)
Mukund Trivedi
 

Destacado (20)

Edu+Presentation
Edu+PresentationEdu+Presentation
Edu+Presentation
 
Developmental Designs (CPR)
Developmental Designs (CPR)Developmental Designs (CPR)
Developmental Designs (CPR)
 
Sofware Team Organizations
Sofware Team OrganizationsSofware Team Organizations
Sofware Team Organizations
 
Introduction to system life cycle
Introduction to system life cycleIntroduction to system life cycle
Introduction to system life cycle
 
Waterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project ManagementWaterfall vs Agile : A Beginner's Guide in Project Management
Waterfall vs Agile : A Beginner's Guide in Project Management
 
Fountain project model
Fountain project modelFountain project model
Fountain project model
 
Chapter 5 Mis Software Development Life Cycle
Chapter 5 Mis Software Development Life CycleChapter 5 Mis Software Development Life Cycle
Chapter 5 Mis Software Development Life Cycle
 
Organization and team structures
Organization and team structuresOrganization and team structures
Organization and team structures
 
Spiral model
Spiral modelSpiral model
Spiral model
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Incremental development (pengembangan incremental)
Incremental development (pengembangan incremental)Incremental development (pengembangan incremental)
Incremental development (pengembangan incremental)
 
The spiral model
The  spiral  modelThe  spiral  model
The spiral model
 
Faisal Incremental Model
Faisal Incremental ModelFaisal Incremental Model
Faisal Incremental Model
 
Spiral model : System analysis and design
Spiral model : System analysis and designSpiral model : System analysis and design
Spiral model : System analysis and design
 
RPL : Incremental model
RPL : Incremental modelRPL : Incremental model
RPL : Incremental model
 
Spiral model
Spiral modelSpiral model
Spiral model
 
Incremental model presentation
Incremental model presentationIncremental model presentation
Incremental model presentation
 
Spiral model explanation
Spiral model  explanationSpiral model  explanation
Spiral model explanation
 
Spiral model presentation
Spiral model presentationSpiral model presentation
Spiral model presentation
 
System development life cycle (sdlc)
System development life cycle (sdlc)System development life cycle (sdlc)
System development life cycle (sdlc)
 

Similar a Software lifecycle lodhi (1)

SDLC- concept and models
SDLC- concept and modelsSDLC- concept and models
SDLC- concept and models
Anjali Arora
 
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
loloka1
 

Similar a Software lifecycle lodhi (1) (20)

Lect3 ch15-unit2
Lect3 ch15-unit2Lect3 ch15-unit2
Lect3 ch15-unit2
 
2-models.pptx
2-models.pptx2-models.pptx
2-models.pptx
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
Software development life cycle (SDLC) Models
Software development life cycle (SDLC) ModelsSoftware development life cycle (SDLC) Models
Software development life cycle (SDLC) Models
 
Plagiarism Report SDLC 1.pdf
Plagiarism Report SDLC 1.pdfPlagiarism Report SDLC 1.pdf
Plagiarism Report SDLC 1.pdf
 
2 (1).ppt
2 (1).ppt2 (1).ppt
2 (1).ppt
 
Process models
Process modelsProcess models
Process models
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
 
Software life cycle
Software life cycleSoftware life cycle
Software life cycle
 
SDLC- concept and models
SDLC- concept and modelsSDLC- concept and models
SDLC- concept and models
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
2. Software process
2. Software process2. Software process
2. Software process
 
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle Model
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Software Engineering- Crisis and Process Models
Software Engineering- Crisis and Process ModelsSoftware Engineering- Crisis and Process Models
Software Engineering- Crisis and Process Models
 
I
II
I
 
Soft lifecycle
Soft lifecycleSoft lifecycle
Soft lifecycle
 
SE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it studentSE_Unit 2.pdf it is a process model of it student
SE_Unit 2.pdf it is a process model of it student
 

Más de Nitesh Nayal (7)

Core java -_interview_questions_and_answers_2
Core java -_interview_questions_and_answers_2Core java -_interview_questions_and_answers_2
Core java -_interview_questions_and_answers_2
 
Dbms
DbmsDbms
Dbms
 
Linux for beginners
Linux for beginnersLinux for beginners
Linux for beginners
 
Nitesh nayal resume
Nitesh nayal   resumeNitesh nayal   resume
Nitesh nayal resume
 
Online book store
Online book storeOnline book store
Online book store
 
Graph theory
Graph theoryGraph theory
Graph theory
 
Ppt wearable computer
Ppt wearable computerPpt wearable computer
Ppt wearable computer
 

Software lifecycle lodhi (1)

  • 2. Engineering The science concerned with putting scientific knowledge to practical use. Webster’s Dictionary Physics versus Electrical Engineering 2
  • 3. Software Engineering The science concerned with putting computer science knowledge to practical use. Computer Science versus Software Engineering 3
  • 4. Software Engineering - IEEE 1. 2. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. The study of approaches as in 1. One of the largest efforts in Software Engineering has been the design of Ada Programming Language! 4
  • 5. Breakdown of Effort Cost - Software Cost Estimation by Capers Jones No. Activity 1 Requirements 2 Prototyping 3 Architecture 4 Project Plans 5 Initial Design 6 Detailed Design 7 Design Reviews 8 Coding 9 Reuse acquisition 10 Package Purchase 11 Code Inspection 12 Independent V&V 5 Effort 3.84% 4.50% 2.25% 1.33% 3.84% 4.50% 3.02% 13.50% 1.13% 1.69% 4.50% 5.42% 13 14 15 16 17 18 19 20 21 22 23 24 25 Configuration Mgt. Integration User Documentation Unit Testing Function Testing Integration Testing System Testing Beta Testing Acceptance Testing Independent Testing Quality Assurance Installation and Training Project Management 0.41% 2.71% 9.67% 4.50% 4.50% 3.84% 3.38% 3.02% 1.94% 3.38% 4.50% 1.94% 6.75%
  • 6. Effort Breakdown of ~10000 Projects - Capers Jones Project Management Requirements Design Coding SQA SCM Integration Misc. 6 8.08% 14.43% 11.36% 13.50% 30.64% 13.02% 6.54% ~3%
  • 7. Software Development Management Construction 7 project planning and management configuration management quality assurance installation and training etc. Requirements Design Coding Testing Maintenance etc.
  • 8. Basic Activities of Software Engineering • • managing the development project • describing the intended software product • designing the product • implementing the product • testing the parts of the product • integrating the parts and testing them as a whole • 8 defining the software development process to be used maintaining the product
  • 9. The Four P’s of Software Engineering Project People Process Product 9 – the task at hand – by whom it is done – the manner it is done – the artifacts produced
  • 10. Well-Engineered Software • • • • • • 10 Provides the required functionality Maintainable Reliable Efficient User-friendly Cost-effective
  • 11. Well-Engineered Software - contd. • These requirements may be conflicting: • • • • • 11 Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface Law of diminishing returns. Challenge is to balance these requirements.
  • 12. Software Life-Cycle Models The way you organize your activities The steps through which the product progresses – – – – – – – 12 Requirements phase Specification phase Design phase Implementation phase Integration phase Maintenance phase Retirement
  • 13. Software Processes Build-and-fix model Waterfall model Rapid prototyping model Incremental model Extreme programming Synchronize-and-stabilize model Spiral model Object-oriented life-cycle models Comparison of life-cycle models 13
  • 14. Build and Fix Model Problems – – No specifications No design Totally unsatisfactory Need life-cycle model – – – 14 “Game plan” Phases Milestones
  • 15. Waterfall Model (contd) Characterized by – – With or without feedback loops Documentation-driven Advantages – – Documentation Maintenance easier Disadvantages – 15 Client feedback
  • 16. Rapid Prototyping Model Linear model “Rapid” Horizontal versus vertical prototyping 16
  • 17. Three Key Points Do not turn into product Rapid prototyping may replace specification phase—never the design phase Comparison: – – 17 Waterfall model—try to get it right first time Rapid prototyping—frequent change, then discard
  • 18. Waterfall and Rapid Prototyping Models Waterfall model – – Many successes Client needs Rapid prototyping model – Cannot be used for robust applications Solution – – 18 Rapid prototyping for requirements phase Waterfall for rest of life cycle
  • 20. Incremental Model (contd) Waterfall, rapid prototyping models – Operational quality complete product at end Incremental model – Operational quality portion of product within weeks Less traumatic Smaller capital outlay, rapid return on investment Need open architecture—maintenance implications Variations used in object-oriented life cycle 20
  • 22. Incremental Model (contd) More risky version—pieces may not fit – 22 CABTAB and its dangers
  • 23. Code a bit, test a bit – CABTAB Haphazard undisciplined approach 23
  • 24. Extreme Programming Somewhat controversial new approach Stories (features client wants) Estimate duration and cost of each story Select stories for next build Each build is divided into tasks Test cases for task are drawn up first Pair programming Continuous integration of tasks 24
  • 26. Unusual Features of XP Computers are put in center of large room lined with cubicles Pair programming with shared computers Client representative is always present Cannot work overtime for 2 successive weeks No specialization Refactoring 26
  • 27. Evaluating XP XP has had some successes Good when requirements are vague or changing Too soon to evaluate XP 27
  • 28. Dilbert on eXtreme Programming 28
  • 29. Synchronize-and Stabilize Model Microsoft’s life-cycle model Requirements analysis—interview potential customers Draw up specifications Divide project into 3 or 4 builds Each build is carried out by small teams working in parallel 29
  • 30. Synchronize-and Stabilize Model (contd) At the end of the day—synchronize (test and debug) At the end of the build—stabilize (freeze build) Components always work together – 30 Get early insights into operation of product
  • 31. Spiral Model Simplified form – Waterfall model plus risk analysis Precede each phase by – – Alternatives Risk analysis Follow each phase by – – 31 Evaluation Planning of next phase
  • 32. Simplified Spiral Model If risks cannot be resolved, project is immediately terminated 32
  • 33. Full Spiral Model Radial dimension: cumulative cost to date Angular dimension: progress through the spiral 33
  • 34. Full Spiral Model (contd) 34
  • 35. Analysis of Spiral Model Strengths – – Easy to judge how much to test No distinction between development, maintenance Weaknesses – – 35 For large-scale software only For internal (in-house) software only
  • 36. Object-Oriented Life-Cycle Models Need for iteration within and between phases – – – – Fountain model Recursive/parallel life cycle Round-trip gestalt Unified software development process All incorporate some form of – – – Iteration Parallelism Incremental development Danger 36 – CABTAB
  • 37. Conclusions Different life-cycle models Each with own strengths Each with own weaknesses Criteria for deciding on a model include – – – – The organization Its management Skills of the employees The nature of the product Best suggestion 37 – “Mix-and-match” life-cycle model
  • 38. Quality Assurance? There is NO QA phase QA is an activity performed throughout software production Verification – Performed at the end of each phase Validation – 38 Performed before delivering the product to the client
  • 39. Documentation Phase? There is NO documentation phase Every phase must be fully documented before starting the next phase – – – – 39 Postponed documentation may never be completed The responsible individual may leave The product is constantly changing—we need the documentation to do this The design (for example) will be modified during development, but the original designers may not be available to document it
  • 40. Phase Documents QA Requirement Definition Rapid prototype Reviews Functional Specification Specification document (specifications) Software Product Management Plan Traceability FS Review Check the SPMP Design Architectural Design Detailed Design Traceability Review Coding Source code Test cases Traceability Review Testing Integration 40 Rapid prototype, or Requirements document Source code Test cases Integration testing Acceptance testing Maintenance Change record Regression test cases Regression testing
  • 41. Traceability matrix Requirement Use Case UID ID ID 41 Class/ function Test Case ID