[현대오토에버 SW스쿨 2기] 자동차 SW개발 프로세스(1)

태리·2024년 2월 12일
2
post-thumbnail

이번 포스팅 포함 향후 몇개 포스팅 내용은 '자동차 SW 개발 프로세스'이다.🚗 💨
자동차 SW 개발 프로세스 가 뭐지..? 라고 생각할수도 있다. (나도 그랬으니까 하하,,)
뭔가 처음에는 감이 잘 안잡혔는데, 교육을 들으면 들을수록, 왜 이런 과정들이 존재하며 왜 굳이 이런 복잡한 과정들을 산업에 적용하려고 하는지 알 것 같았다 ㅎㅎ..

이전에 학교에서 '소프트웨어공학' 에서 배웠던 내용과 겹치는 부분이 조금 있지만, 뭔가 이렇게 개발 프로세스 하나를 깊게 파고들었던적은 없다. 때문에 정말 재밌게 배울수 있었다..

이번 강사님은 현대 오트론를 다니셨었고, 현재 A-SPICE 관련해서 현직자분들 대상으로 강의를 하시는 분이시다!
자 그럼 시작..! 🎬


소프트웨어 개발 프로세스가 필요한 이유

우선 모든 개발 방법론을 적용하는 공통적인 이유는 결국? Quality, 즉 제품의 품질을 높히기 위해서임.

그래서 이 Quality 라고 하는것이 어떻게 정의되어 왔는지 살펴보면

Quality

W.E.Demming - 품질은 고객의 요구를 만족시키는 것

J.M.Juran -품질은 사용 목적에 일치되는 정도

P.B.Crosby - 품질은 고객 요구사항(기대)에 대한 적합도

⇒ 즉, 명시적, 묵시적 요구를 만족시키는 제품 또는 서비스의 능력에 관한 특성이라고 할 수 있음.


그리고 이 Quality 라는것은 크게 2가지로 나눌 수 있음.

1. Process Quality

  • 프로세스 목적을 달성하기 위한 프로세스가 정의되었는가?
    • 프로젝트 계획 수립, 표준 프로세스 정의 등
  • 정의된 프로세스에 따라 수행되고 있으며, 통제하고 있는가?
    • 요구사항 분석 활동, 품질보증 활동 등
  • 지속적으로 프로세스를 개선하고 있는가?
    • 예) 결함 데이터 등 프로세스 수행 결과 측정, 회고/교훈(Lessons Learned) 활동 등

즉, 말그대로 제품을 만드는데 있어 Process 의 퀄리티를 말하는 것.

따라서 아래와 같은 PDCA 사이클을 통해 과정 자체의 질을 높여야한다!
→ PDCA(Plan, Do, Check, Act)


2. Product Quality

  • 개발 단계별 산출물들이 이전 단계 산출물에 기반하여 만들어 졌는가? (추상적 관점)
    • 예) 아키텍쳐 설계서와 요구사항 명세서 간 추적성
  • 개발 단계별 산출물들이 이전 단계 산출물과 일관성을 유지하고 있는가? (일관성 관점)
    • 예) 아키텍쳐 설계서와 요구사항 명세서 간 일관성
  • 최종 산출물이 고객 요구사항을 만족하는가?
    • 예) 고객 합동 검토 및 인수 테스팅을 통한 고객 요구사항 만족 여부 확인

-> 만들어진 혹은 개발된 산출물 에 대한 퀄리티를 말함.


자자.. 그렇다면 이러한 퀄리티를 도대체 어떻게 높일 수 있을까?

앞으로 계속 반복해서 설명하겠지만, 표준 의 필요성이 여기서 부각된다..
견고하고 올바른 '틀' 과 '규칙' 을 만들어서 점점 이상적인 방향으로 흘러가는것...

이 '틀'과 '규칙' 을 한 단어로 정의하면 표준이 됨!

