Tag Archives: specification

Safety-driven MBSE methodology


제목: 안전 주도형 모델 기반 시스템 공학 방법론

Overview

2007년에 나온 논문으로 Specification에 대한 방법론을 기술한 것이다.

외부 행성 탐사 미션에 대한 안전 주도 설계 방법론의 적용을 보면서 참조문헌으로 찾은 논문이다.

Safety-driven model based system engineering methodology의 part 1, part 2가 있는데, 그 문헌에서 하나의 project에 대해서 나름 자세하게 내용을 기술하였다.

아래 그림은 seamless하도록 specification을 하기 위해 각 contents에 대한 traceability graph를 그린 것이다. 아래 그림에서 빨간색으로 표시한 것은 논문의 내용과는 다르게 필자의 임의로 수정한 것.

보면 알겠지만, ISO26262나 ARP4754a의 내용과 약간 유사하다고 볼 수 있다.

traceability

각 step에 대한 상세한 설명은 참조보고서에 기술되어 있다.

Part 1에서는 step-by-step으로 기술하였고, Part 2에서는 9 step을 다 완료하고 각 step에서 나온 결과물을 재구성하고 조합하여 정리한 버전으로 기술되어 있는데, 문서의 흐름이 step과는 맞지 않아서 첨엔 읽는데 혼동이 있었다.

또 하나의 흥미로웠던 점은 보고서에서 나온 방식대로 specification을 하게 된다면, 굳이 doors나 관리도구를 사용하기보다는 text-editor정도로도 충분하지 않을까 하는 생각을 갖게 되었다.

xml schema를 정의해서 위의 그림에 대한 field를 정의해서 coding하듯이 specification을 하는 것도 방법이 될 수 있겠다고 생각이 들었다. 그렇다면 text기반이기 때문에 변경이력 관리도 굉장히 편할 수 있을 것이고..

 

Model based Systems Engineering 방법론 설명

Step 1~Step 9를 정의하였으며, 각 단계에서 수행한 결과를 간단하게 기술하였다. Systems engineering에 대한 기본적인 지식이 있다는 가정하에 자세한 설명은 하지 않으므로, 내용이 잘 이해가 되지 않거나 자세히 알고 싶다면 원문을 참조바람.

 

Step 1: Identify Mission Goals, Requirements and Constraints

vehicle level에서의 목표, 요구사항, 제약사항을 식별하는 단계임. Step 1에서 수행한 결과물의 예제는 아래와 같음. 아래의 G1, G2, G3는 일종의 ID로서 해당 spec의 property(goal)을 의미하기도 하며, 도구에 의해 추적 관리가 가능하게 될 것임. 그리고 SV는 State variable의 약자로 거의 대부분의 Spec마다 붙어 있음. 쉽게 말하면 일종의 ‘소프트웨어의 변수’로 이해하면 될 듯.

  • G1. Characterize the presence of a subsurface ocean on an icy moon of an outer planet (Clark, 2007). (↑ACC4ACC5), (→HLR3, HLR4), (↓SV-81)
  • G2. Characterize the three-dimensional configuration of the icy crust of the icy moon of an outer planet, including possible zones of liquid (Clark, 2007). (↑ACC4, ACC5), (→HLR1, HLR2, HLR3)
  • G3. Map organic and inorganic surface compositions of the icy moon of an outer planet, especially as related to astrobiology (Clark, 2007). (↑ACC4, ACC5), (→HLR2, HLR3)
  • G4. Characterize surface features of the icy moon of an outer planet and identify candidate sites for future exploration (Clark, 2007). (↑ACC4, ACC5), (→HLR1, HLR2, HLR3)

 

  • HLR3. The mission shall image TBD% of the surface of the icy moon of the outer planet in spectra other than visual and infrared, to a resolution of TBD. (←G1, G2, G3, G4, G6), (→S/C-G1, S/C-G2, S/C-R1, S/C-R2),(↓2.1, SV-1, SV-101, SV-102)
    Rationale: The other bands of the spectrum provide insights into the chemical composition of the icy moon

여기서 화살표의 의미가 추적 관계에 의한 연결 방향으로 생각이 되는데, 첫번째 그림에서 필자의 임의로 수정을 한 부분이 있어서 큰 의미를 둘 필요는 없다고 생각이 됨.

 

Step 2: Define System Accidents or Unacceptable Losses

