Software Engineering Institute Carnegie Mellon

Editor
William E. Novak

Contributors
Julie B. Cohen
Anthony J. Lattanze
Linda Levine, PhD
William E. Novak
Patrick R. H. Place
Ray C. Williams
Carol Woody, PhD

 

CMU/SEI-2005-HB-006
December 2005

Acquisition Support Program

Unlimited distribution subject to the copyright.

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


Acknowledgments

Many people have contributed to creating these guidelines, both directly and indirectly. It would not have been possible to provide guidance on such a wide range of software acquisition topics without the combined expertise and prior work of many others. We would like to thank our sponsor, the United States Army Strategic Software Improvement Program (ASSIP), for the opportunity to perform this work.

We would like to thank the Software Engineering Institute (SEI) research programs that have researched, developed, and published the work and ideas represented here, including the Acquisition Support Program, Dynamic Systems Program, Networked Systems Survivability Program, Product Line Systems Program, and the Software Engineering Process Management Program.

In particular, the editor would like to thank Joseph Elm, Julie Cohen, Jeannine Siviy, Wolfhart Goethert, Mary Catherine Ward, Ray Williams, and the many other authors and contributors to the SEI's Software Acquisition Survival Skills course, on which several of the guidelines are based. We are also indebted to Lisa Brownsword, Patricia Oberndorf, and Dr. Carol A. Sledge for their work in developing the SEI's COTS-Based Systems for Program Managers course.

We would also like to thank all of the people within the SEI who provided technical review and comment, including: Cecilia Albert, John Bergey, Julie Cohen, Robert Ferguson, Donald Firesmith, Mary Ann Lapham, B. Craig Meyers, Patricia Oberndorf, Patrick Place, John Robert, and Ray Williams. Due to their efforts and expertise, this is a much better document.

Finally, the authors are most grateful for the essential help we have received from our editor, Susan Kushner, and our document designers, Stacy Mitchell and Melissa Neely. Their efforts have resulted in a clearer and simpler document.

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


Introduction

"Good judgment is usually the result of experience. And experience is frequently the result of bad judgment. But to learn from the experience of others requires those who have the experience to share the knowledge with those who follow."

--Barry LePatner

Background and Rationale

The software acquisition practitioners assigned to government Program Management Offices (PMOs) have policy and regulations they must follow, but they also need concise, practical guidance to assist them. Good information on acquisition planning and strategy is available, but it is scattered by topic across many different publications. Program managers (PMs) and their staffs want to know the practical "lessons learned" of acquisition planning with enough context to determine their applicability to their program, and sufficient detail to be actionable.

Objectives

The key objectives of the acquisition planning guidelines presented in this handbook are to

Approach

The guidance contained in this handbook has been collected from SEI publications and courses, and edited into condensed guidelines. It reflects a broad scope of experience, and provides lessons and best practices gained from the SEI's work with acquisition programs throughout the United States government.

A key element in presenting practical guidance is to ground it in a real-world situation. In this handbook, each acquisition guideline is associated with a short scenario that offers a compelling rationale for the guidance.

In an effort to create a relevant and accessible document, each guideline is presented in a format that focuses on recognizing and preventing problems. Each guideline is supported by

  1. a guideline statement
  2. a scenario that exemplifies the practice or issue
  3. an analysis of the scenario and discussion of the broader issues
  4. a set of "Required Actions" that recommend preventative or corrective actions to be taken
  5. "Danger Signs" that a PMO should look for as symptoms that a program is going "off course"
  6. links and references to practical "how to" information

Target Audience

The intended audience for this handbook is the PMO staffs that acquire software-intensive systems. The handbook is meant to provide program managers and PMO staffs with ideas and resources for addressing an aspect of their acquisition strategy, specifying actions that should be taken, and identifying danger signs to look for when evaluating progress. A basic knowledge of both software development and acquisition practices is assumed.

Acquisition Planning and Strategy

According to the Defense Acquisition University (DAU), an acquisition strategy is a high-level "road map for program execution from program initiation through post-production support."1 A strategy is iterative, it varies in level of detail for different phases of the acquisition, and it should be updated periodically as the program's circumstances change. DoD Instruction (DoDI) 5000.2 requires that an acquisition strategy be delivered for all programs at Milestones B and C and at the Full-Rate Production Deployment Review.2

In contrast, an acquisition plan is a Federal Acquisition Regulation (FAR) document that is typically required for one contract within an acquisition. The DAU Glossary claims that it reflects "...the specific actions necessary to execute the approach established in the approved acquisition strategy and guiding contractual implementation."3 However, the creation of an acquisition plan should not be confused with the activity of acquisition planning, which includes the creation and maintenance of an acquisition strategy.

