Transcription

Everything you wanted to know about interfaces, butwere afraid to askLouis S. WheatcraftRequirements ExpertsPhone: (281) 486-9481 Mobile: (832) 971-3550E-mail: [email protected]: http://www.reqexperts.comCopyright 2010 by Requirements Experts.Abstract. Some of the biggest problems in developing a system are at an interface. Some of themost critical requirements for every system that we build are interface requirements. Interfacerequirements cannot be written in a vacuum, both sides must participate. Yet how to writeinterface requirements is barely covered in the literature – and what is in the literature is notconsistent. This paper will address some things you can do to get better interface requirements.Topics covered include: Understand what constitutes an interface, how to identify interfaces, howto define and document interface definitions, what constitutes a good interface requirement, andwhere and how to document interface requirements.Why are Interfaces Important?Systems are part of other systems, are made up of subsystems, and interact with other systems atthe same level of the architecture, no matter what level your system of interest (SOI) is at. Thisapplies to simple as well as complex systems, hardware systems, software systems, and hybridhardware/software systems. These interactions between your system and others are interfaces.Identifying interfaces helps you to define your system’s boundaries. Indentifying interfaces alsohelps you understand the dependencies your system has with other systems and dependenciesother systems have with your system. Failing to identify an interface can have unpleasantrepercussions on your project and is a common reason for products that fail to meet stakeholderexpectations. Missing or incorrectly defined interfaces are often a major cause of cost overrunsand product failures.Indentifying interfaces helps you ensure compatibility between your system and other systems youneed to interact with. Many projects neglect to identify and control their interfaces until testing.The first encounter with the results of this oversight often occurs when people find out that theycannot connect test equipment to their system to perform the tests. Worse yet, think of theproblems when you turn your system over to operations and a missing interface is discovered suchthat your system can not function or another system depending on your system can’t function. Byidentifying and managing your external interfaces early, you are identifying key drivers for yourproduct that must be addressed in your system requirements.Identifying interfaces also helps to expose potential problem areas and risks to your project. Thereare often existing systems that you have to interface with that are established and cannot change –this might be a problem for you – it might not, but you need to know. There may be systems thatyou have to interface with that don’t currently exist that are being developed in parallel with your1 of 14www.reqexperts.com

system. How can you develop requirements for your system when you don’t know what yourinterfaces are or the characteristics of those interfaces? You need to know any issues associatedwith your interfaces early so that you can insure compatibility with existing systems or work withthe other developing system to jointly define the interfaces so you are compatible.Serious problems can and do arise at interfaces due to the inherent risks associated with a system’sinterfaces. Because the interfaces represent systems outside your control, your system isvulnerable at your interfaces. If an interface is not well understood, not defined, or is subject tochange, your system will be impacted. There is also the treat of someone outside your systemimpacting your system’s performance – either intentionally or unintentionally. There is an oldsaying “If you want to sabotage someone’s system, do it at an interface.”Because of the importance of identifying, defining, developing interface requirements, andmanaging these activities, interfaces need to be a prime concern of the project System Engineer,lead Software Engineer, Business Analysis, or anyone else involved in developing requirements.Given the importance of interfaces, you would think that there is a standard process to indentifyand define interfaces, to develop interface requirements, and manage these activities.Unfortunately there is not. Given the different cultures within industries and within organizations,each manages these activities differently. This results in a lot of confusion on where to documentthis information and even what to call these documents.Regardless of the names we give various documents that contain information concerninginterfaces, there are some guiding principles and best practices you can follow. These bestpractices are based on lessons learned as a result of being exposed to a variety of approaches tomanaging interface requirements and having seen what approaches work best and whatapproaches that tend to lead to problems.What Is An Interface?“An interface is a boundary where, or across which, two or more parts interact.” Another definitionis: “An interface is that design feature of a piece of equipment that affects or is affected by a designfeature of another system.” This interaction is shown in Figure 1.What is an Interface?A common functional or physical boundary wheretwo systems interact.Mechanical attach pointVoltageDataCommandSys 1MediaSys 2InterfaceBoundary9Figure 1: Definition of an Interface2 of 14www.reqexperts.com

The key words here are “interact” and “affects or is affected by another system”. From arequirements standpoint, any time the wording of a requirement indicates or implies one of theseconditions, there is an interface involved. If there is an interface involved, then the requirementdealing with this interface is classified as an interface requirement.It is also important to understand what an interface is not. Figure 2 shows examples of what aninterface is not.Examples of misunderstanding whatan interface is and is not The digital data interface shall maintain fulloperational capability after two failures. The interfaces between the spacecraft andpayload shall be designed to . The interfaces between the spacecraft andpayload shall have standard labels, controls,and displays. The electrical interface between thespacecraft and payload shall have areliability of .99999.11Figure 2: Examples of what an interface is NOT.Unfortunately, we frequently see statements like these. The first requirement assumes theinterface is a system and has functionality – this is not true. The second is a requirement on thedesigners and also assumes the interfaces are things. The requirement should be on accessibility ofconnectors, bolts, etc. The third and fourth again assumes the interface is a thing. These arerequirements on each of the systems and apply to any hardware or software of the system involvedin interfacing with another system. The bottom line: There should be no requirements that say “The interface shall .”Process to Write Interface RequirementsWriting interface requirements is a three-step process:Step 1: Identify the interfacesStep 2: Define the interfacesStep 3: Write the Interface requirements.Step 1: Identify the InterfacesThis first step involves an analysis of the of your System of Interest (SOI) and the context in whichit relates (interacts) with the parent system it is part of (external interfaces) and an analysis of theparts that make up your SOI and how they relate (interact) with each other (internal interfaces.)The tools that are often used as part of this analysis are Operation Concepts, System BlockDiagrams, N-Squared (N2) diagrams, Allocation Analysis, External Interface Block Diagrams(Context Diagrams), and Interface Block Diagrams. The intent is to define your system’sinterfaces top down. Start with the Parent System Block Diagram, then develop an N2 diagram to3 of 14www.reqexperts.com

