sw engineering process swebok. software engineering process the actual set of activities performed...

45
SW Engineering SW Engineering Process Process SWEBOK

Post on 19-Dec-2015

222 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

SW Engineering ProcessSW Engineering Process

SWEBOK

Page 2: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

SOFTWARE ENGINEERING SOFTWARE ENGINEERING PROCESSPROCESS

The actual set of activities performed The actual set of activities performed within an organization, which could be within an organization, which could be viewed as one process, especially from viewed as one process, especially from within the organization. within the organization.

Page 3: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

The objective of managing software life The objective of managing software life cycle processes is to implement new or cycle processes is to implement new or better processes in actual practices, be better processes in actual practices, be they individual, project, or organizational. they individual, project, or organizational.

Page 4: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one
Page 5: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

11

Process Implementation and ChangeProcess Implementation and Change

Page 6: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

1 Process Implementation and 1 Process Implementation and ChangeChange

This subarea focuses on organizational change. It describes the This subarea focuses on organizational change. It describes the infrastructure, activities, models, and practical considerations for infrastructure, activities, models, and practical considerations for process implementation and change. process implementation and change.

Described here is the situation in which processes are deployed for Described here is the situation in which processes are deployed for the first time (for example, introducing an inspection process within the first time (for example, introducing an inspection process within a project or a method covering the complete life cycle), and where a project or a method covering the complete life cycle), and where current processes are changed (for example, introducing a tool, or current processes are changed (for example, introducing a tool, or optimizing a procedure). This can also be termed process evolution. optimizing a procedure). This can also be termed process evolution.

In both instances, existing practices have to be modified. If the In both instances, existing practices have to be modified. If the modifications are extensive, then changes in the organizational modifications are extensive, then changes in the organizational culture may also be necessary.culture may also be necessary.

Page 7: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

1.1 Process Infrastructure1.1 Process Infrastructure To establish software life cycle processes, it is necessary to have an To establish software life cycle processes, it is necessary to have an

appropriate infrastructure in place, meaning that appropriate infrastructure in place, meaning that the resources must be available (competent staff, tools, and funding) the resources must be available (competent staff, tools, and funding)

and and the responsibilities assigned. the responsibilities assigned.

When these tasks have been completed, it is an indication of When these tasks have been completed, it is an indication of management’s commitment to, and ownership of, the software management’s commitment to, and ownership of, the software engineering process effort. engineering process effort.

Various committees may have to be established, such as a steering Various committees may have to be established, such as a steering committee to oversee the software engineering process effort. committee to oversee the software engineering process effort.

Two main types of infrastructure are used in practice: the Software Two main types of infrastructure are used in practice: the Software Engineering Process Group and the Experience Factory.Engineering Process Group and the Experience Factory.

Page 8: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

1.1.1 Software Engineering 1.1.1 Software Engineering Process Group (SEPG)Process Group (SEPG)

The SEPG is intended to be the central The SEPG is intended to be the central focus of software engineering process focus of software engineering process improvement, and it has a number of improvement, and it has a number of responsibilities in terms of initiating and responsibilities in terms of initiating and sustaining it. sustaining it.

Page 9: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

1.1.2 Experience Factory (EF)1.1.2 Experience Factory (EF) The concept of the EF separates the project organization (the The concept of the EF separates the project organization (the

software development organization, for example) from the software development organization, for example) from the improvement organization. improvement organization.

The project organization focuses on the development and The project organization focuses on the development and maintenance of software, while the EF is concerned with software maintenance of software, while the EF is concerned with software engineering process improvement.engineering process improvement.

The EF is intended to institutionalize the collective learning of an The EF is intended to institutionalize the collective learning of an organization by developing, updating, and delivering to the project organization by developing, updating, and delivering to the project organization experience packages (for example, guides, models, organization experience packages (for example, guides, models, and training courses), also referred to as process assets. and training courses), also referred to as process assets.

The project organization offers the EF their products, the plans used The project organization offers the EF their products, the plans used in their development, and the data gathered during development in their development, and the data gathered during development and operation. and operation.

Page 10: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

1.2 Software Process 1.2 Software Process Management CycleManagement Cycle

Establish Process InfrastructureEstablish Process Infrastructure consists of establishing commitment to process implementation and change consists of establishing commitment to process implementation and change

