COMPONENTS IN MILITARY IT



Similar documents
Managing Variability in Software Architectures 1 Felix Bachmann*

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

A Model for Component Based E-governance Software Systems

Introduction to Service Oriented Architectures (SOA)

Getting Started with Service- Oriented Architecture (SOA) Terminology

Core Enterprise Services, SOA, and Semantic Technologies: Supporting Semantic Interoperability

Software Development for Multiple OEMs Using Tool Configured Middleware for CAN Communication

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Knowledge-based Approach in Information Systems Life Cycle and Information Systems Architecture

An Ontology Based Information Exchange Management System Enabling Secure Coalition Interoperability

How To Develop Software

Service Oriented Architecture

Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach

Integration Using the MultiSpeak Specification

The Service Revolution software engineering without programming languages

Enterprise Application Designs In Relation to ERP and SOA

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Implementation of Information Integration Platform in Chinese Tobacco Industry Enterprise Based on SOA. Hong-lv Wang, Yong Cen

Verification and Validation of Software Components and Component Based Software Systems

Run-time Variability Issues in Software Product Lines

A Pattern-based Framework of Change Operators for Ontology Evolution

Potential Role of an Enterprise Service Bus (ESB) in Simulation

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

How service-oriented architecture (SOA) impacts your IT infrastructure

Future Internet Architecture

A Quick Introduction to SOA

Service-Oriented Architecture and its Implications for Software Life Cycle Activities

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Service Oriented Architectures in the Delivery of Capability

CT30A8901 Chapter 10 SOA Delivery Strategies

Semantic Business Process Management Lectuer 1 - Introduction

David Pilling Director of Applications and Development

A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Federal Enterprise Architecture and Service-Oriented Architecture

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Report on the Dagstuhl Seminar Data Quality on the Web

Six Strategies for Building High Performance SOA Applications

JOURNAL OF OBJECT TECHNOLOGY

On the Standardization of Semantic Web Services-based Network Monitoring Operations

Automated Virtual Cloud Management: The need of future

Requirements engineering

Patterns for Business Object Model Integration in Process-Driven and Service-Oriented Architectures

A Service Modeling Approach with Business-Level Reusability and Extensibility

Infrastructures for Digital Business Ecosystems : the wrong question?

Reusability of WSDL Services in Web Applications

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

A Symptom Extraction and Classification Method for Self-Management

SOA for Healthcare: Promises and Pitfalls

Service-Oriented Architecture: Performance Issues and Approaches

SOACertifiedProfessional.Braindumps.S90-03A.v by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

Secure Semantic Web Service Using SAML

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

An Overview of Challenges of Component Based Software Engineering

Service Oriented Architectures

Ontological Representations of Software Patterns

Service Oriented Architecture and Its Advantages

An Approach to Software Architecture Description Using UML

Information Services for Smart Grids

A common interface for multi-rule-engine distributed systems

Service Oriented Architecture

Service Computing: Basics Monica Scannapieco

Service-Oriented Architectures

Scientific versus Business Workflows

CONTEMPORARY SEMANTIC WEB SERVICE FRAMEWORKS: AN OVERVIEW AND COMPARISONS

Web Services - Consultant s View. From IT Stategy to IT Architecture. Agenda. Introduction

Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1

Definition of a Software Component and Its Elements

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Service Oriented Architecture (SOA) An Introduction

Distributed systems. Distributed Systems Architectures

Distributed Systems and Recent Innovations: Challenges and Benefits

Issues in Component-Based Development: Towards Specification with ADLs

Ontology and automatic code generation on modeling and simulation

Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems

The DISASTER And Communication Based Network Marketing Infrastructure

Applying SOA to OSS. for Telecommunications. IBM Software Group

A Survey of Quality Assurance Frameworks for Service Oriented Systems

A Process View on Architecture-Based Software Development

cloud SOA Research Guide

STRATEGIES ON SOFTWARE INTEGRATION

Myths About Service-Oriented Architecture Demystifying SOA. producers can coexist, and still have no dependence on each other.

Software Engineering

Elite: A New Component-Based Software Development Model

