CODEDRAGON ㆍDevelopment/Software Engineering
분석 클래스 검증
유스케이스마다 분석 클래스가 적절히 도출되었고, 제어 클래스의 도출 등이 충분하고 상세하게 도출되어 클래스의 역할, 클래스 간의 관계, 메시지 흐름 등을 확인할 수 있는지 검토한다.
· 유스케이스 실현(Realization)에 필요한 분석 클래스 도출 확인
· 경계(Boundary)와 제어(Control) 클래스의 도출 여부 및 상세화 정도 확인
· 클래스 간의 관계, 클래스 정보의 상세화 정도 확인
유스케이스 실현(Realization)에 필요한 분석 클래스 도출 확인
· 하나의 유스케이스를 실현하기 위하여 3개 이상의 클래스가 역할(Role) 기준으로 도출되어야 하며, 유스케이스 별로 실현에 필요한 클래스가 추적 가능해야 클래스 누락 여부를 확인할 수 있다.
· 유스케이스 별로 도출된 분석 클래스들이 역할(Role) 기준으로 경계(Boundary), 엔터티(Entity), 제어(Control) 클래스가 도출되어 스테레오 타입으로 표시되었는지 확인한다.
· 유스케이스 이벤트 흐름에 따라 다르지만 일반적으로 유스케이스 당 1개의 제어 클래
스가 존재하고, 연결된 액터마다 1개의 경계 클래스가 존재하는지 확인한다.
분석 클래스의 스테레오 타입
역할구분 | 스테레오 타입 | 내용 |
경계 (Boundary) |
<<boundary>> |
시스템과 외부 액터와의 상호작용을 담당하는 클래스 |
엔터티 (Entity) |
<<entity>> |
시스템이 유지해야 하는 정보를 관리하는 기능을 전담하는 클래스 |
제어 (Control) |
<<control>> |
시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스 |
분석 클래스 다이어그램 예시
경계(Boundary)와 제어(Control) 클래스의 도출 여부 및 상세화 정도 확인
유스케이스 실현에 필요한 분석 클래스들이 도출되었는지 확인하기 위하여, 유스케이스 단위로 분석 클래스를 확인한다.
역할 구분 |
검토 사항 |
경계 | · 유스케이스와 연결된 액터가 있고, 액터의 유형이 시스템 또는 장 비인 경우, 해당 액터를 위한 경계 클래스가 도출되었는지 확인하고, 유스케이스의 이벤트 흐름을 참조하여 관련 기능을 처리하기 위한 연산이 도출되었는지 확인한다. · 유스케이스 명세서의 이벤트 흐름을 확인하여, 유스케이스에서 필요한 UI를 위한 경계 클래스가 도출되었는지 확인한다. · UI를 위한 경계 클래스인 경우, 사용자에게 제공할 항목이 속성으로 도출되었는지 확인하고, 화면, 보고서 상의 데이터 타입, 길이가 경계 클래스 속성 정의와 일치하는지 확인한다. |
제어 | · 유스케이스 별로 제어 클래스가 1개 이상 도출되었는지 확인한다. · 제어 클래스의 연산에 대응하는 엔터티 클래스가 있는지 확인한다. · 유스케이스 명세서 기술된 이벤트 흐름을 처리하기 위한 연산이 제어 클래스에 정의되어 있는지 확인한다. |
클래스 간의 관계, 클래스 정보의 상세화 정도 확인
분석 클래스 간 관계 및 상세화 정도 확인
역할 구분 | 검토 사항 |
관계 | · 유스케이스 명세서를 바탕으로 각 클래스 사이의 관계를 정의하였는지 확인한다. · 관계의 다중성이 정확하고 모순이 없는지 확인한다. · 2개의 클래스 간에 1개 이상의 관계가 존재하면, 관계 명 또는 역할 명이 정의되었는지 확인한다. |
연산 및 속성 상세화 | · 유스케이스 명세서를 바탕으로 클래스의 속성 및 연산이 도출되었는지 확인한다. · 도출된 연산의 매개 변수(명, 타입, 길이)와 리턴 타입이 정의되었는지 확인한다. · 도출된 클래스의 속성(명, 타입, 길이)이 이해관계자 간에 이견이 없도록 명확하게 정의되었는지 확인한다. · 경계 클래스의 속성과 화면/보고서의 항목, 엔터티 클래스의 속성정보가 일관성을 가지는지 확인한다. |
분석 클래스 다이어그램 예시
'Development > Software Engineering' 카테고리의 다른 글
폭포수 모델(Waterfall Model) - 소프트웨어 개발 주기 (0) | 2022.01.28 |
---|---|
Microsoft.Source 뉴스레터 신청하기 - 개발자 커뮤니티 뉴스레터 (0) | 2021.12.20 |
Hack (핵) - 코딩용 글꼴 (0) | 2021.05.16 |
Markdown(마크다운) - 텍스트를 HTML로 바꿔주는 문법 (0) | 2021.02.08 |
특수기호 (영문명, 한글명) 정리 - 읽는 법 (0) | 2021.01.24 |