목록Development Diary/Software System Engineering (5)
Douglas' Space

1. 들어가면서 미래의 시스템은 Ai기반의 시스템으로 발전할 것으로 예상됩니다. 왜냐 하면 앨런튜닝이 최초의 컴퓨터라는 튜링머신을 고안할 때 생각하는 컴퓨터를 상상하고 있었고 우리의 기술 개발은 계속적으로 사람이 수행하는 일을 대체하기 위해 발전시키고 있기 때문입니다. 다시 말해 인간이 수행하는 다양한 작업 뿐만 아니라 인간의 사고까지 흉내내는 기계를 생각한 것 같습니다. (이러한 미래의 시스템을 특별히 지능형 소프트웨어 시스템이라고 정의하겠습니다). 이러한 지능형 시스템이 기존의 시스템과 구별되는 것은 자동화(Automation)와 자율화(Autonomy)를 구별하는 것과 같다고 할 수 있습니다. 자동화는 반복적으로 수행하는 다양한 작업을 컴퓨터시스템 또는 기계적 시스템으로 대체하는 것을 의미하고, 자..

1. Development Processes SSDM은 코딩이 수행되는 구현단계를 제외하고 MIL-STD-498에서 정의된 단계 중 분석설계와 관련된 4단계로 개발단계를 정의합니다. 시스템차원에서의 분석 및 설계 단계와, 시스템 설계가 완료된 후 식별된 소프트웨어 형상관리단위인 CSCI별로 분석 및 설계를 진행합니다. 각 단계를 SSRA, SSD, SRA, SD 단계로 약어를 사용하여 지칭합니다. 그리고 전체 개발 단계에 수행되는 데이터 분석 및 설계에 해당하는 data modeling 프로세스가 존재합니다. 따라서 데이터의 경우 개발 전 단계에 걸쳐 모델링을 수행합니다. 이와 유사하게 품질보증 활동으로서 검증 및 확인 활동인 verification과 validation 활동이 수행됩니다. SSD단계에서..

1. 들어가면서 여러분 이 그림이 의미하는 바가 무엇인지 살펴보세요. 이 그림은 요구사항을 파악하여 최종 고객이 원하는 것을 만든다는 것이 매우 어렵다는 것을 설명하는 그림입니다. 밑에 가장 오른쪽에 있는 그림이 정말 사용자가 원했던 것인데, 위의 가장 왼쪽 그림을 보면 사용자 마저도 본인이 원하는 것을 잘 설명 못할 수 있다는 것을 의미하기도 합니다. 또한 요구사항이 잘못 분석이 되거나 요구사항이 잘못 표현되어 있으면 이를 고친다는 것은 엄청 많은 노력이 요구된다는 것을 반증하기도 합니다. 이에 대한 사실은 많은 통계 데이터을 통해서도 알 수 있습니다. 개발에 있어서 요구분석이 40%정도를 차지한다거나, 요구사항으로 인한 에러로 수정을 하는 비용이 단순 코드의 에러으로 수정하는 것보다 엄청난 대가를 지..

1. 들어가면서 아래 2개의 그림이 있는데, 공통점이 뭘까요? 둘다 개집입니다. 이렇게 이야기하면 틀린 답이겠죠. 하나는 진짜 개집이고 하나는 개모양의 집입니다. 두 집을 짓는다고 생각할 때 어느 집을 짓는 것이 어려울 까요? 당연히 오른쪽의 집을 짓는 것이 복잡하겠죠. 왼쪽의 개집은 설계도면도 없이 지을 수 있지만, 오른쪽의 집은 그럴 수가 없겠죠? 오른쪽의 집을 짓기 위해서는 설계도면이 반드시 필요하리라 생각합니다. 그리고 아마 설계하기 전에 집주인이 요구하는 요구사항까지도 잘 듣고 이해해야 할 것입니다. 소프트웨어시스템을 개발할 때도 마찬가지라고 생각합니다. 2. Model의 정의 아파트 개발 전에 우리는 모델하우스를 보고 지워질 아파트를 미리 알 수 있습니다. 시스템을 개발할 때도 이와 마찬가지로..

1. Software System이란 우리가 보통 시스템의 구성요소를 크게 하드웨어, 소프트웨어, 사람이라고 할 수 있습니다. 그러면 소프트웨어면 소프트웨어이지 소프트웨어 시스템이라는 것은 무엇을 의미할까요? 시스템을 개발한다는 것은 어떠한 기능을 자동화하기 위해 개발합니다. 이 기능을 잘 수행할 수 있도록 시스템의 컴포넌트를 설계합니다. 그리고 이 컴포넌트에 적합한 기능들을 할당합니다. 다시 말해 어떠한 기능은 하드웨어가 담당하고, 어떠한 기능은 소프트웨어가, 또 어떠한 기능은 사람이 직접 수행하기도 합니다. 그런데 소프트웨어에 기능을 할당한다는 것은 소프트웨어가 구동되는 일반목적의 컴퓨터에 기능을 할당한다는 것과 같은 의미입니다. 이렇게 일반 목적의 컴퓨터에서 작동하는 다수의 소프트웨어의 집합과 일반..