Architecture Centric Development in Software Product Lines

Lina khalid Ahmed Department of Software Engineering Zarqa University Amman, Jordan

Service Oriented Enterprise Architecture

Overview of major concepts in the service oriented extended OeBTO

Service Virtualization: Managing Change in a Service-Oriented Architecture

An Object Model for Business Applications

Service-Oriented Computing and Service-Oriented Architecture

SOA Success is Not a Matter of Luck

The Enterprise Service Bus: Making Service-Oriented Architecture Real

Data-Aware Service Choreographies through Transparent Data Exchange

Implementing reusable software components for SNOMED CT diagram and expression concept representations

Process Patterns for Component-Based Software Development

Dynamism and Data Management in Distributed, Collaborative Working Environments

Transcription:

Technical Sciences 373 REUSABLE INTEROPERABILITY COMPONENTS IN MILITARY IT Sandor MUNK munk.sandor@uni-nke.hu National University of Public Service, Budapest, Hungary ABSTRACT In our days the range of information activities supported by IT equipment, and the volume of information stored in IT systems continually grows. So the cooperation among different organizations is practically impossible without extensive, meaning preserving information exchange between their IT systems. Practically all today's interoperability solutions are based on a previously agreed intermediary representation (formatted message standard, or standard data elements), but these solutions have a number of limitations. Recent paper analyses the reasons, circumstances, and conditions of the application of reusable interoperability components. For this reason: summarizes the basics of reusable interoperability components, and analyses reasons for their application; examines how reusable interoperability components fit military interoperability solutions; and finally outlines the basics of an interoperability component model. KEYWORDS: IT interoperability, component-based software development, reusable interoperability components 1. Introduction In a previous publication [1] we justified the need for research of reusable IT interoperability components. Significance of IT systems interoperability is particularly great in such complex systems of organisations as the defence sector (military forces, law enforcement, disaster management, etc.), the public administration. Practically all interoperability solutions of our days are based on previously agreed intermediary representations, and devolve the tasks of transformation between different information representations to the relevant IT systems, so the interoperability capabilities, functions embodied in these solutions do not become public property. Another significant problem is, that the adaptation to changing cooperation environments, emerging, and changing information exchange needs, the improvement of interoperability capabilities are limited, and time-consuming. This requires application of state-of-the-art among others component based, service oriented, or middleware IT development methods, and solutions. The purpose of recent paper is to analyse the reasons, circumstances, and conditions of the application of reusable interoperability components.

374 Technical Sciences 2. Basics of Reusable Interoperability Components, and Reasons for Their Application Reusability has long been used as a means of human problem solving. Successful solutions later have been used in solving new, similar problems [2]. This applies also for IT systems, where the reuse has been used from the beginning of software development. Feasibility, benefits, application conditions of reuse depend on the characteristics of the given application area. Scientific publications primarily examine the role of interoperability in the implementation of reusability of software components. This publication is based on a different approach: discusses the role of reuse in the implementation of interoperability. 2.1. Software Reusability, Component- Based Software Development Software reuse is the use of existing software to construct new software, its purpose is to improve software quality and productivity. The precondition is the ability to build larger systems from smaller components, and being able to identify common functions of the components used in the same, or different systems. It has its own problems, and drawbacks: higher maintenance costs, lack of support toolkit, not invented here syndrome, and difficulties of publishing, finding, understanding, and adapting reusable components [3, 4, 5]. The Component-Based Software Development (CBSD) is a software development methodology that is based on the separation of software system development, and software components development. Accordingly, software systems should be built up from prefabricated, existing components, and software components should be developed so that they can be used in different systems. A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties [6]. 2.2. Basics of IT Interoperability Interoperability in general is a mutual capability of two or more objects to support cooperation, interoperation. The fundamental type of interoperability is operational interoperability between active actors cooperating to achieve a common goal. The preconditions are different part apabilities, among them the key prerequisite, information interoperability: a mutual capability of different actors to ensure exchange and common understanding of information needed for their successful cooperation. Information exchange between cooperating actors increasingly happens without human assistance, by direct data exchange between the actors IT systems. So IT interoperability is a mutual capability of IT systems, devices, applications (hereinafter briefly IT entities) to send, receive, exchange data preserving the meaning assigned by the primary user community. An interoperability problem occurs, when at some level there are differences, disagreement in the representations used, or in their interpretations. The purpose of an IT interoperability solution is to resolve heterogeneity between disparate, heterogeneous IT entities, to ensure conditions of meaning preserving information exchange. Interoperability interfaces, connectors, wrappers implement meaning preserving transformations between the entity s internal representation, and the intermediary representation used. Interoperability gateways perform transformations between different intermediary representations. The transformations can be implemented in the form of an interoperability infrastructure that is a value-added network service layer, or an independent middleware layer. 2.3. Reasons for component-based interoperability solutions A component-based interoperability solution can be built using functional decomposition of the transformation of a complete information exchange unit into transformations of lower level composite

