Tools

by
David Garlan, Robert Monroe, David Wile
- in Proceedings of CASCON’97, 1997

"... Numerous architectural description languages (ADLs) have been developed, each providing complementary capabilities for architectural development and analysis. Unfortunately, each ADL and supporting toolset operates in isolation, making it di cult to integrate those tools and share architectural desc ..."

Numerous architectural description languages (ADLs) have been developed, each providing complementary capabilities for architectural development and analysis. Unfortunately, each ADL and supporting toolset operates in isolation, making it di cult to integrate those tools and share architectural descriptions. Acme is being developed as a joint e ort of the software architecture research community as a common interchange format for architecture design tools. Acme provides a structural framework for characterizing architectures, together with annotation facilities for additional ADLspeci c information. This scheme permits subsets of ADL tools to share architectural information that is jointly understood, while tolerating the presence of information that falls outside their common vocabulary. In this paper we describe Acme&apos;s key features, rationale, and technical innovations. 1

"... attention as an important sub#eld of software engineering. During that time there has been considerable progress in developing the technological and methodological base for treating architectural design as an engineering discipline. However, much remains to be done to achieve that goal. Moreover, th ..."

attention as an important sub#eld of software engineering. During that time there has been considerable progress in developing the technological and methodological base for treating architectural design as an engineering discipline. However, much remains to be done to achieve that goal. Moreover, the changing face of technology raises anumber of new challenges for software architecture. This paper examines some of the important trends of software architecture in research and practice, and speculates on the important emerging trends, challenges, and aspirations.

by
David Garlan
- in Architectural Design Environments, Second ACM SIGSOFT Symposium on Foundations of Software Engineering, 1994

"... A central aspect of architectural design is the use of recurring organizational patterns and idioms| or architectural styles [GS93, PW92, MG92, GHJV94]. Examples include generic system organizations such as those based on data ow orlayers, as well as speci c organizational structures such as the cla ..."

A central aspect of architectural design is the use of recurring organizational patterns and idioms| or architectural styles [GS93, PW92, MG92, GHJV94]. Examples include generic system organizations such as those based on data ow orlayers, as well as speci c organizational structures such as the classical decomposition of a compiler, the OSI communication stack, and the MVC user interface paradigm. The principled use of architectural styles has a number of practical bene ts. First, it promotes design reuse: routine solutions with well-understood properties can be reapplied to new problems with con dence. Second, it can lead to signi cant code reuse: often the invariant aspects of an architectural style lend themselves to shared implementations. Third, it is easier for others to understand a system&apos;s organization if conventionalized structures are used. For example, even without giving details, characterization of a system as a \client-server &quot; organization immediately conveys a strong image of the kinds of pieces and how they t together. Fourth, use of standardized styles supports interoperability. Examples include CORBA object-oriented architecture [Cor91], and event-based tool integration [Ger89]. Fifth, by constraining the design space, an architectural style often permits specialized, style-speci c analyses. For example, it is possible to analyze pipelter

"... Software architecture is the level of software design that addresses the overall structure and properties of software systems. It provides a focus for certain aspects of design and development that are not appropriately addressed within the constituent modules. Architectural design depends heavily ..."

Software architecture is the level of software design that addresses the overall structure and properties of software systems. It provides a focus for certain aspects of design and development that are not appropriately addressed within the constituent modules. Architectural design depends heavily on accurate specifications of subsystems and their interactions. These specifications must cover a wide variety of properties, so the specification notations and associated methods must be selected or developed to match the properties of interest. Unfortunately, the available formal methods are only a partial match for architectural needs, which entail description of structure, packaging, environmental assumptions, representation, and performance as well as functionality. A prerequisite for devising or selecting a formal method is sound understanding of what needs to be formalized. For software architecture, much of this understanding is arising through progressive codification, which begins with real-world examples and creates progressively more precise models that eventually support formalization. This paper explores the progressive

"... Domain-oriented design environments are cooperative problem-solving systems that support designers in complex design tasks. In this paper we present the facilities and architecture of Argo, a domain-oriented design environment for software architecture. Argo’s architecture is motivated by the desire ..."