Definitions of these terms are provided by the DAU Defense Acquisition Guidebook, but they are not as specific as we might wish:

The following statement from the Air Force Guidelines for Successful Acquisition and Management of Software-Intensive Systems5 provides perhaps the best description of an acquisition strategy:

Acquisition strategy has been defined as a master plan, a road map, a blue print, and a plan-to-plan by to achieve program goals and objectives. Your acquisition strategy serves as a means for reducing the odds of program defeat through the organized preparation of a plan to minimize software risk. It serves as a guide to direct and control the program, and as a framework to integrate those functional activities essential to fielding a totally operational system--not just pieces of hardware and software.
The conceptual basis of the overall plan--the objective--is what you must follow during program execution. It also serves as the basis for all program management documents, such as the Acquisition Plan, the Test and Evaluation Master Plan (TEMP), the Integrated Logistics Support Plan, and the Systems Engineering Master Plan (SEMP).

Guidance Selection and Organization

The DAU Defense Acquisition Guidebook defines and describes in detail a set of 18 acquisition strategy considerations, which are the principal areas of consideration to be made when planning and developing an acquisition strategy. We have organized these guidelines into the Defense Acquisition Guidebook categories because they represent the way the DoD views acquisition strategy. The guidelines presented in this handbook address one or more of these acquisition strategy considerations. The list below shows the guidelines grouped according to the acquisition strategy consideration they support.

The topics for the acquisition planning guidelines included in this handbook all represent areas in which a significant amount of work has been done at the SEI. They were selected based on the following criteria:

This handbook is not complete or comprehensive with respect to acquisition planning guidance. Our intent is to provide an initial set of guidelines that offers a useful starting point for software-intensive acquisition programs. If this type of collected guidance is well received and proves to be useful, this handbook could be the basis for future work to expand this set of guidelines to provide more detailed guidance, or cover additional subject areas.

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 1: Open Systems Approach

Contributor: Patrick R. H. Place

GUIDELINE

Successfully using an open systems approach requires carefully selecting from the applicable standards, gaining expertise in conformance management, and adopting a willingness to invest more up-front to achieve long-term benefits.

Scenario

A program that was constructing a "system of systems" (multiple interoperating systems) issued a mandate that all constituent systems would be required to "use CORBA," the Common Object Request Broker Architecture. The program then learned that because the CORBA standard was loosely specified, there could be different implementations of CORBA, even though they all formally "conformed" to the standard. The CORBA standard--like most standards--had sections in it where choices were left to the developers implementing it. The result was that one contractor built one product with one set of choices and another contractor built another very different product using different choices, and yet in the end both conformed to the CORBA standard. Unfortunately, the different implementations could not work together.

Analysis

The Defense Acquisition Guidebook (DAG) defines an open system as "...a system that employs modular design tenets, uses widely supported and consensus based standards for its key interfaces, and is subject to validation and verification tests to ensure the openness of its key interfaces."

The point of the open systems scenario above is that it is critical to know the details of the standards you are selecting and to look--ahead of time--for potential problems. This is not easy to do.

Standard interfaces are only the first part of an open systems approach. Equally important is an Open Systems Architecture for the system that provides a structure in which to place the standards. Then you need to examine those standards, specifying for your system how the standards fit together, what options of the standards will and will not be used, how implementation-specific parameters will be set, and so on. Some specific cautions regarding the use of open standards

Standards bodies can be biased since members pay to participate. More money means more control over the standard, which can advance a specific company's position. Be aware of such biases if a commercial implementation of the standard will be purchased.

The variety of competing standards makes choosing among them more difficult.

Whether the selection of standards is made by the contractor or the PMO, the PMO should ensure that the standards are compatible with one another, and that a system composed of components conforming to those standards is both achievable and desirable--in other words, it will perform acceptably.

Develop expertise in conformance management.

Expect changes in schedules and costs.

Increased up-front costs for longer term benefits: When using open standards, the initial cost increases, while the long-term costs may decrease. The initial increase is due to 1) performing the selection of standards and profile development, 2) completing a market survey to find conforming commercial items, 3) setting up conformance certification testing, and 4) training personnel to adopt an open systems strategy. Also, some architectural decisions depend on the use of standards, so these decisions must be made earlier. The long-term benefits can include 1) being able to purchase commercial items that meet the standards, 2) competition between vendors supplying conforming products and support, 3) some conformance testing that may have already been performed by the vendor. Also, contractors who are familiar with using open systems will not need training or time to become experienced with the approach.

Required Actions

For determining conformance

For maintaining standards

For selecting among contractors

For planning budgets

For choosing between strategies

Danger Signs

Implementation Resources