Technical Sciences 375 and elementary information units. In the following under reusable interoperability component (functional unit) we understand a hardware and/or software entity, which purpose is to implement meaning preserving transformation between different information representations. Because most of the IT systems use the same, or similar information representation formats, and several common data element types, IT interoperability solutions, to a considerable extent, are based on identical, widely used functions. This is especially true for the syntactic level of transformations: decomposition and composition of structured, and semi-structured information representations; or conversions between different data formats, different encodings of textual information. These interoperability functions may be ideal for multi-use (reusable) building blocks. Semantic level meaning preserving transformations are typically based on significant domain-oriented knowledge contained in ontologies describing concept systems, and related rule systems, algorithms. Expert knowledge required for the implementation of these functions is an expensive resource, so its hiding in specific systems is extremely inefficient. Finally interoperability solutions are characterized by a dynamically changing environment, and the need for rapid adaptation to changing circumstances. IT systems go through less frequently syntactic, more frequently semantic changes. In addition military IT systems often find themselves in an environment where they have to work together, exchange information with previously unknown IT systems. Component-based systems capabilities can be extended, improved without manufacturerlevel software development. Available, assured quality interoperability components may help to adapt to new, or changed requirements within a relatively short period of time. 3. Reusable Interoperability Components and NATO Interoperability Solutions As a part of the analysis of reusable interoperability components it is essential to compare their basic issues against existing, and proposed interoperability solutions. Based on our research goals we selected two NATO interoperability solutions: Multilateral Interoperability Program, and NATO Semantic Interoperability Logical Framework. In case of both solutions we examine how the reusable interoperability components fit into their overall framework, what kind of role they could play in them, what kind of relationships can be found between them, and whether they offer a solution to problems, which are not dealt with. 3.1. Interoperability components and the MIP Multilateral Interoperability Programme (MIP) is an international organization that contributes to ensuring the conditions of interoperable information exchange between military command and control information (hereinafter IT) systems in multinational, coalition environments with developing a set of interface specifications and supporting documents. The foundation of MIP solution is the MIP gateway implementing the MIP Common Interface. MIP Common Interface supports interoperable information exchange between national IT systems providing two standardized information exchange mechanism. Transformations between data formats, message formats, communication protocols used in national IT systems and standardized MIP solutions is national responsibility. MIP Data Exchange Mechanism (DEM) supports automated, selective exchange of situational awareness database information by a replication mechanism. MIP Message Exchange Mechanism (MEM) supports transmission of operational information (orders, plans, reports,

376 Technical Sciences notifications, etc.) using formatted messages and related file attachments. In practice there are a number of semantic and syntactic differences between inner information representations of national IT systems, and standardized MIP intermediary representation. The degree of differences depends on the application area similarity of cooperating systems, and on the preliminary agreements. Heterogeneity between inner and intermediary representations cannot, or should not be completely eliminated. Inner representations should primarily support the intended purpose of the affected system. The heterogeneity between inner and MIP representations implies, that national transformation functions play an important role. These transformations may be necessary on different levels (protocols, information structures, elementary information used, etc.). Both DEM (with structured data) and MEM (with semi-structured data) require transformations between elementary data. The components providing format-oriented, syntactic transformations can be implemented easier, and can be used widely. However components performing content-oriented, semantic transformations usually require substantial domain-oriented knowledge, and can be utilized within the given application area. 3.2. Interoperability Components and the NATO SILF NATO Semantic Interoperability Logical Framework (SILF) is a high level (logical) framework that forms the basis of ensuring semantic interoperability between heterogeneous military IT systems that is based on the assumption that technical and syntactical levels of interoperability exist between concerned systems. It aims a solution that does not require any major changes in the existing systems, and the systems need not know anything about the other systems and their characteristics. SILF is a middleware solution that performs interoperability in the communication medium. Essential parts of SILF are semantic technologies, and the existence of semantic descriptions of data used by the particular systems [7]. From the point of view of our research goal, fundamental characteristic of the SILF solution is that interoperability is realized by a rule-based mediator (programmable gateway). Translation rules applied during the operation phase are generated in the preparation phase by ontological means, using semantic descriptions of the given systems, and a constantly evolving common semantic base. Interoperability components in the SILF model does not appear explicitly. It does not determine the way of the implementation of the rule-based mediator, but it mentions intermediate translation/ mediation components as parts of the runtime environment [8]. These components are parts of a gateway which also contains other components solving syntax-level translations, or technical problems of tactical communication networks [9]. The external events for event condition action type rules are arrivals of the incoming information representations, internal events are initiations of some transformation subtasks, and elementary actions are elementary transformations that can be implemented as interoperability components. Due to the limitations of rule markup languages a rule-based, declarative solution should not appropriate, or efficient in any case. So the SILF generated rules can be used for building traditional algorithmic components too. 4. Conditions of use of Reusable Interoperability Components Interoperability components may be operational only in component-based systems, based on well-defined standards and agreements (component model), and making use of the services of a supporting infrastructure. The component model is a rule system (standards and conventions)