(including obtaining management buy-in) and putting in place an appropriate (including obtaining management buy-in) and putting in place an appropriate infrastructure (resources and responsibilities) to make it happen. infrastructure (resources and responsibilities) to make it happen.

PlanningPlanning to understand the current business objectives and process needs of the to understand the current business objectives and process needs of the

individual, project, or organization, to identify its strengths and weaknesses, and individual, project, or organization, to identify its strengths and weaknesses, and to make a plan for process implementation and change. to make a plan for process implementation and change.

Process Implementation and Change Process Implementation and Change to execute the plan, deploy new processes (which may involve, for example, the to execute the plan, deploy new processes (which may involve, for example, the

deployment of tools and training of staff), and/or change existing processes. deployment of tools and training of staff), and/or change existing processes.

Process EvaluationProcess Evaluation finding out how well the implementation and change went, whether or not the finding out how well the implementation and change went, whether or not the

expected benefits materialized. The results are then used as input for expected benefits materialized. The results are then used as input for subsequent cycles. subsequent cycles.

Page 11: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

1.3 Models For Process 1.3 Models For Process Implementation And ChangeImplementation And Change

Quality Improvement Paradigm (QIP) Quality Improvement Paradigm (QIP) IDEAL model IDEAL model

Page 12: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

1.3.1 Quality Improvement 1.3.1 Quality Improvement Paradigm (QIP) Paradigm (QIP)

Three phase model: Three phase model:

Understanding: Understanding: Improve insight into the software process and its products by characterizing Improve insight into the software process and its products by characterizing

the production environment, including types of software developed, the production environment, including types of software developed, problems defined, process characteristics, and product characteristics. problems defined, process characteristics, and product characteristics.

Assessing: Assessing: Measure the impact of available technologies and process change on the Measure the impact of available technologies and process change on the

products generated. Determine which technologies are beneficial and products generated. Determine which technologies are beneficial and appropriate to the particular environment and, more importantly, how the appropriate to the particular environment and, more importantly, how the technologies (or processes) must be refined to best match the process with technologies (or processes) must be refined to best match the process with the environment. the environment.

Packaging: Packaging: After identifying process improvements, package the technology for After identifying process improvements, package the technology for

application in the production organization. This includes the development application in the production organization. This includes the development and enhancement of standards, training, and development policies. and enhancement of standards, training, and development policies.

Page 13: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

QIPQIP

Page 14: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

1.3.2 IDEAL Model 1.3.2 IDEAL Model Initiating, Diagnosing, Establishing, Acting & Learning Initiating, Diagnosing, Establishing, Acting & Learning

The IDEALSM model is an organizational improvement model that serves as a The IDEALSM model is an organizational improvement model that serves as a roadmap for initiating, planning, and implementing improvement actions. The IDEAL roadmap for initiating, planning, and implementing improvement actions. The IDEAL model is named for the five phases it describes: initiating, diagnosing, establishing, model is named for the five phases it describes: initiating, diagnosing, establishing, acting, and learning.acting, and learning.

The IDEAL model forms an infrastructure to guide organizations in planning and The IDEAL model forms an infrastructure to guide organizations in planning and

implementing an effective software process improvement program, and is the implementing an effective software process improvement program, and is the founding strategy employed in delivering many Software Engineering Institute (SEI) founding strategy employed in delivering many Software Engineering Institute (SEI) services. Organizations that follow the IDEAL approach to software process services. Organizations that follow the IDEAL approach to software process improvement (SPI) can effectively integrate SEI technologies, courses, workshops, improvement (SPI) can effectively integrate SEI technologies, courses, workshops, and services into a comprehensive method for managing and improving their overall and services into a comprehensive method for managing and improving their overall capacity.capacity.

IDEAL offers a high-level approach to software process improvement (SPI). IDEAL-IDEAL offers a high-level approach to software process improvement (SPI). IDEAL-

Based New Technology Rollout (INTRo) takes advantage of the lessons learned from Based New Technology Rollout (INTRo) takes advantage of the lessons learned from using IDEAL in SPI, and extends and applies those lessons to the domain of using IDEAL in SPI, and extends and applies those lessons to the domain of information technology (IT) package selection and deployment. INTRo goes further information technology (IT) package selection and deployment. INTRo goes further than IDEAL by providing a greater level of detail, content, and support for users.than IDEAL by providing a greater level of detail, content, and support for users.

Page 15: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

IDEALIDEAL

Page 16: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

