Results 1 - 10
of
19
Exploiting Style in Architectural Design Environments
, 1994
"... As the design of software architectures emerges as a discipline within software engineering, it will become increasingly important to support architectural description and analysis with tools and environments. In this paper we describe a system for developing architectural design environments that e ..."
Abstract
-
Cited by 149 (16 self)
- Add to MetaCart
As the design of software architectures emerges as a discipline within software engineering, it will become increasingly important to support architectural description and analysis with tools and environments. In this paper we describe a system for developing architectural design environments that exploit architectural styles to guide software architects in producing specific systems. The primary contributions of this research are: (a) a generic object model for representing architectural designs; (b) the characterization of architectural styles as specializations of this object model; and (c) a toolkit for creating an open architectural design environment from a description of a specific architectural style. We use our experience in implementing these concepts to illustrate how style-oriented architectural design raises new challenges for software support environments.
Using Style to Understand Descriptions of Software Architecture
, 1993
"... The software architecture of most systems is described informally and diagrammatically. In order for these descriptions to be meaningful at all, figures are understood by interpreting the boxes and lines in specific, conventionalized ways [5]. The imprecision of these interpretations has a number of ..."
Abstract
-
Cited by 97 (9 self)
- Add to MetaCart
The software architecture of most systems is described informally and diagrammatically. In order for these descriptions to be meaningful at all, figures are understood by interpreting the boxes and lines in specific, conventionalized ways [5]. The imprecision of these interpretations has a number of limitations. In this paper we consider these conventionalized interpretations as architectural styles and provide a formal framework for their uniform definition. In addition to providing a template for precisely defining new architectural styles, this framework allows for the proof that the notational constraints on a style are sufficient to guarantee the meanings of all described systems and provides a unified semantic base through which different stylistic interpretations can be compared.
Modular Event-Based Systems
- THE KNOWLEDGE ENGINEERING REVIEW
, 2006
"... Event-based systems are developed and used to integrate components in loosely coupled systems. Research and product development focused so far on e#ciency issues but neglected methodological support to build such systems. In this article, the modular design and implementation of an event system is p ..."
Abstract
-
Cited by 67 (11 self)
- Add to MetaCart
Event-based systems are developed and used to integrate components in loosely coupled systems. Research and product development focused so far on e#ciency issues but neglected methodological support to build such systems. In this article, the modular design and implementation of an event system is presented which supports scopes and event mappings, two new and powerful structuring methods that facilitate engineering and coordination of components in event-based systems. We give a
A Framework for Event-Based Software Integration
- ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
, 1996
"... ..."
Engineering Event-Based Systems with Scopes
- PROCEEDINGS OF THE EUROPEAN CONFERENCE ON OBJECT-ORIENTED PROGRAMMING (ECOOP), VOLUME 2374 OF LNCS
, 2002
"... Event notification services enable loose coupling and they are therefore becoming an essential part of distributed systems' design. However, the development of event services follows the early stages of programming language evolution, disregarding the need for efficient mechanisms to structure e ..."
Abstract
-
Cited by 43 (10 self)
- Add to MetaCart
Event notification services enable loose coupling and they are therefore becoming an essential part of distributed systems' design. However, the development of event services follows the early stages of programming language evolution, disregarding the need for efficient mechanisms to structure event-based applications. In this paper, the well-known notion of scopes is introduced to event-based systems. We show that limiting the visibility of events is a simple yet powerful mechanism that allows to identify application structure and offers a module construct for the loosely coupled components in event-based systems. We are able to customize the semantics of scoped event notification services by binding meta-objects to the application structure that reify important aspects of notification delivery, like interface mappings and transmission policies. The scoping concept facilitates design and implementation by offering encapsulation and adaption of syntax and semantics of eventbased systems.
Characteristics of Higher-level Languages for Software Architecture
, 1994
"... As the size and complexity of software systems increases, the design and specification of overall system structure -- or software architecture -- emerges as a central concern. Architectural issues include the gross organization of the system, protocols for communication and data access, assignmentof ..."
Abstract
-
Cited by 38 (5 self)
- Add to MetaCart
As the size and complexity of software systems increases, the design and specification of overall system structure -- or software architecture -- emerges as a central concern. Architectural issues include the gross organization of the system, protocols for communication and data access, assignmentof functionality to design elements, and selection among design alternatives. Currently system designers have at their disposal two primary ways of defining software architecture: they can use the modularization facilities of existing programming languages and module interconnection languages; or they can describe their designs using informal diagrams and idiomatic phrases (such as "client-server organization"). In this paper we explain why neither alternative is adequate. We consider the nature of architectural description as it is performed informally by systems designers. Then we show that regularities in these descriptions can form the basis for architectural description languages. Next we ...
The event notification pattern -- integrating implicit invocation with objectorientation. Theory and Practice of Object Systems
- SDK + 95] Mary
, 1996
"... Managing inter-object dependencies in object-oriented systems is a complex task. Changes of one object often require dependent objects to change accordingly. Making every object explicitly inform every dependent object about its state changes intertwines object interfaces and implementations, thereb ..."
Abstract
-
Cited by 14 (2 self)
- Add to MetaCart
Managing inter-object dependencies in object-oriented systems is a complex task. Changes of one object often require dependent objects to change accordingly. Making every object explicitly inform every dependent object about its state changes intertwines object interfaces and implementations, thereby hampering system evolution and maintenance. These problems can be overcome by introducing the notion of Implicit Invocation to object-oriented systems as a decoupling mechanism between objects. This paper presents the Event Notification pattern, a pattern to smoothly integrate implicit invocation mechanisms with object-oriented designs. State changes of objects, dependencies of other objects on them and the maintenance links between these objects are made explicit as first class objects. The resulting structure is highly flexible and can be used to manage inter-object dependencies in object-oriented systems efficiently. 1
Linguistic Support for the Evolutionary Design of Software Architectures
, 1996
"... As a program's functionality evolves over time, its software architecture should evolve as well, so that it continues to match the program's design. This paper introduces the architecture language of Clock, a language for the development of interactive, multiuser applications. This architecture lang ..."
Abstract
-
Cited by 14 (6 self)
- Add to MetaCart
As a program's functionality evolves over time, its software architecture should evolve as well, so that it continues to match the program's design. This paper introduces the architecture language of Clock, a language for the development of interactive, multiuser applications. This architecture language possesses three properties supporting the easy restructuring of software architectures: restricted scoping supported by a constraint-based communication system, automatic message routing, and easy hierarchical restructuring of architectures. Clock's architecture language has a visual syntax, supported by the ClockWorks programming environment. 1 Introduction Garlan and Perry describe the process of developing a software architecture as "[exposing] the dimensions along which a system is expected to evolve", and identifying the system's "load-bearing walls" [3]. Implicit in this analogy is that the internals of the architecture 's components may evolve over time, but that changing the ...
Types and Modularity for Implicit Invocation with Implicit Announcement
- ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY (TOSEM
, 2009
"... Through implicit invocation, procedures are called without explicitly referencing them. Implicit announcement adds to this implicitness by not only keeping implicit which procedures are called, but also where or when — under implicit invocation with implicit announcement, the call site contains no s ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
Through implicit invocation, procedures are called without explicitly referencing them. Implicit announcement adds to this implicitness by not only keeping implicit which procedures are called, but also where or when — under implicit invocation with implicit announcement, the call site contains no signs of that, or what it calls. Recently, aspect-oriented programming has popularized implicit invocation with implicit announcement as a possibility to separate concerns that lead to interwoven code if conventional programming techniques are used. However, as has been noted elsewhere, as currently implemented it establishes strong implicit dependencies between components, hampering independent software development and evolution. To address this problem, we present a type-based modularization of implicit invocation with implicit announcement that is inspired by how interfaces and exceptions are realized in JAVA. By extending an existing compiler and by rewriting several programs to make use of our proposed language constructs, we found that the imposed declaration clutter tends to be moderate; in particular, we found that for general applications of implicit invocation with implicit announcement, fears that programs utilizing our form of modularization become unreasonably verbose are unjustified.
Configuration-Level Programming of Distributed Applications Using Implicit Invocation
- IEEE TENCON’94
, 1994
"... An event-based distributed application is a group of software components interacting with each other by producing events that in turn trigger the invocation of procedures. In this work, we are concerned with the technology and methods for integrating an event-based application, whether that applicat ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
An event-based distributed application is a group of software components interacting with each other by producing events that in turn trigger the invocation of procedures. In this work, we are concerned with the technology and methods for integrating an event-based application, whether that application is being constructed from scratch or synthesized from existing systems. Developing an event-based application is a complex task for programmers, who must address several issues not found in traditional systems and, currently, must do so without much assistance. These issues include event declaration, structure, binding, and naming. Our objective is to provide the same software engineering benefits to programmers of event-based applications as are currently provided to programmers of applications using traditional RPC or messagepassing mechanisms. In this work, we broaden the technology for integration to encompass event-based programming. A method is described for separating event intera...

