전공과목 정리/소프트웨어분석및설계

[소프트웨어분석및설계🛠️] 4장 구조적 방법론

최연재 2024. 8. 29. 00:22

출처 : 강의 교안, 시스템분석설계 with 애자일 (생능출판사, 최은만)

 

1. SW 개발 방법론

1.1 SW 개발 방법론

1) SW 개발 방법론
- 소프트웨어 개발 프로세스의 각 작업 단계의 수행 방법을 정의
- 각 단계에서 요구하는 입력 자료를 가지고 어떻게 작업하여 그 결과를 표현하는지 알려준다.
- 방법론에서 제공하는 산출물의 표현 방법은 패러다임이나  SW를 보는 관점에 따라 다르다.
 
2) 주요 방법론
- 구조적(Structured) 방법론

  • 프로세스 중심 (process-oriented)
  • 논리적 모델과 물리적 모델에서 분할하여 기능적 분해를 먼저 한 후 모듈로 구조화하는 방법
  • 자료보다는 함수에 중점적
  • 프로세스를 먼저 정하고, 프로세스에 대한 입출력을 나중에 정한다.

- 정보공학 방법론

  • 데이터 중심(Data-oriented) 개발
  • ER 모델링 (Entity-Relationship Modeling) 
  • 자료와 자료들 간의 관계를 먼저 파악한다.
  • 자료에 대한 연산 패턴으로 프로세스를 그룹화한다.

- 객체지향(Object-oriented) 방법

  • SW를 데이터와 로직이 통합된 객체로 보고, 객체들의 정적 관계와 동적인 상호 작용을 모델링하는 방법
  • 객체와 객체 간의 관계 파악이 중요하다.
  • 객체가 가지는 자료와 연산에 집중한다.

⭐ 모델

  • 현실의 대상을 추상화, 단순화, 가시화하는 것
  • 모델링의 추상화, 단순화, 가시화 수준이나 방식은 관점(view)에 따라 달라진다.

 

2.  구조적 방법론

2.1 구조적 방법론

1) 구조적 방법론
- 프로세스 중심 모델링

  • 전통적인 데이터 처리 시스템 개발에 적절한 기법
  • 사용자의 요구분석 사항을 파악하기 위해 자료의 흐름과 가공절차(프로세스)를 표현

- 모델링되는 프로세스는 조직에서 매일 수행되므로 기능을 수행하기 위해 조직이 수행해야 하는 작업을 이해하는 것이 매우 중요하다.
- 데이터의 처리에 주목하여 계층적으로 상세화
- 모든 비즈니스 프로세스는 여러 하위 프로세스로 분해

  • 하위 프로세스들은 보다 세부적인 수준으로 세분화
  • 기업은 핵심 프로세스를 다양한 방식으로 최적화하기 위해 노력 ➡️ 정보 시스템을 이용해 비즈니스 프로세스를 지원하고자 함.

- 기능을 명확히 하고 구조와 처리를 결정
- 자료 흐름도 (Data Flow Diagram) : 그림을 이용하여 SW에 존재하는 기능들 사이에서 주고받는 데이터와 그 흐름을 정의
- 구조도 (Structure Chart) :  모듈 구조와 모듈 사이의 호출 관계를 정의
- 소단위 명세서 : 모듈 안의 사양을 의사코드로 기술
 

3. DFD (Data Flow Diagram)

3.1 DFD

1) DFD
- 구조적 분석

  • 시스템 : 자료가 변환해 나가는 과정으로 봄
  • 자료의 변환에 초점을 둠

- 자료흐름도 (Data Flow Diagram, DFD)

  • 구현 방법에 관계없는 자료의 처리 흐름만을 나타내는 논리적인 다이어그램
  • 외부 개체들과 시스템 내부의 프로세스 간의 데이터 이동과 데이터 저장소를 그림으로 묘사
  • 정보시스템에서 데이터의 흐름을 보여주는 그래프로 나타낸 분석도구

- 정보시스템은 비즈니스 프로세스를 기반으로 함
- DFD는 비즈니스 프로세스를 하위 프로세스로 쉽게 분해할 수 있어 매우 유용하다 : 하향식 분할
- 작성 산출물

  • 배경도 (context diagram)
  • 여러 단계의 분할된 DFD
  • 데이터 사전 (Data Dictionary)
    • DFD에 기술된 모든 자료들에 대해 자료항목, 자료에 대한 의미, 자료와 단위의 값에 대한 사항 등을 정의

- DFD 구성요소

  • 프로세스 (Process)
    • 입력된 자료를 출력으로 변환하는 처리 또는 기능
    • 원 안에 처리 명칭을 기술
  • 자료흐름 (Data flow)
    • 발생지, 종착지, 처리 및 저장소 사이의 자료의 흐름을 표현
    • 화살표 위에 자료의 명칭을 기술
  • 자료저장소 (Data store)
    • 시스템 상의 자료 저장소를 표현
    • 평행선 안에 자료저장소 명칭을 기술
  • 단말 (Terminal)
    • 시스템에 필요한 자료가 입력되는 발생지(source)와 시스템에서 처리된 자료가 출력되는 목적지(sink)를 표현


