차량용소프트웨어를개발할때알아야할주요한소프트웨어기술과프로세스를체계적으로설명한책이다.이책은자동차소프트웨어의탄생배경을설명함으로써시작한다.일반적인소프트웨어개발자가낯설어하는자동차개발프로세스의주요특징과자동차개발프로세스와소프트웨어개발프로세스가어떻게연결되는지알아봄으로써,자동차소프트웨어개발의특징을이해할수있다.아울러첨단자동차소프트웨어개발을위해사용되는다양한소프트웨어기술,표준,네트워크를살펴봄으로써,자동차소프트웨어세계에입문하는개발자들에게꼭필요한지식을전달한다.
자동차소프트웨어개발자가알아야할소프트웨어엔지니어링의기초
소프트웨어를개발한다는측면에서일반적인소프트웨어나차량용소프트웨어는별반다르지않다.하지만많은인원이참여하고오랜기간이소요되는개발프로세스가적용된다는점,사고발생시인명피해와직결된다는점,다양한공급자들이제공하는제어기들을통합해서개발한다는측면에서일반적인소프트웨어와차량용소프트웨어의차이는명확해진다.따라서품질이우수한차량용소프트웨어를개발하기위해서는뛰어난소프트웨어개발역량과더불어개발프로세스,소프트웨어의안전을확보하는방법,차량용소프트웨어의특징과개발방법,차량용네트워크에대한지식이필요하다.따라서이책은차량용소프트웨어엔지니어링의기초라고할수있는배경지식을전달하도록구성됐다.
★이책에서다루는내용★
■자동차소프트웨어의주요특징
■자동차소프트웨어개발에꼭필요한자동차개발과소프트웨어개발프로세스특징
■안전한자동차를개발하기위한기능안전기초지식
■자동차개발의주요표준인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년저자일동