소프트웨어 설계 절차서

1. 목적

1.1. 본 절차서는 설계요건 분석 결과를 기반으로 적절한 방법과 도구를 사용하여 소프트웨어를 개발하기 위한 설계 절차를 기술한다.

2. 범위

2.1. 본 절차서는 요구사항을 만족하는 솔루션의 개발, 선택된 솔루션을 위한 설계, 초기 버전의 시스템 작성 및 설계확인에 적용한다.

3. 소프트웨어 설계

3.1. 설계요원은 소프트웨어 설계 시 컴퓨터프로그램의 운영환경에서 내∙외부의 비정상적인 상태 및 사건으로 인해 컴퓨터프로그램에 영향을 미칠 수 있는 잠재적인 문제를 분석을 통해 식별하고, 식별된 문제의 결과를 해결 또는 완화할 수 있는 방안을 필수적으로 마련해야 한다.

3.3. 소프트웨어 설계 단계의 확인은 독립검토자에 의해 수행되어야 하며, 확인 결과는 소프트웨어 확인 및 검증 점검표의 설계 단계(양식 0501-02)에 기록하여야 한다.

3.4. 설계요원은 본 품질보증계획서 3.2항 요건에 따라 작성하여야 하는 문서를 소프트웨어 설계요건절차서(JSS-QAP-0401) 또는 소프트웨어 구현절차서(JSS-QAP-0403)에서 발생하는 문서와 통합해도 된다.

3.5. 설계과정 중 설계요건단계에서 설정된 요건의 변경이 필요한 경우, 설계요원은 최초 작성 시와 동일한 절차에 따라 해당 문서를 변경하여야 한다.

3.6. 통상적(Typical)인 설계 개발 절차는 아래의 흐름도에 따른다.

design flow

3.6.1. 시스템 아키텍처 설계

  1. 설계요원은 자료 흐름도와 운영 환경을 참조하여 프로세스를 그룹화하고, 시스템 계층을 정의하여야 한다.

  2. 설계요원은 계층간 구성 요소를 도출하여 기능, 범위를 정의하여야 한다.

  3. 설계요원은 운영 환경을 검토하고 누락된 사항이나 변경사항 또는 추가로 반영하여야 할 사항을 도출하고 시스템 구성을 최종적으로 확정하여야 한다.

  4. 설계요원은 시스템 아키텍처에 하드웨어, 소프트웨어(시스템 소프트웨어 및 지원 소프트웨어), 네트워크의 각 구성요소에 대해서 누락, 추가, 변경 사항을 구체적으로 기술하고 각 사양들에 대한 세부적인 설명을 부가하여야 한다.

  5. 설계요원은 계층간, 구성요소 간 인터페이스 사항이 무엇인지 도출하여야 한다.

  6. 설계요원은 상기의 내용을 소프트웨어 설계 명세서에 문서화하여야 한다.

  7. 설계요원은 분석 프로세스에서 정의한 시스템 구성 요소의 성능 요구사항들에 대해서 앞에서 변경, 추가 사항을 반영하여 분석 프로세스의 작업 산출물을 갱신하여야 한다.

3.6.2. 사용자 인터페이스 설계

  1. 설계요원은 화면이나 보고서 등 사용자 인터페이스의 기준과 표준을 정하고 문서화하여야 한다.

  2. 설계요원은 시스템의 화면, 보고서 및 메뉴를 파악하고 메뉴 구조도 및 사용자 인터페이스 설계서를 작성하여야 한다.

  3. 설계요원은 화면 간의 이동 조건 및 사용 방법을 소프트웨어 설계 명세서에 문서화하여야 한다.

3.6.3. 데이터베이스 설계

  1. 설계요원은 테이블 명칭, 속성 리스트, 각 속성별 데이터 타입과 크기, 무결성을 위한 데이터 제약사항(Constraints)을 파악하여야 한다.

  2. 설계요원은 물리적 입∙출력을 최소화하면서 속도를 향상할 수 있는 색인(Index)을 설계하여야 한다.

  3. 설계요원은 트리거나 저장 절차와 같은 데이터베이스 자체가 가지는 기능들을 설계하여야 한다.

  4. 설계요원은 데이터베이스 백업 및 복구 절차를 설계하여야 한다.

3.6.4. 인터페이스 설계

  1. 설계요원은 인터페이스 기준을 정의하여야 한다.

  2. 설계요원은 외부 인터페이스와 내부 인터페이스를 포함한 시스템 구성요소 간 물리적 인터페이스를 식별하여야 한다.

  3. 설계요원은 기준과 선택된 인터페이스 설계를 소프트웨어 설계 명세서에 문서화하여야 한다.

3.6.5. 프로그램 설계

  1. 설계요원은 구성요소 설계의 요구사항과 제약사항을 검토하여야 한다.

  2. 설계요원은 상위 계층의 시스템 구성요소를 정의하여야 한다.

  3. 설계요원은 상위 계층의 시스템 구성요소를 하위 계층의 시스템 구성요소로 정의하여야 한다.

  4. 설계요원은 구성요소간 인터페이스 방식 및 사양을 설계하여야 한다.

  5. 설계요원은 구성요소간 호출 목록을 작성하여야 한다.

  6. 설계요원은 프로그램 목록과 소프트웨어 설계 명세서를 작성하여야 한다.

