IT440 - Effective Methods For Software and Systems Integration
IT440 - Effective Methods For Software and Systems Integration
Methods for
Software and
Systems
Integration
Boyd L. Summers
Effective
Methods for
Software and
Systems
Integration
Effective
Methods for
Software and
Systems
Integration
Boyd L. Summers
CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742
This book contains information obtained from authentic and highly regarded sources. Reasonable efforts
have been made to publish reliable data and information, but the author and publisher cannot assume
responsibility for the validity of all materials or the consequences of their use. The authors and publishers
have attempted to trace the copyright holders of all material reproduced in this publication and apologize to
copyright holders if permission to publish in this form has not been obtained. If any copyright material has
not been acknowledged please write and let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmit-
ted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented,
including photocopying, microfilming, and recording, or in any information storage or retrieval system,
without written permission from the publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.
com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood
Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and
registration for a variety of users. For organizations that have been granted a photocopy license by the CCC,
a separate system of payment has been arranged.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used
only for identification and explanation without intent to infringe.
Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com
Chapter 1 Introduction........................................................................ 1
1.1 Software and Systems Integration Methods..................1
1.2 Program and Project Planning........................................3
1.3 Systems Design...................................................................3
1.4 Software Requirements.....................................................4
1.5 Software Design/Development........................................4
1.6 Software Implementation.................................................4
1.7 Software Integration..........................................................5
1.8 Software and Systems Integration...................................5
1.9 Software Subcontractor....................................................5
1.10 Software and Systems Integration Delivery...................5
1.11 Product Evaluation............................................................6
1.12 Conclusion..........................................................................6
Further Reading............................................................................7
v
vi • Contents
2.11 Conclusion........................................................................17
Further Reading..........................................................................18
8.15 Requirements...................................................................77
8.15.1 Evidence of Requirements.................................78
8.16 Systems/Software Design................................................78
8.17 Integration........................................................................79
8.17.1 Team Coordination............................................79
8.17.2 Plans and Procedures........................................ 80
8.18 Execution......................................................................... 80
8.18.1 Acceptance Test................................................. 80
8.19 Continuous Integration..................................................81
8.19.1 Automation..........................................................81
8.20 Configuration Management...........................................81
8.21 Quality..............................................................................83
8.21.1 Peer Review Assurance..................................... 84
8.21.2 Software and Systems Assurance.....................85
8.21.3 Additional Quality Concepts............................85
8.21.4 Improving Quality and Productivity...............85
8.22 Customer Satisfaction.................................................... 86
8.23 Taking the Initiative for Change.................................. 86
Further Reading..........................................................................87
xi
xii • List of Figures
xiii
Preface
I have been motivated for years to write this book, Effective Methods for
Software and Systems Integration, due to integration challenges in military
and aerospace programs and software industries. My previous software
engineering book, Software Engineering Reviews and Audits, provided the
framework and detailed requirements for verifying and performing audits
during software design/development efforts. Performing reviews and
audits that are successful ensures compliance in specified requirements,
software design, testing, released configuration baselines, formal audits,
and customer satisfaction.
The military and aerospace programs and projects that design, build,
and test software work products effectively provide the framework to
receive subcontractor and customer contracts. Opportunities to work
in the technology field of software design/development provided me the
perspective and understanding of day-to-day software engineering activi-
ties. To have effective software and systems integration methods in place
provides an understanding of the importance of planning, coordination,
software design, configuration management, integration, testing, subcon-
tractors, and quality.
It is critical that integration schedules are addressed and coordinated
daily with affected software teams and organizations before delivery
inside software and systems integration environments. The software
design/development life cycles must be completed and configured before
baselines are released for test, integration, and functional checkouts.
Effective Methods for Software and Systems Integration delivers quality
work products on schedule to customers.
SUMMARY
It is critical to understand and implement the disciplines during the soft-
ware design/development life cycle prior to deliveries of software baselines
inside software and systems integration environments. Chapters in this
book define methods for dealing with project planning, systems design,
xv
xvi • Preface
xvii
About the Author
Boyd L. Summers is currently working as a
software engineer for the Boeing Company in
Seattle, Washington. With 30 years of experi-
ence in software engineering and as a leader
of multiple software development teams, Boyd
continues to solve complex technical chal-
lenges to ensure that system and software
engineering problems are addressed, resolved,
and compliant.
Boyd is also the author of the software tech-
nology book, Software Engineering Reviews
and Audits.
For questions about current and future software technology solutions,
e-mail [email protected].
xix
1
Introduction
1
2 • Effective Methods for Software and Systems Integration
Management
Product
Teams
Requirements Customers
Analysis & Design
Build
Installation
Integration
Delivery
Quality
Evaluation
FIGURE 1.1
Start with the right disciplines.
Rock Solid
This slogan is a reminder of the hard times and trials we face and the
experience while software and systems talk to each other and improve
software design and development efforts.
Introduction • 3
TABLE 1.1
Planning and Engineering Task
Software Risk
Engineering Tasks Communication Planning Management Deployment
Systems design x
Requirements x
Design x
Configuration control x
Integration x
Delivery x
Subcontractor x
Quality product x
evaluations
both software and systems are integrated and working together. The inte-
gration practices ensure that units tested are complete and documented
prior to the official delivery for the customer.
1.12 CONCLUSION
Defined software disciplines include an approach or method during the
software life cycle for a program and projects to provide a plan from
start-up to final delivery to the customer. Many methods were discussed
but the number one method is “quality first”; the other methods come in
second and so on as illustrated in Figure 1.2.
Many program and project meetings are called by senior managers; in
attendance are software and hardware engineers. In those types of meet-
ings, the hardware teams will sit on one side of the table, and the software
team will sit on the opposite side. That situation is unique, but that is how
it is at times. The senior managers and program and project managers
attend meetings and discuss with the two teams that the software or sys-
tem is not working correctly when it is time for delivery to integration
facilities. There is finger-pointing, and both teams may blame the opposite
team for the problem.
The senior manager then points to the program and project managers
and says, “Fix this problem.” That is why effective methods for software and
systems integration need to have hardware and software designers work-
ing together to solve issues that could have an impact on integration, qual-
ity, and delivery schedules to the customer.
Introduction • 7
Start-
Up
Program and “Effective Methods Flow”
Project Planning
Software &
Software Software & Software
Systems
Subcontractor Systems Integration
Integration
Integration
Delivery
Product
Evaluation
FIGURE 1.2
Effective methods flow.
FURTHER READING
Appleton, B., 2000. Patterns and software essential concepts and terminology. http://www.
cmcrossroads.com/bradapp/docs/patterns-intro.html.
Beck, K., 2002. Test-Driven Development: By Example, 2nd ed. Addison-Wesley, Boston, MA.
Curritt, P.A., M. Dyer, and H.D. Mills, 1986. Certifying the reliability of software. IEEE
Transactions on Software Engineering, SE-12(1), 3–11.
Gibb, T., 1988. Principals of Software Project Management. Addison-Wesley, Boston, MA.
Martin, R., 2000. Engineer’s Design Principals and Design Patterns. CRC Press, Boca Raton, FL.
Phadke, M.S., 1997. Planning efficient software tests. CrossTalk, 10(10), 11–15.
2
Program and Project Planning
2.1 INTRODUCTION
Program and project planning is important as it describes the necessary plan-
ning for software and system efforts during software design/development
life cycles. The definitions of systems design, software requirements and
design, configuration control, systems and software integration, subcon-
tractor involvement, deliveries, and product quality evaluations are criti-
cal to effective planning efforts. The initiation of planning starts at the
proposal phase with the customer. The result of defined software design/
development plans, processes, procedures, subcontractor support, and
effective software tools provides estimations for cost and schedules to be
available for teams that are impacted from the start of the proposal phase
to delivery of the work products to the customer.
2.2 PROGRAM
Before a program can require a plan, program objectives are defined and
technical and management disciplines are identified. This information
defines a reasonable estimate or cause for:
• Cost evaluations
• Risk management assessments
• Defined and documented tasks
9
10 • Effective Methods for Software and Systems Integration
• Manageable schedules
• Progress reports
• Required data
• Tasks or functions
• How the work product performs
• Quantitative mechanisms
When program objectives and the scope are considered, program manag-
ers can select the best approach that would eliminate “roadblocks” imposed
by scheduled delivery deadlines, budget concerns, and people issues.
2.3 PROJECT
The main reason that software projects are planned and controlled is to
eliminate any confusion that could occur. The teams that are expected
to provide work products struggle if projects are not planned, and con-
trol is not even an option. Studies showed that when schedule, cost, and
Program and Project Planning • 11
quality objectives are not a top priority, the project is not successful.
Although project success rates are improving, the failure rate can be high
when an objective such as quality attributes is not implemented. To avoid
failure, the project manager and a team of systems and software engineers
who build work products must develop an approach for project planning,
oversee activities, and ensure configuration control is in place.
Software projects get in trouble when uncertainty and confusion come
into play. There are times when systems and software designers do not
communicate, so defined requirements are not discussed in relation to the
developed work product. To eliminate this lack of communication, guide-
lines must be established, such as:
Projects can have a “daily standup” meeting. One a day can get to the
critical points or problems and resolve them that day. If there are con-
cerns, discuss issues with a project manager, then you do not waste other
team members’ time. In the past and currently, these meetings have an
impact on hours of work that could be accomplished. My philosophy is
that project managers need to have the confidence that their people can
take care of the daily routines, so the project managers do not need to
attend meetings for hours and hours. Time is lost; then, people are ready
to go home for the day knowing they have time sitting around listening to
people who have no impacts on what they are trying to accomplish that
day. Stop this right now. Let us go to work.
2.4 PLANNING
Communication planning principals define goals and objectives during
the course of program and project planning. The planning aspects require
a set of managers to understand not only their position but also the techni-
cal practices that support systems and software engineering and to define
the course that lies ahead. There are many planning ideas and decisions by
managers that are not accepted by team members due to the complexity
12 • Effective Methods for Software and Systems Integration
of change. What should you do? Under planning, the program and project
should consider eliminating chaos. The pressure on teams can be enor-
mous, and useful guidance can be provided, such as:
The term “project plan” is used throughout this process area to refer to the
overall plan for controlling the project. The project plan can be a stand-
alone document or be distributed across multiple documents. In either
case, a coherent picture of who does what should be included. Likewise,
monitoring and control can be centralized or distributed, as long as at the
project level a coherent picture of project status can be maintained.
Scope
Budget Schedule
Quality
FIGURE 2.1
Planned schedules.
Program and Project Planning • 15
2.9 TEAMWORK
An important element in all software programs and projects is teamwork,
the coordination and communication within teams applied to meet work
expectations. The effective methods for systems and software planning
coordination provide value for a program and projects to far exceed high
expectations. The software design/development energy and consistency
appeal to achieve high-performance goals and aspirations. By having trust
among teams, a cohesiveness is maintained in the work environment, and
planning schedules becomes much easier to coordinate and implement
within the team.
A plan developed is correct or successful when the team delivers a high-
quality work product on time to meet the schedule and works within the
budget. Remember that senior managers must encourage the program
and project managers to work together with their teams to become effec-
tive, respond to customer expectations, and ensure quality.
16 • Effective Methods for Software and Systems Integration
INVOLVE OTHER
Target
Recommendations,
Solutions, and Ideas
FIGURE 2.2
Team action cycle.
Determine Goals
Create Possibilities
Follow-Up
Test Outcomes
FIGURE 2.3
Team development life cycle.
2.11 CONCLUSION
Teams should not assume that being knowledgeable would offend others
or expect other team members to understand what offends you. The team
18 • Effective Methods for Software and Systems Integration
needs to recognize the relationship between the intent and impacts and
stay away from misunderstandings and the scenario of assigning blame.
Effective teams need to learn to manage their own reactivity and to be
curious about what caused the blame. Practice letting members of a team
know how something has an impact on you and rely on others’ experience
and expertise. There is no “I” in team.
FURTHER READING
Carnegie Mellon, November 2010. CMMI® for Development, Version 1.3, Improving Processes
for Developing Better Products and Services. Carnegie Mellon, Pittsburgh, PA.
Cassidy, A., 1998. CRC Press Practical Guide to Information Systems Strategic Planning. CRC
Press, Boca Raton, FL.
Morris, R.A., 2008. The Everything Project Management Book, 2nd ed. Adams Media, Avon,
MA.
Pressman, R.S.A., 2010. Software Engineering, a Practitioner’s Approach. McGraw-Hill, New
York.
Wellins, S.R., D. Schaff, and K.K. Shomo, 1994. Succeeding with Team 101, Tips that Really
Work. Lakewood Books, Minneapolis, MN.
3
Systems Design
3.1 INTRODUCTION
The system/subsystem requirements reviewed by program and project
personnel ensure accurate and complete understanding of the restric-
tions of systems design and applied work products. If program or proj-
ect plans include reusable software interfaces; requirements are identified
and evaluated for use. The term reusable software is commonly used in
military and aerospace programs or projects. External software interfaces
are defined as part of derived software requirements. To support systems
design, graphical representations are prepared and take the form of data
flow, collaboration/communications, and component diagrams.
19
20 • Effective Methods for Software and Systems Integration
The main purpose of the SEP is to address upgraded processes from a sys-
tems engineering point of view.
This plan is organized into three main sections: systems engineering,
technical program processes, and engineering integration. The systems
engineering team describes an orderly and structured approach to the
overall system design, software design/development, required formal
reviews, and audits. It is important to have such a plan to document and
provide the technical expertise to execute activities throughout a software
design/development life cycle. Using the plan also enables performance to
be more effective and productive and enables technical planners to spend
more time planning, ensuring the customer will have greater assurance
and satisfaction in addressing the technical challenges that lie ahead.
FURTHER READING
Arlow, J., 2005. ILA Neustadt, UML 2 and the Unified Process Practical Object-Oriented
Analysis and Design. Addison-Wesley, Boston, MA.
AS9100, 1997. Aero Space (AS) Standard Quality Management System Requirements—
Guidelines for the Application—Part 2.
Jameson, K., 1994. Multi-Platform Code Management. ISA Corporation, O’Reilly &
Associates, Philadelphia, PA.
MIL-STD-499B. 1995. System Approach for Systems Engineering of Defense Systems.
Department of the Air Force STSC Volume 1.
Wigers, K.E., 2003. Systems Engineering, 2nd ed., Microsoft Press, Redmond, WA.
4
Software Requirements
4.1 INTRODUCTION
Defined software requirements provide programs and projects with a
systematic approach to the development of software requirements pro-
vided by various ideas and solutions. Software requirements establish the
principals for software design and integration test activities for both soft-
ware and systems integration. The generation and execution of software
requirements are created as a stand-a lone item or as an item embedded in
higher-level assemblies (i.e., hardware units, workstations, monitor dis-
plays, integrated platforms, etc.).
23
24 • Effective Methods for Software and Systems Integration
Requrements Analysis
Use Case
Functions
Architecture
Integration
FIGURE 4.1
Software requirements development.
4.2.1 Analysis
Requirements analysis includes a step-by-step process to develop require-
ments for software work products to fulfill high-level user requirements,
allocated system requirements, and ideas for system operational concepts.
Analysis reports are produced as run procedures are verified and vali-
dated to support test and evaluations.
Software Requirements • 25
4.2.3 Functions
The function and architecture definitions are analyzed to ensure an accu-
rate and complete understanding of what software is expected to perform.
If program and project plans include reusable software, derived require-
ments are identified and evaluated for inclusion. Additional knowledge
of software operational use cases and the software architecture requires
a need to change functionality and associated requirements. This may be
an ongoing activity during the software requirements definition process.
4.2.4 Architecture
The architecture interface definition is identified and defined as part of
derived software requirements. Graphical representations are prepared
and take the form of data flows and software component diagrams.
The functional software design/development life cycle states and modes
are established per system requirements. The timing, sequence, condi-
tions, and probability of executing to define and redefine functional inter-
face requirements apply to system architectures.
4.2.5 Integration
The integration of requirements is the transformation of a functional
architecture into optimal design solutions. Implementation of disciplined
interface management principles is critical for planning resources and to
perform systems build integration activities for the execution of meeting
software engineering requirements.
26 • Effective Methods for Software and Systems Integration
during these formal reviews when requirements are not complete and
analysis of these requirements is still open or still in work. The FCA is
more involved in reviewing requirements that are more related to the
release of software documentation and procedures that trace to hardware
drawings and are configured in work products (i.e., systems, software,
documentation, facilities, etc.).
From my experience, the systems engineering organization or team is
more involved in the FCA, which is required to be completed before PCAs
are kicked off and conducted. The customer is involved in both audits;
once satisfied and the audits are approved, the customer has the deliver-
able work product in possession.
TABLE 4.1
High Failure Rate for Released Software
Percentage for high failure rate for 0% 10% 20% 30% 40% 50% 60%
released software
FURTHER READING
Ambler, S., 1995. Software Development, Using Use Cases. Cambridge University,
Cambridge, UK.
AS9100, 1997. Aero Space (AS) Standard Quality Management System Requirements—
Guidelines for the Application—Part 2.
Gonzales, R., Requirements Engineering, 2004. Sandia National Laboratories, http://www.
incose.org.
Kazman, R., and A. Eden, January 2003. Defining the terms architecture, design, and imple-
mentation, News at SEI, 6(1). Software Engineering Institute, Pittsburgh, PA.
5
Software Design
5.1 INTRODUCTION
Software design is a consistent approach and method for the develop-
ment of software requirements in defined designs of a work product. The
software architecture definition provides a framework for the creation of
the product design and at times can provide constrictions. The software
design definition implements details about a software product’s architec-
ture, components, and interfaces. Element traceability of the design and
the software requirements is used by software designers. The traceability
data and software design definitions are documented according to pro-
gram and project plans, ideas, processes, and procedures and applicable
internal work instructions.
29
30 • Effective Methods for Software and Systems Integration
TABLE 5.1
Software Design Tools
Software Tools Description
Requirements analysis and design Requirements analysis tools will be used by software
tools development organizations for requirements
analysis of new software. Organizations, which do
not use the program-wide standard, provide
requirement documents for inclusion in the
program database. Commercial off-the-shelf
(COTS) tools can be used for software design/
development and documentation to be used to
document reused software categories.
Requirements and design documentation retain the
format of the tools.
Code development tools Code development tools for software are proven in
the design/development of the product line or work
product software. The tools, such as code editors
and compilers, are employed.
Configuration management (CM) CM tools supports distribution of incremental
tools development processes implemented in software
companies and for military and aerospace program
and projects.
Commercial off-the-shelf (COTS) COTS tools include standard word-processing and
documentation tools graphic development tools to provide for the
development and maintenance of documentation
with the delivered software.
Software Design • 31
products and the processes that produced them so defects can be pre-
vented and process improvement opportunities identified. Peer reviews
involve a methodical examination of work products by the producers’
peers to identify defects and other changes that are needed.
Examples of peer review methods include the following:
• Inspections
• Structured walk-throughs
• Deliberate refactoring
• Pair programming
The peer review verification methods identify software bugs, errors, and
defects for removal with recommendations to improve code development
as shown in Figure 5.1.
The peer review method is applied to software work products developed
by programs and projects, but it can also be applied to other work prod-
ucts, such as documentation and training, which are typically developed
by other software teams. Preparation for peer reviews includes identifying
affected teams or groups to participate in the peer review of affected soft-
ware work products. The criteria for conducting peer reviews are as follows:
Team Inspection
FIGURE 5.1
Peer review method.
Software Design • 33
To ensure you have a successful peer review, make sure you have selected
the right reviewers to be involved and guidelines are understood from the
start. If peer reviews are conducted and performed correctly, the peer
review was performed and done right.
Changes in
Cost of Change Constraints
Most Changes
Time
FIGURE 5.2
Cost curves.
designing and managing changes throughout the life cycle. Better under-
standing of software engineering and quick delivery to customers benefits
the concepts to improve processes and increases quality according to the
following principals:
Control
FIGURE 5.3
Agile management model.
The Agile process method for team efforts reflects how a team of soft-
ware people work together. An Agile process continually improves pro-
cesses that are not working or are causing major delays in the software
design/development environment. Internal program and project manag-
ers try to keep the team together by allowing decisions, expectations, and
a commitment to show results. When the Agile team working its own pro-
cesses at times does discover problems, the team will stay the course to
solve problems that could have an impact on these processes.
36 • Effective Methods for Software and Systems Integration
• Data models
• Rules of engagement
• Guides or maps
• Agile team rules
These items can be helpful as teams explore the designs and builds that
are prepared for software and systems integration tests to be conducted
and performed.
Agile provides team interactions that deal with processes and tools.
Performance through team members boosts accountability for results
and shared responsibilities for team effectiveness. Strategies, processes, and
practices improve effectiveness and reliability. A successful Agile team
stays alert to change and will adjust strategies and practices to match.
Degree of
Automation
CM CM
Out of Define CM
Low
Control CM
Degree of
Process
FIGURE 5.4
Lean CM performance.
CM is a support discipline to the Agile team, but there are times in soft-
ware design/development whether work products are comprehensive to
plan and process documentation. Controlling change is the foundation
to ensure software design/development activities are important when
change is in the picture. Make sure CM methods do not limit change and
become a stumbling block and a nuisance for program and project plans.
By adapting Agile practices in the CM process, teams can have a leaner
concept in programs and projects by:
With CMMI implemented and used by the program and projects, this
model represents processes in two different scenarios: continuous and
staged. Every organization should work toward the achievement of a third
level: defined. The process standards apply to:
Software Design • 39
• Requirements development
• Technical solution (see following discussion)
• Product integration
• Verification
• Validation
• Organizational process focus
• Organizational process definition
• Organizational training
• Integrated project management
• Integrated supplier management
• Risk management
• Decision analysis and resolution
• Organizational environment for integration
• Integrated teaming
• High maturity
• More effective processes
• Conducting and performing effective appraisals
• Commonality in all product suites
The high-maturity practices were not understood and were unclear, lead-
ing to mixed views by organizations for how objectives are related and lead
to high levels. Modernized practices include improvements in:
• Agile environments
• Functional requirements during software design/development
• Subcontractor agreements pertaining to COTS (commercial off-the-
shelf) and NDI (non-development item) software
• Organizational training
• Define
• Measure
• Analyze
• Improve
Software Design • 41
The control software teams often use a form of these requirements: gath-
ering, design, implementation, verification, and maintenance. The formal
processes program and projects’ scope are customer requirements to have
effective methods for software and systems integration. Data flow analysis
and feature breakdown structures ensure fewer opportunities for errors.
During the software design/development process, the Six Sigma philoso-
phy is applied for building quality through mistake-proofing methods.
The creation of effective charts of when and where defects were detected
and code had to be rewritten, added, or reused can assist the team in eval-
uating which steps in the process have the most variation and are candi-
dates for Six Sigma process improvement.
The Lean production of software and systems integration work prod-
ucts focuses on the elimination of waste from defined processes. The eight
wastes are easily remembered with the acronym DOWNTIME:
• Defects
• Overproduction
• Waiting
• Nonutilized talent
• Transportation
• Inventory
• Motion
• Excess processing
that shows each step. Look for each of the eight wastes as you walk through
the process. Identify the “hidden factory” or tasks that are regularly per-
formed but are not documented or do not add value. If an activity does not
change the functionality of code or the software programming activity,
it is waste. If the activity does require waste, such as some phase quality
gate code reviews, do minimize the wasteful activity by creating a sound
process for performing the task and minimizing rework or reuse.
When you have identified waste in your process flow, drill down to the
root cause using a simple technique. Develop a future state process that
eliminates or minimizes waste. Finally, implement process changes, put-
ting in place standardized work products and program and project leaders
to follow up and ensure improved processes function the intended way.
Make progress so the achievement of program and project milestones is
visible to ensure team members can see progress and are accountable for
meeting their goals. Do not forget to track waste by moving forward so
you can continuously improve processes. A schedule showing the number
of times a section of code has to be rewritten or reused is an example of
how easy it is to identify, track, and eliminate waste.
Combining the data-driven approach of Six Sigma and the waste-
eliminating tools of Lean streamlines the design/development process and
produces better software in less time. The goal is to satisfy your customers
with amazing work products and services. Creating a defect- and waste-
free process during the software life cycle does make excellent programs
and projects and the customer happy.
5.11 CONCLUSION
The pairs of software design/development attributes shown cannot be
exhibited simultaneously without circulating the brain. One can (and must)
learn to switch, change, and be flexible from one mode to the another as
needs arise. This can be done, and one can learn how to do it.
Creative, Imaginative
Objective Critical
Cooperative
Independent
FURTHER READING
Blackburn, J.D., G. Hoedemaker, and L.N. Van Wassenhove, 1996. Concurrent software
engineering: prospects and pitfalls. IEEE Transactions on Engineering Management,
43, 179–188.
Cantor, M., 2001. Software Leadership: A Guide to Successful Software Development.
Addison-Wesley, Boston, MA.
Carnegie Mellon, November 2010. CMMI® for Development, Version 1.3, Improving
Processes for Developing Better Products and Services. Carnegie Mellon, Pittsburgh, PA.
Cedro, T., 2011. Master Black Belt, PMP, MBA Lean Six Sigma Toolbox.
Chaplin, C.R., 1989. Creativity in Engineering Design, United Kingdom Fellowship of
Engineering.
Getting a handle on process, 2010. CrossTalk: Journal of Defense Software Engineering, 23(1).
Humphrey, W., 2006. Sweet Predictability. World of Software Development, 14(2), 14–17.
McNaughton, A., 2004. Software Development. CMP Technical Insight, LLC. Raleigh-
Durham, NC.
Peters, L., 2008. Getting Results from Software Development Teams. Microsoft Press,
Redmond, WA.
Poppendieck, M., 2002. Lean Software Development. Addison-Wesley, Boston, August 2003,
Vol. 11, No. 8.
Schwaber, K., and M. Beedle, 2001. Agile Software Development with SCRUM. Prentice-
Hall, Englewood Cliffs, NJ.
Toro, C., 2011. Lean and Six Sigma Toolbox, Master Blackbelt, PMP, Meridian, ID.
6
Software Implementation
6.1 INTRODUCTION
The software implementation method provides assurance that software
engineering builds function as expected in target software and systems
environments and enables smooth execution for verification and valida-
tion activities. Disciplined software implementation principles, planning,
and resources for systems buildup provide effective testing to be conducted
in a development facility for a software/system integration environment.
Software released under configuration management control is described
in a defined documented configuration management plan (CMP) to pro-
vide the necessary requirements for software implementation inside inte-
gration facilities.
45
46 • Effective Methods for Software and Systems Integration
and control over functional and physical attributes. The processes that are
used during all phases of software design/development provide the nec-
essary disciplines that identify applicable products, establish and control
baselines, and document and track changes to those baselines. Also, con-
figuration management processes control the storage, access, changes,
archive, and release of the software work products.
This team develops operating procedures that describe implementation
of processes required to satisfy the requirements and direction provided
under associated and documented plans.
TABLE 6.1
Configuration Management Tools
Software Activity
Tool or Vendor Support Host System Purpose of SCM Tool
ClearCase (IBM) Design, code, and UNIX/PC Tools for documentation
unit test, software and source code, support
builds/installation, multiple developments,
integration, and test and release baselines
ClearQuest (IBM) Code and unit test, PC Software problem
integration, and reporting, logs, tracking,
integration testing and software debugging
and fixes
FORTE (SUN) Software engineering UNIX Compile and build
APEX Rational builds released software
Clearmake (IBM) executable products
Microsoft Office Software engineering PC Support documentation,
activities software design/
development, e-mail
communication, and
data analysis
Activities
Artifacts
defect code
data
FIGURE 6.1
Unified change management definition.
TABLE 6.2
ClearCase—UCM Roles and Responsibilities
Role Main Objectives
Architect Define models (architecture)
Configuration manager Set up configuration management environment (i.e.,
repositories, importing files, etc.)
SCM lead Assign and schedule work activities and define written
software configuration management policies
Software design/developer Make changes to files/directories and deliver software to
build engineers
Build engineer Builds components for established baselines ready for test
Software Implementation • 49
Main
1
Integration
Development
0
0 Software
Change Request
Build Engineer Developer
FIGURE 6.2
ClearCase VOB architecture.
Initiate Software
Change Analysis Peer Review Review
Request (CR) Board (SRB)
No Approval
Approval
Closure Implement
FIGURE 6.3
Change request process.
• Quality
• Security (if change has an impact on classified or trusted software)
• Change sponsor
The major activities performed by the review board are evaluations and
dispositions of change requests, assignment of priorities, review of action
items, change dispositions from prior meetings, and the evaluation of
deviations that occurred for discussion.
There are many configuration management software tools used in mili-
tary and aerospace programs and projects that can be discussed. The soft-
ware tools selected are required to fit the environment used by the teams
and for software and systems integration activities. Do not take my word
that the Rational ClearCase and ClearQuest are the only usable software
tools. Other tools will work and support the program and projects, so they
will be okay.
• Software design/development
• Software process definition and enhancements
• Reuse of software program and project artifacts
• Ongoing support of past tool artifacts
• Training for software design engineers
• Software tool disciplines
to match engineering needs. Questions are asked, and the primary steps
for organizational needs are as follows:
6.6 CONCLUSION
The major building block of software design/development improvement
is to make sure the automation of software tools is understood. Costs are
significant for short- and long-term use. In programs and projects, it is
critical that the organizations enhance software implementation for pro-
ductivity and quality.
FURTHER READING
Gustavsson, A., October 1989. Maintaining the evolution of software objects in an
integrated environment. In Proceedings of the Second International Workshop on
Software Configuration Management, ed. Richard N. Taylor, 117–117. ACM, New
York, doi: http://dx.doi.org/10.1145/72910.73355.
Fayad, M.E. 1996. IEEE Computer Society. Controlling Software Development, MIL-
STD-973, Configuration Management, Reno, NV.
Hanrahan, R. 1994. IEEE STD 109-1994. IEEE Recommended Practice for the Evaluation
and Selection of CASE Tools, STSC Hill Air Force Base, Clearfield, UT.
Herrmann, D.S., 2000. Software Safety and Reliability. Wiley-IEEE Computer Society Press,
New York.
Keyes, J., 2004. Software Configuration Management. CRC Press, Boca Raton, FL.
White, B., 2000. Software Configuration Management Strategies and Rational ClearCase®: A
Practical Introduction. Addison-Wesley, Upper Saddle River, NJ.
7
Software Integration
7.1 INTRODUCTION
The methods for software integration provide required steps to be con-
ducted for integration and checkout of informal software engineering
builds. The software design/development team and test engineers need to
develop a strategy for planning, design, execution, data collection, and test
evaluation. The software integration activities are informal and flexible
for software checkout to prepare for the software and systems integration
phase of the work product.
55
56 • Effective Methods for Software and Systems Integration
High-Level Testing
Unit Test Software Integration Test
Software Teams Technical Reviews
Requirements
Design
Software Code
Software Integration
Strategy
FIGURE 7.1
Software integration strategy.
System Development
Verification
Validation
Integration
Integration Testing
Code/Design
Requirements
System Engineering
FIGURE 7.2
Spiral concept.
58 • Effective Methods for Software and Systems Integration
verify that the right work product is being integrated correctly. The valida-
tion concept ensures that the correct work product is the right product to
validate. The quality team roles are to perform:
• Technical reviews
• Configuration management audits
• Progression monitoring during software integration
• Plans, procedures, and documentation reviews
• Qualification and acceptance testing
• Witnessing of implemented plans and procedures during integration
and testing
Quality during software integration throughout the life cycle shows that
proper methods and tools are being utilized. The real motive for quality
can be applied for very large- and small-scale systems.
FURTHER READING
Florac, W.A., and A.D. Carleton, 1999. Measuring the Software Process. Addison-Wesley
Professional, Boston, MA.
Jameson, K., 1994. Multi-Platform Code Management. ISA Corporation, O’Reilly Media,
Philadelphia, PA.
MIL-STD-480. 1988 (July). Configuration Control: Engineering Changes, Deviations, and
Waivers.
Pilone, D., and R. Miles, 2008. Head First Software Development. O’Reilly Media, Sebastopol,
CA.
Schwaber, K., and M. Beedle. December 2008. Statistical process control for process
improvement. CrossTalk, Journal of Defense Software Engineering, 50, 833–859.
8
Software and Systems Integration
8.1 INTRODUCTION
The effective methods and processes for software and systems integra-
tion require disciplined software design/development practices and test
planning, test execution, configuration control, quality management, and
reporting of work product testing inside integration facilities to manage-
ment and the customer. Software technology books, magazines, and arti-
cles all over the world are intended to reflect “best practices” from various
integration facilities supporting software companies, the military, and
aerospace programs and projects. It is the responsibility of management
to select effective and responsible test conductors and teams and have in
place software and systems integration processes due to the importance
and nature of assigned tests to be successful and provide results. Successful
software and systems integration objectives are accomplished by:
63
64 • Effective Methods for Software and Systems Integration
amount of time and resources. Software build tools provide a way to auto-
mate entire builds, deployment, and quality assurance and release work
products to the customer.
8.6.1 Documentation
The documentation software required for the formal qualification phase
defines and documents the progression and interdependency of test arti-
facts. The documentation required is as follows:
• SSIP
• Integration and installation procedures
• Design documentation
• User and operation guides
• Test and analysis reports
• Compliance documentation or sheets
• Hardware drawings
FCA/PCA
FIGURE 8.1
Verification documentation flow. FCA, functional configuration audit; PCA, physical
configuration audit.
I
Develop Test
N
T T
E E
G S
R T
Develop Procedures
A I
T N
I
G
O
N Acceptance Test
FIGURE 8.2
Model for integration testing.
68 • Effective Methods for Software and Systems Integration
8.7 Q
UALITY PARTICIPATION IN SOFTWARE
AND SYSTEMS INTEGRATION
Inside the software and systems integration environment, quality per-
sonnel for both software and hardware are required to support integra-
tion plans and work products produced by software designers/developers
and the test team to ensure software and systems hardware work as one.
The test team runs through test installation procedures with the quality
team to witness the procedures and verify the media to show that sys-
tem software works and that results are documented for completion and
closed. In military and aerospace programs, the quality team verifies, vali-
dates, and approves the media loaded for integration checkout and testing.
There is a common approach that the test team will use; redlines applied
Software and Systems Integration • 69
• Planning
• Communication
• Risk management
• Requirements
• Systems/software design
• Integration
• Execution
• Continuous integration
• Configuration management
• Quality
• Customer satisfaction
8.12 PLANNING
For planning, develop the SSIP and strategy to understand the systems you
integrate, including the environment, functions, and constraints. Ensure
requirements are testable, operational, and technically realistic. Consider
using an integration readiness review plan for operational criteria in the
integration environment.
The planning for software and systems integration activities involves
everyone from the start, including subcontractors and customers. The
programs and projects require integrated processes per released software
Software and Systems Integration • 73
TABLE 8.1
Key Measurement Points
Number Key Measurement Points Life Cycle
1 Feasibility review Higher-level managers
2 Early design review (EDR) Approval
3 Required design review (RDR) Specification
4 Code and integration testing Software design
5 Start of software/systems integration testing Functional capability
6 Combined operations (software and systems) Fully functional
7 Full operating capability Release
8 Monitor level 99% reliability
9 Reliability level 99.1% improvement
10 Continuous level improvement goals 100% “happy customer”
74 • Effective Methods for Software and Systems Integration
Measurements that fit within these control limits can reflect instability of
progress. Some processes are still good, but sometimes the processes fall
outside control limits.
Apply the principal of statistical control to a knowledge process, such as
having a projection of what is expected to be completed with a low defect
rate. The programs and projects at times follow expected plans and pro-
cedures to ensure control. If program and project managers are assigning
more personnel than planned, there will be an issue of getting back to the
proposed plan, or you can preplan the program and project objectives.
The higher-level manager would want to find out what the program and
project managers are doing to resolve this issue and if the customer is
going to be affected or resources are needed elsewhere, leading to more
time to perform integration and cost concerns.
Monitoring project programs will not fall out of the sky but should be
managed instantly. The first steps are to:
• Establish baselines
• Collect data from previous programs and projects
• Control work products by collecting basis metrics
• Use teamwork so everyone cooperates to ensure customer satisfaction
8.12.2 Comment
The failure to provide effective planning and coordination in preparation for
integration activities will ruin planning and coordination. There is intense
pressure when developed schedules require tick marks to be completed
and shown to customers. For planned schedules, customers get that warm
and fuzzy feeling when milestones are marked off, but to be honest, many
software and systems integrations are not complete. Always tell senior, pro-
gram, and project managers to be up front with teams and the customer to
ensure confidence that quality comes first and then schedules will follow.
8.13 COMMUNICATION
Communication encompasses channels for passing information to sup-
port interpersonal communications along with feedback and criticism
(Figure 8.3). The quality of communication in a program and project is
Software and Systems Integration • 75
Senior
Managers
Program Project
Managers Managers
Software
Software/Systems
Managers
Test
Lab
Software Operations
Engineers
Customers
FIGURE 8.3
Communication lines.
directly related to effectiveness. When the time comes for software and
system integration activities, it is essential that open information is shared
at both technical and interpersonal levels.
The technical level deals with the way information describing the work
product or the process is shared. On the interpersonal level, communica-
tion deals with feelings about the work product, work relationships, criti-
cism, and personality.
Information in a program and project should be captured and commu-
nicated in writing so the understanding and coordination can be shared
in the lab environment. In an electronic society in which paperwork is at a
minimum, written communication can be considered formal.
concerns. All risks are documented and reviewed each day during inte-
gration activities. The risk management concept is a continuous process of
identification and planned team meetings to resolve and answer problems
that could be found during integration. The basic process steps are sum-
marized as follows:
• Risk issues and concerns. The process begins with the identification of
issues and concerns. All integration teams (i.e., design, test, etc.) iden-
tify such issues and concerns through peer reviews and discussion of
continuous risks so it is known what could have an impact on sched-
ules. When possible, software subcontractor activities are included
in team risk reviews. Technical performance metrics are used as the
basis for risk identification and assessment.
• Risk reviews. Once a risk is identified, the identifying teams review
the risk. A risk is rated as belonging to one of three categories: high
level, midlevel, and low level. Risks rated as moderate or high require
program and project risk management action presented for senior
management review. Low-level risks are managed within teams and
are reviewed regularly to ensure risk mitigation.
• Risk management plans. After a risk is defined and assigned to a team,
that team will develop and implement risk management plans and
continue to assess risk status until the risk is addressed and closed.
• Risk monitoring. For risks assigned to teams, the team provides the
risk status using the risk management database. The team lead man-
ages and maintains the database for tracking and reviews. This data-
base generates status charts and reports for programs, projects, and
customer reviews.
reactive techniques to detect and sort out high-risk areas. When test
results are released, test cases executed, and bugs found during integra-
tion, you are able to trace the quality risks.
Technical ideas such as coding and unit tests are the problems that arise
when likelihood concepts come into play.
During a program and project, we must reduce risk to a tolerable level
when applications are software improvements to a system or hardware
unit. We have to build quality from the beginning and not at the end
by making defect-preventing actions to software requirements, design/
development, and integration testing. Risk integration standards require
software requirements and test design to be structured. Hardware units
are visible, but inside these units is software that controls the hardware
so it comes alive. The movement of the hardware and software requires
multiple levels of testing.
8.15 REQUIREMENTS
The teams define and develop software requirements that are selected for
implementation and completion during software and systems integration.
Completeness and accuracy for software requirements are verified with
key work product developers. The customer should always be included in
the definition of the requirements to ensure there is complete and concise
understanding for their business needs.
78 • Effective Methods for Software and Systems Integration
8.17 INTEGRATION
Before performing software and systems integration, lab operations imple-
ments a readiness review to ensure the lab environment is ready for design and
testing. What I mean by a readiness review is to create a high-performance
work team (HPWT). The following trained personnel should be in this team:
• Systems designer
• Systems engineer
• Software designer
• Configuration management
• Quality personnel
• Hardware designer
• Subcontractor (if required)
The HPWT will perform a software engineering review and audit of
each discipline in the software life cycle to ensure processes are being fol-
lowed per defined plans, procedures, and expected requirements from
the customer. By performing this audit and review, results are reviewed
and documented by the HPWT and presented to senior management for
discussion with affected program and project managers. It is hoped that
before programs and projects are ready to integrate work products into
the integration environment, processes are in place and compliant. The
program and project managers do not want to hear the following:
✓✓ “I have technical issues and concerns in terms that are understood
by other team members.”
✓✓ “My software does not work when delivered for software and systems
integration.”
✓✓ “Processes? We don’t have any processes defined and implemented.”
8.18 EXECUTION
The software and system integration recommendations are to show exe-
cution of test-built systems for integration activities and to ensure the
builds provided for execution are not broken. Build and test times should
be reviewed to minimize problems that occur during the software and
system working together for integration activities. Acceptance tests are
performed along with the customer as witness depending on the program
and project requirements.
when completion occurs. I feel acceptance testing shows that the code pro-
vided by the designer is working as expected and has been peer reviewed
and tested. Remember that the software and system are not ready for
release to the customer, so perform a readiness review before production.
8.19.1 Automation
The automation and generation of software and systems packaging ensure
confidence in personnel requests by the integration labs or the customer.
Staging builds and tests together supports requirements that could include
the package to facilitate the integration process.
Dedicated systems or a hardware platform should run tests continuously.
The software designers could hinder and slow testing if this discipline is
not applied. There are always new types of tests to be conducted. Test arti-
facts created by the design team provide a start to build automation.
• Technical data
• Administrative data
• Design data
• Changes
• As-built products
• As-designed products
By looking at CM, you can see the programs and projects have a better
understanding of how each part constitutes the functions such as identi-
fication, configuration control, and status accounting and the importance
of CM. The CM method is shown in Figure 8.4.
Technical Data
Identification
Administrative
As Built
Accounting
As Designed
FIGURE 8.4
Method of configuration management.
Software and Systems Integration • 83
8.21 QUALITY
The essential practice that teams should follow is quality. The more quality
teams adopt, the more successful they will become. At times within the
integration activities for both software and systems, teams will see higher-
quality software and systems efficiently produced and ready for delivery
to customers.
As mentioned in software design, peer reviews and testing can be imple-
mented early in the software and systems integration activities. The con-
cept of automation in building and testing software to ensure systems
work together provides the framework for how software design teams
write software.
Work toward perfection and show continuous improvement early in test-
ing and evaluations. Teams always think about the best way to improve the
processes for testing. Making mistakes or wrong decisions early provides
opportunities to learn from mistakes and have them addressed correctly.
Quality attributes ensure teams build and test the right work products.
These quality attributes are:
• Code quality
• Peer reviews
• Builds
• Testing
84 • Effective Methods for Software and Systems Integration
TABLE 8.2
Code Quality
Quality Description Ensure
Code and unit test Tested software interfaces Test coverage on systems
Rules applied Prevent redundancies Roles and responsibilities
Team work Communication Clarity and understanding
Desktop integration Code design and test process Early detection deployment
Code quality and peer reviews are the key elements to ensure soft-
ware and systems integration are working together. Consistent pat-
terns for using quality solutions solve problems that consistently appear.
Experienced software designers incorporate better solutions, and ter-
minology is understood from the start of code development. Make sure
conversations are held with team members so there is consistent under-
standing about code quality. The software architecture allows code to be
more manageable and for changes to exhibit good-quality attributes for
code development as shown in Table 8.2.
When poor software and systems integration methods are not effec-
tive, program and project schedules lead to major problems with
customers.
Everyone wins when there is more focus on the success of the program
and project to meet budgets, schedules, and the customer’s satisfaction.
Strong management, effective team support, and the understanding of
what is required to be successful will lead to software and systems that are
in alliance with business needs as well as user expectations.
FURTHER READING
Augustine, N.R., 1983. Augustine’s Laws. Penguin Books, New York.
Black, Rex, 2002. Advanced Software Testing, Vol. 1. O’Reilly Media, Philadelphia, PA.
Boehm, B.W., 1992. Software Engineering Economics. Prentice-Hall, Englewood Cliffs, NJ.
Carnegie Mellon, November 2010. CMMI® for Development, Version 1.3, Improving
Processes for Developing Better Products and Services. Carnegie Mellon, Pittsburgh, PA.
DeMarco, T., 1982. Controlling Software Projects. Yourdon Press, New York.
Electronic Industries Alliance (EIA), Government Electronics and Information Technology
Association Engineering Department, August 1998.
Fagan, M.E., 1976. Design and code inspections to reduce errors in program development.
IBM Systems Journal, 15(3), 192–211.
Gilib, T., and D. Graham, 1993. Software Inspection. Addison-Wesley, Reading, MA.
Grady, R.B., 1994. Successfully applying software metrics. IEEE Computer, 27(9), 18–25.
Lipke, W., December 2003. Deciding to act. CrossTalk, the Journal of Defense Software
Engineering, 21–24.
Putnam, L.H., and W. Meyers, W., 1992. Measures for Excellence; Reliable Software on time,
Within Budget. Yourdon Press, Prentice-Hall, Englewood Cliffs, NJ.
Syzmanski, F., May/June 2011. Deliver applications that meet business needs. Better
Software, 34–35.
Weller, E.F., 1994. Using metrics to manage software projects. Computer, 27(9), 27–33.
Whitaker, K., 1994. Managing Software Maniacs. Wiley, New York.
Yourdon, E., November 1994. Software metrics. Application Development Strategies, ISO/IES
Standard 61508.
9
Software Subcontractor
9.1 INTRODUCTION
This chapter describes the methods that are performed by a software sub-
contractor to provide the necessary support and employment that would
benefit military and aerospace programs and projects. The software sub-
contractor can be hired for program and project planning, configuration
management, quality issues, software design/development, testing, and
execution of activities or tasks related to the delivery of software work
products to customers. The activities performed are in accordance with a
purchase contract, and the software work products are delivered to satisfy
and comply with specified acceptance and delivery requirements.
89
90 • Effective Methods for Software and Systems Integration
10.1 INTRODUCTION
It is important to make the right decisions before delivery of software
and system end items or hardware to the customer. At times, schedules
become the priority before quality, and the lack of confidence in the cus-
tomer will have an impact on future working agreements and contracts.
Make sure that systems design, program and project planning, software
requirements, software design, and software and systems integration are
successful and that every step or milestone has quality built in during
the software design/development life cycle. Knowing problems still exist,
senior, program, and project managers do not show a tick mark to show
schedule accomplishments to customers. Be honest and up front with the
customer and know that quality comes first; then, schedules provide
the road map for the teams to produce effective work products.
The effective methods for software and systems integration will provide
assurance that customer requirements are met before any thoughts about
hurrying delivery. Stay the course and do not deviate from the plan. Before
delivery of software and systems to customers, the following are important:
93
94 • Effective Methods for Software and Systems Integration
to release, track, and control the software versions at the software and sys-
tem levels.
Customer Needs
Delivery Systems
FIGURE 10.1
Customer needs.
for the formal test. Why should a company receive a production unit with-
out the applicable documentation supporting a formal acceptance test? If a
subcontractor cannot find any way to complete a test, call the software FAI
off until the subcontractor is ready for the FAI to be conducted.
Military and aerospace programs provide detailed test cases and regres-
sion analysis for fixing problems, including the following:
TABLE 10.1
Configuration Baseline
Baseline Description Documentation
Functional System design System design: high- and lower-level
baseline requirements documents
Allocated System and software Systems design documents
baseline requirements Requirements documents
Design documentation
System design: lower-level documents
Software test documents
Product Aggregation of internal Operations and maintenance documents
baseline systems components into System and software design documents
software work products Version control documents (VCDs)
Software user documents, manuals, and
procedures
Systems and software installation
procedures
High-level Aggregation of systems Software user documentation, manuals, and
product design and software procedures
baseline high-level documentation Systems and software installation
into a component procedures
Lower-level Aggregations of systems Software user documentation, manuals, and
product design and software and procedures
baseline lower-level documentation Systems and software installation
into a component procedures
TABLE 10.2
PCA Entry Checklist
Entry Checklist Yes No Achieved
Kick-off meeting is held to define X Roles and responsibilities defined
roles and responsibilities for conduct and used as guideline to support
and performance of formal audit. the formal audit.
Delivery is received of data packages X All data packages and artifacts are
(i.e., plans, procedures, drawings, provided as requested by the
system designs, media, logs, etc.) formal audit team.
to support the formal audit.
Approved nomenclature and terms X All nomenclatures and terms are in
are agreed on as applicable during accordance with the formal audit
formal audit. and understood by the formal
audit team.
List of current deviations, waivers, X Action item 1
and higher-level changes are
requested or approved.
Approved requirements X Approved requirements
documentation identifying the documentation identifying the
baseline is available. baseline is provided to the formal
audit team.
As-built records are complete and X Action item 2
released.
AI Description ECD
1 List of current deviations, waivers, and higher-level changes mm/dd/yyyy
requested or approved are not ready for use by the formal audit
team.
2 As-built records are not completed and released for use by the mm/dd/yyyy
formal audit team.
favorable, so the PCA may proceed. PCA execution and the metrics will
be completed, and the schedule for the PCA final meeting is coordinated
with the customer.
PCA activities are as follows:
FURTHER READING
Electronic Industries Alliance (EIA), Government Electronics and Information Technology
Association Engineering Department, August 1998.
Humphrey, W. 2006. Sweet Predictability. World of Software Development, 14(2), 14–17.
Keyes, J., 2004. Software Configuration Management. CRC Press, Boca Raton, FL.
MIL-STD-480. 1998. Configuration Control: Engineering Changes, Deviations, and Waivers.
MIL-STD-973. 1992. Configuration Management April 1992. This military standard is
approved for use by all departments and agencies of the Department of Defense
(DOD).
MIL-STD-1521B. 1985. Technical Reviews and Audits for System, Equipment, and Computer
Software,
11
Product Evaluation
11.1 INTRODUCTION
The product evaluation is an integral part of program- and project-level
activities that is scheduled and performed by quality software personnel
on an ongoing basis. These evaluations form the basis for certification that
software design/development activities have been performed in accor-
dance with program and project plans and procedures and are in line with
required quality requirements.
103
104 • Effective Methods for Software and Systems Integration
• Develop software processes and procedures for the entire life cycle
that comply with software engineering standards, comply with con-
tractual requirements, support ISO (International Organization for
Standardization) 9001 and AS9100 requirements:
• AS9100C quality management system (QMS) software
requirements
• AS9100D QMS audit requirements
• Obtain software program and project manager approvals of soft-
ware engineering processes and procedure changes released for
use by engineering
Softwares and
Software Systems Software Quality
Systems
Integration Integration Assurance
Delivery
Method Method Method
Method
FIGURE 11.1
Product evaluation schedule.
106 • Effective Methods for Software and Systems Integration
time, panic and chaos occur. That is when you see the importance of qual-
ity factors come into play, and milestones are achieved and are a success.
• Team objectives
• Risk mitigation
• Issues and concerns
• Root cause (RC) analysis
• Corrective action (CA) plans
• Significant accomplishments
The focus of successful program and project managers is the team, pro-
cesses, and work product. A manager who fails to communicate early
in the software development process could pay a heavy price by making
wrong decisions. The manager who pays little attention does run into
risks if competent methods and tools are not made available to the team.
Having a solid program and project plan does not hinder the success of
the program and project. Team members need to be highly skilled soft-
ware people. The talents that the team should apply are:
• Motivation
• Organization skills
• Attention to business goals
• Work ethics
The objectives for product evaluations are established, and solutions, tech-
nical constraints, and alternative solutions are always a consideration. The
system and software/design developers, along with test, configuration man-
agement, and quality teams, define objectives. The product objectives identify
the goals for design and development of data, which provides functionality
Product Evaluation • 107
in a quantitative manner. The program and project managers select the best
approach with consideration of constraints imposed by delivery deadlines,
budget issues, available team members, and technical solutions to problems.
Processes that are understood provide the framework to implement
effective plans and procedures for software design/development activities.
The framework details the number of tasks, milestones, and applied qual-
ity factors to enable activities to adapt to requirements for programs and
projects. Aspects of configuration management and quality assurance are
important to the independent nature that occurs during the process.
11.4 ARTIFACTS
Development of system and software work products yields artifacts, includ-
ing specifications, plans, and procedures. Artifact information associated
with quality product evaluations includes software configuration records,
testing records, and other artifacts associated with activities, including:
Quality gates come into play to ensure process and work products are
compliant (Figure 11.2).
Communication
Ensure Resolution to
Establish Records
Corrective Actions
Evaluate
Processes and
Work Products
FIGURE 11.2
Quality gates.
110 • Effective Methods for Software and Systems Integration
• Quality requirements
• Design and development
Product Evaluation • 111
Jan Feb Mar Apr May June July Aug Sept Oct Nov Dec
FIGURE 11.3
Quality metrics.
• Production
• Software and systems installations
The support of CMMI® provides the basis for conducting product evalu-
ations, reviews, and audits to ensure compliance to requirements as shown
in Figure 11.4.
Measuring quality does ensure a program’s and project’s operational
goals are successful during the software design/development life cycle. It
is so important to measure software engineering processes and determine
whether programs and projects are consistently improving. If quality met-
rics are not used, then there is no way to determine if any improvement is
within sight. If there are no improvements, it means you are lost, confused,
and out there somewhere during software design/development activities.
By evaluating productivity and quality, teams and management estab-
lish goals for improvement of the software processes. Using quality met-
rics, baselines become more manageable and benefit the program’s and
project’s processes to make sure work products operate at a higher level
of consistency.
112 • Effective Methods for Software and Systems Integration
Compliance to
Requirements
Reviews and
Audits
(Requirements)
FIGURE 11.4
Compliance to requirements.
To help the need for quality and metrics, the Software Engineering
Institute (SEI) CMMI version 1.3 for the development of measurement and
Product Evaluation • 113
the analysis method can be used. This method allows programs and proj-
ects to perform quality product evaluations at a high level and to establish
metrics in standards and best practices.
FIGURE 11.5
Process improvements.
FURTHER READING
AS9100C. 2010. Quality Management Systems—Requirements for Aviation, Space and
Defense Organizations.
AS9101D. 2010. Quality Management Systems, Audit Requirements for Aviation, Space, and
Defense Organizations.
Carnegie Mellon, November 2010. CMMI® for Development, Version 1.3, Improving
Processes for Developing Better Products and Services. Carnegie Mellon, Pittsburgh, PA.
Kant, R.K., 2006. Software Engineering Quality Practices. Taylor & Francis, Boca Raton, FL.
Pressmen, R.S., 2005. Software Engineering, a Practitioner’s Approach, 7th edition. McGraw-
Hill, New York.
Wellins, R.S., D. Schaff, and K.H. Shomo, 1994. Succeeding with Teams, Lakewood Books,
Minneapolis, MN.
Appendix A: Acronyms
and Glossary
Acceptance Criteria: The criteria that a system or component must sat-
isfy to be accepted by a user, customer, or other authorized entity.
Audit: An independent examination of a work product for software or set
of work products to assess compliance with specifications, stan-
dards, contractual agreements, or other criteria.
Baseline: A specification or product that has been formally reviewed
and agreed on and can only be changed through formal control
processes.
Build: Operational version of a software product incorporating a speci-
fied subset of capabilities that informal and formal work products
include in multiple configurations.
Build Engineer: A role for an integrator to provide a build strategy and
build tools to create software baselines ready for test and integration.
Build Request: Requests to software configuration management to pro-
vide software builds for software systems and use for computer
labs and support the formal test.
Capability Maturity Model Integration: Collection of process models
and methods for use in new disciplines to be integrated for orga-
nizational structures.
Certification: A written guarantee that a system or computer program
complies with its specified requirements.
Change Control: The processes by which a change is proposed, evalu-
ated, approved or rejected, scheduled, and tracked.
Code and Unit Testing: Written routines that specify the disciplines where
data is represented, design is understood, data is understood, soft-
ware developer notes, test results.
Computer Data: Data available for communication between or within com-
puter equipment.
Computer Language: A defined structure devised to simplify communi-
cations with a computer.
Computer Program: A sequence of instructions for processing autho-
rized changes per a computer system.
117
118 • Appendix A: Acronyms and Glossary
cerning the validation and verification per the test plan concern-
ing software.
Hardware: Physical equipment used in data processing, as compared
to computer programs, plans, procedures, and associated
documentation.
Implementation Phase: The period of time in the software life cycle
during which software work products are created from design
documentation.
Informal Engineering Build: Build that is performed with no formal
authorization and coordination is applied with teams to ensure
the informal engineering build environment is set up.
Inspection: A formal evaluation in which software requirements,
designs, or codes are examined in detail to detect faults, violations
of development standards, and other problems.
Institute of Electrical and Electronics Engineers (IEEE): Accredited by
ANSI (American National Standards Institute) standards.
Integration Testing: An orderly progression of testing which elements of
software and hardware are combined and tested.
Interface Requirement: A requirement that specifies a hardware, soft-
ware, and database in which a system must interface.
Item: An element of a set of data, such as digits, bits, or characteristics, that
is treated as a unit.
Modification: A change to software and the process for that change.
Nondevelopment Item: Software used to assist in the development of the
deliverable work products, but is not identified as a deliverable
product.
Object Code: The output from a compiler directly executable by the com-
puter system.
Peer Review: An important part of verification and a proven mechanism
for effective defect removal.
Physical Configuration Audit (PCA): Identifies the product baseline
for production and acceptance of the work product audited.
PCA verifies that the “as-built” configuration correlates with the
“as-designed” product configuration, and the acceptance test
requirements are comprehensive and meet the necessary require-
ments for acceptance of the production unit.
Preliminary Design Review: A formal meeting at which a preliminary
design is presented to the user or customer for comment and
approval.
Appendix A: Acronyms and Glossary • 121
Requirements Phase: The period of time in the software life cycle during
which the requirements of a software product, such as functional
and performance capabilities, are defined.
Review: Informal or formal review of system requirements, software
design, software configuration management, software quality,
test, and required data to show compliance to documented plans,
processes, and procedures.
Review Board: Established for the software product teams to review
and make a disposition of changes that affect controlled soft-
ware and related documentation.
Risk Management: Process to identify risks and identify an approach to
prevent future risks.
Software: Computer programs, procedures, rules, and any documenta-
tion pertaining to the operation of data-processing systems. It is
in contrast to hardware.
Software Configuration Management: Establishes and maintains the
work product identification process and controls changes to iden-
tified software work products and their related documentation.
Records and reports information needed to manage software
work products effectively, including the status of proposed changes
and the implementation status of approved changes. Maintains
auditable records of all applicable software work products that help
verify conformance to specifications, interface control documents,
contract requirements, and as-built software configurations.
Software Contract: Processes and procedures supporting the software
work product defined by a purchase contract and technical areas
of software design development.
Software Design/Development Process: The process by which a user’s
needs are translated into software requirements and transformed
into design/code being tested, documented, and certified for
operational use.
Software Development Facilities: Facilities used for the preparation of
software work products prior to delivery to the software and system
integration environment or a higher level for testing capabilities.
Software Documentation: Technical data or information that describ-
ing or specifying the design or details, explaining the capabilities,
and providing instructions for using software.
Software Engineering: A systematic approach to the development, oper-
ation, and maintenance of software design/development.
Appendix A: Acronyms and Glossary • 123
OWNER:
Program or Project
Plan Information
Signatures:
125
126 • Appendix B: Software/Systems Integration Plan
ABSTRACT
Example:
The program or project software/systems integration plan (SSIP) is the doc-
ument for defining plans, processes, and procedures for software/systems
work product-level test and evaluation. The program or project consists of
computing hardware and software. The software consists of an operating
system and application. The hardware consists of computers, displays, net-
work interfaces, and interfaces to other subsystems. This SSIP describes
the test environment to be used for the testing, identifies the tests to be
performed, and provides an overview for test activities.
KEYWORDS
Development File Folder (DFF)
Development Lab (DL)
Development Plan (DP)
Quality Assurance (QA)
Systems Integration Facility (SIF)
Software Configuration Management (SCM)
Software Engineering Institute (SEI)
Software Systems Integration Plan (SSIP)
CONTENTS
1 SSIP Plan Overview...............................................................................127
2 Senior Management.............................................................................. 128
2.1 Test Schedules............................................................................ 128
2.2 Software Tools............................................................................129
2.3 Relationship to Other Plans......................................................129
Appendix B: Software/Systems Integration Plan • 127
3 Test...........................................................................................................129
3.1 Test Products..............................................................................129
3.1.1 Software........................................................................130
3.1.2 Systems..........................................................................130
3.1.3 Hardware......................................................................130
3.1.4 Test Documentation....................................................131
4 Test Approach.........................................................................................131
4.1 Informal Test..............................................................................131
4.2 Formal Test.................................................................................132
5 Responsibilities.......................................................................................132
5.1 Systems Engineering..................................................................132
5.2 Software Development..............................................................132
5.3 Software Configuration Management....................................133
5.4 Software Quality Organization................................................133
5.5 Test Team....................................................................................133
6 Facilities Operation.............................................................................. 134
6.1 Metrics........................................................................................ 134
6.2 Risk Management..................................................................... 134
7 Notes....................................................................................................... 134
8 Acronyms............................................................................................... 134
9 Figures.....................................................................................................135
10 Tables.......................................................................................................135
2 SENIOR MANAGEMENT
The program or project senior management function is to perform guid-
ance, support, monitor, and report progress regarding software and sys-
tems integration to teams and define the role and task for software- and
systems-related activities as shown in Table B.1.
3 TEST
The conduct and completion of the test provide verification to ensure
that programs or projects meet the requirements of the software and
system design.
• Software requirements
• Approved changes
• Acquired engineering products
• Software resources
130 • Appendix B: Software/Systems Integration Plan
• Controlled software
• Authorization for updates to test products
• The SSIP
• Software/system integration test procedures
• High-level test plans
• Problem reports
• Software/system integration measurement data
3.1.1 Software
3.1.2 Systems
3.1.3 Hardware
• Workstations
• Display units
• Printers
Appendix B: Software/Systems Integration Plan • 131
• Disk sets
• Drivers and interface cards
• Networks or servers
4 TEST APPROACH
The test approach for programs or projects is an integrated plan and activ-
ity to begin preparation of informal and formal test plans and procedures
based on the specifications listed in Table B.2.
TABLE B.2
Test Approach
Test Team Focus Test Approach
Prepares for incremental software and Incremental test methods provide visibility
systems integration of functional test into the evolving work product and reduce
methods common problems of delayed visibility late in
software and system integration and testing.
Mature test processes and tools Software test tools are available tools that
automate and integrate the software
development and integration.
Upgrades the path to meet future issues Maximum utilization of commercial software
and utilize advanced technologies and hardware.
132 • Appendix B: Software/Systems Integration Plan
artifacts (e.g., version control documents [VCDs], test plans, test proce-
dures, data, metrics, etc.) are not released to customers and are main-
tained internally for checkout, troubleshooting, and recommendations to
start the formal test.
5 RESPONSIBILITIES
The responsibilities of systems and software engineering, software con-
figuration management (SCM), software quality organization, and the test
team require program or project support during the software and systems
integration activities stated in Figure B.1.
FIGURE B.1
Software team responsibilities.
Appendix B: Software/Systems Integration Plan • 133
FIGURE B.2
Informal and formal tests.
134 • Appendix B: Software/Systems Integration Plan
6 FACILITIES OPERATION
The program or project facility operation environment provides integra-
tion for hardware and software and systems integration to support soft-
ware design and equipment integration. The facility operation will be used
to integrate and test the work products and build up and support incre-
mental deliveries of software builds.
6.1 M etrics
Metrics are used on the program or project to manage facility operations
activities. These metrics are used to evaluate the maturity of the software,
measure progress of development, test efforts, and identify software risks
during integration in an integration environment.
7 NOTES
Industry standards such as MIL-STD-x xx are used as a baseline for
programs and projects and developing methodology for integration and
testing. The IEEE-x xx standard was used as guidance for identifying inte-
gration and test methods.
8 ACRONYMS
DP: development plan
SSIP: software/systems integration plan
VCD: version control document
(Continue listing acronyms, i.e., DFF, development file folder).
Appendix B: Software/Systems Integration Plan • 135
9 FIGURES
Figure B.1. Software life-cycle responsibilities.
Figure B.2. Informal and formal test.
10 TABLES
Table B.1. Roles and Responsibilities
Table B.2. Test Approach
Appendix C: Software
Audit Checklist
Software Audit Checklist
Subcontractor Company Name
VCD Part Number and Rev Level: ___ Customer Representative: Name
Deliverable: Definition and Functions Start Date: mm/dd/yyyy
Participants: List Names Completion Date: mm/dd/yyyy
Sub Cust
Verifications Y/N Y/N Condition Noted
Readiness review: Start Date: mm/dd/yyyy
• Plans/procedures released
• Software environments available
• Personnel prepared and available
• Software configured for test
Development and testing conducted Ensure this development
and testing phase is
completed to support the
software audit.
Objectives:
• Functional requirements satisfied N = Action Item (AI#1)
• Problems with hardware or Y = Pass
software identified and recorded
Software configuration management: Notes:
• VCD released
• Software configuration
management plan revision
• Plans and procedures released
• Software media controlled
• Required software installed for
verification and validation
Continued
137
138 • Appendix C: Software Audit Checklist
Sub Cust
Verifications Y/N Y/N Condition Noted
Configuration status accounting N AI#1
report:
• Operation procedures released
• High-level changes approved
• Plans in database management
• Procedures in database
management
• Documents and drawings released
• Quality buy-offs
Test conduct: Notes:
• Test procedures performed in
accordance with company policies
• Paperwork authorized for test
• Test failures recorded
• Configuration issues recorded
• As-run procedures performed
• Test reports released/revision
• Test complete
Data package: Software deliverables Notes:
prepared for retention in a controlled
computer media library (CML) and
archived both on-site and off-site
Sub Cust
Test Conduct Y/N Y/N Condition Noted
Test procedures: Notes:
• Test data procedure revision
• Operating procedures revision
• Software user manual revision
• Software development plan
revision
• Software user manual revision
• Test report revision
Sub Cust
Product Release and Acceptance Y/N Y/N Condition Noted
Any regression testing of any audited N AI#2
test steps recorded.
Test procedures released and under Notes:
change control.
Appendix C: Software Audit Checklist • 139
Sub Cust
Product Release and Acceptance Y/N Y/N Condition Noted
Test reports released and under change N AI#3
control.
Top-level assembly or outline drawings N AI#1
have been reviewed and approved by
customer.
Test environment was defined and Notes:
controlled.
Open and closed: Notes:
• Problem reports
• Corrective actions
• Issues
• Findings
Sub Cust
Software Audit Completion Y/N Y/N Condition Noted
Is there evidence of software Notes:
acceptance?
Are completion dates for any open Notes:
action items defined?
Team Participation:
Name mm/dd/yyyy
Customer Representative Date
Appendix D: Software
Checklist PCA
OUTLINE
Program or Project
Integration Facility Location
Plans:
141
142 • Appendix D: Software Checklist PCA
Procedures:
Records:
PCA Checklist:
Activities Comments
• PCA entry criteria accomplished: Date Started: mm/dd/yyyy
✓✓Readiness review successfully held
✓✓Defined responsibilities and authority
✓✓Agreed-to agenda
✓✓Presentation including scope and in-brief
materials
✓✓Presentation material clear and sufficient in
detail and consistent within scope
• Product configuration baseline identified.
Were the operating and software support
documents reviewed (VCD, TPs, TRs, etc.)?
Installation software identified in VCDs with
reference to media and systems
Continued
144 • Appendix D: Software Checklist PCA
Activities Comments
• Specification review and validation to define the
configuration item, testing, mobility/
transportability, and packaging requirements:
✓✓Packaging plan/requirements review complete
✓✓Test procedures and results complete
• Documents review against as-built and variations,
including outstanding design changes, part
numbers, and description:
✓✓Changes incorporated between test baseline and
release baseline?
✓✓Installation and inspections complete and
closed
• Review of unincorporated design changes.
✓✓Outstanding changes, problem reports
• Review waivers and deviations to specifications
and standards:
✓✓Action item database open items impacting
software
• Document release system for control of processing
and formal release of engineering changes:
✓✓Test tools identified?
✓✓Software tools identified
✓✓Software part number
✓✓Review of build processes
✓✓Software media labeling requirements
✓✓Software media storage requirement
• Was the software end item reviewed?
✓✓Software design descriptions
✓✓Software requirements
✓✓Status of reviews (informal/formal)
✓✓Findings/status of quality evaluations/reviews/
audits
✓✓Subcontractors developed software
✓✓Embedded COTS/NDI/company developed
• Exit criteria: Date Completed: mm/dd/yyyy
✓✓Roster
✓✓Agenda and presentation data
✓✓Action item log and action items
✓✓Data package
✓✓Signed certification sheets
✓✓Test data is complete and accurate
Appendix D: Software Checklist PCA • 145
Certifications:
Data/Media Status
PCA cover sheet Open
Certification package scope/purpose Closed
Product configuration baseline established Closed
Specification reviews and validation Open
Software drawing/document review Closed
Unincorporated software changes Closed
Software deviations/waivers Open
Computer media library (CML) Closed
Status OPEN
CLOSED
Action Items:
Final Comments:
Yes
No
X = Yes or No.
K13560
ISBN: 978-1-4398-7662-6
90000
www.crcpress.com
9 781439 876626
www.auerbach-publications.com