Meyers, B. Craig & Oberndorf, Patricia. Managing Software Acquisition: Open Systems and COTS Products. Boston, MA: Addison Wesley, 2001 (ISBN 201704544).

Place, Patrick R. H. Guidance on Commercial-Based and Open Systems for Program Managers (CMU/SEI-2001-SR-008, ADA392367). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2001.

 

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 2: Commercial Off-the-Shelf (COTS)-Based Systems

Contributor: Dynamic Systems Program

GUIDELINE

Selecting a COTS-based development approach means the program office must assess the maturity of the commercial technology relative to the program's needs, reconcile the processes assumed by the COTS tool with the existing user processes, and manage the continuous evolution of the COTS technology and products.

Scenario

When replacing a custom-developed system, an organization's objective was to meet all of the collected needs of many different user sites, but still allow each site to follow its own customized business processes. The approach was to create a set of customized extensions to a few COTS products that they would integrate using custom-built code. What happened was

Analysis

While increasingly popular, COTS-based development presents various issues for acquisition:

A COTS-based acquisition approach demands a long-term commitment, as well as long-term acquisition, engineering, and business strategies, since expectations of short-term payoffs may be unrealistic. The potential benefits of using COTS components, such as lower construction and sustainment costs, faster development, or the ability to leverage new technology and the commercial marketplace, can require an early investment of both money and effort. Creating a system architecture that can evolve as the COTS products evolve and mature can require a greater expenditure in the short term, but can pay off in the medium to long term. If the program fails to keep its investment in a COTS-based system current and falls too far behind in product upgrades, the program may not be able to recover. Thus the acquisition strategy, contract vehicles, and stability of funding must be flexible enough to support the program for the long term.

In conclusion, you cannot assume that, as a routine acquisition cost-reduction strategy, incorporating COTS components is advantageous. There must be a reasoned judgment--a business case analysis--made about the applicability of COTS components to a given system.

Required Actions

Danger Signs

Implementation Resources

Albert, Cecilia & Brownsword, Lisa. Evolutionary Process for Integrating COTS-Based Systems (EPIC): An Overview (CMU/SEI-2002-TR-009, ADA405844). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2002.

Meyers, Craig B. & Oberndorf, Patricia. Managing Software Acquisition: Open Systems and COTS Products. Boston, MA: Addison Wesley 2001 (ISBN 0201704544).

Place, Patrick R. H. Guidance on Commercial-Based and Open Systems for Program Managers (CMU/SEI-2001-SR-008, ADA392367). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2001.

SEI COTS-Based Systems Lessons Learned Web Pages

SEI Education and Training: COTS-Based Systems for Program Managers. For more information about this course, visit .

 

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 3: Software Architecture

Contributor: Anthony J. Lattanze

GUIDELINE

Developing a successful software architecture requires defining the quality attributes that drive the architecture, designating a chief architect, documenting the architecture with all views needed to communicate with stakeholders, and regularly evaluating the architecture as it is developed.

Scenario

A large acquisition program was assigned the challenging task of developing a system having a common computing and network infrastructure. Program management understood that designing a quality software architecture would be critical to the success of the large, integrated system.

Early in the acquisition process, the program began to manage the software architecture development process by focusing on software architecture support for system quality requirements. They used business drivers and stakeholder input to identify specific software architecture system quality needs such as reliability and maintainability. The group of diverse stakeholders often expressed conflicting system quality needs, so before and after the contract was awarded, the program office hosted SEI Quality Attribute Workshops6 (QAWs) to clarify these needs. In addition, the program office provided SEI software architecture training for program office and contractor personnel to improve the software architecture capability across the team.

After the contract was awarded, the contractor began developing the software while the program office continued to focus on the software architecture by analyzing how the software architecture supported specific system qualities such as reliability. They used an SEI-developed scenario analysis approach called the Architecture Tradeoff Analysis Method7 (ATAM) which helped identify software architecture trade-offs and risks and facilitated the gathering of input from many stakeholders.

The program office is realizing the benefits of their early and ongoing focus on software architecture, such as avoiding typical but costly software architecture mistakes, increasing confidence in their technical and architectural path, and better positioning the program for long-term sustainment. The focus on software architecture continues through development by obtaining stakeholder input to system quality needs, documenting the software architecture, maturing software architecture support for specific system quality concerns, and identifying software architecture tradeoffs and risks.

Analysis

System architectures define the context in which the parts or elements of the system will be designed and developed (or acquired). Software architectures perform the same function for the software elements, but both software and system architectures are essential for ensuring that the resulting system is fit for the intended purpose.

Some of the most critical aspects to developing successful software architectures are

Required Actions

Danger Signs