3.6.6. 개발 또는 재사용 분석

  1. 설계요원은 제품 구성 요소 설계 재사용에 대한 기준을 개발하여야 한다.

  2. 설계요원은 시스템의 아키텍처가 확정되면 기준을 참조하여 개발 또는 재사용 여부를 결정하여야 한다.

  3. 설계요원은 제품 구성 요소의 개발 또는 재사용을 결정하기 위해 설계를 분석하여야 한다.

3.6.7. 개발환경 구축 계획 수립 및 개발환경 구축 (필요 시)

  1. 설계요원은 설계를 만족할 수 개발환경을 만들기 위해 개발환경 구축 계획서를 작성한다.

  2. 설계요원은 개발환경 구축 계획서에 따라 하드웨어 및 소프트웨어 개발환경을 구축한다.

  3. 설계요원은 개발환경을 구축한 후 구축 결과를 검증한다.

3.6.8. 설계문서 검토 및 승인

  1. 설계요원이 작성한 소프트웨어 설계 명세서는 다른 설계요원이 검토하고 설계팀장이 승인하여야 한다.

  2. 설계팀장은 승인을 득한 설계문서에 대하여 형상관리 절차에 따라 베이스라인을 설정하여야 한다.

4. 소프트웨어 설계확인

4.1. 소프트웨어 설계확인 시에는 아래 사항이 모두 포함되어야 한다.

  1. 설계접근방법의 기술적 적합성 평가

  2. 소프트웨어 설계에 대한 내부적 완결성, 일관성, 명확성 및 정당성의 보장

  3. 소프트웨어 설계가 소프트웨어 설계 요구사항과 추적성이 유지됨을 확인

4.2. 소프트웨어 설계 단계의 확인 및 검증

4.2.1. 다음의 설계 단계 산출물로 소프트웨어 설계 단계 확인 및 검증을 한다. 이중에서 시험 문서는 소프트웨어 시험 절차서(JSS-QAP-0404)에 따라 작성되어야 한다.

  1. 소프트웨어 설계 명세서

  2. 통합 시험계획서

  3. 컴포넌트 시험계획서

4.2.2. 소프트웨어 설계 단계의 확인 및 검증은 자격인정절차서(JSS-QAP-0203)에 따라 자격 인정되고 지명된 독립검토자에 의해 수행되어야 하며, 소프트웨어 확인 및 검증 점검표의 설계 단계(양식 0501-02)와 소프트웨어 확인 및 검증 점검표의 시험계획(양식 0501-05)에 기록하여야 한다.

4.2.3. 독립검토자는 “IEEE Std 1012, Standard for Software Verification and Validation“(적용 기술기준은 고객 요구사항을 우선으로 함)에 따라 “소프트웨어 설계 단계의 확인 및 검증 보고서”를 4.2.2항에서 기록한 점검표를 포함하여 작성하여야 하며, 다른 품질요원의 검토 및 품질팀장의 승인을 득하여야 한다.

4.3. 소프트웨어 설계확인은 다음 (1) 또는 (2)항의 조건이 충족되면 원설계개발자의 감독자가 수행해도 되나, 형식적으로 수행하는 감독자에 의한 검토는 기술기준의 목적을 만족시키지 못하는 것이므로 본 요건에 부합하는 설계확인으로 간주되지 않아야 한다.

  1. 감독자가 단수의 설계방식을 명시하지 않았거나 특정 설계사항을 배제하지 않았고 설계에 사용된 설계입력을 수립하지 않았을 경우,

  2. 감독자가 설계확인 수행을 위해 제이에스솔루션 내에서 유일하게 능력을 갖춘 인원인 경우

4.4. 소프트웨어 설계확인의 범위 및 방법은 소프트웨어의 복잡성, 표준화 정도 및 이미 입증된 소프트웨어와의 유사성 및 안전에 대한 중요도에 따라 결정되고 아래 2가지 중 한 가지 또는 이들의 조합을 통해 수행하여야 한다.

  1. 설계검토

  2. 대체계산

4.5. 설계검토

4.5.1. 설계검토는 설계업무의 정확성 및 완전성을 보증하기 위하여 독립검토자가 설계를 확인하는 것을 말한다. 독립검토자는 소프트웨어 확인 및 검증 점검표의 설계 단계(양식 0501-02)를 이용하여 설계검토를 수행하며, 필요 시 독립검토자의 판단에 따라 점검항목을 추가할 수 있다.

4.6. 대체계산

4.6.1. 설계확인을 위해 대체계산법이 사용될 수 있으며, 이 대체계산법은 소프트웨어 개발 결과를 수계산으로 확인하는 단순한 방법도 허용된다.

4.6.2. 설계요원은 대체계산 결과를 문서화하고 설계확인대상 문서에 첨부하여 관리하여야 한다.

4.6.3. 독립검토자는 대체계산을 위해 사용된 설계개발 입력자료, 컴퓨터프로그램, 또는 가정의 적합성을 확인하기 위하여 최소한 다음 사항을 포함한 관련 내용을 검토하고 대체계산 결과문서와 설계확인대상문서에 날짜병기 서명하여야 한다.

  1. 계산 및 해석에 사용된 보정계수, 불확실성 및 실험식이 정확히 적용되었으며, 적당한 계산 및 해석방법이 사용되었는지?

  2. 계산 및 해석의 목적이 명확하며 결과는 입력자료와 비교하여 합리적인가?

5. 기록

5.1. 설계팀장은 설계절차 이행 결과 생성된 출력물에 대해 설계팀 내 파일에 편철하여 보관하여야 한다.