커넥티드카 핵심 어플리케이션을 위한 sw 아키텍처와 플랫폼 3-2... ·...

21
2016(9) 한국 소프트웨어 아키텍트 대회 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 2016. 7. 21. 현대오트론 오세종

Upload: others

Post on 08-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

2016(제9회) 한국 소프트웨어 아키텍트 대회

커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼

2016. 7. 21.

현대오트론

오세종

Page 2: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회 2

Ⅳ. 개발 방향에 따른 SW 아키텍처 선정

Ⅲ. SW 플랫폼과 어플리케이션 개발 방향

I. 스마트 커넥티드카 요소 정의

Ⅱ. 커넥티드카 핵심 기술 도출

V. 개발 사례 (커넥티드카 향 디스플레이 통합 제어기)

Page 3: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

스마트 커넥티드카 요소 정의

개 요 ▣ 차량 제어기와 내/외부 서버가 다양한 통신 채널로 정보 수집 및 교환

▣ 차량 안전과 개인 특화 서비스를 통해 차별화된 가치 제공

스마트 카

핵심 기술

Killer

Applications

(예) 무인 자율 주행

SW 플랫폼

(예) Autosar, Android

통신 기술

(예) CAN, Ethernet AVB

반도체

(예) 센서, 구동, 전원, 로직

3G/4G/5G

Page 4: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

스마트 커넥티드카를 위한 SW 플랫폼

차량 특화 서비스 (차량 제어기 연동)

멀티미디어 고유 플랫폼 (웹플랫폼, 안드로이드, 타이젠 등)

API layer

Native applications

Web applications

Hybrid applications

Native OS (Linux)

■ 신규 기능을 쉽게 개발하고 검증할 수 있는 “통합 개발 환경 (SDK)”

■ 개발된 신규 기능을 다양한 시스템에 쉽게 적용할 수 있는 “어플리케이션 프레임웍”

■ 개발자와 사용자가 요구와 결과를 자유롭게 공유할 수 있는 “앱 스토어(마켓)”

개발과 검증 비용 절감

다양한 차종 적용 가능

기능 추가 용이 외부 침입에 안전

원격 제어 및 관리 가능

타 인프라 연동이 용이

Page 5: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

스마트 커넥티드카 기반 핵심 어플리케이션

■ 커넥티드카 서비스는 향후 무궁한 발전을 거듭할 것으로 예상됨

■ 전장 제어기 전문 기업(예: 현대오트론)이 SW 플랫폼 장착된 제어기를 만들고

■ 통신 서비스 전문 기업(예: SK텔레콤)이 커넥티드카 서비스 개발에 협력하면 효과적임

Page 6: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

Connected Car 시장 예상

6

■ ‘13 ~ ‘19 : CAGR of 34.7 % (USD 131.9B)

■ 그 이후 더 가파른 성장으로 ’22까지 USD 250B 예상

■ 전기차의 경우 ’17까지 94%가 Telematics 장착 예상

■ Connected Car 장치는 Auto-tightly coupled와 Auto-

loosely coupled 가 시장을 공평히 차지할 예상

#Auto-loosey coupled란 : 자동차/장치는 OEM, 통신과 컨텐츠는 통

신사로부터

Source: Machina Research, 2013

Page 7: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

요구사항 기반 Connected Car 핵심 기술 도출 (1/2)

1. IoT 지원 어플리케이션 (커넥티드카는 안전하고 재미있는 운전에 도움이 되어야 한다)

2. 기능 대비 원가 경쟁력 (기능이나 서비스 때문에 차량 가격과 유지비가 너무 오르지 않아야 한다)

3. 오류에 강건한 시스템 (기능이나 서비스 때문에 운전에 방해가 되거나 차량 오동작이 없어야 한다)

4. 악의적 해킹 위험 차단 (연결된 통신으로 개인 정보나 차량 안전이 위협 받지 않아야 한다)

5. 신속한 개발과 시장 출시 (새로운 기능은 사용이 쉬어야 하고, 업그레이드도 자동으로 되어야 한다)

Page 8: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

요구사항 기반 Connected Car 핵심 기술 도출 (2/2)

주어진 요구사항에 따라 Native(AVN)와 Web(서버) 융합 Hybrid platform

커넥

티드

카 시

장 요

구사

IoT 지원 어플리케이션

기능 대비 원가 경쟁력 높임

악의적 해킹 위험 차단

오류에 강건한 SW 품질

