242,578 research outputs found
A systematic approach for component-based software development
Component-based software development enables the construction of software artefacts by assembling prefabricated, configurable and independently evolving building blocks, called software components. This paper presents an approach for the development of component-based software artefacts. This approach consists of splitting the software development process according to four abstraction levels, viz., enterprise, system, component and object, and three different views, viz., structural, behavioural and interactional. The use of different abstraction levels and views allows a better control of the development process
50 years of isolation
The traditional means for isolating applications from each other is via the use of operating system provided “process” abstraction facilities. However, as applications now consist of multiple fine-grained components, the traditional process abstraction model is proving to be insufficient in ensuring this isolation. Statistics indicate that a high percentage of software failure occurs due to propagation of component failures. These observations are further bolstered by the attempts by modern Internet browser application developers, for example, to adopt multi-process architectures in order to increase robustness. Therefore, a fresh look at the available options for isolating program components is necessary and this paper provides an overview of previous and current research on the area
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
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
Toward a Formal Semantics for Autonomic Components
Autonomic management can improve the QoS provided by parallel/ distributed
applications. Within the CoreGRID Component Model, the autonomic management is
tailored to the automatic - monitoring-driven - alteration of the component
assembly and, therefore, is defined as the effect of (distributed) management
code. This work yields a semantics based on hypergraph rewriting suitable to
model the dynamic evolution and non-functional aspects of Service Oriented
Architectures and component-based autonomic applications. In this regard, our
main goal is to provide a formal description of adaptation operations that are
typically only informally specified. We contend that our approach makes easier
to raise the level of abstraction of management code in autonomic and adaptive
applications.Comment: 11 pages + cover pag
An interactive and multi-level framework for summarising user generated videos
We present an interactive and multi-level abstraction framework for user-generated video (UGV) summarisation, allowing a user the flexibility to select a summarisation criterion out of a number of methods provided by the system. First, a given raw video is segmented into shots, and each shot is further decomposed into sub-shots in line with the change in dominant camera motion. Secondly, principal component analysis (PCA) is applied to the colour representation of the collection of sub-shots, and a content map is created using the first few components. Each sub-shot is represented with a ``footprint'' on the content map, which reveals its content significance (coverage) and the most dynamic segment. The final stage of abstraction is
devised in a user-assisted manner whereby a user is able to specify a desired summary length, with options to interactively perform abstraction at different granularity of visual comprehension. The results obtained show the potential benefit in significantly alleviating the burden of
laborious user intervention associated with conventional video editing/browsing
Linking Abstract Analysis to Concrete Design: A Hierarchical Approach to Verify Medical CPS Safety
Complex cyber-physical systems are typically hierarchically organized into multiple layers of abstraction in order to manage design complexity and provide verification tractability. Formal reasoning about such systems, therefore, necessarily involves the use of multiple modeling formalisms, verification paradigms, and concomitant tools, chosen as appropriate for the level of abstraction at which the analysis is performed. System properties verified using an abstract component specification in one paradigm must then be shown to logically follow from properties verified, possibly using a different paradigm, on a more concrete component description, if one is to claim that a particular component when deployed in the overall system context would still uphold the system properties. But, as component specifications at one layer get elaborated into more concrete component descriptions in the next, abstraction induced differences come to the fore, which have to be reconciled in some meaningful way. In this paper, we present our approach for providing a logical glue to tie distinct verification paradigms and reconcile the abstraction induced differences, to verify safety properties of a medical cyber-physical system. While the specifics are particular to the case example at hand - a high-level abstraction of a safety-interlock system to stop drug infusion along with a detailed design of a generic infusion pump - we believe the techniques are broadly applicable in similar situations for verifying complex cyber-physical system properties
Towards Overhead-Free Interface Theory for Compositional Hierarchical Real-Time Systems
Much recent research has been conducted on compositional real-time scheduling framework as the framework becomes a useful fundamental theory for real-time OS-Hypervisor. Much recent research has been conducted on compositional real-time scheduling as the framework becomes a useful fundamental theory for real-time OS-Hypervisor. However, compositional frameworks suffer from abstraction overheads in composing components. In this paper, we classify the composition overheads into i) supply abstraction overhead associated with the supply from a resource provider, and ii) demand abstraction overhead associated with the component workload. Then, we provide sufficient conditions for each abstraction overhead to be eliminated. In addition, this paper provides a heuristic technique that transforms any component to satisfy the sufficient conditions so that the abstraction overheads are minimized. In our comparison, we showed our technique outperforms the prior overhead-reducing CF about 10% at average and other combination techniques about 8% in reducing the overhead
- …