스마트카 Smart Car 소프트웨어 엔지니어링 (자동차 임베디드 소프트웨어 개발 프로세스와 기술 입문)

스마트카 Smart Car 소프트웨어 엔지니어링 (자동차 임베디드 소프트웨어 개발 프로세스와 기술 입문)

$31.41
Description
자동차 소프트웨어 개발자를 위한 소프트웨어 엔지니어링의 기초!
『스마트카 소프트웨어 엔지니어링』은 차량용 소프트웨어를 개발할 때 알아야 할 주요한 소프트웨어 기술과 프로세스를 체계적으로 설명하는 책이다. 자동차 개발 프로세스의 주요 특징과 자동차 개발 프로세스와 소프트웨어 개발 프로세스가 어떻게 연결되는지 알아봄으로써, 자동차 소프트웨어 개발의 특징을 습득할 수 있다. 아울러 첨단 자동차 소프트웨어 개발을 위해 사용되는 다양한 소프트웨어 기술, 표준, 네트워크를 살펴봄으로써, 자동차 소프트웨어 세계에 입문하는 개발자들에게 필요한 지식을 전달한다.
수상내역
-2014년 문화체육관광부 공감도서 학술부문 선정도서
저자

신승환

저자신승환은다양한분야의소프트웨어를개발·관리·컨설팅했다.현대오트론에서책임연구원으로차량용소프트웨어를개발하고있다.관심분야는무인자율주행시스템의소프트웨어개발이다.『도와주세요!팀장이됐어요』를포함한다수의IT서적을집필했다.

목차

1장자동차와임베디드소프트웨어
1.1자동차용임베디드시스템의등장
1.2자동차용네트워크의등장
1.3자동차를구성하는서브시스템
1.3.1파워트레인
1.3.2섀시
1.3.3보디
1.3.4멀티미디어
1.4데이터캘리브레이션
1.5자동차용임베디드소프트웨어전망

2장자동차개발프로세스
2.1자동차개발프로세스개요
2.2기획단계
2.3선행개발단계
2.4디자인단계
2.5설계단계
2.6시작단계
2.7시험단계
2.8생산준비단계
2.9양산단계
2.10차량개발프로세스모니터링과통제
2.11전자기술을반영한차량개발프로세스

3장제어개발프로세스
3.1엔지니어링프로세스
3.1.1차량레벨상의시스템콘셉트
3.1.2시스템요구사항정의
3.1.3시스템아키텍처설계
3.1.4시스템구현
3.1.5소프트웨어요구사항분석
3.1.6소프트웨어아키텍처설계
3.1.7소프트웨어단위설계와구현
3.1.8소프트웨어단위검증
3.1.9소프트웨어통합과검증
3.1.10소프트웨어확인과배포
3.1.11시스템통합과검증
3.1.12차량평가와데이터캘리브레이션
3.1.13시스템배포
3.2지원및관리프로세스
3.2.1프로젝트관리프로세스
3.2.2요구사항관리프로세스
3.2.3형상관리프로세스
3.2.4변경관리프로세스
3.2.5품질관리프로세스

4장기능안전
4.1기능안전개요
4.2위험관리정의와기능안전과유사성
4.3HARA와ASIL설정
4.4안전요구사항도출과시스템설계
4.5ASIL분해
4.6소프트웨어아키텍처안전분석
4.7소프트웨어개발과검증

5장EAST-ADL
5.1시스템아키텍처의정의와역할
5.2아키텍처프레임워크
5.2.1메타모델링아키텍처프레임워크
5.2.2공통아키텍처프레임워크
5.2.3특정도메인아키텍처프레임워크
5.3자동차분야의아키텍처EAST-ADL
5.4EAST-ADL시스템모델
5.4.1EAST-ADL의차량레벨
5.4.2EAST-ADL의분석레벨
5.4.3EAST-ADL의설계레벨
5.4.4EAST-ADL의구현레벨
5.5EAST-ADL의확장모델
5.5.1EAST-ADL의요구사항모델링과V&V
5.5.2EAST-ADL의운영환경모델링
5.5.3EAST-ADL의신뢰성모델링
5.5.4EAST-ADL의가변성모델링
5.5.5EAST-ADL의거동모델링
5.5.6EAST-ADL의타이밍모델링

6장AUTOSAR
6.1AUTOSAR등장배경
6.2AUTOSAR범위
6.3AUTOSAR아키텍처구조
6.3.1ASW
6.3.2RTE
6.3.3서비스계층
6.3.4ECAL
6.3.5MCAL
6.3.6콤플렉스드라이버
6.3.7인터페이스
6.4AUTOSAR적용
6.4.1SW컴포넌트정의
6.4.2ECU자원정의
6.4.3시스템정의
6.4.4시스템설정및EUC정의추출
6.4.5ECU별설정
6.4.6ECU별SW실행파일생성

