sad lec22_notes_cocomo,cmmi and case tool
TRANSCRIPT
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
1/35
Capability Maturity Model
Integration
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
2/35
Capability Maturity Model Integration (CMMI) is
a process improvement approach whose goal isto help organizations improve their performance.
CMMI can be used to guide process improvement
across a project, a division, or an entire
organization.
CMMI in software engineering and organizational
development is a process improvement approach
that provides organizations with the essential
elements for effective process improvement.
CMMI is registered in the U.S. Patent andTrademark Office by Carnegie Mellon University.
According to the Software Engineering
Institute (SEI, 2008), CMMI helps "integrate
traditionally separate organizational functions, setrocess im rovement oals and riorities, rovide
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
3/35
3
CMM developed by the Software Engineering
Institute to help
organizations which develop software
to improve their software processes organizations which acquire software
to assess the quality of their contractors
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
4/35
4
Immature organization processes are improvised during the course of a
project to resolve unanticipated crises
products often delivered late and their qualityis questionable
Mature organization organization-wide standard approach to
software processes, known and accepted by all
engineers focus on continuous improvement both in
performance and product quality
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
5/35
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
6/35
The organization
Does not have an environment for developing and
maintaining software.
At the time of crises, projects usually stop using all
planned procedures and revert to coding and testing.
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
7/35
Effective management process having established
which can be
Practiced
Documented Enforced
Trained
Measured
Improvised
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
8/35
Standard defined software engineering and management
process for developing and maintaining software.
These processes are put together to make a coherent
whole.
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
9/35
Quantitative goals set for both software products and
processes.
The organizational measurement plan involves
determining the productivity and quality for all important
software process activities across all projects.
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
10/35
Emphasis laid on
Process improvement
Tools to identify weaknesses existing in their processes
Make timely corrections
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
11/3511
Organizational Innovation and DeploymentCausal Analysis and Resolution
5 Optimizing
4 QuantitativelyManaged
3 Defined
2 Managed
Cont inuous
Process
Improvement
Quanti tat ive
Management
Process
Standardization
Basic
Project
Management
Organizational Process PerformanceQuantitative Project Management
Requirements DevelopmentTechnical SolutionProduct IntegrationVerificationValidation
Organizational Process FocusOrganizational Process DefinitionOrganizational TrainingIntegrated Project Management for IPPDRisk ManagementIntegrated TeamingIntegrated Supplier ManagementDecision Analysis and ResolutionOrganizational Environment for Integration
Requirements ManagementProject PlanningProject Monitoring and ControlSupplier Agreement ManagementMeasurement and AnalysisProcess and Product Quality AssuranceConfiguration Management
Quality
Productivity
Risk,
Rework1 Initial
Process AreasLevel Focus
None
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
12/35
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
13/35
COCOMO is one of the most widely used
software estimation models in the world
It was developed by Barry Boehm in 1981
COCOMO predicts the effort and schedule for
a software product development based on
inputs relating to the size of the software and
a number of cost drivers that affect
productivity
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
14/35
COCOMO has three different models that
reflect the complexity:
the Basic Model
the Intermediate Model
and the Detailed Model
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
15/35
Organic Mode Relatively small, simple software
projects Small teams with good application
experience work to a set of less thanrigid requirements
Similar to the previously developedprojects
relatively small and requires littleinnovation
Semidetached Mode
Intermediate (in size and
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
16/35
Embedded Mode
Software projects that must bedeveloped within a set of tighthardware, software, and
operational constraints.
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
17/35
Primary cost driver is the number ofDelivered Source Instructions(DSI) / Delivered Line Of Codedeveloped by the project
COCOMO estimates assume that theproject will enjoy good managementby both the developer and thecustomer
Assumes the requirements
specification is not substantially
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
18/35
Basic COCOMO is good for quick,early, rough order of magnitudeestimates ofsoftware costs
It does not account for differences inhardware constraints, personnel
quality and experience, use ofmodern tools and techniques, andother project attributes known to havea significant influence on software
costs, which limits its accuracy
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
19/35
E=ab (KLOC or KDSI)bb
D=cb (E)db
P=E/D
where E is the effort applied in person-
months, D is the development time in
chronological months, KLOC/ KDSI is the
estimated number of delivered lines ofcode for the project (expressed in
thousands), and P is the number of people
required. The coefficients ab, bb, cband db
are given in next slide.
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
20/35
Software project ab bb
cb
db
Organic 2.4 1.05
2.5 0.38
Semi-detached 3.0 1.122.5 0.35
Embedded 3.6 1.20
2.5 0.32
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
21/35
M o d e E f f o r t S c h ed u l e
Organic E=2.4*(KDSI)1.05
TDEV=2.5*(E)0.38
Semidetached E=3.0*(KDSI)1.12
TDEV=2.5*(E)0.35
Embedded E=3.6*(KDSI)1.20 TDEV=2.5*(E)0.32
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
22/35
Its accuracy is necessarily limited because
of its lack of factors which have a
significant influence on software costs
The Basic COCOMO estimates are within
a factor of 1.3 only 29% of the time, andwithin a factor of2 only 60% of the time
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
23/35
We have determined our project fits thecharacteristics ofSemi-Detached mode
We estimate our project will have 32,000Delivered Source Instructions. Using the
formulas, we can estimate:
Effort = 3.0*(32) 1.12 = 146 man-months
Schedule = 2.5*(146) 0.35 = 14 months Productivity = 32,000 DSI /
146 MM= 219 DSI/MM
Average Staffing = 146 MM /14months
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
24/35
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
25/35
Software engineering tools consisted solely
of translators, compilers, assemblers,
linkers, loaders, etc.
the software NEEDEDto build code.
Computers werent powerful enough or
advanced yet to support higher-levelfunctioning
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
26/35
Software engineering often follows specific
standardized methods
There are lots of diagrams anddocumentation involved
So now computers can be used to deal with
the higher-level aspects of softwareengineering
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
27/35
What is a CASE Environment?
CASE is the use of computer-based
support in the software development
process.
What is a CASE Tool?
A CASE tool is a computer-basedproduct aimed at supporting one or more
software engineering activities within a
software development process.
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
28/35
Supply basic functionality, do routine tasksautomatically
Be able to support editing of code in the particularprogramming language, supply refactoring tools
Enhance productivity
Generate code pieces automatically
Increase software quality
Intuitive use
Integration with other tools
For example, code editor works with code repository
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
29/35
Project management software
System design tools
Code storageCompilers
Translation tools
Test software
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
30/35
Code generation tools (Visual
Studio .NET)
Code analysis (Borland Audits)Development of data models
(UML editors)
Cleaning up code (refactoringtools)
Bug tracker
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
31/35
CASE tools do more than just output
code
Can be used to generate SE documents
Database schema
Data flow diagrams
Entity relationship diagrams
Program specifications
User documentation
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
32/35
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
33/35
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
34/35
-
7/28/2019 Sad Lec22_Notes_cocomo,Cmmi and Case Tool
35/35
UpperCASE: Tools for the analysis and
design phase of the software
development lifecycle (diagramming
tools, report and form generators,analysis tools)
Lower CASE: Tools to supportimplementation, testing, configuration
management