Implementation Resources

Barbacci, Mario R. SEI Architecture Analysis Techniques and When to Use Them (CMU/SEI-2002-TN-005, ADA413696). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2005.

Bergey, John K. & Clements, Paul C. Software Architecture in DoD Acquisition: A Reference Standard for a Software Architecture Document (CMU/SEI-2005-TN-020). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2005.

Bergey, John K. & Fisher, Matthew J. Use of the Architecture Tradeoff Analysis Method (ATAM) in the Acquisition of Software-Intensive Systems (CMU/SEI-2001-TN-009, ADA396096). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2001.

Bergey, John K. & Wood, William G. Use of Quality Attribute Workshops (QAWs) in Source Selection for a DoD System Acquisition: A Case Study (CMU/SEI-2002-TN-013, ADA405848). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2002.

Clements, Paul; Bachmann, Felix; Bass, Len; Garlan, David; Ivers, James; Little, Reed; Nord, Robert; & Stafford, Judith. Documenting Software Architectures: Views and Beyond. Boston, MA: Addison Wesley, 2002 (ISBN 0201703726).

SEI Education and Training: Software Acquisition Survival Skills. Software Architecture Module. For more information about this course, visit http://www.sei.cmu.edu/products/courses/sass.html.

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 4: Software Sustainment

Contributor: William E. Novak

GUIDELINE

Key considerations in selecting organic sustainment vs. Contractor Logistics Support include the software complexity, the experience of the sustainment organization with the system type and technology, and any plans to continue further development after the system enters sustainment.

Scenario

A communications system acquisition was nearing completion of a major upgrade of the system to use a new underlying technology (Phase 2), which made extensive use of COTS components. The initial version of the system had been moved into sustainment, which was being performed by the contractor who had developed both the original system (Phase 1) and the upgraded system (Phase 2). Even as Phase 2 was being completed, the requirements for Phase 3, a second upgrade, were approved. A review was conducted to determine if both the system and the sustainment organization were ready to make the transition to sustainment. The review found deficiencies in both areas, determining that the program office had neither funded nor performed sufficient sustainment planning. While their default intention was to pursue organic sustainment at another site, rather than commercial sustainment (using Contractor Logistics Support, or CLS), the program office still had not produced adequate documentation or training for the system to be successfully transitioned to a different organization for sustainment. In addition, the identified sustainment organization did not have sufficient expertise in either COTS-based systems or the required communications technology to take on sustainment responsibilities without substantial additional training. The program office decided to delay the transition to sustainment by a year to complete their sustainment transition planning and to create the necessary documentation and training. The sustainment organization decided to contract with the original developer to perform the sustainment for an initial two-year period during which the sustainment organization could come up to speed on both the system and on COTS technology issues. However, these delays could have been avoided if explicit planning had been done well in advance with respect to how sustainment for the system would be performed.

Analysis

A good working definition of software sustainment is, "The processes, procedures, people, materiel, and information required to support, maintain, and operate the software aspects of a system." Software sustainment encompasses all aspects of supporting, maintaining, and operating the software aspects of a system. It is a superset of software maintenance activities, which include corrective, adaptive, preventative, and perfective modifications. Software sustainment also addresses other issues not typically included in maintenance such as operations, documentation, deployment, security, configuration management, user and operator/administrator training, and user support.8

The scenario above illustrates the results of neglecting some of the key issues required in preparing a system for the transition to sustainment. Much of the preparation must be planned and executed from the beginning of the acquisition, so that the essential activities have been completed and the required documents are in place when it is time for the transition.

At a minimum, the acquisition strategy should identify whether the source of sustainment support will be commercial (CLS) or organic (government). Choosing between these alternatives requires evaluating both the system's software complexity and the ability of the sustainment organization to manage it. In addition, the strategy should take into account the sustainment organization's experience working with analogous kinds of systems and any plans for further development after sustainment begins, which could create significant configuration management challenges for simultaneously maintaining and developing two different baselines of the system.

Required Actions

For general sustainment:

For an organic (or different contractor) sustainment approach:

Danger Signs

Implementation Resources

Acquisition Community Connection (ACC). Sustainment Planning Resources (2004).

Bergey, John; Smith, Dennis; & Weiderman, Nelson. DoD Legacy System Migration Guidelines (CMU/SEI-99-TN-013, ADA370621). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 1999.

Cohen, Sholom; Dunn, Ed; & Soule, Albert. Successful Product Line Development and Sustainment: A DoD Case Study (CMU/SEI-2002-TN-018, ADA407788). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2002.

Seacord, Robert; Plakosh, Daniel; & Lewis, Grace A. Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices. Boston, MA: Addison-Wesley, 2003 (ISBN 0321118847).

 

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 5: Requirements Development