7장OSEK-OS
7.1OSEK/VDX개요
7.2OIL설정
7.3응용프로그램모드
7.4시작과종료
7.5태스크
7.6ISR
7.7훅
7.8스케줄링
7.9알람
7.10이벤트
7.11자원
7.12메시지

8장CAN
8.1초기차량네트워크
8.2CAN탄생배경
8.3기본개념
8.4통신방식
8.5메시지구조
8.5.1메시지프레임구조
8.5.2데이터프레임
8.5.3원격프레임
8.5.4오류프레임
8.5.5오버로드프레임
8.6메시지비트타임세그먼트와재동기화
8.7구현
8.7.1메시지설계
8.7.2하드웨어
8.7.3소프트웨어

9장LIN
9.1LIN탄생배경
9.2개요
9.2.1기본개념
9.2.2적용분야
9.3통신방식
9.3.1에러검출및제한
9.3.2슬립과웨이크업
9.4메시지구조
9.4.1프레임종류
9.4.2메시지프레임
9.4.3메시지프레임타입
9.5구현
9.5.1메시지설계
9.5.2하드웨어
9.5.3소프트웨어

10장FlexRay
10.1엑스바이와이어기술
10.2FlexRay탄생
10.3기본사항
10.4프로토콜아키텍처
10.5프레임포맷
10.6통신주기
10.6.1클록동기화
10.6.2정적인영역
10.6.3동적인영역
10.7웨이크업과스타트업프로토콜
10.7.1웨이크업단계
10.7.2스타트업단계
10.8토폴러지
10.8.1수동형버스토폴러지
10.8.2듀얼채널싱글스타
10.8.3싱글채널연속형스타
10.8.4듀얼채널연속형스타
10.9FlexRay노드아키텍처

11장CCP
11.1탄생배경
11.2특징과응용분야
11.3인터페이스표준과구조
11.3.1인터페이스메시지구조
11.3.2CRO메시지
11.3.3DTO메시지
11.3.4CRM
11.3.5이벤트메시지
11.3.6DAQ메시지
11.4명령어와인터페이스의예
11.4.1명령어
11.4.2명령어인터페이스의예
11.5오류처리
11.6드라이버구현
11.6.1초기화
11.6.2DAQ초기화및데이터측정
11.6.3캘리브레이션초기화
11.6.4드라이버구현의예

12장KWP2000
12.1KWP2000등장배경
12.2OBD의통신방법
12.2.1SAE-J1850
12.2.2ISO15765
12.2.3ISO14230
12.3KWP2000의구조
12.3.1KWP2000-파트1
12.3.2KWP2000-파트2
12.3.3KWP2000-파트3
12.4KWP2000구현방법
12.4.1소프트웨어구조
12.4.2CAN드라이버
12.4.3전송계층
12.4.4KWP2000서비스

출판사 서평

차량용소프트웨어를개발할때알아야할주요한소프트웨어기술과프로세스를체계적으로설명한책이다.이책은자동차소프트웨어의탄생배경을설명함으로써시작한다.일반적인소프트웨어개발자가낯설어하는자동차개발프로세스의주요특징과자동차개발프로세스와소프트웨어개발프로세스가어떻게연결되는지알아봄으로써,자동차소프트웨어개발의특징을이해할수있다.아울러첨단자동차소프트웨어개발을위해사용되는다양한소프트웨어기술,표준,네트워크를살펴봄으로써,자동차소프트웨어세계에입문하는개발자들에게꼭필요한지식을전달한다.

자동차소프트웨어개발자가알아야할소프트웨어엔지니어링의기초
소프트웨어를개발한다는측면에서일반적인소프트웨어나차량용소프트웨어는별반다르지않다.하지만많은인원이참여하고오랜기간이소요되는개발프로세스가적용된다는점,사고발생시인명피해와직결된다는점,다양한공급자들이제공하는제어기들을통합해서개발한다는측면에서일반적인소프트웨어와차량용소프트웨어의차이는명확해진다.따라서품질이우수한차량용소프트웨어를개발하기위해서는뛰어난소프트웨어개발역량과더불어개발프로세스,소프트웨어의안전을확보하는방법,차량용소프트웨어의특징과개발방법,차량용네트워크에대한지식이필요하다.따라서이책은차량용소프트웨어엔지니어링의기초라고할수있는배경지식을전달하도록구성됐다.