Technical Sciences 377 that defines the interaction and composition of components (forms of communication, representations of information, conditions of deployment, etc.), while the component framework is a platform (a set of interacting components) on top of which other components operate, and which provides different (e.g. communication, or resource management) services for them [10, 11]. 4.1. Basics of Interoperability Component Models, Frameworks Over time, in IT practice several different component model and related framework (infrastructure) have been developed and widely used. In essence, service oriented solutions are very similar, which are also based on interoperable, reusable but loosely coupled components, however they regulate only the communication between components, and do not contain specifications for the language and platforms of components. Component models can be classified into two major groups. General component models are general purpose solutions that determine the rules of interaction and composition of components. According to their purpose in these models do not appear domain specific requirements, and they do not contain any domain specific solutions. Domain-oriented knowledge can be represented in domain-specific component models, which establish special component types and special compositional solutions in the framework of a general component model [12]. To both component models belongs an appropriate component framework, providing general purpose, and domain specific services. Essential elements of component models, and frameworks are component types and component interfaces. Component-based solutions have well-defined architecture. The planning and development of individual solutions can be supported by general, reusable architectural patterns (logical models) designed for repetitive tasks. For each component model there is one or a few related architectural patterns that determine the basic component types, their purpose, basic functions, and the rules of their interconnections, and interactions (and the appropriate interfaces). Domain-oriented component models usually based on more complex architectural patterns that represent the specialities of the given domain. Since our research goal is related to military IT interoperability solutions, in the following we overview the relationships of interoperability components and NATO IT frameworks. Today s NATO IT frameworks and related documents are based on the service-oriented approach. These documents classify the individual services into three basic service area (community of interest, core enterprise and communication services), and within them into service categories. Interoperability components (may) appear in all the three service areas: in the first two on semantic and syntactic level, in the third, on technical level. Currently in the relevant NATO documents the core enterprise [IT] services category contains services related to our research topic. NATO C3 Classification Taxonomy contains composition services, and mediation services in the SOA Platform Services category. These services use semantic models, either explicitly, or implicitly [13]. Interoperability solutions also appear in the catalogue of the NATO Interoperability Standards and Profiles that contains translations services in the mediation services category. These services manipulate messages in-flight between a service provider and a consumer. They make protocol, and message content transformations, augment messages by adding information from external data sources, and derive complex events from message and event streams [14]. 4.2. Outlines of an Interoperability Component Model The essential condition of a widelyusable interoperability solution, based on

