Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science &...

24
Software Software Engineering Engineering Lecture # 17 Lecture # 17 Tauqeer Ahmed Tauqeer Ahmed Lecturer Lecturer F F ederal ederal U U rdu rdu U U niversity of niversity of A A rts , rts , S S cience & cience & T T echnology , Islamabad echnology , Islamabad

Transcript of Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science &...

Page 1: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Software Software EngineeringEngineering

Lecture # 17Lecture # 17

Tauqeer AhmedTauqeer AhmedLecturer Lecturer

FFederal ederal UUrdu rdu UUniversity of niversity of AArts , rts , SScience & cience & TTechnology , Islamabadechnology , Islamabad

Page 2: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Software Process Software Process ImprovementImprovement

Page 3: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Software ProcessSoftware Process

• a set of activities, methods, a set of activities, methods, practices, and transformations that practices, and transformations that people use to develop and maintain people use to develop and maintain software and the associated software and the associated products (e.g., project plans, design products (e.g., project plans, design documents, code, test cases, and documents, code, test cases, and user manuals). user manuals).

Page 4: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Immature Versus Mature SoftwareImmature Versus Mature SoftwareOrganizationsOrganizations

• The immature software organization is reactionary, and The immature software organization is reactionary, and

managers are usually focused on solving immediate managers are usually focused on solving immediate

crises (better known as fire fighting).crises (better known as fire fighting).

• Schedules and budgets are routinely exceeded because Schedules and budgets are routinely exceeded because

they are not based on realistic estimatesthey are not based on realistic estimates

• In an immature organization, there is no objective basis In an immature organization, there is no objective basis

for judging product quality or for solving product or for judging product quality or for solving product or

process problems.process problems.

Page 5: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Immature Versus Mature SoftwareImmature Versus Mature SoftwareOrganizationsOrganizations

• A mature software organization possesses an organization-A mature software organization possesses an organization-wide ability for managing software development and wide ability for managing software development and

maintenance processesmaintenance processes..• In a mature organization, managers monitor the quality of the In a mature organization, managers monitor the quality of the

softwaresoftware• Schedules and budgets are based on historical performance Schedules and budgets are based on historical performance

and are realistic; the expected results for cost, schedule, and are realistic; the expected results for cost, schedule, functionality, and quality of the product are usually achieved.functionality, and quality of the product are usually achieved.

Page 6: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Some definitionsSome definitions

• Software process capability Software process capability • describes the range of expected results that can be achieved by describes the range of expected results that can be achieved by

following a software processfollowing a software process. .

• Software process performance Software process performance • represents the actual results achieved by following a software process.represents the actual results achieved by following a software process.

• Thus, software process performance focuses on the results achieved, Thus, software process performance focuses on the results achieved, while software process capability focuses on results expected.while software process capability focuses on results expected.

• Software process maturity Software process maturity • is the extent to which a specific process is explicitly defined, managed, is the extent to which a specific process is explicitly defined, managed,

measured, controlled, and effective. Maturity implies a potential for measured, controlled, and effective. Maturity implies a potential for growth in capability and indicates both the richness of an organization's growth in capability and indicates both the richness of an organization's software process and the consistency with which it is applied in projects software process and the consistency with which it is applied in projects throughout the organization.throughout the organization.

Page 7: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Steps in Software Process Steps in Software Process ImprovementImprovement

• Examine organization's need - identify scope of SPI and Examine organization's need - identify scope of SPI and prioritiespriorities

• Initiate process improvement - preliminary planInitiate process improvement - preliminary plan• Prepare and conduct process assessmentPrepare and conduct process assessment• Analyze results and derive action planAnalyze results and derive action plan• Implement improvementsImplement improvements• Confirm improvements and sustain improvement gainsConfirm improvements and sustain improvement gains• Monitor performance and initiate further improvements.Monitor performance and initiate further improvements.

Page 8: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Capability Maturity Model Capability Maturity Model base for Software Process base for Software Process

ImprovementImprovement• The CMM is a description of the stages through which The CMM is a description of the stages through which

software organizations evolve as they define, implement, software organizations evolve as they define, implement, measure, control, and improve their software processes.measure, control, and improve their software processes.

• The CMM is a guide for selecting process improvement The CMM is a guide for selecting process improvement strategies by facilitating:strategies by facilitating:• determination of current process capabilities, anddetermination of current process capabilities, and• identification of the issues most critical to software quality identification of the issues most critical to software quality

and process improvement.and process improvement.

[CMM, developed by the Software Engineering Institute at [CMM, developed by the Software Engineering Institute at Carnegie-Mellon University]Carnegie-Mellon University]

