유전자 알고리즘을 이용한 품질 속성 기반의 동적 소프트웨어 아키텍처 선택
Quality-based Dynamic Software Architecture Selection Using Genetic Algorithms
- 주제(키워드) Software Architecture , Genetic Algorithms , Quality Attributes
- 발행기관 서강대학교 일반대학원
- 지도교수 박수용
- 발행년도 2010
- 학위수여년월 2010. 8
- 학위명 박사
- 학과 및 전공 일반대학원 컴퓨터공학과
- 실제URI http://www.dcollection.net/handler/sogang/000000046221
- 본문언어 영어
초록/요약
Computing environments are shifting from traditional models such as client-server and desktop computing to new models such as smart phones, tablet PCs, and robotic systems. Recently, many IT companies, including Google and Apple, have been striving to launch new computing devices such as the Nexus One, iPad, and iPhone. In addition, they are providing new platforms such as the Android OS and iOS, as well as open software markets (e.g., the Android Market and AppStore) to support those devices. This motivates people to develop various software applications. These applications, executed in new computing environments, are inevitably exposed to various situations. These situations influence the quality of service that the applications provide. In addition to situations, the quality requirements of users are changing continuously. Different users require different quality of service in different situations. For example, a user may require higher level of usability while another user thinks that performance is more important than usability for the same application. These quality requirements can be changed during execution. Therefore, software applications should consider changing quality requirements at runtime. To meet users' changing quality requirements in various situations, software systems must adapt their architectural configuration at run-time. Traditional approaches to dynamic architecture reconfiguration have focused on intuitive, manual, or case-based techniques. However, these approaches are not effective when the software system has a large number of candidate architectural instances and encounters many different situations. In other words, an automated architecture selection method must be introduced if the software system has to choose a near-optimal architecture from a large number of alternative architectures. To solve the abovementioned problem, this paper presents a novel approach to dynamically select a software architecture, in which quality requirements and situations change at runtime. This approach is designed on the basis of a three-layered structure for dynamic reconfiguration. In this approach, quality variables are introduced to maintain quality requirements obtained from users, and the utility function is defined to evaluate the effectiveness of the software architecture being executed at a given point in time. In addition, this approach provides situation variables, which represent the current operating environment, and the situation evaluation function, which is used to assess the influence of the situation variables to quality attributes. The approach includes architecture decision variables, which are used to manage a large number of architectural instances. In addition, a genetic algorithm is adopted to select the most appropriate architectural instance based on changing quality requirements and situations. The softgoal interdependency graph is introduced to facilitate the interaction among quality variables, genetic algorithm-based architecture selection method, and architecture decision variables. To verify the effectiveness and efficiency of the proposed approach, experiments are performed on the basis of open software architecture documents. The results of the experiments show that the proposed approach efficiently searches for the most appropriate architectural instance as the quality requirements and situations change.
more초록/요약
기존의 데스크탑과 서버 중심의 컴퓨팅 환경이, 최근에는 스마트 폰, 태블릿 PC, 로봇등과 같은 다양한 환경 요소에 노출된 운용 환경으로 변화하고 있다. 최근, Google과 Apple등을 포함한 다양한 소프트웨어 기업들이 자신들의 새로운 컴퓨팅 기기들을 (Nexus One 또는 Apple iPhone, iPad 등과 같은) 출시하고 그것에 대한 공개 시장을 (Android Market 또는 AppStore와 같은) 제공하며 다양한 응용 소프트웨어의 개발을 촉진하고 있다. 새로운 컴퓨팅 환경에서 실행되는 응용 소프트웨어는 필연적으로 다양한 상황 변화에 노출된다. 다양한 상황 변화들은 소프트웨어가 제공하는 서비스의 품질에 영향을 준다. 또한, 같은 상황에서도 사용자의 요구사항은 다양하게 변화할 수 있다. 사용자의 요구사항과 운용 환경 변화에 따른 서비스의 품질을 유지하기 위해서는 소프트웨어가 상황 변화와 요구사항 변화에 따라 동적으로 그 구조를 변경해야 한다. 현재까지의 접근 방법은 개발자가 소프트웨어의 아키텍처를 직관적으로 그 변화에 맞게 조정했다. 그러나 이런 과정은 소프트웨어가 매우 다양한 상황 변화에 직면하거나 해당 소프트웨어가 많은 숫자의 아키텍처의 변이를 갖고 있을 경우 적용이 어렵다. 다시 말해, 상황 변화와 아키텍처 변이의 조합의 숫자가 많은 경우에는 수동적인 방법은 실질적으로 적용하기 어렵다. 위와 같은 문제점을 해결하기 위해 본 논문은 변화하는 요구사항과 상황에 대응할 수 있는 아키텍처 선택 방법을 제안한다. 삼계층 구조에 기반한 이 방법은 사용자의 품질 요구사항을 관리하기 위해 품질 변수, 효용 함수를 도입하고, 상화 변화를 관리하기 위해 상황 변수와 상황 평가 함수를 제안한다. 아키텍처 구조를 관리하기 위해서 아키텍처 결정 변수가 제안되었으며, 상황 변화 및 품질 요구사항 변화에 따른 아키텍처 선택을 위해서는 유전자 알고리즘 기반의 아키텍처 탐색 방법을 제안하였다. 각각의 요소를 유기적으로 연결하기 위해 소프트골 상호의존 그래프 (softgoal interdependency graph)를 이용하였다. 본 논문이 제안한 방법의 유효성과 효율성을 검증하기 위해 공개 소프트웨어 아키텍처 문서를 기초로 실험하여 그 효과를 검증하였다. 그 결과 본 논문이 제안하는 방법이 소프트웨어 아키텍처 선택 문제에 있어서 효율적으로 아키텍처를 탐색하고 (근사) 최적의 아키텍처 형상을 선택할 수 있음을 보였다.
more