Contributor: Software Engineering Process Management Program

GUIDELINE

The process of developing software requirements consists of designating a requirements team, defining a process for specifying requirements, applying use cases and scenarios to analyze the requirements, and involving stakeholders to validate the requirements--and doing so throughout development.

Scenario

In one program charged with defining a new COTS-based management information system (MIS), the process used to develop the software requirements did not capture the existing business processes versus the desired business processes or create a mapping between them. The "mapping" approach had been discouraged because the field office sites each used different business processes with the existing system. Instead, employees from the field sites were asked to submit their requirements for the new system. The number of requirements reached over 2,000, with some being very specific, while others were so basic or general that they were unusable. As a result, the requirements were not very useful to the contractor in defining the system.

A key issue was that the requirements did not address the end-to-end operational processes across the system and consequently, were not testable. Since testing was based on the requirements, executing a test script could prove that a given function worked, but not that a complete process could be performed from start to finish.

The contractor convinced the PMO to discard the requirements-based approach, pointing out that while the deliverable might meet the requirements, the program might not have a workable system. Ultimately, the program wasted almost a full year of effort before changing their focus to the business processes.

Analysis

The program in the scenario initially adopted an approach to developing requirements that did not allow them to validate full system operation, as defining use cases and operational scenarios could have. The Capability Maturity Model Integration (CMMI) defines a process framework for developing requirements that identifies three high-level steps to be followed

Keep all of the system stakeholders as directly involved in the requirements development and management process as possible to help prevent or mitigate any miscommunications that may arise during the negotiation of requirements trade-offs.

One key to successfully developing requirements is to create a robust set of use cases to specify the functional requirements, concentrating first on use cases that typify the system's intended usage.

Similarly, the use cases can be used to drive "storyboards" for specifying the system's user interfaces, and can also be used to define system acceptance criteria. Even components without a user interface (a "black box") can be treated as though they have one by asking what visibility or data is needed to determine if the box functions properly.

Developing "quality attribute"9 scenarios is another requirements development technique used to specify quality requirements in a way that facilitates later evaluation as to whether the software architecture can meet those requirements. Quality attributes are identified for the system based on the key needs that drive the program from both a mission and a business perspective--be it performance, security, reliability, interoperability, or other attributes. Quality attributes must be clearly and quantifiably specified.

Requirements development also plays a role in the acquisition approach a program chooses. For example, if all customer requirements for an unprecedented system are defined up-front in a single-step acquisition approach and given to the contractor to implement, this early "freezing" of the requirements can result in a system that is obsolete by the time it is delivered. Furthermore, by defining all of the requirements before development begins, requirements improvements that might become possible due to new technology or a better understanding of the system are precluded. An evolutionary acquisition approach would allow these requirements to be expanded and developed iteratively.

In general, develop software requirements through an iterative process at both the customer (system) and product (component) levels. Start with a high-level description of the functionality that needs to be provided and refine it as more is understood about the possible implementation alternatives. Iterate until the identified software requirements meet your criteria, which should include being complete, consistent, unambiguous, verifiable, documented, and testable.

Required Actions

Danger Signs

Implementation Resources

SEI Education and Training: Software Acquisition Survival Skills. It All Begins With Requirements Module. For more information about this course, visit http://www.sei.cmu.edu/products/courses/sass.html

Software Engineering Institute, Carnegie Mellon University. CMMI-SE/SW/IPPD V1.1 Continuous Representation. 2002. Pittsburgh, PA.

Woody, Carol. Eliciting and Analyzing Quality Requirements: Management Influences on Software Quality Requirements (CMU/SEI-2005-TN-010). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2005.

 

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 6: Requirements Management

Contributor: Software Engineering Process Management Program

GUIDELINE

Software requirements management requires having a clear baseline, change control, bi-directional traceability to work products, metrics on stability, and continuous stakeholder involvement.

Scenario

One program was upgrading two legacy financial systems and simultaneously integrating them into a single system. A requirements baseline was not established for the program, either before or during the upgrade and integration. While the contractor attempted to establish a baseline set of requirements and submitted it to the PMO, the PMO would not sign off on it. The PMO's explanation was that since it was a small office, they did not have sufficient staff or expertise to review or approve it. The resulting lack of a formal requirements baseline led to a number of different problems for the program.

One problem was that the requirements were volatile. Since they were not fixed by a baseline, every time the prototype system was shown or demonstrated, new requirements in the form of suggestions were added to the program. Another problem was contention between the PMO and the contractor about whether adding particular capabilities not yet present in the system were considered enhancements or corrections of deficiencies.

