1. 요구 모델링과 요구 분석의 차이
- 요구 모델링: 고객과 개발자가 무엇이 개발되고 있는지에 동의하는 것을 주된 목적으로하는 요구 명세 생성.
- 요구 분석: 시스템에 대한 형식적인 설명 제공.
2. 도메인 지식과 모델링
: 모델링은 도메인 지식(업무 프로세스, 기능, 역할, 규칙)을 체계화하는 과정. 다이어그램으로 정형화함.
5-1 모델링 기초
1. 모델링 하는 이유(7)
- 복잡함을 잘 관리하기 위해
- 소프트웨어 구조를 시각화하기 위해
- 타인과 소통하기 위해
- 문제 도메인 및 요구사항을 이해하기 위해
- 개발 중인 시스템을 이해하기 위해
- 구현 전 솔루션을 실험해보기 위해
- 기존 시스템을 문서화하기 위해
2. 관점과 추상화 수준
3. 모델 사이의 관계****
5-2 UML
1. UML
: (Unified Modeling Language) 객체지향 소프트웨어를 모델링 하는 표준 그래픽 언어.
- 역사: OMT(1991), Booch(1994), OOSE(1992) 방법의 통합으로 만들어짐.
2. UML 분류(3)
- 구조 다이어그램(6): 클래스 diagram, 객체 diagram, 컴포넌트 diagram, 컴포지트 구조 diagram, 배치 diagram, 패키지 diagram
- 동작 다이어그램(4): 유즈케이스 diagram, 액티비티 diagram, 상태 diagram, 인터렉션 diagram(시퀀스 diagram, 커뮤니케이션 diagram, 인터렉션 오버뷰 diagram , 타이밍 diagram )
3. UML 모델링 과정(7)
- 유즈케이스 다이어그램 작성
- 클래스 후보를 찾고 객체 모형 작성
- 시퀀스 다이어그램 작성
- 클래스의 속성, 관계를 찾아 객체 모형 완성
- 상태 다이어그램, 액티비티 다이어그램 등 다른 다이어그램 추가해 UML모델 완성
- 서브시스템 파악 후 전체 시스템 구조를 설계
- 새로운 객체 설계
5-3 정적 모델링
1. 정적 모델
: 객체들의 공통 구조와 동작들을 추상화 시킨 것. 클래스 다이어그램이 대표적임.
: 객체지향 개념 이해 필요.(속성, 연관, 집합, 상속, 다형성)
2. 객체 지향 개념(6)
- 객체: 상태, 동작, 고유 식별자를 가진 실체.
- 클래스: 공통 속성을 공유하는 객체 집합에 대한 정의
- 캡슐화: 객체 속성 부분, 오퍼레이션 부분을 하나로 모아 단위화. 정보 은닉.
- 연관: 서비스를 제공하는 객체와 요청하는 객체가 상호작용하는 관계.
- 상속: 일반화된 클래스가 갖는 속성과 연산을 하위 클래스가 그대로 물려받음
- 다형성: 같은 이름의 메시지를 다른 객체나 서브 클래스에 호출할 수 있는 특징.
3. 클래스 다이어그램
- 표현: 사각형을 세부분으로 나눔. 각각 클래스 이름/ 클래스 속성/ 오퍼레이션.
- 추상클래스는 이텔릭체, 인터페이스 클래스는 <<interface>> 추가.
- 클래스 속성은 객체가 갖는 모든 필드 포함. 오퍼레이션에서는 흔한 메소드는 생략(get, set)
- 관계의 표현
* 연관: 객체 사이에 관련되어 링크 되어 있음. 화살표가 있는 경우 단방향 탐색만 가능.
항구에는 보트가 정박해 있다는 의미. Harbor는 Boat클래스의 인스턴스에 대한 참조 배열을 포함.
* 상속(일반화): SailBoat 클래스가 Boat클래스에서 상속 받음.
* 의존: 한 클래스의 변경으로 다른 클래스 변경이 필요할 수 있음.
의존관계의 클래스를 매개변수로 사용하거나 리턴 값으로 반환할 떄 사용
* 구현: 클래스가 인터페이스를 구현하는 것.
(추상클래스의 목적: 그 추상클래스를 상속받아서 기능을 이용, 확장)
(인터페이스의 목적: 함수껍데기만 있어 그 함수의 구현을 강제하기 위함.)
5-4 동적 모델링
1. 동적 모델
: 소프트웨어가 실행될 때 변경 될 수 있는 뷰. 인터렉션 다이어그램.
-> 시퀀스 다이어그램, 통신 다이어그램(커뮤니케이션 다이어그램)
2. 시퀀스 다이어그램
: 객체들의 메시지 교환을 시간적 관계로 나타낸 다이어그램.
- 시퀀스 다이어그램 작성 과정(3)
(1) 참여하는 객체 파악
(2) 파악한 객체를 x축에 나열하고 라이프라인을 그음
(3) 사용사례에 개술된 이벤트 순서에 따라 객체의 메시지 호출을 화살표로 나타냄.
3. 통신 다이어그램
- (객체 다이어그램) + (객체 간의 메시지)
4. 상태 다이어그램
5-5 제어 모델링
1. 액티비티 다이어그램
: 액티비티(계산 또는 프로세) 사이의 제어 흐름을 보여주는 흐름도.
5-6 모델 검증
1. 모델 검증 방법(5)
- 리뷰(수작업)
- 테스팅
- 정형적 방법(상태도)
- 프로토 타이핑
- 요구 추적(수작업)
2. 일관성 체크(3)
(1) 유즈케이스 다이어그램 - 시퀀스 다이어그램
(2) 시퀀스 다이어그램 - 클래스 다이어그램
(3) 클래스 다이어그램 - 상태 다이어그
'Computer Science > Software Engineering' 카테고리의 다른 글
[소공] 7장 아키텍쳐와 패턴 (0) | 2023.12.14 |
---|---|
[소공] 6장 설계 원리 (0) | 2023.10.28 |
[소공] 객체지향 방법론과 UML (1) | 2023.10.13 |
[소공] 4장 요구 분석 (1) | 2023.10.09 |
[소공] 3장 프로젝트 관리와 계획 (1) | 2023.10.07 |