객체지향 방법론들은 이해하기 쉽고 확장성이 우수한 모델을 제공하기 때문에 현재 크고 복잡한 소프트웨어를 개발하기 위해서 널리 사용되고 있다. 객체지향 방법론들을 개발에 적용하기 위해서는, 첫째 개발방법론으로부터 과제 특성에 맞는 개발방법을 구성해야 하며, 둘째 이로부터 개발절차를 구성하여야 한다. 그러나 현재 제시되고 있는 객체지향 방법론들에서는 개발방법과 개발절차를 구성하는 과정을 개발자들의 이해와 직관에 의존하고 있다. 이를 개선하기 위해서 본 연구에서는 변용가능한 객체지향 방법론을 제안함으로써, 개발방법 구성의 문제를 체계적으로 지원하고자 한다. 개발방법의 구성을 체계적으로 지원하기 위하여 본 연구에서는 개발방법 구성의 문제를 계획구성의 문제로 변환하여 계획구성 기법을 적용한다. 계획구성의 과정에서 개발하고자하는 소프트웨어의 구조와 특성을 기술하는 아키텍쳐를 입력으로 받아들여 이에 적합한 개발방법이 계획된다. 아키텍쳐는 소프트웨어 개발과정에서 일관되게 유지되어야 하는 결정들을 기술하기 때문에 이를 중심으로 개발방법을 구성함으로써 소프트웨어의 특성을 효율적으로 반영할 수 있다.
객체지향 방법론들은 이해하기 쉽고 확장성이 우수한 모델을 제공하기 때문에 현재 크고 복잡한 소프트웨어를 개발하기 위해서 널리 사용되고 있다. 객체지향 방법론들을 개발에 적용하기 위해서는, 첫째 개발방법론으로부터 과제 특성에 맞는 개발방법을 구성해야 하며, 둘째 이로부터 개발절차를 구성하여야 한다. 그러나 현재 제시되고 있는 객체지향 방법론들에서는 개발방법과 개발절차를 구성하는 과정을 개발자들의 이해와 직관에 의존하고 있다. 이를 개선하기 위해서 본 연구에서는 변용가능한 객체지향 방법론을 제안함으로써, 개발방법 구성의 문제를 체계적으로 지원하고자 한다. 개발방법의 구성을 체계적으로 지원하기 위하여 본 연구에서는 개발방법 구성의 문제를 계획구성의 문제로 변환하여 계획구성 기법을 적용한다. 계획구성의 과정에서 개발하고자하는 소프트웨어의 구조와 특성을 기술하는 아키텍쳐를 입력으로 받아들여 이에 적합한 개발방법이 계획된다. 아키텍쳐는 소프트웨어 개발과정에서 일관되게 유지되어야 하는 결정들을 기술하기 때문에 이를 중심으로 개발방법을 구성함으로써 소프트웨어의 특성을 효율적으로 반영할 수 있다.
Object-oriented methodologies are widely used in the development of huge and complex systems since these methodologies produce the comprehensible and extensible model of systems. In order to apply an object-oriented methodology to a software development, developers should derive a method customized ...
Object-oriented methodologies are widely used in the development of huge and complex systems since these methodologies produce the comprehensible and extensible model of systems. In order to apply an object-oriented methodology to a software development, developers should derive a method customized to a specific project from the methodology and, then, construct a development process from the method. Unfortunately, existing object-oriented methodologies lack a systematic facility for the construction of a method and a process. In this paper, we present a customizable object-oriented methodology to support the systematic derivation of a project specific method from the generic methodology. To derive a project specific method from the methodology, we transform the problem of a derivation to a planning problem and apply planning techniques. Our planning technique uses the description of an architecture that captures the structure and characteristics of a software under development as input and constructs an appropriate method with respect to the architecture. The architecture-centered construction facilitates the effective handling for the characteristics of the software since an architecture capture the decisions that must be maintained consistently during the development.
Object-oriented methodologies are widely used in the development of huge and complex systems since these methodologies produce the comprehensible and extensible model of systems. In order to apply an object-oriented methodology to a software development, developers should derive a method customized to a specific project from the methodology and, then, construct a development process from the method. Unfortunately, existing object-oriented methodologies lack a systematic facility for the construction of a method and a process. In this paper, we present a customizable object-oriented methodology to support the systematic derivation of a project specific method from the generic methodology. To derive a project specific method from the methodology, we transform the problem of a derivation to a planning problem and apply planning techniques. Our planning technique uses the description of an architecture that captures the structure and characteristics of a software under development as input and constructs an appropriate method with respect to the architecture. The architecture-centered construction facilitates the effective handling for the characteristics of the software since an architecture capture the decisions that must be maintained consistently during the development.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
계획의 목적은 주어진 '사용자의 요구'를 만족하는 시스템에 대한 '설계'를 얻는 것이다.
둘째, 응용분야의 경험과 유용한 전략을 명시적으로 기록하여 활용하는 방안을 제공하는 것이다. 현재 응용분야의 지식을 표현하기 위한 방안으로는 거시적 시각을 제공하는 아키텍쳐 스타일[1-4, 8]과 미시적 시각을 제공하는 패턴[9-11]이 대표적이라 할 수 있다.
병렬 관점에서는 논리적 관점에서 제시된 정적 구조의 구성요소들이 수행시간에 갖게 될 제어 구조와 이들 간의 관계를 정의한다. 또한, 구성 요소의 영구성(persistency)에 대해서 기술한다. 기술된 병렬 관점은 '시스템 설계' 단계의 전술적 결정에 적용된다.
본 연구는 이러한 상황을 개선하기 위해서 변용가능한 객체지향 방법론(customizable object-oriented methodology)을 제안하고 이로부터 개발방법을 구성하는 체계적인 방안을 고안함으로써 작업 1을 명시적으로 지원하고자 한다. 이를 위하여 변용가능한 객체지향 방법론에서는 개발방법의 구성 문제를 계획구성(planning)[5]의 문제로 변환한다; 계획구성이란 주어진 목표를 획득하기 위해서 가능한 작업들의 순서를 계획하는 것을 말한다.
본 연구에서는 객체지향 개발방법론의 적용을 지원하기 위해서 변용가능한 객체지향 방법론을 제시하였다.
본 연구에서는 이러한 두가지 주요한 문제들을 해결하기 위해서 아키텍쳐를 토대로 객체지향 개발 방법을 체계적으로 구성하는 방안을 제안한다. 즉 아키텍쳐를 통하여 개발하고자 하는 소프트웨어의 제약사항들과 특성들이 기술되면, 이를 반영하여 다양한 경험들과 유용한 전략들을 선택하여 일관성있게 통합함으로써 응용분야에 적합한 새로운 개발방법을 구성토록 하는 것이다.
작업들은 작업을 수행하기 위한 조건과 수행된 다음의 결과로 구성된다. 이러한 작업들에 대해서 부과된 제약사항들을 위반하지 않으며 최종 결과가 목표가 만족될수있도록 진행될 순서를 얻고자 하는 것이다. 본 연구에서는 계획구성 문제의 목표로서 개발하고자 하는 소프트웨어의 아키텍처가 사용된다.
가설 설정
1) 시스템 설계: 상위 수준의 전략이 수립된다. 시스템 설계 단계에서 결정된 사항들은 이후 시스템 전반에 대해서 폭넓은 영향을 끼치며, 일관되게 유지된다.
2) 객체 설계: 구현의 바탕을 제공하기 위해서 객체들에 대한 세부 사항들이 결정된다
• 메타 개발방법을 구성하고 있는 개발작업들은 계획구성 문제의 작업들에 대응한다.
한다. 첫째, 구체성과 일반성 사이에서 균형을 유지하는 것이다. 개발방법은 효율적인 개발을 위해서는 응용 분야의 특성에 맞는 개발 전략을 제시하는 것이 바람직하다.
제안 방법
이러한 방식의 대표적인 예로서 GRAPPLE가 있다[14]. GRAPPLE은 본 연구에서와 같이 개발작업들을 계획구성의 문제로 기술한 첫번째 연구로서 이를 통해서 개발작업들 간의 논리적 상관관계를 자연스럽게 기술하고 이들을 토대로 개발절차를 구성할 수 있도록 했다. [14]에서는 GRAPPLE을 적용한 경험을 토대로 각 산출물들의 내부 구조, 현재 속성 그리고 외부 의존성을 명확히 파악하는 것이 중요함을 보였다.
이렇게 정련된 목표들은 계획구성자의 입력으로 사용되어 개발방법을 구성한다. 구체적으로, 예측자는 위험을 예측하기 위해서 제시된 아키텍쳐에서 드러난 측면들을 관찰함으로써 실패 예보자(failure predictors)를 발견하고 이를 해소하기위한 하위목표들을 설정한다.
본 연구에서는 개발방법 구성의 문제를 계획구성의 문제로 변환하고 이를 기존의 계획구성 기법을 적용함으로써 해결한다.
일반적인 구성을 일컫는다[3]. 본 연구에서는 개발방법을 구성하기 위한 입력으로서 아키텍쳐를 사용한다.
본 연구에서는 개발방법을 구성하는 과정을 계획구성 문제의 한 경우로 변환한다. 이로서 기존의 계획구성에 관한 연구들과 도구를 적용할 수 있다.
본 연구의 적용 예제로서 MODE (Multimedia Object-Oriented Development) 방법론을 변용 가능한 객체지향 방법론으로 재구성하는 작업을 진행하였다.
본 연구의 핵심은 객체지향 개발방법의 구성을 계획 구성으로 변환하여 기존의 계획구성 기법을 적용함으로써 해결함에 있다.
앞서 언급되었듯이 본 연구에서는 계획구성 과정에서 예측 후 회피 접근방법을 따른다. 따라서 획득되어야 할 목표들 뿐 아니라 실패를 유발할 위험에 대해서도 명시적으로 기술되어 예측할 수 있어야 한다.
적합한 개발방법을 계획한다. 이를 위하여 개발방법 구성의 문제를 계획구성의 문제로 변환하는 기법을 제안하였다. 또한, 계획구성 과정에서 적용될 작업들을 기술하기 위해서 개발작업 기술방법인 메타 개발방법을 정의하였다.
제시된 방법론에서는 개발하고자하는 소프트웨어의 구조와 특성을 기술하는 아키텍쳐를 입력으로 받아들여 이에 적합한 개발방법을 계획한다. 이를 위하여 개발방법 구성의 문제를 계획구성의 문제로 변환하는 기법을 제안하였다.
물리적인 배치를 기술한다. 즉, 시스템을 구성하는 노드들의 관계와 노드에 배치되는 구성요소들에 대해서 기술함으로써 병렬 관점에서 정의된 제어 구조적 측면을 물리적으로 구체화 한다. 기술된 물리적 관점 또한 병렬 관점과 동일하게 '시스템 설계' 단계의 전술적 결정에 적용된다.
지원 도구에서 ucpop는 ADL로 기술된 작업들의 순서를 하위목표에 대해서 계획을 구성한다. 지원 도구의 계획구성자는 메타 개발방법의 계층구조를 따라서 목표를 분할하여 하위목표들을 설정하고 ucpop를 사용하여 각각에 대한 계획을 구성하고자 시도한다. 앞서 언급되었듯이 메타 개발방법을 구성하는 개발작업들은 계획구성 문제의 작업들의 집합에 대응하여 ADL로 기술되게 된다.
이론/모형
이를 위하여 개발방법 구성의 문제를 계획구성의 문제로 변환하는 기법을 제안하였다. 또한, 계획구성 과정에서 적용될 작업들을 기술하기 위해서 개발작업 기술방법인 메타 개발방법을 정의하였다. 이러한 변용가능한 객체지향 방법론을 적용함으로써 기존의 개발자의 이해와 직관에 의존하던 개발방법의 구성을 체계적으로 지원하고 구성을 위한 노력을 감소시킬 수 있을 것이다.
계획구성자(planner)가 있어야 한다. 본 연구에서 계획구성자는 규칙 기반 접근방법(rule-based appro-ach[17]을 따른다. 즉, 메타 개발방법의 개발작업들은 계획을 구성하기 위한 일련의 규칙들로 사용되며, 계획구성자는 이들을 아키텍쳐에 의해서 주어진 제약조건과 목표에 따라 해석하게 된다.
본 연구에서는 계획구성에 대한 접근방법의 하나인 예측 후 회피 접근방법(anticipate and avoid approach)[15]을 따른다. 예측 후 회피 접근방법은 1) 문제를 해결하기 위한 목표들을 인식하고 이를 위한 작업들을 계획하며, 이 과정에서 2) 작업을 수행하는 과정에서 발생할 수 있는 위험들을 예측하여 이들을 회피하기 위한 작업들을 추가한다.
제시된 방안에 따라서 개발방법을 구성하기 위해서 본 연구에서는 계획문제를 기술하기 위한 기반 언어로서 action description language]ADL) [18]을 사용한다.
성능/효과
아키텍쳐 간의 관계를 관찰하여야 한다. 메타 개발방법을 구성하는 4단계 즉, 요구사항 정의, 분석, 시스템설계 및 객체 설계를 관찰하면 요구사항 정의는 아키텍쳐에 구애됨 없이 진행됨을 알 수 있다. 이는 요구사항 정의는 사용자 관점으로 진행되는 작업으로서 어떠한 사항들을 결정하기보다는 정의하는 과정이기 때문이다.
기술한다. 이들을 종합해서 관찰하면 개발작업 construct-class-model은 클래스 테이블(class table) 과액티비티 다이어그램(activity diagram)을 받아들여 이로부터 클래스 다이어그램(class diagramX 생성함을 알 수 있다.
후속연구
또한, 계획구성 과정에서 적용될 작업들을 기술하기 위해서 개발작업 기술방법인 메타 개발방법을 정의하였다. 이러한 변용가능한 객체지향 방법론을 적용함으로써 기존의 개발자의 이해와 직관에 의존하던 개발방법의 구성을 체계적으로 지원하고 구성을 위한 노력을 감소시킬 수 있을 것이다. 이러한 장점들은 응용분야의 특성에 적합한 개발방법의 구성 및 적용을 촉진하여 객체지향 개발방법론의 확산을 도울것이다.
이러한 장점들은 응용분야의 특성에 적합한 개발방법의 구성 및 적용을 촉진하여 객체지향 개발방법론의 확산을 도울것이다. 이후 지원 도구를 완성함으로써 MODE 방법론을 변용가능한 방법론으로 구축, 이를 실 문제에 적용할 수 있을 것이다
향후 연구 방향으로 개발방법 구성의 다음 단계인 개발절차 구성과의 연계가 연구되어야 할 것이다. 개발절차의 구성을 위해서는 개발을 수행할 조직과 개발될 시스템의 규모 및 특성이 고려되어야 함으로 보다 다양한 요소들이 계획구성을 위해서 요구된다.
참고문헌 (22)
G. Booch, Object-Oriented Analysis and Design with Applications, Benjamin/Cummings Publishing Company, Inc., 1994
H. Eriksson and M. Penker, UML Toolkit, Addison-Wesley, 1998
J. Rumbaugh, M. Blaha, W. Premerlani, R. Eddy, and W. Lorensen, Object-Oriented Modeling and Design, Prentice Hall, 1991
I. Jacobson, M. Christerson, P. Jonsson, and G. Overgaard, Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley, 1992
P. H. Winston, 'Chapter 15. Planning,' Artificial Intelligence, Addison-Wesley, 1992
J. Siegel, CORBA Fundamentals and Programming, John Wiley & Sons, Inc., 1996
T. J. Mowbray and R. C. Malveau, CORBA Design Patterns, John Wiley & Sons, Inc., 1997
P. Kruchten, 'The 4+1 View Model of Architecture,' in IEEE Softeware, Nov., 1995
W. J. Brown, R. C. Malveau, and H. W. McCormick III, and T. J. .Mowbray, AntiPatterns: Refactoring Software, Architectures and Projects in Crisis, John Wiley & Sons, Inc., 1998
M. Folwer, Analysis Patterns: Reusable Object Models, Addison Wesley, 1997
E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995
B. Curtis, M. I. Keller, and J. Over, 'Process Modeling,' In Comm. of the ACM, Sept., 1992
S. Y. Min, H. D. Lee, and D. H. Bae, 'SoftPM: A Software Project Management System Reconciling Formalism with Easiness,' Information and Software Technology, to be published in 1999
K. E. Huff and V. R. Lessor. 'A plan-based intelligent assistant that supports the software development process,' In Proc. of the Third Software Engineering Symposium on Practical Software Development Environments, 1989
C. K. Riesbeck and R. C. Schank, Inside Case-Based Reasoning, Lawrence Erlbaum Associates, Inc., 1989
E. P. D. Pednault, 'ADL: Exploring the middle ground between strips and the situation calculus,' In Proceedings Knowledge Representation Conference, 1989
D. McDermott, 'Regression planning,' In International Journal of Intelligent Systems, vol. 6, 1991
A. Barrett, K. Golden, S. Penberthy, and D. Weld. UCPOP User's Manual/version 2.0), Technical Report 93-09-06, 1994
J. S. Penberthy and D. S. Weld, 'UCPOP: A Sound, Complete, Partial Order Planner for ADL,' In proceedings of 3rd International Conference on Knowledge Representation and Reasoning, Oct., 1992
J. G. Carbonell, C. A. Knoblock, and S. Minton, 'Prodigy: An integrated architecture for planning and learning,' In Architectures for Intelligence, Erlbaum, 1990
※ AI-Helper는 부적절한 답변을 할 수 있습니다.