5.2.2. 컴포넌트 설계
Table of contents
2.1. 컴포넌트 식별
요구사항을 해석하여 기능 별, 시퀀스 별(In/Processing/Out) 등의 기준으로 재사용이 용이하도록 컴포넌트를 식별한다.
이 프로젝트에서는 SWUC의 AirbagControlUnit 시스템을 [ MainSensor, SafingSensor로부터 충돌값을 입력받고, CrashDetector에서 상황을 판단한 후 DriverAirbag은 에어백을 구동한다. ]의 시나리오대로 MainSensor, SafingSensor, CrashDetector, DriverAirbag으로 컴포넌트를 식별했다.
컴포넌트의 이름에 C/C++의 Predefined Macro 이름을 그대로 사용하지 않도록 한다. Rhapsody 동작의 오류를 유발한다. (enum, switch, define, const 등)
그 외 금지사항 : 언더바( _ ), 특수문자
2.2. 컴포넌트 생성
컴포넌트 식별 단계에서 설계하기로 결정한 컴포넌트를 생성한다.
- 실행 위치
SoftwareArchitecturalDesignmodel - SWAD_Subsystem_DriverAirbag - LayeredArchitecturePkg - ApplicationLayer - RapidAUTO Context Menu(마우스 휠 버튼 누름) - Add SensorActuatorSwComponentType 클릭
- 같은 방식으로 SW-C 종류에 유의하여 총 4개의 컴포넌트를 생성한다.
이 시스템에서 CrashDetector 컴포넌트는 하드웨어와는 독립적인 순수 Processing으로 식별하였기 때문에 Application SW-C로 설계한다.
나머지 MainSensor, SafingSensor, DriverAirbag은 하드웨어(센서/구동)와 연결되어 있는 컴포넌트로 식별하였기 때문에 Sensor Actuator SW-C로 설계한다.
일반적으로 Sensor 및 Actuator 하드웨어와 SensorActuator SW-C를 1 : 1로 설계하기를 권장한다.
2.3. UCR VOPC Diagram 설계 - SwComponentPrototype 적용
UCR은 Layered Architecture에 설계한 컴포넌트를 사용하여 기능 요구사항을 구현하는 단계이다.
SW-C를 생성하면 CompositionSwComponentTypes에 SwComponentPrototypes가 생성된다. 이 설계요소는 SW-C의 부품적 특성을 띠고 있어 VOPC 다이어그램에서 SW-C간의 연결(Port/Interface)를 표현하는 데 사용한다.
①UCR의 VOPC 다이어그램을 더블클릭
②CompositionSwComponentType의 Subsystem_DriverAirbag을 다이어그램에 드래그
- Subsystem 블록의 크기를 적절히 조절하고, SwComponentProtoTypes에서 각각의 컴포넌트 프로토타입을 드래그하여 Subsystem 블록 안에 위치시킨다. 왼쪽 위에서부터 UCR(기능요구사항)의 시퀀스 순서대로 배치한다.