10.02.2015 Views

CHAPTER 03 THE SOFTWARE PROCESS

CHAPTER 03 THE SOFTWARE PROCESS

CHAPTER 03 THE SOFTWARE PROCESS

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Lecture — Software Engineering<br />

<strong>CHAPTER</strong> <strong>03</strong><br />

<strong>THE</strong> <strong>SOFTWARE</strong> <strong>PROCESS</strong><br />

Lecture — Software Engineering<br />

Topics<br />

● Introduction<br />

● The Unified Process<br />

● Iteration and Incrementation within the Object-Oriented<br />

Paradigm<br />

● The Requirements Workflow<br />

● The Analysis Workflow<br />

● The Design Workflow<br />

● The Implementation Workflow<br />

● The Test Workflow<br />

● Postdelivery Maintenance<br />

● Retirement<br />

Lecture — Software Engineering<br />

Topics<br />

● The Phases of the Unified Process<br />

● One- versus Two-Dimensional Life-Cycle Models<br />

● Improving the Software Process<br />

● Capability Maturity Models<br />

● Other Software Process Improvement Initiatives<br />

● Costs and Benefits of Software Process Improvement<br />

Lecture — Software Engineering<br />

Reference<br />

● Schach, S.R. (2010). Object-Oriented and Classical Software<br />

Engineering, Eighth Edition. McGraw-Hill, ISBN: 978-0-07-<br />

337618-9.


Introduction<br />

● Software process — The way software is produced<br />

● Incorporates: Methodology, software life-cycle model,<br />

techniques, tools, and individuals building the software<br />

● Different organizations have different software processes<br />

● Documentation<br />

• Self-documenting to documentation intensive<br />

● Testing intensity<br />

• Half of budget for testing to minimal testing and relying on<br />

users<br />

● Postdelivery maintenance<br />

• 20 years of maintenance to research labs (leaving it to others)<br />

● Software development process is structured around five<br />

workflows: Requirements, analysis (specification), design,<br />

implementation, and test<br />

The Unified Process<br />

● Primary object-oriented methodology today is Unified Process<br />

● Collaborative effort of Three Amigos<br />

• Jim Rumbaugh: Object modeling technique (OMT), 1991<br />

General Electric Research and Development Center,<br />

Schenectady, NY<br />

• Grady Booch: Booch’s method, 1994<br />

Rational, Inc., Santa Clara, CA<br />

• Ivar Jacobson: Objectory methodology<br />

• All at Rational, Inc. by 1995<br />

● Developed Unified Modeling Language (UML)<br />

• A notation for representing an object-oriented software product<br />

• Version 1.0 published in 1997<br />

• International standards for UML by Object Management Group<br />

(OMG) an association of world companies<br />

The Unified Process<br />

● UML — today the international standard notation for<br />

representing object-oriented products<br />

● Publishing a complete software development methodology that<br />

unified their three separate methodologies<br />

• First called the Rational Unified Process (RUP)<br />

• Rational bought by IBM in 20<strong>03</strong><br />

• Name Unified Software Development Process (USDP) was used<br />

• Term Unified Process is generally used today<br />

● Unified Process is not a specific series of steps for<br />

construction of a software product<br />

• An adaptable methodology<br />

• Modified for the specific software product to be developed<br />

• Some features inapplicable to small and medium products<br />

• Much is used for software products of all sizes<br />

Iteration and Incrementation within the Object-<br />

Oriented Paradigm<br />

● Object-oriented paradigm uses modeling throughout<br />

• A model is a set of UML diagrams<br />

• Representing one or more aspects of the software product<br />

• UML is tool to represent (model) target software product<br />

• UML diagrams enable software professionals to communicate<br />

● Object-oriented paradigm is an iterative and incremental<br />

methodology<br />

● Each workflow consists of a number of steps repeatedly<br />

performed<br />

• Until members are satisfied with an accurate UML model<br />

