Conference Paper

Towards Automating Source-Consistent UML Refactorings.

DOI: 10.1007/978-3-540-45221-8_15 Conference: «UML» 2003 - The Unified Modeling Language, Modeling Languages and Applications, 6th International Conference, San Francisco, CA, USA, October 20-24, 2003, Proceedings
Source: DBLP

ABSTRACT With the increased interest in refactoring, UML tool vendors seek ways to support software developers in applying a (sequence of) refactoring(s). The problem with such tools is that the UML metamodel - on which their repos- itory is based - is inadequate to maintain the consistency between the model and the code while one of them gets refactored. Therefore, we propose a set of minimal extensions to the UML metamodel, which is sufficient to reason about refactoring for all common OO languages. For instance, by specifying pre- and postconditions in OCL, we are able to compose primitive refactorings, verify preservation of program behavior, and trigger refactorings based on code smells. This way, we provide future MDA tools with the ability to improve existing UML designs, yet keeping them in synch with the underlying code base.

  • Source
    ICSOFT 2011 - Proceedings of the 6th International Conference on Software and Data Technologies, Volume 2, Seville, Spain, 18-21 July, 2011; 01/2011
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: This paper briefly reviews the theory of Testability Transformation and outlines its implications for and relationship to refactoring for testing. The paper introduces testability refactorings, a subclass of Testability Transformations and discusses possible examples of testability refactorings. Several approaches to testability refactoring are also introduced. These include the novel concept of test-carrying code and the use of pareto optimization for balancing the competing needs of machine and human in search based testability refactoring.
    Software Testing, Verification and Validation Workshops (ICSTW), 2011 IEEE Fourth International Conference on; 04/2011
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Changes play a central role in software evolution, where the types of changes are as multifarious as their consequences. When changing software, impact analysis and regression testing are required to preserve the quality of the system. However, without a consistent classification of types of change operations, a well-founded impact analysis methodology cannot be developed. Existing works which analyze and apply change types are typically limited to a certain aspect of software, e.g. source code or architecture. They also lack a thorough investigation of change types, which lead to duplicated proposals and the absence of a consistent taxonomy. In this paper, we review the usage of change types for impact analysis and regression testing, and illustrate how both activities are affected by different types of changes. Therefore, we outline how existing work deals with different types and granularities of changes. Our main contribution is a generic, graph-based description of changes which distinguishes between atomic and composite change types. We show how existing change types and classifications can be mapped onto our proposed approach and change taxonomy. Finally, we illustrate how our proposed change types can support real developer activities, such as refactorings, impact analysis, and regression testing.

Full-text (2 Sources)

Available from
May 26, 2014