Software Quality Engineering BS(SE)-VI
Dr. Assad Abbas
Department of Computer Science
Outline
n Software process improvement
Process Fundamentals (Recap)
n Process: The means by which people, procedures,
and tools are integrated to produce a product (or an end result)
n Software Process: The set of all tasks involved in the
production and evolution of a software product
5 tasks are organized and sequenced
Process Management Principles
n The quality of a product is largely determined by the
quality of the process used to build it [1]
n By extension, the quality of a software product is
largely determined by the quality of the software process used for developing and maintaining it
n To improve the quality of a software product, the
process for producing it must improved
n FACT: the majority of software problems or the
Examples of Software Crisis and Problems
n A review of 17 major Department of Defense (DoD) software
projects revealed that (Humphrey 1993):
5 One project was not delivered for 7 years
5 No project was on time
n Nine DoD contracts totaling $6.8 million
5 47% software delivered but never used
5 29.7% software paid for but never delivered
5 19% software used but later reworked or abandoned
5 ≈ 3% software could be used after changes
Examples of Software Crisis and Problems
n Industry results are not any better (Gibbs 1994)
5 For every six new large software systems put into operation, two others are canceled
5 Average software project overruns its schedule by half; large projects do worse
5 Many projects are terminated after millions of dollars invested, e.g., CONFIRM project (over $200 M), AAS ($144 M), DMV ($44.3 M)
Characteristics of Immature Organizations
n Processes are generally unplanned during the
project
5 Specific processes are not rigorously followed
5 Schedules and budgets are routinely exceeded
5 The organization is conservative
CMM’s Five-Level Framework (A reorientation)
n Initial: unpredictable, poorly controlled
n Managed (Repeatable): basic process management
practices are established; organization can repeat previously mastered tasked
n Defined: the software process for both management and
engineering activities is documented and well understood
n Quantitatively Managed: detailed measures of the
software process and product quality are collected; both are understood and controlled
n Optimizing: focus on process improvement; feedback
How Maturity Affects Project Results?
n Level 1: Initial schedule and cost targets are typically
overrun
n Level 2: Managed (Repeatable) Plans based on past
performances are more realistic
n Level 3: Defined With well-defined processes,
performance improves
n Level 4: Quantitatively Managed Based on
quantitative understanding of process and product, performance continues to improve
n Level 5: Optimizing Performance continuously
Case Studies of Applying the CMM
n Studies based on 13 organizations (Herbsleb et al 1995) n Organizations involved:
5 DoD contractors (e.g., Hughes Aircraft)
5 Commercial organizations (e.g., HP, AT&T, Bull HN, Schlumberger, TI)
5 Military organizations (e.g., OC–ALC)
n Data collected on organizational characteristics, SPI efforts, results of SPI
A Specific Case: The Hughes Aircraft
n Organization description
5 Software Engineering Division, 500 Employees 5 US DoD Contracts
n SEI Efforts
5 First assessment in 1987 — Level 2
5 Second assessment in 1990 — Level 3
n Costs
5 Level 2 to Level 3: 75 person-months 5 ≈$450,000 ($400,000 + $45,000)
Lessons Learned
n Substantial increase in productivity (as much as
67%)
n Substantial improvement in quality
n High ROI
n Management involvement is important
n Developing action plan is essential
n Many intangible benefits (less stress, higher morale,
few crisis)
Another Case: DataStream Content Solutions (DSCS) [2]
n In 1999, DataStream Content Solutions (DSCS) began providing a
DSCS: Why change a successful business?
n At DSCS, the president secured contracts and the chief
programmer built each system.
5 Each system had the same basic architecture: read in textual data, error-check and convert the data, and write out text in a new format.
n Once the programmer had written the program, he gave it to an
analyst, whose job was to process each day’s textual input and produce the required output.
n An error during a day’s run meant that either the input text or the
software contained an error. The company handled each error the same way
n If the input data was incorrect, the analyst could change it and
continue processing. If fixing the data wasn’t possible, the chief programmer had to fix and debug the source program. Because
DSCS: Why change a successful business?
n Both the president and chief programmer saw the need for change.
n The president wanted the organization to be compliant with CMM Level 3.
5 New contracts might be available from customers who insisted on CMM Level 3 from their suppliers. Such a rating seemed like a good discriminator for a small company in their market place.
n On the other hand, the chief programmer saw a business with multiple
independent systems.
5 Each time a program failed, he had to modify and debug the program. He was an expert in the application domain but not in software development.
5 The chief programmer saw himself as the potential single point of failure. g For example, when he learned about syntax processing, context-free grammars,
and programming tools such as Lex and Yacc, he was amazed at how much easier and more uniform they could make textual processing. He believed that a process improvement approach should eliminate the multiple versions of software
conversion tools that the company was developing and would simplify development.
DSCS: Measures Taken
n System architecture
5 Centralized servers to manage the data to be processed
n Software Architecture
5 Most DSCS programs have a similar function: converting text
g So, redesigning the software to use a common structure (for
example, using Yacc to parse input data) should let programmers handle multiple programs more easily.
g Or creating a single set of programs to produce the output
formats.
g Differentiating between software architectural design and a
software development improvement plan
DSCS: Measures Taken
n Development Process
5 Recognition of key aspects
g understand the differences among system architecture, software
architecture, and supporting organizational and development processes 5 Commitment of Resources
g developing practices and software process improvement after assigning a
dedicated person to the cause 5 Process Asset Library
g DSCS spent time and effort to create a process assets repository for
organizational and project information
u A Web interface on the library makes it easier for end users to locate information. Also, library links are included in work products
5 Periodic Reviews
g Monthly meetings to review the status of projects and changes.
5 Terminology and Process Definition Standards
DSCS: Success Factors
n The organization now understands that it needs to
address system architecture, software architecture, and development processes if they are to grow
successfully.
n Their revised goal is to have new development
processes in place so that they can fully realize
gains next year. They’re beginning to rewrite existing programs to use a common software architecture
n Mainly two types of success factors
5 Process related
Success Factors
n Process-related Success Factors
5 Process isn’t just for the sake of process; rather, it should address the organization’s business goals and not just CMM compliance goals. For DSCS, it was a to implement a set of software engineering best practices.
5 Ordering the process development and implementation
activities on the basis of benefits and process groupings that support particular needs, rather than being strictly Key Process Areas (KPA) focused.
5 You can’t sustain process improvement without dedicated resources (even if only part-time).
Success Factors
n Organizational Success Factors
5 Identified 4 goals and 10 KPAs from the CMM to achieve the goals
5 Goal1
g to improve the company’s ability to accurately forecast software
development projects’ costs and schedules.
u use project plans that include work breakdown structure, schedule, and estimates for initial projects and implement a change control process to manage scope, schedule, and cost changes to existing projects.
5 Goal1
g to improve the company’s ability to reduce software development
time to market.
Success Factors
5 Goal 3:
g improve the company’s ability to achieve competitive-edge
quality.
u define industry best practices to support and manage the rapid growth of the company’s operations and to position the company for future procurements. They also plan to identify roles and responsibilities to allow for quicker, better decision making.
5 Goal 4
g to achieve CMM Level 3 on a fast track through templates,
train-the-trainer materials, access to experts, and other resources.
Effects on the Organization
n The company’s leaders now realize that because the
company is too large for one manager to do it all, they must delegate tasks. All three separate, distinct areas (system architecture, software architecture, and development
processes) must work in unison to support corporate goals.
n Providing process structure and the ability to understand,
manage, and measure development risks has a cost, and DSCS’s leaders are willing to spend the funds to achieve those goals.
n DSCS has established repeatable processes that more than
Sources
n [1]https://people.eecs.ku.edu/~hossein/811/Papers/c
mm.pdf
n [2]Dangle, Kathleen Coleman, Patricia Larsen,