<35312DC1B6C0BABCF72DBEC8B5E5B7CEC0CCB5E520B1E2B9DD20B8F0B9D9C0CF20B0A1BAAFBCBA20BCB3B0E820B9D720B1B8C7F62E687770>

Similar documents
Microsoft PowerPoint App Fundamentals[Part1](1.0h).pptx

서현수

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

<30345FBCDBC4A1BEE72DB5BFC0FB20B8F0B9D9C0CF20C0A520BCADBAF1BDBAB8A62E687770>

°í¼®ÁÖ Ãâ·Â

<353420B1C7B9CCB6F52DC1F5B0ADC7F6BDC7C0BB20C0CCBFEBC7D120BEC6B5BFB1B3C0B0C7C1B7CEB1D7B7A52E687770>

<343720B1E8C3B6C1F82DB8F0B9D9C0CF20C5ACB6F3BFECB5E520BCADBAF1BDBA2E687770>

Microsoft PowerPoint App Fundamentals[Part1].pptx

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

<31362DB1E8C7FDBFF82DC0FABFB9BBEA20B5B6B8B3BFB5C8ADC0C720B1B8C0FC20B8B6C4C9C6C32E687770>

Journal of Educational Innovation Research 2017, Vol. 27, No. 2, pp DOI: : Researc

THE TITLE

<31325FB1E8B0E6BCBA2E687770>

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6),

3. 클라우드 컴퓨팅 상호 운용성 기반의 서비스 평가 방법론 개발.hwp

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Dec.; 27(12),

<35335FBCDBC7D1C1A42DB8E2B8AEBDBAC5CDC0C720C0FCB1E2C0FB20C6AFBCBA20BAD0BCAE2E687770>

인문사회과학기술융합학회

#유한표지F

04서종철fig.6(121~131)ok

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Feb.; 29(2), IS

<333820B1E8C8AFBFEB2D5A B8A620C0CCBFEBC7D120BDC7BFDC20C0A7C4A1C3DFC1A42E687770>

(JBE Vol. 21, No. 1, January 2016) (Regular Paper) 21 1, (JBE Vol. 21, No. 1, January 2016) ISSN 228

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Mar.; 28(3),

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

<343920B1E8C3B6C1F82DBCD2C7C1C6AEBFFEBEEE20C0E7BBE7BFEBBCBA20C7E2BBF32E687770>

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Nov.; 26(11),

1. KT 올레스퀘어 미디어파사드 콘텐츠 개발.hwp

03.Agile.key

,.,..,....,, Abstract The importance of integrated design which tries to i

30이지은.hwp

DBPIA-NURIMEDIA

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE. vol. 29, no. 10, Oct ,,. 0.5 %.., cm mm FR4 (ε r =4.4)

45-51 ¹Ú¼ø¸¸

학습영역의 Taxonomy에 기초한 CD-ROM Title의 효과분석

11 함범철.hwp

슬라이드 1

PowerPoint Presentation

SchoolNet튜토리얼.PDF

디지털포렌식학회 논문양식

Microsoft PowerPoint App Fundamentals[Part2].pptx

À±½Â¿í Ãâ·Â

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

13 Who am I? R&D, Product Development Manager / Smart Worker Visualization SW SW KAIST Software Engineering Computer Engineering 3

10 이지훈KICS hwp

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

09오충원(613~623)

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

DBPIA-NURIMEDIA

gnu-lee-oop-kor-lec06-3-chap7

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint Android-구조.애플리케이션 기초(1.0h).pptx

<313920C0CCB1E2BFF82E687770>

09권오설_ok.hwp

DBPIA-NURIMEDIA

<30362E20C6EDC1FD2DB0EDBFB5B4EBB4D420BCF6C1A42E687770>

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Mar.; 25(3),

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI: 3 * The Effect of H

DBPIA-NURIMEDIA

untitled

<312E D65B8A620C0CCBFEBC7D120B8D6C6BCC7C3B7A7C6FB20C1F6BFF820BEC6C5B0C5D8C3B320C7A5C7F628BCF6C1A4292E687770>