Domain-oriented design environments are cooperative problem-solving systems that support designers in complex design tasks. In this paper we present the facilities and architecture of Argo, a domain-oriented design environment for software architecture. Argo’s architecture is motivated by the desire to achieve reuse and extensibility of the design environment. It separates domain-neutral code from domain-oriented code, which is distributed among intelligent design materials as opposed to being centralized in the design environment. Argo’s facilities are motivated by the observed cognitive needs of designers. These facilities extend previous work in design environments to support reflection-in-action, opportunistic design, and comprehension and problem-solving. Keywords: Domain-oriented design environments, critics, software architectures, architectural styles, humancomputer interaction, human cognitive skills.

by
Robert J. Allen, David Garlan, James Ivers
- Proceedings of the Sixth International Symposium on the Foundations of Software Engineering (FSE-6, 1998

"... An increasingly important trend in the engineering of complex systems is the design of component integration standards. Such standards define rules of interaction and shared communication infrastructure that permit composition of systems out of independently-developed parts. A problem with these sta ..."

An increasingly important trend in the engineering of complex systems is the design of component integration standards. Such standards define rules of interaction and shared communication infrastructure that permit composition of systems out of independently-developed parts. A problem with these standards is that it is often difficult to understand exactly what they require and provide, and to analyze them in order to understand their deeper properties. In this paper we use our experience in modeling the High Level Architecture (HLA) for Distributed Simulation to show how one can capture the structured protocol inherent in an integration standard as a formal architectural model that can be analyzed to detect anomalies, race conditions, and deadlocks. KEYWORDS Component integration standards, component-based software, protocol families, software architecture, formal specification. 1 Introduction Component integration standards are becoming increasingly important for commercial sof...

"... A question that frequently arises for architectural design is "When can I implement a design in style S1 using a design in style S2?" In this paper I propose a technique for structuring a solution to this kind of problem using the idea of substyles. This technique leads to a two-step proce ..."

A question that frequently arises for architectural design is &quot;When can I implement a design in style S1 using a design in style S2?&quot; In this paper I propose a technique for structuring a solution to this kind of problem using the idea of substyles. This technique leads to a two-step process in which first, useful subsets of a family of architectures are identied, and second, refinement rules specific to these subsets are established. I will argue that this technique, in combination with an unconventional interpretation of refinement, clarifies how engineers actually carry out architectural refinement and provides a formal framework for establishing the correctness of those methods.

"... Coping explicitly with failures during the conception and the design of software development complicates signicantly the designer's job. The design complexity leads to software descriptions difficult to understand, which have to undergo many simplifications until their first functioning version ..."

Coping explicitly with failures during the conception and the design of software development complicates signicantly the designer&apos;s job. The design complexity leads to software descriptions difficult to understand, which have to undergo many simplifications until their first functioning version. To support the systematic development of complex, fault tolerant software, this paper proposes a layered framework for the analysis of the fault tolerance software properties, where the top-most layer provides the means for specifying the abstract failure semantics expressed in the initial conception stage, and each successive layer is a renement towards an elaborated description of a fault tolerant software architecture. We present the logical vehicle that permits reasoning on the equivalence or the compatibility of the various expressions of fault tolerance properties at various abstraction levels. In addition, we propose a mapping schema, which permits the correct transformation of abstract ent...

"... The specification of a software architecture using different ADLs allows system designers to carry out a number of complementary analyses. In this position paper, we go one step further in this direction by advocating the need for specifying distinct views of a software architecture, each characteri ..."

The specification of a software architecture using different ADLs allows system designers to carry out a number of complementary analyses. In this position paper, we go one step further in this direction by advocating the need for specifying distinct views of a software architecture, each characterizing a specific type of properties (i.e. functional, interaction, and quality properties). Multi-view description of a software architecture raises the issue of combining a set of architectural views so as to derive the resulting overall architecture. We propose some hints on how this can be handled. 1 Introduction It is now recognized that the construction of complex software systems can greatly benefit from the software architecture paradigm [9]. The software architecture of a system describes the system&apos;s gross organization using an ADL, which provides notations for the abstract specification of its architectural elements. Practically, the construction of a system from its software archi...