2017년 1월 12일 목요일

A Requirement Specification Language for AADL



참석자
Suzanne Miller - principal researcher at the SEI (the Carnegie Mellon University Software Engineering Institute)
Peter Feiler - The researcher at the SEI
요약
AADL의 핵심은 자동차와 같은 필수 안전 소프트웨어 시스템에 있다. 우리가 다루고 있는 것은 임베디드 소프트웨어 시스템, 특히 필수 안전에 초점을 두고 있다. 상황이 잘못되어도 이 시스템이 작동할 때까지는 감지하기 어렵다.
90년대 연구가 시작되었고, 이를 모델링 아키텍처에 대한 업계 표준으로 바꾸고, 강력한 의미 체계를 사용하여 시스템 작동 방식을 분석적으로 평가할 수 있었다. 이를 가상 시스템 통합이라는 용어를 사용했다. 이 표준은 2004년에 처음 출판되고, 항공 산업 및 다른 산업 분야에서도 이를 채택했다.
임베디드 시스템을 다룰 때 AADL의 초점은 소프트웨어, 하드웨어 및 다루는 물리적 시스템 특성을 파악하여 상호 작용을 이해하는 데 집중할 수 있도록 하는 것이다. 발견 한 문제 중 80%가 단위 테스트를 끝낼 때까지 발생하지 않기 때문이다.
시스템 품질을 개선할 때 개발 품질은 잘 개선하지만 요구사항에 반하는 품질이 문제였다. 요구사항을 정의하는 방식을 개선해야 하고 최종 테스트뿐만 아니라 개발 프로세스 전반에 걸친 품질 활동을 수집해야 한다. ALISA라는 점진 보증(incremental assurance)을 다루는 프로젝트가 시작되었다.
전통적인 개발에서 요구사항으로 모든 것을 모델링하고 시스템으로 만들어져야 하는데 모호한 요구사항이 있다. 요구사항을 정의하는 방법은 텍스트 표기를 처리하고 이러한 부분을 시스템으로 추출하는 것이다. 그런 다음 누락되었는지 확인한다.
관건은 그 연구와 범위를 보완하는 것인데 발생한 문제의 80% 정도는 공식적인 부분이 아니라 단순히 놓치는 것이 많다는 것이다. 여기에 접근하는 방식이 있다. 아키텍처 주도형 요구 사양이라고 부른다.
우리는 건물을 다시 짓는 방식으로 요구 사양, ReqSpec 표기법을 사용했고 이를 기반으로 AADL 모델과 관련된 요구 사양에 대한 메타 모델이 나왔다. 이러한 메타 모델에서 수행하고자하는 작업은 요구 사항을 지정하는 기능에 초점을 맞추거나 목표를 수립한다. 요구 공학이란 목표 지향적이며 시스템에 대한 요구 사항이기 때문이다.
하지만, 두 가지 요구 사항을 명확하게 구분하려는 경우 가끔 서로 충돌 할 수 있지만 해결하지 않는다. 따라서 모든 것을 표현할 수 있는 공간을 제공해야하고, 모든 사람들이 모든 요구 사항과 가정에 대해 이야기하고 있는지 확인해야 한다.
그런 다음 시스템 요구 사항을 정의한 후 검증 할 필요가 있다. 경우에 따라 아키텍처 언어를 사용하여 내부 아키텍처를 설명하지 않고 시스템을 운영 컨텍스트로 설명한다.
첫번째는 수행 시나리오로 설명할 수 있다. 이 곳에서 모델을 발견한다. 여기에 시스템이 있고 모든 엔티티가 있다. 그리고 단순한 것의 각각을 덮어서 다양한 각도에서 덮어 씌웠을 것이다. 기본적으로 요구 사항 정의는 목표를 모델링하는 것뿐만 아니라 목표를 모델링하는 환경도 모델링하는 것이다.
수집된 요구사항 문서가 있는 경우 이를 바탕으로 시스템 요구 사항을 정의 할 수 있고, 아직 수집된 요구 사항이 없다면 그 시점에 아키텍처 맥락에서 정의하고 싶을 것이다. 기본적으로 요구 사항 적용에 대해 두 가지 형식을 가지고 있다. 하나는 문서 구조를 따르고 다른 하나는 아키텍처 요소를 따른다. 상호 연결하여 개별 이해 관계자에게 완전한 추적성을 제공할 수 있습니다.
두번째는 아키텍처를 발전시키는데 시스템 전체가 필요하다. 세부적인 아키텍처가 필요하지만 일반적으로 하지 않는 경향이 있다. 하지만 우리 표기법을 사용하면 매우 자연스럽다. 그것은 당신이 OK라고 말하는 것처럼 쉽고, 다음 단계 설계를 할 것이다.
이 모든 과정이 요구 사항을 정리하는 점진적 프로세스가 되는 것과 동시에 다음 단계 설계에 사용되고 다음 단계 설계를 마친 즉시 상위 레벨 요구 사항은 이 레벨에서 충족되기 때문에 점진 보증 활동을 받게 된다.
우리는 실제로 Joint Multi Role이라는 육군 기술 프로그램에 적용했다. 프로젝트를 수행하고 계약자의 요구 사항을 가져와서 이 표기법으로 정리했다. 초기에 몇 가지 구멍과 몇 가지 잠재적인 문제를 파악할 수 있는지 알아 보면서 검증하였다.


SW 공학기술 적용 및 SW 현장적용


추진배경 및 필요성




사업수행 및 목표






Golang와 Go의목적


Go의목적



Go의디자인철학


  • performant
  • multiple-cores
  • concurrency
  • compiled
  • network





Go 언어의목적은? -> Concurrency!!


Go의핵심컴포넌트