StarUML NS Guide - Architectural design

1,192 views
918 views

Published on

StarUML NS Guide - Architectural design

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,192
On SlideShare
0
From Embeds
0
Number of Embeds
36
Actions
Shares
0
Downloads
42
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

StarUML NS Guide - Architectural design

  1. 1. Architectural Design Sections 1. Architectural Design Overview 2. Software Architecture 수정 3. Describing Architecture 4. Software Architecture Document
  2. 2. Architectural Design Lecture Objectives     소프트웨어 아키텍처의 기본 개념 이해 아키텍처 표현을 위한 UML 요소의 이해 및 활용 시스템의 효과적인 아키텍처를 정의 아키텍처의 문서화
  3. 3. Architectural Design Section 1. Architectural Design Overview
  4. 4. Architectural Design Architectural Design Overview
  5. 5. Architectural Design Architectural Design Overview
  6. 6. Architectural Design Section 2. Software Architecture
  7. 7. Architectural Design Contents       Definition of Software Architecture Architectural Factors Why Is Architecture Important? Architectural Patterns Architectural Views 4+1 View Model of Architecture
  8. 8. Architectural Design Definition of Software Architecture  소프트웨어 컴포넌트와 그것들의 관계로 표현되어지는 시스템의 거시적 구조  소프트웨어 시스템의 조직에 관한 중대한 결정
  9. 9. Architectural Design Definition of Software Architecture (cont.)  소프트웨어 아키텍처는 • 컴포넌트(Components)와 연결자(Connectors)로 구성 • 시스템 수준의 주요 속성을 나타냄 • 아키텍처상 중요한(Architecturally siginificant) 요소들만 반영 (Not all design!)
  10. 10. Architectural Design Architectural Factors
  11. 11. Architectural Design Why Is Architecture Important?  Communication Vehicle  Early Design Decision  Architectural Reuse
  12. 12. Architectural Design Architectural Patterns     아키텍처의 종류를 묘사 실제 시스템에서 반복적으로 발견됨 시스템 설계의 중요 결정을 반영함 재사용 가능한 속성을 지님
  13. 13. Architectural Design Architectural Patterns (cont.)  주요 아키텍처 패턴 • Pipes and filters • Layers • Blackboard
  14. 14. Architectural Design Architectural Pattern: Pipes and filters  파이프에 의해 전달되고 필터에 의해 처리되는 순차적 처리 프로세스를 묘사하는 패턴  예 • Unix pipe, Compiler 등  효과 • Reusability • Performance
  15. 15. Architectural Design Architectural Pattern: Layers  시스템을 몇 개의 수평적 계층으로 분할하는 패턴  예 • OSI 7-layers, GUI Frameworks, Multi-tier systems  효과 • Reusability • Portability • Maintainability
  16. 16. Architectural Design Architectural Pattern: Blackboard  칠판처럼 공유된 데이터 저장소를 두고 주위의 여러 컴포넌 트들이 데이터를 변화/조작하는 형태의 패턴  예 • 공동 작업 지원 시스템 등  효과 • Scalability • Integrability
  17. 17. Architectural Design Architectural Views  사물을 한쪽 면만을 봐서는 정확한 구조를 알 수 없음.  다양한 관점에서 볼 때에 사물을 이해할 수 있음.  소프트웨어 시스템의 아키텍처도 다양한 관점이 필요
  18. 18. Architectural Design Architectural Views (cont.)  What Is Architectural View? • • • • 특정 관점(perspective)에서의 시스템에 대한 간략한 기술. 특정 이해관계자(stakeholder)의 의도를 반영. 아키텍처상 중요한 내용들만을 포함한다. 소프트웨어 시스템의 아키텍처는 여러 개의 아키텍처 관점(Architectural View)들로 구성됨.
  19. 19. Architectural Design Architectural Views (cont.)  Kinds of Architectural Views • • • • • • • • • Use Case View Logical View Implementation View Deployment View Process View Data View Security View Code View …
  20. 20. Architectural Design 4+1 View Model of Architecture
  21. 21. Architectural Design 4+1 View Model of Architecture (cont.)  Logical View • 설계 모델상의 중요한 부분을 표현 • 분석가(Analyst)/설계자(Designer)의 관점을 반영 • 주요 구성 요소 • Subsystems, Layers, Packages, Classes, … • Associations, Generalizations, Dependencies, …
  22. 22. Architectural Design 4+1 View Model of Architecture (cont.)  Implementation View • 구현 모델의 중요한 부분을 표현 • 프로그래머(Programmer)의 관점을 반영 • 주요 구성 요소 • Modules, Software Components, Files, … • Dependencies, …
  23. 23. Architectural Design 4+1 View Model of Architecture (cont.)  Process View • 설계상 중요한 프로세스/쓰레드의 부분을 표현 • 시스템 통합자(System Integrator)의 관점을 반영 • 주요 구성 요소 • Processes, Threads, … • Communication Paths and Mechanisms, …
  24. 24. Architectural Design 4+1 View Model of Architecture (cont.)  Deployment View • 배치모델의 중요한 부분을 표현 • 시스템 엔지니어(System Engineer)의 관점을 반영 • 주요 구성 요소 • Computing nodes, Processors, Hardware devices, … • Communication lines, …
  25. 25. Architectural Design 4+1 View Model of Architecture (cont.)  Use Case View • 유스케이스 모델의 중요한 부분을 표현 • 최종 사용자(End User)의 관점을 반영 • 주요 구성 요소 • Use Cases, Actors, … • Associations, …
  26. 26. Architectural Design Section 3. Describing Architecture
  27. 27. Architectural Design Contents      Activity Overview Concepts and Notations Steps Example Exercise
  28. 28. Architectural Design Activity Overview
  29. 29. Architectural Design Concepts and Notations  Implementation Diagrams Concepts • • • • • • • Component Diagram Deployment Diagram Interface Dependency Realization Component Node  Active Class
  30. 30. Architectural Design Component Diagram   시스템의 물리적 관점을 표현하는 다이어그램 중 하나 시스템을 구성하는 컴포넌트들의 구성과 의존관계를 나타낸다.
  31. 31. Architectural Design Deployment Diagram  시스템의 물리적 관점을 표현하는 다이어그램 중 하나  컴퓨팅 능력을 갖는 노드와 그 노드에 존재하는 컴포넌트 등을 표현한다.
  32. 32. Architectural Design Interface  클래스나 컴포넌트 등의 서비스를 명세화하기 위해 사용하 는 연산의 집합
  33. 33. Architectural Design Dependency  요소들 간의 포괄적인 의존 관계 • • • • 패키지들 사이의 의존 클래스들 사이의 의존 컴포넌트 인터페이스에의 의존 기타 요소들 간의 의존
  34. 34. Architectural Design Realization  명세 요소와 구현 요소와의 관계  Realization의 사용 • • • • Collaboration Class Subsystem Component
  35. 35. Architectural Design Component  물리적 요소를 표현  교체 가능한 시스템의 한 부분
  36. 36. Architectural Design Component (cont.)  컴포넌트로 주로 표현되는 개념 • • • • • 소프트웨어 컴포넌트(software component) 실행파일(executable) 라이브러리(library) 파일(file) 문서(document)
  37. 37. Architectural Design Component (cont.)  인터페이스(Interface) • 컴포넌트는 하나 이상의 인터페이스 실체화 가능
  38. 38. Architectural Design Component (cont.)  의존관계(Dependency) • 컴포넌트 자체에의 의존 • 컴포넌트가 제공하는 인터페이스에 의존
  39. 39. Architectural Design Component (cont.)  컴포넌트에 상주하는 요소(Resident Elements) • 컴포넌트에 포함되어진 요소를 표현
  40. 40. Architectural Design Component (cont.)  컴포넌트 인스턴스(Component Instance) • 컴포넌트의 실제 사례(instance)
  41. 41. Architectural Design Node  메모리와 자체 처리능력을 갖는 전산자원  소프트웨어 컴포넌트가 배치될 수 있는 하드웨어 자원
  42. 42. Architectural Design Node (cont.)  연관관계(Association) • 노드와 노드는 연관으로 연결됨
  43. 43. Architectural Design Node (cont.)  배치된 컴포넌트(Deployed Components) • 노드에 배치된 컴포넌트를 표현
  44. 44. Architectural Design Node (cont.)  노드 인스턴스(Node Instance) • 노드의 실제 사례(instance)
  45. 45. Architectural Design Active Class  독립된 제어흐름을 가지는 클래스  테두리를 굵게 표현  프로세스(Process)나 쓰레드(Thread) 등을 표현
  46. 46. Architectural Design Steps (Describing Architecture) 1. 2. 3. 4. 아키텍처상 중요한 유스케이스/품질속성 선택 아키텍처 뷰의 종류들을 결정 각각의 아키텍처 뷰를 정의 시나리오(Scenario) 및 합리화(Rationale) 제시
  47. 47. Architectural Design Example
  48. 48. Architectural Design Exercise  Develop a software architecture of your system according to 4+1 view model of architecture.
  49. 49. Architectural Design Section 4. Software Architecture Document
  50. 50. Architectural Design Contents  SAD Overview  SAD Contents  Exercise
  51. 51. Architectural Design SAD Overview  SAD (Software Architecture Document)  소프트웨어 아키텍처를 기술한 문서  IEEE Std 1471
  52. 52. Architectural Design SAD Contents  Table of Contents Introduction Architectural Representation Architectural Goals and Constraints Architectural Views • Use Case View • Logical View • Implementation View • Process View • Deployment View • Rationale • • • •
  53. 53. Architectural Design Exercise  Write a SAD of your system.
  54. 54. Architectural Design Lecture Summary  소프트웨어 아키텍처는 컴포넌트들과 그 관계로 표현되어 지는 거시적 구조로써 중요한 설계 결정을 반영한다.  소프트웨어 아키텍처는 다양한 관점에서 기술되어 진다.  소프트웨어 아키텍처는 소프트웨어 아키텍처 문서(SAD)로 작성되어진다.

×