35 research outputs found

    On the Role of Metadata in Visual Language Reuse and Reverse Engineering – An Industrial Case

    Get PDF
    AbstractCollecting metadata on a family of programs is useful not only for generating statistical data on the programs but also for future re-engineering and reuse purposes. In this paper we discuss an industrial case where a project library is used to store visual programs and a database to store the metadata on these programs. The visual language in question is a domain-specific language, Function Block Language (FBL) that is used in Metso Automation for writing automation control programs. For reuse, program analysis and re-engineering activities and various data and program analysis methods are applied to study the FBL programs. Metadata stored in a database is used to provide advanced program analysis support; from the large amount of programs, the metadata allows focusing the analysis to certain kinds of programs. In this paper, we discuss the role and usage of the metadata in program analysis techniques applied to FBL programs

    Implemeting a component-based tool for interactive synthesis of UML statechart diagrams

    Get PDF
    The Unified Modeling Language (UML) has an indisputable role in objectoriented software development. It provides several diagram types viewing a system from different perspectives. Currently available systems have relatively modest tool support for comparing, merging, synthesizing, and slicing UML diagrams based on their semantical relationships. Minimally Adequate Synthesizer (MAS) is a tool that synthesizes UML statechart diagrams from sequence diagrams in an interactive manner. It follows Angluin's framework of minimally adequate teacher to infer the desired statechart diagram with the help of membership and equivalence queries. MAS can also synthesize sequence diagrams into an edited or manually constructed statechart diagram. In this paper we discuss problems related to a practical implementation of MAS and its integration with two existing tools (Nokia TED and Rational Rose) supporting UML-based modeling. We also discuss information exchange techniques that could be used to allow the usage of other CASE tools supporting UML

    Static and Dynamic Reverse Engineering Techniques for Java Software Systems

    Get PDF
    The main contributions of this dissertation are as follows: methods for using the dependencies between static and dynamic models for goal driven reverse engineering tasks, including merging dynamic information to a static Rigiview; using static information to guide the generation of dynamici nformation; slicing a Rigi view using SCED scenarios; and raising the level of abstraction of SCED scenarios using a high-level Rigigraph; algorithms for optimizing synthesized state diagrams using UMLnotation; application of the synthesis algorithm presented by Koskimies and Mäkinen [54] to SCED; string matching algorithms for raising the level of abstraction of SCED scenario iagrams; the prototype reverse ngineering environment Shimba, which integrates two existing tools: Rigi for reverse engineering the static structure of Javasoftware; and SCED and its state diagram synthesis facility for reverse engineering the dynamic behavior of Java software; methods and tools for gathering information, including extraction of static information from Java byte code;and extraction of run-time information by running the target system under a customized jdk debugger; a case study to evaluate the facilities of Shimba.The main contributions of this dissertation are as follows: methods for using the dependencies between static and dynamic models for goal driven reverse engineering tasks, including merging dynamic information to a static Rigiview; using static information to guide the generation of dynamici nformation; slicing a Rigi view using SCED scenarios; and raising the level of abstraction of SCED scenarios using a high-level Rigigraph; algorithms for optimizing synthesized state diagrams using UMLnotation; application of the synthesis algorithm presented by Koskimies and Mäkinen [54] to SCED; string matching algorithms for raising the level of abstraction of SCED scenario iagrams; the prototype reverse ngineering environment Shimba, which integrates two existing tools: Rigi for reverse engineering the static structure of Javasoftware; and SCED and its state diagram synthesis facility for reverse engineering the dynamic behavior of Java software; methods and tools for gathering information, including extraction of static information from Java byte code;and extraction of run-time information by running the target system under a customized jdk debugger; a case study to evaluate the facilities of Shimba

    Static and Dynamic Reverse Engineering Techniques for Java Software Systems

    Get PDF
    The main contributions of this dissertation are as follows: methods for using the dependencies between static and dynamic models for goal driven reverse engineering tasks, including merging dynamic information to a static Rigiview; using static information to guide the generation of dynamici nformation; slicing a Rigi view using SCED scenarios; and raising the level of abstraction of SCED scenarios using a high-level Rigigraph; algorithms for optimizing synthesized state diagrams using UMLnotation; application of the synthesis algorithm presented by Koskimies and Mäkinen [54] to SCED; string matching algorithms for raising the level of abstraction of SCED scenario iagrams; the prototype reverse ngineering environment Shimba, which integrates two existing tools: Rigi for reverse engineering the static structure of Javasoftware; and SCED and its state diagram synthesis facility for reverse engineering the dynamic behavior of Java software; methods and tools for gathering information, including extraction of static information from Java byte code;and extraction of run-time information by running the target system under a customized jdk debugger; a case study to evaluate the facilities of Shimba.The main contributions of this dissertation are as follows: methods for using the dependencies between static and dynamic models for goal driven reverse engineering tasks, including merging dynamic information to a static Rigiview; using static information to guide the generation of dynamici nformation; slicing a Rigi view using SCED scenarios; and raising the level of abstraction of SCED scenarios using a high-level Rigigraph; algorithms for optimizing synthesized state diagrams using UMLnotation; application of the synthesis algorithm presented by Koskimies and Mäkinen [54] to SCED; string matching algorithms for raising the level of abstraction of SCED scenario iagrams; the prototype reverse ngineering environment Shimba, which integrates two existing tools: Rigi for reverse engineering the static structure of Javasoftware; and SCED and its state diagram synthesis facility for reverse engineering the dynamic behavior of Java software; methods and tools for gathering information, including extraction of static information from Java byte code;and extraction of run-time information by running the target system under a customized jdk debugger; a case study to evaluate the facilities of Shimba

    On the Relationships between Static and Dynamic Models in Reverse Engineering Java Software

    No full text
    An experimental environment for reverse engineering Java software is discussed. Static information is extracted from class files and viewed using Rigi reverse engineering environment. The dynamic information is generated by running the target software under a debugger. The debugged event trace information is viewed as scenario diagrams using a prototype tool called SCED. In SCED state diagrams can be synthesized automatically from scenario diagrams. Dynamic information can also be attached to the static Rigi graph. Both static and dynamic views contain information about software artifacts and their relations. Such overlapping information forms a connection for information exchange between the views. SCED scenario diagrams are used for slicing the Rigi view and the Rigi view, in turn, is used to guide the generation of SCED scenario diagrams and for raising their level of abstraction
    corecore