본문 바로가기
컴퓨터 일반

4. 소프트웨어공학 - 요구사항 분석 및 설계

by 쬑께께 2026. 1. 22.

(113)

요구의 문제점과 해결방안

(1) 요구분석의 문제점: 사용자의 불확실한 요구 설명

- 사용자가 필요한 사항을 모르거나 잘 표현하지 못할 때

- 사용자의 소프트웨어 이해도 증가에 따라 처음에 요구하지 않았던 새로운 요구가 발생하는 경우, 사용자의 변경요구는 수용할 수 밖에 없음

- 사용자 요구: 매우 다양, 일관성이 없는 요구도 적절히 처리해야 함

 

(2) 요구분석 작업의 어려움과 해결방안

- 대화(의사소통)의 어려움: 다이어그램, 프로토타이핑

- 시스템의 복잡도: 구조적 분석, 객체지향 분석

- 다양한 요구의 변화: 요구수용의 통제강화

- 요구명세의 어려움: 요구분석의 표기법 강화, 자동화 도구

 

(114)

자료 흐름도의
구성요소
도형 비교설명
Yourdon과 DeMarco Gane과 Sarson
외부 입출력 사각형 여러 개의 사각형
(인터넷 창을 비스듬히
겹쳐놓은 모양 + 대각선)
Gane과 Sarson의 표기법에서의 대각선: 반복의 의미
처리과정 -> 원(처리과정 설명) -> -> 끝이 둥근 사각형(위에서부터
색인, 처리과정, 물리저장소) ->
Gane과 Sarson의 표기법: 버블의 상단에 이름이나 색인, 하단에 물리적 장소나 해당 프로그램명 등 분석가에게 필요한 정보 기입할 수 있음
자료흐름 화살표  화살표 자료의 흐름에는 차이가 없음
자료 저장소 두 개의 선 (띠형태) 작은 인덱스 형태
ID   |   내용 
Gane과 Sarson의 표기법은 자료 저장소의 ID 기입할 수 있도록 함
사물의 흐름   -------------      오른쪽 방향
|                ∖  가리키고 있는
|                    오각형
-------------   
컴퓨터 데이터가 아닌 일반사물(material)의 흐름도 Gane과 Sarson의 표기법은 표현할 수 있도록 함

 

자료사전 기호

자료사전 기호 의미
= 항목의 정의(로 구성되어 있음)
+ 그리고, 순차(and)
{ } 선택사양, 생략가능(optional)
[ ] 반복(iteration)
[ | ] 여러 대안 중 하나 선택
* * 주석(Comment)

 

프로세스 명세서(process specification)

- 원시버블 처리 절차를 기술

*원시버블(= 프리미티브 버블, primitive bubble): 자료 흐름도의 계층상에서 최하위 단계, 더 이상 분해할 수 없는 단계의 버블

- 명세서: 모델링한 결과

- DeMacro는 프로세스 명세서를 미니스팩(minispec)이라고 함

- 자료의 흐름도상의 최하위 처리를 정밀하게 다룸

구조적 영어
(Structured English)
- 사용되는 문장의 종류와 문장들이 결합하는 방법에 제약 사항들을 가진 완전한 영어의 부분 집합
의사 결정 테이블
(decision table)
- 프로세스가 어떤 출력을 만들어 내거나 복잡한 결정에 기초한 동작을 가지고 있는 경우 유용
- 많은 조건을 보기 편하게 정리할 때 편리
의사 결정도
(의사 결정 트리, decision tree)
- 의사결정하는 논리를 도형화
실시간 소프트웨어 개발 시 - 상태 전이도, 상태 전이표 이용

 

자료구조지향 분석 기법

- 자료의 흐름이 아닌 자료구저에 초점을 맞추어 진행

- 분석가가 중요한 정보개체들과 연산들을 식별할 수 있도록 지원

- 자료구조: 순서, 선택, 반복 등에 의해 표현될 수 있음

- 계층화된 자료구조를 프로그램 구조로 변환하는 일련의 단계 제공

Warnier - Orr 분석기법
= DSSD(Data Structured System
Development) 개발 방법론
- Warnier가 제안한 자료의 계층화 방법에 Orr가 정보흐름과 기능특성 추가 보완한 기법
- 자료구조를 통해 소프트웨어 구조 유도할 수 있다고 봄
- 출력자료 구조에서 프로그램 구조의 입력자료 구조를 추론
- 순차, 선택, 반복의 세 가지 구조를 사용해 정보 계층을 표현하기 위한 것
Jackson 분석 기법 - Jackson에 의해 제안된 JSD 기법 (Jackson system development)
- 정보 영역 분석으로부터 프로그램 설계로 진행시키는 자료구조지향 방법의 일종
- 실세계 정보영역에 대한 모델에 초점을 둠