If adding the capability qualified as an enhancement, the PMO would have to pay for it; if it were deemed to be a deficiency, the contractor had to fix it at their expense. Unfortunately, the only way to determine the difference between an enhancement and a discrepancy is to have a firm requirements baseline to compare the capability against, which did not exist. This caused strained relations between the PMO and the contractor, and ultimately the program delivered only 75% of the desired capability to its users.

Analysis

The lack of a requirements baseline had a significant impact on the program described in the scenario. The creation and maintenance of a requirements baseline is the focus of requirements management. The CMMI process framework for managing requirements identifies the high-level steps to be followed for this area. These steps are listed here, along with some guidance in each area.

The government PMO is generally responsible for the customer (or system) requirements, while the contractor is responsible for the derived product requirements, which include the software requirements. However, the government needs to be concerned both with managing (and developing) the customer requirements within the PMO, and with monitoring the contractor's product requirements management (and development) activities. The PMO should give these two tasks equal importance. To take this one step further, the PMO also has oversight responsibility for how requirements are decomposed and allocated down to the subcontractors.

The PMO and contractor must agree on the priority and allocation of requirements to the planned builds of the system. There should be a clear policy that is consistently followed in this allocation. For example, there needs to be a conscious decision on whether to implement the highest risk requirements first (to "burn down" program risk as early as possible) or to implement the highest value requirements first (to demonstrate important progress to stakeholders).

Required Actions

Danger Signs

Implementation Resources

SEI Education and Training: Software Acquisition Survival Skills. It All Begins With Requirements Module. For more information about this course, visit http://www.sei.cmu.edu/products/courses/sass.html.

Software Engineering Institute, Carnegie Mellon University. CMMI-SE/SW/IPPD V1.1 Continuous Representation. 2002. Pittsburgh, PA.

 

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 7: Operational Information Assurance

Contributor: Carol Woody, PhD

GUIDELINE

The introduction of a new system into an operational environment can include extensive operational changes. Existing operational procedures cannot be assumed to be sufficient. A risk evaluation of the targeted operational system is critical for maintaining effective information assurance when a new system is introduced.

Scenario

The contract for the development of a major federal agency system specified that current operational security requirements must be applied to the new system and the contractor was given a copy of the established operational procedures. For more than twenty years, this process was standard procedure for introducing a new system into the existing environment. However, in this case, the development effort constituted a major modernization of the existing environment. The existing operational procedures hampered and in some cases, hurt the development process and did not take into consideration the information assurance needs of the target environment. Validation of delivered information assurance was limited to penetration testing on the final production environment. Testing also did not consider the increased risk inherent in the move from a mainframe environment to a distributed UNIX environment.

A risk evaluation was performed on the developed system but only risks within the system were considered. No evaluation was performed to identify the risk to existing operations caused by introducing an entirely new operating environment into the existing one.

Analysis

The implementation of a new system represents risk to both the new development and the current operational environment. Existing operational mechanisms used to address risk are not always applicable, especially when the technology platform changes, COTS components are used, and integration is expanded. Each project must be evaluated to determine the risk of information assurance failure with regard to the mission of the organization.

A risk assessment must be part of each major development milestone and the assessment must consider the target operational environment, which may differ drastically from the current one.

Required Actions

Required deliverables must be subject to information assurance review by independent verification and validation (IV&V)

Incorporate clear quality targets for information assurance within the requirements

Danger Signs

Implementation Resources

Alberts, Christopher; Dorofee, Audrey; & Woody, Carol. Considering Operational Security Risks During System Development (2002).

Defense Information Systems Agency (DISA). 2004 DISA Contracts Guide (2004).

DoD. Department of Defense Directive Information Assurance (IA) (DoD 8500.1) (2002).

DoD. Department of Defense Instruction Information Assurance (IA) Implementation (DoDI 8500.2) (2002).

Information Assurance Technology Analysis Center (IATAC). Technical Area Tasks (TATS). (2005).

National Institute of Standards and Technology (NIST). Guide for Security Certification and Accreditation of Federal Information Systems (NIST Special Publication 800-37) (2004).

National Security Agency (NSA). National Security Agency Central Security Service Frequently Asked Questions - IA. (2005).

 

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 8: Information Assurance for COTS Sustainment

Contributor: Carol Woody, PhD

GUIDELINE

The transition to sustainment for systems containing COTS components must make special provisions to enable the sustainment organization to evaluate the impact of COTS component changes, independently assess the criticality of security flaws, and accommodate additional support for IA testing and validation.

Scenario

