8 research outputs found

    The Cohesion-Based Requirements Set Model for Improved Information System Maintainability

    Get PDF
    The concept of cohesion, which is normally associated with software design, is commonly used to measure the degree to which elements of a module are related. Systems constructed adhering to the principle of cohesion are expected to be more maintainable. It is proposed in this research that it may be more advantageous to apply the principle of cohesion at an earlier phase of the software development life cycle, thus placing more responsibility on the analyst who has a better understanding of the business. This paper proposes the Cohesion-Based Requirements Set (CBRS) model for improved information system maintainability. Using the CBRS technique, one may be able to positively affect the overall maintainability of the resulting system by applying a synthesis or expansion approach when gathering requirements rather than using an approach based on analysis or reduction

    How We Design Interfaces, and How to Assess It

    Full text link

    Analysis on a release history database to assist management of the software maintenance

    Get PDF
    Software maintenance is the most time consuming activity in the life cycle of software. Software maintenance suffers from missed deadlines and from being over budget. Managers usually pay more attention to development than to maintenance: for example, they prefer to assign senior developers to the development phase tasks and neglect maintenance ones. Managers have difficulty identifying problems, and their causes, in maintenance. This thesis presents techniques for analysis on the proposed release history database to provide metrics for improvement of the maintenance phase. The proposed release history database is enriched by valuable data that comes from an issue tracking system, code repository, and time entry system. The proposed release history database and the analysis of the data contained there provides metrics which allow maintainers to find risky and time consuming codes, recommending maintenance team and maintenance location and a suggestions for the future of the maintenance. Automation is also provided as a proof of concept through a prototypical tool

    Évaluation de la cohésion des classes : une nouvelle approche basée sur la classification

    Get PDF

    Ohjelmistometriikat arkkitehtuuritasolla

    Get PDF
    Siirretty Doriast

    Using Clustering Techniques to Guide Refactoring of Object-Oriented Classes

    No full text
    Much of the cost of software development is maintenance. Well structured software tends to be cheaper to maintain than poorly structured software, because it is easier to analyze and modify. The research described in this thesis concentrates on determining how to improve the structure of object-oriented classes, the fundamental unit of organization for object-oriented programs. Some refactoring tools can mechanically restructure object-oriented classes, given the appropriate inputs regarding what attributes and methods belong in the revised classes. We address the research question of determining what belongs in those classes, i.e., determining which methods and attributes most belong together and how those methods and attributes can be organized into classes. Clustering techniques can be useful for grouping entities that belong together; however, doing so requires matching an appropriate algorithm to the domain task and choosing appropriate inputs. This thesis identifies clustering techniques suitable for determining the redistribution of existing attributes and methods among object-oriented classes, and discusses the strengths and weaknesses of these techniques. It then describes experiments using these techniques as the basis for refactoring open source Java classes and the changes in the class quality metrics that resulted. Based on these results and on others reported in the literature, it recommends particular clustering techniques for particular refactoring problems. These clustering techniques have been incorporated into an open source refactoring tool that provides low-cost assistance to programmers maintaining object-oriented classes. Such maintenance can reduce the total cost of software development
    corecore