Search
🏫

[소프트웨어 공학] 9. 객체지향 분석과 설계

[소프트웨어 공학] 12. 상호작용 다이어그램
CS
Software Engineering
2023/06/1115:16
[소프트웨어 공학] 12. 상호작용 다이어그램
CS
Software Engineering
2023/06/1115:16

1. 객체지향 분석과 설계

시스템을 상호작용하는 객체들로 모델링
객체의 협력과 상호작용을 표현하는 모델
객체지향 분석
시스템이 기능적으로 무엇을 수행하는지 설명
유즈케이스 다이어그램, 명세
클래스 다이어그램, 상호작용 다이어그램
구현과 관련된 제약사항 고려 X
객제치향 설계
시스템을 어떻게 만들것인가 설명
플로우

2. 요구사항 추출

2.1. 액터

시스템과 상호작용하는 사람이나 외부시스템
요구사항 추출의 첫 단계

2.2. 시나리오

액터가 보는 시스템의 단일 기능을 이야기 식으로 기술한 것
시나리오 vs 유즈케이스
시나리오 - 특정 사례
유즈케이스 - 일반 사례
예시

2.3. 유즈케이스

시나리오는 유즈케이스의 인스턴스
시나리오는 특정 한 사례
유즈케이스는 유사 기능의 모든 사례
해당 기능의 모든 가능한 시나리오를 명세한 것
기본 이벤트 흐름
시스템과 액터의 성공적인 상호작용 기술
대체 이벤트 흐름
부수적이며 선택적인 상호작용 기술

2.4. 액터와 유즈케이스간의 관계

통신 관계
액터와 유즈케이스간의 관계
확장 관계
기본 유즈케이스에서 예외적이며 선택적인 사건의 흐름을 떼어냄
포함 관계
유즈케이스들에서 존재하는 공통의 기능을 분리
상속 관계
액터 / 유즈케이스 간의 상속 관계

3. 분석

3.1. 분석 모델

종류
기능 모델
유즈케이스와 스토리 방법 사용
유즈케이스 다이어그램
소프트웨어 시스템과 외부 환경 상호작용 표현
분석 객체 모델
응용 도메인을 설명한 개념 모델
클래스 다이어그램
엔티티 / 경계 / 제어 객체
동적 모델
개념 모델 확장
액터와 시스템간의 상호작용 표현 (시퀸스 다이어그램)
개별 클래스에 책임 할당
단일 객체의 상태 변화 모델링 (상태 머신 다이어그램)
제어 객체를 대상으로 함
객체 행위를 정형화

3.2. 분석 활동

주요 활동
엔티티/경계/제어 객체 찾기
유즈케이스 → 시퀸스 다이어그램
연관, 집합체 찾기
속성 찾기
객체의 상태, 상속 관계등 모델링
객체
엔티티 객체 - 코어 정보
경계 객체 - 인터페이스
제어 객체 - 실제적 기능 수행 부분. 경계 객체와 엔티티 객체 사이의 조정자

4. 시스템 설계

분석 모델을 시스템 설계 모델로 변환하는 것
분석 모델은 시스템 내부구조, 구현 방법 등에 대한 정보는 포함 X
결과
소프트웨어 아키텍처 결정
목표 설정
시스템 설계의 시작으로 비기능 요구사항과 응용 도메인으로부터 유도됨
플로우

5. 통합 프로세스 (Unified Process)

5.1. 통합 프로세스 (UP)

객체지향 분석과 설계를 위한 방법론
주요 특징
반복적 개발
유즈케이스 기반 개발
아키텍처 중시
프로젝트 초기에 중요한 위험 다룸

5.2. UP 생명 주기

4 단계로 구성됨. 정련,. 구축, 전이는 각각 일련의 반복으로 구성
도입, 정련, 구축, 전의
예시)
도입
시스템 범위 설정
주요 요구 사항 나열
대략적인 아키텍처 검토
타당성 조사
정련
핵심 아키텍처 구축, 대부분 요구사항 정의
80% 유스케이스 상세 작성
중요 요구사항 설계 및 구현 (전체의 약 15%)
구축
남아 있는 덜 중요한 부분을 구현하고 통합함
최종적으로 고객에게 인도 준비
전이
사용자 환경에서 시스템을 설치
반복은 사용자 피드백을 받아 보수하는 작업