Object-Oriented Analysis and Design
- Object-Oriented Analysis (OOA, 객체 지향 분석)
: Discover the domain concepts/objects (the objects of the problem domain)
: domain concepts/objects 찾는 단계이다.
→ Define use cases / Define Domail Model
- Object-Oriented Design (OOD, 객체 지향 설계)
: Define software objects (static) → Define interaction diagram
: Object을 구성하는 Attributes와 Operation을 정의한다.
: Define how they collaborate to fulfill the requirements (dynamic) → Design class diagram
: Object들이 서로 어떻게 Collaboration 하는지를 정의한다.
UML
- The Unified Modeling Language (UML) is a visual language for specifying, constructing and documenting the artifacts of systems.
Unified Process (UP)
- a popular iterative software development process for building object-oriented systems (반복 개발 프로세스)
: Iterative with fixed-length iterations (mini waterfalls of about 3 weeks)
: Inspired from Agile (i.e., opposite from waterfall)
: Flexible (can be combined with practices from other OO processes)
: A de-facto industry standard for developing OO software
→ Iterative, Evolutionary, Agile (반복적, 진화적, 민첩성)
→ a comination of Risk-Driven and Client-Driven Iterative Planning
UP Phases
- 4 major phases (Development cycle) : 각 iteration이 3주! I1, E1, E2, E3 이런 식으로 3주씩 진행
1. Inception : approximate vision, business case, scope, vague cost estimates
2. Elaboration : refined vision, iterative implementation of the core architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates|
→ Risk-drive / Client-driven iterative development
→ requirement workshop을 매 iteration에 하면서 prototype을 잡아서 검증
3. Construction : iterative implementation of the remaining lower risk and easier elements, and preparation for deployment
4. Transition : beta tests, deployment
→ 각 Iteration이 3주
→ 분야별로 UP Disciplines (규율, 단련법 / 산출물) 이 있음 (각 단계별로 뭘 해야 하는지 정의)
* Environment discipline 의 artifact(결과물)로 Development Case
: 생성한 UP artifact와 Practices의 선택 결과를 정리한 것.
Quiz) OOAD(Object-Oriented Analysis and Design)에 대한 다음의 설명 중 올바르지 않은 것은?
① Waterfall Model과 같은 전통적인 개발 방법론은 OOAD에 적합하지 않다.
② OOA (Object-Oriented Analysis)는 Domain concepts/objects 찾는 단계이다.
③ OOD(Object-Oriented Design)는 Object을 구성하는 Attributes와 Operation을 정의한다.
④ OOD(Object-Oriented Design)는 Object들이 서로 어떻게 Collaboration 하는지를 정의한다.
Quiz) 다음 중 UP에서 중요하게 생각하는 Best Practice나 Key Concepts이 아닌 것은 무엇인가요?
① Tackle high-risk and high-value issues in early iterations
② Make a project plan in detail from start to finish
③ Continuously engage users for evaluation and feedback
④ Build a cohesive, core architecture in early iterations
Quiz) 다음의 UP에 대한 설명 중 올바른 것은?
① We must define most of the requirements before starting design or implementation
② Inception = requirements, elaboration = design, and construction =implementation
③ The purpose of elaboration is to fully and carefully define models, which are translated into code during construction.
④ Inception does not require much UML diagramming.
Quiz) UP 기반 OOAD 방법론에 대한 다음의 설명 중 올바르지 않은 것은?
① Iterative, Incremental 및 Evolutionary 한 소프트웨어 개발 방법론이다.
② Risk-driven 하고 Architecture-centric 한 개발 방법론이다.
③ Client 보다는 Architecture 관점에서 발생할 수 있는 Risk를 줄이는 것을 중요하게 생각한다.
→ Architecture 관점 Rist가 수정 양이 많을 뿐... Client, Architecture 관점의 Risk가 둘 다 중요하다.
④ 모든 단계에서 Use Cases가 중요하게 사용된다.
⑤ Use-Case는 주로 Inception 및 Elaboration 단계에서만 사용된다.
⑥ Use-Case driven 방법론으로서, Elaboration 단계에서 모든 Use-Case를 자세하게 명세한다.
Quiz) UP Environment Discipline에서 작성되는 Artifact로서, 진행할 프로젝트에 서 생성할 UP Artifacts와 사용할 Practices의 선택 결과를 정리한 Artifact는 무엇인가요?
→ Development Case
본 글은 개인의 S/W 구조설계 역량 강화를 위한 학습 목적으로 정리된 내용입니다.
일부 타/개인 단체에 저작권이 있는 자료를 포함하고 있으므로, 절대 영리 목적으로 사용하실 수 없습니다.
'SW 공부 > OOP_OOAD_UML' 카테고리의 다른 글
[OOAD] 3-1. Elaboration - OOA (2) | 2022.08.29 |
---|---|
[OOAD] 2.Inception (12) | 2022.08.29 |
[UML] Component Diagram (2) | 2022.08.29 |
[UML] Activity Diagram (2) | 2022.08.29 |
[UML] Statechart Diagram (2) | 2022.08.29 |
댓글