USE COMPONENT-BASED ARCHITECTURES

USE COMPONENT-BASED ARCHITECTURES

Visualizing, specifying, constructing, and documenting a software- intensive system demand that the system be viewed from a number of perspectives. Each of the stakeholders ”end users, analysts, developers, system integrators, testers, technical writers, and project managers ” brings a different agenda to a project, and each of them looks at that system in a different way at different times over the project's life. A system's architecture is perhaps the most important deliverable that can be used to manage these various viewpoints and thereby control the iterative and incremental development of a system throughout its lifecycle.

A system's architecture encompasses the set of significant decisions about

  • The organization of a software system

  • The selection of the structural elements and their interfaces by which the system is composed

  • Their behavior, as specified by the collaborations among those elements

  • The composition of these structural and behavioral elements into progressively larger subsystems

  • The architectural style that guides this organization: these elements and their interfaces, their collaborations, and their composition

Software architecture is concerned not only with structure and behavior but also with usage, functionality, performance, resilience, reuse, comprehensibility, economic and technologic constraints and trade-offs, and aesthetic concerns.

Building resilient architectures is important because they enable economically significant degrees of reuse, offer a clear division of work among teams of developers, isolate hardware and software dependencies that may be subject to change, and improve maintainability.

Component-based development (CBD) is an important approach to software architecture because it enables the reuse or customization of components from thousands of commercially available sources. Microsoft's component object model (COM), the Object Management Group's (OMG) Common Object Request Broker Architecture (CORBA), and Sun Micro-systems' Enterprise Java-Beans (EJB) offer pervasive and widely supported platforms on which component-based architectures are made possible. As Figure 1-3 indicates, components make reuse possible on a larger scale, enabling systems to be composed from existing parts, off-the-shelf third-party parts, and a few new parts that address the specific domain and glue the other parts together.

Figure 1-3. A component-based software architecture
graphics/01fig03.gif

Coupled with the practice of developing software iteratively, using component-based architectures involves the continuous evolution of a system's architecture. Each iteration produces an executable architecture that can be measured, tested , and evaluated against the system's requirements. This approach permits the team to attack continuously the most important risks to the project.

Using component-based architectures offers a number of solutions to the root causes of software development problems:

  1. Components facilitate resilient architectures.

  2. Modularity enables a clear separation of concerns among elements of a system that are subject to change.

  3. Reuse is facilitated by leveraging standardized frameworks (such as COM+, CORBA, and EJB) and commercially available components.

  4. Components provide a natural basis for configuration management.

  5. Visual modeling tools provide automation for component-based development.



The Rational Unified Process. An Introduction
The Rational Unified Process: An Introduction (3rd Edition)
ISBN: 0321197704
EAN: 2147483647
Year: 1998
Pages: 176

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net