● UML diagrams are modified as more knowledge is gained<br />

• Made more accurate (iteration)<br />

• Extended (incrementation)


Iteration and Incrementation within the Object-<br />

Oriented Paradigm<br />

● Unified Process<br />

• Proficiency requires extensive study<br />

• Developed primarily for large, complex software<br />

• Example case studies with specifications over 1000 pages<br />

● Five core workflows<br />

• Requirements<br />

• Analysis<br />

• Design<br />

• Implementation<br />

• Testing<br />

The Requirements Workflow<br />

● Development process usually begins when client approaches a<br />

development organization<br />

● Aim of requirement workflow: For development organization<br />

to determine the client’s needs<br />

● First task: Acquire a basic understanding of application<br />

domain<br />

● At any stage, if the client stops believing that software will<br />

be cost effective: Development will terminate<br />

● Business case — A document demonstrating the costeffectiveness<br />

of product<br />

• A vital aspect of software development<br />

● At an initial meeting, client outlines product<br />

● Descriptions may be vague, unreasonable, contradictory, or<br />

impossible<br />

The Requirements Workflow<br />

● Developers must determine what client needs and constraints<br />

• Major constraints: Deadline and cost<br />

• Other constraints: reliability, size, etc.<br />

● Cost<br />

• Client rarely tells how much money is available<br />

• Bidding procedure<br />

• After finalizing specifications, developers determine price<br />

● Concept exploration: Preliminary investigation of client’s<br />

needs<br />

● Functionality of proposed product successively refined and<br />

analyzed<br />

• For technical feasibility and financial justification<br />

• Meetings between developers and client<br />

The Requirements Workflow<br />

● What developers think client wanted may not be same as what<br />

client actually needed<br />

● Client may not truly understand what is going on in own<br />

organization<br />

● Software is complex and difficult to visualize its functionality<br />

● Unified Process can help in this regard<br />

● UML diagrams can assist client in better understanding


The Analysis Workflow<br />

● Aim of analysis workflow: Analyze and refine requirements to<br />

achieve detailed understanding of requirements<br />

● Requirements workflow is in language of client<br />

• Comprehended by client<br />

● Analysis workflow is in a more precise language<br />

• Ensures design and implementation are correctly carried out<br />

• Includes details not relevant to the client’s understanding<br />

● Specification of product constitute a contract<br />

• Delivering a product that satisfies acceptance criteria of<br />

specifications<br />

• Should not include imprecise terms (e.g., suitable, convenient,<br />

ample)<br />

• Should not include terms that sound exact but are imprecise<br />

(e.g., optimal, 98 percent complete)<br />

The Analysis Workflow<br />

• Should be written as if they will be used in a trial: Potential<br />

lawsuits<br />

• Are essential for both testing and maintenance<br />

• When Unified Process is used: No specification document,<br />

instead a set of UML artifacts<br />

● Issues with classical analysis<br />

• Ambiguity — Certain sections with more than one valid<br />

interpretation (intrinsic to natural languages)<br />

• Incompleteness — Some relevant fact or requirement may be<br />

omitted<br />

• Contradictions<br />

● UML diagrams together with descriptions are less likely to<br />

contain ambiguity, incompleteness, and contradictions<br />

The Analysis Workflow<br />

● Once client approves specifications: Detailed planning and<br />

estimating commences<br />

• Estimating duration and cost of project<br />

• Clients will not authorize without the estimates (underestimating<br />

and overestimating)<br />

• Assigning appropriate personnel to the various workflows<br />

● A software project management plan must be drawn up<br />

● Reflects separate workflows of development process<br />

● Shows which members are involved in each task<br />

● Shows the deadlines for completing each task<br />

● Major components<br />

• Deliverables — What client is going to get<br />

• Milestones — When client gets them<br />

• Budget — How much it is going to cost<br />

The Analysis Workflow<br />

● Describes software process in fullest details<br />

• Life-cycle model<br />

