Abstract
Product-line engineering is a dreaming goal in software engineering research. Unfortunately, the current underlying technologies do not seem to be still not much matured enough to make it viable in the industry. Based on our experiences in working on mobile telephony systems over 3 years, now we are in the course of developing an approach to product-line engineering for mobile telephony system software. In this paper, the experiences are shared together with our research motivation and idea. Consequently, we propose an approach to building and maintaining telephony application logics from the perspective of scenes. As a Domain-Specific Language(DSL), Menu Navigation Viewpoint(MNV) DSL is designed to deal with the problem domain of telephony applications. The functional requirements on how a set of telephony application logics are configured can be so various depending on manufacturer, product concept, service carrier, and so on. However, there is a commonality that all of the currently used telephony application logics can be generally described from the point of user's view, with a set of functional features that can be combinatorially synthesized from typical telephony services(i.e. voice/video telephony, CBS/SMS/MMS, address book, data connection, camera/multimedia, web browsing, etc.), and their possible connectivity. MNV DSL description acts as a backbone software architecture based on which the other types of telephony application logics are placed and aligned to work together globally.
현대의 소프트웨어공학 관련 연구 중에서, 산업계가 궁극적으로 추구하는 수준의 생산성을 제공할 수 있는 기술은 아마도 프로덕트라인 공학이 될 것이다. 지금까지의 소프트웨어공학 기술로는 소프트웨어 개발 분야에 프로덕트라인 기법을 실질적이고 실용적으로 적용하기에는 아직 충분히 성숙하지 못한 것이 사실이다. 본 논문에서는 저자가 산업체에서 접한 과거 3년 동안의 PDA 스마트폰 개발 경험을 바탕으로 실용적 수준의 프로덕트라인 기법을 Model-Driven Architecture(MDA) 접근 방법을 통해 제안한다. 이동 단말 시스템의 경우 단말기 제조사, 목적 사용자 층, 이동 단말 사업자 등에 따라 다양한 형태의 소프트웨어가 존재한다. 특히, 최근에는 단말기 사용자가 직접 느낄 수 있는 지원 기능 구성 및 인터페이스 형식은 매우 다양한 형태가 존재하며, 같은 제조사에 시리즈 제품으로 개발하더라도 이 부분에 대한 변이성이 매우 큰 특징이 있다. 하지만, 전형적인 폰 관련 기능 모듈 즉, 음성호 및 화상전화 기능, 메시지, 주소록, 데이터통신, 카메라 및 멀티미디어 기능, 웹 브라우징 과 같은 큰 기능 묶음에 대한 피처(Feature)들은 자체의 다양한 기능적 요구사항과 함께 피처 간 상호 연관성을 크고 다양한 형태로 구성될 수 있는 특성이 있다. 본 논문에서는 이동 단말기에서 구현해야 하는 다양한 형태의 사용자 소프트웨어의 요구사항에 대해 사용 시나리오 상에서 구분 가능하고 의미 있는 장면의 연속 관계로 정의하여 추후 설계, 구현, 시험 단계에서도 소프트웨어 아키텍쳐 역할을 할 수 있는 개발 기법을 제안한다. 따라서, 요구분석 단계에서도 사용자 인터페이스 관점에서 전반적인 소프트웨어 아키텍쳐에 대해 검증할 수 있게 될 뿐만 아니라 소프트웨어 개발 주기 전 과정에서 그 구조를 사용자 인터페이스 관점에서 유지, 관리 할 수 있는 핵심적인 방법을 제공한다.