SYS.3는 시스템 개발을 완전히 끝내야 하는 단계이다.
여기서 SYS.2의 활동을 한 이유가 확 드러난다.
당신의 제품은 고객의 제품에 들어가서 하나의 부품이 되기 전에는
약간 여러 부품에도 적용될 수 있는 유연한 상태의 사양서와 설계도를 가지고 있다.
즉 고객의 제품에 커스터마이징만 되면 바로 이용할 수 있을 정도의 사양서와 아키텍쳐를
가지고 있다는 것이다.
비유해서 말해보자면 기본적으로 틀니라는 것 자체가 당신이 개발한 제품이고 그 틀니는
기본적으로 말발굽형태(이 구조 모양)구조물에 치아 역할을 할 수 있는 모조품이 달린 형태일 것이다.
근데 고객에 따라서 모든 치아 배열이 다르기 떄문에 당신은 당신이 개발한 조금 유연한 틀니 사양서와
기본 아키텍처를 가지고 고객이 요청을하면 고객에게 딱 들어맞게 커스터마이징 시켜서 보내는 것이다.
자, 다시 돌아와서
SYS.3는 시스템 수준에서의 개발을 여기서 완전히 끝내는 것이기 때문에(= 급하다, 중요한 시기이다.)
(이유는 SYS4,5는 개발이 아니라 Verification 단계이다) SYS.2에서 미리 고객의 요구사항을 당신의
제품에 커스터마이징이 잘 될 수 있도록 분석을 했던 것이고 이 때문에 SYS.3에서 당신의 제품의
자산인 사양서와 유연한 아키텍처에 분석된 고객의 요구사항을 적용을 하면 큰 탈 없이 개발이 잘 될 것이라는
개념으로 이러한 프로세스가 짜여진 것이다.
그런데!
내가 위에서 말했듯 SYS.3에서 시스템 수준의 개발은 완전히 끝나야 하고 내가 위에서 비유한 것보다
실제 제품의 개발은 까다롭다. 그래서 다시 자동차 산업으로 들어와서 SYS.3에 필요한 활동이 무엇인지 보겠다
만약에 body seat가 움직이게 하는 제품을 개발한다고 치자. 그 때 고객의 요구사항은 사용자가 body seat의
각도, 거리 등을 조절한다고 칠 때 머리 받침 부분이 조절될 수 있게 하는거, 등받이가 조절될 수 있게 하는거
그리고 그 조절이 되는 동안의 속도는 어느 정도 였으면 좋겠다는 거 그리고 파워모드라는 기능이 있는데 이거는
한 번 누르면 최대 거리를 한 번에 움직이는 거 뭐 이런 기능의 제품이 있다고 하자 여기서 보통 이미 제품의 기능은
제품을 팔려는 쪽에서 다 갖추고 있는 것이기 때문에 보통은 고객으로부터 신경써야할 요구사항은 비기능 부분이다.
여기서 기능 비기능을 비교하자면 아까 각도, 거리 조절은 기능이라 보면 되고 그 조절 할 때의 움직임의 속도를
비기능이라고 보면 된다. 근데 생각해보면 기능과 비기능은 좀 더 하위 개념 수준인 소프트웨어 하드웨어 수준으로 생각
했을 때 기능을 다루는 메커니즘과 비기능을 다루는 메커니즘은 겹치면 안된다. 전혀 겹칠 부분이 없다. 이 둘은 온전하게
독립되어서 조화를 이루는 것이지 겹쳐지는 개념이 되면 매우 혼잡해지고 에러 발생이 생겨 안전 문제로 이어질 것이다.
그렇기 때문에 일단 SYS.3에서는 기능 및 비기능으로 나누어야 한다. 왜냐하면 SYS.2에서 분석된 요구사항도 기능 비기능으로 명백히 나누어져서 나올 것이기 때문이다. 이렇게 나눠야지 요구사항을 쉽게 아키텍처에 할당을 할 수가 있는 것이다.
이제 아키텍처를 기능 비기능으로 계층을 나눈 후에는 여러 복잡한 기능들을 탑재한 기능을 단순화 시킬 수 있도록
기능별 엘리먼트로 나누어야 한다. 무엇이든지 복잡하면 해석을 제대로 할 수 없고 해석을 제대로 못하면 당연히 위험이
생기기 마련이다. 우리가 복잡한 수학 과학 문제 등도 쪼개어서 분석하는 것도 다 이유가 있는 것이다. (이 세상의 모든 시스템은 단순한 것들이 모여 복잡한 형태를 이루고 있다)
자 여기서 우리는 한 가지를 더 해야 한다. 만약에 모든 것을 사람이 수동으로 움직여서 제품의 모든 기능을 조작할
수 있는 제품이라면 사실 비기능의 개념도 필요 없고 기능만 있는 제품일 것이며, 사실 시스템 분석도 필요 없다. 그냥
기구 수준에서만 해결하면 된다. 그러나 우리가 얘기하려는 것은 전기를 이용해 자동으로 이용하려는 제품이다.
그리고 이 전기를 통한 자동화 시스템은 소프트웨어와 하드웨어에 의하여 이루어진다. 그래서 시스템의 개념은
소프트웨어 + 하드웨어이다.
아무튼 서론이 길었는데 내가 위에서 한 가지를 더 해야 한다는 것은 우리는 전기를 통해 수동이 아닌 자동을 하는
것이기 때문에 자동적인 움직임이 들어간다. 이 자동적인 움직임이라는 것은 수동이 아니기 때문에 인간의 의지와 벗어나
기능이 자동으로 수행된다면 그것은 통제도 안되는 노답 제품일 것이다. 그렇기 때문에 자동화 관련된 것은 무엇이든지
인간에게 이로운 행동만 일어날 수 있게끔 하는 절차를 갖춰야 한다. 예를 들어 우리가 주행 중에는 저기 아주 위에서 설명한 파워 모드가 작동이 되면 운전자는 핸들, 엑셀, 브레이크 조작 가능 범위와 너무 가까워지거나 너무 멀어져서 엄청난
사고를 당할 수도 있다.(이것이 인간에게 이로운 방향으로 절차를 제대로 정의하지 않았을 때 자동화만 고려하면 생길
수 있는 엄청난 부작용이다.) 그래서 자동차가 주행중인 중에는 파워모드가 실행되지 않도록 되어야 한다라는 절차가 들어가야한다.
아무튼 아무튼 이런 제품의 기능인 자동화의 특성 때문에 반드시 기능은 절차라는 것이 미리 정의되어야 하고 특히나 하드웨어 소프트웨어 단계에서는 더 세분화 되어서 정보를 주고 받기 때문에 (엄청나게 많은 절차로 이루어진 집단) 우리는
동적 다이어그램을 SYS.3 (시스템 아키텍처 설계)단계에서 정의를 해주어야 한다. 그래야지 그 다음 하위 개념에서
이 제품을 구현할 소프트웨어 하드웨어에서 그들의 활동을 할 수 있을 것이다.
아 그리고 추적성 잊지마시고 (이건 ASPCIE PAM 보면 도식화 된 것이 있는데 그냥 바로 이해 되므로 생략)
'ASPICE 기본 이론' 카테고리의 다른 글
| SYS.5 (0) | 2024.01.12 |
|---|---|
| SYS.4 (0) | 2024.01.12 |
| SYS.1 (0) | 2024.01.11 |
| SYS.2 (0) | 2024.01.05 |
| MAN.3 관리 영역 파헤치기 1 (feat - Best Practice) (0) | 2023.12.26 |