[IEEE 2014 International Conference on Issues and Challenges in Intelligent Computing Techniques...

4
Architecture for developing reusable components For GIS Systems AmanJatain Assistant Professor, CSE & IT Department ITM Universi Gurgaon-122001 [email protected] Abstract Software reuse generally means the use of existing software systems to build new software systems. It is an emerging area in the field of soſtware engineering, which reduces the effort and time required to build software systems from scratch. The soſtware system thus developed using this technology is easy to maintain and upgrade. This technology helps to enhance the quality; reliability and flexibility of soſtware systems. The different forms of soſtware reuse are Code reuse, Architecture reuse, Requirement reuse and Documentation reuse. Software reuse helps to minimize the risks associated with the development process and the high costs associated with developing new systems. The approach of soſtware reuse can be applied to Geographic Information Systems (GIS) to simpli the development process and to improve the efficiency of these systems. In this paper architectures of different component based GIS system have been examined. Key words- reuse, component, domain, integration 1. INTRODUCTION Reusability provides the capacity to use existing objects or concepts again in the same or different contexts. With the increase in demand of producing large and complex software in shorter schedule and budget there is also an increase in the need of reusable artifacts. As defined by IEEE (IEEE 1990) reusability [1] is the degree to which a soſtware module or other work product can be used in more than one computing program or software system. Software reuse is divided into two categories product reuse and process reuse. Product reuse is defined as the reuse of all types of product components in software development like design, programming, test cases, data etc. Process reuse refers to the process of generating desired system by automatic technique and transforming soſtware system that is being reused into new system according to the request description. Application generator, program transformer and executable language are the typical examples of it. Reusability is an important concept especially for Web application development [7] because web applications have 978-1-4799-2900-9/14/$31.00 ©2014 IEEE 482 Tanvi Chawla ITM Universi Gurgaon-122001 [email protected] to be rapidly developed [11] and frequently modified. Application Development environments such as MS Visual .NET TM (Visual .NET, 2005) and Delphi TM (Borland Delphi, 2005) have to some extent employed reusability of components to aid the fast implementation of soſtware applications, the extent to which existing objects can be used again in the implementation of new soſtware systems is usually limited to basic building blocks of the interface. If a set of well-defined components is available, valuable resources can be saved by again utilizing these components. Soſtware reusability [2] is related to soſtware dependency. Coupling is a measure of the degree of dependency between two software components. It reflects [17] the modifiability, maintainability, and reusability of a soſtware product. The approach used to accomplish the goal of Software Reuse is Component Based Soſtware Engineering also known as Component Based Software Development (CBSD). Component Based Soſtware Engineering (CBSE) is a branch of software engineering [17] that focuses on the design and development of soſtware systems using reusable soſtware "components". In CBSE emphasis is laid on composing the soſtware systems by integrating existing components rather than on, following the whole development process to build systems from scratch. This approach is based on the idea to develop soſtware systems by selecting appropriate pre-built reusable components and then to assemble them into a well defined software architecture. Component-based soſtware development (CBSD) strives to integrate this available set of pre-built, standardized soſtware components into a specific architecture selected for some application domain. CBSD has already been successlly used [13] in enterprise systems, service-oriented systems and desktop domains. component-based soſtware development, we deal not with soſtware but with a whole soſtware family. Component Based Soſtware Development is based on the idea that there are many similar components in different soſtware systems and that new systems can be easily developed using these

Transcript of [IEEE 2014 International Conference on Issues and Challenges in Intelligent Computing Techniques...

Architecture for developing reusable components

For GIS Systems

AmanJatain

Assistant Professor, CSE & IT Department

ITM University

Gurgaon-122001

Amanj [email protected]

Abstract

Software reuse generally means the use of existing software systems to build new software systems. It is an emerging area in the field of software engineering, which reduces the effort and time required to build software systems from scratch. The software system thus developed using this technology is easy to maintain and upgrade. This technology helps to enhance the quality; reliability and flexibility of software systems. The different forms of software reuse are Code reuse, Architecture reuse, Requirement reuse and Documentation reuse. Software reuse helps to minimize the risks associated with the development process and the high costs associated with developing new systems. The approach of software reuse can be applied to Geographic Information Systems (GIS) to simplify the development process and to improve the efficiency of these systems. In this paper architectures of different component based GIS system have been examined.

K ey wor ds- r euse, component, domain, integr ation

1. INTRODUCTION

Reusability provides the capacity to use existing objects or concepts again in the same or different contexts. With the increase in demand of producing large and complex software in shorter schedule and budget there is also an increase in the need of reusable artifacts. As defined by IEEE (IEEE 1990) reusability [1] is the degree to which a software module or other work product can be used in more than one computing program or software system. Software reuse is divided into two categories product reuse and process reuse. Product reuse is defined as the reuse of all types of product components in software development like design, programming, test cases, data etc. Process reuse refers to the process of generating desired system by automatic technique and transforming software system that is being reused into new system according to the request description. Application generator, program transformer and executable language are the typical examples of it. Reusability is an important concept especially for Web application development [7] because web applications have

978-1-4799-2900-9/14/$31.00 ©2014 IEEE 482

Tanvi Chawla

ITM University

Gurgaon-12200 1

[email protected]

to be rapidly developed [11] and frequently modified. Application Development environments such as MS Visual .NET TM (Visual .NET, 2005) and Delphi TM (Borland Delphi, 2005) have to some extent employed reusability of components to aid the fast implementation of software applications, the extent to which existing objects can be used again in the implementation of new software systems is usually limited to basic building blocks of the interface. If a set of well-defined components is available, valuable resources can be saved by again utilizing these components. Software reusability [2] is related to software dependency. Coupling is a measure of the degree of dependency between two software components. It reflects [17] the modifiability, maintainability, and reusability of a software product.

The approach used to accomplish the goal of Software Reuse is Component Based Software Engineering also known as Component Based Software Development (CBSD). Component Based Software Engineering (CBSE) is a branch of software engineering [17] that focuses on the design and development of software systems using reusable software "components". In CBSE emphasis is laid on composing the software systems by integrating existing components rather than on, following the whole development process to build systems from scratch. This approach is based on the idea to develop software systems by selecting appropriate pre-built reusable components and then to assemble them into a well defined software architecture.

Component-based software development (CBSD) strives to integrate this available set of pre-built, standardized software components into a specific architecture selected for some application domain. CBSD has already been successfully used [13] in enterprise systems, service-oriented systems and desktop domains. In

component-based software development, we deal not with software but with a whole software family.

Component Based Software Development is based on the idea that there are many similar components in different software systems and that new systems can be easily developed using these

components rather than starting the development from scratch.

Both component providers and software developers play important roles in CBSD. Component providers (also called component developers) develop components, while software developers (also called integrator) construct software using existing components as much as possible. Component providers have access to the source code of components and have a good understanding of the components.

A software component is a part of the software system that conforms to the component model and can be independently deployed. It is a reusable unit that is easily accessible through an interface. According to Bosch a software component [18], could be defined as: "A software component is a unit of composition with explicitly specified provided, required and configuration interfaces and quality attributes". Software components developed should provide functions common to many different systems and can be reused easily. The component should be a general abstraction so it is useful in several applications without the need to undergo unnecessary changes.

Any component can be reused in software development process in two ways which are:

• Reusing component without modification: it is the extent to which an existing component can be reused in the new system without having to make any changes in the component.

• Reusing component with modification: it is the extent to which some part of the component after doing some modifications can be reused in a new system.

II. RELATED WORK

There are different approaches to build GIS (Geographic Information System) systems and different aspects of component based GIS architectures have been studied. Different reusable components are selected from these architectures and used in our proposed system. These GIS architectures divide the GIS systems into different levels which makes development easy. Each level has different components which are connected through interfaces and interaction takes place among these levels through component interfaces. In an example [4] depicted by Dong­Wei, the ComGIS system which is a component based GIS system divides its components among three levels: the view level, the implement level and the control level.

In another approach [3] presented by Do­Hyun Kim, the GIS system is modeled using UML, which clearly defines the properties and functions of objects in GIS and the open GIS system architecture is used for developing component software environment for GIS systems. The service entities of this architecture are designed as the component units and are assembled as parts of the GIS systems. In this architecture each component is a collection of several essential service entities which provide

various services in the GIS system. The components in this architecture are modeled using UML and are developed in object oriented computing environment, ATLICOM and Visual C++.

As shown by Luiz Fernando Capretz, the component identification [10] for the particular application requires collection of information and a domain oriented approach is used for GIS component selection. In this approach the GIS component information is organized by collecting and comparing information from various sources. The scheme used, called composing is composed of entities which refer to the main concepts of GIS component domain.

Xeu Shengjun presented different modes [19] in which GIS software can be developed using component techniques, these modes are CIS (Client Server) or B/S(BrowserIServer) mode. In Internet age developing GIS system in B/S mode is a trend and is more beneficial.

In the system structure design presented by Bei Jia in Development of Component based Enterprise GIS [14] the system is based on GIS spatial database engine SuperMap SuperMap SDX+, , and transplants DSB database into SQL server and Oracle relational database; and designs integrated spatial database.

A prototype called FreeXGIS presented by WanLi in an implementation of WebGIS[16] based on Distributed components illustrates development approach of the system using EJB, DCOM and XML. The FreeXGIS is based on hierarichal architecture. Also it divides the architecture into four layers: database layer, component service layer, component management layer and presentation layer.

In a life cycle model of component based system [20] presented by Xia Cai the architecture of software defines a system in terms of computational components and interactions among the components. The focus is on composing and assembling components that are likely to have been developed separately, and even independently. Component identification, customization and integration is a crucial activity in the life cycle of component-based systems.

It includes two main parts:-

1) Evaluating each candidate COTS (commercial-off-the­shelf) component based on the functional and quality requirements that are used to assess that component and have to be defined during design; and

2) Customizing those candidate COTS components means they should be modified to fit in the required architecture, before being integrated into new component-based software systems.