제목

12권2호내지합침

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

PowerPoint Presentation

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

UML

Main Title

Journal of Educational Innovation Research 2018, Vol. 28, No. 3, pp DOI: NCS : * A Study on

06_ÀÌÀçÈÆ¿Ü0926

Service-Oriented Architecture Copyright Tmax Soft 2005

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

04-다시_고속철도61~80p

Journal of Educational Innovation Research 2018, Vol. 28, No. 4, pp DOI: A Study on Organizi

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

09È«¼®¿µ 5~152s

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

06_À̼º»ó_0929

<332EC0E5B3B2B0E62E687770>

MVVM 패턴의 이해

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

PowerPoint Presentation

<5B D B3E220C1A634B1C720C1A632C8A320B3EDB9AEC1F628C3D6C1BE292E687770>

PowerPoint 프레젠테이션

<33365FB1E8C3B6C1F82DB8F0B9D9C0CF20B0E1C1A6C0C720BDC5B7DABCBA2E687770>

Frama-C/JESSIS 사용법 소개

<B1B3B9DFBFF83330B1C7C1A631C8A35FC6EDC1FDBABB5FC7D5BABB362E687770>

thesis

: 4 2. : (KSVD) 4 3. :

02양은용

, N-. N- DLNA(Digital Living Network Alliance).,. DLNA DLNA. DLNA,, UPnP, IPv4, HTTP DLNA. DLNA, DLNA [1]. DLNA DLNA DLNA., [2]. DLNA UPnP. DLNA DLNA.

정보기술응용학회 발표

264 축되어 있으나, 과거의 경우 결측치가 있거나 폐기물 발생 량 집계방법이 용적기준에서 중량기준으로 변경되어 자료 를 활용하는데 제한이 있었다. 또한 1995년부터 쓰레기 종 량제가 도입되어 생활폐기물 발생량이 이를 기점으로 크 게 줄어들었다. 그러므로 1996년부

Journal of Educational Innovation Research 2016, Vol. 26, No. 3, pp DOI: Awareness, Supports

12È«±â¼±¿Ü339~370

01( ) SAV12-04.hwp

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Jun.; 27(6),

Journal of Educational Innovation Research 2017, Vol. 27, No. 4, pp DOI: * A Study on Teache

<C1B6BBE7BFACB1B D303428B1E8BEF0BEC B8F1C2F7292E687770>

Cisco FirePOWER 호환성 가이드

Transcription:

Journal of the Korea Academia-Industrial cooperation Society Vol. 13, No. 5 pp. 2338-2346, 2012 http://dx.doi.org/10.5762/kais.2012.13.5.2338 안드로이드기반모바일가변성설계및구현 김철진 1, 조은숙 2* 1 인하공업전문대학컴퓨터시스템과, 2 서일대학컴퓨터소프트웨어과 A Design and Implementation of Mobile Variability based on Android Chul-Jin Kim 1 and Eun-Sook Cho 2* 1 Dept. of Computer System, Inha Technical College 2 Dept. of Computer Software, Seoil University 요약향후모바일어플리케이션규모는커질것으로예상되며이에따라다른모바일어플리케이션과또는서버와의결합도가커질것이다. 모바일어플리케이션규모의증가는가변성을위한예측설계가수반되어야함을의미한다. 현재모바일어플리케이션변경이발생할경우어플리케이션전체를재설치해야한다. 그러나이러한재설치는결합도가큰어플리케이션인경우부작용 (Side-Effect) 이발생할가능성이높다. 따라서본논문에서는안드로이드플랫폼기반에서어플리케이션가변성에대해설계할수있는기법을제안한다. 이러한모바일가변성기법은선택기법과플러그인기법으로구분한다. Abstract According to the size of mobile applications has been expanded, the coupling of among mobile applications or servers also will be growing. The growth of mobile application s size means that predicting design for variability should be involved. If mobile application s change is occurred, application should be reinstalled totally. However this reinstallation can raise side-effects in case of high-coupling applications. Therefore, this paper proposes a technique of designing variability for mobile applications in android platform. Proposed technique is separated into selection technique and plug-in technique. Key Words : Mobile Application, Variability, Variability Design, Android 1. 서론 그림 1에나타난것처럼어플리케이션의시장규모가 2009년다운로드회수가 2,516 million에서 2013년 21,646 million을크게증가할것으로예상한다 [1,2]. 이렇게폭발적으로증가하는모바일어플리케이션들은그림 2의 (1) 과같이대부분독자적으로운영되고있는스탠드얼론 (Stand Alone) 어플리케이션이지만, 그림 2의 (2) 와같이앞으로어플리케이션들간의또는서버와의관계를통해결합도가높아질것으로예상할수있다. 이러한결합도의증가는어플리케이션의변경에따른오류를발생시킬수있는부작용을안고있다. 따라서어플리케이 션을효과적으로변경하기위한체계및기법이필요하다 [3,4]. [ 그림 1] 모바일앱다운로드 ( 참조 :Gartner) [Fig. 1] Downloads of Mobile App. (Ref. Gartner) * Corresponding Author : Eun-Sook Cho Tel: +82-2-490-7562 email: escho@seoil.ac.kr 접수일 12 년 04 월 23 일수정일 12 년 05 월 03 일게재확정일 12 년 05 월 10 일 2338

