Restructuring Conditional Code Structures Using Object Oriented Design Patterns

  • Rene Santaolaya S.
  • Olivia G. Fragoso D.
  • Joaquín Pérez O.
  • Lorenzo Zambrano S.
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2667)


Nowadays, software industry demands high quality reusable artifacts that are easy to configure for developing new applications or modifying the existing ones at minimum cost. In this context several approaches have been proposed, as a result of this, libraries with a number of reusable functions and/or classes have been obtained. Such approaches have also proposed guidelines aimed to reuse most of the software developed by programmers. However this goal has not been achieved yet, mainly due to the lack of quality attributes of the reusable software components currently available. This paper introduces an approach known as SR2, which means software reengineering for reuse, it is based on a reengineering process whose input is legacy code written in C language and the output is an object-oriented framework in C++. In this work we employ the Gamma design patterns strategy and state to structure the framework generated by the reengineering process.


Design Pattern Legacy Code Reusable Component Restructuring Process Language Recognition 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    ANTL (Another Tool Language Recognition)
  2. 2.
    Bruno R. P., Design Patterns for the Data Structures and Algorithms Course, SIGCSE’99, ACM, (1999).Google Scholar
  3. 3.
    Gamma E., Helm, R., Johnson R., and Vlissides J. Design Patterns: Elements of Reusable Software Architecture, Addison-Wesley, Reading, Mass., (1995).Google Scholar
  4. 4.
    Grant L., Designing Component-Based Frameworks, Using Patterns in the UML, Communications of the ACM, Vol. 42, No 10, (October 1999), 39–42.Google Scholar
  5. 5.
    Harald C. G., René R. K., Roland T. M., Application Patterns in Re-Engineering: Identifying and Using Reusable Concepts, 6th. International Conference on Information Processing and Management of Uncertainty in Knowledge-Based Systems (IPMU’96), (July 1996), 1–9.Google Scholar
  6. 6.
    Johnson, R. E., Frameworks = (Components+Patterns), How frameworks compare to other object-oriented reuse techniques, Communications of the ACM, Vol. 40, No 10, (October 1997), 39–42.CrossRefGoogle Scholar
  7. 7.
    Rudo K.K, Reinhard S., Sèbastien R., Patrick P., Pattern-Based Reverse-Engineering of Design Components, ICSE’99, (1999).Google Scholar
  8. 8.
    Sagar P., Hussein Z., Paul L., Resource usage matrix in object identification and design transformation of legacy procedural software, 14o. Automatic Software Engineering Conference (ASEC), (July 1997).Google Scholar
  9. 9.
    Appleton B., Patterns and Software: Essential Concepts and Terminology,, (1997).
  10. 10.
    William C. Chu, Chih-Wei Lu, CHih-Peng Shiu, Xudong He, Pattern-based software reengineering:a case study, Journal of Software Maintenance: Research and Practice,12:121–141,(2000).CrossRefGoogle Scholar
  11. 11.
    Tokuda L., Batory D., Evolving Object-Oriented Designs with Refactorings, Automated Software Engineering, 8, 89–120, (2001).zbMATHCrossRefGoogle Scholar
  12. 12.
    Pree W., Design Patterns for Object-Oriented Software Development, Addison Wesley, (1995).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Rene Santaolaya S.
    • 1
  • Olivia G. Fragoso D.
    • 1
  • Joaquín Pérez O.
    • 1
  • Lorenzo Zambrano S.
    • 2
  1. 1.Centro Nacional de Investigación y Desarrollo Tecnológico(CENIDET)Cuernavaca MorelosMéxico
  2. 2.Instituto Politécnico Nacional (IPN)Centro de Investigación en Ciencia Aplicada y Tecnología Avanzada (CICATA), Grupo de Estudios Oceanográficos (GEO)Huertas del Llano, Jiutepec MorelosMéxico

Personalised recommendations