• Organizational structure, project responsibilities<br />

• Managerial objectives and priorities<br />

• Techniques and CASE tools<br />

• Detailed schedules, budgets, and resource allocations<br />

● Underlying entire plan: Duration and cost estimates


The Design Workflow<br />

● Aim of design workflow: Refine analysis artifacts until<br />

material in a form that can be implemented by programmers<br />

● Design shows how product is to do what it is specified to do<br />

● Classical design phase<br />

• Determine internal structure of product<br />

• Architectural design — Decompose product into modules<br />

(independent pieces of code with well-defined interfaces)<br />

• Detailed design — Selection of algorithms and data structures<br />

for each module<br />

● Object-oriented paradigm<br />

• Bases is class (specific type of module)<br />

• Extracted during analysis workflow<br />

• Designed during design workflow<br />

The Design Workflow<br />

● Design team must keep a record of design decisions<br />

• Backtracking in case of dead ends<br />

• Maintenance and future enhancements<br />

The Implementation Workflow<br />

● Aim of implementation workflow: Implement target software<br />

product<br />

• In the chosen programming language(s)<br />

● Large products partitioned into subsystems<br />

• Implemented in parallel by coding teams<br />

● Subsystems consist of components (code artifacts)<br />

• Implemented by individual programmers<br />

● Only documentation given to programmer: Design artifact<br />

• Detailed design provide enough information to implement<br />

• Rarely shown architectural design<br />

• Cause of failure can be design, not implementation<br />

The Test Workflow<br />

● In Unified Process testing is carried out in parallel with other<br />

workflows<br />

● Two major aspects of testing<br />

• A software professional has to test and retest each artifact<br />

developed or maintained<br />

• Next, SQA group performs independent testing of artifact<br />

● Nature of test workflow changes depending on artifacts being<br />

tested<br />

● A feature important to all artifacts is traceability<br />

• Trace every item in analysis back to a requirements artifact<br />

• Similarly for design artifacts and implementation artifacts


The Test Workflow<br />

Requirements Artifacts<br />

● Requirements artifacts must have traceability<br />

● Requirements should be presented methodically<br />

• Properly numbered<br />

• Cross-referenced<br />

• Indexed<br />

● Developers can trace through subsequent artifacts<br />

• Ensuring they are a true reflection of a client’s requirements<br />

● Traceability simplifies task of SQA group<br />

The Test Workflow<br />

Analysis Artifacts<br />

● Both analysis team and SQA group must check analysis<br />

artifacts<br />

• Must detect faults in specifications<br />

• Must ensure specifications are feasible<br />

● Reviews are a good way of checking analysis artifacts<br />

• Representatives of analysis team and of client<br />

• Meeting usually chaired by a member of SQA group<br />

• Checking for faults in analysis artifacts<br />

• Walkthroughs and inspections<br />

The Test Workflow<br />

● Checking of detailed planning and estimating<br />

● Once client signs off specifications<br />

● Every aspect of SPMP is checked<br />

● Particular attention to plan’s duration and cost estimates<br />

● Management can obtain two or more independent estimates<br />

• Reconcile any significant differences<br />

● If duration and cost estimates are satisfactory: Client will<br />

give permission to proceed<br />

The Test Workflow<br />

Design Artifacts<br />

● A critical aspect of testing is traceability<br />

• Every part of design can be linked to an analysis artifact<br />

• Whether design agrees with specifications<br />

• Whether every part of specifications is reflected in design<br />

● Design reviews are similar to specifications reviews<br />

• Client usually not present<br />

• Members of design team and SQA group work through design<br />

● Faults to look for<br />

• Logic faults<br />

• Interface faults<br />

• Lack of exception handling<br />

• Nonconformance to the specifications


The Test Workflow<br />

Implementation Artifacts<br />

● Informal testing by programmer<br />

• Each component tested while being implemented (desk checking)<br />

• Each component tested after being implemented (against test<br />

cases)<br />

