Towards an Automatic Service Discovery for UML-based Rich Service Descriptions - Huma, Zille; Gerth, Christian; Engels, Gregor; Juwig, Oliver (Proceedings of the ACM/IEEE 15th International Conference on Model Driven Engineering Languages and Systems (MoDELS))
Service-oriented computing (SOC) promises to solve many issues in the area of distributed software development, e.g. the realization of the loose coupling pattern in practice through service discovery and invocation. For this purpose, service descriptions must comprise structural as well as behavioral information of the services otherwise an accurate service discovery is not possible. We addressed this issue in our previous paper and proposed a UML-based rich service description language (RSDL) providing comprehensive notations to specify service requests and offers.However, the automatic matching of service requests and offers specified in a RSDL for the purpose of service discovery is a complex task, due to multifaceted heterogeneity of the service partners. This heterogeneity includes the use of different underlying ontologies or different levels of granularity in the specification itself resulting in complex mappings between service requests and offers. In this paper, we present an automatic matching mechanism for service requests and offers specified in a RSDL that overcomes the underlying heterogeneity of the service partners.

Towards a Framework for the Integration of Modeling Languages - Arifulina, Svetlana (Proceedings of the Doctoral Symposium of the 5th International Conference on Software Language Engineering 2012, Dresden, Germany (SLE (Doctoral Symposium)))
In software markets of the future, customer-specific software will be developed on demand from distributed software and hardware services available on world-wide markets. Having a request, services have to be automatically discovered and composed. For that purpose, services have to be matched based on their specifications. For the accurate matching, services have to be described comprehensively that requires the integration of different domain-specific languages (DSLs) used for functional, non-functional, and infrastructural properties. Since different service providers use plenty of language dialects to model the same service property, their integration is needed for the matching. In this paper, we propose a framework for integration of DSLs. It is based on a parameterized abstract core language that integrates key concepts needed to describe a service. Parts of the core language can be substituted with concrete DSLs. Thus, the framework serves as a basis for the comprehensive specification and automatic matching of services.

Proof-Carrying Hardware: A Novel Approach to Reconfigurable Hardware Security - Drzevitzky, Stephanie
FPGAs, systems on chip and embedded systems are nowadays irreplaceable. They combine the computational power of application specific hardware with software-like flexibility. At runtime, they can adjust their functionality by downloading new hardware modules and integrating their functionality. Due to their growing capabilities, the demands made to reconfigurable hardware grow. Their deployment in increasingly security critical scenarios requires new ways of enforcing security since a failure in security has severe consequences. Aside from financial losses, a loss of human life and risks to national security are possible. With this work I present the novel and groundbreaking concept of proof-carrying hardware. It is a method for the verification of properties of hardware modules to guarantee security for a target platform at runtime. The producer of a hardware module delivers based on the consumer's safety policy a safety proof in combination with the reconfiguration bitstream. The extensive computation of a proof is a contrast to the comparatively undemanding checking of the proof. I present a prototype based on open-source tools and an abstract FPGA architecture and bitstream format. The proof of the usability of proof-carrying hardware provides the evaluation of the prototype with the exemplary application of securing combinational and bounded sequential equivalence of reference monitor modules for memory safety.

Predicate Analysis with Block-Abstraction Memoization - Wonisch, Daniel; Wehrheim, Heike (Proceedings of the 14th International Conference on Formal Engineering Methods (ICFEM))
Predicate abstraction is an established technique for reducing the size of the state space during verification. In this paper, we extend predication abstraction with block-abstraction memoization (BAM), which exploits the fact that blocks are often executed several times in a program. The verification can thus benefit from caching the values of previous block analyses and reusing them upon next entry into a block. In addition to function bodies, BAM also performs well for nested loops. To further increase effectiveness, block memoization has been integrated with lazy abstraction adopting a lazy strategy for cache refinement. Together, this achieves significant performance increases: our tool (an implementation within the configurable program analysis framework CPAchecker) has won the Competition on Software Verification 2012 in the category “Overall”.

