1과목 소프트웨어 설계 요구사항 확인 008 ~ 010
008. 요구사항 분석 CASE와 HIPO
- 요구사항 분석을 위한 CASE(자동화 도구)
: 요구사항을 자동으로 분석하고, 요구사항 분석 명세서 기술하도록 개발된 도구.
1) SADT(Structured Analysis and Design Technique) : SoftTech사 / 시스템 정의, 소프트웨어 요구사항 분석, 시스템/SW 설계를 위해 이용. 블록 다이어그램 채택
2) SREM (Software Requirements Engineering Methodology) = RSL/REVS
: TRW사.
- RSL(Requirement Statement Language) : 요소/속성/관계/구조 기술하는 요구사항 기술 언어
- REVS(Requirement Engineering and Validation System) : RSL로 기술된 요구사항들을 자동으로 분석하여 분석명세서 출력
3) PSL/PSA : 미시간 대학.
- PSL(Problem Statement Language) :요구사항 기술 언어
- PSA(Problem Statement Analyzer) : PSL로 기술된 요구사항을 자동으로 분석하여 보고서 출력
4) TAGS(Technology for Automated Generation of Systems)
- IORL : 요구사항 명세 언어
- HIPO (Hierarchy Input Process Output)
: 하향식 소프트웨어 개발을 위한 문서화 도구.
HIPO chart
- 가시적 도표 (Visual Table of Contents) : 전체적 기능과 흐름을 보여주는 계층 구조
- 총체적 도표 (Overview Diagram) : 프로그램 구성 기능 기술
- 세부적 도표 (Detail Diagram) : 총체적 도표 기능을 구성하는 기본 요소들을 상세히 기술
009. UML(Unified Modeling Language)
- UML : 시스템 개발 과정에서 시스템 개발자와 고객 간의 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링 언어.
1) 사물(Things) : 기본 요소. 다이어그램 안에서 관계가 형성될 수 있는 대상
- 구조 사물/ 행동 사물/ 그룹 사물/ 주해 사물(annotation things)
2) 관계 (Relationships) : 사물과 사물 사이의 연관성 표현
- 연관 관계 / 집합 관계 / 포함 관계 /일반화 관계/ 의존 관계 / 실체화 관계
- 연관 : 2개 이상의 사물이 서로 관련되어 있음. 실선으로 연결/ 방향성은 화살표로 표현 (양방향은 화살표 생략)
- 집합 : 하나의 사물이 다른 사물에 포함되어 있음. (Whole - Part 서로 독립적) 포함되는쪽(part)에서 포함하는 쪽(whole)으로 속이 빈 마름모 연결.
- 포함 : (집합) 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계. (Whole-Part 서로 독립X) 속이 채워진 마름모 연결.
- 일반화 : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현. 구체적인 사물 -> 일반적인 사물 쪽으로 속이 빈 화살표 연결
- 의존 : 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계. 영향을 주는 사물(이용자) -> 영향을 받는 사물(제공자) 쪽으로 점선 화살표를 연결
- 실체화 : 사물이 할 수 있거나 해야하는 기능으로 서로를 그룹화 하는 관계. 사물 -> 기능 쪽으로 속이 빈 점선 화살표 연결.
3) 다이어그램 (Diagram) : 사물과 관계를 도형으로 표현.
- 구조적 다이어그램 (정적 모델링) : 클래스 다이어그램/ 객체 다이어그램/ 컴포넌트 다이어그램/ 배치 다이어그램/ 복합체 구조 다이어그램/ 패키지 다이어그램
- 행위 다이어그램 (동적 모델링) : 유스케이스 다이어그램/ 순차 다이어그램/ 커뮤니케이션 다이어그램/ 상태 다이어그램/ 활동 다이어그램/ 상호작용 개요 다이어그램/ 타이밍 다이어그램
* 스테레오 타입 : UML에서 표현하는 기본 기능 외에 추가적인 기능 표현하기 위해 사용.
<<include>> | 연결된 다른 UML 요소에 대해 포함관계 |
<<extend>> | 연결된 다른 UML 요소에 대해 확장관계 |
<<interface>> | 인터페이스 정의 |
<<exception>> | 예외를 정의 |
<<constructor>> | 생성자 역할을 수행 |
010. 주요 UML 다이어그램
1) 유스케이스 다이어그램
: 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현.
- 시스템/ 시스템 범위 : 시스템 내부에서 수행되는 기능들을 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현.
- 액터 : 시스템과 상호작용하는 모든 외부 요소 (사람/ 외부 시스템). 주액터/ 부액터
- 유스케이스 : 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스/기능
- 관계 : 액터-유스케이스 / 유스케이스-유스케이스 (연관관계/ 포함관계(<<include>>)/ 확장관계 (<<extends>>) / 일반화 관계)
** 포함관계 : 두개 이상의 유스케이스에 공통적으로 적용되는 기능을 별도로 분리하여 새로운 유스케이스로 만든 경우!
** 확장관계 : 유스케이스가 특정 조건에 부합되어 유스케이스의 기능이 확장될 때!
2) 클래스 다이어그램
: 시스템 구성 요소에 대해 이해할 수 있는 구조적 다이어그램
- 클래스 : 각각의 객체들이 갖는 속성과 오퍼레이션(동작)을 표현.
- 클래스 이름
- 속성 : 클래스 상태, 정보
- 오퍼레이션 : 클래스가 수행할 수 있는 동작. (함수/메서드)
- 제약조건 : 속성과 오퍼레이션에 대한 제약조건
- 관계 : 클래스와 클래스 사이의 연관성. (연관 / 집합 / 포함 / 일반화 / 의존 관계)
3) 순차(Sequence) 다이어그램
: 시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호작용하는 과정을 그림으로 표현. (클래스가 수행할 수 있는 오퍼레이션을 표현)
- 액터 : 시스템으로부터 서비스 요청하는 외부요소 (사람/외부시스템)
- 객체 : 메시지 주고받는 주체
- 생명선(lifeline) : 객체가 메모리에 존재하는 기간
- 실행 상자 (active box) : 객체가 메시지를 주고받으며 구동되고 있음을 표현
- 메시지 : 객체가 상호작용을 위해 주고받는 메시지