CHAPTER 1
Best Practices in Mission-Assured, Mission-Critical, and Safety-Critical Systems
Kim Fowler
1. Roadmap to This Book
The material in this book presents best practices in developing mission-assured, mission-critical, and safety-critical systems for medical devices, avionics, military equipment, and spacecraft subsystems. It is a disparate grouping. The good news is that there are threads of commonality in best practices among these systems. The acronyms may vary but best practices translate fairly easily from one area to another. The following are selected areas where best practices in one market often translate well into other markets:
⢠Defined processes, procedures, and quality assurance (QA) programs
⢠Collecting and managing requirements and setting priorities for their implementation
⢠Experimentation and prototyping
⢠Risk assessmentātechnological feasibility and business feasibility
⢠Rigorous software development processes
⢠Review and inspection
⢠Documentation
⢠Test planning, verification and validation, and acceptance testing
1.1. Systems Engineering
The material in this book takes a high-level architectural approach. In essence, it is systems engineering. Whether medical, avionics, military, or space, all deal with multiple disciplines, including (but not limited to) software, electronic hardware, mechanical subsystems, and operations. The systems engineering approach pulls these disciplines together into a framework that helps elucidate interactions between disciplines. Basic definitions that you will need for the remainder of the book follow:
System: A combination of elements or parts forming a complex or unitary whole; composed of components, attributes, and relationships. Typically these elements within a system form definable inputs, processing, and outputs. The interrelated components work together toward a common objective [1].
Systems engineering: An āengineering discipline whose responsibility is creating and executing an interdisciplinary process to ensure that the customer and stakeholderās needs are satisfied in a high quality, trustworthy, cost efficient, and schedule compliant manner throughout a systemās entire life cycle. This process is usually comprised of the following seven tasks: State the problem, Investigate alternatives, Model the system, Integrate, Launch the system, Assess performance, and Re-evaluate. . . . [The] [s]ystems [e]ngineering [p]rocess is not sequential. The functions are performed in a parallel and iterative mannerā [2]. Brian Mar states that systems engineers should adhere to the following basic core concepts:
⢠Understand the whole problem before you try to solve it
⢠Translate the problem into measurable requirements
⢠Examine all feasible alternatives before selecting a solution
⢠Make sure you consider the total system life cycle
⢠Test the total system before delivering it
⢠Document everything [2]
Everyone on the team should exercise the discipline of systems engineering. The leader of the effort, aside from the program manager, should be a systems engineer or a systems architect. The difference between engineering and architecting is that engineering is deductive work based on hard science, while architecting is inductive work that tends to be likened to art [3]. Both are important in systems engineering.
Mission assurance: āMission [a]ssurance is a full life-cycle engineering process to identify and mitigate design, production, test, and field support deficiencies of mission successā [4].
āMission [a]ssurance includes the disciplined application of system engineering, risk management, quality, and management principles to achieve success of a design, development, testing, deployment, and operations process. Mission [a]ssuranceās ideal is achieving 100% customer success every time. Mission [a]ssurance reaches across the enterprise, supply base, business partners, and customer base to enable customer successā [5].
āMission-[a]ssured [d]esign is aimed at creating a robust, manufacturable systemāone that does exactly what it is intended to do (its mission) despite the presence of variations, stresses, and uncertainties that can result in mission failureā [6].
Mission critical: āThe term mission critical . . . refers to any factor (equipment, process, procedure, software, etc.) . . . [that] is crucial to the successful completion of an entire project. It may also refer to a project the success of which is vital to the mission of the organization which attempts itā [7].
Safety-critical systems: āA computer, electronic or electromechanical system whose failure may cause injury or death to human beings. . . . [Examples include] an aircraft or nuclear power station control system. Common tools used in the design of safety-critical systems are redundancy and formal methodsā [8].
Quality: The degree for which the sum total of product characteristics fulfill all of the requirements of customers.
Process: A group of interrelated activities and resources that transforms inputs into outputs, often described by a block or flow diagram of events.
Procedure: Specific implementation of the process for a single, focused area of concern; typically step-by-step instructions.
Validation: The confirmation that the design, function, and operation of the final product satisfies the customerās intent.
Verification: The objective tests of metrics that show that the final product meets the quantitative requirements.
1.2. Important Issues
Five basic issues affect every development:
⢠IntegrityāDevelopment requires an integrated approach.
⢠InterfacesāMost important actions occur at interfaces.
⢠HumanityāAll problems have a human origin.
⢠IterationāAll levels of development should have feedback to revise direction and design.
⢠MultidimensionsāThere are no silver bullets for completing a project.
Integrity: An integrated approach requires integrity, which is defined as the āseamless whole.ā This requires a ābig-picture viewā of how the parts fit into the whole. The project lead, in particular...