Model-Driven Performance Engineering of Self-Adaptive Systems: A Survey - Becker, Matthias; Luckey, Markus; Becker, Steffen (Proceedings of the 8th ACM SigSoft International Conference on Quality of Software Architectures (QoSA'12))
To meet quality-of-service requirements in changing environments, modern software systems adapt themselves. The structure, and correspondingly the behavior, of these systems undergoes continuous change. Model-driven performance engineering, however, assumes static system structures, behavior, and deployment. Hence, self-adaptive systems pose new challenges to model-driven performance engineering. There are a few surveys on self-adaptive systems, performance engineering, and the combination of both in the literature. In contrast to existing work, here we focus on model-driven performance analysis approaches. Based on a systematic literature review, we present a classication, identify open issues, and outline further research.

Heuristic-Guided Abstraction Refinement for Concurrent Systems - Timm, Nils; Wehrheim, Heike; Czech, Mike (Proceedings of the 14th International Conference on Formal Engineering Methods (ICFEM))
Predicate abstraction is an established technique in software verification. It inherently includes an abstraction refinement loop successively adding predicates until the right level of abstraction is found. For concurrent systems, predicate abstraction can be combined with spotlight abstraction, further reducing the state space by abstracting away certain processes. Refinement then has to decide whether to add a new predicate or a new process. Selecting the right predicates and processes is a crucial task: The positive effect of abstraction may be compromised by unfavourable refinement decisions. Here we present a heuristic approach to abstraction refinement. The basis for a decision is a set of refinement candidates, derived by multiple counterexample-generation. Candidates are evaluated with respect to their influence on other components in the system. Experimental results show that our technique can significantly speed up verification as compared to a naive abstraction refinement.

Generating Prototypes of Adaptive Component-based Software Systems for Performance Analysis - Mohr, Mario

Empirischer, quantitativer Vergleich von Modelltransformationssprachen - Lehrig, Sebastian

Efficient Color-Based Image Segmentation and Feature Classification for Image Processing in Embedded Systems - Jungmann, Alexander; Kleinjohann, Bernd; Kleinjohann, Elisabeth; Bieshaar, Maarten (Proceedings of the Fourth International Conference on Resource Intensive Applications and Services (INTENSIVE))
In this paper, a color based feature extraction and classification approach for image processing in embedded systems in presented. The algorithms and data structures developed for this approach pay particular attention to reduce memory consumption and computation power of the entire image processing, since embedded systems usually impose strong restrictions regarding those resources. The feature extraction is realized in terms of an image segmentation algorithm. The criteria of homogeneity for merging pixels and regions is provided by the color classification mechanism, which incorporates appropriate methods for defining, representing and accessing subspaces in the working color space. By doing so, pixels and regions with color values that belong to the same color class can be merged. Furthermore, pixels with redundant color values that do not belong to any pre-defined color class can be completely discarded in order to minimize computational effort. Subsequently, the extracted regions are converted to a more convenient feature representation in terms of statistical moments up to and including second order. For evaluation, the whole image processing approach is applied to a mobile representative of embedded systems within the scope of a simple real-world scenario.

Coverage Criteria for Testing DMM Specifications - Arifulina, Svetlana; Engels, Gregor; Soltenborn, Christian (Proceedings of the 11th International Workshop on Graph Transformation and Visual Modeling Techniques (GT-VMT))
Behavioral modeling languages are most useful if their behavior is specified formally such that it can e.g. be analyzed and executed automatically. Obviously, the quality of such behavior specifications is crucial. The rule-based semantics specification technique Dynamic Meta Modeling (DMM) honors this by using the approach of Test-driven Semantics Specification (TDSS), which makes sure that the specification at hand at least describes the correct behavior for a suite of test models. However, in its current state TDSS does not provide any means to measure the quality of such a test suite. In this paper, we describe how we have applied the idea of test coverage to TDSS. Similar to common approaches of defining test coverage criteria, we describe a data structure called invocation graph containing possible orders of applications ofDMM rules. Then we define different coverage criteria based on that data structure, taking the rule applications caused by the test suite’s models into account. Our implementation of the described approach gives the language engineer using DMM a means to reason about the quality of the language’s test suite, and also provides hints on how to improve that quality by adding dedicated test models to the test suite.

Change and Validity Analysis in Deductive Program Verification - Jakobs, Marie-Christine

Block Abstraction Memoization for CPAchecker - Wonisch, Daniel (Proceedings of the 18th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS))
Block Abstraction Memoization (ABM) is a technique in software model checking that exploits the modularity of programs during verification by caching. To this end, ABM records the results of block analyses and reuses them if possible when revisiting the same block again. In this paper we present an implementation of ABM into the predicate-analysis component of the software-verification framework CPAchecker. With our participation at the Competition on Software Verification we aim at providing evidence that ABM can not only substantially increase the efficiency of predicate analysis but also enables verification of a wider range of programs.

Archimetrix: Improved Software Architecture Recovery in the Presence of Design Deficiencies - Platenius, Marie Christin; von Detten, Markus; Becker, Steffen (Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR))
Maintaining software systems requires up-to-date models of these systems to systematically plan, analyse and execute the necessary reengineering steps. Often, no or only outdated models of such systems exist. Thus, a reverse engineering step is needed that recovers the system’s components, subsystems and connectors. However, reverse engineering methods are severely impacted by design deficiencies in the system’s code base, e.g., they lead to wrong component structures. Several approaches exist today for the reverse engineering of component-based systems, however, none of them explicitly integrates a systematic design deficiency removal into the process to improve the quality of the reverse engineered architecture. Therefore, in our Archimetrix approach, we propose to regard the most relevant deficiencies with respect to the reverse engineered component-based architecture and support reengineers by presenting the architectural consequences of removing a given deficiency. We validate our approach on the Common Component Modeling Example and show that we are able to identify relevant deficiencies and that their removal leads to an improved reengineered architecture.

