137 research outputs found
Towards a methodology for rigorous development of generic requirements patterns
We present work in progress on a methodology for the engineering, validation and verification of generic requirements using domain engineering and formal methods. The need to develop a generic requirement set for subsequent system instantiation is complicated by the addition of the high levels of verification demanded by safety-critical domains such as avionics. We consider the failure detection and management function for engine control systems as an application domain where product line engineering is useful. The methodology produces a generic requirement set in our, UML based, formal notation, UML-B. The formal verification both of the generic requirement set, and of a particular application, is achieved via translation to the formal specification language, B, using our U2B and ProB tools
How to Complete an Interactive Configuration Process?
When configuring customizable software, it is useful to provide interactive
tool-support that ensures that the configuration does not breach given
constraints.
But, when is a configuration complete and how can the tool help the user to
complete it?
We formalize this problem and relate it to concepts from non-monotonic
reasoning well researched in Artificial Intelligence. The results are
interesting for both practitioners and theoreticians. Practitioners will find a
technique facilitating an interactive configuration process and experiments
supporting feasibility of the approach. Theoreticians will find links between
well-known formal concepts and a concrete practical application.Comment: to appear in SOFSEM 201
Variability and Evolution in Systems of Systems
In this position paper (1) we discuss two particular aspects of Systems of
Systems, i.e., variability and evolution. (2) We argue that concepts from
Product Line Engineering and Software Evolution are relevant to Systems of
Systems Engineering. (3) Conversely, concepts from Systems of Systems
Engineering can be helpful in Product Line Engineering and Software Evolution.
Hence, we argue that an exchange of concepts between the disciplines would be
beneficial.Comment: In Proceedings AiSoS 2013, arXiv:1311.319
Towards a method for rigorous development of generic requirements patterns
We present work in progress on a method for the engineering, validation and verification of generic requirements using domain engineering and formal methods. The need to develop a generic requirement set for subsequent system instantiation is complicated by the addition of the high levels of verification demanded by safety-critical domains such as avionics. Our chosen application domain is the failure detection and management function for engine control systems: here generic requirements drive a software product line of target systems. A pilot formal specification and design exercise is undertaken on a small (twosensor) system element. This exercise has a number of aims: to support the domain analysis, to gain a view of appropriate design abstractions, for a B novice to gain experience in the B method and tools, and to evaluate the usability and utility of that method.We also present a prototype method for the production and verification of a generic requirement set in our UML-based formal notation, UML-B, and tooling developed in support. The formal verification both of the structural generic requirement set, and of a particular application, is achieved via translation to the formal specification language, B, using our U2B and ProB tools
Evaluating software development characteristics: A comparison of software errors in different environments
Error data obtained from two different software development environments are compared. To obtain data that was complete, accurate, and meaningful, a goal-directed data collection methodology was used. Changes made to software were monitored concurrently with its development. Similarities common to both environments are included: (1) the principal error was in the design and implementation of single routines; (2) few errors were the result of changes, required more than one attempt to correct, and resulted in other errors; (3) relatively few errors took more than a day to correct
Evaluating Software Architectures: Development Stability and Evolution
We survey seminal work on software architecture evaluationmethods. We then look at an emerging class of methodsthat explicates evaluating software architectures forstability and evolution. We define architectural stabilityand formulate the problem of evaluating software architecturesfor stability and evolution. We draw the attention onthe use of Architectures Description Languages (ADLs) forsupporting the evaluation of software architectures in generaland for architectural stability in specific
Can we avoid high coupling?
It is considered good software design practice to organize source code into modules and to favour within-module connections (cohesion) over between-module connections (coupling), leading to the oft-repeated maxim "low coupling/high cohesion". Prior research into network theory and its application to software systems has found evidence that many important properties in real software systems exhibit approximately scale-free structure, including coupling; researchers have claimed that such scale-free structures are ubiquitous. This implies that high coupling must be unavoidable, statistically speaking, apparently contradicting standard ideas about software structure. We present a model that leads to the simple predictions that approximately scale-free structures ought to arise both for between-module connectivity and overall connectivity, and not as the result of poor design or optimization shortcuts. These predictions are borne out by our large-scale empirical study. Hence we conclude that high coupling is not avoidable--and that this is in fact quite reasonable
Reengineering of a data processing line with Platypus
International audienc
- …