1.4 Practical Considerations Process implementation and change constitute an instance of organizational

change. Most successful organizational change efforts treat the change as a project in its own right, with appropriate plans, monitoring, and review.

Guidelines about process implementation and change within software engineering organizations, include:

action planning, training, management sponsorship, commitment, and the selection of pilot projects

Process implementation and change can also be seen as an instance of consulting (either internal or external).

One can also view organizational change from the perspective of technology transfer.

There are two ways of approaching the evaluation of process implementation and change, either in terms of changes to the process itself or in terms of changes to the process outcomes (for example, measuring the return on investment from making the change).

Page 17: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

22

Process DefinitionProcess Definition

Page 18: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

2 Process Definition2 Process Definition A process definition can be a procedure, a policy, or a standard. A process definition can be a procedure, a policy, or a standard.

Software life cycle processes are defined for a number of reasons, including Software life cycle processes are defined for a number of reasons, including increasing the quality of the product, facilitating human understanding and increasing the quality of the product, facilitating human understanding and communication, supporting process improvement, supporting process communication, supporting process improvement, supporting process management, providing automated process guidance, and providing management, providing automated process guidance, and providing automated execution support. automated execution support.

The types of process definitions required will depend, at least partially, on The types of process definitions required will depend, at least partially, on the reason for the definition.the reason for the definition.

It should also be noted that the context of the project and organization will It should also be noted that the context of the project and organization will determine the type of process definition that is most useful. determine the type of process definition that is most useful.

Important variables to consider include the nature of the work (for example, Important variables to consider include the nature of the work (for example, maintenance or development), the application domain, the life cycle model, maintenance or development), the application domain, the life cycle model, and the maturity of the organization.and the maturity of the organization.

Page 19: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

2.1 Software Life Cycle Models2.1 Software Life Cycle Models

Software life cycle models serve as a high-level definition of the Software life cycle models serve as a high-level definition of the phases that occur during development. phases that occur during development.

They are not aimed at providing detailed definitions but at They are not aimed at providing detailed definitions but at highlighting the key activities and their interdependencies. highlighting the key activities and their interdependencies.

Examples of software life cycle models are Examples of software life cycle models are the waterfall model, the waterfall model, the throwaway prototyping model, the throwaway prototyping model, evolutionary development, evolutionary development, incremental/iterative delivery, incremental/iterative delivery, the spiral model, the spiral model, the reusable software model, and the reusable software model, and automated software synthesis. automated software synthesis.

Page 20: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

2.2 Software Life Cycle 2.2 Software Life Cycle ProcessesProcesses

Definitions of software life cycle processes tend to be more detailed Definitions of software life cycle processes tend to be more detailed than software life cycle models. than software life cycle models.

However, software life cycle processes do not attempt to order their However, software life cycle processes do not attempt to order their processes in time. processes in time.

This means that, in principle, the software life cycle processes can be This means that, in principle, the software life cycle processes can be arranged to fit any of the software life cycle models. arranged to fit any of the software life cycle models.

Examples:Examples: IEEE Std 1219-1998 and ISO 14764: 1998 Software Maintenance Process IEEE Std 1219-1998 and ISO 14764: 1998 Software Maintenance Process IEEE Std 1540: Software Risk ManagementIEEE Std 1540: Software Risk Management IEEE Std 1517: Software Reuse ProcessesIEEE Std 1517: Software Reuse Processes ISO/IEC 15939: Software Measurement ProcessISO/IEC 15939: Software Measurement Process

Page 21: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

2.3. Notations for Process 2.3. Notations for Process DefinitionsDefinitions

Processes can be defined at different levels of abstraction, for example,Processes can be defined at different levels of abstraction, for example, generic definitions vs. adapted definitions, generic definitions vs. adapted definitions, descriptive vs. prescriptive vs. proscriptivedescriptive vs. prescriptive vs. proscriptive

Various elements of a process can be defined, for example, Various elements of a process can be defined, for example, activities, products (artifacts), and resources. activities, products (artifacts), and resources.

There are a number of notations being used to define processes.There are a number of notations being used to define processes.

A key difference between them is in the type of information the frameworks define, capture, and A key difference between them is in the type of information the frameworks define, capture, and use. use.

The software engineer should be aware of the following approaches: The software engineer should be aware of the following approaches: data flow diagrams, in terms of process purpose and outcomes, as a list of processes decomposed into data flow diagrams, in terms of process purpose and outcomes, as a list of processes decomposed into