안드로이드기반모바일가변성설계및구현 본논문에서는어플리케이션을정적또는동적으로효과적으로변경하기위한모바일어플리케이션가변성기법을제안한다. 본논문에서제안하는가변성기법으로는정적 / 동적선택기법과플러그인기법으로구분하여제안한다. 본논문의구성으로 2장에서는관련연구로컴포넌트가변성과재사용프레임워크에대해설명하며, 3장에서는본논문의핵심인모바일커스터마이제이션기법을선택기법과플러그인기법으로구분하여제안한다. 4장에서는 3장에서제안한기법을실사례에적용하여적합성을검증한다. 는회원컴포넌트에서회원입력, 회원인증, 데이터베이스저장의프로세스를요구할수도있지만특정도메인에서는데이터베이스저장이아니라레거시시스템으로연동되는프로세스로요구할수있기때문에동일한회원등록에대해다른워크플로우를요구하는경우에워크플로우가변성이라고한다. 속성가변성은동일컴포넌트멤버들간에동일역할의속성이서로다른타입이나값을가지는경우속성가변성이라고한다 [5]. 예를들면동일컴포넌트에서날짜를나타내는속성이도메인의요구사항에따라스트링타입이나데이트타입으로요구할수있는데이러한경우를속성가변성이라고할수있다. [ 그림 2] 모바일어플구조 [Fig. 2] Mobile App.'s Structure 2.1 컴포넌트가변성 2. 관련연구 가변성 (Variability)[5] 은공통성 (Commonality) 과함께제품군 (Product Family)[6] 의요소로서제품군멤버들사이의차이를말한다. TV 제품군에서가변성은화면사이즈가되며, 공통성은화면분사방식이나방송파수신방식등이다. 이와같이가변성은동일기능을하는제품군의멤버들간의차이로서컴포넌트에서가변성은소프트웨어구성요소와일치하는속성, 오퍼레이션, 그리고메시지의흐름이된다. 행위가변성은동일컴포넌트멤버들간에동일기능을하는오퍼레이션이서로다른알고리즘으로기능을제공하는경우에행위가변성이라고한다. 예를들면, 은행도메인의계좌컴포넌트에서이자계산기능은은행마다존재하지만서로다른알고리즘으로기능을제공하기때문에은행마다이자계산의기능은각각다르다. 따라서이자계산은행위가변성에해당한다. 워크플로우가변성 [7] 은동일컴포넌트멤버들간에동일기능이서로다른메시지흐름을제공하는경우에워크플로우가변성이라고한다. 예를들면, 회원등록하 2.2 컴포넌트재사용프레임워크 [8,9] 컴포넌트재사용프레임워크는컴포넌트들간의통합을유연하게제공하여다양한서비스를제공할수있다 [10]. 그림 3은컴포넌트재사용프레임워크를통해컴포넌트의가변부를설계할수있음을나타낸다. 이러한가변부에대한변경은물리적으로컴포넌트코드의변경이아닌설정정보 ( 메타정보 ) 를변경함으로가능하다. 컴포넌트재사용프레임워크를구성하는주요핵심요소들은그림 4와같이가변성을담당하는가변성관리자 (Variability Manager), 동적전개기 (Hot Deployer), 설정관리자 (Configuration Manager), 리플렉터 (Reflector) 등으로구성된다. [ 그림 3] 컴포넌트재사용프레임워크 [Fig. 3] Component Reusability Framework [ 그림 4] 컴포넌트재사용프레임워크핵심요소 [Fig. 4] Core Elements of Component Reusability Framework 가변성관리자는가변부를사용할수있도록중계하는역할을하며재사용프레임워크의인터페이스역할을한 2339

