Results 1 - 10
of
31
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 200 (25 self)
- Add to MetaCart
(Show Context)
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.
Formalizing Style to Understand Descriptions of Software Architecture
- ACM Transactions on Software Engineering and Methodology
, 1995
"... ..."
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 147 (11 self)
- Add to MetaCart
(Show Context)
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
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 125 (18 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.
A Framework for Event-Based Software Integration
- ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
, 1996
"... ..."
(Show Context)
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 struct ..."
Abstract
-
Cited by 53 (10 self)
- Add to MetaCart
(Show Context)
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 47 (7 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 ...
Adding implicit invocation to languages: Three approaches
- In Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
, 1993
"... Implicit invocation based on event announcement is an increasingly impor-tant technique for integrating systems. However, the use of this technique has largely been conned to tool integration systems|in which tools exist as indepen-dent processes|and special-purpose languages|in which specialized fo ..."
Abstract
-
Cited by 29 (9 self)
- Add to MetaCart
Implicit invocation based on event announcement is an increasingly impor-tant technique for integrating systems. However, the use of this technique has largely been conned to tool integration systems|in which tools exist as indepen-dent processes|and special-purpose languages|in which specialized forms of event broadcast are designed into the language from the start. This paper broadens the class of systems that can benet from this approach by showing how to augment general-purpose programming languages with facilities for implicit invocation. We illustrate the approach in the context of three dierent languages, Ada, C++, and Common Lisp. The intent is to highlight the key design considerations that arise in extending such languages with implicit invocation. 1
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 28 (4 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.
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 23 (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