The search functionality is under construction.

Keyword Search Result

[Keyword] program dependence graph(4hit)

1-4hit
  • Detecting Architectural Violations Using Responsibility and Dependency Constraints of Components

    Shinpei HAYASHI  Fumiki MINAMI  Motoshi SAEKI  

     
    PAPER

      Pubricized:
    2018/04/20
      Vol:
    E101-D No:7
      Page(s):
    1780-1789

    Utilizing software architecture patterns is important for reducing maintenance costs. However, maintaining code according to the constraints defined by the architecture patterns is time-consuming work. As described herein, we propose a technique to detect code fragments that are incompliant to the architecture as fine-grained architectural violations. For this technique, the dependence graph among code fragments extracted from the source code and the inference rules according to the architecture are the inputs. A set of candidate components to which a code fragment can be affiliated is attached to each node of the graph and is updated step-by-step. The inference rules express the components' responsibilities and dependency constraints. They remove candidate components of each node that do not satisfy the constraints from the current estimated state of the surrounding code fragment. If the inferred role of a code fragment does not include the component that the code fragment currently belongs to, then it is detected as a violation. We have implemented our technique for the Model-View-Controller for Web Application architecture pattern. By applying the technique to web applications implemented using Play Framework, we obtained accurate detection results. We also investigated how much does each inference rule contribute to the detection of violations.

  • An Approach to Slicing Widget-Based Event-Driven Programs and Its Implementation

    Xinjun ZHANG  Takao SHIMOMURA  

     
    PAPER-Software Engineering

      Vol:
    E84-D No:10
      Page(s):
    1411-1420

    In program slicing, widget-based event-driven programs are different from conventional programs because of their particular features of object construction infrastructure and event-driven mechanism and asynchronous access of global variables. Therefore conventional slicing techniques cannot be applied to widget-based event-driven programs. To solve this problem, this paper first introduces a set of representing schemes including an object construction tree, an object dependence table, a global variable dependence table and an event-driven program dependence graph, then defines a WbEd slicing criterion through combining three kinds of slicing criteria: instruction criterion, event-loop criterion and obj-attr criterion. And a slicing method is developed based on these slicing criteria. Eventually a widget-based event-driven program slicer wbedSlicer is illustrated to verify the efficiency and correctness of the slicing approach.

  • A Program Slicer Using Def-Slice-Use Tables for Efficiently Slicing Both User-Defined and Library Functions

    Xinjun ZHANG  Takao SHIMOMURA  

     
    PAPER-Theory and Models of Software

      Vol:
    E83-D No:9
      Page(s):
    1741-1751

    Program slicing is a technique for statically analyzing a program and extracting an executable sub-program, which is called a program slice, from the original program. This technique has been widely applied to program testing, debugging and maintenance. This paper presents a slicing method for extracting program slices from a program that calls library functions, which are provided as object code. The method this paper presents analyzes dependence relationships between library functions using global data that are referred to by the library functions but not explicitly declared in a program. In this method, before slicing a program with respect to a slicing criterion, a Def-Slice-Use table will be generated that stores slice information for each function in the program by slicing these functions in advance, and then the program can be efficiently sliced using this table. The paper also illustrates some examples of program slicing using a program slicer LibSlicer that implements this method.

  • A Slicing Algorithm Suitable for Program Modification

    Tsuyoshi OHTA  Takashi WATANABE  Tadanori MIZUNO  

     
    PAPER

      Vol:
    E79-A No:4
      Page(s):
    540-546

    A program slice is a set of program statements that directly or indirectly contribute to the values assumed by a set of variables at some program execution point. A few slicing algorithms have proposed to far but none of them are considered from the viewpoint of program modification. In this paper, we define a variable dependence graph (VDG) and show a new slicing algorithm on VDG. We also compare the time complexity of the algorithm with that of other existing algorithms and discuss the suitableness of our algorithm for program modification. As the result of this, we argue our algorithm is suitable for embedding debugging systems.