constituent activities and tasks defined in natural language constituent activities and tasks defined in natural language Actor-Dependency modeling (Yu94), Actor-Dependency modeling (Yu94), SADT notation SADT notation Petri netsPetri nets IDEF0 (IEEE 1320.1-98), IDEF0 (IEEE 1320.1-98), rule-based. rule-based.

More recently, a process modeling standard has been published by the OMG which is intended More recently, a process modeling standard has been published by the OMG which is intended to harmonize modeling notations. This is termed the SPEM (Software Process Engineering Meta-to harmonize modeling notations. This is termed the SPEM (Software Process Engineering Meta-Model) specification.Model) specification.

Page 22: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

2.4 Process Adaptation2.4 Process Adaptation It is important to note that predefined processesIt is important to note that predefined processes

—even standardized ones—must be adapted to —even standardized ones—must be adapted to local needs, for example, local needs, for example, organizational context, organizational context, project size, project size, regulatory requirements, regulatory requirements, industry practices, and industry practices, and corporate cultures. corporate cultures.

Some standards, such as IEEE/EIA 12207, Some standards, such as IEEE/EIA 12207, contain mechanisms and recommendations for contain mechanisms and recommendations for accomplishing the adaptation.accomplishing the adaptation.

Page 23: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

2.5 Automation2.5 Automation Automated tools either support the execution of the process Automated tools either support the execution of the process

definitions or they provide guidance to humans performing the definitions or they provide guidance to humans performing the defined processes. defined processes.

In cases where process analysis is performed, some tools allow In cases where process analysis is performed, some tools allow different types of simulations (for example, discrete event different types of simulations (for example, discrete event simulation).simulation).

In addition, there are tools which support each of the above process In addition, there are tools which support each of the above process definition notations. definition notations.

Moreover, these tools can execute the process definitions to provide Moreover, these tools can execute the process definitions to provide automated support to the actual processes, or to fully automate automated support to the actual processes, or to fully automate them in some instances. them in some instances.

Page 24: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

33

Process AssessmentProcess Assessment

Page 25: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

3 Process Assessment3 Process Assessment

Process assessment is carried out using Process assessment is carried out using both an assessment model and an both an assessment model and an assessment method. assessment method.

In some instances, the term “appraisal” is In some instances, the term “appraisal” is used instead of assessment, and the term used instead of assessment, and the term “capability evaluation” is used when the “capability evaluation” is used when the appraisal is for the purpose of awarding a appraisal is for the purpose of awarding a contract.contract.

Page 26: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

3.1 Process Assessment Models3.1 Process Assessment Models An assessment model captures what is recognized as good practices. These practices may An assessment model captures what is recognized as good practices. These practices may

pertain to technical software engineering activities only, or may also refer to, for example, pertain to technical software engineering activities only, or may also refer to, for example, management, systems engineering, and human resources management activities as well.management, systems engineering, and human resources management activities as well.

ISO/IEC 15504 [ISO15504-98] defines an exemplar assessment model and conformance ISO/IEC 15504 [ISO15504-98] defines an exemplar assessment model and conformance requirements on other assessment models. Specific assessment models available and in use are requirements on other assessment models. Specific assessment models available and in use are SW-CMM, CMMI, and Bootstrap. SW-CMM, CMMI, and Bootstrap.

Many other capability and maturity models have been defined—for example, for design, Many other capability and maturity models have been defined—for example, for design, documentation, and formal methods, to name a few. documentation, and formal methods, to name a few.

ISO 9001 is another common assessment model which has been applied by software ISO 9001 is another common assessment model which has been applied by software organizations (ISO9001-00).organizations (ISO9001-00).

A maturity model for systems engineering has also been developed, which would be useful where A maturity model for systems engineering has also been developed, which would be useful where a project or organization is involved in the development and maintenance of systems, including a project or organization is involved in the development and maintenance of systems, including software (EIA/IS731-99).software (EIA/IS731-99).

There are two general architectures for an assessment model that make different assumptions There are two general architectures for an assessment model that make different assumptions about the order in which processes must be assessed: continuous and staged (Pau94). They are about the order in which processes must be assessed: continuous and staged (Pau94). They are very different, and should be evaluated by the organization considering them to determine which very different, and should be evaluated by the organization considering them to determine which would be the most pertinent to their needs and objectives.would be the most pertinent to their needs and objectives.

