본문 바로가기
소프트웨어공학

[S/W] Structured Program의 성격

by IT 정복가 2022. 10. 26.
728x90

Structured Program의 성격

1. 목적

Low Cost, Good Quality S/W 개발

특징
1) Program은 Module의 집합체로서, Module들 간의 논리적 관계, 수행 시간 간의 관계에 의해 정의됨
2) 각 Module은 독립적인 논리구조를 가지며, 호출된 Module의 시작과 끝 사이에서 수행이 이루어지고, 종료 시 호출한 Module로 Return 됨
3) 제어구조는 순차(연속), 선택, 반복 그리고 에러시 출구인 Escape로 구성됨
4) 내부 문서화는 Program 전체와 각 Module의 기능 등을 Source Codes 내에서 설명함

Programming 언어의 효율성과 개발 생산성

- Assembly 언어와 같은 Low-level 언어가 최소 자원 사용수행 속도에 있어서 효율성이 큼

- 프로그래머가 사용하기 편한 일반적인 High-level 언어가 개발Maintenance도 용이하고, 따라서 개발 생산성이 큼


2. 제한된 제어 구조

Bohm, Jacopini가 제안함

 

순차/연속 구조(Sequence)

- Program의 Source Code 순서대로 차례로 수행함

 

선택 구조(Selection)

- 조건 Test 후, True나 False에 따라 다음 수행 명령어를 선택함

 

반복 구조(Heration)

- 명령어의 한 집합을 조건에 따라 일정 횟수만큼 되풀이 해서 수행함

 

Do-Until Condition Statement 구조

(Do-Until 문은 최소한 한 번은 명령어 Statement를 수행함)

 

Do-While Condition Statement 구조


3. Nested(중첩된) IF문

여기서 Statement-1에 다시 선택 구조가 포함되면 이를 Nested IF문이라 한다.

(Structured Program에서는 판독성 문제따문에 일반적으로최대 3단계까지 중첩 허용)


4. CASE문

- 확장된 선택 구조로 조건 Test 결과에 따라 실행문을 선택함


5. ESCAPE문 

- 대부분의 경우, Go To 문으로 구현됨

1) 에러나 Interrupt 발생 시의 탈출구임

2) Do 문장으로 대치 가능함


6. 고급 제어 구조

- Structured Programming 기법: 표준화된 제어 구조의 사용

- Loop에서 Go To문 대신 Do-While/Until문 사용

- 따라서, Program 복잡도를 감소시키고, 판독성을 향상 시킴


7. 표준화된 Module 형식

Structured Program은 Modular Program이 근간을 이루며, Structured Module을 사용한다.

- 각 Module은 독립적 수행과 Test가 가능한 하나의 논리적 구조를 가짐

- 각 Module은 하나의 Entry(입구)하나의 Exit(출구)를 가짐

- 각 Module의 제어구조는 연속(순차), 반복, 선택 그리고 Error 시 Module 출구로의 ESCAPE으로 구성


8. 계층 구조

1) 최상위엔 Root Module 한 개만 존재

2) 하위 Module들은 바로 위의 상위 Module들을 상세히 정의함

3) Program의 복잡성을 배제함

(순차적 구조는 비계층적 구조로서 Structured Programming 기법에는 부적절하고, 대형 Program의 복잡도 제어에 비효율적임)


9. Program 제어

1) Module 간 호출 시 필요함

2) Main Module(Father/Parent)Sub Module(Son/Child)간에 Call과 Return 관계 성립

3) 복수개의 Father Module들을 갖는 ModuleCommon Module이라 함

4) Son Module을 갖지않는 Module Leaf Module이라 함

5) Call-Return 관계의 법칙

6) Call-Return 수행은 Stack을 이용한 Context Switch 작업을 필요로 함

7) 메모리 Stack은 처리속도가 느리나, Register Stack은 고가인 반면 처리 속도가 빠름


10. Program 내부 문서화

Program의 이해와 유지/보수를 위해 필요

OverView Documentation
1) 가장 필수적이고 간결함
2) 전체적인 기능과 개요 등 변하지 않는 사항을 설명
3) 사용되는 File들, Program Style, 연락처 등을 설명함
4) Program의 서두에 위치

Program Organization Documentation
1) 각 Module의 앞 부분에 위치
2) 각 Module의 기능, I/O, 한계 등을 설명함

Program Instruction Comment
1) 특이한 알고리즘 등을 설명
2) 거의 사용하지 않음

11) Indentation(들여쓰기)

Program의 판독성 향상을 위해 필요함

- Nested IF문 사용 시 필요함

- 한 명령어 문장이 복수개 Lines일 경우 필요함

728x90