1.클래스 후보 집합을 파악
2.가장 중요한 클래스부터 시작하여 연관관계와 꼭 필요한 속성을 추가
3.가장 확실한 일반화 관계부터 시작하여 파악
4.클래스의 주요 임무를 찾아 나열
5.각 클래스에 의해 수행될 기능을 간단한 문장으로 표현
6.임무를 기준으로 필요한 오퍼레이션을 결정
7. 전체과정 되풀이
(1) 클래스,연관관계 속성 일반화 임무 등을 추가 삭제
(2) 전체/연관 관계, 속성,오퍼레이션이 설정한 임무를 만족하는지 집중확인
uml 그리기 도구는 여러가지가 있다
반복 점증적 방법
- 초벌로 작성 후 계속 추가,삭제
클래스파악
- 도메인 모델을 개발할 때 클래스를 찾아내려고 노력
- 사용자 인터페이스나 시스템 구조에대한 작업할때 필요한 클래스 고안
예시 항공권 예약 시스템
후보 : 승객, 승무원 ,항공스케줄 , 항공편, 좌석, 예약
여기서 핵심은 항공편이 필수적으로 필요하고 사용자는 승객 ,승무원 이다
사용자인 승객의 정보를 보관할것이고 승무원의 정도보 보관할 것이다
좌석은 항공편의 속성이다. 항공스케줄은 항공편의 속성이 될것이다
클래스 : 항공편,승객,승무원, 예약
연관관계 파악 비결
-가장 중심이 되는 클래스부터 시작
-분명하고 확실한 데이터를 포함할 수 있는 것이어야
-덜 중요한 클래스로 작업을 이동
-클래스에 많은 속성과 연관관계를 포함해야한다
다음과 같은 클래스가 되는지 판단해본다
-양끝에 다중도를 표시
-레이블을 정확히 붙인다
속성파악
각 클래스에서 보관해야 할 데이터를 찾음
클래스 후보에서 탈락한 명사는 대부분 속성이다
속성은 단순한 값을 가져야한다
-스트링 문자 정수등의 타입
일반화 관계와 인터페이스의 파악
일반화를 파악하는 두 가지 방법
상향식
- 유사 클래스를 그루핑 하여 슈퍼클래스를 생성
Ex) 승객과 승무원을 하나로 묶어서 본다
하향식
-먼저 일반클래스를 찾고 필요하면 상세화
슈퍼클래스 대신에 인터페이스를 정의하는 경우
- 몇 개의 오퍼레이션만 같고 그 외의 부분은 다른클래스들
- 하나 이상의 클래스들이 이미 슈퍼클래스가 존재
- 같은 클래스의 구현이 다르게 존재할때
일반화 사례
클래스에 임무부여
임무 : 시스템이 수행하도록 요구된 사항
-주어진 클래스의 모든 요구는 명확히 서로 연관됨
-한 클래스에 너무 많은 임무가 주어지면 다른 클래스로 분산
- 임무가 부여되지 않은 클래스는 필요가 없다.
- 임무가 존재하는 클래스에 할당되지 않았다면 새 클래스를 생성한다.
임무를 결정하기 위하여
- 사용사례 분석
- 시스템 명세에 액션을 기술하고 있는 동사와 명사를 찾는다
임무의 종류
오퍼레이션 파악
각 클래스에 부여된 임무를 실현시키기 위하여 필요
-임무 하나에 여러 개의 오퍼레이션이 필요할수도 있다
-임무를 구현한 메인 오퍼레이션은 public으로 선언되어야 한다
-임무를 실행하기 위하여 협동하는 다른메소드는 가능하면 private로 선언
'3학년2학기 > 소프트웨어공학' 카테고리의 다른 글
커뮤니케이션 다이어그램 (0) | 2019.10.18 |
---|---|
시퀀스 다이어그램 (0) | 2019.10.18 |
동적 모델링 목차 (0) | 2019.10.18 |
코드매핑 (0) | 2019.10.18 |
소프트웨어 공학 전체 목차 (0) | 2019.10.15 |
댓글