Learn/OOP&UML
-
[OOP/UML] UP - Elaboration 단계 / OOILearn/OOP&UML 2022. 9. 21. 23:57
OOA와 OOD에서 만든 Domain Model, Design Model을 바탕으로 Implementation하는 단계 # Designing for Visibility 다른 객체에게 보여지거나 레퍼런스를 가지는 것을 Visibility라고 한다. 아래와 같이 A가 B에게 메시지를 보내려면 B는 반드시 A에게 visible해야 한다. Visibility는 Class Diagram을 그리거나 구현을 통해 확보할 수 있다. ## Visibility를 확보하는 4가지 방법 1. Attribute visibility B는 A의 attribute 아래와 같이 catalog를 가지고 있으면 된다. 2. Parameter visibility B는 method A의 parameter return으로 operator가 끝..
-
[OOP/UML] UP - Elaboration 단계 / OODLearn/OOP&UML 2022. 9. 21. 00:24
Elaboration 단계 중 앞 OOA 단계에서 Domain Model 및 Use-Case Model을 작성하였다. 그 다음은 OOD 단계로 Design Model을 작성하는데 Sequence Diagram을 그리고 Class Diagram을 그린다. OOA에서 OOD로 넘어갈때는 아키텍쳐가 확정되어 있어야 한다. # Logical Architecture Logical architecture란, 소프트웨어 클래스를 package, subsystem, layer로 묶어놓은 것을 뜻한다. UML Package Diagram으로 그린다. ## Layered Architecture 보통 아래와 같이 구성된다. 1. User Interface layer 흔히 아는 UI 레이어 External User가 여기로 ..
-
[OOP/UML] UP - Elaboration 단계 / OOALearn/OOP&UML 2022. 9. 18. 23:12
# 개요 중요하고 리스크있는 아키텍쳐를 구현하고 테스트하는 단계 요구사항이 수정될 수는 있지만 이 단계가 끝날때는 확정되어야 한다. 아키텍쳐/클라이언트 관점에서 리스크를 줄여나간다. # Artifacts Iteration마다 리스크 관점에서 중요한 Use-case를 선택하여 아래와 같은 작업들을 한다. OOA에서는 Domain Model을 작성하는데, 그 전에 Use-case Model 작성이 필요하다. Inception 단계에서는 Brieft 레벨이였다면 Elaboration에서는 Casual, Fully dressed up 레벨로 작성한다. OOD에서는 Design Model을 작성한다. Sequence Diagram을 그리고 그것을 바탕으로 Class Diagram을 그린다. # Domain Mod..
-
[OOP/UML] UP - Inception 단계Learn/OOP&UML 2022. 9. 18. 00:23
# 개요 보통 1주간 진행되는 짧은 단계로 아래의 질문들에 대해 생각해본다. What is the vision and business case for this project? Feasible? Buy and/or build? Rough unreliable range of cost: Is it $10K-100K or in the millions? Should we proceed or stop? 대부분 Brief format (3줄 정도) 수준으로 작성한다. # Artifacts 그렇게 많은 UML을 그리지 않는다. 필요한 만큼만 그린다. # Requirements 시스템을 만족하기 위한 Capabilities와 Conditions를 뜻한다. Requirement를 찾는 것을 Requirement analy..
-
[OOP/UML] OOAD, UP 기본 개념Learn/OOP&UML 2022. 9. 17. 22:55
# OOAD Object-Oriented Analysis (OOA)와 Object-Oriented Design(OOD)으로 구성 OOA: 요구사항을 도메인 모델(오브젝트)로 만드는 것 (usecase diagram) OOD: 소프트웨어 오브젝트를 정의하고(class diagram) 어떻게 커뮤니케이션을 할지 정의하는 것(sequence diagram) 모든 usecase에 대해서 sequence diagram을 그리고 그 후 class diagram을 그리는 것을 반복 # UML 3가지 레벨로 사용될 수 있음 Sketch: 13가지 uml을 아무거나 쓸 수 있고 조금 틀려도 커뮤니케이션만 잘 되면 오케이 (OOA) Blueprint: syntax, sementic이 정확해야 함. 틀리면 안됨. 디자인 단..
-
[OOP/UML] Component DiagramLearn/OOP&UML 2022. 8. 17. 23:19
# 개요 - 패키지나 클래스가 구현되어야 나올 수 있다. - 그러므로 거의 구현이 다 되어야 Component Diagram이 나온다. # UML Component - Class를 모아놓은게 Component - Component가 Component를 가질 수도 있음 - 개발팀들에 Component를 분배해서 개발할 수 있다. # Notation Interface - 가장 많이 사용되는 형태 - 아래와 같은 interface는 body가 비어있음 - 필요하다면 Class Diagram을 같이 씀 - 롤리팝과 소켓으로 커뮤니케이션을 표현함 - 아래와 같이 점선으로 dependency를 표현 가능 Port, Internal Structure - port는 네모로 표현 Class - Class는 아래와 같이 ..
-
[OOP/UML] Activity DiagramLearn/OOP&UML 2022. 8. 17. 22:52
# 개요 - 시스템의 dynamics를 표현 - state가 아닌 action의 flow를 표현 (시스템 수준 뿐만 아니라 function 레벨도 표현 가능) - alternative path를 표현 가능 - 병렬 작업 표현 가능 - action만 표현하고 data는 흘러가지 않음 # Notation - 마름모는 alternative path를 표현 - 검은색 바는 parallel activity를 표현 - activity는 state와 다름에 유의 - transition은 이전 activity가 끝나면 넘어가고 statechart와 다르게 event의 condition을 확인하지 않음. - object는 이름과 state를 표현 (대괄호 안에) - Swimlanes을 쓰면 누가 어떤 일을 할지 표현할 ..
-
[OOP/UML] Statechart DiagramLearn/OOP&UML 2022. 8. 17. 22:32
Statechart diagram과 activity diagram은 비슷한데 그리는 방식이 반대이다. 그릴 내용이 - finite state machine인 경우는 statechart를 - business process인 경우는 activity diagram을 쓴다. # State operations - entry: 들어옴 - exit: 나감 - do: 계속 진행 # Transition state가 다른 state로 변하는 것에 대한 표현 - 이벤트, 조건, 동작 포함 아래의 경우 event1이 발생하면 일단 state를 나가야되므로 Activity2가 실행되고 그 후에 Activity3 그리고 다시 들어와서 Activity1이 실행된다. (※순서주의 Activity2 > Activity3 > Activ..