한국산학기술학회논문지제 13 권제 5 호, 2012 다. 가변부를사용하는영역에의해특정가변부를호출하게되면가변성관리자는재사용프레임워크내의리플렉터, 설정관리자, 동적전개기, 자원할당기, 그리고가변성어댑터들과상호작용을통해가변부의특정기능을동적으로호출한다. 동적전개기는홈네트워크시스템내부에서가변성을제공할수없는경우시스템외부에서요구하는기능클래스를시스템내부로플러그-인시키기위한도구이다. 플러그의개념은시스템패키지내에요구하는클래스를포함하는것이아니라시스템운영환경에맞게객체가생성되는것을의미한다. 설정관리자는가변부사용영역에의해사용될가변부의메타정보를관리한다. 설정관리자는가변부의가변부식별자를통해가변부메타정보를호출하며, 이러한가변부식별자는가변부사용영역에서정의하여가변성관리기를통해설정관리자에전달한다. 가변부사용영역에서전달된가변부식별자를기반으로설정관리자는가변부의상세한가변부메타정보를얻는다. 2.3 안드포이드어플리케이션프레임워크 안드로이드의어플리케이션프레임워크는그림 4의컴포넌트재사용프레임워크처럼안드로이드플랫폼상에서모바일컴포넌트 ( 어플리케이션또는액티비티 ) 를유연하게조합하여다양한서비스를제공하기위한프레임워크이다. 그림 5에서와같이가변부에대해설정하기위해인텐트 ( 또는인텐트필터 ) 라는메타정보를이용한다. [ 그림 6] 안드로이드어플리케이션프레임워크구조 [Fig. 6] Android Application Framework's Architecture 안드로이드플랫폼상에서재사용프레임워크기능을제공하기위해어플리케이션프레임워크내의액티비티관리자 (Activity Manager) 와패키지관리자 (Package Manager) 가핵심적인역할을한다. [ 그림 5] 안드로이드어플리케이션프레임워크 [Fig. 5] Android Application Framework 리플렉터는가변부의메타정보를통해물리적인가변성어댑터나가변성클래스를호출하기위한도구로서동적으로클래스를호출할수있도록하기위해리플렉션 (Reflection) 기능을기반으로한다. 리플렉션은메타형태의클래스명 (String 타입 ) 과행위명 (String 타입 ), 그리고입력파라메터 (Object Array 타입 ) 를제공하여물리적인클래스의기능을호출할수있는메커니즘이다. 이러한리플렉션메커니즘은표준개발플랫폼 (J2EE,.NET) 에서제공되고있다. 재사용프레임워크의리플렉터는이러한메커니즘을변경하여가변부의메타정보를처리할수있는기능을제공한다. 이와같이재사용프레임워크의리플렉터는가변부클래스의다양한행위뿐만아니라다양한인터페이스의클래스를동적으로변경할수있도록한다. [ 그림 7] 컴포넌트재사용프레임워크과안드로이드재사용프레임워크간의비교 [Fig. 7] Component Reusability Framework vs Android Reusability Framework 그림 6과같이액티비티관리자는컴포넌트로부터가변적으로호출되는데이터정보를인텐트를통해전달하며, 패키지관리자는인텐트필터에정의된가변적인호출컴포넌트정보를필터링하여해당컴포넌트 ( 어플리케이션 ) 를호출한다 [5]. 인텐트필터나인텐트를변경하면액티비티관리자와패키지관리자가변경된메타정보에따라가변적으로컴포넌트를변경한다. 컴포넌트재사용프레임워크핵심요소 ([ 그림 4]) 와안드로이드어플리케이션프레임워크내의재사용구성요소간에관계는그림 7과같다. 2340

