12,075 research outputs found
Towards a design-by-contract based approach for realizable connector-centric software architectures
Despite being a widely-used language for specifying software systems, UML remains less than ideal for software architectures. Architecture description languages (ADLs) were developed to provide more comprehensive support. However, so far the application of ADLs in practice has been impeded by at least one of the following problems: (i) advanced formal notations, (ii) lack of support for complex connectors, and (iii) potentially unrealizable designs. In this paper we propose a new ADL that is based on Design-by-Contract (DbC) for specifying software architectures. While DbC promotes a formal and precise way of specifying system behaviours, it is more familiar to practising developers, thus allowing for a more comfortable way of specifying architectures than using process algebras. Furthermore, by granting connectors a first-class status, our ADL allows designers to specify not only simple interaction mechanisms as connectors but also complex interaction protocols. Finally, in order to ensure that architectural designs are always realizable we eliminate potentially unrealizable constructs in connector specifications (the connector “glue”)
Recommended from our members
Realizable, Connector-Driven Software Architectures for Practising Engineers
Despite being a widely-used language for specifying software systems, UML remains less than ideal for software architectures. Architecture description languages (ADLs) were developed to provide more comprehensive support. However, so far the application of ADLs in practice has been impeded by at least one of the following problems: (i) advanced formal notations requiring a steep learning curve, (ii) lack of support for user-defined, complex connectors, and (iii) potentially unrealizable architectural designs.
This paper proposes Xcd, a new ADL that aims at supporting user-defined, complex connectors to help increase architectural modularity. It also aims to help increase the degree of reusability, as now components need not specify interaction protocols, as these can be specified independently by connectors (which increases protocol reusability too).
Connector support requires to ensure that architectural designs are always realizable, as it is currently extremely easy to obtain unrealizable ones. Xcd eliminates potentially unrealizable constructs in connector specifications.
Finally, Xcd employs a notation and notions from Design-by-Contract (DbC) for specifying software architecture behaviour. While DbC promotes a formal and precise way of specifying system behaviours, it is not as challenging for practising developers as process algebras that are usually employed by ADLs
Highly analysable, reusable, and realisable architectural designs with XCD
Connector-Centric Design (XcD) is a new approach to specifying software architectures. XcD views complex connectors as highly significant in architectural designs, as it is the complex connectors that non-functional quality properties in systems can emanate from. So, XcD promotes in designs a clean separation of connectors (interaction behaviours) from components (functional behaviours). Designers can then specify connectors in detail explicitly thus easing the analysis of system designs for quality properties. Furthermore, XcD separates control behaviour from connectors as control strategies. Architectural designs in XcD thus become highly modular with re-usable components, connectors, and control strategies (representing design solutions for quality properties). The end result is the eased architectural experimentation with different design solutions by re-using components/connectors and formal analysis of these solutions to find out the optimal ones
Generalized Nets Model of an E-Learning System Software Architecture
The paper has been presented at the International Conference Pioneers of Bulgarian
Mathematics, Dedicated to Nikola Obreshko ff and Lubomir Tschakaloff , Sofi a, July, 2006.Component-based software engineering and software architecture
are tightly connected areas in computer science. Software architecture
presents the functionality of the system as decomposition into components,
the properties of these components and the connectors between them. This
paper illustrates a methodology for application of the theory of Generalized
Nets (GNs) as a language for description of software systems architecture.
According to this methodology, every component in the system, as well as
every connector is represented by a single GN transition. This way the
positions of the transition describe the ports of components and connectors
in the system. This paper introduces a model of the component-based
architecture of the e-learning system ARCADE, which is created, with respect
to the proposed methodology for description with GNs. The four main
subsystems are regarded as components in the GNs model. Their additional
sub-modules are presented as the services provided by the components.
Method calls are regarded as the connectors between these components.
Further, the GNs model is compared with the existing UML diagrams,
specifying the design of ARCADE
Modularizing and Specifying Protocols among Threads
We identify three problems with current techniques for implementing protocols
among threads, which complicate and impair the scalability of multicore
software development: implementing synchronization, implementing coordination,
and modularizing protocols. To mend these deficiencies, we argue for the use of
domain-specific languages (DSL) based on existing models of concurrency. To
demonstrate the feasibility of this proposal, we explain how to use the model
of concurrency Reo as a high-level protocol DSL, which offers appropriate
abstractions and a natural separation of protocols and computations. We
describe a Reo-to-Java compiler and illustrate its use through examples.Comment: In Proceedings PLACES 2012, arXiv:1302.579
Recommended from our members
Better abstractions for reusable components & architectures
Software architecture (SA) is a crucial component of Model Driven Engineering (MDE), since it eases the communication and reuse of designs and components. However, existing languages (e.g., UML, AADL, SysML) are lacking many needed features. In particular, they provide rudimentary support for connectors, a first-class element in the components and connectors (C&C) architectural view and one of the most reusable architectural elements. This is unfortunate, since the difficult properties that need to be guaranteed for complex systems are mainly the non-functional properties, like throughput, security and dependability, which are greatly influenced by the employed connectors. This work reviews the basic abstractions of the C&C view of SA and examines extra architectural elements which can support the detailed, explicit and separate description of behaviour, interaction and control logic
Recommended from our members
XCD – Simple, Modular, Formal Software Architectures
Connector-Centric Design (XCD) is a new approach for specifying software architectures that focuses on the use of complex connectors. In XCD simple interconnection mechanisms like procedure-calls, event-buses, etc. are abstracted and components take a second place. XCD aids the clear separation in a modular manner of the highlevel functional, interaction, and control system behaviour, thus increasing the reusability of both components and connectors. As such, XCD allows designers to experiment with different interaction behaviours (connectors), without having to modify the functional behaviour specifications (components). It further allows designers to experiment with different control behaviours (“role strategies”), without modifying components or connectors.
Inspired by JML, XCD follows a formal, Design-by-Contract approach, describing behaviour through simple pre/post-conditions, which should make it easier for practitioners to use. XCD extends Design-by-Contract so as to separate contracts into functional and interaction subcontracts, and so as to allow service consumers to specify their own contractual clauses. The specifications of XCD connectors are completely decentralized (e.g., no “connector glue”) to facilitate their realization and their refinement for further formal analyses
Issues of Architectural Description Languages for Handling Dynamic Reconfiguration
Dynamic reconfiguration is the action of modifying a software system at
runtime. Several works have been using architectural specification as the basis
for dynamic reconfiguration. Indeed ADLs (architecture description languages)
let architects describe the elements that could be reconfigured as well as the
set of constraints to which the system must conform during reconfiguration. In
this work, we investigate the ADL literature in order to illustrate how
reconfiguration is supported in four well-known ADLs: pi-ADL, ACME, C2SADL and
Dynamic Wright. From this review, we conclude that none of these ADLs: (i)
addresses the issue of consistently reconfiguring both instances and types;
(ii) takes into account the behaviour of architectural elements during
reconfiguration; and (iii) provides support for assessing reconfiguration,
e.g., verifying the transition against properties.Comment: 6\`eme Conf\'erence francophone sur les architectures logicielles
(CAL'2012), Montpellier : France (2012
- …