378 Technical Sciences reusable components, is a commonly accepted domain-oriented interoperability component model and a supporting component framework (infrastructure). In practice such a model with the same functionality can be implemented built on different generic component models. In a previous publication [15] a comprehensive model of an interoperability solution has already been presented that is based on three basic interoperability functional unit types: decomposition of the source representation into elementary components, meaning preserving transformation between elementary components, and composition of target representation from elementary components. Based on the above model interfaces of basic interoperability component types at high level can be standardized. The proposed generic interface for all three types contains a unique provided interface, optionally one (or more) required interface, and a single operation. The interface includes one or more input information representation with their descriptions; one or more output information representations with their description; and the status result of the execution of the interoperable transformation function. For the purpose of general applicability, information representations are bit strings without any format specification. Descriptions of information representations minimally contain a universally unique ID of representation type (UURTID), and optionally additional descriptive characteristics. UURTID uniquely identifies the content (meaning) of the information conveyed, and its format, including its structure. Additional characteristics may serve later, or special application purposes. Cooperation of interoperability components based on the proposed interface ensures the implementation of any interoperable transformation tasks. Transformations between elementary information representations can usually been performed without the services of other components. In case of complex information representations, the interoperability component implementing the required transformation contains a control structure activating simpler decomposition, transformation, and composition components. The interoperability component fitting into the above model can be a documented executable format software component, made available for use, or a service with a self-contained functionality in a service-oriented architecture (e.g. web service). In addition the interoperability components may have additional functions and interfaces too. One such example is the recognition of the type of a given representation that can be useful in case of handling representations which are not documented (e.g. derived from foreign sources). This functionality determines the type, or possible types of one, but preferably a set of information representations (e.g. derived from a database). 5. Summary, Conclusions Because IT interoperability solutions based on pre-agreed intermediate representations provide an effective solution only in case of a well-defined, long term, and close cooperation; their implementation and maintenance requires extensive coordination and significant time; they respond hardly and slowly to the new information exchange requirements; it is justifiable to examine the possibilities, and conditions of the application of modern software development approaches. One of these approaches is the component-based software development and the closely related service-oriented approaches. Analysing the NATO interoperability solutions it can be stated that the MIP interoperability solution does not provide any support to national information transformation functions, so they should be implemented as independent, national responsibility interoperability solutions.

Technical Sciences 379 The SILF interoperability solution also does not address the implementation details of the semantic mediator performing interoperable transformations. The rule-based SILF approach indirectly involves the need for components performing elementary transformations, in addition allows the creation of interoperability components using translation rules. Interoperability components can be inserted into the framework of both solution. Under appropriate conditions these components can be used more than once, e.g. re-used. The application of component-based implementation, similarly to other application areas, can be justified. For this purpose we propose a domainspecific interoperability component model that fits the existing general component models, or service-oriented architecture. The model is based on decomposition, transformation, and composition components. Furthermore we propose a common generic interface which contains information representations and their descriptions (identifiers). This unique standardized interface supports the interoperation of interoperability components, and the implementation of any interoperability function. REFERENCES 1. Munk Sándor, Component-based interoperability solutions, a novel approach, Academic and Applied Research in Public Management Science 13, 1 (2014). 2. Rubén Prieto-Díaz, Status Report: Software Reusability, IEEE Software 10, 3 (1993). 3. William B. Frakes and Kyo Kang, Software Reuse Research: Status and Future, IEEE Transactions on Software Engineering 31, 7 (2005). 4. Sarbjeet Singh et. al., Software Engineering Survey of Reusability Based on Software Component, International Journal of Computer Applications 8, 12 (2010). 5. Ian Sommerville, Software Engineering. Ninth Edition, (Boston: Addison-Wesley, 2011). 6. Clemens Szyperski, Component Software: Beyond Object Oriented Programming, (Boston: Pearson Education, 2002), 41. 7. TR-IST-075 Semantic Interoperability, (Neuilly-sur-Seine: NATO Science and Technology Organization, 2010), 1-8. 8. Ibidem, 1-10. 9. TR-IST-094 Framework for Semantic Interoperability. (Neuilly-sur-Seine: NATO Science and Technology Organization, 2014), 5-6. 10. Felix Bachmann et. al., Technical Concepts of Component-Based Software Engineering, (Pittsburgh: Carnegie Mellon University, 2000), 23-25. 11. Bill Councill and George T. Heineman, Definition of a software component and its elements, in Components-based software engineering: Putting the pieces together, ed. George T. Heineman and Bill Councill (Boston: Addison-Wesley, 2001), 7. 12. Kung-Kiu Lau and Faris M. Taweel, Domain-Specific Software Component Models, in Component-Based Software Engineering. 12 th International Symposium Proceedings, ed. Grace A. Lewis, Iman Poernomo, and Christine Hofmeister (Berlin- Heidelberg: Springer, 2009). 13. C3 Classification Taxonomy. Baseline 1.0., (Norfolk: Allied Command Transformation, 2012), 33-34. 14. ADatP-34(G) NATO Interoperability Standards and Profiles. Vol. 5. Rev1., (NATO C3B Interoperability Profiles Capability Team, 2013), 39. 15. Munk Sándor, cit.ed. 42.

