1과목 소프트웨어 설계 -요구사항 확인 - 분석 모델 확인
1. 모델링 기법
(1) 모델링의 개념
- 복잡한 시스템을 쉽게 이해하기 위해 불필요한 부분을 생략하고 추상화하여 간단한 모델로 표현하는 것을 의미
- 소프트웨어를 구성하는 모듈들을 식별하고, 이것들의 연결을 그림으로 표현
- 요구분석 과정에 의해 수집된 개념과 정보를 분석하여 UML과 같은 방법을 이용하여 모델로 비주얼화
그림으로 되어있기 때문에 관계자들끼리 커뮤니케이션이 편하다.
(2) 모델링이 주는 도움
- 소프트웨어를 이해하는 데 도움
- 이해관계자들 사이에서 문제를 해결 할 수 있도록 해준다.
- 파악한 개념을 사용자와 고객에게 전달할 때 도움을 준다.
- 설계, 구현, 테스팅, 유지보수에 개념적인 기준을 제공한다.
(3) 모델링 구분
기능적 모델링
- 시스템의 기능을 사용자 관점에서 나타낸다.
정적 모델링(구조)
- 객체 간의 관계를 나타낸다
- 클래스 다이어그램을 주로 이용한다.
동적 모델링(행위, 흐름)
- 시간의 흐름에 따라 객체들을 모델링한다.
- 상태 다이어그램(상태도)을 주로 이용한다.
(4) 분석 모델의 종류
- 구조적 분석 모델
- 객체 지향 분석 모델
- 정보공학 분석 모델
- 정형화 분석 모델
(5) 구조적 분석 모델 - 절차 지향 언어 (대표적 C언어)
1. 구조적(절차적) 분석 방법론
- 도형화된 도구를 이용해 정형화된 분석 절차에 따라 사용자 요구사항을 파악하고 문서화하는 분석 기법
- 사용하는 도구로는 자료흐름도(DFD), 자료사전(DD), 소단위 명세서(Mini-spec) 등 (객체지향에서도 사용하지만 일단 시험이니..)
- 하향식 기능 분해 기법 등을 사용하는 특성
구조적 분석 도구
(1) 자료 흐름도(DFD, Data Flow Diagram)
- 가장 보편적으로 사용되는 시스템 모델링 도구로서, 기능 중심의 시스템을 모델링하는 데 적합
- 자료의 흐름과 처리 과정을 도형 중심으로 기술
- 자료 흐름 그래프 또는 버블 차트라고도 한다.
자료 흐름도 구성요소
- 처리 과정(Process) : 자료를 변환시키는 처리 과정을 표현
- 자료 흐름(Data Flow) : 자료의 이동을 표현
- 자료 저장소(Data Store) : 파일, 데이터베이스 등 자료가 저장되는 곳을 나타낸다.
- 단말(Teminator) : 데이터의 입출력 주체(사용자)를 나타낸다.

(2) 자료사전(DD, Data Dictionary)
- 자료흐름도에 기술된 모든 자료들에 대한 사항을 자세히 정의
자료사전 사용 기호
= : 자료의 정의 , ~로 구성되어 있다.
+ : 자료의 연결, 그리소, 순차(and)
() : 자료의 생량
[|] : 자료의 선택, 여러 대안 중 하나 선택, ex [남자 | 여자]
{} : 자료의 반복
** : 자료의 설명, 주석
자료사전 예시
자료 흐름
쇼핑몰 회원정보는 회원번호, 회원성명, 전화번호, 휴대폰번호로 구성되어 있고, 전화번호와 휴대폰 번호는 둘 중 하나만 선택이 가능하다.
표기형식
쇼핑몰 회원정보 = 회원번호 + 회원성명 + [전화번호 | 휴대폰번호]
(3) 소단위 명세서(DD, Data Dictionary)
- 자료 흐름도에서 어떤 일이 수행되는지를 정의하기 위해 각 처리들이 수행하는 업무를 상세하게 작성
- 프로세스 명세서라고도 한다
- 소단위 명세서는 구조적 언어이고, 선후 조건문, 의사결정표 등이 사용
Chapter 07. 소단위 명세서
소단위 명세서의 특성 소단위 명세서의 목적과 작성도구 1. 소단위 명세서의 목적 입력 자료 흐름을 출력 자료 흐름으로 변환하기 위해 어떤 일이 수행되는지를 정의하기 위해 각 처리기들이 수
hyun-am-coding.tistory.com
(4) 개체 관계도(ERD, Entity Relationship Diagram)
- 시스템에서 처리되는 개체(자료)와 개체의 구성과 속성, 개체 간의 관계를 표현하여 자료를 모델화하는 데 사용
- 개체 관계도 구성
개체(Entity) : 업무의 중심이 되는 실체
속성(Attribute) : 업무에 속하는 구체적인 항목
관계(Relationship) : 업무와 업무의 연관관계

