870 likes | 1.11k Views
Software Process Improvements Based on Capability Maturity Model (CMM). 任 中 浩 博 士. CONTENTS. Introduction to Software Engineering Fundamentals of Process Improvement Overview of CMMI Models. Course Objectives. understand the importance of having defined process
E N D
Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士
CONTENTS • Introduction to Software Engineering • Fundamentals of Process Improvement • Overview of CMMI Models
Course Objectives • 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 • Feasibility studies. • Requirements elicitation and analysis. • Requirements validation. • Requirements management.
Software requirements • Functional and non-functional requirements. • User requirements. • System requirements. • The software requirements document. • Formal Specification
System Models • Context models. • Behavioural models. • Data models. • Object models.
Software prototyping • Prototyping in the software process. • Rapid prototyping techniques. • User interface prototyping.
Formal Specification • Formal specification in the software process. • Interface specification. • Behavioural specification.
DESIGN • Structured Programming • Modularity • Functional Decomposition • Data Structure Design • Data Flow Design • Object-Oriented Design • User Interface Design • Formal Development
DESIGN • Architectural design. • Distributed systems design • Object-oriented design • Real-time software design • Design with Reuse • User interface design
PROGRAMMING PARADIGMS • The Programming Language • Object-Oriented Programming (OOP) • Concurrent Programming
VERIFICATION AND VALIDATION • Verification and validation planning • Software inspections • Automated static analysis • Cleanroom software development
Software testing • Defect testing. • Integration testing. • Object-oriented testing
Critical systems validation • Formal methods and critical systems. • Reliability validation. • Safety assurance. • Security assessment.
MANAGEMENT • Managing people • Limits to thinking. • Group working. • Choosing and keeping people. • The People Capability Maturity Model. • Software cost estimation • Productivity. • Estimation techniques. • Algorithmic cost modelling. • Project duration and staffing
MANAGEMENT • Quality management • Quality assurance and standards. • Quality planning. • Quality control. • Software measurement and metrics. • Process Improvement. • Process and product quality. • Process analysis and modelling. • Process measurement. • The SEI Process Capability Maturity Model. • Process classification
Software re-engineering • Source code translation. • Reverse engineering. • Program structure improvement. • Program modularisation. • Data re-engineering.
Configuration management • Configuration management planning. • Change management. • Version and release management. • System building. • CASE tools for configuration management.
Software change • Program evolution dynamics. • Software maintenance. • Architectural evolution.
Process Models • Process iteration. • Software Specification. • Software design and implementation. • Software validation. • Software evolution. • Automated process support.
Project management • Management activities. • Project planning. • Project scheduling. • Risk management.
Software Trends (1) • Demands for software-intensive systems has been growing consistently and steadily • More and more, software costs dominate these systems • 1995 DoD cost figures • Software: $35.7B • Hardware: $6.8B • Increasingly, software products and services are acquired instead of developed “in-house.”
Software Outsourcing Trend (2) • Gartner Group • Worldwide IT outsourcing - reach $1T in 4 years. • Outsourcing of retail financial services in the North America - from $8B in 1998 to $22B in 2002. • IDC • IT outsourcing – reach $56B in 2000 and $100B by 2005. • Forrester Research • 64% of all IT outsourcing goes through U.S. based companies that have relationships with development shops abroad.
The State of Software Development • 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 • Most successful projects rely on expertise established with similar systems • Lack of documented processes make repeatability difficult • Development efforts for unprecedented or significantly different systems often encounter problems.
What is the Problem? -1 • Systems are increasingly dependent on software, yet the brief history of software development has been filled with problems. • Cost overruns • Schedule slippage • Failure to achieve performance objectives • Can not realize benefits of new technologies and tools
What is the Problem? -2 • Government, industry, and the marketplace require software to be developed • Better • Faster • Cheaper • The workforce is already stressed out, and throwing technology at the problem hasn't worked
Ideal Case • 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 • 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 • Major determinants of product cost, schedule, and quality People Process Technology
Definition of Process (製程) • Process: • 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 • 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 • Process provides a constructive, high-leverage focus... • As opposed to a focus on people • your work force, on the average, is as "good" as it is trained to be • working harder is not the answer • working smarter, through process, is the answer
Why Focus on Process? - 2 • As opposed to a focus on technology • technology applied without a suitable roadmap will not result in significant payoff • technology provides most benefit in context of appropriate process roadmap
Why Focus on Process? - 3 • The process management premise: • 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 • 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 • Project Management Targets • Cost • Development Time • Productivity • Quality • Benefits • Predictability • Control • Effectiveness
Process Notation Schemes • 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 • General Criteria • Not the complete framework • I can’t tell you precisely, but I know it when I see it
The Bottom Line-1 • Process improvement should be done to help the business – not for its own sake
The Bottom Line-2 • Improvement means different things to different organizations. • what are your business goals? • how do you measure process ? • Improvement is a long-term, strategic effort. • what is the expected impact on the bottom line? • How will impact be measured
Measurable Benefits • The available data is taken from software process improvement efforts. • Results: Boeing Effort estimation • variance is between –20% to +20%
Other Observed Benefits of Process Improvement Cited by Hughes, Tinker AFB, Schlumberger, Raytheon • improved working conditions • improved employee morale • less turnover • fewer overtime hours • better and increased communication • decreased risk • increased customer satisfaction
A Measurable Return • 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 • CMMI models were created to help realize the benefits of process improvement
CMMI-Based Improvement • 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 • based on widely-accepted models with a proven history of benefits
What is a CMMI Model • Framework that contains the key elements of effective processes for the software engineering • 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 • A CMMI model provides an integrated view of process improvement across multiple disciplines (e.g. software engineering and systems engineering) • The CMMI can help • set process improvement goals and priorities • provide guidance for quality processes • provide a yardstick for assessing current practices
Two important concepts • Process capability • Pertains to an individual process • Organizational maturity • Pertains to a set of processes
Process Capability • 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