∎ 모델링
개발할 시스템의 성능이나 동작 등을 알기 위하여 추상적으로 모형을 만드는 것 (구조적 분석을 해야한다.)
∎ 구조적 분석 (기능 분석, 상태 분석, 정보 분석)
좋은 소프트웨어를 개발하기 위해선 요구사항 분석을 잘해야하는데, 체계적으로 하기 위해 구조적 분석 방법을 이용한다.구조적 분석 ➞ 구조적 설계 ➞ 구조적 프로그래밍을 통하여 체계적이고 규칙적인 소프트웨어를 개발한다.
- 큰 프로세스에서 세분화 된 작은 프로세스로 쪼개지는 하향식 구조이다.
- 기능 분석, 상태 분석, 정보 분석의 3가지로 나뉘어 진다.
1. 기능 분석
입력 데이터에 대한 처리들을 분석하여, 사용자가 원하는 요구사항을 제공하는지 알아보는 과정이다.
(기능과 서비스 파악)
사용자 입장에서 쓰임새를 기술하여 분석한다.
- 자료 흐름도 (DFD : Data Flow Diagram)으로 나타낸다.
: 정보가 입력되어 적용되는 변화와 결과를 그림으로 표현- 배경도 : 사용자와 프로그램 사이의 인터페이스를 큰틀로 보여준다. 비즈니스 미팅 자료로 사용되고 이해하기 쉽다.
- 자료흐름도와 계층화 : 프로세스들을 더이상 쪼개지지 않는 원시 프로세스가 될 때까지 나누고, 데이터들의 입출력을 나타내어 자료의 흐름을 그린다.
정보흐름의 연속성을 유지하기 위해 부모 자료흐름도의 입출력과 자녀 자료흐름도의 입출력이 같아야하고 이것을 균형(제약조건)이라고 한다.
원시 프로세스들의 설명은 미니 명세서(프로세스 명세서)로 나타내고, 프로세스가 나누어지면서 데이터도 나누어지는데 이는 자료사전(DD) (메타데이터를 저장)에 정의하여 균형을 유지하는데 도움을 받는다. - 정보 저장소 : 데이터를 저장하고 가져오는 DB를 나타낸다. 데이터의 입력만 있는 것을 싱크라고 하고 출력만 있는 것을 소스라고 하는데, 이는 좋은 저장소가 아니다.
2. 상태 분석
- 동작 상태를 분석함으로서 놓치고 있는 기능들을 발견할 수 있다.
- 제어하는 성격을 갖는 데이터들에 의한 상태 변화를 분석
(기능 분석에서의 데이터는 주로 정적이었다) - 제한된 시간 이내에 상태를 파악한다.
- 상태 변화도(STD : State Transition Diagram) :
- 외부 자극에 의한 상태 변화를 나타낸 것
- 사건, 상태, 동작(즉각적인 반응), 활동(시간이 좀 더 이어지는 반응), 조건들로 상태 변화, 시스템 제어의 흐름, 변화되는 시스템 동작 순서들을 볼 수 있다.
- 시나리오 작성 -> 사건 추적도 -> 상태 변화도를 작성한다.
.
- 시나리오 작성 : 정상 동작, 비정상 동작을 작성한다.
. - 사건 추적도 작성 : 시나리오를 그림으로 보기 쉽게한다.
. - 상태 변화도 작성 :
- 정적인 데이터 : 프로세스에 입력된 후, 프로세스 내에서 변형되어 새로운 데이터로 출력된다.
- 제어 데이터 : 프로세스에 의해 변형되는 것이 아니라, 조건이나 경계 구분 같은 속성을 가지고 소프트웨어 기능 동작 순서를 선택하는 역할을 한다.
<기능분석과 상태분석을 융합하여 보는법>
- DFD에 "제어 명세서"를 추가로 표시한다.
- 프로세스 활성표(PAT), 결정표(DT), 상태 변화도(STD), 상태 사건표(SEM)을 이용할 수 있다.
- 프로세스 활성표(PAT) : 제어 데이터들이 true, false인지에 따라 각각의 프로세스들이 활성화되는지를 표로 나타낸 것
- 결정표(DT) : 제어 데이터들로부터 새로운 제어 데이터들이 만들어질 때, 이것들을 모두 나타내기 위해 사용된다.
프로세스의 동작 도중에 요구되는 결정값, 조건값을 나타낼 수 있다. - 상태 사건표(SEM) : 상태 변화도에 나온 상태와 사건들을 표로 나타낸 것으로 "어떤 상태에서 어떤 사건이 발생하여 새로운 상태가 되는 과정"을 알 수 있다.
3. 정보 분석
- 시스템에서 사용되는 자료 구조체를 정의하고 자료 구조체들 사이의 관계를 나타내는 것
- ER, EER, 모델을 사용한다.
- 상세한 사항들은 나와있지 않고, 추상적인 개념들만 표현한다.
- 엔티티 : 실세계에서 독립적으로 존재하는 사물 객체
- 엔티티 타입 : 같은 속성을 가지는 엔티티들의 집합.
엔티티 타입으로 '분류화'하고 새로운 엔티티로 '실체화'한다. - 매핑 제약조건 : 일대일, 일대다, 다대다
- 참여 제약조건 : 필수적 참여 (1,1), 선택적 참여(0,N)
'CS 지식 > 소프트웨어 공학' 카테고리의 다른 글
소프트웨어 설계 단계 (0) | 2024.08.10 |
---|---|
소프트웨어 개발 계획 세우기 (0) | 2024.08.10 |
요구사항 분석 (인터뷰, 설문 조사) (0) | 2024.08.09 |
소프트웨어 개발 방법론 (0) | 2024.08.09 |
소프트웨어 공학의 목표 (0) | 2024.08.09 |