https://www.edrawsoft.com/kr/article/how-to-create-erd-diagram.html
Introducing EdrawMax 10
Plan, brainstorm or design anything, faster
www.edrawsoft.com
(5) 상태 전이도(STD, State Transition Diagram)
- 시스템에 어떤 일이 발생할 경우 시스템의 상태와 상태 간의 전이를 모델화
- 상태 전이도를 통해 개발자는 시스템의 행위를 정의
2. 객체 지향 분석 방법론(상향식)
사용자의 요구사항을 분석하여 구조(클래스), 연산(행위), 속성, 그들간의 관계 등을 정의하여 모델링하는 작업
종류
1. Rumbaugh(럼바우) 방법
- 객체 모델
- 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정해 객체 다이어그램으로 표현
- 세 가지 모델 중 가장 선행되어야 함.
- 동적 모델
- 상태 다이어그램을 이용하여 시간의 흐름에
- 기능 모델
- 자료 흐름도(DFD)를 이용해 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정 표현
- 어떤 데이터를 입력하여 어떤 결과를 구할 것인지를 표현
2. Booch(부치) 방법
미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 분석 방법
3 Jacobson(제이콥슨) 방법
- Use case를 사용하는 분석 방법
4. Coad(코드)와 Yourdon(요돈) 방법
- E-R 다이어그램을 사용하여 객체의 행위를 모델링
5. Wirfs-Brock(워프-브록)방법
- 분석과 설계 간의 구분 없음
- 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행
2. 분석자동화 도구
(1) CASE(Computer Aided Software Engineering)
CASE 도구의 개념
- 소프트웨어 개발과정 일부 또는 전체를 자동화하기 위한 도구
- 소프트웨어 개발과정을 컴퓨터와 전용
- 소프트웨어가 도움을 주는 것
CASE 도구의 주요 기능
- S/W 라이프사이클 전 단계의 연결
- 모델들 사이의 모순 검사
- 모델의 오류 검증
- 자료 흐름도 등 다이어그램 작성
- 다양한 소프트웨어 개발 모형 지원
- 시스템 문서화 및 명세화를 위한 그래픽 지원
CASE 원천기술(가능 기술)
- 구조적 기법
- 프로토타이핑 기술
- 자동 프로그래밍 기술
- 정보 저장소 기술
- 분산 처리 기술
CASE 도구의 분류
계획 분석 설계 / 구현 test...
(상위 CASE) / (하위 CASE)
상위 CASE
- 생명주기 전반부에 사용되며, 스프트웨어의 계획과 요구분석, 설계 단계를 지원한다.
- 모순검사, 오류검사, 자료흐름도 작성 등의 기능을 수행한다.
하위 CASE (주로 개발자)
생명 주기 후반부에 사용되며, 코드의 작성과 테스트, 문서화 하는 과정을 지원한다.
구문 편집기, 코드 생성기 등의 기능을 수행한다.
통합 CASE
- 소프트웨어 생명주기에 포함도는 전체 과정을 지원한다.
CASE의 종류
- 비용 측정 도구 - SLIM(Putnam 모형의 근거)
- 요구 분석용 도구 - PSL/PSA<SREM, SYSREM
- 설계 도구 - DARTS, StateMATE, SSD, STP, ARTFIX
- 통합 도구- TAGS, PROMOD
(2) HIPO(Hierarchical input Process Output)
1. HIPO의 개념
- 하향식 소프트웨어 개발을 위한 문서화 도구
- 시스템의 기능을 여러 개의 고유 모듈들로 분할하여 이들 간의 계층구조를 표현한 도표
2. HIPO의 기능
- 분석 및 설계 도구로 사용된다.
- 하향식 개발에 적합하다
- 체계적인 문서관리에 효율적이다.
- 기능과 자료의 의존관계를 명시할 수 있다.
3. HIPO Chart종류
- 가시적 도표
- 시스템의 전체 기능과 흐름을 보여주는 Tree(계층) 구조
- 가시적 도표에는 입력, 처리, 출력 없음

- 총체적 도표
- 프로그램을 구성하는 기능을 기술한 것
- 입력, 처리, 출력에 대한 전반적인 정보 제공

- 세부적 도표
- 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표
- 총체적 도표와 같은 모양이지만 내용만 좀 더 복잡하게 들어간 형태

https://raisonde.tistory.com/entry/HIPO-ModelHIPO-Chart-%EB%98%90%EB%8A%94-HIPO-Diagram
HIPO Model(HIPO Chart 또는 HIPO Diagram)
HIPO는 Hierarchical Input Process Output의 약자로, Input-Process-Output으로 이루어진 모듈을 계층적으로 나타낸 도표이다.시스템의 분석 및 설계나 문서화에 사용 되는 기법으로 계층을 구성하는 각 모듈별
raisonde.tistory.com
03. 요구사항 관리 도구
출처:
[정보처리기사] 데이터 흐름도 - DFD(Data Flow Diagram)의 개념, 구성요소
1. 데이터 흐름도 - DFD(Data Flow Diagram)의 개념 데이터 흐름도(DFD)는 시스템 구성요소인 프로세스와 프로세스 간 데이터 흐름을 표현하는 주요 도구 자료 흐름 그래프 또는 버블(bubble) 차트라고 부
devinus.tistory.com
https://devinus.tistory.com/12
[정보처리기사] 자료 사전 기호
1. 자료 사전(DD, Data Dictionary) - 자료사전은 자료, 자료들의 집합, 자료의 흐름, 자료 저장소와 그것들의 관계-범위-단위를 구체적으로 명시하는 것을 말한다. - 정보처리기사에서 자료사전자료 사
devinus.tistory.com
https://devinus.tistory.com/24
[정보처리기사] ERD 표기법, 관계형 데이터베이스 릴레이션 구조
1. 개체 관계 다이어그램(ERD; Entity-Relationship Diagram) - E-R 다이어그램은 E-R 모델을 표현하기 위한 것인데 E-R 모델은 개체 타입(Entitiy Type)과 각 타입 간의 관계 타입(Relationship Type)을 이용해 현실 세
devinus.tistory.com