A system built using COTS components is scheduled to enter sustainment when a current iteration of spiral development is complete. At this time, the Authority to Operate (ATO) will be issued for three years; however, the typical refresh cycle on the COTS products within the system is less than two years. In addition, patches are periodically issued by the COTS vendors to address critical security problems in the software. After a patch becomes available, the potential of an attack using that flaw increases substantially for the systems that do not apply the patch.

Each time a COTS component is patched, a thorough revalidation of the system is required to ensure that the vendor's changes have not broken integration mechanisms implemented during system development. Should changes in the COTS components impact system functionality and performance in any way, skilled developers must be available to fix the system. For the sustaining organization to successfully support the COTS components, a fully functional development environment for inserting and validating changes must be available, in addition to a robust production-like test environment for performing revalidation tests.

Analysis

In the scenario above, the sustainment organization may not be able to limit upgrades to a single annual configuration release, as they have in the past. Each COTS component is changing at a different rate based on vendor support decisions. The impact of each change must be evaluated against the mission that component performs in the fielded system. The sustainment organization must acquire sufficient knowledge of the fielded system to evaluate the impact.

In addition, the sustainment organization cannot rely on a vendor to determine the criticality of a security flaw. The vendor can provide a range of concern, but skilled security experts familiar with the use of the component within the fielded system must evaluate each flaw based on the risk to the mission of the system and the potential impact. The Defense Information System Agency (DISA) Information Assurance Vulnerability Management (IAVM)10 can be used as a basis for evaluating components being monitored by DISA.

COTS components continuously change based on vendor support decisions and identified security flaws. Using these components requires the capability to adjust fielded systems with regular upgrades and corrections to maintain information assurance. This level of change during sustainment is greater than that of previously supported code. Meeting information assurance requirements during sustainment of COTS components also requires additional support for testing and validation.

Required Actions

Provide the following information assurance artifacts at transition to sustainment:

Responsibilities of the sustainment organization are to

Danger Signs

Implementation Resources

Common Criteria Evaluation and Validation Scheme (CCEVS).

DoD. Department of Defense Instruction Information Technology Security Certification and Accreditation Process (DITSCAP) (DoDI 5200.40). http://iase.disa.mil/ditscap/ (1997). Supplemented by DoD 8510.01-M, Applications Manual (2000).

DoD. Department of Defense Directive Information Assurance (IA) (DoD 8500.1) (2002).

DoD. Department of Defense Instruction Information Assurance (IA) Implementation (DoDI 8500.2). (2002).

