본문 바로가기
CS/소프트웨어 공학 에센셜

기능 모델링

by k-mozzi 2021. 6. 2.
반응형
Preface
시작은 미비하지만 끝은 창대하리라

 

소프트웨어 공학을 공부하다 보면, 소프트웨어 개발 과정이 생각보다 매우 체계적으로 정립되어 있다는 것을 느낄 수 있다. 각 단계의 상세한 설계부터 시작하여 그로부터 파생되는 세부적인 사항까지, 현재 나의 지식 수준으로 생각해 볼 만한 단계는 전부 기술되어 있다.

 

그러나 실무 현장에 있는 친구의 말을 들어보면, 언제나 예상치 못한 상황이 발생할 수 있으므로, 학문적 지식과 더불어 창의적 아이디어를 통한 문제 해결 능력을 겸비하는 것이 필요하다고 한다.

 

비록 지금은 기초 공사를 진행중인 단계이지만, 하루 빨리 개발자로서 실무 현장에 뛰어들어 친구의 말을 100% 이해할 수 있는 날이 오길...


- 기능(프로세스) : 입력물을 받아 결과물을 내는 활동

 

- 구조적 분석 기법 : 시스템을 기능 관점에서 바라보고 시스템에서 요구되는 정보의 흐름 및 정보의 변환을 나타내는 기능 모델


1. 구조적 분석 기법 개요

 

- 흐름

① 구조적 프로그래밍 : 시스템이 수행하는 기능을 모듈화시켜 분할 

② 구조적 설계 기법

③ 구조적 분석 기법

 

- 구조적 분석 기법 특징

① 자료 흐름도(DFD : Data Flow Diagram) 사용

② 하향식(top-down) 방법 사용

③ 기능 관점을 나타내고 동적·정보 관점은 나타내지 않음

 

- 시스템은 하나의 큰 프로세스로 이해된다.

 

- 자료 흐름의 상세화 : 시스템의 반복적 분할

 

- 레벨화(계층화) : 큰 시스템을 분할하여 계층적 배열을 통해 서로의 종속 관계를 표시하는 것


2. 자료 흐름도

 

- 소프트웨어 시스템 : 정보를 받아들여 가공 처리하는 변환기(transformer)

 

- 자료 흐름도 : 정보가 입력되어 적용되는 변화 및 출력 결과를 그림으로 묘사하는 도식적 기법

→ 원시 프로세스를 찾아내고, 서로 어떻게 연결되어 있는지 규명

 

[자료 흐름도 기호]

 

- 자료 흐름도 특징

① 데이터 및 정보의 흐름에 초점

→ 처리 순서와 제어는 명확하게 표시 불가

② '배경도'로 시작하여 '원시 프로세스'까지 분할

③ 상위프로세스 + 중간 프로세스 + 원시 프로세스(functional primitive)

 

[자료 흐름도 예시]

 

- 원시 프로세스의 상세 설명은 미니(프로세스) 명세서(mini-spcification)에 기록한다.

 

- 미니 명세서의 번호는 해당 프로세스 번호와 일치한다.

 

- 자료 흐름도의 균형 : 부모 자료 흐름도의 정보 입출력은 자녀 자료 흐름도 입출력과 같아야 한다는 제약 조건

 

- 자료 사전 : 자료 흐름도에 나타난 메타 데이터(metadata : 데이터에 대한 데이터)를 정의

→ 편의성 제공

 

[자료 사전 기호]

 

- 배경도(context diagram) : 외부와의 정보 흐름을 표시 (최상위의 하나로 된 프로세스 그림)

① 개발해야 할 시스템 영역 기술

② 시스템과 외부 환경과의 경계 결정

③ 외부와의 인터페이스 제시 → 시스템 입출력 데이터 표시

④ 시스템을 블랙박스로 본 것 → 외부 환경과의 인터페이스에 초점

cf. 화이트박스

 

- 각 프로세스와 자료 흐름도는 번호를 가짐

① 배경도는 최상위 프로세스로 0번 (자료 흐름도에도 0으로 표기)

② 프로세스 : 부모 자료 흐름도 번호 + '.' + 고유 번호

③ 프로세스 레벨 : 프로세스 번호의 '.' 개수 + 1

 

- 유스케이스를 통한 분석 : 시스템을 사용자의 관점에서 바라봄

 

 

 

 

 

참고 문헌 : 윤청, 소프트웨어 공학 에센셜(생능출판), 2019, p.166~181.

728x90
반응형

'CS > 소프트웨어 공학 에센셜' 카테고리의 다른 글

정보 모델링  (0) 2021.06.05
동적 모델링  (0) 2021.06.03
요구사항 분석과 모델링  (0) 2021.05.31
프로젝트 계획  (0) 2021.05.30
프로젝트 관리  (0) 2021.05.28

댓글