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들을 갖는 Module을 Common 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일 경우 필요함
'소프트웨어공학' 카테고리의 다른 글
[S/W] Programming 개발 방법론 & Diagrams (0) | 2022.11.18 |
---|---|
[S/W] Modular Programming과 복잡도 제어(Complexity Control) (1) | 2022.11.16 |
[S/W] Structured Programming(구조화 프로그래밍) & H/W의 발달 (0) | 2022.10.19 |
[S/W] S/W Cost Estimation(S/W 비용 추정) (0) | 2022.10.12 |
[S/W] S/W의 생명 주기(Life-Cycle) (1) | 2022.10.05 |