SW Component
- SW Component란 부품의 개념으로 바라보고 다른 시스템을 대체할 수 있는 것이다. 3가지의 속성을 만족해야 한다.
- Structure
- Behavior
- Resource and non-functional requirements
AUTOSAR에서
- VFB : Structure, 어떤 component가 있어야 하고 그것의 structure가 뭔지만 정의하고 다른 component와 어떤식으로 연동될 수 있다라는 거까지 기술
- IB : Behavior, Component의 behavior를 어떻게 정의할 것인지
- System, ECU Description : Component가 돌아가는 환경과 어떻게 되야 하는지
AUTOSAR Component
- 기능은 encapsulate
- component 유형에는 3가지가 있다.
- Interface가 맞으면 direction으로 communication할 수 있는 component -> port x
- Port가 붙어있어 port로만 communication할 수 있는 component
- 한쪽은 port가 붙어있어서 port로만 communication을 할 수 있고, 다른 component와는 direction으로 communication할 수 있는 component
- Shipping an AUTOSAR Software Component
- Software Component Description(component name, port, interface, IB) + Component Implementation
-> arxml 파일로 만들어진다.
- 3단계로 modeling
- Virtual Functional Bus(VFB)
Component type을 정해준다.
- Software components : component name, port, interface 정의
- Compositions
- Interface
- Internal Behavior(IB)
- Runnable Entity
- Events
- Interaction with the Run Time Environment
- Implementation
- Component implementation
- Resource consumption of SW-Components
Port-Interfaces
- port는 port-interface와 연결시켜야 한다.
-> port를 정의하고 이름을 적고 port interface에 이름을 주고 종류를 설정한다. 그리고 그 interface의 data type을 정의한다.
- port의 종류
- P Port : Provided Port, 내부에서 외부로 제공할 때
- R Port : Required Port, 외부로부터 받아올 때
- port가 붙어있으면 component 내부에 있는 코드는 port하고만 communication해야한다.
- port interface 종류
- Client-Server : interface가 함수 형태로 규정(return 값, 함수 이름(operation name), parameter 규정)
- Sender-Receiver : data messaging 개념, 데이터를 일방적으로 보낸다.
- Parameter
- Non Volatile data
- Trigger
- Mode Switch
- Port Compatibility
Software Components 종류
- 모든 component는 Atomic SW-Component이다.
- 역할에 따라 여러가지로 분류
- Application Software Component
component안에 들어가 있는 기능이 일반적인 application기능이다. (ex. 제어시스템 - 센서로부터 데이터가 들어오면 controller가 받아서 actuator로 내보내는데 거기서 controller의 기능)
-> Application Layer에서 만들어진다.
- Sensor Actuator Software Component
센서와 엑츄에이터를 handling (ex. 제어시스템 - 센서로부터 데이터를 받아들이는 기능, 제어 로직에서 actuate하기 위해 actuator에 보내는 역할)
-> Application Layer에서 만들어진다.
- Sensor component는 센서로부터 읽어온 데이터를 받아오는 역할을 한다. Port를 통해 Application component로 보내고 받아온 데이터로 control을 위한 기능을 만들고, actuate component로 보낸다. Actuate component는 실제 하드웨어를 동작시킨다.
- Parameter Software Component
calibration(상황에 따른 초기 데이터를 가지고 있는 것) data를 handling
-> Application Layer에서 만들어진다.
- Composition Software Component
atomic component를 묶어서 하나의 component로 만들어 주는 것 -> 얘는 Composition
- Service Proxy Software Component
-> Service Layer에서 만들어진다.
- Service Software Component
-> Service Layer에서 만들어진다.
- ECU Abstration Software Component
MCAL과 Sensor-Actuate 사이에서 data를 전달해주는 역할
-> ECU Abstration Layer에서 만들어진다.
- Complex Device Driver Software Component
Complex Driver 자체를 만들어준다.
- NV(Non-volatile) Block Software Component
저장 기능 담당
Type, Prototype, Instance
- Component
- Type
- Prototype
- Instance : Type이나 prototype으로부터 실질적으로 만들어지는 객체
- Data
- Type : 무언가의 형식을 정해준다.
- Prototype : 다른 type들의 모임으로 새로운 type을 정의할 대 사용되는 type
- Instance : 그 type이 실질적으로 memory 상에 구현되는 것
Example
- 하나의 component type이다.
SeatHeating Control : Component name
HeatingElement, PowerManagement ... : Port name -> Prototype
HeatingElement : C-S의 Rport
PowerManagement : S-R의 Rport
Setting : C-S의 Pport
DialLED : S-R의 Pport
ecuMode : Mode Switch의 Rport
nv: NV data의 Rport
Component type을 정의한다는 것은 component의 이름을 정의하고, port prototype을 규정하고, 해당 prototype의 interface까지 규정하는 것이다.
- SeatHeatingControlAndDrivers : Composite component type
HeatingDial(Sensing 기능), SeatHeatingControl(Controller), SeatHeating(Actuator 기능) : prototype
SHDial, SHC, SH : prototype name
Composite component를 만들기 위해서는 prototype들에 대한 component type이 정의되어 있어야 한다.
- SeatHeatingControl, SeatHeating : Component type
HeatingElement : C-S의 R port
Setting : C-S의 P port
HeatingElementControl : Interface name, HeatingElement와 Setting 연결하기 위해 interface가 정의되어 있어야 한다.
SetPower : operation name
그 밑은 parameter와 parameter type 정의
- 실제 VFB model
Composite component는 모델링을 위해 존재하는 것이고 실제로 존재하는 것은 automic component이다.
VFB Model에서 해야하는 일
- Component type을 정의한다.
- Interface를 정의한다.
- Connection & Composition