안드로이드기반모바일가변성설계및구현 가변성관리자와리플렉터는동적으로컴포넌트를연결해주므로안드로이드어플리케이션프레임워크의액티비티관리자와같은역할이다. 동적전개기와설정관리자는메타정보를관리하기위한역할을하므로패키지관리자와동일하다고할수있다. 설정정보나요구인터페이스는인텐트필터와인텐트에해당한다고할수있다. 서어플리케이션의라이프사이클을관리하거나컴포넌트를변경하기위한매커니즘을제공한다. 동적인서비스구성을위해호출컴포넌트는인텐트와인텐트필터를포함해야하며어플리케이션프레임워크는해당인텐트필터를통해서비스를선택할수있도록필터링해준다. 3. 모바일커스터마이제이션기법 안드로이드플랫폼의어플리케이션프레임워크에기반하여서비스를커스터마이제이션하기위한기법으로선택기법과플러그인기법을제안한다 [9]. 3.1 선택기법 (Selection Technique) 선택기법은모바일어플리케이션내의여러서비스컴포넌트중에하나의컴포넌트를선택하여요구하는서비스를제공하는기법이다. 선택기법은정적선택기법과동적선택기법을구분할수있다. 3.1.1 정적선택기법 (Static Selection Technique) 정적선택기법은어플리케이션내의서비스를다양하게제공할수있도록서비스실행중에컴포넌트를변경하기위한기법이다. [ 그림 9] 정적선택기법클래스다이어그램 [Fig. 9] Class Diagram of Static Selection Technique 정적선택기법을위해선택영역을가변성영역으로정의해야하며, 안드로이드플랫폼에서인텐트필터를활용하여정의할수있다. 표 1에서와같이 Action 과 Category 필터를정의할수있으며, 선택적으로호출하기위한컴포넌트들은 Category 필터에가변성식별자 ( com.app.variability _NAME ) 를정의해야한다. 또한호출되는컴포넌트들도해당가변성식별자를정의해야한다. [ 표 1] 정적선택의가변성을위한인텐트필터 [Table 1] Intent Filter for Variability of Static Selection [ 그림 8] 정적선택기법 [Fig. 8] Static Selection Technique 그림 8과같이 CallerActivity_001 컴포넌트에서선택적으로 CalleeActivity_002 나 CalleeActivity_003 컴포넌트를선택할수있다. 이러한서비스의선택은서비스사용자에의해선택되며모바일서비스실행중에변경가능하다. 안드로이드플랫폼기반의정적선택기법을위한클래스다이어그램은그림 9와같다. Application Framework 는안드로이드플랫폼상에 그림 10은표 1에대한가변성정보를안드로이드플랫폼상에서설정한설정코드이다. 그림 11과같이인텐트필터를적용하여가변성부분을동적으로선택할수있도록구현할수있다. 사용자는서비스실행중에요구하는컴포넌트를선택하여서비스를변경할수있다. 3.1.2 동적선택기법 (Dynamic Selection Technique) 동적선택기법은정적선택기법과동일하게어플리케이션내의서비스를다양하게제공할수있도록서비스실행중에컴포넌트를변경하기위한기법이다. 그러나그림 12와같이 CallerActivity_001 컴포넌트에서 CalleeActivity_002" 컴포넌트나 CalleeActivity_003 컴 2341