CMMI for Development, CMMI for Acquisition, CMMI for Services are the latest Process CMMI for Development, CMMI for Acquisition, CMMI for Services are the latest Process Assemssment Models from SEI, CMU.Assemssment Models from SEI, CMU.

Page 27: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

3.2 Process Assessment 3.2 Process Assessment MethodsMethods

In order to perform an assessment, a specific assessment method In order to perform an assessment, a specific assessment method needs to be followed to produce a quantitative score which needs to be followed to produce a quantitative score which characterizes the capability of the process (or maturity of the characterizes the capability of the process (or maturity of the organization).organization).

The CBA-IPI assessment method, for example, focuses on process The CBA-IPI assessment method, for example, focuses on process improvement, and the SCE method focuses on evaluating the improvement, and the SCE method focuses on evaluating the capability of suppliers. Both of these were developed for the SW-capability of suppliers. Both of these were developed for the SW-CMM. CMM.

The SCAMPI methods are geared toward CMMI assessments. The The SCAMPI methods are geared toward CMMI assessments. The activities performed during an assessment, the distribution of effort activities performed during an assessment, the distribution of effort on these activities, as well as the atmosphere during an assessment on these activities, as well as the atmosphere during an assessment are different when they are for improvement than when they are for are different when they are for improvement than when they are for a contract award.a contract award.

Page 28: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

44

Process and Product MeasurementProcess and Product Measurement

Page 29: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4 Process and Product 4 Process and Product MeasurementMeasurement

To assess the achievement of process and To assess the achievement of process and product improvement effortsproduct improvement efforts

Measurement can be performed to support the Measurement can be performed to support the initiation of process implementation and change initiation of process implementation and change or to evaluate the consequences of process or to evaluate the consequences of process implementation and change, or it can be implementation and change, or it can be performed on the product itself. performed on the product itself.

Measurement is always relevant to an Measurement is always relevant to an established baselineestablished baseline

Page 30: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.1 Process Measurement4.1 Process Measurement quantitative information about the process is collected, analyzed, quantitative information about the process is collected, analyzed,

and interpreted. and interpreted.

Measurement is used to identify the strengths and weaknesses of Measurement is used to identify the strengths and weaknesses of processes and to evaluate processes after they have been processes and to evaluate processes after they have been implemented and/or changed.implemented and/or changed.

Process measurement is useful for managing a software Process measurement is useful for managing a software engineering project. Here, the focus is on process measurement for engineering project. Here, the focus is on process measurement for the purpose of process implementation and change.the purpose of process implementation and change.

The process has an impact on project outcomes. The process has an impact on project outcomes.

Not every process will have a positive impact on all outcomes. For Not every process will have a positive impact on all outcomes. For example, the introduction of software inspections may reduce example, the introduction of software inspections may reduce testing effort and cost, but may increase elapsed time if each testing effort and cost, but may increase elapsed time if each inspection introduces long delays due to the scheduling of large inspection introduces long delays due to the scheduling of large inspection meetings. inspection meetings.

Page 31: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

While some effort can be made to assess the utilization of tools and hardware, the primary While some effort can be made to assess the utilization of tools and hardware, the primary resource that needs to be managed in software engineering is personnel. As a result, the main resource that needs to be managed in software engineering is personnel. As a result, the main measures of interest are those related to the productivity of teams or processes (for example, measures of interest are those related to the productivity of teams or processes (for example, using a measure of function points produced per unit of person-effort) and their associated levels using a measure of function points produced per unit of person-effort) and their associated levels of experience in software engineering in general, and perhaps in particular technologies. of experience in software engineering in general, and perhaps in particular technologies.

Process outcomes could, for example, be product quality (faults per KLOC (Kilo Lines of Code) or Process outcomes could, for example, be product quality (faults per KLOC (Kilo Lines of Code) or per Function Point (FP)), maintainability (the effort to make a certain type of change), productivity per Function Point (FP)), maintainability (the effort to make a certain type of change), productivity (LOC (Lines of Code) or Function Points per person-month), time-to-market, or customer (LOC (Lines of Code) or Function Points per person-month), time-to-market, or customer satisfaction (as measured through a customer survey). This relationship depends on the satisfaction (as measured through a customer survey). This relationship depends on the particular context (for example, size of the organization or size of the project).particular context (for example, size of the organization or size of the project).

