도출된 요구사항 간 상충을 해결하고 소프트웨어의 범위를 파악하여 외부 환경과의 상호 작용을 분석화는 과정
② 요구사항 분석에 사용하는 기능 모델링 기법
㉮ 자료흐름도(DFD)
개념: 1. 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림이다. 2. 시스템 분석과 설계에서 매우 유용하게 사용되는 다이어그램이다. 3. 자료 흐름 그래프 또는 버블 차트라고도 한다.
특징 1. 구조적 분석 기법(하향식 분할 기법)에 이용된다. 2. 데이터의 흐름에 중심을 두는 분석용 도구이다. 3. 제어의 흐름은 중요하지 않다
구성요소
구성요소
설명
표시
처리기
입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 과정
원(O)
데이터 흐름
DFD의 구성요소들 간의 주고받는 데이터 흐름을 나타냄
화살표(->)
데이터 저장소
데이터가 저장된 장소이고 이중직선 안에는 자료 저장소의 이름을 넣음
이중직선(=)
종착지
프로세스 처리과정에서 데이터가 발생하는 시작과 종료를 나타내고, 사각형 안에는 외부 엔터티의 이름을 넣음
사각형(ㅁ)
㉯ 자료사전(DD)
개념 1. 자료 요소, 자료 요소들의 집합, 자료의 흐름, 자료 저장소의 의미와 그들 간의 관계, 관계 값, 범위, 단위들을 구체적으로 명시하는 사전
작성목적 1. 조직에 속해 있는 다른 사람들에게 특정한 자료 용어가 무엇을 의미하는지를 알려주기 위하여, 용어의 정의를 정의조정하고 취합하고 문서로 명확히 하는 목적
자료 사전 기호
기호
설명
=
자료의 정의로서 '~으로 구성되어 있다'는 것을 나타내는 기호
+
자료의 연결을 나타내는 기호
( )
자료 생략 가능함을 나타내는 기호
{ }
자료의 반복을 나타내는 기호
[ ]
자료의 선택을 나타내는 기호
**
자료의 설명을 나타내는 기호
자료 사전 작성 시 고려사항
자료의 의미 기술 1. 자료의 의미는 주석을 통해서 기술 2. 자료의 의미를 기술할 때는 그 자료가 대상 시스템에서 사용되는 적합한 뜻을 표현
중복 정의 제거 1. 동일한 자료에 대해 여러 명의 분석가가 독립적으로 분석을 시행한다면, 서로 다른 이름을 사용할 수 있기 때문에 자료 정의의 중복 제거 및 명확한 정의 방식 선택
자료 갱신 용이 1. 갱신하기 쉬워야 함
2. UML
① UML의 개념
객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화 할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어이다.
② 특징
가시화 언어: 개념 모델 작성 시 오류가 적고 의사소통이 용이
구축 언어: 다양한 프로그래밍 언어로 실행 시스템의 예측 가능 및 UML을 소스 코드로 변환하여 구축 가능, 역변환하여 역공학 가능
명세화 언어: 정확한 모델 제시, 완전한 모델 작성 가능
문서화 언어: 시스템에 대한 평가 및 의사소통의 문서
③ 구성요소
사물(Things) 1. 추상적인 개념으로 주제를 나타내는 요소 2. 단어 관점에서 '명사' 도는 '동사'를 의미
관계(Relationships) 1. 사물의 의미를 확장하고 명확히 하는 요소 2. 사물과 사물을 연결하여 관계를 표현하는 요소 3. 단어 관점에서 '형용사' 또는 '부사'를 의미
다이어그램(Diagrams) 1. 사물과 관계를 모아 그림으로 표현한 형태
④ UML 다이어그램
구조적 다이어그램 / 정적 다이어 그램
클래스(Class) 1. 시스템 내 클래스의 정적 구조를 표현 2. 속성과 동작으로 구성 3. 시스템의 구조를 파악하고 구조상의 문제점 도출 가능 4. 클래스와 클래스, 클래스의 속성 사이의 관계를 표현
객체(Object) 1. 클래스에 속한 사물들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현 2. 객체 인스턴스를 나타내는 대신 실제 클래스를 사용 3. 연관된 모든 인스턴스를 표현
컴포넌트(Component) 1. 코드 컴포넌트 기반의 물리적 구조 표현 2. 실질적 프로그래밍 작업에 사용
배치(Deployment) 1. 컴포넌트 사이의 종속성을 표현 2. 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
복합체 구조(Component Structure) 1.클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
패키지(Package) 1. 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현
행위적 다이어그램 / 동적 다이어그램
유스케이스(Usecase) 1. 사용자 관점에서 시스템의 활동을 표현 2. 유스케이스는 시스템의 기능적 요구 정의에 활용
시퀀스(Sequence) 1. 객체 간 상호 작용을 메시지 흐름으로 표현 2. 객체 사이 메시지를 보내는 시간을 표현 3. 교류 다이어그램의 한 종류로 볼 수 있음
커뮤니케이션(Communication) 1. 시퀀스 다이어그램과 같이 동작에 참여하는 개체들이 주고받는 메시지를 표현하는데, 메시지뿐만 아니라 객체 간의 연관까지 표현
상태(State) 1. 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현 2. 모든 가능한 상태와 전이를 표현 3. 상태의 변화를 일으키는 조건과 그 조건이 상태를 변화시킬 대 시스템이 취하는 행동을 제시해야 함 4. 진입 조건, 탈출 조건, 상태전이 등 기술 5. 상태도는 유한 상태 기계에서 상태와 상태전이를 표현하기 위해 도식화해서 표현하는 그림
활동(Activity) 1. 시스템에 있는 기능을 수행하는지를 객체의 처리 로직이나 조건에 따라 처리의 흐름으로 순서대로 표현 2. 활동의 순서대로 흐름을 표현
타이밍(Timing) 1. 객체 상태 변화와 시간 제약을 명시적으로 표현
⑤ UML 상세
㉮ 클래스 다이어그램
구성요소 1. 클래스 이름: 클래스 이름 2. 속성: 클래스의 특징에 이름을 부여 3. 연산: 클래스에 속하는 개체에 적용될 메서드를 정의 및 동작을 의미 4. 접근 제어자: 클래스에 접근할 수 있는 정도를 표현클래스 다이어그램 4-1 (-): 클래스 내부접근만 허용(private) 4-2 (+): 클래스 외부접근을 혀용(public) 4-3 (#): 동일 패키지 파생 클래스에서 접근 가능(protected) 4-4 (~): 동일 패키지 클래스에서 접근 가능(default)
㉯ 유스케이스 다이어그램
구성요소 1. 유스케이스: 코드로 구현할 수 있는 최소 단위 1-1 표기법
2. 엑터: 사용자가 ㅅ시스템에 대해 수행하는 역할 2-1 표기법
3. 시스템: 전체 시스템의 영역을 표현 3-1 표기법
㉰ 시퀀스 다이어그램
구성요소 1. 객체(Object): 위쪽에 표시되며 아래로 생명선을 가짐, 사각형 안에 밑줄 친 이름으로 명시 1-1 표기법
2. 생명선(Lifline): 객체로부터 뻗어 나가는 점선 2-1 표기법
3. 실행(Activation): 직사각형은 오퍼레이션이 실행되는 시간을 의미 3-1 표기법
4. 메시지(Message): 객체 간의 상호 작용은 메시지 교환으로 이루어짐 4-1 표기법
⑥ UML의 관계
연관 관계 1. 2개 이상의 사물이 서로 관련된 상태를 표현하는 관계 2. 사물 사이를 실선으로 연결하여 표현하며, 방향성은 화살표로 표현
의존 관계 1. 사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현하는 관계 2. 사물의 변화가 다른 사물에도 영향을 미치는 관계 3. 영향을 주는 사물이 영향을 받는 사물 족으로 점선 화살표를 연결하여 표현
일반화 관계 1. 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현하는 관계 2. 일반적인 개념을 부모라 하고, 구체적인 개념을 자식이라 함 3. 구체적인 사물에서 일반적인 사물 쪽으로 속이 빈 화살표를 연결하여 표현
실체화 관계 1. 한 객체가 다른 객체에 오퍼레이션을 수행하도록 지정하는 관계 2. 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현
포함 관계 1. 집합 관계의 특수한 형태로 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계 2. 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모를 연결하여 표현
집합 관계 1. 집합 관계는 하나의 사물이 다른 사물에 포함된 관계 2. 포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모를 연결하여 표현
⑦ UML 확장 모델의 스테레오 타입
UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 메커니즘이다.
유형
include: 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계
extend: 하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고, 그렇지 않을 수도 있는 관계
interface: 모든 메서드가 추상 메서드이며, 바로 인스턴스를 만들 수 없는 클래스로 추상 메서드와 상수만으로 구성된 클래스