$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

디자인 패턴에 대한 소스코드 자동 생성 기법
Automatic Source Code Generating Technique from Design Patterns 원문보기

정보처리학회논문지. The KIPS transactions. Part D. Part D, v.9D no.5, 2002년, pp.847 - 858  

김운용 (광운대학교 대학원 컴퓨터과학과) ,  최영근 (광운대학교 컴퓨터과학과)

초록
AI-Helper 아이콘AI-Helper

객체지향 프로그래밍의 주요 목적은 효율적인 재사용성과 개발시간의 단축 그리고 소프트웨어 품질의 향상에 있다. 이러한 목적을 달성하기 위한 하나의 방법으로 소프트웨어 개발 시 기존에 잘 정의되고 테스트된 설계정보를 이용하는 것이다. 이 잘 정의되고 테스트된 설계정보는 디자인 패턴이라 불러진다. 이 디자인 패턴은 소프트웨어 개발 시 특정상황에서 발생할 수 있는 문제에 대한 해결책을 표현하고 있다. 그러나 이 패턴은 추상적인 해결책을 제시하고 있기 때문에 어플리케이션 개발 시 적용되는 디자인 패턴에 대한 명세와 활용은 주로 개발자의 수작업에 의존하고 다양한 형태로 적용되고 있다. 그 결과 일관된 형태의 분석과 활용이 어렵고 오류발생 빈도를 높일 뿐 아니라 프로그램 개발에 많은 시간이 필요하다. 또한 적용된 패턴은 어플리케이션 내부에서 시각적으로 표현되지 않기 때문에 이 패턴에 대한 분석과 테스팅이 어렵다. 이에 본 논문에서는 어플리케이션 개발 시 디자인 패턴의 요소를 효율적으로 적용할 수 있기 위해 디자인 패턴에 대한 소스코드 자동 생성기법을 제시하고 어플리케이션 내부에 적용된 패턴들간의 분석 및 활용법을 보인다. 이를 통해 어플리케이션 내부의 디자인 패턴들은 일관된 형태의 구조와 효율성을 제공하고 이들간의 분석 및 활용 효과를 증대시킨다.

Abstract AI-Helper 아이콘AI-Helper

A purpose of the object-oriented programming is to promote reuse and development time, and to improve software quality. A way for this purpose is using a design information well-defined and tested in previous time when developing software. Such design information is called design patterns. The desig...

