3장 구조적 분석(SSA) 방법론
학습 목표 구조적 시스템 분석 방법론의 일반적 원리 이해 구조적 방법론에서 사용하는 모형화 도구의 특성 이해 구조적 방법론에서 사용하는 모형화 도구인 DFD, DD, Mini-Spec이란? 구조적 방법론에 의한 시스템 분석의 4단계 절차
구조적 분석의 원리 (1) 구조적 분석 방법론이란? ■ 구조적 분석 방법론은 소프트웨어 개발방법론 중의 하나의 기법이다. ■ 소프트웨어의 개발 방법론(Software Development Methodology)이란 - 기술적 방법(Method), 도구(Tool), 절차(Procedure)의 세 가지 요소들과 이들을 통합하는 단계(Step)에 대한 포괄적 개념 ■ 구조적 분석 방법론은 시스템 분석단계의 문제점을 해결하고 사용자와 의사소통을 원활하게 할 수 있도록 도형화된 도구를 이용해 정형화된 분석절차에 따라 사용자 요구사항을 파악하고 문서화하는 기법. ■ 구조적 분석 방법론은 Yourdon(요던) 등에 의해 개발되어 보급된 이후 널리 사용되고 있는 방법론 ■ 구조적 방법론에서 사용하는 도구로는 자료 흐름도(DFD), 자료 사전(DD), 소단위 명세서(Mini-Spec) 등이 대표적이며 하향식 기능 분해(functional decomposition)기법 등을 사용하는 특성을 갖고 있음
구조적 분석의 원리 (2) 구조적 분석의 기본원리 ■ 구조적 분석의 기본 원리는 추상화 원칙, 정형화 원칙, 분할 정복의 개념, 계층적 구조 개념이 있음 1) 추상화 원칙 ■ 특정 대상에 대한 실체로부터 분리된 개념이나 관점. ■ 특정 대상을 어떻게(How)가 아닌 무엇(What)으로 표현하는 간소한 방법. ■ 실체를 둘러싸고 있는 사소한 것에 의한 제약을 받지 않고 문제의 해결을 고려할 수 있게 해 줌. 2) 정형화 원칙 ■ 소프트웨어 프로젝트의 제어와 산출물의 품질관리를 위한 기초가 됨 ■ 대상을 수학적 알고리즘과 같이 연구할 수 있도록 해 준다. 즉, 형식이 생각과 명령을 자동화 시킬 수 있는 근거를 제공함.
구조적 분석의 원리 (2) 구조적 분석의 기본원리 ■ 구조적 분석의 기본 원리는 추상화 원칙, 정형화 원칙, 분할 정복의 개념, 계층적 구조 개념이 있음 3) 분할 정복의 개념 ■ 복잡하고 큰 시스템을 좀 더 작고 독립적인 서브 시스템으로 나누고(분할), 작게 분할된 시스템들을 쉽게 해결하는 개념임. ■ 이 개념은 추상화의 원칙과 함께 복잡도를 다루는데 있어서 강력하고도 기본적 도구임 4) 계층적 구조의 개념 ■ 계층적 구조 개념은 모듈들의 상호 연관관계 및 구조에 대한 이해도 향상에 크게 도움이 됨 ■ 많은 부서를 가진 복잡한 시스템에서 일어날 수 있는 의사소통과 제어 문제를 다룰 수 있음
모형화 도구의 특성 02 (1) 왜 모형화 도구를 사용하는가? ⇒ 시스템 분석가가 수행하는 대부분 업무는 사용자 원하는 시스템을 모형화하는 것임. (1) 왜 모형화 도구를 사용하는가? ■ 소프트웨어 개발에 있어서 모형화 도형은 많은 이점을 갖고 있다. 시스템 분석가들이 모형화 도구를 사용하는 목적 다음과 같다. ① 시스템의 중요한 특징들에 중점을 두고 중요하지 않은 특징들은 가볍게 취급함. ② 비용을 줄이고 위험도를 최소화 하면서 사용자 요구사항에 대해 변경과 수정을 용이하게 할 수 있음 ③ 설계자와 프로그래머가 시스템을 설계하고 구현할 수 있도록 시스템 분석가가 사용자의 환경을 정확히 이해하고 문서화하였는지 검증함. ④ 실제의 시스템을 구축하고 설치하는 비용보다 낮은 비용으로 모형을 구축할 수 있음. ⑤ 시스템에 대한 깊은 지식은 없더라도 그것을 이해하고자 하는 사람들이 쉽게 이해 하도록 함 ⑥ 시스템을 모형화하고자 하는 사람의 생각을 정형화하도록 함.
모형화 도구의 특성 02 (2) 모형화 도구의 특성 ■ 모형화 도구의 특성은 도형적, 하향식 분할, 최소 중복, 투명적, 다양성이 있음 1) 도형적 모형 ■ 대부분 시스템 모형은 도형에 의존한다. ■ 잘 작성된 한 장의 도형(그림)은 많은 양의 정보를 간결하게 전달할 수 있음. ex) 약도 2) 하향식 분할 모형 ■ 좋은 모형화 도구가 되기 위한 두 번째 중요한 요소는 시스템 하향식으로 세분화하는 방식으로 묘사할 수 있는 능력을 갖고 있는지 여부이다. ■ 사용자, 시스템 분석가 혹은 프로그래머이든 어느 누구도 전체 시스템을 즉시 이해한다는 것은 불가능 하다. ■ 모형화 도구는 시스템 각각의 구성부분을 독자적으로 표시하고, 시스템 모형의 한 부분에서 다른 부분으로 간단히 연결할 수 있어야 한다.
모형화 도구의 특성 02 (2) 모형화 도구의 특성 3) 최소 중복 모형 ■ 중복된 부분을 모두 바꿔야 한다면 모형을 유지보수 하기가 어려워지게 된다. ■ 따라서 시스템을 모형화 해 나가는 과정에서 중복을 최소화하는 것이 이후의 유지 보수 측면에서 더 좋다고 할 수 있음 ex) 한 장의 도면에 전체 층의 평면도를 작성하게 될 경우 만일 어느 한 층의 용도변경에 따른 도면의 수정이 필요할 경우 해당 층의 도면만 수정하면 되는 것이 아니라 모두 수정해야 하는 일이 발생 함. 3층 2층 [건물 층별 배치도]
모형화 도구의 특성 02 (2) 모형화 도구의 특성 4) 투명적 모형 ■ 좋은 모형의 조건은 이해하기가 쉬워야 하며, 추상화한 모형을 보면서 실 세계를 자연스럽게 인식할 수 있어야 한다. TIP ⊙ 좌뇌 = 순차적인 인지능력을 가지고 있음 ⊙ 우뇌 = 그림과 비동기적으로 동시에 수행되는 일을 처리 함 5) 다양한 모형 ■ 여러 부류의 사용자들을 만족시키기 위해서는 다양한 모형화 도구를 필요로 함. ■ 시스템의 특성에 따라 중요한 부분을 명확히 보이는 데 더 적합한 모형화 도구를 사용할 필요가 있음. ■ 다양한 모형화 도구들 중 사용자, 조직, 시스템의 특성 등에 따라 적합한 도구를 선택해 사용해야 한다. ex) 평면도, 측면도, 단면도 등
모형화 도구 03 (1) 구조적 방법론의 3가지 모형화 도구 ■ 구조적 시스템 분석에서 사용되는 도구로는 자료 흐름도(DFD), 자료사전(DD), 소단위 명세서(Mini-Spec) 세가지가 있음 (1) 구조적 방법론의 3가지 모형화 도구 1) 자료 흐름도 (DFD: Data Flow Diagram) ■ 주어진 시스템의 기능을 자료로 변환하는 처리와 이들 처리를 자료의 흐름으로 연결한 네트워크 형 구조로 모형화 하는 도구. [ 전형적인 자료 흐름도]
모형화 도구 03 2) 자료사전(DD: Data Dictionary) ■ 자료 흐름도에 기술된 모든 자료들에 대해 구성 자료항목, 자료에 대한 의미, 자료의 단위 및 값에 대한 사항을 정의하는 도구 → 예절 Professor/Doctor
모형화 도구 03 3) 소단위명세서(Mini-Spec) ■ 입력 자료를 출력 자료로 변환하기 위해 수행되어야 하는 정책이나 규칙을 구체적으로 기술하는 도구
분석 절차 04 (1) 구조적 분석의 4단계 절차 ■ 구조적 분석은 4단계의 절차로 구성되어 있음 현 물리적 모형화 (Current Physical Model) 현 논리적 모형화 (Current Logical Model) 신 논리적 모형화 (New Logical Model) 신 물리적 모형화 (New Physical Model)
분석 절차 04 1) 현 물리적 모형화(Current Physical Model) ■ 구조적 시스템 분석의 첫 번째 활동으로 분석자와 사용자의 반복적인 면담을 통해 사용자의 업무 수행절차 및 환경을 있는 그대로 모형화하는 단계로 시스템을 파악해 문제점을 인식 하는 것인 중요함. 2) 현 논리적 모형화(Current Logical Model) ■ 현 물리적 모형에 존재하는 구현 의존적인 물리적 특성을 제거해 구현방법에 관계 없이 현 시스템에서 수행하는 논리적 기능 및 유지해야 할 자료를 모형화하는 단계. 3) 신 논리적 모형화(New Logical Model) ■ 현 논리 모형에 새롭게 추가되어야 할 기능이나 변경되어야 할 기능을 반영해 새로운 시스템에서 수행될 모든 기능 및 이에 필요한 자료에 대한 모형을 구축함으로써, 사용자의 요구사항을 논리적으로 표현한 최종 분석 명세서를 완성하는 단계. 4) 신 물리적 모형화(New Physical Model) ■ 신 논리적 모형은 이상적이고 개념적인 모형이라 할 수 있다. 하지만 현실은 그러한 모형을 구현하기에 적합하지 않을 수 있다. 따라서 이 단계에서는 현실적인 물리적인 환경을 감안해서 최종 적용할 모형을 제시하는 단계.