DOI QR코드

DOI QR Code

Identification of the Extension Points of Design Patterns Based on Reference Flows

레퍼런스 흐름에 기반한 디자인 패턴의 확장 지점 식별

  • 김희천 (한국방송통신대학교 컴퓨터과학과) ;
  • 박찬진 (LG전자 TV연구소) ;
  • 김택수 (삼성전자 소프트웨어센터) ;
  • 유찬우 (서울대학교 전기컴퓨터공학부) ;
  • 이형원 (강릉원주대학교 컴퓨터공학과)
  • Received : 2012.05.03
  • Accepted : 2012.06.07
  • Published : 2012.08.31

Abstract

Sometimes it is not sufficient to identify design pattern instances for extension of software, because the extension points exist outside of the instances. We define reference flows, which is a process of composing an intrinsic structure of design patterns, and suggest an analysis method based on reference flows for identifying the extension points.

디자인 패턴은 기존 소프트웨어의 설계 정보를 추상화하는 단위로 사용될 수 있다. 소프트웨어의 기능을 확장하기 위해 설계를 파악하고자 할 때 디자인 패턴의 인스턴스를 파악하는 것 만으로는 충분치 않을 수 있는데, 이는 기능의 확장이 일어나는 지점이 패턴 인스턴스 바깥에 존재할 수 있기 때문이다. 본 논문에서는 디자인 패턴의 핵심적인 구조를 구성하는 과정으로서 레퍼런스 흐름을 정의하였으며, 레퍼런스 흐름을 이용하여 패턴의 확장 지점을 찾아내는 방법을 제시하였다.

Keywords

References

  1. P. Tonella and G. Antoniol. Object oriented design pattern inference. Proc. IEEE International Conference on Software Maintenance, pp.230-238, 1999.
  2. N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, and S. T. Halkidis. Design pattern detection using similarity scoring. IEEE Transactions on Software Engineering, 32:896-909, Nov., 2006. https://doi.org/10.1109/TSE.2006.112
  3. J. Dong, Y. Sun, and Y. Zhao. Design pattern detection by template matching. Proc. ACM Symposium on Applied Computing, pp.765-769, 2008.
  4. J. Niere, W. Schafer, J. P. Wadsack, L. Wendehals, and J. Welsh. Towards pattern-based design recovery. Proc. 24th International Conference on Software Engineering, pp.338-348, 2002.
  5. J. Niere, J. P. Wadsack, and L. Wendehals. Handling large search space in pattern-based reverse engineering. Proc. 11th IEEE International Workshop on Program Comprehension, pp.274-279, 2003.
  6. M. Detten and D. Travkin. An evaluation of the Reclipse tool suite based on the static analysis of JHotDraw. Technical report, Software Engineering Group, Heinz Nixdorf Institute, University of Paderborn, 2010.
  7. Y. Gueheneuc, H. Sahraoui, and F. Zaidi. Fingerprinting design patterns. Proc. 11th Working Conference on Reverse Engineering, pp.172-181, 2004.
  8. Y. Gueheneuc, J. Guyomarc'H, and H. Sahraoui. Improving design-pattern identification: a new approach and an exploratory study. Software Quality Control, 18:145-174, Mar., 2010. https://doi.org/10.1007/s11219-009-9082-y
  9. R. Wuyts. Declarative reasoning about the structure of object-oriented systems. Proc. Technology of Object- Oriented Languages and Systems, pp.112-124, 1998.
  10. A. Blewitt, A. Bundy, and I. Stark. Automatic verification of design patterns in Java. Proc. 20th IEEE/ACM International Conference on Automated software engineering, pp.224-232, 2005.
  11. N. Shi and R. A. Olsson. Reverse engineering of design patterns from Java source code. Proc. 21st IEEE/ACM International Conference on Automated Software Engineering, pp.123-134, 2006.
  12. A. Lucia, V. Deufemia, C. Gravino, and M. Risi. Improving behavioral design pattern detection through model checking. Proc. 14th European Conference on Software Maintenance and Reengineering, pp.176-185, 2010.
  13. Y. Gueheneuc and G. Antoniol. Demima: A multilayered approach for design pattern identification. IEEE Transactions on Software Engineering, 34:667-684, 2008. https://doi.org/10.1109/TSE.2008.48
  14. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable objectoriented software. Addison-Wesley Longman Publishing Co., Inc., 1995.
  15. I. Bayley and H. Zhu. Formal specification of the variants and behavioural features of design patterns. Journal of Systems and Software, 83:209-221, Feb., 2010. https://doi.org/10.1016/j.jss.2009.09.039
  16. V. T. Chakaravarthy. New results on the computability and complexity of points-to analysis. Proc. 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp.115-125, 2003.
  17. L. O. Andersen. Program analysis and specialization for the C programming language. Technical report, 1994.
  18. B. Steensgaard. Points-to analysis in almost linear time. Proc. 23rd ACM SIGPLAN SIGACT Symposium on Principles of Programming Languages, pp.32-41, 1996.
  19. http://www.sable.mcgill.ca/soot/