● Unit Testing: SQA group tests components methodically<br />

● Code review: A powerful, successful technique for detecting<br />

programming faults<br />

• Programmer guides review team through listing<br />

• Must include an SQA representative<br />

• A record of activities is kept<br />

● Coded components are combined and tested<br />

• SQA group determines whether product functions correctly<br />

The Test Workflow<br />

● Critical influence on quality of results<br />

• Way in which components are integrated: All at once or one at a<br />

time<br />

• Specific order: Top-down or bottom-up<br />

● Purpose of integration testing<br />

• Check that components combine correctly<br />

• To achieve a product that satisfies its specification<br />

• Testing of component interfaces: Matching number, order, and<br />

types of formal and actual arguments<br />

● Product testing<br />

• Performed after integration testing<br />

• By SQA<br />

• Functionality checked against specifications<br />

• Listed constraints must be tested<br />

• Robustness of product is tested<br />

The Test Workflow<br />

• Effects on existing computer operations are tested<br />

• Checking that source code and documentations are complete<br />

• A senior manager decides whether product is ready<br />

● Acceptance testing<br />

• Final aspect of integration testing<br />

• Software delivered to client<br />

• Client tests software on actual hardware, using actual data<br />

● COTS software<br />

• Alpha release — Versions of complete product supplied to<br />

selected possible future clients for testing on site<br />

• Beta release — Corrected alpha release, close to final version<br />

● Alpha and beta releases important<br />

• Faults can result in poor sales and huge losses<br />

The Test Workflow<br />

● Alpha and beta sites<br />

• Free copies of delivered version<br />

• Problems with wasting of time and energy, damages to databases<br />

● Software organizations should not use alpha testing in place<br />

of thorough product testing by the SQA


Postdelivery Maintenance<br />

● Postdelivery maintenance is an integral part of software<br />

process<br />

● Must be planned for from beginning<br />

● Design should take future enhancements into account<br />

● Coding must be performed with future maintenance kept in<br />

mind<br />

● More money is spent on postdelivery maintenance than on all<br />

other software activities combined<br />

● Entire software development effort must be carried out in<br />

such a way to minimize impact of inevitable future<br />

postdelivery maintenance<br />

● A common problem with postdelivery maintenance is<br />

documentation, or lack there of it<br />

Postdelivery Maintenance<br />

• Against a time deadline: Original analysis and design artifacts<br />

are not updated and database manuals are not written<br />

• High rate of personnel turnover<br />

● Two aspects to testing changes made to a product during<br />

postdelivery maintenance<br />

• Checking that required changes have been implemented correctly<br />

• Regression testing — Ensuring that no inadvertent changes were<br />

made<br />

● Product tested against previous test cases<br />

• All previous test cases must be retained<br />

● A major aspect of postdelivery maintenance is a record of all<br />

changes made<br />

• Together with reason for each change<br />

• Regression test cases are a central form of documentation<br />

Retirement<br />

● Final stage in software life cycle is retirement<br />

• After many years of service<br />

• Stage when further postdelivery maintenance is no longer costeffective<br />

● Reasons for product retirement<br />

(1) When proposed changes are so drastic that design has to be<br />

changed: Less expensive to redesign and recode entire<br />

product<br />

(2) So many changes to original design can result in<br />

interdependencies inadvertently being built into the product:<br />

A small change can have drastic effects<br />

(3) When documentation is not adequately maintained, there is<br />

increasing risk of regression faults: safer to recode than<br />

maintain<br />

Retirement<br />

(4) When hardware or operating systems is to be replaced: More<br />

economical to rewrite from scratch than to modify<br />

● In each of these instance, current version is replaced by a<br />

new version<br />

• Software process continues<br />

● True retirement: When a product has outgrown its usefulness<br />

• Somewhat rare event<br />

• Client organization no longer requires functionality


The Phases of the Unified Process<br />

● Phases of Unified Process correspond to increments<br />