Integration is an important step as the integrated components communicate by exchanging data and coordination among various components is necessary for the proper working of the target software system. The

20J4Internationai Conference on Issues and Challenges in Intelligent Computing Techniques (ICICT) 483

integrated components may work on same data so integrated

components should be well coordinated. Quality assurance

for component-based software systems should address the

life cycle and its key activities to analyze the components

and should strive to achieve high quality for component­

based software systems

III. ARCHITECTURE AND LIFECYCLE OF GIS

SYSTEMS

The component selected for reuse should be independent; it

should have high cohesion and should be loosely coupled to

other units. The components should have well defined

interface and should offer operations that makes it useful.

The different type of software reuse is black box reuse and white box reuse. Black box reuse means using the

component directly without any modifications. In White box the component is not reused until it has been modified

according to the customer needs.

The different steps in the process of component

reuse [3] are Domain analysis, System design, Component selection, implementation and Component integration.

Domain analysis is about finding common features and

functions among other software systems and GIS systems,

to find components which can be reused in GIS systems. In

system design phase, we design a suitable architecture for

the GIS systems and identify component technologies to be

used for component development and integration. The

different technologies which can be used in CBSD include

Sun Microsystems's JavaBeans and Enterprise Java Beans,

Component Object Model (COM) and Distributed