Page 9: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Goals of the CMMGoals of the CMM

• CMM supportsCMM supports• setting goals for senior managementsetting goals for senior management• identifying priorities for process improvementidentifying priorities for process improvement• identifying process capabilities of organizationsidentifying process capabilities of organizations• predicting future process performance of projectspredicting future process performance of projects• industry-wide comparisons of the state of practiceindustry-wide comparisons of the state of practice

• CMM defines a series of evolutionary plateaus on the CMM defines a series of evolutionary plateaus on the path to becoming a mature software organization, each path to becoming a mature software organization, each level is a layer in the foundation for continuous process level is a layer in the foundation for continuous process improvement.improvement.

Page 10: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

The Five Maturity LevelsThe Five Maturity Levels

• Initial Initial (1) - undisciplined process(1) - undisciplined process

• Repeatable Repeatable (2) - disciplined process(2) - disciplined process

• Defined Defined (3) - standard, consistent process(3) - standard, consistent process

• Managed Managed (4) - predictable process(4) - predictable process

• Optimizing Optimizing (5) - continuously improving process(5) - continuously improving process

• Organizations can progress from lower to higher levels Organizations can progress from lower to higher levels

as they carry out SPI.as they carry out SPI.

Page 11: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

The Five Levels of Software Process maturityThe Five Levels of Software Process maturity

Page 12: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Level 1 - The Initial LevelLevel 1 - The Initial Level

• Level 1 organizations frequently develop products Level 1 organizations frequently develop products that work, even though they may be over the that work, even though they may be over the budget and schedule. budget and schedule.

• Success in Level 1 organizations depends on the Success in Level 1 organizations depends on the competence and heroics of the people in the competence and heroics of the people in the organization and cannot be repeated unless the organization and cannot be repeated unless the same competent individuals are assigned to the same competent individuals are assigned to the next project. next project.

• Thus, at Level 1, capability is a characteristic of Thus, at Level 1, capability is a characteristic of the individuals, not of the organization.the individuals, not of the organization.

Page 13: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Level 2 - The Repeatable LevelLevel 2 - The Repeatable Level• Software project standards are defined, and the organization ensures Software project standards are defined, and the organization ensures

they are faithfully followed. they are faithfully followed.

• Organizational requirement for achieving Level 2 is that there are Organizational requirement for achieving Level 2 is that there are policies that guide the projects in establishing the appropriate policies that guide the projects in establishing the appropriate management processes.management processes.

• The software process capability of Level 2 organizations can be The software process capability of Level 2 organizations can be summarized as disciplined because planning and tracking of the summarized as disciplined because planning and tracking of the software project is stable and earlier successes can be repeated.software project is stable and earlier successes can be repeated.

• • The project's process is under the effective control of a project The project's process is under the effective control of a project

management system, following realistic plans based on the management system, following realistic plans based on the performance of previous projects.performance of previous projects.

Page 14: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Level 3 - The Defined LevelLevel 3 - The Defined Level

• The software process capability of Level 3 The software process capability of Level 3 organizations can be summarized as standard and organizations can be summarized as standard and consistent because both software engineering and consistent because both software engineering and management activities are stable and repeatable. management activities are stable and repeatable.

• Within established product lines, cost, schedule, Within established product lines, cost, schedule, and functionality are under control, and software and functionality are under control, and software quality is tracked. quality is tracked.

• This process capability is based on a common, This process capability is based on a common, organization-wide understanding of the activities, organization-wide understanding of the activities, roles, and responsibilities in a defined software roles, and responsibilities in a defined software process.process.

Page 15: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Level 4 - The Managed LevelLevel 4 - The Managed Level• The software process capability of Level 4 organizations The software process capability of Level 4 organizations

can be summarized as being quantifiable and predictable can be summarized as being quantifiable and predictable because the process is measured and operates within because the process is measured and operates within measurable limits. measurable limits.

• This level of process capability allows an organization to This level of process capability allows an organization to predict trends in process and product quality within the predict trends in process and product quality within the quantitative bounds of these limits. Because the process is quantitative bounds of these limits. Because the process is both stable and measured, when some exceptional both stable and measured, when some exceptional circumstance occurs, the "special cause“ of the variation circumstance occurs, the "special cause“ of the variation can be identified and addressed. can be identified and addressed.

• When the known limits of the process are exceeded, action When the known limits of the process are exceeded, action is taken to correct the situation. Software products are of is taken to correct the situation. Software products are of predictably high quality.predictably high quality.

Page 16: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Level 5 - The Optimizing LevelLevel 5 - The Optimizing Level• The software process capability of Level 5 organizations can The software process capability of Level 5 organizations can