• In theory: development could be performed in any number of<br />

increments<br />

• In practice: usually consists of four increments<br />

● Every step performed in Unified Process falls into<br />

• One of five core workflows: Requirements, analysis, design,<br />

implementation, and test<br />

• And also into one of four phases: Inception, elaboration,<br />

construction, and transition<br />

● E.g., building a business model<br />

• Part of requirements workflow<br />

• Also part of inception phase<br />

● Figure 3.1<br />

The Phases of the Unified Process<br />

The Phases of the Unified Process<br />

The Inception Phase<br />

● Aim of inception phase: Determine whether it is worthwhile to<br />

develop target software product<br />

• Determine whether proposed software product is economically<br />

viable<br />

● Two steps of requirements workflow<br />

• Understand the domain<br />

• Build a business model<br />

● Questions to be answered, by end of the inception phase,<br />

before proceeding with project<br />

• Is proposed software product cost effective<br />

• Can the proposed software product be delivered on time<br />

• What risks are involved in developing the software product, and<br />

how can these risks be mitigated<br />

The Phases of the Unified Process<br />

● Next step: Identify risks, in three major risk categories<br />

• Technical risks: E.g., is new hardware needed<br />

• Not getting requirements right: Risk mitigated by performing<br />

requirements workflow correctly<br />

• Not getting architecture right: Architecture may not be<br />

sufficiently robust<br />

● Risks need to be ranked: Critical risks are mitigated first<br />

● Inception phase of other workflows<br />

• Analysis workflow: Extracting information needed for design of<br />

architecture<br />

• Implementation workflow: Frequently no coding, occasionally<br />

proof of concept prototype<br />

• Test workflow: Ensuring that requirements are accurately<br />

determined


The Phases of the Unified Process<br />

● Planning is an essential part of every phase<br />

• Insufficient information at beginning of inception phase to plan<br />

entire development<br />

• Planning for inception phase itself<br />

● Documentation is also an essential part of every phase<br />

● Deliverables of inception phase<br />

• Initial version of domain model<br />

• Initial version of business model<br />

• Initial version of requirements artifacts<br />

• A preliminary version of analysis artifacts<br />

• A preliminary version of architecture<br />

• Initial list of risks<br />

• The initial use cases<br />

• Plan for elaboration phase<br />

• Initial version of business case<br />

The Phases of the Unified Process<br />

● Obtaining initial version of business case is overall aim of<br />

inception phase<br />

• If proposed software product is to be marketed: Business case<br />

includes revenue projections, market estimates, and initial cost<br />

estimates<br />

• If proposed software product is to be used in-house: Business<br />

case includes initial cost-benefit analysis<br />

The Phases of the Unified Process<br />

The Elaboration Phase<br />

● Aim of elaboration phase<br />

• Refine initial requirements<br />

• Refine architecture<br />

• Monitor risks<br />

• Refine business case<br />

• Produce software project management plan<br />

● Deliverables of elaboration phase<br />

• Completed domain<br />

• Completed business model<br />

• Completed requirements artifacts<br />

• Completed analysis artifacts<br />

• An updated version of architecture<br />

• An updated list of risks<br />

The Phases of the Unified Process<br />

• Software project management plan<br />

• Completed business case


The Phases of the Unified Process<br />

The Construction Phase<br />

● Aim of construction phase: Produce first operational-quality<br />

version of software products<br />

• So-called beta release<br />

● Deliverables of construction phase<br />

• Initial user manual and other manuals<br />

• All artifacts (beta release versions)<br />

• Completed architecture<br />

• Updated risk list<br />

• Software project management plan<br />

• If necessary, updated business case<br />

The Phases of the Unified Process<br />

The Transition Phase<br />

● Aim of transition phase: Ensure that client’s requirements<br />

have indeed been met<br />

• Phase driven by feedback from beta testing<br />

• Faults in software are corrected<br />

• Manuals are completed<br />

● Deliverables of transition phase<br />

