소프트웨어 설계 절차서
3. 소프트웨어 설계
3.1. 설계요원은 소프트웨어 설계 시 컴퓨터프로그램의 운영환경에서 내∙외부의 비정상적인 상태 및 사건으로 인해 컴퓨터프로그램에 영향을 미칠 수 있는 잠재적인 문제를 분석을 통해 식별하고, 식별된 문제의 결과를 해결 또는 완화할 수 있는 방안을 필수적으로 마련해야 한다.
3.2. 설계요원은 소프트웨어 설계단계에서 소프트웨어 설계요건을 만족시키는데 필요한 컴퓨터의 계산 또는 동작순서를 정의하고, 수리학적 방법, 수학적 모델, 물리적 모델, 제어흐름도, 제어논리, 자료흐름도, 프로세스 흐름도, 자료구조, 프로세스 구조 및 자료구조와 프로세스 구조 사이의 상호관련성이 적절하게 포함되도록 “IEEE Std 1016, Recommended Practice for Software Design Description”(적용 기술기준은 고객 요구사항을 우선으로 함)에 따라 소프트웨어 설계명세서를 작성하여야 하며, 소프트웨어 설계명세서는 독립검토자의 검토 및 설계팀장의 승인을 득하여야 한다.
3.4. 설계요원은 본 품질보증계획서 3.2항 요건에 따라 작성하여야 하는 문서를 소프트웨어 설계요건절차서(JSS-QAP-0401) 또는 소프트웨어 구현절차서(JSS-QAP-0403)에서 발생하는 문서와 통합해도 된다.
3.6. 통상적(Typical)인 설계 개발 절차는 아래의 흐름도에 따른다.
3.6.1. 시스템 아키텍처 설계
-
설계요원은 자료 흐름도와 운영 환경을 참조하여 프로세스를 그룹화하고, 시스템 계층을 정의하여야 한다.
-
설계요원은 계층간 구성 요소를 도출하여 기능, 범위를 정의하여야 한다.
-
설계요원은 운영 환경을 검토하고 누락된 사항이나 변경사항 또는 추가로 반영하여야 할 사항을 도출하고 시스템 구성을 최종적으로 확정하여야 한다.
-
설계요원은 시스템 아키텍처에 하드웨어, 소프트웨어(시스템 소프트웨어 및 지원 소프트웨어), 네트워크의 각 구성요소에 대해서 누락, 추가, 변경 사항을 구체적으로 기술하고 각 사양들에 대한 세부적인 설명을 부가하여야 한다.
-
설계요원은 계층간, 구성요소 간 인터페이스 사항이 무엇인지 도출하여야 한다.
-
설계요원은 상기의 내용을 소프트웨어 설계 명세서에 문서화하여야 한다.
-
설계요원은 분석 프로세스에서 정의한 시스템 구성 요소의 성능 요구사항들에 대해서 앞에서 변경, 추가 사항을 반영하여 분석 프로세스의 작업 산출물을 갱신하여야 한다.
3.6.2. 사용자 인터페이스 설계
-
설계요원은 화면이나 보고서 등 사용자 인터페이스의 기준과 표준을 정하고 문서화하여야 한다.
-
설계요원은 시스템의 화면, 보고서 및 메뉴를 파악하고 메뉴 구조도 및 사용자 인터페이스 설계서를 작성하여야 한다.
-
설계요원은 화면 간의 이동 조건 및 사용 방법을 소프트웨어 설계 명세서에 문서화하여야 한다.
3.6.3. 데이터베이스 설계
-
설계요원은 테이블 명칭, 속성 리스트, 각 속성별 데이터 타입과 크기, 무결성을 위한 데이터 제약사항(Constraints)을 파악하여야 한다.
-
설계요원은 물리적 입∙출력을 최소화하면서 속도를 향상할 수 있는 색인(Index)을 설계하여야 한다.
-
설계요원은 트리거나 저장 절차와 같은 데이터베이스 자체가 가지는 기능들을 설계하여야 한다.
-
설계요원은 데이터베이스 백업 및 복구 절차를 설계하여야 한다.
3.6.4. 인터페이스 설계
-
설계요원은 인터페이스 기준을 정의하여야 한다.
-
설계요원은 외부 인터페이스와 내부 인터페이스를 포함한 시스템 구성요소 간 물리적 인터페이스를 식별하여야 한다.
-
설계요원은 기준과 선택된 인터페이스 설계를 소프트웨어 설계 명세서에 문서화하여야 한다.
3.6.5. 프로그램 설계
-
설계요원은 구성요소 설계의 요구사항과 제약사항을 검토하여야 한다.
-
설계요원은 상위 계층의 시스템 구성요소를 정의하여야 한다.
-
설계요원은 상위 계층의 시스템 구성요소를 하위 계층의 시스템 구성요소로 정의하여야 한다.
-
설계요원은 구성요소간 인터페이스 방식 및 사양을 설계하여야 한다.
-
설계요원은 구성요소간 호출 목록을 작성하여야 한다.
-
설계요원은 프로그램 목록과 소프트웨어 설계 명세서를 작성하여야 한다.
3.6.6. 개발 또는 재사용 분석
-
설계요원은 제품 구성 요소 설계 재사용에 대한 기준을 개발하여야 한다.
-
설계요원은 시스템의 아키텍처가 확정되면 기준을 참조하여 개발 또는 재사용 여부를 결정하여야 한다.
-
설계요원은 제품 구성 요소의 개발 또는 재사용을 결정하기 위해 설계를 분석하여야 한다.
4. 소프트웨어 설계확인
4.1. 소프트웨어 설계확인 시에는 아래 사항이 모두 포함되어야 한다.
-
설계접근방법의 기술적 적합성 평가
-
소프트웨어 설계에 대한 내부적 완결성, 일관성, 명확성 및 정당성의 보장
-
소프트웨어 설계가 소프트웨어 설계 요구사항과 추적성이 유지됨을 확인
4.2. 소프트웨어 설계 단계의 확인 및 검증
4.2.1. 다음의 설계 단계 산출물로 소프트웨어 설계 단계 확인 및 검증을 한다. 이중에서 시험 문서는 소프트웨어 시험 절차서(JSS-QAP-0404)에 따라 작성되어야 한다.
-
소프트웨어 설계 명세서
-
통합 시험계획서
-
컴포넌트 시험계획서
4.3. 소프트웨어 설계확인은 다음 (1) 또는 (2)항의 조건이 충족되면 원설계개발자의 감독자가 수행해도 되나, 형식적으로 수행하는 감독자에 의한 검토는 기술기준의 목적을 만족시키지 못하는 것이므로 본 요건에 부합하는 설계확인으로 간주되지 않아야 한다.
-
감독자가 단수의 설계방식을 명시하지 않았거나 특정 설계사항을 배제하지 않았고 설계에 사용된 설계입력을 수립하지 않았을 경우,
-
감독자가 설계확인 수행을 위해 제이에스솔루션 내에서 유일하게 능력을 갖춘 인원인 경우
4.4. 소프트웨어 설계확인의 범위 및 방법은 소프트웨어의 복잡성, 표준화 정도 및 이미 입증된 소프트웨어와의 유사성 및 안전에 대한 중요도에 따라 결정되고 아래 2가지 중 한 가지 또는 이들의 조합을 통해 수행하여야 한다.
-
설계검토
-
대체계산