한국산학기술학회논문지제 13 권제 5 호, 2012 포넌트로자동으로변경되어선택된다. [ 그림 13] 동적선택기법클래스다이어그램 [Fig. 13] Class Diagram of Dynamic Selection [ 그림 10] 정적선택의가변성을위한설정 [Fig. 10] Configuration of Static Selection's Variability [ 그림 11] 정적선택기법사례 [Fig. 11] A Case of Static Selection [ 그림 14] 동적선택기법의가변성을위한설정 [Fig. 14] Configuration of Dynamic Selection's Variability [ 표 2] 동적선택기법의가변성을위한인텐트필터 [Table 2] Intent Filter for Dynamic Selection's Variability [ 그림 12] 동적선택기법 [Fig. 12] Dynamic Selection Technique 안드로이드플랫폼기반의동적선택기법을위한클래스다이어그램은그림 13과같다. 정적선택기법의구조와다르게동적선택기법은동적으로컴포넌트를선택할수있도록 Data 타입의인텐트필터를추가한다. 인텐트필터에서정의한데이터타입을요구하는컴포넌트를자동으로호출할수있도록한다. 그림 13의구조에서와같이 Activity_001 에서전달하는데이터타입이 Type1 인경우에는자동으로 Activity_003 컴포넌트를호출하며, 데이터타입이 Type2 인경우에는자동으로 Activity_002 를호출한다. 동적선택기법의가변성정의는표 2와같이인텐트필터를통해정의할수있다. 정적선택기법에추가적으로 Data 타입을추가하여동적인변경을가능하게할수있다. 데이터타입중에 String, URL, MIME 타입을지정할수있다. 안드로이드플랫폼상에서동적선택기법을위한 Manifest 코드는그림 14와같다. 1번인텐트필터는데이터타입을설정하지않았다. 이럴경우전달되는데이터가문자열 (String) 인경우해당컴포넌트를호출하도록 2342

안드로이드기반모바일가변성설계및구현 한다. 2번인텐트필터인경우 http 타입을지정하였으므로 URI 데이터타입을전달할경우해당컴포넌트를호출한다. 그림 16에서와같이기존어플리케이션 Application 1 은새로운컴포넌트인 Activity_004 를플러그인하여새로운서비스제공할수있다. 플러그인되는컴포넌트는어플리케이션 Application 2 내에포함되어디바이스에설치된다. Application 1 과 Application 2 는독립된어플리케이션이므로독립적으로설치될수있다. Activity_001 은가변부를통해 Activity_002, Activity n, Service m, 그리고 Activity_004 컴포넌트로변경이가능하다. 안드로이드플랫폼기반의플러그인기법을위한클래스다이어그램은그림 17과같다. [ 그림 15] 동적선택기법사례 [Fig. 15] A Case of Dynamic Selection 그림 15는그림 14의동적인선택을위한 Manifest 설정정보를통해구현된동적선택기법의사례이다. 전달되는데이터타입이문자열인경우 CalleeActivity_002 컴포넌트가호출되며, 전달되는데이터타입이 URI 인경우 CalleeActivity_003 컴포넌트가호출될수있다. 이와같이동적선택기법은정적선택기법과다르게서비스실행중에사용자의선택과정없이동적으로변경된다. 3.2 플러그인기법 (Plug-In Technique) 플러그인기법은기존어플리케이션에새로운컴포넌트를플러그인하여새로운서비스를제공하는방법이다. 선택기법이어플리케이션내에존재하는컴포넌트들을변경하는것에반해플러그인기법은어플리케이션내에존재하지않는새로운컴포넌트를플러그인하여새로운서비스를제공한다. [ 그림 17] 플러그인기법클래스다이어그램 [Fig. 17] Class Diagram of Plug-In Technique Application 1 의 Activity_001 컴포넌트는안드로이드의 Application Framework 으로인텐트필터를전달하여가변부에해당하는컴포넌트를선택할수있다. 이때 Application 1 내부뿐만아니라, 플러그인된 Application 2 의 Activity_004 컴포넌트도선택가능하다. 플러그인기법의가변성정의는표 3과같이인텐트필터를통해정의할수있다. 플러그인기법의가변성인텐트필터는정적선택기법의가변성인텐트필터에추가적으로 android.intent.category. ALTERNATIVE 를추가해야한다..ALTERNATIVE 는외부어플리케이션과의연동을위한인텐트값이다. [ 표 3] 플러그인기법의가변성을위한인텐트필터 [Table 3] Intent Filter for Plug-In's Variability [ 그림 16] 플러그인기법 [Fig. 16] Plug-In Technique 2343