refine your knowledge of the interfaces between all elements that make up your parent systemincluding the interfaces of your system. Then using this knowledge along with the knowledgefrom your system’s Operational Concepts, develop an External Block Diagram for your systemshowing all external interfaces of your SOI with all other systems for all lifecycles. Then for eachsystem you interface with, you do an individual Interface Block Diagram, showing all theinterfaces between your SOI and that system. Once you have defined the architecture for yourSOI, this approach is repeated at the next level to address your system’s internal interfaces.Operational Concepts: Your system will have different interfaces at different times in its life cycle.All must be considered to make sure that nothing is overlooked. An effective way to identifyinterfaces is to develop Operational Concepts from different stakeholder viewpoints addressingeach lifecycle stage. The stakeholders associated with each of the systems your System’sinterfaces with will have unique knowledge you need when identifying and defining interfaces andtheir associated interface requirements.System Block Diagrams: System Block Diagrams (SBDs) show all architectural elements of theparent system (of which your system is a part) and their interfaces. SBDs are usually fairly highlevel (mechanical, power, commands, data, human, etc.) that show both internal and externalinterfaces of the parent system. The directionality of the interaction between systems can beshown with arrows. The SBDs give a “big picture” view, showing both internal and externalinterfaces of your parent system and your SOI’s place within this architecture.N2 Diagrams: N2 diagrams allow you to systematically compare each architectural element withevery other architectural element that makes up your parent system. You can start with an N x Nmatrix, where N represents the number of subsystems of your parent system, to identify yourrelationship with the elements of your parent system’s architecture (external interfaces) and thendevelop an N2 diagram of your SOI to show the internal interfaces between your subsystems orcomponents that are part of your SOI’s architecture. The N2 Diagram is used to identify generalclasses of interfaces (mechanical, power, commands, data, human, etc.) and is very helpful to helpmake sure all interfaces have been identified and not missed. (An example N2 Diagram can befound in the latest version of NASA’s System Engineering Handbook, SP-2007-6105 Rev 1,Figure 4.3-4 on page 54.)Allocation Analysis: When a requirement at one level is allocated to two or more elements of asystem’s architecture at the next lower level, there may be an interface between those elements. Inorder for each element to do its job, it may require an interaction between those elements. If thereis an interaction, there is an interface. Allocation analysis is an important tool to use in identifyinginterfaces.External Interface Block Diagrams (EIBD)(Context Diagrams): An EIBD shows your System andits external interfaces to other architectural elements at the same level and external interfacingsystems for all lifecycle stages of the your SOI. You want to show more than just the interfaces ofyour system for nominal operations, but include interfaces for all of your SOI’s lifecyles, includingdevelopment, testing, verification, transportation, handling, servicing, and maintenance. All ofwhich should have been addressed in your Operational Concept and in your N2 Diagram. Section3.1 of your System Requirements Document (SRD) should include your system’s EIBD so thatreaders of the requirements understand the boundaries of your system and understand where thereare interfaces with other systems. Your SRD will contain individual interface requirements foreach of these interfaces.4 of 14www.reqexperts.com

Interface Block Diagrams: Interface Block Diagrams are developed, one for each of the systemsshown in the EIBD. Your SOI is shown on one side of the diagram and the other system on theother side. In between, you show all the interfaces (interactions) between your SOI and the othersystem. Start with high level information (mechanical, power, commands, data, human, etc.) andthen further refine each of these (instead of just power, 28 VDC; instead of just data, include thegeneral types of data. Each of these interfaces will then be “defined” using textual statements,diagrams, tables, drawings, graphs, and figures. These definitions are what is documented in yourinterface definition documentation. There will be one Interface Block Diagram for each of thesystems your SOI interfaces with as shown in the EIBD.The System and External Interface Block Diagrams should be included in your OperationalConcepts Document and SRD to show the reader the “big picture”. The N2 Diagrams, ExternalInterface Block Diagrams and Interface Block Diagrams should be included in your interfacedefinition documentation.Step 2: Define the interfacesOnce an interface has been identified, it needs to be defined. To define an interface you need todefine the characteristics of each system at the interface, the media involved in the interaction, andthe characteristics of the thing crossing the interface. The media could be electrical through a wire,physical contact, fluid or gas flow though plumbing, an RF signal through the air or space, fiberoptics, data via a common communication buss or the internet. The characteristics of the system atthe interface could be an electrical, electronic, or fluid/gas connector or a mechanical interfacewhere the two systems are bolted together.What your system looks like at the interface may be documented in a drawing showing themechanical interface, bolt hole patterns and sizes, thickness of the metal, characteristics of themating surfaces, etc. If an electrical, data, or command interface, the connectors involved with theconnection: type of connector, pin assignments, isol