주제어

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • 이를 위해 사용되는 디자인 패턴은 객체지향 프로그래밍을 위해 정의된 GoF패턴[5]를 이용한다. 또한 이 논문은 디자인 패턴 요소를 어플리케이션 구현시 자동적으로 적용시키기 위한 기법에 집중한다. 이를 통해 어플리케이션 내부에 구체화된 디자인 패턴정보는 일관된 형태로 유지되고, 이들간의 분석 및 활용의 효율성을 증가시킴으로써, 개발자들에게 보다 효율적인 패턴지향 개발환경을 제공할 수 있다.
  • 통해 소스코드를 자동생성하거나 디자인 패턴 활용방법에서 소스코드를 생성하는 과정에서 나타난다. 논문에서의 디자인 패턴에 대한 소스코드 자동생성은 XML문서로 관리되는 디자인 패턴 문서로부터 어떠한 방법을 통해 효율적으로 소스코드를 생성하고 관리하는가에 목적이 있다. 이에 기존에 제시되는 디자인 패턴 활용방법들과의 비교를 통해 얻어진 결과는 <표 1>과 같다.
  • 이러한 문제를 해결하기 위해 본 연구에서는 어플리케이션 개발 시 디자인 패턴의 요소를 효율적으로 구체화시키기 위해 소스코드에 디자인 패턴을 적용하는 기법을 제시하고 어플리케이션 내부에 적용되는 패턴들간의 구체화 정보를 분석하고 활용하기 위한 방법을 보인다. 논문은 객체지향 프로그램을 대상으로 디자인 패턴을 적용하는 자동화 기법을 제시하고 있다. 이를 위해 사용되는 디자인 패턴은 객체지향 프로그래밍을 위해 정의된 GoF패턴[5]를 이용한다.
  • 번째 디자인 패턴을 XML 문서로 변화하여 저장하고 관리하는 부분은[19]을 통해 제시하였다. 본 연구는 (그림 2)에서 점선으로 둘러싸인 부분으로 디자인 패턴 정보를 이용해 소스코드 자동 생성과 관련된 기법을 제시하고, 어플리케이션 분석 및 유지보수를 위한 기능을 다루는데 있다. 이 과정에 필요한 구성요소는 다음과 같다.
  • 이렇게 생성된 소스코드는 요구사항과 어플리케이션 명세 제약사항을 테스팅 함으로써 정확성을 검증한다. 본 연구는 개발단계에서 설계 단계에 적용된 패턴 정보로부터 소스코드를 자동생성하기 위해 필요한 기법을 다룬다.
  • 이 단계에서는 (그림 7)의 적용단계의 2와 3에 해당되는 부분으로, 어플리케이션에 추가하고자 하는 디자인 패턴 정보를 이용해서 각 클래스에 적절한 역할 정보를 추가하는데 그 목적이 있다.
  • Stephen[10]는 디자인 패턴을 이용해 소프트웨어 컴포넌트를 통합시키기 위한 방법을 연구하였다. 이 방법은 디자인 패턴 정보를 이용하여 어플리케이션에 사용되는 컴포넌트들을 효율적으로 통합하고자 하는 목적으로 연구되었다. 그러나 디자인패턴을 이용해 컴포넌트 래퍼 클래스를 생성하는데 목적을 가지고 있기 때문에 생성된 디자인 패턴들간의 관계나 관리측면에서 미흡하다.
  • 각 구성단계에 수행 예는 KidList[9]를 사용한다. 이 예는 Clear와 Copy를 위한 두 버튼과 두 개의 리스트박스와 텍스트 필드로 구성되어 있으며, 디자인 패턴들 중 Mediator Pattern[5]과 Command Pattern[5]의 활용성을 보여주기 위해 사용된 예이다.
  • 이러한 패턴들에 대해 소개한 책들 중 가장 넓게 활용되는 것은 "Design Patterns : Reusable Object-Oriented Software"이다[5]. 이 책에서는 객체지향 시스템에서 유용하게 사용 가능한 23가지의 디자인 패턴을 소개하고 있다. 여기에 정의된 패턴들은 GoF패턴으로 불러진다.
  • 그러나 이러한 디자인 패턴은 문제 해결에 대한 추상적인 정보를 기술하고 있기 때문에 어플리케이션 내에 구체화될 때 개발자의 의도에 따라 다양한 형태로 변형되어지고, 또한 적용된 디자인 패턴은 적절하게 분석되거나 표현되기가 어렵다. 이러한 문제를 해결하기 위해 본 연구에서는 어플리케이션 개발 시 디자인 패턴의 요소를 효율적으로 구체화시키기 위해 소스코드에 디자인 패턴을 적용하는 기법을 제시하고 어플리케이션 내부에 적용되는 패턴들간의 구체화 정보를 분석하고 활용하기 위한 방법을 보인다. 본 논문은 객체지향 프로그램을 대상으로 디자인 패턴을 적용하는 자동화 기법을 제시하고 있다.

가설 설정

  • 1) 하나의 어플리케이션은 다수의 패턴을 포함한다.
  • 1) 하나의 어플리케이션은 다수의 패턴을 포함할 수 있다.
  • Application = { Pattern 1, Pattern 2 }

    2) 하나의 어플리케이션은 다수의 클래스의 집합으로 구성된다.

  • 3) 클래스는 어느 특정 패턴의 역할을 담당한다.
  • 3) 클래스들은 어느 특정패턴의 역할을 담당한다.
  • 4) 하나의 클래스는 하나이상의 역할을 포함할 수 있다.
  • 5) 동일한 역할이 다른 클래스에 포함될 수 있다.
본문요약 정보가 도움이 되었나요?

