Software Architecture
[UML] System Sequence Diagram
System Sequence Diagram은 System Sequence를 표현하기 위한 Diagram입니다. 무슨 말이냐 하면, System을 Black-Box로 두고 외부 Actor의 이벤트에 대해 현재 디자인 중인 시스템이 어떻게 반응하는지를 표현하기 위함입니다. Black-Box이기 때문에 내부적인 구조는 전혀 고려하지 않습니다. Input과 Output만 고려하는 것입니다. Output이 나오는 절차는 전혀 고려하지 않죠. 잘 생각해보시면 가장 중요한 부분이 use case란 것을 알 수 있습니다. 실제 사용자는 내부적으로 어떻게 동작을 하든 전혀 고려하지 않고 내가 원하는 결과가 무엇인지, 그 결과가 제대로 피드백 되는지만 신경쓰면 되는 것이죠. 아래 예제는 위키피디아의 이미지를 인용하였습니다..
[Unified Process] Elaboration Phase
Unified Process에서는 4개의 Phase가 존재합니다. 이 전 글에서 첫 번째 Phase인 Inception Phase에 대해 설명했으며, 이번에 작성할 글은 Elaboration Phase입니다. Elaboration Phase에서는 Iteration을 반복하며 한 Iteration당 4단계를 수행하며 그 단계는 아래와 같습니다.Object-Oriented AnalysisObject-Oriented DesignRequirement DesignImplementation하나씩 자세히 알아보기 전에 가볍게 설명드리면 OOA 단계에서는 Domain Model을 만들고 System Operation을 나타내는 System Sequence Diagram을 만들게 됩니다. OOA단계에서 Analysis한..
[Unified Process] Inception Phase
Unified Process에는 총 4가지의 Phase가 존재하며, Inception은 첫 번째 Phase입니다.이번 글에는 Inception Phase(단계)에 대해서 정리해보려 합니다. Inception은 말 그대로 시작, 초입단계로서 시간적으로 매우 짧은 시간입니다. 1~2주 정도의 시간을 두고 진행을 하죠. 이 단계에서 진행하는 단계는 이 프로젝트를 진행을 해야하나? 말아야하나? 라고 정리할 수 있습니다. 이 프로젝트의 BM(Business Model)은 무엇인가? 진행 가능한가? 판매 가격을 얼마나 될 것인가? 라는 것이죠. Inception 단계에서 많은 사람들이 착각하는 것 중 하나가 모든 요구사항이 정의되어야 한다고 생각하는 것입니다. 요구사항은 다음 Elaboration Phase에서 대..
Unified Process
OOAD와 UML에 대해 정리하기 전에 Unified Process를 좀 더 정리해보고자 합니다.Unified Process, UP라고도 자주 부르는 녀석은 소프트웨어 공학 강의에서 자주 듣게되는 녀석입니다. Wikipedia에서 검색해보니 아래와 같이 정의해 놓았습니다. "Unified Process is a Popular iterative and incremental software development process framework." 인기있는 Iterative 소프트웨어 개발 방법론..? 정도로 이해하면 될 것 같습니다. 여기서 Iterative는 팀마다, 사람마다, 상황마다 다르겠지만 약 2~3주 정도의 고정된 시간을 두고 Iterative를 진행합니다. 그럼 UP의 3가지 특성을 살펴보겠습니..
[UML] UML의 정의와 Diagram
UML은 Unified Modelling Language의 약자로서 소프트웨어 집약 시스템을 개발할 때 산출물을 명세화, 시각화, 문서화할 때 사용합니다. 시스템의 구조적인 청사진을 그리기 위해 많이 사용되며 그외에도 매우 다양한 용도에 맞게 사용할 수 있습니다. 많이 착각하시는 것 중 하나가 UML을 OOAD 개발 프로세스라고 생각하시는데 그 부분은 잘못된 부분입니다. UML은 소프트웨어를 개발하기 위한 방법이 아니기 때문입니다. 그리고 UML은 여러분 에게 Object-Oriented 한 사고를 가르쳐주지 않습니다. 어떻게 Operation과 Data를 가진 Object 구조를 그릴 수 있는가, 여러분이 디자인한 내용이 잘된것인가는 UML이 알려주지 않는다는 것이죠. 그럼 UML에 대해 조금씩 알아보..
[OOAD] Object Oriented Programming
Object란 무엇일까요?많은 책에서 Object가 무엇이냐고 설명할 때 붕어빵 틀같은.. 예제들을 많이 들고 있습니다. object는 Entity, 독립적인 하나의 구현체로서 상태(State)와 행위(Behavior)를 포함하고 있는 것이라고 설명하고 싶습니다. 상태는 변수, 데이터이며, 행위는 Operation 즉 함수들입니다. Object의 상태(State)는 Object가 보유하고 있는 변경될 수 있는 것입니다. 변경이란 말은 상태가 변경된다라는 것이죠. 예를 들어 자동차란 Object의 상태는 차량의 색상, 디자인 등이 있겠지만 이 상태들 예시로 색상을 생각해보면 동일한 형태의 차량들도 도색을 통해 색상이 변경될 수 있겠죠. 그럼 행위(Behavior)는 뭘까요? Object의 행위이죠. 상태를..