30 research outputs found

    An Empirical Study of a Repeatable Method for Reengineering Procedural Software Systems to Object- Oriented Systems

    Get PDF
    This paper describes a repeatable method for reengineering a procedural system to an object-oriented system. The method uses coupling metrics to assist a domain expert in identifying candidate objects. An application of the method to a simple program is given, and the effectiveness of the various coupling metrics are discussed. We perform a detailed comparison of our repeatable method with an ad hoc, manual reengineering effort based on the same procedural program. The repeatable method was found to be effective for identifying objects. It produced code that was much smaller, more efficient, and passed more regression tests than the ad hoc method. Analysis of object-oriented metrics indicated both simpler code and less variability among classes for the repeatable method

    Types and concept analysis for legacy systems

    Get PDF
    We combine type inference and concept analysis in order to gain insight into legacy software systems. Type inference for Cobol yields the types for variables and program parameters. These types are used to perform mathematical concept analysis on legacy systems. We have developed ConceptRefinery, a tool for interactively manipulating concepts. We show how this tools facilitates experiments with concept analysis, and lets reengineers employ their knowedge of the legacy system to refine the results of concept analysis

    Design pattern mining enhanced by machine learning

    Full text link

    Product Family Design Knowledge Representation, Aggregation, Reuse, and Analysis

    Get PDF
    A flexible information model for systematic development and deployment of product families during all phases of the product realization process is crucial for product-oriented organizations. In current practice, information captured while designing products in a family is often incomplete, unstructured, and is mostly proprietary in nature, making it difficult to index, search, refine, reuse, distribute, browse, aggregate, and analyze knowledge across heterogeneous organizational information systems. To this end, we propose a flexible knowledge management framework to capture, reorganize, and convert both linguistic and parametric product family design information into a unified network, which is called a networked bill of material (NBOM) using formal concept analysis (FCA); encode the NBOM as a cyclic, labeled graph using the Web Ontology Language (OWL) that designers can use to explore, search, and aggregate design information across different phases of product design as well as across multiple products in a product family; and analyze the set of products in a product family based on both linguistic and parametric information. As part of the knowledge management framework, a PostgreSQL database schema has been formulated to serve as a central design repository of product design knowledge, capable of housing the instances of the NBOM. Ontologies encoding the NBOM are utilized as a metalayer in the database schema to connect the design artifacts as part of a graph structure. Representing product families by preconceived common ontologies shows promise in promoting component sharing, and assisting designers search, explore, and analyze linguistic and parametric product family design information. An example involving a family of seven one-time-use cameras with different functions that satisfy a variety of customer needs is presented to demonstrate the implementation of the proposed framework

    Clustering technique for conceptual clusters

    Get PDF
    International audienceClustering aims to classify elements into groups called classes or clusters. Clustering is used in reverse-engineering to help to understand legacy software. It is also a tech-nic used in re-engineering to propose gatherings of software entities to engineers who can then accept them or not. This paper presents a Pharo implementation of an iterative and semi-automatic method for clustering. Our method proposes, to an end-user, clusters that are based on domain information and structural information. The method presented in this paper has been applied in an industrial project of architecture migration. We show that this method helps engineers to cluster software elements into domain concepts. The clustering gives a result of 56% of precision and 79% of recall after the automated part in a high level clustering. A deeper clustering gives a result of 51% of precision and 52% of recall

    Using Concept Lattices to Uncover Causal Dependencies in Software

    Full text link

    Image indexing and retrieval using formal concept analysis.

    Get PDF
    corecore