In general, we are most concerned about process outcomes. However, in order to achieve the In general, we are most concerned about process outcomes. However, in order to achieve the process outcomes that we desire (for example, better quality, better maintainability, greater process outcomes that we desire (for example, better quality, better maintainability, greater customer satisfaction), we have to implement the appropriate process.customer satisfaction), we have to implement the appropriate process.

Of course, it is not only the process that has an impact on outcomes. Other factors, such as the Of course, it is not only the process that has an impact on outcomes. Other factors, such as the capability of the staff and the tools that are used, play an important role. When evaluating the capability of the staff and the tools that are used, play an important role. When evaluating the impact of a process change, for example, it is important to factor out these other influences. impact of a process change, for example, it is important to factor out these other influences.

Furthermore, the extent to which the process is institutionalized (that is, process fidelity) is Furthermore, the extent to which the process is institutionalized (that is, process fidelity) is important, as it may explain why “good” processes do not always give the desired outcomes in a important, as it may explain why “good” processes do not always give the desired outcomes in a given situation.given situation.

Page 32: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.2 Software Product 4.2 Software Product MeasurementMeasurement

Software product measurement includes:Software product measurement includes: the measurement of product size, the measurement of product size, product structure, and product structure, and product quality.product quality.

Page 33: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.2.1. Size measurement4.2.1. Size measurement

Software product size is most often Software product size is most often assessed byassessed bymeasures of length measures of length

lines of source code in a module, lines of source code in a module, pages in a software requirements specification pages in a software requirements specification

documentdocument

FunctionalityFunctionalityfunction points in a specificationfunction points in a specification

Page 34: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.2.2. Structure measurement4.2.2. Structure measurement A diverse range of measures of software product A diverse range of measures of software product

structure may be applied to both high- and low-structure may be applied to both high- and low-level design and code artifacts to reflect level design and code artifacts to reflect control flow control flow

(for example the cyclomatic number, code knots), (for example the cyclomatic number, code knots), data flow data flow

(for example, measures of slicing), nesting (for example, the (for example, measures of slicing), nesting (for example, the nesting polynomial measure, the BAND measure), nesting polynomial measure, the BAND measure),

control structures control structures (for example, the vector measure, the NPATH measure), and (for example, the vector measure, the NPATH measure), and

modular structure and interaction modular structure and interaction (for example, information flow, tree-based measures, (for example, information flow, tree-based measures,

coupling and cohesion). coupling and cohesion).

Page 35: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.2.3. Quality measurement4.2.3. Quality measurement

As a multi-dimensional attribute, quality As a multi-dimensional attribute, quality measurement is less straightforward to measurement is less straightforward to define than those above. define than those above.

Furthermore, some of the dimensions of Furthermore, some of the dimensions of quality are likely to require measurement quality are likely to require measurement in qualitative rather than quantitative form. in qualitative rather than quantitative form.

Page 36: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.3 Quality Of Measurement 4.3 Quality Of Measurement ResultsResults

Necessary for the measurement programs to provide effective and Necessary for the measurement programs to provide effective and bounded results.bounded results.

Includes:Includes: accuracy, accuracy, reproducibility, reproducibility, repeatability, repeatability, convertibility, convertibility, random measurement errorsrandom measurement errors

The theory of measurement establishes the foundation on which The theory of measurement establishes the foundation on which meaningful measurements can be made. meaningful measurements can be made.

Measurement is defined in the theory as “the assignment of Measurement is defined in the theory as “the assignment of numbers to objects in a systematic way to represent properties of numbers to objects in a systematic way to represent properties of the object.”the object.”

Page 37: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

An appreciation of software measurement scales and the implications of An appreciation of software measurement scales and the implications of each scale type in relation to the subsequent selection of data analysis each scale type in relation to the subsequent selection of data analysis methods is especially important. methods is especially important.

Meaningful scales are related to a classification of scales. For those, Meaningful scales are related to a classification of scales. For those, measurement theory provides a succession of more and more constrained measurement theory provides a succession of more and more constrained ways of assigning the measures. ways of assigning the measures. NominalNominal

If the numbers assigned are merely to provide labels to classify the objects, they are If the numbers assigned are merely to provide labels to classify the objects, they are called nominal. called nominal.

