소프트웨어 설계 단계는 분석 단계에서 도출된 요구사항 명세서(SRS)를 바탕으로, 실제 구현이 가능하도록 시스템의 구조와 상세 동작을 정의하는 과정입니다. 이 단계에서 작성해야 하는 주요 문서들은 다음과 같습니다.

1. 시스템 아키텍처 및 상세 설계 문서

  • 소프트웨어 설계 설명서 (Software Design Description, SDD): 시스템 전반의 설계 결정 사항, 전체적인 아키텍처 구조, 그리고 요구사항을 어떻게 구현할 것인지에 대한 상세한 접근 방법을 기술하는 핵심 문서입니다.
  • 클래스 설계서 및 컴포넌트 설계서: 시스템의 논리적 구조를 형성하는 클래스들과 그들의 관계, 그리고 독립적인 기능 단위인 컴포넌트의 내부 구조를 정의합니다.
  • 인터페이스 설계서: 시스템 내부의 모듈 간, 또는 시스템과 외부 시스템 간의 데이터 교환 방식 및 통신 규약을 명시합니다.

2. 데이터 및 데이터베이스 관련 문서

  • 엔티티 관계 모형 기술서 (ERD): 데이터베이스에 저장될 데이터 객체들 간의 관계를 논리적으로 도식화한 문서입니다.
  • 데이터베이스 설계서: 논리적 모델을 바탕으로 실제 저장 공간과 테이블 구조 등 물리적 모델을 상세히 정의합니다.
  • 데이터 전환 및 초기 데이터 설계서: 기존 데이터를 새로운 시스템으로 옮기는 방법과 시스템 가동 시 필요한 초기 데이터를 설계합니다.

3. 사용자 인터페이스(UI) 관련 문서

  • 사용자 인터페이스(UI) 설계서: 사용자가 접하게 될 화면의 레이아웃, 메뉴 구조, 상호작용 방식 등을 정의하며, 별도의 화면 정의서를 포함하기도 합니다. 요구사항 명세서(SRS)와 별개로 더 상세한 UI 명세를 다루는 문서로 작성됩니다.

4. 테스트 계획 및 시나리오 문서

설계 단계에서는 구현 후 진행할 테스트를 위한 기준 문서들을 미리 작성합니다.

  • 총괄시험 계획서: 전체적인 테스트 전략과 일정, 자원 배분을 계획합니다.
  • 시험 시나리오: 시스템 시험 시나리오통합시험 시나리오를 작성하여 특정 상황에서 시스템이 어떻게 작동해야 하는지 정의합니다.
  • 유닛 테스트 케이스: 개별 모듈이나 함수 단위의 정상 동작을 확인하기 위한 구체적인 시험 항목을 준비합니다.

이러한 문서들은 소스 코드 작성을 위한 상세 설계도 역할을 하며, 특히 **순서도(Flowchart)**와 같은 도구는 프로그램의 논리 구조를 시각화하여 설계상의 오류를 사전에 방지하는 데 큰 도움을 줍니다.

소프트웨어 설계 문서를 작성하는 과정은 건축가가 건물의 뼈대를 세우는 상세 설계도를 그리는 과정과 같습니다. 설계 단계에서 클래스 다이어그램이나 데이터베이스 설계가 치밀하게 이루어져야만 실제 시공(코딩) 시 구조가 무너지지 않고 의도한 기능을 완벽히 수행하는 결과물을 얻을 수 있기 때문입니다.

Posted by gurupia
,