Download Software Construction & Development lecture #3:Software Process Improvement and more Slides Software Development Methodologies in PDF only on Docsity! Software Process Improvement Software Construction & Development Objectives • To explain the principles of software process improvement • To explain how software process factors influence software quality and productivity • To explain how to develop simple models of software processes • To explain the notion of process capability and the CMMI process improvement model Process attributes Process characteristic Description Understandability To what extent is the process explic itly defined and how easy is it t o understand the process definition? Visibility Do the process activities culminate in clear results so that the progress of the process is externally vis ible? Supportability To what extent can CASE tools be used to support the process activities? Acceptability Is t he defined process acceptable to and usable by the engineers responsible for producing the software product? Reliability Is the process designed in such a way that process errors are avoided or trapped before they result in product errors? Robustness Can the process continue in spite of unexpected problems? Maintainability Can the process evolve to reflect changing organisational requirements or identified process improvements? Rapidity How fast can the process of delivering a system from a given specification be completed? The process improvement cycle Process improvement stages • Process measurement • Attributes of the current process are measured. These are a baseline for assessing improvements. • Process analysis • The current process is assessed and bottlenecks and weaknesses are identified. • Process change • Changes to the process that have been identified during the analysis are introduced. Quality factors • For large projects with ‘average’ capabilities, the development process determines product quality. • For small projects, the capabilities of the developers is the main determinant. • The development technology is particularly significant for small projects. • In all cases, if an unrealistic schedule is imposed then product quality will suffer. Process classification • Informal • No detailed process model. Development team chose their own way of working. • Managed • Defined process model which drives the development process. • Methodical • Processes supported by some development method such as the RUP. • Supported • Processes supported by automated CASE tools. Process applicability
Prototypes
Shor t-lifetme systems
4GL business systems
rocess
p Smale dium-szed
systems
Mana ged Large systems
process Long-lifetime pr oducts
Methodical Wel-nderstood
TOCCSS applica tion domains
, Reamg ea edswens
Process measurement • Wherever possible, quantitative process data should be collected • However, where organisations do not have clearly defined process standards this is very difficult as you don’t know what to measure. A process may have to be defined before any measurement is possible. • Process measurements should be used to assess process improvements • But this does not mean that measurements should drive the improvements. The improvement driver should be the organizational objectives. Classes of process measurement • Time taken for process activities to be completed • E.g. Calendar time or effort to complete an activity or process. • Resources required for processes or activities • E.g. Total effort in person-days. • Number of occurrences of a particular event • E.g. Number of defects discovered. Goal-Question-Metric Paradigm • Goals • What is the organisation trying to achieve? The objective of process improvement is to satisfy these goals. • Questions • Questions about areas of uncertainty related to the goals. You need process knowledge to derive these. • Metrics • Measurements to be collected to answer the questions. Process analysis techniques • Published process models and process standards • It is always best to start process analysis with an existing model. People then may extend and change this. • Questionnaires and interviews • Must be carefully designed. Participants may tell you what they think you want to hear. • Ethnographic analysis • Involves assimilating process knowledge by observation. Best for in- depth analysis of process fragments rather than for whole-process understanding. Process model elements 1 Activity (shown as a round-edged rectangle with no drop shadow) An activity has a clearly defined objective, entry and exit conditions. Examples of activities are preparing a set of test data to test a module, coding a fu nction or a module, proof-reading a document, etc. Generally, an activity is atomic i.e. it is the responsibility of one person or group. It is not decomposed into sub- activities. Process (shown as a round-edged rectangle with drop shadow) A p rocess is a set of activities which have some coherence and whose objective is generally agreed within an organisation. Examples of processes are requirements analysis, architectural design, test planning, etc. Deliverable (shown as a rectangle with drop shadow) A deliverable is a tangible output of an activity that is predicted in a projec t plan. Condition (shown as a parallelogram ) A condition is either a p re-condition that must hold before a process or activity can start or a post-condition that holds after a process or activity has finished. Process model elements 2 Role (shown as a circle with drop shadow) A role is a bounded area of responsibility. Examples of roles might be configuration manager, test engineer, software designer, etc. One person may have several different roles and a s ingle role may be associated with several different people. Exception (not shown in examples here but may be represented as a double edged box) An exception is a description of how to modify the process if some anticipated or unanticipated event occurs. Exceptions are often undefined and it i s left to the ingenuity of the project managers and engineers to handle the exception. Communication (shown as an arrow) An interchange of information between people or between people and supporting computer systems. Commu nications may be informal or formal. Formal communications might be the approval of a deliverable by a p rojec t manager; informal communications might be the interchange of electronic mail to resolve ambiguities in a document. Process exceptions • Software processes are complex and process models cannot effectively represent how to handle exceptions: • Several key people becoming ill just before a critical review; • A breach of security that means all external communications are out of action for several days; • Organisational reorganisation; • A need to respond to an unanticipated request for new proposals. • Under these circumstances, the model is suspended and managers use their initiative to deal with the exception. Process change • Involves making modifications to existing processes. • This may involve: • Introducing new practices, methods or processes; • Changing the ordering of process activities; • Introducing or removing deliverables; • Introducing new roles or responsibilities. • Change should be driven by measurable goals. The process change process
Introduce
process change
Prontse
impr ovements
Identily
improvements
‘ine
process changes
Process Process change ‘yanng Feedback on Revsed pr ocess
model plan plan impr o vements model
Process capability assessment • Intended as a means to assess the extent to which an organisation’s processes follow best practice. • My providing a means for assessment, it is possible to identify areas of weakness for process improvement. • There have been various process assessment and improvement models but the SEI work has been most influential. The SEI capability maturity model • Initial • Essentially uncontrolled • Repeatable • Product management procedures defined and used • Defined • Process management procedures and strategies defined and used • Managed • Quality management strategies defined and used • Optimising • Process improvement strategies defined and used Problems with the CMM • Practices associated with model levels • Companies could be using practices from different levels at the same time but if all practices from a lower level were not used, it was not possible to move beyond that level • Discrete rather than continuous • Did not recognise distinctions between the top and the bottom of levels • Practice-oriented • Concerned with how things were done (the practices) rather than the goals to be achieved. CMMI process areas 1 Process management Organisational process definition Organisational process focus Organisational training Organisational process performance Organisational innovation and deployment Project management Project planning Project monitoring and control Supplier agreement management Integrated project management Risk management Integrated teaming Quantitative projec t management CMMI process areas 2 Engineering Requirements management Requirements development Technical solution Product integration Verif ication Validation Support Configuration management Process and product quality management Measurement and analysis Decision analysis and resolution Organisational environment for integration Causal analysis and resolution CMMI goals Goal Process area Corrective actions are managed to closure when the projectÕs performance or results deviate significantly from the plan. Specific goal in Project Monitoring and Control Actual performance and progress of the project is monitored against the project plan. Specific goal in project monitoring and control The requirements are analysed and validated and a definition of the required functionality is developed. Specific goal in requirements development. Root causes of defects and other problems are systematically determined. Specific goal in causal analysis and resolution. The process is institutionalised as a defined process. Generic goal The staged CMMI model • Comparable with the software CMM. • Each maturity level has process areas and goals. For example, the process area associated with the managed level include: • Requirements management; • Project planning; • Project monitoring and control; • Supplier agreement management; • Measurement and analysis; • Process and product quality assurance. The staged CMMI model
Level5
Optimizing
Level4
Quantitativ ely
managed
Level3
Detired
Level2
Marmged
Level l
Initial
Institutional practices • Institutions operating at the managed level should have institutionalised practices that are geared to standardisation. • Establish and maintain policy for performing the project management process; • Provide adequate resources for performing the project management process; • Monitor and control the project planning process; • Review the activities, status and results of the project planning process. Key points • Process improvement involves process analysis, standardisation, measurement and change. • Processes can be classified as informal, managed, methodical and improving. This classification can be used to identify process tool support. • The process improvement cycle involves process measurement, process analysis and process change. • Process measurement should be used to answer specific process questions, based on organisational improvement goals. Key points • The three types of process metrics used in the measurement process are time metrics, resource utilisation metrics and event metrics. • Process models include descriptions of tasks, activities, roles, exceptions, communications, deliverables and other processes. • The CMMI process maturity model integrates software and systems engineering process improvement. • Process improvement in the CMMI model is based on reaching a set of goals related to good software engineering practice.