Enabling Design Evolution in Software through Pattern Oriented Approach

  • D. Janaki Ram
  • M. S. Rajasree
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2817)


Architectural erosion in software systems results due to the drifting of code from the existing design. This drifting happens because the changes in code supporting evolving requirements, are not reflected back in the design. The ability to control software artifacts produced in various stages of the software development lifecycle is very crucial. Powerful abstractions for modeling software design is essential for supporting evolution. We propose a pattern oriented approach to software development using patterns as building blocks of architecture. We argue that design evolution in software can best be achieved by replacing existing patterns in the design with new patterns addressing present requirements. Support for design evolution by means of a model for pattern substitution is also presented. Using this model, the design is gracefully evolved and the design changes are seamlessly mapped to code thus preventing architectural erosion.


Design patterns Software architecture Design evolution Software development life cycle Pattern substitution 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Buschman, F., Meunier, R., Rohnert, H., Sommerlab, P., Stal, M.: Pattern Oriented Software Architecture: A System of Patterns, vol. I. John Wiley and Sons, Chichester (1996)Google Scholar
  2. 2.
    Schdmit, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern Oriented Software Architecture: A System of Patterns, vol. II. John Wiley and Sons, Chichester (1999)Google Scholar
  3. 3.
    Khriss, I., Keller, R.K.: Transformations for Pattern-Based Forward-Engineering. In: Proceedings of International Workshop on Software Transformation Systems (STS 1999), Los Angeles, pp. 50–58 (May 1999)Google Scholar
  4. 4.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns, Elements of Reusable Object Oriented Software. Addison Wesley, Reading (1995)Google Scholar
  5. 5.
    Lehman, M.M., Perry, D.E., Ramil, J.F., Turski, W.M., Wernick, P.: Metrics and Laws of Software Evolution – the Nineties View. In: Proceedings of the 4th International Symposium on Software Metrics, Albuquerque, New Mexico, IEEE, Los Alamitos (2000)Google Scholar
  6. 6.
    Perry, D.E., Wolf, A.L.: Foundations for the study of Software Architecture. ACM SIGSOFT 17(4) (1992)Google Scholar
  7. 7.
    Khusela, J.: Architectural Evolution. In: Proceedings of the FirstWorking IFIP Conference on Software Architecture (WICSA1), San Antonio, Texas, USA, pp. 471–478. IFIP Kluwer Academic Publishers, Dordrecht (1999)Google Scholar
  8. 8.
    Sha, L., Rajkumar, R., Gagliardi, M.: A Software Architecture for Dependable and Evolvable Industrial Computing Systems, Technical Report CMU/SEI-95-TR-005, CMU/SEI (July 1995)Google Scholar
  9. 9.
    Bosch, J.: Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. Addison Wesley, Reading (2000)Google Scholar
  10. 10.
    Foote, B.: A Fractal Model of the Life Cycle of Reusable Objects. In: Proceedings of OOPSLA 1992 Workshop on Reuse, Van Couver, British Columbia, Canada (October 1992)Google Scholar
  11. 11.
    Rajasree, M.S., Janaki Ram, D., Jithendra Kumar Reddy, P.: Composing Architectures from Patterns. In: Proceedings of the SoDA 2002, International Workshop on Software Design and Architecture, Bangalore, India (December 2002)Google Scholar
  12. 12.
    Rajasree, M.S., Janaki Ram, D., Jithendra Kumar Reddy, P.: Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture. To appear in Proceedings of the STRAW 2003, International Workshop on SofTware Requirements to Architecture in association with ICSE 2003, Portland, Oregon, USA,Google Scholar
  13. 13.
    Janaki Ram, D., Ramakrishna, O.: The Glue Model for Reuse by Customization in Object-Oriented Systems, Technical Report No. IITM-CSE-DOS-98-02, Department of CS & Engg. IIT, Madras, IndiaGoogle Scholar
  14. 14.
    Rajith, R.I.: Managing Evolving Designs Using Glue Patterns, M.S. Thesis, Department of CS & Engg., IIT, Madras, IndiaGoogle Scholar
  15. 15.
    Janaki Ram, D., Babu, C.: A Framework for Dynamic Client Driven Customization. In: Proceedings of 7th International Conference of Object Oriented Information Systems (OOIS 2001) (2001)Google Scholar
  16. 16.
    Prechelt, L., Unger-Lamprecht, B., Philippsen, M., Tichy, W.F.: Two Controlled Experiments Assessing the Usefulness of Design Pattern Documentation in Program Maintenance. IEEE Transactions on Software Engineering 28(6) (June 2002)Google Scholar
  17. 17.
    Janaki Ram, D., Dwivedi, R.A., Ramakrishna, O.: An Implementation Mechanism for Design Patterns. ACM Software Engineering Notes 27(7), 52–56 (1998)Google Scholar
  18. 18.
    Janaki Ram, D., Vivekananda, N., Srinivas Rao, C., Krishna Mohan, N.: Constraint Meta-Object: A New Object Model for Distributed Collaborative Designing. IEEE Transaction on Man Systems and Cybernetics 27, Part A(2), 208–221 (1997)Google Scholar
  19. 19.
    IEEE Standards Collection: Software Engineering (IEEE Standard 610.12–1990), IEEE (1993)Google Scholar
  20. 20.
    Pressman, R.S.: Software Engineering: A practitioner’s Approach. Tata Mc Graw Hill Companies, Inc. (1997)Google Scholar
  21. 21.
    Janaki Ram, D., Anantharaman, K.N., Guruprasad, K.N., Sreekanth, M., Raju, S.V.G.K., Rao, A.A.: An Approach for Pattern Oriented Software Development Based on a Design handbook. Annals of Software Engineering 10, 329–358 (2000)zbMATHCrossRefGoogle Scholar
  22. 22.
    Rajasree, M.S., Janaki Ram, D., Reddy, J.K.: Systematic Approach for Design of Framework for Software Productlines. In: Proceedings of the PLEES 2002, International Workshop on Product Line Engineering The Early Steps: Planning Modeling and Managing, In Association with OOPSLA 2002 (October 28, 2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • D. Janaki Ram
    • 1
  • M. S. Rajasree
    • 1
  1. 1.Distributed & Object Systems Lab, Department of Computer Science and EngineeringIndian Institute of TechnologyMadras, ChennaiIndia

Personalised recommendations