본문 바로가기

카테고리 없음

시스템 설계

시스템 설계란 시스템 개발단계에서 분석과 구현의 중간 단계로서 시스템의 품질, 신뢰도, 융통성, 유지 보수성 등의 시스템 특성을 확립시키는 단계이다. 따라서 설계단계는 일부 또는 전체를 새로운 방법으로 고안해 내어 정보를 처리할 수 있도록 하는 창조적 활동이다. 조사분석 과정을 통한 시스템 분석의 결과와 그에 대한 문제점이나 개선점이 명확하게 파악되면 다음 단계로서 제기된 문제점이나 개선점을 해결할 수 있는 새로운 시스템의 설계를 시작하게 된다. 즉 분석된 내용을 토대로 업무 처리 절차에 맞는 설계도를 작성하는 모델링 단계로서 해결하여야할 요소를 파악하여 그것을 종합적으로 분석하여 가장 효과적인 시스템을 구축하는 것을 말한다.

 

[기본설계]

기본설계는 개요설계라고도 하며, 컴퓨터를 도구로 한 새로운 시스템에서 가장 알맞은 정보처리 시스템을 완성하기 위하여 업무의 처리 내용 및 흐름을 어떻게 명확하게 할 것인가를 파악하는 단계이다. 기본설계로 설정된 정보처리 시스템의 전반적인 상황을 모델에 의하여 시스템의 기본 부분에 관한 설계를 하는 단계로 사용자들이 이해하기 쉽도록 작성한다. 여기에서는 최고경영자와 이용자의 이해를 주된 목적으로 하며, 시스템의 기능면애 중점을 둔다. 즉, 기본 사항에 대한 확인, 기본 방식의 결정, 주요 부분의 개요를 설계하고 장래에 일어날 수 있는 여러가지 기능성을 검토하여 여러 각도에서 전산화 안을 검토한 후 기본 계획을 작성한다. 따라서 기본설계단계는 소프트웨어의 논리적 구조, 자료구조, 자료 저장소, 구성요소들 간의 관계를 개략적으로 표현하는 설계 작업을 말한다.

 

1.목적

조사 단계에서 정의된 문제점에 대해 무엇을 해야 하는가를 검토한 후 그 방법에 대한 연구를 하고 상세설계 이전의 윤곽을 결정한다. 기본설계 과정에서 명확하게 규명해야 할 사항 중에 중요한 것을 요약하면 다음과 같은 것들이 있다.

2.설계 원칙

정확하고 편리한 시스템 구축을 위해 다음과 같은 원칙에 의하여 설계한다.

(1)시스템의 주목적을 결정한다 (2)시스템을 실행 가능한 작업단위로 구분한다. (3)각 작업단위 간의 관계를 결정한다.

(4)각 작업단위당 명확한 설계명세서를 작성한다. (5)작업 단위별로 설계를 한다. (6)목적에 부합되는가의 여부 평가 및 효율을 측정한다.

3.일정 계획표의 작성

일정 계획은 개발 프로세스를 이루는 작은 작업들을 파악해내고 그 순서와 일정을 정하는 것이다. 따라서 일정 계획에 사용되는 방법은 간트 차트와 퍼트 차트가 주로 많이 사용된다.

 

[상세설계]

상세설계는 개요설계에서 설계된 것을 바탕으로 각 모듈의 논리적인 절차를 확정하고 세부적인 내용을 정의하는 보다 더 상세하게 설계하는 단계이다. 즉 기본설계가 완료되면 컴퓨터의 하드웨어와 소프트웨어 양 측면을 고려한 사항을 구체적으로 표현하는 상세설계단계로 넘어간다. 이것은, 시스템 세부 내역에 관한 설계이므로 소프트웨어의 내부구조, 처리절차, 테스트계획에 대해 구체적으로 표현하여야 하며, 여기에서의 대상은 프로그래머 위주의 작업이며, 미시적 관점에서 설계를 하고 논리적으로 표현하는 것이 바람직하다. 따라서 상세설계는 업무의 요구와 명세에 맞는 컴퓨터 시스템의 사용 방법을 설계하는 것이 그 목적이다.

 

[시스템 구현]

구현단계는 프로그래밍 단계라고도 부르며, 시스템 설계 명세서에 의해서 각 모듈에 대한 원시코드(프로그램)를 작성하는 단계이다. 즉 설계 내용을 컴퓨터가 인식할 수 있는 코드로 변환, 작성하는 단계이다. 따라서 시스템 구현이 성공적으로 진행되려면 시스템 분석과 설계가 잘되어 있어야 하며, 시스템 분석과 설계가 제대로 되어 있으면 시스템 구현은 상대적으로 단순하며, 효율적으로 진행된다. 그러나 시스템 분석과 설계가 잘못되어 있으면 구현단계에서 더 많은 시간과 노력을 투입해야 하며 시스템이 개발된 후에도 많은 수정이 발생하게 된다. 따라서 정확한 구현을 위해서는 컴퓨터 사용자와 시스템 분석가, 시스템 설계자, 프로그래머가 서로 유기적인 관계를 가져야 한다. 시스템 구현의 작업 과정은 다음과 같이 진행된다.

