Component Based Architecture
Component Based Architecture
{tg1e08, rr12g08}@ecs.soton.ac.uk
Abstract This short review paper presents world because of the continuing integration
Component based Architectures (CBA), which is problems of the Enterprise applications. IT
a new approach for software engineering tasks, organizations everywhere have jumped on
which can be adopted in many areas. the CBA in hopes that it might finally ease
Component-based software development is
the IT planning burden. But it is not that
associated with a shift from traditional system
building using set of coding to system building easy [5].
by plugging together components. The main drive behind component
technology was reusability. Applications
can be built simply by simply plugging
1. Introduction existing reusable software components
together
In the changing world, component-based
software technology is becoming an However, reusability was not the only drive
increasingly popular approach to facilitate behind component technology: independent
the development of evolving systems. The evolution of application parts, enhanced
objective of this technology was to take flexibility, adaptability, and maintainability
elements from a collection of reusable of software systems, higher-level of
software components (i.e. components-off- application development than “classical”
the shelf-COTS packages) and build programming paradigms can be achieved
applications by simply plugging them through the CBA.
together. Hence, it aimed at the production
of high-quality software systems with 3. OOP & Component based Technology
shorter and more cost-effective development
cycles. By reconfiguring components, Theoretically object-oriented programming
adapting existing components, or (OOP) languages, analysis and design
introducing new components it was hoped methods would provide a well-suited tool-
that applications could be adapted to box for component-based application
changing requirements of real-world development, but practice showed that the
software systems more easily and address technology was often applied in a way that
the problems of object-oriented development contradicted the goals behind component
approaches [5, 7]. technology.
2. Overview Object-oriented analysis and design methods
The core of the CBA is the components and are domain-driven, which usually leads to
their interaction. Industry’s shift to CBA is a designs based on domain objects. Most of
new enterprise architecture model for these methods make the assumption that an
delivering applications. CBA has made a application is being built from scratch, and
tremendous amount of interest in the IT they incorporate reuse of existing
-1-
architectures and components too late in the being violated. In addition, changing
development process [4]. framework classes often implies extensive
modifications of application-specific code
In order to successfully plug components [4].
together, it is necessary that the interface of
each component matches the expectations of
the other components and the “contracts”
between the components are well-defined.
Therefore, component-based application
development depends on adherence to
restricted, plug-compatible interfaces and
standard interaction protocols. However, the Figure 1Object-orientation versus component
result of an object-oriented analysis and ware [7]
design method generally is a design with Figure 1 illustrates the problems associated
rich object interfaces and non-standard with the object-oriented paradigm.
interaction protocols [4]. Classes/objects implemented in one
programming language cannot interoperate
Object-oriented programming languages with those implemented in other languages.
have been very successful for implementing Some object-oriented languages even
and packaging components, but they only require the same compiler version.
offer limited support for flexibly of Furthermore, composition of objects is
connecting components and explicitly typically done on the language level.
representing architectures in applications. Composition support is missing, that is,
visual/ interactive tools that allow the
Given the source code of an object-oriented plugging together of objects [7].
application, one can more easily identify the
components, but it can be extremely difficult
Objects Components
to tell how the system is composed. The
reason is that object-oriented source code Bound to OO language Can be written in any
exposes class hierarchies, not object (C++, Smalltalk) language
interactions. In addition, the way objects are Tight couplings More loosely coupled
interconnected is typically distributed (implementation than objects (Interface
amongst the objects themselves, which inheritance) inheritance)
hinders a clean separation between Functional
computational and compositional aspects Aggregation
needed for component-based development Fine granularity in Larger granularity
[4].Although object-oriented applications object decomposition
can often be adapted to additional
requirements with a minimal amount of new Limited forms for Interface oriented
accessing (methods)
code, it can require a great deal of detailed
study in order to find out where exactly the No Mechanism for Mechanism for
extension is needed. Unfortunately, object- runtime discovery runtime discovery
oriented frameworks do not make their No common Designed to obey
generic architecture explicit, which results in framework rules of a common
a steep learning curve before a framework framework (.NET,
can be successfully used. Since object- CORBA, COM)
oriented frameworks focus on sub classing No binary specification Has a binary
of framework classes (also known as white- specification allowing
box reuse), a detailed understanding of the run-time discovery
generic architecture is needed in order to and reuse
prevent contracts between two classes from Table 1- Difference between Objects and
Components.
-2-
The above mentioned table 01 lists the
major differences between components and As a consequence, standards for describing
objects. We can decide whether they are components have been established. The
revolutionary or evolutionary component (module) interface is described
either
Briefly we can say OOP concept is having
• Textually by means of an interface
lack in functionality, interaction, quality,
description language (IDL), or
management, evaluation tools and
• Visually/interactively by means of
methodologies.
appropriate tools.
The significant factors of CBA are
In OO languages, several classes (fine-
independent extensions, component markets,
grained components) typically form one
reduced time to market and improved
coarse-grained component (see Figure 2).
predictability [10].
-3-
7. Conclusion
[7] Wolfgang P. (1997) Component-Based
The key concept of Component based Software Development—A New
development is reusability. It has benefits as Paradigm in Software Engineering:
well as some implementation challenges. It Proceedings of Software Engineering
has some significant differences from the Group, University of Constance,
traditional object oriented approach. It has Software Concepts and Tool Conference
also been used in several application (1997).
domains, such as e-governance structure, e-
business, ERP design environment, Software [8] David G and Bradley S. Component-
engineering approaches etc. Most of the IT Based Software Engineering in
companies are shifting to component based Pervasive Computing Environments
development approach in order to increase Published by School of Computer
their productivity. Science, Carnegie Mellon University.
-4-