2) 자료흐름
- 자료흐름은 변형되어 이동 중인 자료군을 표현

  • 시스템 내에서 한곳에서 다른 곳으로 이동하고 움직이는 데이터를 기술
  • 이동 방향을 화살표로 나타내고 그 위에 이름을 붙임
  • 자료의 내용과 형식 등은 자료사전에 명시

 
3) 자료 저장소
- 머물고 있는 데이터를 표현

  • 파일 폴더, 컴퓨터 기반 파일, 노트북과 같은 상이한 물리적 장소
  • 데이터의 조작을 위한 물리적 구성은 중요하지 않음.

 
4) 프로세스
- 데이터가 변형/저장/분배되기 위해 데이터에 수행되는 작업 또는 행위

  • 수행되는 방식은 상관없음
  • 프로세스의 이름과 함께 고유번호를 표현

 
5) 단말
- 시스템 밖에서 의사 전달하는 사람, 부서 또는 다른 시스템

  • 데이터의 기원과 목적지를 기술하므로, 소스/싱크(source/sink)라고도 함.
  • 단말들 사이에 자료흐름이 나타나면 안됨.

 

3.2 DFD 작성절차

1) DFD 작성 절차
- 배경도(Context Diagram) 작성

  • 개발하려는 시스템과 외부세계와의 인터페이스를 식별
  • 시스템 분석의 범위를 설정

- 단계적 분할

  • 중간 단계의 DFD : DFD 내의 하나 이상의 프로세스가 하위 DFD로 분할
  • 최하위 단계의 DFD : DFD 내의 모든 프로세스가 더 이상 분할되지 않음

2) 배경도
- 배경도(최상위 DFD) 작성

  • 시스템 경계의 입출력 식별
  • 시스템 분석의 범위를 결정
  • 시스템 전체를 나타내는 하나의 프로세스와 관련된 단말들 표시

 
3) DFD 분해
- 배경도와 프로세스를 여러 하위 프로세스들로 구체화
- 자료원과 도착지를 나타낼 필요 없음
- 최하위 DFD : 상위 레벨 DFD의 프로세스 구체화
 

3.3 DFD 작성 규칙

1) DFD 작성 규칙
- 모든 DFD에 적용되는 기본 규칙

  • 프로세스로 들어가는 입력은 그 프로세스로부터 나오는 출력과는 다르다.
  • 자료흐름은 프로세스를 거쳐 변환될 때마다 새로운 이름을 부여한다.
  • DFD 상의 객체는 유일한 명칭을 가진다.

2) 프로세스 
- 출력만 있거나, 입력만 있는 프로세스는 불가
- 프로세스는 동사구를 사용해서 명명
- 하나의 동사로 표현
- 어떤 경우에도 적용되는 포괄적인 명칭을 피해야 한다.
 
3) 자료저장소
- 데이터는 한 자료저장소에서 다른 자료저장소로 직접 이동할 수는 없다.
- 데이터는 외부 소스에서 자료저장소로 또는 자료저장소에서 외부 싱크로 직접 이동할 수 없다.
- 입력만 되는 자료저장소(black hole)와 출력만 되는 자료저장소(white hole)는 없어야 한다.
 
4) 자료흐름
- 기호 사이에 오직 한 방향의 흐름을 가진다
- 데이터 흐름은 한 번 지나간 동일한 프로세스로 직접적인 역행이 불가능
- 자료저장소로 향하는 자료흐름은 쓰기를 의미하고, 자료저장소에서 나오는 자료흐름은 읽기를 의미
- 데이터 흐름의 분기와 결합

  • 동일한 위치에서 정확히 같은 데이터가 둘 이상의 다른 프로세스, 데이터저장소, 또는 소스/싱크 이동으로 분기

 

3.4 DFD 분할 규칙

1) 기능적 분해 (functional decomposition)
- 하나의 시스템으로부터 많은 구성 프로세스들로 분리하는 행동
- 반복적인 절차
 
2)  레벨-n 다이어그램 (level-n diagram)
- 배경도에서 n번의 연속된 하부 프로세스 분할 결과로 생성된 DFD
 
3) 자료흐름의 균형
- DFD를 분해할 때 하위 레벨에서 프로세스로의 입력과 출력은 보존되어야 한다는 법칙
 
4) DFD 균형 잡기
- 하나의 데이터 흐름을 더 낮은 레벨의 다이어그램 상에 분리된 데이터 흐름으로 분리할 수 있다.
 

3.5 DFD 작성 지침

1) 완전성 (Completeness)
- DFD는 모델링하고자 하는 시스템에 필요한 모든 구성요소를 포함하여야 한다.
- 각 구성요소는 자료사전에 완전히 기술되어야 한다.
 
