5.3. SWE.3 (Software Detailed Design)

Table of contents

이번 단계에서는 “CrashDetector”의 SWC 상세 설계 및 구현을 예로 설명한다.


5.3.1. Create SWUD

  • 이전 SWE.2 챕터에서 만든 CrahsDetector에 대한 SWUD를 생성한다.


5.3.2. SWUD 자동 생성

  • 가상 RTE (Virtual RTE) 자동 생성
    • 표시와 같이 CrashDetector의 SW-C와 상호작용하는 가상의 RTE가 자동 생성된다.

💡

Virtual RTE는 SWC의 RE(Runnable Entity)를 호출하고 SWC가 호출하는 RTE API를 제공한다.

  • SW-C 자동 생성
    • 생성한 Component의 Runnable Entity가 자동 생성된다

5.3.3. RTE 코드 생성 및 빌드 방법

  • 코드 생성 및 확인.

💡

코드는 상단 바 메뉴에 표시한 버튼으로 확인 할 수 있다.
( 바 메뉴가 없을 경우 View > Active Code View 선택 or Alt+2 )


5.3.4. 알고리즘 코드 생성

  • Algorithm 구현을 위한 코드 파일 생성.
    • ex) mainAlgorithm, safingAlgorithm
  • 변수 정의

    ex) [main, safing]AlgoResult : 알고리즘 연산 결과 저장
    ex) [main, safing]AlgoData : 알고리즘 계산 상수 (Calibration Data)


5.3.5. “CrashDetector” SW-C 내부 구조에 대한 상세 설계

  • SWUD VOPC Diagram
    • SWUD_VOPC_TimingEvnet_250ms 를 열어 RTE_CrashDetector, MainAlgorithm, SafingAlorithm 파일을 Drag하여 배치하고, Dependency를 사용하여 #include 관계를 정의한다.
- ※ Code Generate 실행 시 #include 구문이 추가 된 걸 확인 할 수 있다.
  • SWUD Workflow Diagram
    • SWUD_Workflow_TimingEvent_250ms 를 열어 아래와 같이 설계를 수행한다.
- Auto Realize 실행 하여 Function 을 생성하고 Argument 를 정의한다.
  • Workflow 기반의 코드 추가

    Interaction Operator “opt” 선택 > Context Menu > if ( Feature > General > Type 동일 )
    Diagram 선택 > Context Menu > Generate Workflow Code
    생성된 코드는 RunnableEntity의 Feature > Implementation 탭에서 확인 할 수 있다.

  • Crash Impact 값을 획득하고 연산하여 Airbag을 전개하는 시나리오의 코드 작성
    • RunnableEntity(REtCrashDetector)
- Function (excuteMainAlgorithm)
- Function (executeSafingAlgorithm)
  • 설계 코드 생성 및 빌드 오류 확인