본문 바로가기
SW 공부/OOP_OOAD_UML

[OOAD] 3-2. Elaboration - OOD

by 꼬냉상 2022. 8. 29.

Iteratively Analysis and Design

- In iterative development, a transition from requirements/OOA to design/implementation occur in each iteration. 

- iteration (매 3주)마다 mini-waterfall(Requirement Analysis -Design-구현- 테스트)을 진행해서 계속 반복!

 

Logical Architecture and UML Package Diagrams 

- A software architecture is the set of significant decisions about the organization of a software system,

    : the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements,

    :  the composition of these structural and behavioral elements into progressively larger subsystems,

    :  and the architectural style that guides this organization - these elements and their interfaces, their collaborations, and their composition.” 

- Booch, G., Rumbaugh, J, and Jacobson, I. 1999. The Unified Modeling Language User Guide.

→ Software Architecture는 소프트웨어 시스템의 조직, 구조 요소의 선택 및 시스템이 구성되는 인터페이스에 대한 일련의 중요한 결정, 그리고 그러한 요소들 간의 협력에 명시된 그들의 행동, 이러한 구조 및 행동 요소들의 구성이 점차적으로 더 큰 하위 시대로의 구성.이러한 요소 및 인터페이스, 협업 및 구성 등 조직을 안내하는 아키텍처 스타일입니다.

 

- Logical architecture is the large-scale organization of the software classes into packages, subsystems, and layers.

→ Logical architecture는 소프트웨어 클래스를 패키지, 하위 시스템 및 계층으로 대규모로 구성하는 것입니다.

- UML Package Diagram을 이용해서 Construction 단계에서 개발하는 것이 OOD

 

- Layered Architecture

Typical layers in object-oriented systems:

 

  - User Interface layer

 

   - Application Logic and Domain Objects layer
    : Software objects representing domain concepts that fulfill application requirements

 

  - Technical Services layer

 

 

 

On to Object Design

-  Designing Objects: Static vs. Dynamic

- Static models help design the definition of packages, class names, attributes, and method signatures (but not method bodies).

   • Example: UML class diagram
Dynamic models help design the logic, the code, or the method bodies.

   • Example: UML interaction diagrams (sequence diagram, communication diagram)

- Object-Oriented Design Skill over UML Notation Skill  :OOD에는 경험과 지식이 필요함! UML도 잘 써야 하고!

- Fundamental object design requires knowledge of:
   • Principles of responsibility assignment (GRASP) : 초심자용,  Description보고 샘플을 사용하면 됨
   • Design patterns : 문제와 해결점을 만들어 놓은 것으로 System을 Reuse 하기 위한 심화과정 

 

 

Quiz) 다음의 Object Design에 대한 설명 중 올바르지 않은 것은?
① Static Models은 Class나 Package를 정의하는데 도움이 되며, Class Diagram, Package Diagram 등이 해당된다.
② Dynamic Model은 Method나 로직 등을 정의하는데 도움이 되며, Interaction Diagram, Statechart Diagram 등이 해당된다.
③ Class Diagram으로부터 Skeleton Code를 생성하고 구현(Implementation)을 시작하므로, Static Model이 가장 중요한 Object Model이다.
④ UP 기반의 OOAD에서는, 현 Iteration에서 개발할 Use Case에 대해서,Interaction Diagrams과 Class Diagram을 반복적(Iterative)이고 점증적(Incremental)으로 작성한다.

 

Quiz) UML Interaction Diagrams에 대한 다음의 설명 중 올바른 것은?
① Interaction Diagram은 4가지 다이어그램에 대한 통칭이며, 실제로 그릴 수 있는 Diagram은 아니다.
② Sequence Diagram은 Communication Diagram 보다 더 Expressive Power가 강력하다.
③ Communication Diagram은 Sequence Diagram 보다 더 Expressive Power가 강력하다.
④ Interaction Overview Diagram은 더 큰 시나리오를 하나의 Interaction Diagram으로 그리는 방법이다

 

Quiz) UML Object Model에는 Static Model과 Dynamic Model 두 종류가 있습니다. 각각을 대표하는 UML Diagram은 무엇인가요? 또 이 두 모델이 서로 어떤 관계를 가지면서 어떻게 사용되는지 설명하세요.

→ Class Diagram , Sequence Diagram

 We should spend a short period of time on interaction diagrams (ex.Sequence diagram), then switch to a wall of related class diagrams.

Sequence diagram과 같은 interaction diagrm에서 class diagram을 반복적으로 생성할 수 있습니다. 

Static Model과 Dynamic Model이 iterative 하게 돌면서 Domain Model과 Use Case를 녹여내면서 표현하는 관계

- 상호 작용 다이어그램을 그릴 때 일련의 클래스와 방법이 나타납니다.
- 두 개의 상호 보완적인 동적 및 정적 뷰가 동시에 반복적으로 그려집니다.

 

Quiz) 다음은 무엇에 대한 설명인가요?

The set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization - these elements and their interfaces, their collaborations, and their composition.

→ Software Architecture

 

 

본 글은 개인의 S/W 구조설계 역량 강화를 위한 학습 목적으로 정리된 내용입니다.
일부 타/개인 단체에 저작권이 있는 자료를 포함하고 있으므로, 절대 영리 목적으로 사용하실 수 없습니다.

 

반응형

'SW 공부 > OOP_OOAD_UML' 카테고리의 다른 글

[OOAD] 3-3. Elaboration - OOI  (2) 2022.08.29
[OOAD] 3-1. Elaboration - OOA  (2) 2022.08.29
[OOAD] 2.Inception  (12) 2022.08.29
[OOAD] 1. Introduction of Object-Oriented Analysis and Design  (2) 2022.08.29
[UML] Component Diagram  (2) 2022.08.29

댓글