참고문헌 (19)

  1. A. Cornils and G. Hedin. Statically checked documentation with design patterns, Technology of Object-Oriented Languages, 2000. TOOLS 33. Proceedings. 33rd International Conference on, 2000 

  2. A. Eden, A. Yehudai and J. Gil. Precise specification and automatic application of design patterns, Automated Software Engineering, 1997, Proceedings., 12th IEEE International Conference, 1997 

  3. B. Schulz, T. Genssler, B. Mohr and W. Zimmer, On the computer aided introduction of design patterns into object-oriented systems, Technology of Object-Oriented Languages, 1998, TOOLS 27, Proceedings, 1998 

  4. C. Marcos, M. Compos, and A. Pirotte, Reifying Design Patterns as Metalevel Constructs, Electronic Journal of Sadio, 2(1) pp.17-19, 1999 

  5. E. Gamma, R Helm, R.Johnson, and J.Vlissides. Design Patterns : Elements of Reusable Object-Oriented Software. Addison-Wesley Publishing Company, Reading, Massachusetts, 1995 

  6. F. Budinsky, M. Finnie, J. Vlissides, and P. Yu. Automatic Code Generation from Design Patterns. IBM Systems Journal, 35(2), 1996 

  7. F. Buschman, R. Meunier, H. Rohnert, P. Sommerlad, and Stal Michael. Pattern-Objected Software Architecture-A System of Patterns. John Wiley & Sons, 1996 

  8. G. Florin, M. Meijers, P. V. Winsen, Tool Support for Object-Oriented Patterns, Proc. of ECOOP'97, 1997 

  9. J. Cooper. Java Design Patterns, Addison-Wesley, 2000 

  10. M. Ohtsuki, N. Yoshida, A. Makinouchi, A source code generation support system using design pattern documents based on SGML, Software Engineering Conference, 1999. (APSEC '99) Proceedings. Sixth Asia Pacific, 1999 

  11. S. Stephen, S. Yau and Ning Dong, Integration in component-based software development using design patterns, Computer Software and Applications Conference, 2000, COMPSAC 2000, The 24th Annual International, 2000 

  12. S. Yacoub, Xue, H. and Ammar, H. H., Automating the development of pattern-oriented designs for application specific software systems, pp.163-170, Application-Specific Systems and Software Engineering Technology, 2000. Proceedings. 3rd IEEE Symposium on, 2000 

  13. M. Cinneide, P. Nixon, A methodology for the automated introduction of design patterns, oftware Maintenance, 1999, (ICSM '99) Proceedings. IEEE International Conference on, 1999 

  14. M. Claudia, C. Marcelo, P. Alain. Reifying Design Patterns as Metalevel Constructs. Electronic Journal of SADIO Vol.2, No.1, pp.17-29, 1999 

  15. M. Sefika, A. Sane, and R. Campbell. Monitoring Compliance of a Software System with its high-Level Design Models. Proceedings of the 18th International Conference of Software Engineering, ICSE '96, Berlin, Germany, March, 1996 

  16. M. Sherif, Yacoub and Heany H. Ammar Pattern-oriented analysis and design (POAD) : a structural composition approach to glue design patterns, Technology of Object-Oriented Languages and Systems, 2000, TOOLS 34, Proceedings. 34th International Conference on, 2000 

  17. W. Tichy, Essential Software Design Patterns. University of Karsruhe, http://wwwipd.ira.uka.de/~tichy/patterns/over view.html. 1997 

  18. W. Vanderperren, B. Wydaeghe, Towards a new component composition process, Engineering of Computer Based Systems, 2001, ECBS 2001, Proceedings. Eighth Annual IEEE International Conference and Workshop on the, 2001 

  19. 김운용, 김영철, 최영근, '코드 자동 생성을 위한 XML 기반의 효율적인 디자인 패턴구조', 정보처리학회논문지D, 제8-D권 제6호, 2001 

저자의 다른 논문 :

관련 콘텐츠

오픈액세스(OA) 유형

BRONZE

출판사/학술단체 등이 한시적으로 특별한 프로모션 또는 일정기간 경과 후 접근을 허용하여, 출판사/학술단체 등의 사이트에서 이용 가능한 논문

저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로