Component Object Model (DCOM). The component

selection phase involves selecting reusable components for

GIS systems and analyzing if these components properly fit

into the GIS system architecture. The implementation phase

begins with modifying reusable components according to

the functionality required in the GIS systems. In the

Component integration phase the components hence

developed are integrated using the selected component technology.

The main disadvantages of component reusability are customization, adaptability and integration. The major

issue is the customization of an already developed component according to the requirements of a new

application. Another topic of concern is that developers face difficulty to adapt a component to a new platform if it was

not developed for that platform. Also the integration of a component with other components poses great difficulty

for the developers.

The GIS system is designed [14] in the form of

components; each component consists of the interfaces and

the objects. The different components for this system are

classified as data access components, display components

and user interaction components. The two kinds of

components implemented in this system are: the GeoData

component and the Map Base component. The GeoData

component reads the well-known binary geometry data from

various data providers. The major role of MapBase

Component is to draw a thematic map of the features with

diverse symbols. This component provides the various

symbol objects and map display objects. Another reusable

component is the Report Component [3] which generates

the sheet with maps and other objects, but it is not employed

to simple map display application .. The MapBase component

displays the map in the main window which also has

features of changing display settings.

The following questions are posed while

developing GIS software:-

Question 1: Which life cycle model should be selected to

develop component based GIS system?

Answer: The traditional life cycle models can't be used to

develop this component based GIS system [21], a component model that provides well defined architecture for

developing components should be selected like the

Component Object Model (COM). COM is a standard of

Microsoft.

Question 2: Which architecture should be used to design

the component based GIS system?

Answer: For developing software, application architecture

is very important. MVC frame is mature software

architecture. MVC (Model-View-Controller) architecture

[15] divides application into three parts: Model, View, and

Controller. Model includes data of application and method

of operating of this data. View is in charge of displaying

state of Model. View is interface of application. User

interacts with application through view. Controller is

scheduler of whole application. It translates user's action

into instruction. Controller controls the flow of program.

Example in J2EE, Model is JavaBean, View is JSP page and

Controller is Servlet. �--------------�

Display Elements

Common Web

CONTROLLER MODEL

Session handler Event Notification

Page processor Messaging

484 2014 International Conference on Issues and Challenges in Intelligent Computing Techniques (ICICT)

Figure 1: Reference Framework Architecture of Reusable Component

Question 3: Which computer language should be used t o develop components for GIS system?