시스템과 관련된 사고를 정의한다.

 

  • ACC1. Humans and/or human assets on earth are killed/damaged. (↓PC1, H5, SV-77, SV-78, SV-79)
  • ACC2. Humans and/or human assets off of the earth are killed/damaged. (↓PC1, H6, SV-77, SV-78, SV-79)
  • ACC3. Organisms on any of the moons of the outer planet (if they exist) are killed or mutated by biological agents of Earth Origin. (↓H4)
  • ACC4. The scientific data corresponding to the mission goals are not collected. (↓G1, G2, G3, G4, G5, G6, G7, H1, SV-80)
  • ACC5. The scientific data corresponding to the mission goals is rendered unusable (i.e., deleted and/or corrupted) before it can be fully investigated. (↓G1, G2, G3, G4, G5, G6, G7, H2, H3, SV-80)

 

Step 3: Define High-level Hazards

상위 수준에서의 위험요인을 정의한다.

 

  • H1. Inability of Mission to collect data. (↑ACC4), (↓SV-85)
  • H2. Inability of Mission to return collected data. (↑ACC5), (↓SV-86)
  • H3. Inability of Mission scientific investigators to use returned data. (↑ACC5), (↓SV-7, SV-88)

 

Step 4: Define High-level Safety-related Constraints

상위 수준의 안전 관련 제약사항을 정의한다.

  • H1. Inability of Mission to collect data. (↑ACC4), (↓SV-85)
    • SC1. The mission must have the necessary functionality for data acquisition at the required times. (←H1), (→MOC-G1, MOC-G2, MOC-G3, MOC-G4), (↓2.1, 2.2, 2.4, SV-85)
  • H2. Inability of Mission to return collected data. (↑ACC5), (↓SV-86)
    • SC2. The mission must be able to return data at the required times. (←H2), →MOC-G1, MOC-G2, MOC-G3, MOC-G4), (↓2.1, 2.3, 2.4, 2.5, SV-86)
  • H3. Inability of Mission scientific investigators to use returned data. (↑ACC5), (↓SV-87, SV-88)
    • SC3. Mission scientific investigators must be able to use the data from the mission at the required times. (←H3), (↓2.1, 2.3, 2.4, 2.5, SV-87, SV-88), (→MOC-G1, MOC-G2, MOC-G3, MOC-G4)

 

Step 5: Identify Environment and Customer Constraints

skip

Step 6: Perform High-level Functional Decomposition

상위 수준의 기능에 대해 decomposition을 하면서 grouping을 수행한다. Design structure matrix도구를 사용한다. 시스템 수준에서의 여러가지 기능을 sub-system으로 allocation하기 위한 단계라고 볼 수 있다. 설계 원칙인 loosely coupling, tightly cohesion을 최대한 준수하기 위한 방법론이다. 아직 여기까지는 safety관점의 아키텍처 평가는 수행하지 않았다.

DSM에 대한 내용은 다음의 링크를 참조(Design Structure Matrix 활용)
DSM을 통해 수행한 결과 다양한 function들을 그룹화하여 4개의 sub-system으로 정리를 했다.

dsm

 

Step 7: Design High-level System Control Structure

sub-system을 정의하고 각 요소간의 구조를 정의한다. 시스템 아키텍처 수준의 활동이라고 볼 수 있음

moc

 

Step 8: Perform Preliminary Hazard Analysis

ARP4754a의 시스템 예비 안전 평가와 유사하다. DSM및 Control structure를 작성한 것을 가지고 hazard를 고려하여 시스템 설계가 적절한지의 여부를 평가한다. 이 작업을 하다가 DSM 및 control structure의 단계로 다시 돌아가서 수정 작업을 할 수도 있다.

pha

 

Step 9: Define System Element Specifications

각각의 sub-system에 대해 기술한다. 여기서부터는 DO-254 혹은 DO-178C의 단계(혹은 ISO26262-6의 단계)에 해당한다.

Step 9의 내용은 Generating requirements for complex embedded system using State Analysis를 참고

 

결론

  • Specification이 비교적 seamless하게 정의되어 있다.
  • Specification단계를 절차화하여 이해하기 쉽다. (그런데 생각해보니 ARP4754나 ISO26262도 마찬가지 인거 같기도 한데.. 이 논문이 좀 더 step이 명확하다.)
  • 사례가 있어서 specification 내용을 보고 배우기 좋다.
  • 수준별 specification의 scope의 혼란이 많지 않을 것으로 생각된다.

 

보다 자세한 설명이 필요하다면 원문을 참고하거나 댓글로 문의사항을 남겨주기 바랍니다.

