Software Architecture/Requirement Engineering

    [Requirement Engineering] 설계 시 필요한 제약

    아키텍처 핵심 요구사항에 꼭 필요한 부분은 제약사항이다. 제약은 소프트웨어 설계 시 꼭 검토해야 하는 사항입니다. "제약이란 이미 정해져서 변경이 불가능한 설계상의 의사결정" 을 의미합니다. 제약은 이해관계자들과의 논의 과정 중에서 발생할 수도 있고, 아키텍트 스스로 만들어 내는 제약도 존재합니다. 잘 선택한 제약은 소프트웨어 설계에 큰 도움이 된다. 제약은 아키텍트가 설계할 때 선택할 수 있는 다양한 구조를 제한하지만 요구사항 분석 과정에서 잘 정리된 제약은 문제를 단순화하고 좋은 아키텍처를 만드는데 큰 도움이 됩니다. 하지만 제약사항을 잘못 정의하는 경우에는 문제가 커질 수 있으며 또는 이해관계자들의 요구사항을 만족할 수 있는 경우가 발생하기도 합니다. 제약은 비지니스 모델과 설계에 필요로하는 기술에..

    [Requirement Engineering] 이해관계자(Stakeholder)와의 대화

    이해관계자(Stakeholder)는 어떠한 소프트웨어 시스템에 관심이 있거나 관여된 사람들을 말합니다. 고객이 될 수도 있고, 개발팀과 연관된 검증팀, 디자인팀, 기획팀의 사람이 이해관계자가 될 수도 있습니다. 이해관계자(Stakeholder)는 명확하게 자신이 원하는 바를 모를 수 있다. 소프트웨어 시스템 설계에 앞서 고객, 또는 시스템과 연관된 Stakeholder들과의 대화, 회의는 필수적입니다. 설계자가 이해관계자들과 대화없이 스스로 생각한 바를 설계해 나간다면 결과물은 이해관계자들의 생각과는 전혀 다른 방향이 될 수 있습니다. 그렇기에 이해관계자와의 대화는 매우 중요합니다. 이해관계자들과 대화를 하다보면 명확하게 어떤 결과물을 원하는지 모르는 경우가 많습니다. 특정 어플리케이션을 개발한다고 가정..

    [Requirements Engineering] #3 Feasibility

    Feasibility Study Why a Feasibility Study?Feasibility(실행가능성)는 시스템 개발 프로젝트를 할 수 있는지 없는지는 판단하기 위함입니다. 프로젝트 시작 전 이 프로젝트를 우리가 할 수 있는가? 다른 가능한 대안이 있는가?에 대해 질문을 던지는 것입니다. 위 질문을 답하기 위해 충분한 정보를 수집하여 알고있어야 합니다. Feasibility Study 이후에 이 프로젝트의 START/STOP 여부를 결정하게 됩니다. Content of Feasibility Study(실행가능성 판단을 위한 컨텐츠)Feasibility 판단을 위해 파악해야 할 항목은 여러 가지입니다. 항목은 아래 리스트를 참고하세요.- 존재하는 시스템들- 현재 시스템의 문제- 새로운 시스템을 위한 ..

    [Requirements Engineering]  #1 Overview

    [Requirements Engineering] #1 Overview

    시스템 아키텍쳐에서 필수적인 것이 무엇을 설계할 것인가 입니다. 막연히 뭘 설계 개발해야할지 모르는 상황에서 컴퓨터 앞에 앉는 행위는 어리석은 행동입니다. 클라이언트가 어떠한 것을 요청하는지 파악해야 설계를 할 수 있습니다. 아래는 많이 보셨을 그림입니다. 고객이 설명한 것을 시스템에 관련된 이해관계자들이 이해하고 만들어나가는 과정입니다. 실제로 고객이 원하는건 나무에 타이어 하나 매달아 그네를 쓰고자 했는데 결과물은 전혀 다른 것이 나왔습니다. 이 그림은 시스템 개발 시 발생할 수 있는 문제를 웃음으로 승화시킨 그림인데요, 정말 웃고 지나갈만한 일일까요? 위와 같은 문제는 자주 발생할 수 있습니다. 이러한 문제를 방지하고 영향을 최소화 하기위해 요구공학이란 학문이 존재합니다. 실제로 클라이언트와의 미팅..