be characterized as continuously improving because Level 5 be characterized as continuously improving because Level 5 organizations are continuously striving to improve the range organizations are continuously striving to improve the range of their process capability, thereby improving the process of their process capability, thereby improving the process performance of their projects. performance of their projects.

• Improvement occurs both by incremental advancements in Improvement occurs both by incremental advancements in the existing process and by innovations using new the existing process and by innovations using new technologies and methods. technologies and methods.

• Technology and process improvements are planned and Technology and process improvements are planned and managed as ordinary business activities.managed as ordinary business activities.

Page 17: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Internal Structure of the Maturity LevelsInternal Structure of the Maturity Levels

Page 18: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Internal Structure of the Internal Structure of the Maturity LevelsMaturity Levels

Maturity Levels: Maturity Levels:

A 5-level process maturity continuum - where A 5-level process maturity continuum - where the uppermost (5th) level is a notional ideal the uppermost (5th) level is a notional ideal state where processes would be systematically state where processes would be systematically managed by a combination of process managed by a combination of process optimization and continuous process optimization and continuous process improvement. improvement.

Key Process Areas: Key Process Areas:

A Key Process Area (KPA) identifies a cluster of A Key Process Area (KPA) identifies a cluster of related activities that, when performed together. related activities that, when performed together. achieve a set of goals considered important. achieve a set of goals considered important.

Page 19: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Internal Structure of the Internal Structure of the Maturity LevelsMaturity Levels

GoalsGoals: :

The goals of a key process area summarize the The goals of a key process area summarize the states that must exist for that key process states that must exist for that key process area to have been implemented in an effective area to have been implemented in an effective and lasting way. and lasting way.

The extent to which the goals have been The extent to which the goals have been accomplished is an indicator of how much accomplished is an indicator of how much capability the organization has established at capability the organization has established at that maturity level. that maturity level.

The goals signify the scope, boundaries, and The goals signify the scope, boundaries, and intent of each key process area.intent of each key process area.

Page 20: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Internal Structure of the Internal Structure of the Maturity LevelsMaturity Levels

Common Features: Common Features:

The common features include practices The common features include practices that implement and institutionalize a key that implement and institutionalize a key process area. There are five types of process area. There are five types of common features: common features:

commitment to Perform, commitment to Perform, Ability to Perform, Ability to Perform, Activities Performed, Activities Performed, Measurement and Analysis, Measurement and Analysis, Verifying Implementation.Verifying Implementation.

Page 21: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Internal Structure of the Internal Structure of the Maturity LevelsMaturity Levels

Key Practices: Key Practices:

The key practices describe the elements The key practices describe the elements of infrastructure and practice that of infrastructure and practice that contribute most effectively to the contribute most effectively to the implementation and institutionalization implementation and institutionalization of the KPAs.of the KPAs.

Page 22: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

The CMM Key Process Areas

•Identify a cluster of related activities that, when

performed collectively, achieve a set of goals

considered important for enhancing process capability

•Defined to reside at a single maturity level

• Identify the issues that must be addressed to achieve

a maturity level

• 18 KPAs in the CMM

Page 23: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Four Categories of CMMI Process AreasFour Categories of CMMI Process AreasProcess areas can be grouped into four categories:Process areas can be grouped into four categories: Process Management Process Management

Organizational Process FocusOrganizational Process Focus Organizational Process Definition +IPPDOrganizational Process Definition +IPPD Organizational TrainingOrganizational Training Organizational Process PerformanceOrganizational Process Performance Organizational Innovation and DeploymentOrganizational Innovation and Deployment

Project Management Project Management Project PlanningProject Planning Project Monitoring and ControlProject Monitoring and Control Supplier Agreement ManagementSupplier Agreement Management Integrated Project Management +IPPDIntegrated Project Management +IPPD Risk ManagementRisk Management Quantitative Project ManagementQuantitative Project Management

Page 24: Software Engineering Lecture # 17 Tauqeer Ahmed Lecturer Federal Urdu University of Arts, Science & Technology, Islamabad.

Four Categories of CMMI Process AreasFour Categories of CMMI Process AreasProcess areas can be grouped into four categories:Process areas can be grouped into four categories: Engineering Engineering

Requirements DevelopmentRequirements Development Requirements ManagementRequirements Management Technical SolutionTechnical Solution Product IntegrationProduct Integration VerificationVerification ValidationValidation

SupportSupport Configuration ManagementConfiguration Management Process and Product Quality AssuranceProcess and Product Quality Assurance Measurement and AnalysisMeasurement and Analysis Decision Analysis and ResolutionDecision Analysis and Resolution Causal Analysis and ResolutionCausal Analysis and Resolution