16 Critical Software Practices 
 
Formal Definition
and Control of Interfaces
 
IntroImplementationMetricsResources
 
Jim Sturges Grady Booch
Jim Sturges Grady Booch

 

"The overall process for designing a user interface begins with the creation of different models of system function (as perceived from the outside). The human- and computer-oriented tasks that are required to achieve system function are then delineated; design issues that apply to all interface designs are considered; tools are used to prototype and ultimately implement the design model; and the result is evaluated for quality."

--Roger S. Pressman

Formal Definition and Control of Interfaces

For elements of a system to cooperate in solving a problem, they need to interact. This interaction is called an interface. Interfaces can take many forms. Examples include software, hardware, and user interfaces. Wherever there is interaction, there is an interface that should be described.

In a very real sense an interface is like a bridge. It is a mechanism for transporting things from one place to another. In this case, the "places" that are cooperating are elements of the system. The thing being transported is information. If a bridge is to transport cars over a river, a great of analysis goes into its development. The volume and form of the objects that will cross the bridge are considered in determining how strong and how wide it should be. If people are going to walk or bike over the bridge, special protections are put in place to accommodate them. Once the bridge is built, the limits are clearly posted, so users understand the limitations. Development of an interface follows similar steps.
 
The importance of agreeing to and documenting interfaces has been recognized for years. Over time, specific guides have been developed to facilitate the process of documenting interfaces so that they can be more easily understood. Two data item descriptions (DIDs) that delineate how interfaces should be documented are DI-IPSC-81434, and DI-IPSC-81436). While these DIDs are no longer required as compliance documents in contracts they provide valuable information about how to completely and accurately define an interface.
Just as in the case of a bridge, communication among all the users of a bridge is essential. Because it is difficult to change the design of a bridge after it is started, extensive analysis and information gathering meeting are held before work begins. Similarly, a mechanism must be provided for collecting information on and discussing the requirements.

Interface documents are critically important to all aspects of system development and should be placed under tight configuration control. In addition, each interface specification should undergo a formal inspection before being accepted by CM. A baseline interface must be agreed upon before beginning implementation activities and changes to the interface requires concurrence by all interface owners prior to being made.
 
Project managers must monitor development progress of interfacing systems and identify their key milestones. Where possible, progress of external interfacing systems should not be on a project's critical path. If this can not be avoided, this risk factor must be carefully managed. Implementation schedules and activities must be closely coordinated.
Application external interfaces, interfaces with middleware and operating systems, and interfaces of COTS products integrated into the application should comply with applicable public, open API standards and data interoperability standards unless there is a compelling reason to do otherwise. Each COTS software product should be carefully analyzed, independent of the vendor, for the proprietary features of its interfaces. Often, there is a conflict between the desire to use COTS and the need for interoperability between system. These issues must be carefully weighed in the system design, the selection of COTS/GOTS products and the reuse of legacy code.

top
16 Critical Software PracticesGlossary of Terms