380 Technical Sciences BIBLIOGRAPHY Allied Command Transformation. C3 Classification Taxonomy. Baseline 1.0. Norfolk: Allied Command Transformation, 2012. Bachmann, Felix, Bass, Len, Buhman, Charles, Comella-Dorda, Santiago, Long, Fred, Robert, John, Seacord, Robert, and Wallnau, Kurt. Technical Concepts of Component-Based Software Engineering. Technical Report. Pittsburgh: Carnegie Mellon University, 2000. Councill, Bill, and Heineman, George T. Definition of a software component and its elements. In Components-based software engineering: Putting the pieces together, edited by George T. Heineman and Bill Councill, 5-19. Boston: Addison-Wesley, 2001. Frakes, William B. and Kang, Kyo. Software Reuse Research: Status and Future. IEEE Transactions on Software Engineering 31, 7 (2005): 529-536. Lau, Kung-Kiu, and Taweel, Faris M. Domain-Specific Software Component Models. In Component-Based Software Engineering. 12 th International Symposium Proceedings, edited by Grace A. Lewis, Iman Poernomo, and Christine Hofmeister, 19-35. Berlin- Heidelberg: Springer, 2009. Multilateral Interoperability Programme. MIP Technical Interface Design Plan (MTIDP) Edition 3.1.2. Greding: Multilateral Interoperability Programme, 2012. Munk Sándor. Component-based interoperability solutions, a novel approach. Academic and Applied Research in Public Management Science 13, 1 (2014): 31-46. NATO C3B. ADatP-34(G) NATO Interoperability Standards and Profiles. Vol. 5. Rev1. NATO C3B Interoperability Profiles Capability Team, 2013. NATO Science and Technology Organization. TR-IST-075 Semantic Interoperability. RTO Technical Report. Neuilly-sur-Seine: NATO Science and Technology Organization, 2010. NATO Science and Technology Organization. TR-IST-094 Framework for Semantic Interoperability. STO Technical Report. Neuilly-sur-Seine: NATO Science and Technology Organization, 2014. Prieto-Díaz, Rubén. Status Report: Software Reusability. IEEE Software 10, 3 (1993): 61-66. Singh, Sarbjeet, Thapa, Manjit, Singh, Sukhvinder, and Singh, Gurpreet. Software Engineering Survey of Reusability Based on Software Component. International Journal of Computer Applications 8, 12 (2010): 39-42. Sommerville, Ian. Software Engineering. Ninth Edition. Boston: Addison-Wesley, 2011. Szyperski, Clemens. Component Software: Beyond Object Oriented Programming. 2 nd Edition. Boston: Pearson Education, 2002.