Software Architecture Overview

Contact Information

Professor Richard N. Taylor
Professor David F. Redmiles
Professor David S. Rosenblum


Department of Information and Computer Science

University of California, Irvine
Irvine, CA 92697-3425, USA.

E-mail: arch@ics.uci.edu

UCI's research in software architecture is directed at reducing the cost of application development by focusing attention on high level design issues and increasing the potential for reuse among systems in closely related product families. UCI's work in software architecture provides:
  • Style-based design guidance - style rules and active agents help architects design flexible and extensible software systems.
  • Component-based architectural composition - for scalable, extensible, more reliable software systems.
  • Architectural visualization and analysis - to increase system understandability and reliability.
  • System generation - to automatically provide component interoperability services.
  • Runtime system modification - to allow long-running or mission-critical applications to be modified during execution.
  • Architecture-based rationale capture and delivery - to increase system understandability and allow reuse of valuable design knowledge.

Benefits

The goal of UCI's research in software architecture is to support the evolution of large-scale, heterogeneous, distributed, multi-user systems. UCI's architecture-based technologies provide the following benefits:
  • Separation of Concerns - Architectures are distinct from implementations. A single architecture may be realized by multiple implementations. Component functionality is clearly separated from component interface and communication requirements.
  • Open Architectures - Existing custom and off-the-shelf components may be incorporated.
  • Scalability - Components may be developed independently, in different languagesand by different authors. Components may be of various granularities and may run in heterogeneous, distributed, multi-user environments.
  • Extensibility - Components can be repackaged to fit into architectures with differing component interface requirements. Style rules limit component interdependencies so components can be easily substituted.
  • Flexibility - System architectures may be modified before and during execution. Architects and end-users may modify functionality and upgrade applications by incorporating new components and configuring parameters of exiting components. Multiple languages, toolkits, and media types may be employed.
  • Reliability - Off-the-shelf components that have been carefully designed, implemented, and verified can be leveraged to increase system reliability.
  • Cost Reduction - Component reuse, design guidance, analysis, and system generation facilities reduce application development time.
  • Understandability - High level models with multiple coordinated views and active rationale facilities make complex systems easier to understand.

Applicability

Extensive research and experience with architectures for graphical user interface software has led to a general component- and message-based architectural style , known as C2, that is well-suited for large-scale, heterogeneous, and distributed applications. UCI's architecture research helps developers evolve complex systems that are open, flexible, reliable, and understandable.

Currently Available Software

There are a number of Software items available. The most recent item is the ArchStudio2.0 Architectural Design environment demo program. The goals of this environment included a graphical design facility for C2 Architectures, a runtime system for dynamic architectures, and a means by which a Component could be downloaded from the WWW and integrated into a running system on the fly. Information about the design environment can be found on the ArchStudio homepage. A major accomplishment of this system was the creation of xADL, and XML based ADL.

The basis for this system is the C2 Class Framework, available in Java and C++ with a graphics binding in Java awt and with documentation. This Framework provided the implementaions and skeletons for the Components and Connectors of the system along with the Messages passed between them (known as Notifications and Requests).

This C2 Class Framework distribution also includes simple example applications including a Java stack example with multiple graphical depictions and a C++ implementation of the KLAX(TM) video game.

ArchShell, a command line tool with which you can build architecture using commands and run them has also been devloped. You can learn more about ArchShell on the Dyanic Architecture page.

An internet alpha version of the Argo design environment (implemented in Java), which includes the C2 Class Frameworks is freely available to download. The Argo design environment provided a graphics based architecture editor which was used as the basis for Argo/C2 (the precursor of the graphic editor in ArchStudio2.0) and Argo/UML, a widely used open-source design tool.

Future Architecture Work

UCI will develop and distribute an integrated C2 development environment including graphical design facilities, a runtime system for dynamic architectures, and tools for subtyping and wrapping architectural components.This tool will facilitate any designers of systems which adhere to C2 style rules, and provides a basis for further development for such areas as embedded systems. The design of this system will be entirely in C2 style and will allow for the tools to be added at run-time, and will also leveage the XML based generic ADL known as xADL .

This work will also include integration with the WWW to support a component marketplace model of distribution, as well as integration with active design rationale capture and delivery facilities. System generation facilities will initially support Java and C++ and a single interprocess communication mechanism.

Support for Ada95, Smalltalk, and other languages, as well as other communication mechanisms is also planned.

Acknowledgement

This material is based upon work sponsored by the Air Force Materiel Command, Rome Laboratory, and the Defense Advanced Research Projects Agency under Contract Number F30602-94-C-0218. The content of the information does not necessarily reflect the position or the policy of the Government and no official endorsement should be inferred.