Professional Documents
Culture Documents
Intro To SE - SP17 - 23
Intro To SE - SP17 - 23
Intro To SE - SP17 - 23
SOFTWARE ENGINEERING
LECTURE – 23
2
CSD201 - Introduction to Software Engineering
• COCOMO II Model
“To help people reason about the
cost and schedule implications of
their software decisions”
3
CSD201 - Introduction to Software Engineering
MAJOR DECISION SITUATIONS
HELPED BY COCOMO II
• Software investment decisions
• When to develop, reuse, or purchase
• What legacy software to modify or phase out
• Setting project budgets and schedules
• Negotiating cost/schedule/performance tradeoffs
• Making software risk management decisions
• Making software improvement decisions
• Reuse, tools, process maturity, outsourcing
4
CSD201 - Introduction to Software Engineering
COCOMO II Model Stages
4x
2x Early Design
(13 parameters)
1.5x
1.25x
Relative
Size Range x
0.8x
Post-Architecture
0.67x (23 parameters)
0.5x Applications
Composition
(3 parameters)
0.25x Product Detail
Concept of Rqts. Design Design Accepted
Operation Spec. Spec. Spec. Software
5
CSD201 - Introduction to Software Engineering
COCOMO II. 2000 Productivity Ranges
Scale Factor Ranges: 10, 100, 1000 KSLOC
Productivity Range
6
CSD201 - Introduction to Software Engineering
Early Design and Post-Architecture Model
Environment
Effort Size Process Scale Factors
Multipliers
Environment: Product, Platform, People, Project Factors
Size: Nonlinear reuse and volatility effects
Process: Constraint, Risk/Architecture, Team, Maturity Factors
7
CSD201 - Introduction to Software Engineering
New Scaling Exponent
Approach
• Scale factors:
- Precedentedness (PREC)
- Development flexibility (FLEX)
- Architecture/ risk resolution (RESL)
- Team cohesion (TEAM)
- Process maturity (PMAT, derived from SEI CMM)
8
CSD201 - Introduction to Software Engineering
Early Design vs. Post-Arch EMs
9
CSD201 - Introduction to Software Engineering
Software Quality
10
CSD201 - Introduction to Software Engineering
SOFTWARE QUALITY
• “An effective software process applied in a manner that
creates a useful product that provides measurable value
for those who produce it and those who use it”
11
CSD201 - Introduction to Software Engineering
GARVIN’S QUALITY DIMENSION
• Performance quality
• Feature quality
• Reliability
• Conformance
• Durability
• Serviceability
• Aesthetics
• Perception
12
CSD201 - Introduction to Software Engineering
MCCALL’S QUALITY FACTORS
13
CSD201 - Introduction to Software Engineering
ISO 9126 QUALITY FACTORS
• The standard was developed in an attempt to identify the
key quality attributes for computer software
• Functionality
• Reliability
• Usability Efficiency
• Maintainability
• Portability
14
CSD201 - Introduction to Software Engineering
THE SOFTWARE QUALITY
DILEMMA
• <<Class participation>>
15
CSD201 - Introduction to Software Engineering
THE COST OF QUALITY
• The cost of quality includes all costs incurred in the
pursuit of quality or in performing quality related activities
and the downstream costs of lack of in performing quality-
related activities
• Prevention costs include
• The costs of management activities required to plan and
coordinate all quality control and quality assurance
activities
• The cost of added technical activities to develop complete
requirements and design models
• Test planning costs
• The cost of all training associated with these activities
16
CSD201 - Introduction to Software Engineering
ELEMENTS OF SQA (SOFTWARE
QUALITY ASSURANCE )
• Standards
• Reviews and Audits
• Testing
• Error/defect collection and analysis
• Change management
• Education vendor management
• Security management
• Safety
• Risk management
17
CSD201 - Introduction to Software Engineering
GOALS, ATTRIBUTES AND
METRICS OF SQA
• Requirements quality
• Ambiguity, completeness, volatility, traceability, model
clarity
• Design quality
• Architectural integrity, component completeness, interface
complexity, patterns
• Code quality
• Complexity, maintainability, understandability
• Quality control effectiveness
• Resource allocation, completion rate, review effectiveness,
testing effectiveness
18
CSD201 - Introduction to Software Engineering
• Introduction to Software
Testing
19
CSD201 - Introduction to Software Engineering
SOFTWARE TESTING
• Software testing is an investigation conducted to
provide stakeholders with information about the
quality of the product or service under test
20
CSD201 - Introduction to Software Engineering
WHAT TESTING SHOWS
• Errors
• Requirements Conformance
• Performance
• An Indication of Quality
21
CSD201 - Introduction to Software Engineering
WHO TESTS THE SOFTWARE?
• Developer
• Understands the system
• But, will test gently
• And, is driven by delivery
• Independent Tester
• Must learn about the system
• But, will attempt to break it
• And, is driven by quality
22
CSD201 - Introduction to Software Engineering
Q&A
23
CSD201 - Introduction to Software Engineering