한국산학기술학회논문지제 13 권제 5 호, 2012 그림 18에서와같이 category 타입의인텐트값으로 android.intent.category.alternative 를설정하면 Application 2 의 Activity_004 컴포넌트는외부어플리케이션에서호출될수있다. 을검증한다. 그림 20은회의생성시회의정보를공지하기위한시나리오이다. [ 그림 20] 회의생성및공지시나리오 [Fig. 20] Scenario of Meeting Creation and Notification [ 그림 18] 플러그인기법의가변성을위한설정 [Fig. 18] Configuration for Plug-In Technique's Variability 시나리오 1은회의공지를선택기법에의해메일및 SMS를선택하여공지할수있도록하기위한사례이다. 시나리오 2는새로운공지서비스를제공하기위해 Twitter[11] 공지컴포넌트를플러그인하여 Twitter 공지서비스를선택할수있도록하기위한사례이다. [ 그림 19] 플러그인기법사례 [Fig. 19] A Case of Plug-In Technique 그림 19는그림 18의 Manifest 설정정보를통해구현된플러그인기법의사례이다. Activity_001 에서내부컴포넌트인 Activity_002 나 Activity_003 을호출할수있으며, 플러그인된외부컴포넌트인 Activity_004 나 Activity_005 를호출할수있다. 이때는정적선택기법이나동적선택기법을이용할수있다. 4. 실험및평가 본논문에서제안한안드로이드기반의가변성설계및구현기법을회의생성 / 공지사례에적용하여적합성 [ 그림 21] 회의공지를위한가변적서비스구조 [Fig. 21] Architecture of Variant Service for Meeting Notification 회의공지를가변적으로처리하기위한구조는그림 21과같다. MeetingNotify 컴포넌트는어플리케이션내부의 Email 이나 SMS 컴포넌트를호출할수있거나, 플러그인된외부컴포넌트인 Twitter 를호출하여회의공지를가변적으로변경할수있다. 회의공지에대한클래스다이어그램은그림 22와같다. 회의공지를위한어플리케이션내부및외부컴포넌트를호출할수있도록인텐트필터를포함하며, 안드로이드플랫폼의 Application Framework 을통해내부및외부컴포넌트를호출할수있다. 2344

안드로이드기반모바일가변성설계및구현 [ 그림 22] 회의공지클래스다이어그램 [Fig. 22] Class Diagram of Meeting Notification 인텐트필터값 meetingcreation.variability.mee TING_NOTIFY 은회의공지서비스의가변부를처리하기위한정보이며, android.intent.category.alte RNATIVE 는플러그인된외부컴포넌트와의가변부처리를위한정보이다. [ 그림 24] Email 을통한공지사례 [Fig. 24] A Case of Notification by Email [ 그림 25] 플러그인된 Twitter 컴포넌트를통한회의공지사례 [Fig. 25] A Case of Meeting Notification by Plug-In's Twitter Component [ 그림 23] 회의공지사례에서선택기법적용 [Fig. 23] Applying Selection Technique in Meeting Notification Case 회의생성및회의공지를위한가변성설계를기반으로그림 23에서그림 25와같이구현했다. 그림 23은회의공지를위한정적선택기법을적용하였으며, Email 이나 SMS 컴포넌트는가변적선택을위한표 4의인텐트필터정보를정의했다. 그림 24는선택된 Email 컴포넌트로회의생성시생성된 회의주제, 회의날짜, 회의참여자, 회의내용 정보가전달되었으며메일로공지된결과이다. 그림 25는새로운회의공지컴포넌트인 Twitter 를플러그인한경우이다. 정적선택기법을위한선택메뉴가자동적으로추가되었다. 그림 24의 Email 컴포넌트로회의정보를전송하는것과마찬가지로 Twitter 컴포넌트로회의정보가전송되며, 트위터와연동을위해초기인증과정을수행한다. 위의사례를통해안드로이드모바일플랫폼에서의가변성적용이가능함을검증하였다. 제안된모바일선택기법과플러그인기법을통해유연한가변성처리가가능함을증명하였다. 5. 결론및향후연구과제 모바일어플리케이션은변경이발생할경우모바일어플리케이션전체를재설치해야한다. 이러한재설치는모바일어플리케이션의규모가커지거나다른어플리케이션과의결합도가커지면부작용이발생할가능성이있다. 따라서본논문에서는안드로이드플랫폼기반에서어플리케이션의변경에대해기존어플리케이션의변경없이수정이가능한설계기법을제시하였으며구현을통해가능성을검증하였다. 또한향후본모바일커스터마이제이션설계기법을활용하여자동화된업그레이드를위한스마트업그레이드에대한연구를진행할예정이다. 2345