Advertisements

(paper) 외부 행성 탐사 미션에 대한 안전 주도 설계 방법론의 적용


우리나라의 우주 산업도 언젠간 이런 level까지 올라갈 수 있기를 기대한다. domain은 우주이지만, 실제 내용은 Specification, safety engineering에 대한 내용이다.

(핵심 내용) 주요 기술 4개의 integration

  1. Intent Specification, a framework for organizing system development & operational information in a hierarchical structure
  2. 사고의 인과관계를 STAMP model로 제시
  3. STAMP기반 위험원 분석(STPA)
  4. State Analysis, 모델 기반 시스템 엔지니어링 접근법

논문에서 하고 싶은 말이 얼마나 많았던지 24페이지인데, 개인적으로는 사실 100페이지로도 부족할 것 같다. 24페이지로 상당히 압축을 잘 한 것 같다. (그래서 참조문헌을 다 뒤져봐야 내용을 온전히 이해할 것 같은 심오함은 약점)

Intent Specification

Intent spec hierarchy

출처: Brandon D. Owen 2007

각 Level에 대한 설명은 아래와 같은데, 본 논문에서는 Level 0~3에 대하여 focus를 맞추고 있음

Level 0: a project management view and insight into the relationship between the plans and project development

Level 1: the customer view and assists system engineers and customers in agreeing on what should be built and whether that has been accomplished. It includes system goals, highlevel requirements, design constraints, hazards, environmental assumptions, and system limitations.

Level 2: (System Design) the structure and content needed for engineers to reason about the system in terms of the physical principles and laws upon which the system design is based. It documents the basic system-level design decisions made to satisfy the requirements and constraints at Level 1.

Level 3: (Blackbox Behavior level) enhances reasoning about the logical design of the system as a whole and the interaction among the components as well as the functional state without distractions from implementation issues. This level acts as an unambiguous interface between systems engineering and component engineering to assist in communication and review of component blackbox behavioral requirements and to reason about the combined behavior of individual components using informal review,
formal analysis, and simulation. The models at this level are formal and can be both executed and subjected to formal analysis (for example, completeness and consistency
analyses).

Level 4,5: provide the information necessary to reason about individual component design and implementation issues.

Level 6: provides a view of the operational system

 

STAMP와 STPA를 기반으로 한 안전 주도 설계 방법

Step 1: Identify Mission Goals, Requirements, and Constraints.
Products: Level 1 intent specification of mission goals and constraints

Step 2: Define System Accidents or Unacceptable Losses.
Products: Level 0 intent specification documenting the accidents.

Step 3: Define High-level Hazards.
Products: Level 1 intent specification documenting high-level hazards.

Step 4: Define High-level Safety-Related Constraints.
Products: Level 1 intent specification documenting safety constraints.

Step 5: Identify Environment and Customer Constraints.
Products: Level 1 intent specification of environmental constraints and environmental
assumptions, customer-derived system design constraints, and customer programmatic constraints.

Step 6: Perform High-level Functional Decomposition.
Products: Level 1 intent specification documenting the functional decomposition.

Step 7: Design High-level System Control Structure.
Products: Level 1 intent specification documenting the high-level control structure.

Step 8: Perform Preliminary Hazard Analysis using STPA and Create Hazard Log.
Products: Level 1 intent specification documenting STPA hazard analysis.

Step 9: Define System Element Specifications.
Products:
• Level 1 intent specification documenting goals, requirements, design constraints, and safety constraints for each subsystem or functional element (including subsystems and/or functional elements defined both before Step 9 and during the iterative
sub-steps of Step 9).
• Level 2 intent specification documenting design decisions made to implement the requirements and constraints in Level 1.
• Level 3 intent specification documenting the formal design of the control system.

Step 10: Perform Validation Tests.
Products: Test results.

Step 11: Generate Designs and Software Code.
Products: Design specifications and software code

 

위의 방법론을 이용하여 Specification 사례가 있는데, seamless하다는 느낌을 받는다. 굉장히 논리적이고 설득력이 있어보인다. (이 정도까지 해야 하는가? 라는 생각이 살짝 들기도 하지만 훌륭하다. )

시스템 Level에서의 Goal, Requirement, Constraint를 만들고, 이를 바탕으로 design decision을 만들고, 이것을 바탕으로 functional model을 만들고, DSM(design structure matrix)방법으로 design을 하고, State analysis를 하는 방식으로 굉장히 깔끔하게 흘러간다.

 