• All artifacts<br />

• Completed manuals<br />

One- versus Two-Dimensional Life-Cycle Models<br />

● A classical life-cycle model is a one-dimensional model<br />

• Represented by a single axis<br />

● Underlying Unified Process is a two-dimensional life-cycle<br />

model<br />

• Represented by two axes<br />

● Figure 3.2<br />

One- versus Two-Dimensional Life-Cycle Models<br />

● Unified process currently best methodology available<br />

• For treating a large problem as a set of smaller, largely<br />

independent subproblems<br />

• Provides a framework for incrementation and iteration<br />

• Handles well challenge of inevitable changes<br />

● In the future, it will be superseded by some new methodology<br />

• Software professionals looking for next major breakthrough


Improving the Software Process<br />

● Global economy depends critically on computers and hence on<br />

software<br />

● Governments of many countries are concerned about the<br />

software process<br />

● 1987 task force report of U.S. Department of Defense (DoD)<br />

• problem of inability to manage the software process<br />

● The Software Engineering Institute (SEI)<br />

• In response to concerns about the software process<br />

• Founded by DoD at Carnegie Mellon University<br />

● Major success: Capability Maturity Model (CMM) initiative<br />

● Related software process improvement efforts<br />

• ISO 9000-series standards of International Organization for<br />

Standardization<br />

• ISO/IEC 15504 international software improvement initiative<br />

(involving more than 40 countries)<br />

Capability Maturity Models<br />

● Capability maturity models are a related group of strategies<br />

for improving software process<br />

• Irrespective of actual life-cycle model used<br />

• Developed by Software Engineering Institute (SEI)<br />

• Maturity — A measure of goodness of process itself<br />

● CMMs<br />

• SW-CMM: Software<br />

• P-CMM: Management of human resources (people)<br />

• SE-CMM: System engineering<br />

• IPD-CMM: Integrated product development<br />

• SA-CMM: Software acquisition<br />

● Capability Maturity Model Integration (CMMI)<br />

• Inconsistencies and redundancies between models<br />

• A single integrated framework for maturity models<br />

Capability Maturity Models<br />

• Incorporates all five CMMs<br />

• Additional disciplines may be added in the future<br />

● SW–CMM<br />

• Proposed in 1986<br />

• Incorporates both technical and managerial aspects of software<br />

production<br />

● Based on ideas<br />

• Use of new software techniques will not result in increased<br />

productivity and profitability<br />

• Problems are caused by how software process is managed<br />

• Improving the management of software process can result in<br />

improvements in techniques<br />

• Improvement in the process as a whole should result in betterquality<br />

software: Fewer software projects with time and cost<br />

overruns<br />

Capability Maturity Models<br />

● Improvements in software process cannot occur overnight<br />

• SW-CMM induces changes incrementally<br />

• Five levels of maturity are defined<br />

• An organization advances slowly in a series of small steps<br />

● Five levels of CMM<br />

● Maturity level 1: Initial level<br />

• No sound software engineering management practice<br />

• Everything done on an ad hoc basis<br />

• Most activities are responses to crises: Rather than pre-planned<br />

tasks<br />

• Software process is unpredictable<br />

• Unfortunate majority of world software organizations are of<br />

this type


Capability Maturity Models<br />

● Maturity level 2: Repeatable level<br />

• Basic software project management practices<br />

• Planning and management based on experiences with similar<br />

products<br />

• Measurements are taken: Essential first step for an adequate<br />

process<br />

• Typical measurements: Tracking of costs and schedules<br />

• Managers identify problems as they arise and take immediate<br />

corrective actions: Prevent them from becoming crises<br />

● Maturity level 3: Defined level<br />

• Process for software production is fully documented<br />

• Both managerial and technical aspects of process are clearly<br />

defined<br />

• Continual efforts to improve the process wherever possible<br />

Capability Maturity Models<br />

• Reviews are used to achieve software quality goals<br />

