A Reuse-Based Software Architecture for Management Information Systems Jeffrey S. Poulin, Norm Kemerer, Mike Freeman, Tim Becker, Kathy Begbie, Cheryl D'Allesandro, and Chuck Makarsky Loral Federal Systems Abstract: This paper describes a Software Architecture for applications in ___________________________________________________________________ the domain of Management Information Systems (MIS). Using principles of ________________________________________________________________________ software reuse and the architectural concepts introduced by Garlan and Shaw, ____________________________________________________________________________ this paper describes the software architecture in terms of reusable compo- __________________________________________________________________________ nents (of both applications and data) which provide domain-independent and __________________________________________________________________________ domain-specific components for shared business functions. The architecture ___________________________________________________________________________ identifies the connectors between the components and gives rules that specify _____________________________________________________________________________ the constraints within which to apply the architecture. We describe the ________________________________________________________________________ architecture using four "views" in order to help interpret the architecture ___________________________________________________________________________ for developers. We then implement the architecture with a set of architec- ___________________________________________________________________________ tural models in our CASE toolset; these models serve as reusable templates __________________________________________________________________________ from which developers can instantiate their own architectural models. _____________________________________________________________________ Designed to fully comply with Open Systems Environment standards and in use ___________________________________________________________________________ today on one of the U.S. Army's largest information systems, this architec- ____________________________________________________________________________ ture has led to unmodified component reuse levels of over 20% as completion ___________________________________________________________________________ nears on the first 7 of as many as 60 projected applications.(1) _____________________________________________________________ OVERVIEW ________ Software architectures provide many benefits, ranging from documenting a common framework which developers use to build application programs to stand- ardizing a program's approach to reuse and maintenance. A good software architecture serves as the reference and starting point for all software dis- cussions and designs. Because the architecture tells developers how to start building an application, it aids in training new developers while at the same time keeping all developers working towards the same ultimate goal. ___ This paper describes a reuse-based software architecture for applications in the MIS domain. We describe our architecture from a set of four views, or ______ technical perspectives of some aspect of the architecture. This paper takes --------------- (1) To appear, Fourth International Conference on Software Reuse, Orlando, __________________________________________________ Florida, 23-26 April 1996. 1 many of the abstract concepts surrounding architectures and shows how a major software initiative applies these concepts through tools and software. Loral Federal Systems developed the architecture described in this paper for the Sustaining Base Information Services (SBIS) program. SBIS represents a ___________________________________________ 10-year contract potentially worth $474 million to improve and standardize the Army's automation of day-to-day business functions. SBIS will overhaul the administrative functions carried out at Army installations by providing hardware, networks, and up to 60 software applications in areas such as logistics, finance, personnel, and training. The contract will help prepare the Army to move from proprietary operating environments to open systems standards-based configurations, and provides a procurement vehicle for the Defense Information Systems Agency (DISA) and the rest of the Department of Defense (DoD). SBIS can form the computing foundation upon which DoD builds the Defense Information Infrastructure, a global, end-to-end network for all DoD users. ARCHITECTURAL COMPONENTS, CONNECTORS, AND CONSTRAINTS _____________________________________________________ When discussing software architectures, we must begin with a brief overview of the work of David Garlan and Mary Shaw Ý4¨. Garlan and Shaw define archi- tectures as consisting of three major items: 1. Components, or objects in the software system, ___________ 2. Connectors between components, which describe the interactions between __________ objects, and, 3. Constraints, which limit the interactions by virtue of needs imposed upon ____________ the architecture by application and environmental factors. We describe the details of our MIS software architecture in terms of Garlan and Shaw's components, connectors, and constraints. First we introduce the components of the application software. These components fall into one of several categories of objects: _______ 1. Service Objects, which provide functions common to many or all MIS appli- ________________ cations, 2. Business Objects, which provide function shared by applications within an _________________ MIS (sub)domain, and, 3. Application Objects, which provide function unique to an application. ____________________ Connectors in an architecture define the interactions between architectural components. In our architecture, connectors between objects primarily take place via Remote Procedure Calls (RPCs); however, objects can also embed _____________________________ other objects and can communicate via the database. We have the strategic objective of using Distributed Computing Environment (DCE) RPCs as soon as an Ada binding to DCE RPCs becomes available. An extensive list of configuration rules comprise the constraints upon the _____ software architecture. Rules give the MIS developer specific guidance on how to implement the architecture by explaining how to make connectors between components and by codifying the principles behind the architecture. We discuss the relationship between these aspects of a software architecture below. 2 INTRODUCTION TO THE SOFTWARE ARCHITECTURE _________________________________________ To understand the basis of the MIS software architecture we start by explaining the different classes of software that make up a typical MIS. As in other domains, most programs make use of a standard set of domain- independent, general-purpose utility software. As shown in Figure 1, this utility software provides a good example of horizontal reuse, or reuse across _________________ domains. Most programmers have experience in horizontal reuse by way of mathematical subroutines or I/O libraries. Although horizontal reuse has stable and low risk benefits, these benefits have upper limits of around 20% of an application due to the generally small size and scope of domain- independent software Ý8¨. Vertical reuse, on the other hand, takes place within a domain or a family of _______________ related systems. Vertical reuse has a tremendous potential benefit when building many applications within a related area or domain because each application can make use of common objects and operations. As an example of the benefits of domain-specific reuse over horizontal reuse, the estimated reuse potential in the domain of business applications (management informa- tion systems) ranges from 75% to 90% Ý6¨. To achieve these levels of reuse an application must make use of domain-specific frameworks and software. Figure 2 depicts how these classes of software contribute to the design of the MIS software architecture. This figure shows what processes might run on a typical computing platform, or process server. Note that we have built Service Objects to provide functions common to "most" or all MIS applica- _______________ tions. All objects in the picture communicate via RPC. The picture shows that if a developer in the software domain of Resource Management needs 8 ___________________ major functions to build an "Logistics" application, 3 of the 8 already exist as reusable Service Objects. Likewise, if a developer of a "Personnel" application needs 6 major functions, 3 already exist. In fact, our development team has already identified and constructed about 30 Service Objects to run in our horizontal reuse layer. These objects provide services ranging from scheduling to audit trail and print functions. Of the approximately 1.2 million lines of source code in our first 7 applications, Service Objects make up over 20% of the software, for a conservative esti- mated Reuse Cost Avoidance (RCA) Ý7¨ of approximately $7 million. __________________________ Figure 2 also shows the client-server nature of the architecture; note that some objects running on the process server do not directly support either of the two applications. These Service Objects act as servers to all applica- _______ tions, running in the UNIX background environment ready to accept a request for service via RPC from one of the running applications or from a new appli- cation. For example, when a user invokes a new application by double- clicking the application icon on the UNIX desktop, the Process Control _______________ Service Object receives the message and responds by establishing the environ- ment needed by the newly-invoked application. The development team has recently completed a pilot domain analysis of the _______________ SBIS (sub-)domains. As a result of this analysis we plan to construct domain-specific frameworks for each domain. Each framework consists of com- __________________________ ponents for use within the domain, rules and interfaces defining how to connect the components, and perhaps tools to help developers assemble appli- 3 in-Specific Functions. Figure 2. Service Objects Provide Common Functions. Business Objects Provide Doma Figure 1. The Three Classes of Software cations using the domain-specific components and rules. The framework con- tributes to vertical reuse by providing families of reusable components for use within each domain. We call these components Business Objects. ________________ Figure 2 shows that 2 of the 6 functions required for the example Personnel application exist as Personnel Business Objects. The figure also shows that of the 8 functions required for the Logistics application, 3 already exist as pre-built Logistics Business Objects. In fact, because 2 of our first 7 MIS applications fell within the domain of Resource Management, we identified and built Resource Management Business Objects so that the 2 applications could share about 24% of their code. The architecture provides the means to achieve high levels of reuse through the use of common services and domain-specific functions. To complete the application, it only remains for the developer to provide the glue code to ____ tie all these reusable functions together and to provide any application- unique logic. We call this remaining code Application Objects. ___________________ Having an architecture based on these well-encapsulated, reusable objects allows us to both benefit from and contribute to work done in other programs. We can expect to share (both reuse and provide) useful Service Objects and Business Objects with other MIS programs. This reuse can bring considerable benefits to both our organization and the DoD. THE STYLE OF THE MIS ARCHITECTURE The selection of components, connectors, and constraints determine the allow- able configurations of applications within the architecture. In terms of Garlan and Shaw's architectural styles this architecture represents a hybrid ______ style of distributed processes, data abstraction with object-oriented organ- ization, and layered systems. The use of object-based design with inter- process communication via RPC gives the architecture a strong object flavor and prepares applications for transition from Ada83 to Ada95 when the program chooses. The use of RPCs also allows for a high degree of data abstraction in the client-server implementation. Because RPCs operate independently of the location of clients and servers we have the potential to distribute the objects across machines and sites. Finally, the use of Application Program- ming Interfaces (APIs) insulates functional aspects of the architecture, giving a layered systems perspective to MIS applications. We feel the soft- ware architecture uses the best advantages of each of these architectural styles. Providing opportunities for reuse only begins the list of these advantages. The software architecture implements many of the long-term goals of our MIS 4 system by having attributes that allow it to grow and adapt. The architec- ture provides: o Flexibility by allowing multiple ways to configure applications through ___________ the use of selected components and RPC connections, o Extendibility by allowing new applications to participate in the archi- _____________ tecture by simply adding new objects and to share existing services, o Portability by adhering to Open System Environment (OSE) standards and by ___________ isolating applications from their environment through the use of features such as APIs. OPEN SYSTEMS COMPLIANCE _______________________ All DoD contracts must comply with Open Systems Environment (OSE) standards ______________________________ as specified by the National Institute of Standards and Technology (NIST). The defining documents for these standards largely come from the IEEE POSIX documents as restricted by the appropriate Federal Information Processing Standards (FIPS). The Defense Information Systems Agency (DISA) has further codified the standards by relating them within a Technical Architecture for Information Management (TAFIM) Ý3¨. In the TAFIM, Mission Area Applications form a layer on top of the Applica- ____________ ________ tion Platform, which provides a foundation layer of services for functions ______________ such as data management and networking. This layer, in turn, serves as the External Environment Interface through which users gain access to the appli- ______________________________ cations. The TAFIM specifies which NIST and FIPS standards apply for each area in the diagram above. We have committed to supporting these standards as well as their refinements in the Army C4I Technical Architecture Ý2¨. In the introduction above, the discussion focussed almost exclusively on the Mission Area Applications layer of the TAFIM. This layer contains most of _________________________ the application logic, with Service Objects providing most of the Support _______ Services. For example, in the Support Service area of Communications our MIS ________ ______________ architecture provides a Communications Service Object. In the Support Service ______________________________ area of Database Utilities we provide a Data Access Service Object (DASO). __________________ _________________________________ In fact, we handle most Environment Management Support Services via Service ______________________ Objects. Business Objects make up part of the Business Processing Support ___________________ Service, wth Application Objects comprising the remainder of this TAFIM layer. VIEWS OF THE MIS SOFTWARE ARCHITECTURE ______________________________________ To have any utility, both the DISA TAFIM and our MIS architecture must span many areas, each having varying amounts of detail and implementation options. As explained by Zachman, abstracting these concerns requires a comprehensive set of views of the MIS software architecture Ý9¨. Each view represents the concerns of a specific class of MIS developer or user. The views show the detail necessary to help developers and users to understand, describe, use, and consistently implement MIS applications. We describe our architecture using four views; they include the: 5 Figure 3. Relating MIS Architecture Views to the TAFIM o Application View, which shows the structure of an MIS application and the _________________ constraints on implementing the structure, o Data View, which shows the database architecture and the data management __________ rules related to MIS applications, o Distribution View, which shows the application and data distribution __________________ capabilities, and, o Development/Maintenance View, which shows the methods and tools for _____________________________ application development and maintenance. Each of these views relates to the TAFIM as shown in Figure 3. These views explain the important features of the software architecture as those features appear from that view's perspective. In the sections that follow, we show how we implement each view in our environment with specific tools and soft- ware. THE APPLICATION VIEW This view of the software architecture reflects the perspective of the devel- oped Ada software, in other words, the logic that implements each applica- tion. As shown in Figure 4, the application view reflects a total of five application layers, each of which may contain commercial products, OSE ser- vices, and MIS objects. At the top of the figure, the user sees the Presen- _______ tation layer, which consists of the MOTIF window on the user's X-station, ______ personal computer, or workstation. Next, the User Interface layer manages ______________ and controls the interactions between the presentation layer and the applica- tions. This layer consists of a commercial Graphical User Interface (GUI) development tool (XVT(TM)) as well as a Service Object (the User Interface _______ ______________ Manager (UIM)) which abstracts certain aspects of the tool for our devel- _____________ opers. The middle layer, Application Processing, primarily consists of the Service _______________________ Objects, Business Objects, and Application Objects as explained above. The Data Access layer shields the application logic from data by abstracting both ___________ the location and the physical format of data so that it appears to the appli- cations as a single, integrated database. The service object includes an internally developed data management Application Programming Interface (ADM/API) to shield developers from changes in the underlying commercial database products should they occur. Finally, the Data Store layer controls __________ the physical storage of MIS data using structures such as POSIX-compliant files Ý5¨ and commercial database products such as the Oracle(R) Relational _________ Database Management System (RDBMS). Figure 4. The Application Layered View 6 THE DATA VIEW The Data View of the MIS architecture depicts applications from the perspec- tive of accessing, storing, and managing information. Our MIS architecture has a key feature in that it presents one integrated logical database to the MIS user. This means that the user need not enter data more than once and it means that the data will remain valid and secure during their life in the database. Applications and the RDBMS enforce access controls over who can read and who can update data, based on guidance from customer requirements and functional users. The applications and database also guarantee data integrity; in other words, once data changes, all users of the data have access to the most recent and consistent information within data synchroniza- tion requirements. The data view includes all aspects of data management as it pertains to the MIS software architecture. This means mapping the source of all data through logical data models to the final physical store in our system. This physical store consists of both RDBMS and POSIX-compliant files. It also includes a MIS Data Repository, which contains meta-data about database components such as data elements. All data in the logical data model conform to data mod- eling guidelines specified by the Department of Defense (DoD). Each Army installation has an instantiation of the SBIS Installation Database (SID) implemented in the Oracle database system. Although each SID contains ______ data specific to that installation, each SID instantiation contains the same data structures, database definitions, schemata, and objects. This allows maximum reuse of data management assets, thereby reducing development and support costs. In addition to the SID, each Army major command headquarters (MACOM) has a SBIS MACOM Database (SMD) to support headquarters operations. As with the SID, each SMD contains the same tables, database definitions, schemata, and objects. The data within each SMD pertain to a specific MACOM. Like many large companies and organizations, the Army must support a variety of aging "legacy" systems. Most data enter SBIS in accord with System Inter- face Agreements (SIAs) our program makes with the owners of these legacy systems. These SIAs specify the types, formats, and frequency of data exchange with the legacy system. Legacy data normally enter at one of two Network Management Offices (NMO) where software utilities divide the data into packages destined for specific sites. For example, when the bulk infor- mation arrives at the NMO, it may contain information for all soldiers in the Army. The NMO sorts this information into installation-specific files which contain information on only those soldiers stationed at that installation. The NMO then sends the files to the appropriate installations. As shown in Figure 5, upon arriving at the installation, a portion of the External Interface Manager (EIM) Service Object loads the legacy data into the Legacy Database using SQL*Loader utilities. This database serves two _______________ __________ main functions. Foremost, it provides a holding place for legacy data until the EIM can extract the subset of the legacy data needed by the applications, convert it to Army Standard Data Elements, and import the standardized data into the SID. The Legacy Database also allows users to issue queries against legacy data in its original form. 7 Figure 5. Database Load Process in the SBIS Database Figure 5 also shows that the SID consists of separate tablespaces which ___________ contain information specific to a MIS application. To support reuse of data as well as application software, the SID database has a separate tablespace for Common tables, or tables containing data shared by two or more applica- ______ tions. A table containing soldier name and address might fall into this common tablespace. Finally, the SID contains a tablespace for shared Refer- ______ ence tables. These tables differ from common tables in that they contain ____ information such as zip codes and Military Occupational Specialty (MOS) codes that although many applications share, the information does not change often and usually belongs to an agency outside the purview of our program (e.g., the Post Office or the Military Personnel Center). THE DISTRIBUTION VIEW The Distribution View shows the distribution options for objects and applica- tions within the software architecture. Each layer shown in the Application View, above, shares an interface with adjacent layers which we specify via well-defined, shared Application Programming Interfaces (APIs). The APIs hide the implementation of each layer from the other layers and handle commu- nication between layers. In most instances the layers communicate via RPC; however, the Data Access and Data Storage layers also make use of the SQL*Net features provided by the Oracle database system. ______ In conjunction with other software, RPCs allow synchronous communication between the fully distributed objects which comprise an MIS application. RPCs establish a client-server-based relationship between the three type of MIS objects and gives MIS developers a flexible method of distributing objects. For example, a developer might distribute objects across machines to improve performance characteristics resulting from high network traffic or CPU loads. A developer might also distribute objects or applications across installations to minimize support costs, or simply use RPCs to request infor- mation and services from other locations. The MIS architecture has provisions for distributing application layers, objects within the layers, and entire applications depending on a variety of implementation issues such as performance needs. With other DCE software, the use of DCE RPCs will allow for many of these distribution options while helping to obviate problems such as guaranteeing transaction control, authentication of clients in the client-server model, and security of data as they pass along the network. 8 THE DEVELOPMENT/MAINTENANCE VIEW Because a developer looks at an architecture and immediately asks "how do I implement this?" we provide a view which tells the developer which tools and methods to use. This view of the architecture details the software develop- ment process in terms of component activities of our Software Development Methodology Plan (SWM) and the connecting process flows in the SWM. This view identifies the tools within our Integrated Software Engineering Environ- ment (ISEE) which support the architecture. The backbone of the ISEE suite consists of a commercial integrated require- ments management and modeling tools. Starting with application requirements definition, an Ada developer: 1. uses the CASE tools to capture requirements, 2. builds the user interface using a Graphical User Interface (GUI) toolkit, 3. imports the user requirements into the CASE environment, 4. using architectural models we provide, starts to build requirements and design models, 5. develops detailed design via Ada Structure Graphs (ASGs), 6. exports the Ada frames generated from structure graphs into a context- sensitive editor, and, 7. compiles/debugs using the Ada compiler and application development envi- ronment. The data required for applications undergo a similar formal development cycle in parallel with and in conjunction with the application code that will use it. A database developer: 1. models requirements using Entity-Relationship (E-R) Diagrams and data dictionaries, 2. creates Database Description Language (DDL) automatically, 3. builds physical tables in the database from the output DDL. In general, the ISEE suite automates the transition of information among the tools and repositories as much as possible. However, because it cannot make all the transitions totally automatic or seamless, the architecture documents areas within the tool where developers must perform manual tasks and identi- fies which of these tasks would make good candidates for automation. DEFINING A SOFTWARE ARCHITECTURE: THE PROCESS _____________________________________________ The architecture introduced above results from a methodical process. The process aims to capture and document the architectural requirements for an MIS and record those requirements for the benefit of those persons most affected by architectural decisions. Although defining requirements seems simple it takes considerable effort, numerous iterations, and techniques beyond the scope of this paper. Constructing the architecture consisted of identifying the aspects of an MIS system, such as components and connectors, and managing these components to ensure they exist to satisfy a stated requirement. The MIS software archi- 9 tecture we describe contains ideas in the reuse model discussed in Figure 1 but has continued to evolve over the course of 2 years. As our customer introduced new requirements and the complexity of our environment grew, so did the need to focus on aspects of the architecture by way of "views." Although different views address the concerns of specific classes of users they do not, by themselves, specify the level of detail that developers need in order to understand what they must do to implement the architecture. For this reason, each view details a list of rules that tell developers what they _____ must specifically do to comply with the architecture. DEFINING ARCHITECTURAL RULES Architectural rules provide specific instructions to MIS developers and users on how to implement their applications. In effect, these rules become the architectural constraints within which an application must operate. Fore- ___________ most, the rules provide the maximum amount of detail possible relative to the software architecture. We sometimes refer to this list as the list of "shalls" because it tells programmers what they must do in order to comply with the architecture. For example, architectural rules related to the Application layer of the Application View state: ___________ ________________ o The Application Processing Layer shall only contain business logic. o The Application Processing Layer shall not have dependencies on the graphical user interface (GUI). o The Application Processing Layer shall not retain data between invoca- tions. Applications shall handle persistent data in the Data Access and Data Store Layers. DEFINING ARCHITECTURAL MODELS The culmination of the software architecture comes with its realization in concrete models within the ISEE environment. Specifically, we have provided Essential and Architectural models for users of the MIS architecture. The _________ _____________ Essential (Process) Model identifies and defines the business processes which describe application requirements from the user's perspective. It contains data flow diagrams (DFDs), the logical database model, entity-relationship (ER) diagrams, control specifications (C-Specs) for event-driven processes, process specifications (P-Specs) for sequential processes, a data dictionary, and other notes describing the application. The Architecture (Procedure) Model defines how to implement the Essential (Process) Model. It defines the physical distribution of procedures that implement the processes; in our environment, it shows where each program process runs on one of our three primary (hardware) processors (end user device, process server, and data server). These models provide generic templates from which applications can begin their definition and development; they define the allowable configurations of ______________ components, connectors, and constraints. In short, applications become instantiations of the MIS software architecture Ý1¨. The architectural models fall under the same configuration management and version control requirements of all products. 10 +---------------------------------------------------------------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------------------------------------------------------------------------+ Figure 6. Template for the Architecture Logical Model Figure 6 shows an example of the logical model that implements the layers described in the application view of Figure 4. The five process bubbles in the Figure represent the five layers reflected by the Application View. The user of the system (box in the upper left of the Figure) interacts only with the Presentation Layer, modeled here as the "Perform Presentation Services" function. The Presentation Layer handles all user interface requests (UI_Rqst) and user interface responses (UI_Rqst) with the "Perform User _______ _______ Interface Services" function. The User Interface Layer, in turn, handles all application requests and responses (Appl_Rqst and Appl_Resp) with the Appli- _________ _________ cation Processing Layer. The "Perform Application Services" function which implement this layer not only handle all transactions with the Data Access Layer but have the additional responsibility of communicating with all external devices and systems, as represented by the arcs to the box at the middle right of the Figure. We model the fifth layer, Data Store, as "Perform Data Store Services." This layer communicates with the Data Access Layer (via (Data_Store_Rqst and Data_Store_Resp) and physically manages data _______________ _______________ stored on SBIS legacy systems, local file systems and RDBMS, and other remote or portable storage devices. CONCLUSION __________ This paper describes a Software Architecture for Management Information Systems built on the principles of software reuse, client-server operations, and open systems standards. Starting with the concepts of domain-independent and domain-specific software as they relate to an MIS application, this architecture identifies: 11 o Shared, reusable Service Objects of domain-independent and Business _______________ ________ Objects of domain-specific components, _______ o Defines the connectors between MIS objects, o Addresses reuse of data as well as of software, o Complies with Open Systems standards, o Provides four different views to help focus and interpret the architec- _____ ture, o Lists specific rules to tell users of the architecture what they must do _____ to comply, o Creates and provides architectural models within our ISEE suite that ____________________ serve as reusable templates from which developers can instantiate appli- cation models and begin the configuration of new application software. Future work on the architecture will consist of adding an additional Security ________ View to address security threats and countermeasures of special concern to ____ the defense industry. Today, this architecture has already led to unmodified component reuse levels (Reuse%Ý7¨ ) of over 20% after only 7 applications on ______ one of the U.S. Army's largest information systems. Because of the reuse principles which provide the foundation for the architecture we expect this level of reuse to steadily increase over the life of the program. Acknowledgements This architecture developed directly from the Software Architecture created in 1993-1994 by Norm Kemerer and Mike Freeman. The authors would like to acknowledge the input and comments we received from our teammates and govern- ment representatives during this project. We would also like to acknowledge the contributions of members of the MITRE corporation, especially for their help in selecting and jointly refining the views with which we express this architecture. 12 CITED REFERENCES ________________ Ý1¨ Abowd, Gregory, Robert Allen and David Garlan, "Using Style to Under- stand Descriptions of Software Architecture," Proceedings SIGSOFT'93. _______________________ First ACM SIGSOFT Symposium on the Foundations of Software Engineering ______________________________________________________________________ Los Angeles, CA, 7-10 Dec 1993, in SIGSOFT Software Engineering Notes, ___________________________________ Vol. 18, No. 5, Dec 1993, pp. 9-20. Ý2¨ U.S. Army, ODISC4, Department of the Army C4I Technical Architecture, __________________________________________________ Version 3.1, 31 March 1995. Ý3¨ Defense Information Systems Agency (DISA) Center for Architecture, Department of Defense Technical Architecture for Information Management _______________________________________________________________________ (TAFIM), Ver. 2.0, 30 June 1994. ________ Ý4¨ Garlan, David and Mary Shaw, "An Introduction to Software Architecture," Advances in Software Engineering and Knowledge Engineering, World Scien- ___________________________________________________________ tific, Singapore, 1993, pp. 1-39. Ý5¨ IEEE, "Portable Operating System Interface (POSIX)-Pt.1," IEEE Standard _____________ 1003.1, 1990. _______ Ý6¨ Jones, T.C. "Reusability in Programming: A Survey of the State of the Art," IEEE Transactions on Software Engineering, Vol. SE-10, No.5, Sep- __________________________________________ tember, 1984, pp. 488-494. Ý7¨ Poulin, Jeffrey S., Debera Hancock and Joseph M. Caruso, "The Business Case for Software Reuse," IBM Systems Journal, Vol. 32, No. 4., 1993, ____________________ pp. 567-594. Ý8¨ Poulin, Jeffrey S., "Software Reuse on the Army SBIS Program," Cross- ______ talk, July 1995, pp. 19-24. _____ Ý9¨ Zachman, John A., "A Framework for Information Systems Archictecture," IBM Systems Journal, Vol. 26, No. 3, 1987, pp. 276-292. ____________________ Cited References 13