[CISA 이론 정리 - 3장] 05 구조적 방법론
- CISA/3. IS 획득, 개발 및 관리
- 2017. 9. 5. 11:31
1. 등장 배경
① 쇼프트웨어 개발이 증가하면서 이른바 소프트웨어 위기가 발생하였다.
② 소프트웨어 위기(Software Crisis)란 기존 소프트웨어의 기능을 변경하거나 하나의 소프트웨어를 다른 소프트웨어의 기능과 연계하는 비용이 급증하는 현상이다.
③ 이러한 문제를 해결하기 위해 소프트웨어를 체계적이고 정량적인 접근법으로 개발하고 유지 보수하는 소프트웨어 공학(software engineering)이 등장하였다.
④ 소프트웨어 공학 분야가 개척되면서 초기에 등장한 개념이 바로 구조적 방법론이다.
⑤ 개념이 제시된 순서는 구조적 프로그래밍, 구조적 설계, 구조적 분석이다.
2. 구조적 프로그래밍(Structured programming)
① 구조적 프로그래밍의 핵심은 프로그램의 구획화(compartmentalization)이다.
② 즉 프로그램을 서브프로그램들로 구획하여 전체 구조를 수월하게 파악할 수 있게 한다.
③ 또한, 프로그램 품질과 소스 코드 가독성(readability)을 향상하여 생산성을 향상한다.
④ 이를 위해 프로그램을 ‘begin’으로 시작하여 ‘end’로 끝나는 블록(block) 구조, 즉 모듈 (module) 단위로 개발한다.
⑤ ‘goto’문을 사용하지 않고 반복(iteration)이 필요한 연산은 루프(loop) 안에 포함시킨다.
3. 구조적 설계(Structured design)
① 구조적 설계의 핵심은 프로그램을 계층 구조로 분할된 모듈들의 합으로 설계하는 것이다.
② 이렇게 하면 개발과 유지 보수 작업의 생산성이 향상될 뿐만 아니라 다른 모듈에 대한 프로그래머들의 지식이 제한되기 때문에 보안이 향상된다.
③ 잘 설계된 모듈은 모듈의 응집성은 높고 모듈간 결합성은 낮아야 한다.
응집성(Cohesiveness)
• 모듈을 구성하는 기능들이 논리적으로 상호 연관되어 있는 특성
• 서로 관련성이 없는 처리 기능들이 모듈에 포함되지 않아야 한다.
결합성(Coupling)
• 모듈과 모듈이 물리적 또는 논리적으로 상호 연관되어 있는 특성
• 모듈들은 상호 독립적으로 기능하며 상호 연동할 필요가 적다.
④ 구조적 설계에서는 다음과 같은 대표적인 기법이 사용된다.
구조도(Structure Chart)
• 시스템을 구성하는 모듈들을 계층 구조로 묘사한 그림
• 전체 시스템의 구성을 직관적으로 파악할 수 있게 도와 준다.
모듈 명세서(Module Specification)
• 유사 코드(Psudo-code)로 간략하게 작성한 소형 명세서
(유사 코드 사례)
if b = 0 then, print “B cannot be 0.”;
else c = a ÷ b and print c.
• 프로그래머들은 모듈 명세서를 근거로 할당된 모듈을 개발한다.
4. 구조적 분석(Structured analysis)
(1) 의의
① 구조적 분석은 시스템이 지원할 비즈니스 프로세스를 하향식(top down)으로 분할하고 시각적으로 표현한다.
② 대표적 기법에는 ERD(Entity Relation Diagram)와 DFD(Data Flow Diagram)가 있다.
(2) 배경도(Context diagram)
① 시스템을 최상위 수준에서 조망하는 다이어그램이다.
② 시스템 내부의 기본 구성 요소들과 시스템 외부의 요소들이 어떻게 상호 작용하는지 표현한다.
③ 배경도는 개발 대상 시스템의 경계선과 시스템 외부 요소들을 파악할 수 있게 도와준다.
(3) 개체 관계도(ERD: Entity Relationship Diagram)
① ERD는 데이터 객체 간 상호 관계를 표현하는 시각적 기법이다.
② 구조적 설계와 분석을 위한 도구와 기법은 굳이 구분하지 않는 경우가 많다.
③ 대신에 SADT(Structured Analysis and Design Techniques)로 통칭하기도 한다.
④ 예를 들어 ERD는 분석적 분석 및 설계 모두를 지원하는 기법이다.
(4) 데이터 흐름도(DFD: Data Flow Diagram)
① 특정 프로세스를 구성하는 하위 프로세스들 사이의 데이터 이동을 보여 주는 시각적 기법이다.
② DFD가 프로세스 간 관계를 보여 준다면, ERD는 데이터 객체들 간의 관계를 보여 준다.
③ 배경로부터 시작하여 시스템을 프로세스 단위로 하향 분할하면서 작성한다.
④ 최하위 프로세스 수준에서 작성된 DFD는 각 프로그래머가 개발할 모듈에 대응된다.
⑤ 따라서 프로그래머들은 모듈별 DFD와 모듈 명세서를 사용하여 프로그래밍하게 된다.
(5) 데이터 사전(Data Dictionary)
① 프로그램에서 사용되는 모든 데이터 항목의 표준 명칭, 의미, 형식, 길이, 용도, 원천 등을 정의한다.
② 이를 통해 서로 다른 모듈에서도 데이터 항목을 일관성 있게 표현하고 식별할 수 있다.
③ ERD, DFD, 미니 명세서 등을 작성하고 프로그램을 개발할 때 참조한다.
'CISA > 3. IS 획득, 개발 및 관리' 카테고리의 다른 글
[CISA 이론 정리 - 3장] 06 대안적 개발 방법론 (2/2) (0) | 2017.09.05 |
---|---|
[CISA 이론 정리 - 3장] 06 대안적 개발 방법론 (1/2) (0) | 2017.09.05 |
[CISA 이론 정리 - 3장] 04 SDLC 모델 및 시스템 유지 보수 (0) | 2017.09.04 |
[CISA 이론 정리 - 3장] 03 전통적 시스템 개발 방법론의 단계 구성 (2/2) (0) | 2017.09.04 |
[CISA 이론 정리 - 3장] 03 전통적 시스템 개발 방법론의 단계 구성 (1/2) (0) | 2017.09.04 |