2) 일관성 (Consistency)
- 어떤 수준의 DFD에 포함된 정보가 다른 수준의 DFD에도 포함되어 있는 정도
 
3) 타이밍 (Timing)
- DFD는 시간을 잘 표현하지 못한다.
- 모델링하고 있는 시스템이 가동되지도 않고, 멈추지도 않는 것처럼 작성하는 것이 DFD 작성의 최선
 
4) 반복적인 개발 (Interative Development)
- 모델링되고 있는 시스템에 가장 근접하게 하기 위해서는 다이어그램을 여러 번 반복해서 그려야 한다.
 
5) 최하위 단계를 결졍하는 데 도움이 되는 지침
- 프로세스의 처리 과정이 한 페이지 이내로 기술될 수 있을 때까지 분할
- 처리에 대한 입력 자료 흐름과 출력 자료 흐름이 오직 하나씩 남을 때까지 분할
- 입력과 출력 사이에 일대일 또는 다대일의 관계를 갖는다면 분할이 충분히 이루어진 것이다.
 

4. 논리모델링 - 의사결정테이블 (decision table)

4.1 논리 모델링

1) 논리 모델링
- DFD는 프로세스 내부의 논리를 보여주지 않는다.
- 논리 모델링은 내부 구조 표현과 DFD에 표현된 프로세스의 기능을 포함
- 의사결정 테이블(Decision Tables) 을 사용해서 표현 가능하다.

  • 의사결정 논리를 행렬로 표현
  • 가능한 조건들과 결과적인 행위들을 규정
  • 복잡한 의사결정 논리에 적합

- 3 부분으로 구성

  • 조건부 (condition stubs) : 의사결정에 유의한 조건들을 나열
  • 행동부 (action stubs) : 주어진 조건들의 집합에 대한 결과적인 행동
  • 규칙 (rules) : 주어진 조건들의 집합에 대해 어떠한 행동들이 수반되어야 하는지를 규정

- 의사결정 테이블을 구성하는 표준 절차

  • 각각의 조건이 가정할 수 있는 조건과 값의 이름 붙이기
  • 발생 가능한 모든 행동에 이름 붙이기
  • 모든 가능한 규칙을 나열
  • 각각의 규칙을 위한 행동을 정의
  • 의사결정 테이블을 간단하게 하기

 

5. 데이터 사전 (data dictionary)

5.1 자료 사전 (Data Dictionary, DD)

1) 자료 사전
- 시스템 분석의 중요한 요소
- DFD에 기술된 모든 자료에 대해 다음 사항들을 정의한다.

  • 자료흐름을 구성하는 자료항목 정의
  • 자료에 대한 의미 정의
  • 자료저장소를 구성하는 자료항목 정의
  • 자료원소의 단위 및 값 정의

- 자료의 하향식 분할

  • 어떤 항목에 대한 정의는 구성요소들의 결합으로 표시
  • 구성요소가 더 이상 세분화되지 않을 때까지 하향식 분할

 
2) 자료사전 표기법

기호 (Symbol) 의미 (Meaning)
= 정의 (is composed of)
+ 구성 (and, along with)
{ } 반복 (iteration of)
[ ] 택일 (choose only one of)
( ) 생략 가능 (optioanl)
* * 주석 (comment)

 
- 정의

  • 주석을 사용하여 의미를 기술
  • 자료흐름과 자료저장소에 대한 구성내역을 설명
  • 자료원소에 대하여 값이나 단위를 나타냄

- 반복

  • 여러 번 반복되는 자료항목은 { }  안에 기술
  • { } 의 좌측에는 최소 반복 횟수를 기록하고, 우측에는 최대 반복 횟수를 기록
  • 반복횟수를 기록하지 않을 때는 최소는 0, 최대는 무한대를 의미

- 선택 [ | ]

  • | 로 분리된 항목들 중 하나가 선택되었다는 것을 표시

- 생략 가능 ()

  • 괄호 안의 자료항목이 기술될 수도, 생략될 수도 있음을 표시

- 자료원소

  • 더 이상 분할되지 않은 자료 항목으로, 특정한 값이나 값의 범위를 취함.

 

5.2 자료사전 작성 원칙

1) 자료의 의미 기술
- 자료의 의미는 주석을 통해 기술
- 중복이 없어야 간결하고, 이해하기 쉬운 자료사전
- 중복 기술 회피 방법

  • 자료의 구성 내역을 설명하지 말아야 하며, 구성항목의 의미나 자료의 이름을 반복 설명하지 않는다.

2) 자료 구성항목의 기술
- 구성항목을 그룹으로 묶음
- 각 그룹에 대해 의미 있는 이름을 부여
- 이름이 붙여진 각 그룹을 다시 정의
 
3) 동의어 (Alias)
- 자료사전에 이미 정의된 자료항목에 대한 또 다른 이름
- 동의어가 많아지면 자료의 명칭에 혼동이 생길 우려가 있음.