Intro To SE - SP17 - 23

You might also like

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

INTRODUCTION TO

SOFTWARE ENGINEERING

LECTURE – 23

MAY 15, 2017


TOPICS COVERED
• Software Product Metrics
• COCOMO II
• Software Quality Assurance
• Introduction to Software Testing

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

Feasibility Plans Product Detail Devel.


and Design Design and Test
Rqts.

Phases and Milestones

5
CSD201 - Introduction to Software Engineering
COCOMO II. 2000 Productivity Ranges
Scale Factor Ranges: 10, 100, 1000 KSLOC

Development Flexibility (FLEX)


Team Cohesion (TEAM)
Develop for Reuse (RUSE)
Precedentedness (PREC)
Architecture and Risk Resolution (RESL)
Platform Experience (PEXP)
Data Base Size (DATA)
Required Development Schedule (SCED)
Language and Tools Experience (LTEX)
Process Maturity (PMAT)
Storage Constraint (STOR)
Use of Software Tools (TOOL)
Platform Volatility (PVOL)
Applications Experience (AEXP)
Multi-Site Development (SITE)
Documentation Match to Life Cycle Needs (DOCU)
Required Software Reliability (RELY)
Personnel Continuity (PCON)
Time Constraint (TIME)
Programmer Capability (PCAP)
Analyst Capability (ACAP)
Product Complexity (CPLX)

1 1.2 1.4 1.6 1.8 2 2.2 2.4

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

Schedule  Multiplier  Effort


Process Scale Factors 

7
CSD201 - Introduction to Software Engineering
New Scaling Exponent
Approach

• Nominal person-months = A*(size)B


• B = 0.91 + 0.01 (scale factor ratings)
- B ranges from 0.91 to 1.23
- 5 scale factors; 6 rating levels each

• 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

Early Design Cost Driver Counterpart Combined


Post Architecture Cost
Drivers
Product Reliability and RELY, DATA, CPLX, DOCU
Complexity
Required Reuse RUSE
Platform Difficulty TIME, STOR, PVOL
Personnel Capability ACAP, PCAP, PCON
Personnel Experience AEXP, PEXP, LTEX
Facilities TOOL, SITE
Schedule SCED

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

• Software testing can also provide an objective,


independent view of the software to allow the
business to appreciate and understand the risks of
software implementation

• Test techniques include the process of executing a


program or application with the intent of finding
software bugs

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

You might also like