★이책에서다루는내용★
■자동차소프트웨어의주요특징
■자동차소프트웨어개발에꼭필요한자동차개발과소프트웨어개발프로세스특징
■안전한자동차를개발하기위한기능안전기초지식
■자동차개발의주요표준인AUTOSAR,OSEK-OS,EAST-ADL
■CAN,LIN,FlexRay의차량용네트워크와CCP,KWP2000의주요프로토콜

★이책의특징★
자동차소프트웨어개발에꼭필요한지식과최신기술을체계적으로접근하고다룬다.

★이책의대상독자★
이책은차량용소프트웨어이외의분야에서소프트웨어개발경험이있는개발자를위해작성됐다.따라서이책에서는임베디드소프트웨어개발에관한일반적인내용을다루지않는다.만약임베디드소프트웨어개발경험이없는개발자라면임베디드소프트웨어개발에관한기초서적을참고하길바란다.아울러기계,전기,전자,전산분야를전공한학생들이자동차분야의소프트웨어개발을시작한다면,이책에서차량용소프트웨어개발에대한기초지식을얻을수있다.앞서설명했듯이이책에서는임베디드소프트웨어에대한일반적인내용을다루지않기때문에,해당분야의지식이없는독자라면관련서적을참고하길바란다.

★이책의구성★
1장,자동차와임베디드소프트웨어:차량용임베디드소프트웨어가등장한배경을중심으로차량용소프트웨어가자동차에서어떤역할을하는지알아본다.아울러제어기간의통신이필요한이유를살펴봄으로써차량용네트워크의등장배경을알아본다.시스템엔지니어링을사용해자동차개발에서발생하는복잡성을관리하는것도살펴본다.

2장,자동차개발프로세스:기획단계부터양산단계까지의일련의프로세스를살펴봄으로써자동차개발프로세스에대해알아본다.단계마다개발되는시험자동차의종류와특징을살펴보고,각시험자동차에어떤종류의소프트웨어샘플이탑재되는지도살펴본다.

3장,제어개발프로세스:자동차개발에사용되는시스템엔지니어링의특징을알아본다.시스템엔지니어링기법을사용해시스템개발프로세스와소프트웨어개발프로세스가어떻게통합되는지도살펴본다.시스템개발프로세스와소프트웨어개발프로세스의단계마다어떤활동이이뤄지고,각단계에서사용하는개발방법과산출물도알아본다.

4장,기능안전:자동차에탑재하는전자부품이늘어나면서전자부품에서발생하는안전문제가매우중요해졌다.자동차업계는이런문제를해결하기위해서ISO26262라는기능안전표준을제정해사용하려고한다.ISO26262는광범위한영역을다루는표준이기때문에,ISO26262의모든것을소개할수없다.차량용소프트웨어에서기능안전의개념을어떻게도입하는지를파악하는단서확보차원에서,ISO26262의파트6에해당하는소프트웨어의표준을살펴본다.

5장,EAST-ADL:아키텍처프레임워크의개념에대해간략하게살펴본다.차량용아키텍처프레임워크의하나인EAST-ADL의특징을알아본다.EAST-ADL의시스템모델과확장모델의세부내용에대해살펴본다.

6장,AUTOSAR:차량용소프트웨어표준인AUTOSAR의등장배경을알아본다.AUTOSAR의아키텍처구조인ASW,RTE,서비스레이어등에대한특징을살펴본다.마지막으로AUTOSAR를적용한다는의미와구현된AUTOSAR를사용해차량용소프트웨어를개발하는일련의절차를알아본다.

7장,OSEK-OS:OSEK표준의종류를살펴본다.OIL파일을사용해OSEK-OS를설정하는방법과OSEK-OS의구현모드를알아본다.태스크의기본구조와태스크동작방식을살펴보고,ISR설정시주의할점도알아본다.또한OSEK-OS에서어떤종류의훅이있는지알아본다.아울러스케줄링,알람,이벤트,자원,메시지의사용방법도살펴본다.

8장,CAN:CAN은차량용네트워크로가장보편화된프로토콜이다.CAN의등장배경을살펴보고프로토콜특징,메시지프레임구조와같은CAN의기초에대해서알아본다.메시지를어떻게설계하는지를통해CAN을사용한통신애플리케이션을살펴본다.CAN하드웨어의간략한내용과CAN구현을위한소프트웨어구조,MCAL개발예제도제시한다.

9장,LIN:LIN은CAN보다단순한형태의통신을지원하기위해탄생한프로토콜이다.LIN의탄생배경,적용분야,통신방식을살펴본다.아울러메시지구조를알아보고,간단한예제를사용해LIN메시지를설계하는방법을제시한다.LIN의하드웨어와소프트웨어구조를살펴보고,LINMCAL설정방법도알아본다.