한국산학기술학회논문지제 13 권제 5 호, 2012 References [1] Konig-Ries, B. and Jena, F., "Challenges in Mobile Application Development," it-information Technology, Vol.52, No.2, pp.69-71, 2009 [2] Android Developers, http://developer.android.com/index.html (accessed January 31, 2011). [3] Caldiera, Gianluigi and Victor R. Basili, "Indentifying and Qualifying Reusable Software Components," IEEE Software, Vol. 24, No. 2, Febuary 1991, pp.61-70. [4] Salmre, I., Writing Mobile Code: Essential Software Engineering for Building Mobile Applications, Addison-Wesley Professional, 2005. [5] Heineman, G. T. and Councill, W. T., Component Based Software Engineering, Addison-Wesley, 2001. [6] Atkinson, C., Bayer, J., Bunse, C., Kamsties, E., Laitenberger, O., Laqua, R., Muthig, D., Paech, B., Wust, J., Zettel, J., Component-based Product Line Engineering with UML, Pearson Education Ltd, 2002. [7] Kim C. J. and Kim S. D., A Component Workflow Customization Technique, Vol.27,No.5, Korea Information Science Society, 2000. [8] Kim C. J., Lee S. H. and Cho E. S., A Framework for Improving Reusability of Home Network System, Vol.1, No.2, ITIRC, Sep 2008. [9] Chul Jin Kim, Eun Sook Cho, Chee Yang Song, "A Design Technique of Configurable Framework for Home Network Systems", Journal of the Korea Academia-Industrial Cooperation Society, Vol. 12, No.4, pp.1844-866, April 2011. [10] Eun Sook Cho, Chul-Jin Kim, Sook Hee Lee, "A Study on Reusability Metric of Framework for Embedded Software, Journal of the Korea Academia-Industrial Cooperation Society, Vol 12, No.11, pp.5252-5259, December 2011. [11] http://dev.twitter.com/apps/new 김철진 (Chul-Jin Kim) [ 정회원 ] 2004 년 2 월 : 숭실대학교대학원컴퓨터학과 ( 공학박사 ) 2004 년 4 월 : 가톨릭대학교컴퓨터정보공학부강의전담교수 2004 년 3 월 ~ 2009 년 2 월 : 삼성전자책임연구원 2009 년 3 월 ~ 현재 : 인하공전컴퓨터시스템과조교수 < 관심분야 > 컴포넌트기반개발방법론, 컴포넌트커스터마이제이션, 모바일서비스, 클라우드컴퓨팅 조은숙 (Eun-Sook Cho) [ 정회원 ] 2000 년 2 월 : 숭실대학교대학원컴퓨터학과 ( 공학박사 ) 2000 년 9 월 ~ 2005 년 2 월 : 동덕여자대학교강의전임교수 2005 년 3 월 ~ 현재 : 서일대학교컴퓨터소프트웨어과부교수 < 관심분야 > 컴포넌트기반개발방법론, 서비스지향아키텍쳐 (SOA), 프레임워크설계및개발, 클라우드컴퓨팅 2346