소프트웨어공학 (Software Engineering)

[ASPICE 핵심 컨셉#6] "Evaluate", "Verification Criteria" and "Ensuring compliance"

깡또아빠 2022. 10. 9. 23:11

해당 글은 ASPICE Annex D. Key concepts를 참고하여 작성되었습니다.


 

평가한다 (Evaluate): 시스템 아키텍처 (SYS.3), 소프트웨어 아키텍처 (SWE.2)의 상세 설계의 여러 대안을 평가한다.

 

먼저 아키텍처에 대해서 간단하게 얘기해보면, 

아키텍처는 구현을 위한, 문제 해결을 위한 접근이 필요합니다. 즉 What 보다는 How에서 논의가 필요합니다.

구성요소는 어떻게 이뤄지고, 구성 요소들간에 관계, 그리고 이 구성요소들의 외부로 보여지는 속성들은 어떤지를 고민해야 합니다. 

 

아키텍처가 필요한 이유는 이해관계자와 의사소통할 산출물이며, 비 기능 요구사항의 실현 가능성을 분석할 수 있게 합니다. 또한 이전 개발로부터 재 사용할 수 있게끔 활용될 수 있습니다. 

 

아키텍처를 평가한다 (Evaluate) 는 것은, 여러 대안 How 중에서 평가 요소를 가지고서 어떤 아키텍처로 접근하는 것이 바람직할 것인가를 결정하는 것을 말합니다. 

 

M사 코드프레스, 소프트웨어 요구사항 기초 자료 강의 중 발췌

 

같은 기능을 하는 시스템이라도 위와 같이 다르게 아키텍처를 그릴 수 있을 것 입니다. 

기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성 등 다양한 평가 요소에서 각 아키텍처가 상대적으로 용이한 부분들이 있을 것이고, 프로젝트 상황에서 적용 가능 여부 등을 평가함으로써 적절한 아키텍처를 선택해야 할 것입니다. 

 

Evaluation of alternative solutions is required for system and software architectures as well as for
software detailed designs. The evaluation has to be done according to defined criteria. Such evaluation criteria may include quality characteristics like modularity, reliability, security, and usability, or results of make-or-buy or reuse analysis. The evaluation result including a rationale for the architecture/design selection has to be recorded.


검증기준 (Verification Criteria):

(1) 요구사항 검증을 위한 정성적/정량적 충족 기준을 의미,

(2) 요구사항이 제약 조건 내에서 만족함을 증명하기 위한 기준

(3) 테스트 케이스와 동일하지는 않고 입력으로 활용되며, 테스트 방법 및 테스트 환경 정의에서도 활용됨

 

Verification aspects which cannot be covered by testing are covered by the verification process (SUP.2).

 

Criteria for unit verification ensure compliance of the source code with the software detailed design and the non-functional requirements. Possible criteria for unit verification include unit test cases, unit test data, coverage goals and coding standards and coding guidelines, e.g. MISRA. For unit testing, such criteria shall be defined in a unit test specification. This unit test specification may be implemented e.g. as a script in an automated test bench.

 

 

검증 기준 예시

A 시스템은 고장이 발생하는 경우, 280ms 내에 Safe sate 1. 로 천이해야 한다.

 

위 검증 기준을 통해서 테스트 케이스, 방법을 고민할 때에는 상세화시킬 수 있을 것 입니다.

 

예를 들면, 어떤 고장인지 명세해야 겠죠? 온도 조건인지, CAN time out 인지 등 구분이 필요할 것 입니다.

또한 280ms가 평균 값인지, 최대 값인지, 허용 오차는 얼마인지도 알아야 할 것이고,

테스트 방법은 Bench test, fault injection test, 차량 테스트 등 어느 수준에서 검증할 것인지 등 여러 고민을 해보게 할 수 있을 것 입니다. 


준수보장 (Ensuring compliance): 테스트 명세는 V 모델 왼쪽 개발 프로세스의 산출물을 충족하도록 개발되어야 함을 의미

 

Compliance with an architectural design means that the specified integration tests are capable of proving that interfaces and relevant interactions between 
• the software units,
• the software items and
• the system items
fulfill the specification given by the architectural design.

 

 

이상 읽어주셔서 감사합니다.