OrdinalOrdinal If they are assigned in a way that ranks the objects (for example, good, better, best), If they are assigned in a way that ranks the objects (for example, good, better, best),

they are called ordinal. they are called ordinal. IntervalInterval

If they deal with magnitudes of the property relative to a defined measurement unit, If they deal with magnitudes of the property relative to a defined measurement unit, they are called interval (and the intervals are uniform between the numbers unless they are called interval (and the intervals are uniform between the numbers unless otherwise specified, and are therefore additive). otherwise specified, and are therefore additive).

RatioRatio Measurements are at the ratio level if they have an absolute zero point, so ratios of Measurements are at the ratio level if they have an absolute zero point, so ratios of

distances to the zero point are meaningful. distances to the zero point are meaningful.

Page 38: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.4 Software Information Models4.4 Software Information Models

As the data are collected and the measurement repository is As the data are collected and the measurement repository is populated, we become able to build models using both data and populated, we become able to build models using both data and knowledge.knowledge.

These models exist for the purposes of analysis, classification, and These models exist for the purposes of analysis, classification, and prediction. prediction.

Such models need to be evaluated to ensure that their levels of Such models need to be evaluated to ensure that their levels of accuracy are sufficient and that their limitations are known and accuracy are sufficient and that their limitations are known and understood. understood.

The refinement of models, which takes place both during and after The refinement of models, which takes place both during and after projects are completed, is another important activity.projects are completed, is another important activity.

Page 39: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.4.1. Model building4.4.1. Model building Model building includes both calibration and evaluation of the Model building includes both calibration and evaluation of the

model. model.

The goal-driven approach to measurement informs the model The goal-driven approach to measurement informs the model building process to the extent that models are constructed to answer building process to the extent that models are constructed to answer relevant questions and achieve software improvement goals. relevant questions and achieve software improvement goals.

This process is also influenced by the implied limitations of This process is also influenced by the implied limitations of particular measurement scales in relation to the choice of analysis particular measurement scales in relation to the choice of analysis method. method.

The models are calibrated (by using particularly relevant The models are calibrated (by using particularly relevant observations, for example, recent projects, projects using similar observations, for example, recent projects, projects using similar technology) and their effectiveness is evaluated (for example, by technology) and their effectiveness is evaluated (for example, by testing their performance on holdout samples). testing their performance on holdout samples).

Page 40: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.4.2. Model implementation4.4.2. Model implementation

Model implementation includes both Model implementation includes both interpretation and refinement of modelsinterpretation and refinement of models

The calibrated models are applied to the The calibrated models are applied to the process, their outcomes are interpreted process, their outcomes are interpreted and evaluated in the context of the and evaluated in the context of the process/project, and the models are then process/project, and the models are then refined where appropriate refined where appropriate

Page 41: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.5 Process Measurement 4.5 Process Measurement TechniquesTechniques

Measurement techniques may be used to analyze software engineering Measurement techniques may be used to analyze software engineering processes and to identify strengths and weaknesses. This can be performed processes and to identify strengths and weaknesses. This can be performed to initiate process implementation and change, or to evaluate the to initiate process implementation and change, or to evaluate the consequences of process implementation and change.consequences of process implementation and change.

The quality of measurement results, such as accuracy, repeatability, and The quality of measurement results, such as accuracy, repeatability, and reproducibility, are issues in the measurement of software engineering reproducibility, are issues in the measurement of software engineering processes, since there are both instrument-based and judgmental processes, since there are both instrument-based and judgmental measurements, as, for example, when assessors assign scores to a measurements, as, for example, when assessors assign scores to a particular processparticular process

.. Process measurement techniques have been classified into two general Process measurement techniques have been classified into two general

types: types: analytic and analytic and benchmarking. benchmarking.

The two types of techniques can be used together since they are based on The two types of techniques can be used together since they are based on different types of information.different types of information.

Page 42: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.5.1. Analytical techniques4.5.1. Analytical techniques The analytical techniques are characterized as relying on The analytical techniques are characterized as relying on

“quantitative evidence to determine where improvements “quantitative evidence to determine where improvements are needed and whether an improvement initiative has are needed and whether an improvement initiative has been successful.” been successful.”

The analytical type is exemplified by the Quality The analytical type is exemplified by the Quality Improvement Paradigm (QIP) consisting of a cycle of Improvement Paradigm (QIP) consisting of a cycle of understanding, assessing, and packaging. understanding, assessing, and packaging.

