[34] UML 종합
34.1. Builder Pattern
- 동일한 생성 과정에 다른 여러 결과물이 나올 수 있도록 하는 패턴
- 단계별 생성에 중점을 두는 패턴
- 새로운 결과물이 필요한 경우에도 동일한 과정으로 생성할 수 있음
- 생성 과정과 구현 방법을 분리하여 동일한 생성에서 여러 다른 표현이 나올 수 있음.
34.2. Builder Pattern (생성자를 대체하는 방법)
34.3. 열거형
- 서로 관련 있는 상수들을 모아 놓고 대표 할 수 있는 이름을 정의 한 것
- 클래스처럼 사용되기 함
34.4. UML(Unified Modeling Language)
객체지향 분석
- 무엇을 만들 것인가를 추상화하는 과정
- 요구사항으로부터 문제를 만들어가는 과정
분석 vs 설계
- 분석은 발견하는 것이고 설계는 발명하는 것임
- 분석은 문제를 만들어가는 것이고 설계는 해답을 만들어 가는 것임
- 분석은 (문제는) "무엇인가"에 관심이 있지만 설계는 (문제를) "어떻게 해결할 것인가"에 관심이 있음.
모델링
- 주어진 서술(생각)에서 추상적인 모델을 정의하고 최종적으로 코드를 만들어 내기 위한 장치
모델링 하는 이유
- 시스템을 눈에 보이게 하기 위함
- 프로젝트 참여자(개발자)들의 통신 수단을 제공하기 위함
- 모델 자체가 휼륭한 문서가 될 수 있음
- 시스템의 구조와 행동을 명확하게 결정하기 위함
- 소프트웨어를 개발하기 위한 뼈대를 제공하기 위함
UML
- 그래픽 표기법의 집합
- 소프트웨어 시스템을 표현하고 설계할 수 있도록 도움
- 객체지향 방식 형태를 지원
- 종류
- Diagram
- Structure Diagram
- Class Diagram
- 소프트웨어 기본 구성 단위 클래스와 그들간의 관계 정의
- 정적인 관점에서 클래스 구조 표현
- 기본적 데이터 모델링 수행 (분석단계)
- 객체지향 언어 코딩을 위한 설계 사양 제공 (설계단계)
- 분석에서 설계까지 일관된 소프트웨어 시스템 도구
- Component Diagram
- Class Diagram
- Structure Diagram
- Behavior Diagram
- Use Case Diagram
- Sequence Diagram
- Diagram
- 종류
34.5. UML을 위한 다이어그램 요소
- Class
- public(+), protected(#), private(-)
- 정적(static) 속성과 메서드
- 밑줄로 표시
- Relationship (관계)
- 객체간의 연결(링크)들을 클래스간 관계로 추상화 한 것
- 구분
- 연관관계(Association)
- 참조하는 클래스는 해당 타입의 필드를 가지게 됨(사용함).
- 집합,집약관계(Aggregation)
- 전체와 부분의 관계를 명시적으로 나타내고 싶을 때 사용함.
- weak aggregation
- 전체와 부분의 관계를 명시적으로 나타내고 싶을 때 사용함.
- 구성,합성관계(Composition)
- 전체와 부분의 관계를 명시적으로 나타내고 싶을 때 사용함.
- strong aggregation
- 전체와 부분의 관계를 명시적으로 나타내고 싶을 때 사용함.
- 상속(Generalization)
- 구현(Realization)
- 연관관계(Association)
- 구분
- 객체간의 연결(링크)들을 클래스간 관계로 추상화 한 것
34.6. UseCase Diagram
- 사용자가 하는 행동을 나타냄
- 시스템과 사용자간의 상호작용
- 사용자 관점에서 논리적인 시스템의 기능 정의
- 개발자와 사용자, 이해관계자들간의 이해 도모
- 시스템 전체 개발범위 결정
- 시스템 분석, 설계 기준
- 인수 테스트 기준
34.7. Sequence Diagram
- 객체들간의 협력 과정을 동적으로 정의
- 객체간 동적 상호작용을 시간적 개념으로 파악하기 위함
- Use Case 단위로 작성
- 클래스 다이어그램과 병행되며 상호간 일관성 요구됨
'JAVA' 카테고리의 다른 글
QA란? - 크로스 브라우저 테스팅, 테스팅 툴, 사이트 추천 (0) | 2023.04.16 |
---|---|
[JAVA]스레드 (0) | 2023.02.12 |
[JAVA]자바 IO (2) (0) | 2023.02.11 |
[JAVA]자바 IO (1) (0) | 2023.02.11 |
[JAVA]예외처리 (0) | 2023.02.10 |
댓글