Answer: The COM components can be developed by all kinds of computer language for example Visual C++, Visual Basic, C++, Delphi, Java etc. Running of COM component is independent of its position. We have to run this GIS system on different platforms so we should select CORBA (Common Object Request Broker Architecture) or JavaBean.

EJB (Enterprise Java Beans) technology [15] is an efficient technology and can be adopted for developing reusable components for GIS systems.

IV. PROPOSED SYSTEM

We have discussed in this paper different system architectures and technologies in the context of component based GIS systems. The architecture of GIS systems can be simplified just by assembling and integrating pre built reusable components through well defined interfaces. The proposed system uses Java based technology, the Sun Microsystems's Enterprise Java Beans (EJB) for implementing the GIS components and integrating them into the designed GIS architecture. The maps for these GIS systems can be easily viewed using Map objects-Java Standard edition that is a client side java solution. Also the ArcIMS application server will provide GIS services and on the client side it supports drawing, editing and map display features.

The focus is on selecting components according to the requirements and defining a simple GIS architecture. The architecture of this system divides the whole system into various levels, each level provides separate services in the system and components are allocated at each level. These components are reusable as they have been implemented using EJB technology and can be used in other GIS systems as well. The components may be selected from earlier developed GIS systems or can be separately developed for required architecture.

V. CONCLUSION

The development of reusable components for GIS systems will help to break down the complex architecture into small parts which would thus be easier to develop and maintain. The reusable components developed for one GIS system can be used in other similar systems and the system will have a well-defmed architecture. In this paper a component based architecture for GIS systems has been discussed.

REFERENCES

[1] Bosch,"Design & Use of Software Architectures Adopting and evolving a product-line approach", ISBN-IO: 0201674947, May 2010. [2] Debayan Bose, Component Based Development, Indian Statistical Institute. [3] Do-Hyun Kim, Kwang-Soo Kim, Haeock Choi, and Jong-Hun Lee, The Design and Implementation of Open GIS Service Component. [4] Dong Wei and Xun Chu, Design and Research of 3DGIS System Base on Component, 2010. [5] Do-Hyun Kim and Min-Soo Kim ,Web GIS Service Component Based On Open Environment, IEEE 2002.

[6] George Lepouras, Anya Sotiropoulou, Dimitrios Theotokis

and Costas Vassilakis, Tailorable E-Government Information Systems. [7] Gabriela Gaetan, Viviana Saldafio, Agustina Buccella, and Alejandra Cechich, A Domain-Oriented Approach for GIS Component Selection, 2010. [8] G. Rossi, D. Schwabe, and F. Lyardet,Abstraction and reuse mechanisms in web application models. In ER '00: Proceedings of the Workshops on Conceptual Modeling Approaches for E­Business and The World Wide Web and Conceptual Modeling, pages 76-88, London, 2000. [9] LCrnkovic and M. Larsson. Building Reliable Component­Based Software Systems. Artech House, Inc., Norwood, MA, USA, 2002. [10] Luiz Fernando Capretz, Miriam A. M., Capretz Dahai Li, Component-Based Software Development, Department of Electrical & Computer Engineering, IECONO 1: The 27th Annual Conference of the IEEE Industrial Electronics Society. [11] M.N. Babu, Implementing Internet GIS with Java based Client/Server Environment, 2003. [12] M. Jazayeri. Some trends in web application development. In FOSE'07: Future of Software Engineering, pages 199-213, USA, IEEE Computer Society, 2007. [13] Qiuxiang Yang , Application Research on Software Reuse Technology Science and Technology, School of Electron and Computer, North University of China, 2010. [14] Qiaomei Su and Bei Jia, The Design and Development of

Component Based Enterprise GIS, Surveying Science and Technology, IEEE 2011. [15] Sajjad Ali Khan and Waqir Hussain, Component based software development with EJB and .Net.

[16] Tan Jing, Zhang Baiping and Wan Li, Design and Implementation of WebGIS based on Distributed Components, IEEE 2008. [17] W. Frakes and C. Terry, Software Reuse: Metrics and

Models, ACM Computing Surveys 28, June 1996. [18] W. P. Stevens, G. J. Myers, and L. L. Constantine, Structured Design, IDM Systems J. 13 (No. 2), 1974. [19] Xeu Shengjun and Zhang Liang, Developing GIS software

with Component Technique, Department of Computer and Software, IEEE 2008. [20] Xia Cai, Michael R. Lyu, Kam-Fai Wong, The Chinese University of Hong Kong, Component-Based Software

Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes. [2l] Y ong-liu and Aiguang-yang , Research and application of Software-reuse, 2007.

20J4Internationai Conference on Issues and Challenges in Intelligent Computing Techniques (ICICT) 485