(1)프로그램 작성

설계사양서를 실제화 하여 소프트웨어를 작성하는 것으로, 특정한 프로그래밍 언어에 의해서 모듈 내부 설계를 기초로 컴퓨터에서 처리할 수 있는 원시프로그램을 작성한다.

(2)모듈 테스트

단위 테스트라고도 하며, 하나의 모듈에 대한 정확성을 조사, 시험하는 것을 말한다.

(3)디버깅

모듈 테스트에서 오류가 발견되면 그것을 찾아 수정하는 것을 말한다. 따라서 오류를 수정한 뒤에는 확인 과정을 거치는 것이 좋다.

 

[시스템 테스트]

시스템 테스트란 시스템 개발 전체 과정에 대하여, 정해진 요구사항을 만족하는지 예상과 실제 경과가 어떤 차이를 보이는지 수동 또는 자동 방법을 동원하여 체계적으로 점검하고 검사하여 평가하는 일련의 과정을 말한다. 즉 개발 수명 주기 각 단계에 대한 최종적인 검사 작업으로 소프트웨어가 개발되는 과정마다 품질보증을 위해 검사는 반드시 필요하다. 따라서 체계적인 테스트 계획을 세워 최소한의 시간과 비용을 투자해 최대한의 확률로 오류를 찾아낼 수 있도록 노력해야 한다. 테스트는 단위 테스트, 통합 테스트, 인수 테스트의 세 가지 단계로 나눌 수 있다.

(1) 단위 테스트

각 모듈을 시험하는 것을 말한다. 단위 테스트의 주요 목적은 모듈을 정확하게 구현하였는가, 예정한 기능을 제대로 발휘하는가를 점검하는 것으로, 대부분 모듈을 구현한 프로그래머가 실시한다. 여기에는 화이트 박스 테스트 방법과 블랙박스 테스트 방법이 있다.

 

화이트 박스 테스트는 이름 그대로 투명한 박스안의 사항을 들여다 볼 수 있는 방법으로 모듈 안의 작동을 자세히 관찰하는 시험 방법이다. 즉 화이트 박스 테스트는 제품의 내부 요소들이 명세서에 따라 충분히 수행하고 실행되는가를 검토하기 위한 검사로 기초 경로 테스트, 조건 테스트, 테이터 흐름 테스트, 루프테스트 등 모듈의 논리적인 구조를 체계적으로 점검하는 것이다.

블랙박스 테스트는 모듈의 외형을 검사하는 것으로 기능 테스트라고도 부른다. 즉 모듈이 요구사항에 맞게 잘 작동하는가에 초점을 맞춘 시험 방법이다. 따라서 요구분석서에 기술된 기능을 수행하는지를 검사하여야 하며, 모듈의 입력과 출력 모듈이 수행하는 기능, 경계 값 분석, 그래픽의 효과 등을 비교 검사한다.

 

(2)통합 테스트

전체시스템을 이루는 모듈을 모아 통합적으로 시험하는 방법이다. 시스템이 요구된 기능을 제대로 수행하는가를 점검하고 모듈 사이의 인터페이스를 테스트 하는것이 주목적이다. 따라서 통합 테스트는 단위 테스트보다 더 엄격히 시행 되어야하고, 시험 기록이 잘 보존되어야 하며, 발견된 오류는 철저히 기록되어야 한다. 여기에는 하향식 테스트, 상향식 테스트, 혼합 테스트, 빅뱅 테스트 등이 있다.

하향식 테스트란 상위 모듈에서 하위모듈 방향으로 시험하는 방법으로 실제 환경과 유사한 상태에서 테스트를 실행함으로 신뢰도가 높다. 그러나 초기 단계에서 코딩과 테스트를 병행하기가 어렵다는 단점이 있다.

상향식 테스트는 하향식 테스트의 반대 방법으로 하위 모듈에서 상위 모듈 방향으로 시험하는 방법으로 코딩과 테스트가 동시에 이루어져 효율적이다. 그러나 실제 운영될 환경에서 테스트하기가 어렵고 최종 단계에 이르러야 앞 단계에서 발견하지 못한 오류를 발견할 수 있다는 단점을 가지고 있다.

혼합 테스트는 상향식의 장점을 이용한 시험방법으로 성능이 우수하다.

빅뱅 테스트는 각 모듈을 한꺼번에 시험하는 방버으로 간단하지만 오류의 원인을 파악하기가 어렵다.

 

(3)인수 테스트

완성된 제품에 대한 시험이다. 인수 테스트는 사용될 환경에 설치하여 사용자가 직접 사용함으로써 테스트하는 방법으로, 시스템이 사용될 준비가 다 되었음을 드러내 보이는 것이 주목적이다. 또한 시스템의 문서도 함께 점검하는 것이 좋다.