1 / 84

Software Process Improvements Based on Capability Maturity Model (CMM)

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

nwillie
Download Presentation

Software Process Improvements Based on Capability Maturity Model (CMM)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Process Improvements Based on Capability Maturity Model (CMM) 任 中 浩 博 士

  2. CONTENTS • Introduction to Software Engineering • Fundamentals of Process Improvement • Overview of CMMI Models

  3. 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

  4. Requirements engineering processes • Feasibility studies. • Requirements elicitation and analysis. • Requirements validation. • Requirements management.

  5. Software requirements • Functional and non-functional requirements. • User requirements. • System requirements. • The software requirements document. • Formal Specification

  6. System Models • Context models. • Behavioural models. • Data models. • Object models.

  7. Software prototyping • Prototyping in the software process. • Rapid prototyping techniques. • User interface prototyping.

  8. Formal Specification • Formal specification in the software process. • Interface specification. • Behavioural specification.

  9. DESIGN • Structured Programming • Modularity • Functional Decomposition • Data Structure Design • Data Flow Design • Object-Oriented Design • User Interface Design • Formal Development

  10. DESIGN • Architectural design. • Distributed systems design • Object-oriented design • Real-time software design • Design with Reuse • User interface design

  11. PROGRAMMING PARADIGMS • The Programming Language • Object-Oriented Programming (OOP) • Concurrent Programming

  12. VERIFICATION AND VALIDATION • Verification and validation planning • Software inspections • Automated static analysis • Cleanroom software development

  13. Software testing • Defect testing. • Integration testing. • Object-oriented testing

  14. Critical systems validation • Formal methods and critical systems. • Reliability validation. • Safety assurance. • Security assessment.

  15. 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

  16. 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

  17. Software re-engineering • Source code translation. • Reverse engineering. • Program structure improvement. • Program modularisation. • Data re-engineering.

  18. Configuration management • Configuration management planning. • Change management. • Version and release management. • System building. • CASE tools for configuration management.

  19. Software change • Program evolution dynamics. • Software maintenance. • Architectural evolution.

  20. Process Models • Process iteration. • Software Specification. • Software design and implementation. • Software validation. • Software evolution. • Automated process support.

  21. Project management • Management activities. • Project planning. • Project scheduling. • Risk management.

  22. 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.”

  23. 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.

  24. 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)

  25. 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.

  26. 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

  27. 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

  28. Ideal Case • Applying new software methodologies and technologies. • Develop and deliver reliable, usable software within budget and schedule commitments • High Productivity • High Quality

  29. 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

  30. Quality Leverage Points • Major determinants of product cost, schedule, and quality People Process Technology

  31. 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.

  32. 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"

  33. 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

  34. 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

  35. 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.

  36. Why Focus on Process • Project Management Targets • Cost • Development Time • Productivity • Quality • Benefits • Predictability • Control • Effectiveness

  37. 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

  38. Fuzziness of Software Process • General Criteria • Not the complete framework • I can’t tell you precisely, but I know it when I see it

  39. The Bottom Line-1 • Process improvement should be done to help the business – not for its own sake

  40. 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

  41. Measurable Benefits • The available data is taken from software process improvement efforts. • Results: Boeing Effort estimation • variance is between –20% to +20%

  42. 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

  43. 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

  44. CMMI Models to the Rescue • CMMI models were created to help realize the benefits of process improvement

  45. 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

  46. 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

  47. 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

  48. Two important concepts • Process capability • Pertains to an individual process • Organizational maturity • Pertains to a set of processes

  49. 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

More Related