수많은 표준이 있지만, 우선 자동차계에서 굉장히 🔥핫한 표준 3가지는 다음과 같음

  • A-Spice
    • 요놈은 국제표준은 아니지만, Automotive 분야에서 마치 국제표준처럼 쓰이는 표준
    • == 산업계 표준 (defacto standard)
    • 독일자동차협회 소속임
    • ISO/IEC 15504 프로세스 평가 모델과 ISO/IEC 12207 소프트웨어 생명주기 프로세스를 기반으로 하고 있음
    • 자동차 산업에서 소프트웨어의 품질과 안전성을 확보하는 데 있어 필수적인 기준
  • ISO 26262 or ISO 21448
    • 자동차 전기/전자 시스템의 기능 안전에 관한 국제표준
    • 자동차가 설계, 제조, 운영 중에 발생할 수 있는 전기적/전자적 실패로부터 발생할 수 있는 위험을 최소화하는 방법을 제공
    • 자동차 설계 초기 단계부터 제품의 수명 주기 전반에 걸쳐 적용되며 특히, 자율주행 차량과 같이 고도로 복잡하고 안전이 중요한 시스템 설계에 있어 핵심적인 역할을 함!
  • ISO/SAE 21434
    • 자동차 산업의 사이버 보안에 관한 최신 국제표준
    • 자동차의 설계, 개발, 제조, 운영, 폐기에 이르기까지 전체 수명 주기에 걸쳐 사이버 보안 위험을 관리하는 방법론을 제시
    • 커넥티드 카, 자율주행 기술이 발전함에 따라, 사이버 보안은 선택이 아닌 필수가 되었기 때문에 이 표준은 사이버 보안 위협에 대응하기 위한 핵심 지침을 제공함

→ 현재 자동차계에서 위 3개가 굉장히 큰 이슈


이제 SW 개발 프로세스와 생명주기 자체에 대해 좀 더 자세히 알아보자.

소프트웨어 개발 프로세스와 생명주기

프로세스의 정의란?❓

  • 고객의 요구사항을 만족하는 제품을 만들기 위한 절차/방법, 도구/장비, 인력의 통합
  • 결국 일을 잘하기 위해서 필요한 것들을 통합시킨 것
    => Glue 라고 생각하면 편하다고 함. 결국에는 모든것을 합쳐서 하나의 큰 프로세스가 되는거니까!

소프트웨어 개발 생명주기란?❓

소프트웨어 개발 생명주기(SDLC)는 아이디어에서부터 제품 출시까지의 여정을 구조화한 모델임! 대표적인 모델로는 다음과 같은 것들이 있음.

  • “Big Bang” Approach
    • 주먹구구식 개발 모델(Build & Fix Model)
  • 폭포수 모델(Waterfall Model)
    • 폭포수처럼 떨어지는 느낌이라, 한번 다음 단계로 넘어가면 뒤돌리기 어려움..
  • 원형 모델(Prototyping Model)
  • 나선형 모델(Spiral Model)
    • 얘는 좀 특이하게, 위험 분석을 사이클마다 좀 크게 잡아놨음
  • “Evolutionary” Approach

⭐️ V-Model 프로세스 ⭐️<- 제일 중요

  • V자여서 V-model인것도 있지만, 개발 및 확인(Verification and Validation) 이여서 V
  • 테스팅 중 이슈가 발생하면 그에 상응하는 생명주기로 돌아가서 문제를 찾으면 됨
  • SDLC(Software Development Life Cycle) STLC(Software Testing Life Cycle)
  • 리뷰’가 너무나도 중요!
    • 리뷰를 제대로 하려면, 각 프로세서 문서를 사용하는 사용자가 리뷰에 참여해야함.
    • 리뷰 체크리스트있으면 좋음.
      • 아니 사실 좋은게 아니라 그냥 무조건 있어야함 ㅋㅋ...


아 이건 강사님한테 따로 여쭤본거지만 A-Spice에서는 PM 파트에 프로젝트 성격에 따라서 프로젝트의 라이프 사이클을 정하는 기준도 있을 만큼 굉장히 디테일 한 표준이라고 하심...

다음 글부터는 본격적으로 A-SPICE에 대한 디테일한 내용을 정리할 예정!!

본 포스트는 디지털선도기업인 현대오토에버&현대엔지비와 전문교육기관인 한국전파진흥협회가 주관하는 현대오토에버 모빌리티 임베디드 SW 스쿨 2기 교육을 통해 배운 내용입니다. 😀

profile
일단 배우는거만 정리해보자 차근차근,,

2개의 댓글

comment-user-thumbnail
2024년 6월 19일

저도 임베디드 스쿨 준비하고 있는데 도움 많이 되네요!

1개의 답글