• Can introduce new technology such as CASE environments to<br />

increase quality and productivity<br />

• A number of organizations have reached levels 2 and 3<br />

• Few organizations have reached levels 4 and 5: Targets for the<br />

future<br />

● Maturity level 4: Managed level<br />

• Sets quality and productivity goals for each project<br />

• These quantities are measured continually<br />

• Corrective action is taken when unacceptable deviations from<br />

goal<br />

• Statistical quality controls in place to enable management to<br />

distinguish random and meaningful deviations<br />

• E.g., number of faults detected per 1000 LOC and objective to<br />

reduce it<br />

Capability Maturity Models<br />

● Maturity level 5: Optimizing level<br />

• Ggoal is continuous process improvement<br />

• Statistical quality and process control techniques are used<br />

• Knowledge gained from each project utilized in future projects<br />

• Positive feedback loop: Steady improvement in productivity and<br />

quality<br />

● For an organization to improve its software process<br />

• First, attempts to understand its current process<br />

• Then, formulates the intended process<br />

• Next, actions to achieve this process improvement are<br />

determined and ranked in priority<br />

• Finally, a plan to accomplish this improvement is drawn up and<br />

executed<br />

Capability Maturity Models<br />

● This series of steps is repeated<br />

• Organization improving its software process<br />

• Progression from level to level<br />

● Advancing a complete maturity level<br />

• Takes 18 months to 3 years<br />

• From level 1 to level 2 can take 3 to 5 years<br />

• Difficult to instill a methodical approach in an organization with<br />

an ad hoc and active approach


Capability Maturity Models<br />

Capability Maturity Models<br />

● Figure 3.3<br />

● A series of key process areas (KPAs) are highlighted that an<br />

organization should target to reach next maturity level<br />

• By SEI<br />

● KPAs for level 2<br />

• Requirements management: Determine the client’s needs<br />

• Project planning: Draw up a plan<br />

• Project tracking: Monitor deviations from that plan<br />

• Configuration management: Control various pieces of product<br />

• Software quality assurance: Ensure that product is fault free<br />

● KPAs for level 5<br />

• Fault prevention<br />

• Technology change management<br />

• Process change management<br />

Capability Maturity Models<br />

● Within each KPA is a group of related goals<br />

• Between two to four<br />

• If achieved: KPA is attained<br />

• E.g., one project planning goal: Development of a plan that<br />

appropriately and realistically covers activities of software<br />

development<br />

● To aid an organization to reach higher maturity levels<br />

• A series of questionnaires are developed that form basis of an<br />

assessment by an SEI team<br />

• To highlight current shortcomings<br />

• To indicate ways in which organization can improve<br />

● One of original goals of CMM program was to raise quality of<br />

software<br />

• By evaluating processes of contractors who produce software<br />

for DoD<br />

• Awarding contracts to contractors with a mature process<br />

Capability Maturity Models<br />

• Any software development organization that wants to be a DoD<br />

contractor must conform to SW-CMM level 3 by 1998<br />

● The SW-CMM program has moved far beyond limited goal of<br />

improving DoD software<br />

● Implemented to improve software quality and productivity


Other Software Process Improvement Initiatives<br />

● A different attempt to improve software quality is based on<br />

the International Organization for Standardization (ISO)<br />

9000-series standards<br />

• A series of five related standards<br />

• Applicable to a variety of industrial activities including design,<br />

development, production, installation, and servicing<br />

• Not just a software standard<br />

• Within the ISO 9000 series, Standard ISO 9001 for quality<br />

systems most applicable to software development<br />

• ISO 9000-3 is specific guidelines to assist in applying ISO 9001<br />

to software<br />

● Features distinguishing ISO 9000 from CMM<br />

• ISO 9000 stresses documenting process in both words and<br />

pictures<br />

Other Software Process Improvement Initiatives<br />

● Adherence to ISO 9000 standard does not guarantee a high<br />

