42 research outputs found
Reconciling a component and process view
In many cases we need to represent on the same abstraction level not only
system components but also processes within the system, and if for both
representation different frameworks are used, the system model becomes hard to
read and to understand. We suggest a solution how to cover this gap and to
reconcile component and process views on system representation: a formal
framework that gives the advantage of solving design problems for large-scale
component systems.Comment: Preprint, 7th International Workshop on Modeling in Software
Engineering (MiSE) at ICSE 201
Reusing Test-Cases on Different Levels of Abstraction in a Model Based Development Tool
Seamless model based development aims to use models during all phases of the
development process of a system. During the development process in a
component-based approach, components of a system are described at qualitatively
differing abstraction levels: during requirements engineering component models
are rather abstract high-level and underspecified, while during implementation
the component models are rather concrete and fully specified in order to enable
code generation. An important issue that arises is assuring that the concrete
models correspond to abstract models. In this paper, we propose a method to
assure that concrete models for system components refine more abstract models
for the same components. In particular we advocate a framework for reusing
testcases at different abstraction levels. Our approach, even if it cannot
completely prove the refinement, can be used to ensure confidence in the
development process. In particular we are targeting the refinement of
requirements which are represented as very abstract models. Besides a formal
model of our approach, we discuss our experiences with the development of an
Adaptive Cruise Control (ACC) system in a model driven development process.
This uses extensions which we implemented for our model-based development tool
and which are briefly presented in this paper.Comment: In Proceedings MBT 2012, arXiv:1202.582
Multi-Platform Generative Development of Component & Connector Systems using Model and Code Libraries
Component-based software engineering aims to reduce software development
effort by reusing established components as building blocks of complex systems.
Defining components in general-purpose programming languages restricts their
reuse to platforms supporting these languages and complicates component
composition with implementation details. The vision of model-driven engineering
is to reduce the gap between developer intention and implementation details by
lifting abstract models to primary development artifacts and systematically
transforming these into executable systems. For sufficiently complex systems
the transformation from abstract models to platform-specific implementations
requires augmentation with platform-specific components. We propose a
model-driven mechanism to transform platform-independent logical component &
connector architectures into platform-specific implementations combining model
and code libraries. This mechanism allows to postpone commitment to a specific
platform and thus increases reuse of software architectures and components.Comment: 10 pages, 4 figures, 1 listin
A Model of Layered Architectures
Architectural styles and patterns play an important role in software
engineering. One of the most known ones is the layered architecture style.
However, this style is usually only stated informally, which may cause problems
such as ambiguity, wrong conclusions, and difficulty when checking the
conformance of a system to the style. We address these problems by providing a
formal, denotational semantics of the layered architecture style. Mainly, we
present a sufficiently abstract and rigorous description of layered
architectures. Loosely speaking, a layered architecture consists of a hierarchy
of layers, in which services communicate via ports. A layer is modeled as a
relation between used and provided services, and layer composition is defined
by means of relational composition. Furthermore, we provide a formal definition
for the notions of syntactic and semantic dependency between the layers. We
show that these dependencies are not comparable in general. Moreover, we
identify sufficient conditions under which, in an intuitive sense which we make
precise in our treatment, the semantic dependency implies, is implied by, or
even coincides with the reflexive-transitive closure of the syntactic
dependency. Our results provide a technology-independent characterization of
the layered architecture style, which may be used by software architects to
ensure that a system is indeed built according to that style.Comment: In Proceedings FESCA 2015, arXiv:1503.0437
Verified System Development with the AutoFocus Tool Chain
This work presents a model-based development methodology for verified
software systems as well as a tool support for it: an applied AutoFocus tool
chain and its basic principles emphasizing the verification of the system under
development as well as the check mechanisms we used to raise the level of
confidence in the correctness of the implementation of the automatic
generators.Comment: In Proceedings WS-FMDS 2012, arXiv:1207.184