신속한 개발과 시장 출시

5

3

3

5

1

우선순위

M M

H L

Impact: High(10) Medium(5) Low(1)

Time to Value: Large(10) Middle(5) Small(1)

Connected Car 관련 솔루션

H L

H L

H L

M M

H L

H L

M M

M S

H L

H L

L S

L S

H L

H L

L S

L S

H L

H L

M M

H L

H L

M S

H L

L S

929 829 1403 1475 855

Page 9: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

통합 개발 환경과 SW 플랫폼 영역 기준 분류

제어부

위치 기준

분류

AVN 만 커버 스마트기기 연동 포함 서버 연동 포함

장점

• 보안 (closed platform) • 사용자 친숙 (Android, iOS) • 다양한 어플

• 속도 최적화 • 기술적 성숙 (구글, 애플) • 서비스 업그레이드 용이

• 차량 특화 어플 • 다양한 어플 (스토어, 마켓) • 초기 투자비 ↓ (개발비 공유)

단점

• 한정된 어플 • 차량 특화 어려움 • 통신비 부담

• 서비스 업그레이드 어려움 • 구글/애플 종속 • 차량 전용 모뎀 비용

• OEM 및 Tier 역량 의존 • 보안 (어플 레벨 침투) • 개발 주도 모호 (ICT, OEM)

설명도 3G/4G/5G

Page 10: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

SW 플랫폼 확장에 따른 어플리케이션 진화

• Native 앱 역할 : 차량 센서 데이터 수집 (카메라, 조작계 등), 차량 상태 관리와 Action

• Automotive Service Layer 역할 : Native 와 웹 앱 간 연동 제어 (정보/명령 전달 채널)

• 웹 App 역할 : OEM 및 차량 외 CP/SP 들 (예: SKT, 다음카카오 등)의 참여로 다양한 어플리케이션 제공

▣ Native 앱과 서버 기반 (클라우드) 앱의 협력 증강현실 앱

Home Setting

FM/AM

USB Music

HVAC

Browser engine

Web Platform

Embedded Linux

External 3rd Libraries

Audio Graphic Security HVAC Etc..

Linux device libraries

Native 앱

Native 플랫폼

Windows

QML

Widget

Media

Etc...

Database

웹 App

차계부 자율주행관리

긴급 구난

Automotive

Service Layer

Device Abstraction

Application Manager

V-Info Abstraction

GUI Abstraction

Page 11: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

하이브리드 플랫폼을 위한 SW 아키텍처 (1/2)

- 다양한 OS 버전에 상관없이, 차종과 지역향 별 UX 개발 시 재사용 가능한 리소스 지원

- State pattern과 Adapter pattern을 적용하여 UX 코드와 App제어 로직을 구분

GUI Abstraction layer를 위한 Design Pattern

Adapter Pattern

App제어 로직의 구현 자유도 높고, 어떤 종류의 UX가 추

가 되어도 App제어 로직은 변경의 필요가 없음.

<<Interface>> IButton

buttonPressed()

<<EB guide>> OneGuiClass

pressButton()

buttonPressed()

App제어로직

coreAlgorithm()

UI_Adapter

State Pattern

다양한 입력 소스로부터의 event를 AVN 상태에 따라 해석하여 다

양한 OS API로 매핑하는 패턴

터치 인식

조작키

음성 인식 Framework 독립적인 UI 처리 로직 (States)

개발 결과물

Page 12: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

하이브리드 플랫폼을 위한 SW 아키텍처 (2/2)

- Native 영역의 차량 특화 로직과 Web 영역의 비즈니스 로직을 엄격히 구분 목적

- Native 와 Web 영역간 서비스 및 데이터를 공개 API 레벨 형식으로 관리/제공함

V-Info Abstraction layer를 위한 Design Pattern

Decorator Pattern

Native 동작에 web 서비스 사양을 추가해야 할 때 (또는 그 반

대의 경우), 추가 동작 사양을 별도의 Decorator class로 제공

Strategy Pattern

Web 로직 사양과 native 로직 사양이 서로 맞지 않을 때, 이 동작

을 인터페이스로 구분해서 native 사양으로 대체

<<Interface>> SelectAudioPath

putSound()

<<Local>> AudioManager

makeSound()

<<Web>> CloudAudio

putSound()

<<Native>> LocalAudio

putSound()

개발 결과물

takePicture()

Camera

takePicture()

Camera

