5 research outputs found

    A Unified Approach to Automatic Testing of Architectural Constraints

    Full text link
    Abstract—Architectural decisions are often encoded in the form of constraints and guidelines. Non-functional requirements can be ensured by checking the conformance of the implemen-tation against this kind of invariant. Conformance checking is often a costly and error-prone process that involves the use of multiple tools, differing in effectiveness, complexity and scope of applicability. To reduce the overall effort entailed by this activity, we propose a novel approach that supports verification of human-readable declarative rules through the use of adapted off-the-shelf tools. Our approach consists of a rule specification DSL, called Dictō, and a tool coordination framework, called Probō. The approach has been implemented in a soon to be evaluated prototype. I

    Reverse Engineering Heterogeneous Applications

    Get PDF
    Nowadays a large majority of software systems are built using various technologies that in turn rely on different languages (e.g. Java, XML, SQL etc.). We call such systems heterogeneous applications (HAs). By contrast, we call software systems that are written in one language homogeneous applications. In HAs the information regarding the structure and the behaviour of the system is spread across various components and languages and the interactions between different application elements could be hidden. In this context applying existing reverse engineering and quality assurance techniques developed for homogeneous applications is not enough. These techniques have been created to measure quality or provide information about one aspect of the system and they cannot grasp the complexity of HAs. In this dissertation we present our approach to support the analysis and evolution of HAs based on: (1) a unified first-class description of HAs and, (2) a meta-model that reifies the concept of horizontal and vertical dependencies between application elements at different levels of abstraction. We implemented our approach in two tools, MooseEE and Carrack. The first is an extension of the Moose platform for software and data analysis and contains our unified meta-model for HAs. The latter is an engine to infer derived dependencies that can support the analysis of associations among the heterogeneous elements composing HA. We validate our approach and tools by case studies on industrial and open-source JEAs which demonstrate how we can handle the complexity of such applications and how we can solve problems deriving from their heterogeneous nature

    IntensiVE, a toolsuite for documenting and checking structural source-code regularities

    No full text
    As size and complexity of software systems increase, preserving the design and specification of their implementation structure gains importance in order to maintain the evolvability of the system. However, due to constant changes, the implementation structure and its documentation tend to dilute over time. To address this problem, we developed IntensiVE: a toolsuite for documenting and checking structural source-code regularities. Building on the underlying models of intensional views and relations, the toolsuite helps a developer in documenting structural source-code regularities, verifying them and offering fine-grained feedback when the source-code does not satisfy those regularities. By illustrating our tools on a Smalltalk application, we show that violations of the source code against the structural regularities can be detected easily and that our toolsuite provides useful feedback for a developer to refine the regularities or to fix the code so that it does satisfy the regularities.Anglai
    corecore