quality product<br />

• Rather reduces risk of a poor-quality product<br />

● ISO 9000 is only one part of a quality system, also requiring<br />

• Management commitment to quality<br />

• Intensive training of workers<br />

• Setting, achieving goals for continual quality improvement<br />

● ISO 9000-series standards have been adopted by over 60<br />

countries<br />

• Including U.S., Japan, Canada, and the European Union<br />

• ISO 9000-compliant certifications may be required<br />

• Required by EU clients from U.S. software organizations<br />

● A certified registrar (auditor) has to examine company’s<br />

process: Certify that process complies with the ISO standard<br />

● More U.S. organizations are requiring ISO 9000 certification<br />

Other Software Process Improvement Initiatives<br />

● ISO/IEC 15504 is an international process improvement<br />

initiative<br />

● Like ISO 9000<br />

● Formerly known as SPICE<br />

• Software Process Improvement Capability dEtermination<br />

• Contributions from over 40 countries<br />

• Initiated by the British Ministry of Defense (MOD)<br />

● First version completed in 1995<br />

● Taken over by a joint committee of ISO and the International<br />

Electrotechnical Commission (IEC)<br />

● Name changed from SPICE to ISO/IEC 15504<br />

Costs and Benefits of Software Process Improvement<br />

● Results indicate that implementing software process<br />

improvement leads to increased profitability<br />

● Hughes Aircraft Software Engineering Division<br />

• Spent $0.5 million between 1987 and 1990<br />

• For assessments and improvement programs<br />

• Moved up from maturity level 2 to level 3<br />

• Expectations of future levels 4 and 5<br />

• Estimated annual savings of $2 million<br />

• Decreased overtime hours<br />

• Fewer crises<br />

• Improved employee morale<br />

• lower turnover of software professionals


Costs and Benefits of Software Process Improvement<br />

● Raytheon Equipment Division<br />

• Moved from level 1 to level 3<br />

• From 1988 to 1993<br />

• Twofold increase in productivity<br />

• Return of $7.70 for every $1 invested in process improvement<br />

● Tata Consultancy Services in India<br />

• Used ISO 9000 and CMM<br />

• From 1996 to 2000<br />

• Errors in effort estimation decreased from 50% to 15%<br />

• Effectiveness of reviews (percentage of faults found) increased<br />

from 40% to 80%<br />

• Efforts devoted to reworking projects dropped from 12% to 6%<br />

● Capability maturity models are applied relatively widely within<br />

U.S. software industry and abroad<br />

Costs and Benefits of Software Process Improvement<br />

● Motorola Government Electronics Division (GED)<br />

● Involved in SEI’s software process improvement program<br />

● 34 GED projects<br />

● Categorized according to maturity level of group<br />

● Quality measured in terms of faults per million equivalent<br />

assembler source lines (MEASL)<br />

• To compare projects implemented in different languages<br />

• Number of lines of source code converted into MEASL<br />

● Productivity relative to level 2<br />

• not measured at level 1<br />

● Motorola does not publish actual productivity<br />

● More organizations worldwide are realizing that process<br />

improvement is cost effective<br />

Costs and Benefits of Software Process Improvement<br />

● Figure 3.4<br />

Costs and Benefits of Software Process Improvement<br />

● Process improvement movement has resulted in interactions<br />

between software process improvement initiatives and<br />

software engineering standards<br />

● ISO/IEC 12207: Full life-cycle software standard (1995)<br />

● IEEE/EIA 12207: Incorporates U.S. software “best<br />

practices” (1998)<br />

• Many can be traced back to CMM<br />

• By Institute of Electrical and Electronics Engineers (IEEE) and<br />

Electronic Industries Alliance (EIA)<br />

● To achieve compliance with IEEE/EIA 12207: An organization<br />

must be at or near CMM level 3<br />

● This interplay between software engineering standards<br />

organizations and software process improvement initiatives<br />

will lead to even better software processes

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!