CloudCamera takePicture()

native 앱의 경우 : Camera.takePicture() { /* Camera class의 메소드 사용 */ }

Cloud App의 경우 : CloudCamera.takePicture() { /* CloudCamera class의 메소드 사용 */ Camera.takePicture(); }

Page 13: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

하이브리드 플랫폼 적용 시스템 선행 개발 내용 (1/5)

System Requirement Analysis (예)

Page 14: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

하이브리드 플랫폼 적용 시스템 선행 개발 내용 (2/5)

System Functional Analysis (예)

필요한 정보를 추출하여 해당 서버로 전송한다필요한 정보를 추출하여 해당 서버로 전송한다

차량 데이터를 신속 , 정확하게 수집한다차량 데이터를 신속 , 정확하게 수집한다

서비스 정보와 제어 명령을 분석하여 해당 제어기에 전달한다서비스 정보와 제어 명령을 분석하여 해당 제어기에 전달한다

차량에 필요한 서비스를 검색하여 제공 요청한다차량에 필요한 서비스를 검색하여 제공 요청한다

Page 15: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

하이브리드 플랫폼 적용 시스템 선행 개발 내용 (3/5)

System Interface 도출 (예)

I/F Type Interface name UseCase 명칭 operations Parameters

Provided

  1 IAdasToAvn 차량 데이터 공유 notifyData vehicleInformation

Required

  1 IAvnToAdas 요청 데이터 등록 registerVehicleData vehicleInformation

  2 분석된 정보를 제어기로 전달 sendControlData command, data

I/F Type Interface name UseCase 명칭 operations Parameters

Provided

  7 IServerToAvn 서비스 정보 전달 deliverServiceInfo ServiceTypeLists 등

8 서비스 정보 (데이터, 명령) responseVcrmService command, data 등

9 내비 서비스 페이지 전달 showNaviService command, data 등

10 내비 서비스 시작 startNaviService command, data 등

11 내비 서비스 종료 결과 showNaviServiceEnd StatusInfo 등

Required

6 IAvnToPhone 서비스 정보 요청 requestServiceInfo Terminal_ID 등

  7 서비스 등록 요청 registerService ServiceType 등

8 차량 데이터 전달 sendVcrmService command, data 등

9 내비 실행 요청 전달 requestNaviService command, data 등

10 내비 실행 정보 전달 notivyNaviSettings command, data 등

  11 내비 종료 요청 전달 terminateNaviService command, data 등

AVN과 차량 센서간 I/F

AVN과 원격서버 간 I/F

Page 16: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

하이브리드 플랫폼 적용 시스템 선행 개발 내용 (4/5)

System Design Synthesis (예)

Page 17: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

하이브리드 플랫폼 적용 시스템 선행 개발 내용 (5/5)

System Functional Design (예)

서비스 정보와 제어 명령을 분석하여 해당 제어기에 전달한다서비스 정보와 제어 명령을 분석하여 해당 제어기에 전달한다

차량에 필요한 서비스를 검색하여 제공 요청한다차량에 필요한 서비스를 검색하여 제공 요청한다

필요한 정보를 추출하여 해당 서버로 전송한다필요한 정보를 추출하여 해당 서버로 전송한다

차량 데이터를 신속 , 정확하게 수집한다차량 데이터를 신속 , 정확하게 수집한다

Page 18: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

유스케이스로부터 테스트 케이스 작성

18

• 시나리오 테스팅 & 상태 천이 테스팅 활용

– SRS 시나리오 (Sequence diagram) 에서 Test case 도출

(Requirement Traceability Matrix 도출)

– SRS 시나리오 중 parameter range 측정 필요한 case는 추

가 test case 작성

– GUI 상태 천이도 기반 Test case 커버리지 확인

Pass 15 20151015 구조화 및 EB가이드 적용 완료된 버전으로 테스트Fail 0

Block 1Not Tested 0

TC번호 사양번호 SRS 시나리오 Test Result

