소프트웨어 공부/프로그래밍

[프로그래밍] 소프트웨어 설계의 개요

야곰야곰+책벌레 2021. 8. 25. 11:27
728x90
반응형

  소프트웨어 설계란 컴퓨터 프로그램에 대한 요구를 조작 가능한 프로그램으로 변환시키는 계획의 개념, 발명, 책략을 의미한다. 설계는 요구 사항을 코드 작성과 오류 수정에 연결시키는 행위를 말한다.

 

설계의 단계


1단계 : 서브 시스템으로 분할

  이 단계에서 설계의 주요 작업은 모든 주요 서브 시스템의 구분이다. 이 단계의 주요 설계 행위는 어떻게 프로그램을 주요 구성 요소로 분리하느냐를 결정하는 것과 구성 요소 사이의 인터페이스를 정의하는 것이다.

서브 시스템은 일반적으로 모듈과 루틴을 포함한 전체 프로그램보다 작은 프로그램의 부분을 가리킨다.

2단계 : 모듈로 분할

  이 단계에서의 설계는 시스템의 모든 모듈의 정의를 포함한다. 대형 시스템의 프로그램 분할 단계에서 지정된 서브 시스템은 너무 커서 직접 모듈로 변환되기 힘들다. 만들 그와 같은 상황에 있다면 서브 시스템은 이 단계에서 모듈로 분할 나눠질 수 있다. 나눠진 모듈 역시 너무 복잡하다면 다시 분할할 수 있다.

 

  시스템과 상호 작용하는 각 모듈 내의 자세한 사항은 모듈을 설명한 것처럼 설명되어야 한다. 이 단계의 주요 설계 작업은 모든 서브 시스템이 각 부분을 개별 모듈로 구현할 수 있을 정도로 자세하게 분해됐는지를 확인하는 것이다.

3단계 : 루틴으로 분할

  이 단계의 설계는 모듈에 의해 제공되는 서비스로 각 모듈을 나누는 것을 포함한다. 모듈은 서비스 루틴을 통해 시스템의 나머지 부분과 상호 조작되기 때문에 모듈이 시스템과 어떻게 조작되는지에 대한 특정 세부 사항은 이 단계에서 기술 된다. 

4단계 : 내부 루틴 설계

  루틴 단계 설계는 개별 루틴의 세부 기능의 설계로 이뤄진다. 내부 루틴 설계는 보통 개별 루틴 작업을 하는 프로그래머에게 남겨진다.

 

  설계에 있어 모든 프로그래머들은 이 단계를 프로젝트의 크기에 상관없이 의식적이든 무의식적이든, 확실하든지 엉성하든지 항상 적용했다.

 

 

728x90
반응형