Software Process Improvements Based on Capability Maturity Model
Software Process Improvements Based on Capability Maturity Model (CMM) 任中浩 博士
CONTENTS n n n Introduction to Software Engineering Fundamentals of Process Improvement Overview of CMMI Models
Course Objectives n n understand the importance of having defined process understand the rationale for process improvement comprehend the CMMI model identify ways of applying the CMMI model to achieve process improvement
Requirements engineering processes n n Feasibility studies. Requirements elicitation and analysis. Requirements validation. Requirements management.
Software requirements n n n Functional and non-functional requirements. User requirements. System requirements. The software requirements document. Formal Specification
System Models n n Context models. Behavioural models. Data models. Object models.
Software prototyping n n n Prototyping in the software process. Rapid prototyping techniques. User interface prototyping.
Formal Specification n Formal specification in the software process. Interface specification. Behavioural specification.
DESIGN n n n n Structured Programming Modularity Functional Decomposition Data Structure Design Data Flow Design Object-Oriented Design User Interface Design Formal Development
DESIGN n n n Architectural design. Distributed systems design Object-oriented design Real-time software design Design with Reuse User interface design
PROGRAMMING PARADIGMS n n n The Programming Language Object-Oriented Programming (OOP) Concurrent Programming
VERIFICATION AND VALIDATION n n Verification and validation planning Software inspections Automated static analysis Cleanroom software development
Software testing n n n Defect testing. Integration testing. Object-oriented testing
Critical systems validation n n Formal methods and critical systems. Reliability validation. Safety assurance. Security assessment.
MANAGEMENT n Managing people n n n Limits to thinking. Group working. Choosing and keeping people. The People Capability Maturity Model. Software cost estimation n n Productivity. Estimation techniques. Algorithmic cost modelling. Project duration and staffing
MANAGEMENT n Quality management n n n Quality assurance and standards. Quality planning. Quality control. Software measurement and metrics. Process Improvement. n n n Process and product quality. Process analysis and modelling. Process measurement. The SEI Process Capability Maturity Model. Process classification
Software re-engineering n n n Source code translation. Reverse engineering. Program structure improvement. Program modularisation. Data re-engineering.
Configuration management n n n Configuration management planning. Change management. Version and release management. System building. CASE tools for configuration management.
Software change n n n Program evolution dynamics. Software maintenance. Architectural evolution.
Process Models n n n Process iteration. Software Specification. Software design and implementation. Software validation. Software evolution. Automated process support.
Project management n n Management activities. Project planning. Project scheduling. Risk management.
Software Trends (1) n Demands for software-intensive systems has been growing consistently and steadily n n More and more, software costs dominate these systems 1995 Do. D cost figures n n n Software: $35. 7 B Hardware: $6. 8 B Increasingly, software products and services are acquired instead of developed “in-house. ”
Software Outsourcing Trend (2) n Gartner Group n n n IDC n n Worldwide IT outsourcing - reach $1 T in 4 years. Outsourcing of retail financial services in the North America - from $8 B in 1998 to $22 B in 2002. IT outsourcing – reach $56 B in 2000 and $100 B by 2005. Forrester Research n 64% of all IT outsourcing goes through U. S. based companies that have relationships with development shops abroad.
The State of Software Development n n 2000 US Defense Science Board Study: 53% of projects were late and over budget, 16% were on time, 31% were cancelled before completion There is tremendous growth in software content in both manned and unmanned systems Software requirements now amount to the bulk of the overall specification requirements (65% for the B-2 bomber, 80% for the F-22 fighter)
The State of Software Engineering n Most successful projects rely on expertise established with similar systems n n Lack of documented processes make repeatability difficult Development efforts for unprecedented or significantly different systems often encounter problems.
What is the Problem? -1 n Systems are increasingly dependent on software, yet the brief history of software development has been filled with problems. n n Cost overruns Schedule slippage Failure to achieve performance objectives Can not realize benefits of new technologies and tools
What is the Problem? -2 n Government, industry, and the marketplace require software to be developed n n Better Faster Cheaper The workforce is already stressed out, and throwing technology at the problem hasn't worked
Ideal Case n n Applying new software methodologies and technologies. Develop and deliver reliable, usable software within budget and schedule commitments High Productivity High Quality
What can be done n n Improved and align the processes and practices of system engineers, software engineers, and managers. Do this by using the CMM Integrated as a basis for process improvement program
Quality Leverage Points n Major determinants of product cost, schedule, and quality People Process Technology
Definition of Process (製程) n Process: n n n How we do our work A set of practices performed to achieve a given purpose. May include tools, methods, materials, and/or people While process is often described as a leg of the process-people-technology triad, it may also be considered the "glue" that unifies the other aspects.
Why Focus on Process? - 1 n n Everyone realizes the importance of having a motivated, quality work force but. . . even our finest people can't perform at their best when the process is not understood or operating "at its best"
Why Focus on Process? - 2 n Process provides a constructive, highleverage focus. . . n As opposed to a focus on people n your work force, on the average, is as "good" as it is trained to be n working harder is not the answer n working smarter, through process, is the answer
Why Focus on Process? - 2 n As opposed to a focus on technology applied without a suitable roadmap will not result in significant payoff n technology provides most benefit in context of appropriate process roadmap
Why Focus on Process? - 3 n The process management premise: n n The quality of a system is highly influenced by the quality of the process used to acquire, develop, and maintain it This premise implies focus on processes as well as on product n n This is a long-established practice in manufacturing Belief in this premise is visible worldwide in quality movements in manufacturing and service industries, e. g. , ISO standards.
Why Focus on Process n Project Management Targets n n n Cost Development Time Productivity Quality Benefits n n n Predictability Control Effectiveness
Process Notation Schemes n n n What activities are performed in the process Who, Why, When, How What inputs must you have What outputs do you produce How do you measure performance
Fuzziness of Software Process n n n General Criteria Not the complete framework I can’t tell you precisely, but I know it when I see it
The Bottom Line-1 n Process improvement should be done to help the business – not for its own sake
The Bottom Line-2 n Improvement means different things to different organizations. n n n what are your business goals? how do you measure process ? Improvement is a long-term, strategic effort. n n what is the expected impact on the bottom line? How will impact be measured
Measurable Benefits n n The available data is taken from software process improvement efforts. Results: Boeing Effort estimation n variance is between – 20% to +20%
Other Observed Benefits of Process Improvement Cited by Hughes, Tinker AFB, Schlumberger, Raytheon n n n improved working conditions improved employee morale less turnover fewer overtime hours better and increased communication decreased risk increased customer satisfaction
A Measurable Return n n Process improvement provides measurable return on investment – when measured Return on software improvement investment reported between 5: 1 and 8: 1 Additional benefit is intangible and cannot be easily quantified CMMI is a useful tool for guiding improvement
CMMI Models to the Rescue n CMMI models were created to help realize the benefits of process improvement
CMMI-Based Improvement n n n Improve organizational practice to allow people to use technology better Use a model of successful practices for improving development, maintenance and sustainment, and management CMMI models fill this niche n based on widely-accepted models with a proven history of benefits
What is a CMMI Model n Framework that contains the key elements of effective processes for the software engineering n n The model is a structured collection of elements of effective processes Processes included are those proven by experience to be effective within their respective environment
CMMI models n n A CMMI model provides an integrated view of process improvement across multiple disciplines (e. g. software engineering and systems engineering) The CMMI can help n n n set process improvement goals and priorities provide guidance for quality processes provide a yardstick for assessing current practices
Two important concepts n Process capability n n Pertains to an individual process Organizational maturity n Pertains to a set of processes
Process Capability n The range of expected results that can be achieved by following a process. It can be a predictor of future project outcome upper control limit lower control limit
Low Capability Process n n n n Highly dependent on current practitioners Improvised by practitioners & management Not rigorously followed Results difficult to predict Low visibility into progress & quality Compromise of functionality & quality to meet schedule Use of new technology is risky
High Capability Process n n n A disciplined approach for development and management Defined and continuously improving Supported by management and others Well controlled & measured Institutionalized
Capability vs Performance n n Process Capability – the range of expected results that can be achieved by following a prcess. It can be a predictor of future project outcomes. Process performance – a measure of the actual results achieved from following a process on a particular project
Organizational Maturity n n Represented by the combined capabilities of a set of processes The particular processes in that set are chosen (possibly from a pre-defined set) to meet the process improvement needs of an organization
Low Organizational Maturity n n Highly dependent on current practitioners Improvised by practitioners & management Not rigorously followed Results not predictable
High Organizational Maturity n The set of organizational processes, taken as a whole, are of higher capability, i. e. , n n A disciplined approach for development and management Defined and continuously improving Supported by management and others Process stays long after those who built it are gone
Relating Capability and Maturity n n Being at a particular level of organizational maturity has process capability implications for multiple processes Knowing the process capabilities of a collection of processes has implications for organizational maturity
CMMI Model Representations n An organization may choose to approach process improvement from either the n n n process capability approach, or the organizational maturity approach CMMI models support each approach with a representation n n process capability approach – continuous representation organizational maturity approach – staged representation
Continuous Representation n provides maximum flexibility for organizations to choose which processes to emphasize for improvement
Staged Representation n Provides a pre-defined roadmap for organizational improvement based on proven grouping and ordering of processes and associated organizational relationships.
Comparing the Different Representations n n Both representations provide ways of implementing process improvement to achieve business goals Both representations provides the same essential content but are organized in different ways.
Models in Perspective n n A model is not a prcess. The model tells you what to do, not how to do it You must define the process for your organization that will likely incorporate other aspects of process
Process Representation - 1 n n Mature processes are documented. Question: n n Answer: n n What does that documentation look like? It should depend on the audience Two general process representation forms n n formal process representation user-oriented process representation
Process Representation - 2 n Formal process representation n n audience is primarily process specialists detailed and formalized representation primarily used for process development, tailoring improvement user-oriented process representation n audience is primarily everyday process users clear and simple representation primarily used for performing the process
Process Notation Schemes - 1 n n n n What activities are performed in the process? Who does them Why are they done When are they done How are they done What inputs must you have What outputs do you produce How do you measure performance
Process Notation Schemes - 2 n n Different notation schemes emphasize different aspects of a process and, thus, have different strengths and weaknesses. Different notations may or may not have the ability to represent conveniently n n n sequencing of activities timing of activities data flow among activities hierarchical detail entry and exit criteria narrative information
Process Notation Schemes - 3 n Other notation scheme attributes n n flexibility simplicity ease of training and understanding availability of tool support
Some Common Process Notations n n n Data flow diagrams Flowcharts Decision trees or tables Check lists etc.
A Simple Improvement Process n n n Get started. Determine where you are. Determine where you want to be. Make a plan. Execute the plan. Learn lessons and do it again.
IDEAL Model - 1 n Initiating phase n n Stimulus for improvement Set context and establish sponsorship Establish improvement infrastructure Diagnosing phase n n Appraise and characterize current practice Develop recommendations and document phase results
IDEAL Model - 2 n Establishing phase n n set priorities and strategies plan actions establish process action team Acting phase n n n plan, execute, and track installation plan and execute pilots define processes and measures
IDEAL Model - 3 n Learning phase n n document and analyze lessons revise organizational approach
Using CMMI Models with the IDEAL Model - 1 n Initiating phase n n Knowledge of the CMMI models can provide a positive stimulus for improvement and help an organization to establish and sustain the improvement context. Diagnosing phase n The CMMI models provide a yardstick for evaluating organizational maturity.
Using CMMI Models with the IDEAL Model - 2 n Establishing phase n n Acting phase n n The PAs imply a focus for the process improvement teams. CMMI models provide guidance for defining or improving processes. Learning phase n Lessons learned are documented and basis for revision of organizational approach.
Summary n n Process is a key leverage point for improvement. Effective process representation is crucial to process institutionalization. CMM-based improvement programs have provided measurable benefits. The CMM Integrated can be a useful tool for addressing current problems in systems and software engineering.
A Few Words on Terminology n n There is a great deal of commonality among the different CMMI models in different disciplines (for example, systems and software engineering). This module describes characteristics shared by all CMMI staged-representation models, regardless of discipline.
Overview of CMMI Model Objectives n appreciate the context of CMMI models n know key terms used in the CMMI staged representation n know the overall structure of the CMMI staged representation
CMMs n n The first CMM (CMM V 1. 0) was developed for software. Based on this success, CMMs were developed for the disciplines n n n Systems engineering People Integrated product development Software acquisition others
Eexperiences n n Many organizations found several of these models to be useful. They also found n n n Overlap Contradiction Lack of clean interfaces Lack of standardization Different levels of detail This resulted in additional expense to process improvement programs.
Move to Integration - 1 n The CMM Integration Project was formed to n Build an initial set of integrated models n n n Software engineering Systems engineering Integrated product and process development (IPPD) Establish a framework to integrate future models Create an integrated set of associated assessment and training products
Move to Integration - 2 n Source models serving as a basis n n n CMM (software) V 2. 0 Draft C EIA 731 (systems engineering) IPD CMM (IPD) V 0. 9 a
The CMMI Product Development Team n Membership from n n Highly experienced n n n Industry U. S. government Software Engineering Institute Average of 21 years experience From organizations with solid process improvement credentials Diverse backgrounds represented
The CMMI Product Suite n A framework for generating Integrated products n n n Reference models Training products Assessment methods to support product and process improvement These products share n n Common terminology Common components
CMMI Models n Initial areas of focus (disciplines) n n n Systems engineering Software engineering Systems + software engineering + integrated product and process development (IPPD) Representations n n Staged Continuous
- Slides: 84