You are on page 1of 11

Introduction to Component Technology

Chapter 1
What is a software component? Why use components? Benefits of using components Road ahead

1-1

What is a Software Component?


Software components are binary units of independent production, acquisition, and deployment that interact to form a functioning system
+ Procedures, classes, modules, or even entire applications could form components as long as they are in a binary form that remains composable. + Insisting on independence and binary form is essential to allow robust integration of components developed by multiple independent vendors. + The requirement for independence and binary form rules out many software abstraction.

Components are for composition


+ Composition enables prefabricated components to be reused by rearranging them into even new components.

1-2

Why use Software Components? Architectural Approach


The simplest answer:
components are the way to go because all other engineering disciplines introduced components as they became mature and they still use components.

Use component paradigm to simulate Software Integrated Circuit to resolve software crisis. Components are independent units of deployment, allowing independent development

1-3

Why use Software Components? Comparative Approach


Object orientation has failed but component software is succeeding [Udell, 1994] Object technology does not include the notions of independence or late composition, mostly used to construct monolithic application. Configuring and integrating an individual object into some given system is not normally possible. Object technology tends to ignore the aspects of economies and markets. Today only small amount of catalogs of class, class libraries, and frameworks exist.

1-4

Custom-Made vs Standard Software Overview


Two traditional software development extremes:

Custom-Made Software Developed from scratch

Standard Software Bought and parameterized

1-5

Custom-Made vs Standard Software Comparison


Custom-Made Software Advantages:
+ Flexible, nimble, competitive edge + Optimally adapted to clients business model + Take advantage of any in-house proprietary knowledge or practice

Standard Software Disadvantages:


+ Not nimble enough to adapt to changing needs + No competitive edge in using a standard software that is also available to competitor + May necessitate a greater reorganization of business processes to fit an incapable standard software system

1-6

Custom-Made vs Standard Software Comparison


Custom-Made Software Disadvantages:
+ Burden of maintenance, product evolution, and interoperability as well as expensive undertaking + Too time consuming to develop leading to too late to be productive before becoming obsolete + Lead to project fail partially or completely

Standard Software Advantages:


+ Burden of maintenance, product evolution, and interoperability is left to vendor + Minimize time-to-market risk + Limit financial risk

1-7

Component Based Software


Custom-Made Standard

Component Based

Provides a middle path between the two extremes of traditional software development

1-8

Benefits of Using Components


Although each component bought is a standardized product, the process of component assembly allows significant customization. Yet, individual components can be custom-made to suit specific requirements or to foster strategic advantages Puts an end of massive upgrade cycles since evolution replace revolution. Individual upgrading of components as needed and out of phase can allow for smoother operations.

1-9

Road Ahead
Component technology is one of the most sought-after and yet least understood topics in software field. Modelling of component-based systems is still largely an unresolved problem. Object technology, if harnessed carefully, is probably one of the best ways to realized component technology. The modelling advantages of object technology are of value when constructing a component.

1-10

Summary
Building new solutions by combining the acquired and developed components improves quality and supports rapid development, leading to a shorter time to launch the product to the market. Nimble adaptation to changing requirements can be achieved by investing only in key changes of a component-based solution, rather than undertaking a major release change. Component software encourages the move from the current hung monolithic systems to modular structures that offer the benefits of enhanced adaptability, scalability, and maintainability.

1-11

You might also like