Archimetrix: A Tool for Deficiency-Aware Software Architecture Reconstruction - von Detten, Markus (Proceedings of the 19th Working Conference on Reverse Engineering (WCRE))
Maintaining software systems requires up-to-date models of these systems to systematically plan, analyze, and execute the necessary reengineering steps. Often, no or only outdated models of such systems exist.Thus, a reverse engineering step is needed that recovers the system's components, subsystems, and connectors. However, reverse engineering methods are severely impacted by design deficiencies in the system's code base, e.g., they lead to wrong component structures.Therefore, Archimetrix enables the reengineer to detect the most relevant deficiencies with respect to a reverseengineered component-based architecture and supports him by presenting the architectural consequences of removinga given deficiency.

A UML-based Rich Service Description for Automatic Service Discovery - Huma, Zille; Gerth, Christian; Engels, Gregor; Juwig, Oliver (Proceedings of the Forum at the CAiSE'12 Conference on Advanced Information Systems Engineering)
Service-oriented computing (SOC) emerges as a promising trend solving many issues in distributed software development. Following the essence of SOC, service descriptions are dened by the service partners based on current standards, e.g., WSDL [15]. However, these standards are mostly structural and do not provide any behavioral description, which may lead to inaccurate service discovery results. There is a requirement for a rich service description language for service partners that encompasses the structural as well as behavioral information in the service description. Furthermore, service discovery based on an automatic matching of these comprehensive service descriptions is a complex task, which is further complicated through the heterogeneity of the service partners' domains in terms of dierent underlying ontologies. In this paper, we propose a rich service description language based on UML, which allows the specication of structural and behavioral features of a service. In addition, we also briefly discuss how some existing matching approaches can be extended to dene an automatic matching mechanism for rich service descriptions resolving the underlying heterogeneity.

Partially Evaluating Finite-State Runtime Monitors Ahead of Time - Bodden, Eric; Lam, Patrick; Hendren, Laurie (ACM Transactions on Programming Languages and Systems)

Weaving-based configuration and modular transformation of multi-layer systems - Besova, Galina; Walther, Sven; Wehrheim, Heike; Becker, Steffen (Proceedings of the 15th International Conference on Model Driven Engineering Languages & Systems (MoDELS))
In model-driven development of multi-layer systems (e.g. application, platform and infrastructure), each layer is usually described by separate models. When generating analysis models or code, these separate models rst of all need to be linked. Hence, existing model transformations for single layers cannot be simply re-used. In this paper, we present a modular approach to the transformation of multi-layer systems. It employs model weaving to dene the interconnections between models of dierent layers. The weaving models themselves are subject to model transformations: The result of transforming a weaving model constitutes a conguration for the models obtained by transforming single layers, thereby allowing for a re-use of existing model transformations. We exemplify our approach by the generation of analysis models for component-based software.

Towards Systematic, Comprehensive Trace Generation for Behavioral Pattern Detection through Symbolic Execution - von Detten, Markus (Proceedings of the 10th ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE))
In reverse engineering, dynamic pattern detection is accomplished by collecting execution traces and comparing them to expected behavioral patterns. The traces are collected by manually executing the program in question and therefore represent only part of all relevant program behavior. This can lead to false conclusions about the detected patterns. In this paper, we propose to generate all relevant program traces by using symbolic execution. In order to reduce the created trace data, we allow to limit the trace collection to a user-selectable subset of the statically detected pattern candidates.

Selected papers on Integrated Formal Methods (iFM09) - Leuschel, Michael; Wehrheim, Heike (Science of Computer Programming)

Reputation-based Reliability Prediction of Service Compositions - Besova, Galina; Wehrheim, Heike; Wagner, Annika (Electronic Notes in Theoretical Computer Science)
Today, the concept of service oriented architectures provides a way of building integrated solutions out of existing services. To this end, services from different providers are composed using advanced orchestration and choreography techniques. However, while this principle allows for greater flexibility at a smaller cost, the use of third party services also includes a risk: Deployed services might not work as claimed by their providers. In this paper, we propose a technique for analyzing the expected reliability of service compositions based on ratings given by (previous) service users. Every service thereby comes with a reputation, and the analysis computes an overall reliability of a service composition from the reputations of its constituent services. The proposed model-driven approach proceeds by translating statechart models of service compositions into input for a probabilistic model checker (PRISM) using state-of-the-art model transformations techniques. The approach has been implemented as an Eclipse plug-in and is fully compliant with UML.