10장,FlexRay:FlexRay는조향이나제동과같은자동차의안전과직결되는분야에서사용하기위해탄생한프로토콜이다.이장에서는FlexRay가안전을보장하기위해어떻게구현되고있는지살펴봄으로써FlexRay사용시필요한기초지식을제공한다.

11장,CCP:자동차소프트웨어를구현하는것도중요하지만,구현한소프트웨어를차량에탑재해개발하는과정에서제어기의성능을알아봐야한다.이를위해제어변수를모니터링하고측정해야한다.아울러개발된차량용소프트웨어를차량에탑재해목표한성능을끌어내기위해,성능변수를캘리브레이션해야한다.이때대표적으로사용되는프로토콜이CCP다.이장에서는CCP의특징과통신방식,구현방법에대해알아본다.

12장,KWP2000:양산한자동차는폐기처분할때까지짧게는10년에서20년이넘는기간이걸린다.따라서여러제조업체가공급하는차량에서발생하는고장을정확하게진단하기위해서는고장진단표준이필요하다.이런요구를수용해고장진단프로토콜인KWP2000이탄생했다.이장에서는KWP2000의특징과통신방식,구현에대해살펴본다.

★저자서문★
국제가전전시회(CES)는얼마전까지만하더라도가전제품업체들의각축장이었다.하지만2013년미국CES부터전시회의주인공이바뀌었다.바야흐로스마트카가새주인공으로떠올랐다.영화「백투더퓨처」의주인공처럼타임머신을타고과거에서미래로온사람이본다면상당히충격적인이야기일수있다.국제가전전시회의주인공이스마트카라니?하지만스마트폰을필두로한IT혁명을경험한우리에게다음번IT혁명은자동차에서일어나리라는예측이억측만은아니다.

스마트카혁명을이끌어가는원동력은다양하지만,그중에서가장핵심적인것은‘소프트웨어’다.확실히스마트카열풍이불면서과거보다소프트웨어관점에서자동차에접근하기가쉬워졌다.아울러소프트웨어개발자의관점에서본다면,스마트카에탑재되는소프트웨어도일반적인소프트웨어와그다지차이가없는듯하다.하지만스마트카용소프트웨어는일반적인가전제품과달리자동차에탑재된다는측면에서진입장벽이높다.

자동차사고가발생하면많은인명피해를일으킬수있다.따라서안전에매우민감하다.아울러수만개의부품을제어하기위해많은제어기가자동차에탑재됨에따라부품과제어기간의유기적인결합이매우중요해졌다.자동차는가전제품과달리제품개발기간이길뿐만아니라,출고에서폐차할때까지짧게는10년에서길게는20년이넘게걸린다.따라서고장,수리,폐기등의문제도여러측면에서고려해야한다.말하자면스마트카의등장으로자동차분야에서소프트웨어의중요성이커졌지만,소프트웨어가자동차에탑재돼올바르게작동하게하기위해서자동차분야의특수성을고려해야한다는사실은변하지않았다.

일반적으로혁신은아웃사이드-인(Outside-in)방식이나인사이드-아웃(Inside-out)방식으로일어난다.아웃사이드-인은다른도메인이나분야에서사용하는방법이나적용되는아이디어를가져와자신의분야에적용해혁신하는것이다.이와달리인사이드-아웃은내부분야의방법과아이디어를사용해외부의분야나도메인으로확산하는것이다.스마트카의혁신에서,일반IT기업이IT를자동차에적용하려는건바로아웃사이드-인방식이고,반대로자동차분야에서자동차기술을IT와접목해서스마트카를만들려는건인사이드-아웃방식이다.

이책의저자들은차량용소프트웨어를개발하기전에,이미오랜기간다른도메인의소프트웨어를개발했다.소프트웨어분야에서오랫동안경력을쌓았음에도,차량용소프트웨어분야에적응하는데짧지않은시간이필요했다.이것은앞서설명한차량용소프트웨어의특수성을이해하는시간이었다.

이책의목적은,이런저자들의경험을토대로아웃사이드-인방식으로자신의기술을자동차분야에적용하려는기업,단체,혹은개인이알아야하는차량용소프트웨어개발에필요한기초적인엔지니어링지식을전달하기위함이다.이목적을달성하기위해,이책은개발프로세스,방법론,차량용소프트웨어에특화한소프트웨어특징,차량용네트워크의지식을담고있다.

이책에서차량용소프트웨어에대해많은것을다루지만,현업에서소프트웨어를개발하려면다양한경험과지식이필요하다.이런경험을쌓고지식을습득하는것은,이책의내용을바탕으로독자스스로채워나가는몫으로남겨두겠다.아무쪼록이책이더빠르고더편리하며더우수한차량용소프트웨어개발에이바지하길바란다.

-2013년저자일동