TC022_System_HomeScreen_F_019 SRS022_System_HomeScreen_F_019전체메뉴 Application이 실행되면 아이콘 형태로 Widget 이 제공되는Application과 다른 모든 Application list를 표시한다. (Radio, Music,Image, AUX, Pandora, Phone, Blue Link, Quick Guide, Climate,

Pass

TC022_System_HomeScreen_F_020 SRS022_System_HomeScreen_F_020전체메뉴 목록에서 ‘Radio’ 아이콘을 선택하면 Radio Application을 실행한다. Radio application의 실행하게 되면 이전 실행된 Radio menu (FM,

Pass

TC022_System_HomeScreen_F_021 SRS022_System_HomeScreen_F_021전체메뉴 목록에서 ‘Music’ 아이콘을 선택하면 Radio(FM, AM, SiriusXM)을제외한 이전에 실행된 Application(Disc CD, USB Music, iPod, AUX,

Pass

TC022_System_HomeScreen_F_022 SRS022_System_HomeScreen_F_022위 SRS022_System_HomeScreen_F_021 동작시 ‘Music’ 아이콘을 선택하여실행될 Application이 비활성 조건(예. USB Music인경우, USB가 mount되지 않았을 경우)이면 다음의 순으로 활성화된 해당 application을 실행한다.

Pass

Test Summary

SRS022_System_HomeScreen

Page 19: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

Native 코드 refactoring Hybrid 플랫폼 구조화

설계 검증 위원회 개발 실무진

(1) 원본 코드 분석 기존 사양 과 코드 수령 확인

(2) 설계 개선안 도출 - 원본 코드 설계 분석 결과 - 개선된 설계 안 도출 - *CD, *SD로 표현

(3) 설계 개선안 검토 - 작업 공수 산정 - 개선 효과 분석

설계 개선안 채택

(4) 코드 개선 작업 - 작업 내용 doxygen 으로 코드 상 명시 - CD, SD 업데이트

*CD : Class Diagram *SD : Sequence Diagram

YES NO

(5) 코드 개선 결과 검토 - 기능 사양에서 추출한 동작 체크리스트 기준 - 코드 개선 작업에 의해 기본 동작과 성능엔 문제가 없는지 실보드에서 확인

(6) SDS/SAS 작성 - 사양서와의 추적성 작성 추가

①UML설계도

②개선된 코드

③테스트결과

⑤SDS/SAS

산출물 종류

④설계표준사양

④설계표준사양 = ①+②+③

Page 20: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

플랫폼 표준 IF 사양의 웹 기반 관리와 활용

설계 검토 회의

UML 설계도면

개발코드 (C/C++) 사양서 (Excel)

Web browser

UML설계툴

문서자동화 script

UML2

Doxygen

SW개발자

MS Word

문서자동화 script

SW 설계자

표준IF 관리

시스템 효과

1. 플랫폼 표준 IF가 업데이트 될 때마다 Web으로 자동 publish 됨

2. 플랫폼 기반 개발자들은 Web 상에서 자신의 목적에 맞는 플랫폼 표준 I/F를 확인

3. 불필요한 문서 교환 없이도 플랫폼 개발자와 앱 개발자간 상호 이해 증가

4. 결국 제품 개발 비용 절감과 산출물 품질 향상됨

자동 Web Publishing

Page 21: 커넥티드카 핵심 어플리케이션을 위한 SW 아키텍처와 플랫폼 3-2... · 2016-07-27 · 제9회 2016 한국 소프트웨어 아키텍트 대회. 2016 (제. 9. 회)

제9회 2016 한국 소프트웨어 아키텍트 대회

결론

• 비즈니스 관점 : – 커넥티드카 시장은 향후 폭발적인 성장 예상 (2020년 2억5천만대, 200조원 신규 시장 예상)

– 이 기술은 향후 개인 로봇 및 드론 등 더 큰 시장 진출 관문임

– OEM에게는 차별화된 selling point 가 될 것임

– 통신사, 서비스 사업자들에게는 IoT 관련 신규 사업 창출 기회 제공

• 기술적 관점 : – 서비스 사업자의 비즈니스 로직과 OEM의 차량 제어 기술간의 엄격한 분리와 협력 필수

– 누구나 쉽게 서비스를 개발할 수 있는 SDK 와 강력한 차량 IT 보안

– 타 OEM 차량과 device 에도 확장/적용 가능한 투명한 차량 IT framework

– 차종 및 지역 확장이 용이한 Automotive 특화 framework

• 향후 현대오트론 계획 : – 현대오트론은 차량 제어기술에서 출발하여 차량 IT 신기술을 신속하게 수용할 것임

– 2017년 내 커넥티드카 향 오픈 SDK 시험판 배포 목표로 진행 중

– 오픈 SDK 기반, 핵심 어플리케이션 공동 개발/검증에 동참할 CP, SP 섭외 중

21