An Effective Pattern Selection Process for Developing of Pattern Based Software

패턴 기반 소프트웨어 개발을 위한 효과적인 패턴 선정 프로세스

  • 최진명 (숭실대학교 컴퓨터학과) ;
  • 류성열 (숭실대학교 컴퓨터학부)
  • Published : 2005.05.01

Abstract

Over the past decade, several types of design pattern have been defined in the software engineering area. But these patterns have not been used so often compared with data structure and algorithm. Likewise, methods to select and apply design patterns during analysis, design, and development are not mentioned in CBD methodologies such as CBD96, RUP, and MaRMI III. This paper suggests the process of effectively selecting design patterns which can be applied to analysis, design, and development for development of application software with based on those offered by GoF and J2EE pattern catalogs. It also demonstrates how to effectively pattern-based software and shows differences and relative advantages from RUP by applying the suggested process to the development of aviation job application.

디자인 패턴은 지난 10년 이상 소프트웨어 공학 영역에서 활발하게 연구되어 여러 유형의 디자인 패턴이 정의되었다. 그러나 이들 패턴은 자료구조와 알고리즘에 비해 소프트웨어 개발 과정에 빈번하게 사용되지 못하고 있다. 더욱이 CBD96, RUP, MaRMI III 같은 CBD 방법론들은 분석, 설계, 개발 과정중에 디자인 패턴을 선정하고 적용하는 방법이 언급되어 있지 않다. 본 논문에서는 GoF, J2EE 패턴 카타로그에 제시된 디자인 패턴을 중심으로 응용 소프트웨어를 개발하기 위해 분석, 설계, 개발 단계에 적용되는 디자인 패턴을 효과적으로 선정하는 프로세스를 제시한다. 제시된 프로세스를 항공업무 어플리케이션 개발 과정에 적용하여 패턴 기반 소프트웨어를 개발해 나가는 효과적인 방법을 보이고 RUP와의 차이점 및 유용함을 제시한다.

Keywords

References

  1. E. Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995
  2. Deepak Alur, John Crupi and Dan Malks, Core J2EE Patterns: Best Practices and Design Strategies, Prentice Hall, 2001
  3. Christopher Alexander, Sara Ishikawa and Murray Silverstein, A Pattern Language: Towns, Buildings, Construction, Oxford University press, 1977
  4. Grant Larsen, Designing component-based frameworks using patterns in the UML, Communications of the ACM, Volume 42 Issue 10, pp:38-45, October, 1999 https://doi.org/10.1145/317665.317674
  5. James O. Coplien, Douglas C. Schmidt, Pattern Languages of Program Design, Addison Wesley, 1995
  6. Tiffany Winn, Paul Calder, Is This a Pattern?, IEEE Software n. 1, pp:59-65, January/February, 2002 https://doi.org/10.1109/52.976942
  7. Ladan Tahvildari, Kostas Kontogiannis, On the Role of Design Patterns in Quality-Driven Reengineering, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering (CSMR'02), IEEE, pp:230-240, March 11-13, 2002 https://doi.org/10.1109/CSMR.2002.995810
  8. Philippe Kruchten, The Rational Unified Process An Introduction (2nd Edition), Addison Wesley, 2000
  9. Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2nd Edition), Prentice Hall, 2002
  10. Rational Unified Process Evaluation (Rational Unified Process Evaluation Assembly V2003.06.00), Available from: http://www-306.ibm.com/software/awdtools/rup/
  11. Sherif M. Yacoub, Hany H. Ammar, Pattern-Oriented Analysis and Design (POAD): A Structural Composition Approach to Glue Design Patterns, Technology of Object-Oriented Languages and Systems (TOOLS 34'00), IEEE, pp:273-282, July 30-August 4, 2000 https://doi.org/10.1109/TOOLS.2000.868978
  12. Sherif M. Yacoub, Hany H. Ammar, Pattern-Oriented Analysis and Design: Composing Patterns to Design Software Systems, Addison Wesley, 2003
  13. Rudolf K. Keller, Reinhard Schauer, Design Components: Towards Software Composition at the Design Level. Proceedings of 20th International Conference on Software Engineering, ICSE'98, pp:302-311, April 19-25, 1998 https://doi.org/10.1109/ICSE.1998.671356
  14. Len Bass, Paul Clements and Rick Kazman, Software Architecture in Practice, AddisonWesley, 2003
  15. Philippe Kruchten, The 4+1 View Model of Architecture, IEEE Software, (Vol. 12, No.6), pp:42-50, November, 1995 https://doi.org/10.1109/52.469759
  16. Category Pattern, Available from: http://c2.com/cgi/wiki?CategoryPattern
  17. Sherif M. Yacoub, Hengyi Xue, Hany H. Arnmar, POD: A Composition Environment for Pattern-Oriented Design, Technology of Object-Oriented Languages and Systems (TOOLS 34'00), IEEE, pp:263-272, July 30- August 4, 2000 https://doi.org/10.1109/TOOLS.2000.868977
  18. Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal, Pattern-Oriented Software Architecture, A System of Patterns, John Wiley & Sons, 1996
  19. Walter Zimmer, Relationships between design patterns. In Pattern Languages of Program Design. Addison-Wesley, 1994
  20. William B. McNatt, James M. Bieman, Coupling of Design Patterns: Common Practices and Their Benefits, Proceedings of the 25th International Computer Software and Applications Conference on Invigorating Software Development (COMPSAC '01), pp:574-579, October 08-12, 2001 https://doi.org/10.1109/CMPSAC.2001.960670
  21. Carmen Zannier, Tool support for refactoring to design patterns, Companion qf the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA'02, pp:122-123, November 4-8, 2002 https://doi.org/10.1145/985072.985134
  22. Taichi Muraki, Motoshi Saeki,Metrics for applying GOF design patterns in refactoring processes, Proceedings of the 4th International Workshop on Principles of Software Evolution, IWPSE'01, pp:27-36, September 10-11, 2001 https://doi.org/10.1145/602461.602466