1. Logical Architecture
- non-functional requirement는 주로 supplimentary specification에 속한다.
- supplimentary specification이 Logical Architecture에 input으로 들어간다.
- 한번 결정되면 번복하기 어려운, 아주 fundamental한 내용들이 Logical Architecture이다.
- 이 아키텍쳐 설계에 대한 내용들은 UML package diagram으로 표현한다.
- 상위 layer는 하위 layer의 서비스들의 호출이 가능하지만 그 반대는 불가능 하다.
- strict layered architecture : 상위 레이어는 인접한 하위 레이어의 서비스만 호출 가능
- relaxed layered architecture : 상위 레이어는 하위 레이어들의 서비스를 호출 가능 (UI 레이어에 있는 web 패키지는 인접하지 않은 하위 레이어의 Logging 패키지를 사용할 수 있다.)
- Software Architecture는 소프트웨어의 원천적인 구조이다. 왜 그런 구조를 지니고 있는지 누가 그런 구조를 이루는지에 대한 내용들을 명세해야 한다.
2. UML package diagram
- 여러 element, 패키지들을 그룹화 하는 단위를 layer라고 한다.
- 패키지끼리 점선으로 연결한 것이 서로의 dependency를 나타낸다. (web이 Logging을 의존한다/사용한다)
- 보통 제일 위에 UI layer가 위치한다. 여기서 들어온 Input은 application layer로 전달된다.
- application layer에서 domain레이어로 내려가서 실제 logic을 처리하게 된다.
- 이렇게 표현을 하면 low level, high level service 분리를 통해 관심 영역의 분리가 가능하다.
- 패키지간의 의존성을 낮추고 layer 내에 패키지들의 응집성을 강화해준다.
- Domain layer는 application logic을 처리하는 레이어이다. 지난 시간에 domain model을 살펴보았다. 바로 이 부분이다.
- layer는 수직 구분이라면 layer내부에서 다시 여러 element들로 수평 구분하는 것이 partition이다.
3. Model-View Seperation Principle
- UI object들은 자주 바뀌기 때문에 non-ui object와 ui object의 직접 연결을 피한다.
- application logic이 UI object 메서드에 존재해서는 안된다.
- 즉 user interface layer에 해당하는 view와 domain layer에 해당하는 model은 구분되어야 한다.
'ComputerScience > Software Engineering' 카테고리의 다른 글
소프트웨어공학 - 15. MVC Architecture pattern (0) | 2022.05.04 |
---|---|
소프트웨어공학 - 14. Object-Oriented Paradigm (0) | 2022.04.28 |
소프트웨어공학 - 12. Sequence Diagram -> Operation Contract (0) | 2022.04.14 |
소프트웨어공학 - 11. Domain Models (0) | 2022.04.13 |
소프트웨어공학 - 10. UML Sequence diagram (0) | 2022.04.07 |