DoD. Defense Information Assurance Certification and Accreditation Process (DIACAP). (Future replacement for DITSCAP based on DoD 8500.1 and 8500.2 controls; compliant with FISMA.

Federal Information Security Management Act (FISMA) Implementation Project.

Information Assurance Support Environment (IASE). IA Document Library.

International Common Criteria for Information Technology Security Evaluation (basis for NIAP evaluation).

National Information Assurance Partnership (NIAP).

National Institute of Standards and Technology (NIST). Guide for Security Certification and Accreditation of Federal Information Systems (NIST Special Publication 800-37) (2004).

National Institute of Standards and Technology (NIST). Security Considerations in the Information System Development Life Cycle (NIST Special Publication 800-64) (2004).

Operationally Critical Threat, Asset, and Vulnerability Evaluation (OCTAVE)

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 9: Information Asset Protection

Contributor: Carol Woody, PhD

GUIDELINE

All information assets critical to the mission of the organization must be protected. Management cannot assume that appropriate protection is provided as a by-product of normal use. Protection must be planned, established, and monitored.

Scenario

A network administrator, just before being dismissed, set up a software time bomb that destroyed a group of applications and deleted databases a week later. Since the backup files were missing and no one had been assigned to assume responsibility for the file server and operating system, the problem was not corrected in a timely manner. Employees were sent home for several days, temporary employees were dismissed, and technicians scrambled to rebuild the data from paper documents and older electronic versions. Copies of important documents had to be retrieved from other organizations to rebuild the information resources. The work of the organization was seriously delayed and management was embarrassed to admit to such poor technical coverage of the organization's information assets.

Analysis

Most organizational work relies heavily on the availability of information resources. It is critical that these assets are protected to ensure availability. Identification of critical assets and determination of the appropriate level of protection for them requires analysis and planning.

Information assets include all forms of electronic content that require control. It also covers important intellectual property, confidential and classified information, research data, and personal identifiable data that is sensitive but unclassified.

Required Actions

Identify critical assets and protection needs

Analyze current protection efforts

Analyze information security risks to determine sufficiency of existing protection efforts

Danger Signs

Implementation Resources

Alberts, Christopher & Dorofee, Audrey. Managing Information Security Risks: The OCTAVE Approach. Boston, MA: Addison-Wesley, 2003 (ISBN: 0321118863).

Alberts, Christopher; Dorofee, Audrey; Stevens, James; & Woody, Carol. Introduction to the OCTAVE Approach (2003).

Allen, Julia. Governing for Enterprise Security (CMU/SEI-2005-TN-023). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2005.

Caralli, Richard A. The Critical Success Factor Method: Establishing a Foundation for Enterprise Security Management (CMU/SEI-2004-TR-010, ESC-TR-2004-010) Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2004.

Cyber Security Industry Alliance (CSIA). Ten Steps for Securing Electronic Health Care Systems. (2005).

Ellison, Robert J.; Mead, Nancy R.; Longstaff, Thomas A.; & Linger, Richard C. "The Survivability Imperative: Protecting Critical Systems." CrossTalk Vol. 13, No. 10 (October 2000): pp. 12-15, 25.

Microsoft TechNet. The Security Risk Management Guide (2004).

National Institute of Standards and Technology (NIST). Guide for Developing Security Plans for Information Technology Systems (NIST Special Publication 800-18) (1998).

National Institute of Standards and Technology (NIST). Security Self-Assessment Guide for Information Technology Systems (NIST Special Publication 800-26) (2001).

National Institute of Standards and Technology (NIST). Risk Management Guide for Information Technology Systems (NIST Special Publication 800-30) (2002).

National Institute of Standards and Technology (NIST). Volume I: Guide for Mapping Types of Information and Information Systems to Security Categories, Version 2.0 (NIST Special Publication 800-60) (2004). National Institute of Standards and Technology (NIST). Contingency Planning Guide for Information Technology Systems (NIST Special Publication 800-34). http://csrc.nist.gov/publications/nistpubs/800-34/sp800-34.pdf (2002).

 

 

 

 

[Abstract]   [Acknowledgements]   [Introduction]   [Guideline 1: Open Systems Approach]   [Guideline 2: Commercial Off-the-Shelf (COTS)-Based Systems]  
[Guideline 3: Software Architecture]  
[Guideline 4: Software Sustainment]   [Guideline 5: Requirements Development]   [Guideline 6: Requirements Management]  
[Guideline 7: Operational Information Assurance]  
[Guideline 8: Information Assurance for COTS Sustainment]   [Guideline 9: Information Asset Protection]  
[Guideline 10: Software Testing]  
[Guideline 11: Software Risk Management]   [Guideline 12: Software Metrics]   [Guideline 13: Software-Based Award Fees]  
[Appendix: Acronyms and Abbreviations
]   [PDF File]


GUIDELINE 10: Software Testing

Contributor: Julie B. Cohen

GUIDELINE

Successful software testing is tightly tied to the requirements, tests all software products needed by the system at the required levels, and addresses "non-functional" as well as functional requirements.

Scenario

A PMO was preparing to issue an RFP for the networking segment of a complex communications system. The program was aware that in a software-intensive system, especially one that would need to integrate with many different contractors, testing would be critical and could not be left until the end.

As a result, the overall test program became a focus area in the RFP. Bidders were asked to describe their approach to 1) leading edge-to-edge network integration, testing, and verification, 2) providing a comprehensive plan for segment-level testing, 3) supporting the testing done by the other segment contractors, and 4) supporting full system interoperability testing.

The RFP required bidders to describe the simulation and testbed facilities and tests for testing and validating the design, and hardware needs for design, requirements, verification, and test. They had to describe their planned support for the system engineering test and verification processes for the system, development of the system test and verification plan (including COTS product testing plans), and their plan to integrate and test the final implementation, including the system engineering methods and tools.

The PMO was aware that, due to the complexity of the system, they did not have all of the expertise they needed to fully specify their testing needs or to evaluate the proposals properly. They requested and received help from a government system integration group who acted as advisors on creating the RFP language and reviewed the testing portions of the proposals during source selection.

The result of this approach was that bidders were forced to be very detailed in their proposals regarding testing and the proposals could be evaluated on the credibility (cost, schedule, and performance) of the test program. The PMO did not expect any of the proposals to include a "perfect" test program, but the award could be at least partially based on the testing proposed and any areas of concern based on the proposal could be resolved much earlier in the program.

Analysis

This scenario illustrates the extent to which a program can make testing a criterion for potential contractors when it poses a significant risk to the program's success. While testing may not be equally important in all programs, it requires an explicit strategy and cannot be treated as an afterthought.

The PMO must review the system test plans to ensure that software testing is adequately integrated into the overall test strategy. The PMO must also review software test plans for coverage and adequacy, enforce maintaining traceability from requirements to testing, and ensure that there is independent quality assurance from the start. It is also important to plan for visibility into software testing done by subcontractors. Specifically, plan to