굉장한 Spec덕후가 아닌가 싶음…full paper를 보고 싶은데.. 1000페이지 되어도 좋으니 말이다.

Spec 논문 오랜만이다. 대학원 때 이후로 첨이니…

 

Specification할 때 abstraction의 정도는 어느 정도가 적당할까?


black box testing의 가장 큰 문제는 아무리 많은 시험을 해도 충분하지 않다는 것이다. 마음의 평안을 주지 못한다. 약간의 죄책감을 벗어나게 할 뿐, 여전히 두 다리 뻗고 잠을 자기에는 마음이 편치 않다는 점이다.

갑자기 13245363232556버튼을 연속으로 눌렀을 때 시험대상이 이상한 짓을 할지 모르는 일이므로, 별의별 키 조합을 만들어서 입력을 해야 한다.

대학원 박사과정때 블랙박스 시험에 대해서 연구하고 있었는데, 이런 사실을 간파하고 이 문제를 어떻게 하면 좋을지에 대해서 고민하고 동시에 진로에 대해서 고민하면서 몇달간 방황을 했었다.

블랙박스 시험 접근법이란게 이런 한계를 지니고 있고, 사실 비용이나 노력대비 효용이 낮을 가능성이 높다.

automata혹은 state machine이론에서 나오듯이 동일한 behavior를 가지는 모델은 수만개가 될 수 있으며, 개발자가 최적화해서 만들지 않은 이상 test oracle model을 최적화 된 모델로 모델링을 해서 test case를 생성한다면, 이는 필연적으로 missing case가 생길 수 밖에 없을 것이기 때문이다. (이해 하셨죠?)

그렇다면 logic을 설계할 때의 specification으로 넘어가보자. 지금 나는 stateflow로 모델링하려고 한다. black box testing이 아닌 white box testing을 할 수 있으며, requirement based testing을 사용하려고도 한다.

whitebox니까 상황이 좀 나아졌다고 생각할 지도 모르겠다. Power shift 2nd 과제에서 겪은 바로는 상황은 아주 조금 나아졌을 뿐 크게 좋아진 것은 아니라는 점이다.

직관적으로 명세하긴 했으나 추상화를 거의 하지 않은 모델의 경우는 code의 양도 늘어나고 실제로 시험해야 하는 테스트의 갯수도 늘어난다.

직관적으로 명세한 것을 조금만 더 생각해서 추상화를 시키면 code의 양도 줄일 수 있고, 실제로 시험해야 하는 테스트의 갯수도 구조적 커버리지 관점에서 줄일 수 있다.

그런데 추상화시킨 모델 기반의 구조적 커버리지만 고려해서는 문제가 발생할 수 있다는 점인데, 실제로 추상화시킨 모델이 직관적 모델과 일치하지 않는 경우에 발생할 수 있다는 점이다.

그러므로, 추상화모델과 직관적 모델간의 차이가 없음을 보이는 작업이 tough했고, 직관적 모델로부터 생성한 test case를 추상화된 모델에 적용하려면 어느 test case가 적절한 것인지를 판단하는 작업이 쉽지 않았다. 만약 직관적 모델로부터 생성한 test case의 갯수가 별로 없다면 크게 상관은 없겠다.

Anyway, 궁극적으로는 다음의 사항들을 고려해야만 할 것이다.

  1. 추상화시킨 모델로 구현을 해야 할 것이다. 하지만 이 경우 추상화된 모델이 직관적 모델과 일치함을 입증해야 한다.
    1. 추상화 모델의 behavior space의 total behavior set에 대해 직관 모델도 동일한 행동을 보여야 한다.
    2. 직관적 모델의 behavior space의 total behavior set에 대해 추상 모델도 동일한 행동을 보여야 한다.
  2. 추상화된 모델의 test로는 test의 양이 부족할 수 있다.
    1. 요구사항이 너무나도 추상화되어 유용성이 떨어질 수 있다.
    2. user scenario관점에서 보다 직관적인 test scenario를 고려해야 할 수 있다.
    3. 직관적 모델의 test set으로부터 추려내기 위한 방법을 고민해야 할 수 있다.
    4. requirement based testing방법을 적용해야 한다.

너무 추상화를 시키는 것도 시스템의 이해도를 떨어트릴 수 있으므로 over하지 않아야 하고, 시스템의 성능적 특성을 고려하기 위해서는 적당해야 하는데, 그 정도를 표준화시킬 수 있을까? 정량화 시키는 것이 가능할까?