Other techniques Other techniques

Whether or not a specific organization uses all these Whether or not a specific organization uses all these techniques will depend, at least partially, on its maturity.techniques will depend, at least partially, on its maturity.

Page 43: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

Experimental Studies: Experimental Studies: Involves setting up controlled or quasi experiments in the organization to evaluate processes. Involves setting up controlled or quasi experiments in the organization to evaluate processes. Usually, a new process is compared with the current process to determine whether or not the former has Usually, a new process is compared with the current process to determine whether or not the former has

better process outcomes. better process outcomes. Process Simulation:Process Simulation:

Used to analyze process behavior, explore process improvement potentials, predict process outcomes if the Used to analyze process behavior, explore process improvement potentials, predict process outcomes if the current process is changed in a certain way, and control process execution. current process is changed in a certain way, and control process execution.

Initial data about the performance of the current process need to be collected, however, as a basis for the Initial data about the performance of the current process need to be collected, however, as a basis for the simulation.simulation.

Process Definition Review:Process Definition Review: A means by which a process definition (either a descriptive or a prescriptive one, or both) is reviewed, and A means by which a process definition (either a descriptive or a prescriptive one, or both) is reviewed, and

deficiencies and potential process improvements identified. deficiencies and potential process improvements identified. An easy operational way to analyze a process is to compare it to an existing standard (national, An easy operational way to analyze a process is to compare it to an existing standard (national,

international, or professional body), such as IEEE/EIA 12207.0[IEEE12207.0-96]. international, or professional body), such as IEEE/EIA 12207.0[IEEE12207.0-96]. With this approach, quantitative data are not collected on the process, or, if they are, they play a supportive With this approach, quantitative data are not collected on the process, or, if they are, they play a supportive

role. role. The individuals performing the analysis of the process definition use their knowledge and capabilities to The individuals performing the analysis of the process definition use their knowledge and capabilities to

decide what process changes would potentially lead to desirable process outcomes. decide what process changes would potentially lead to desirable process outcomes. Observational studies can also provide useful feedback for identifying process improvements.Observational studies can also provide useful feedback for identifying process improvements.

Orthogonal Defect Classification:Orthogonal Defect Classification: Used to link faults found with potential causes. Used to link faults found with potential causes. It relies on a mapping between fault types and fault triggers. It relies on a mapping between fault types and fault triggers.

Root Cause Analysis:Root Cause Analysis: Involves tracing back from detected problems (for example, faults) to identify the process causes, with the Involves tracing back from detected problems (for example, faults) to identify the process causes, with the

aim of changing the process to avoid these problems in the future. aim of changing the process to avoid these problems in the future. The Orthogonal Defect Classification technique can be used to make a quantitative selection for where to The Orthogonal Defect Classification technique can be used to make a quantitative selection for where to

apply Root Cause Analysis. apply Root Cause Analysis. Statistical Process Control:Statistical Process Control:

An effective way to identify stability, or the lack of it, in the process through the use of control charts and An effective way to identify stability, or the lack of it, in the process through the use of control charts and their interpretations. their interpretations.

The Personal Software Process:The Personal Software Process: defines a series of improvements to an individual’s development practices in a specified order. defines a series of improvements to an individual’s development practices in a specified order. It is ‘bottom-up’ in the sense that it stipulates personal data collection and improvements based on the data It is ‘bottom-up’ in the sense that it stipulates personal data collection and improvements based on the data

interpretations. interpretations.

Page 44: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

4.5.2. Benchmarking techniques4.5.2. Benchmarking techniques

Benchmarking, “depends on identifying an ‘excellent’ Benchmarking, “depends on identifying an ‘excellent’ organization in a field and documenting its practices and organization in a field and documenting its practices and tools.” tools.”

Benchmarking assumes that if a less-proficient Benchmarking assumes that if a less-proficient organization adopts the practices of the excellent organization adopts the practices of the excellent organization, it will also become excellent. organization, it will also become excellent.

Benchmarking involves assessing the maturity of an Benchmarking involves assessing the maturity of an organization or the capability of its processes. organization or the capability of its processes.

It is exemplified by the software process assessment It is exemplified by the software process assessment work. work.

Page 45: SW Engineering Process SWEBOK. SOFTWARE ENGINEERING PROCESS The actual set of activities performed within an organization, which could be viewed as one

Thank YouThank You