본문으로 건너뛰기
명세문서
- 명세문서(specification document)는 클라이언트와 개발자간의 협약서(contract)이다.
- 협약서의 내용 : 비용, 시간, 병렬 실행 여부, 이식성, 신뢰성, 빠른 응답시간
- 인증기준(Accptance criteria) : 승인 평가 기준의 집합이 중요함. 일련의 테스트들을 명시
- 해결방안 전략 : 프로토타이핑, 시뮬레이션 등을 통한 기법이 있음.
비정형 명세
- 자연어로 작성된 명세 문서의 모호함이 문제가 됨
- 비정형 명세를 하게되는 원인
- 비정형관리
- 컴퓨터 전문가들의 부족
- 관리를 클라이언트 입력에 일임
- 교육 투자가 미흡
구조적 시스템 분석
- Gane과 Sarsen의 구조적 기법 : 그래픽을 이용한 기법, 70년대에 사용됨
- 단계 1 : DFD(Data Flow Diagram)을 작성 : 논리적 데이터의 흐름을 표현

- 단계 2 : 전산화(배치 또는 온라인 방식)을 결정

- 단계 3 : 데이터 흐름의 세부사항 결정하고 정제
- 단계 4 : 프로세스들의 로직을 정의
- 의사 결정 트리 (Decision Tree)를 사용하여 각 프로세스 내의 발생하는 일들을 조사

- 단계 5 : 데이터의 저장소의 내용과 형태를 정의

- 단계 6 : 물리적 자원들을 정의
- 각 요소의 형태, 방해 요소를 결정
- 추가적인 파일 형태를 기술
- 단계 7 : 입출력 명세들을 결정. 상세한 내용이 없어도 유사하게 결정
- 단계 8 : 규모(입력의 볼륨, 빈도수, 레코드 크기와 수 등)를 결정.
- 단계 9 : 단계8로 부터 필요한 하드웨어 요구사항들을 결정
구조적 시스템 분석
- Gane과 Sarsen의 명세기법의 한계가 존재함
- 응답시간은 결정하는데 사용 못함
- I/O 채널 수는 추정됨
- CPU 크기와 타이밍은 정확히 산정 불가
- Gane과 Sarsen의 명세기법은 한계가 있지만 주요 개선점을 끌어낸 공로가 있음
다른 반 정형 기법
- PSL/PSA(Problem Statement Language/Problem Statement Analyzer) : 프로덕트의 문서화에 유리
- SADT(Structural Analysis and Design Technique) : 대형 프로젝트에 사용. 실시간 시스템에 부적합.
- SREM(Software Requirements Engineering Method) : FSM(Finite State Machine)에서 유래함. 실시간 시스템 명세에 유리
ERM : entity-relationship modeling
- Data보다 Action을 강조
- DB명세, 객체지향 분석에 널리 사용됨

유한 상태 기계 : Finite State Machines
- 메뉴 중심의 UI에서 사용됨
- 예를 들어 마우스로 아이콘 선택시 이벤트가 발생하고 다음 상태로 전이한다.


- 하위 문서를 작성하기 쉽고, CASE툴을 사용하여 설계를 코드로 변환하기 쉬움
- 대형 프로젝트에서는 state, event, predicate 수가 많이지는 단점이 있음.
Petri Net
- 타이밍, 동기화, 인증, 데드록 문제가 잠재된 시스템의 명세에 유리
- 요소
- 장소의 집합 P
- 전이의 집합 T
- 입력함수 I
- 출력함수 O

Z (Zed)
- 가장 많이 사용되는 정형 명세 언어
- 이산수학의 지식이 필요하여 배우는데 어려움
- 명세자에게 극도의 정확성을 요구하며, 명세들의 결함을 발견하기 쉬움
- 요소
- 주어진 집합 : 데이터 타입, 상수, 상세할 필요는 없음
- 상태 정의 : schema들을 사용하여 정의
- 초기 상태 : 시스템이 처음 켜진 상태
- 오퍼레이션 : 사전조건, 실행, 사후조건으로 진행
다른 정형 기법
- Anna : Ada용 명세 언어
- Gist : 지식기반. 인간의 생각과 유사하게 명세
- VDM(Vienna Definition Method) : 표현의미론에 기반. 설계와 구현에도 적용 가능
- CSP(Commuicating Sequential Processes) : 이벤트에 의한 시스템의 행위를 서술. 배우기 어려움
고전적 분서기법들의 비교
- 자연어
- 분류 : 비정형, 장점 : 배우기 쉬움, 단점 : 모호함
- ERM, PSL/PSA, SADT, SREM, 구조적 시스템 분석
- 분류 : 반정형, 장점 : 고객이 이해하기 쉬움, 단점 : 정형화되어 있지 않고 타이밍을 처리 못함
- Anna, CSP, FSM, Gist, Perti nets, VDM, Z
- 분류 : 정형, 장점 : 정확함, 단점 : 배우기 어려움
명세 방법의 선택방법
- Project, 개발팀, 관리팀 등에 따라 선택방법이 달라짐
- 반드시 최신의 방법을 써야 되는것은 아님
고전적 분석용 CASE 도구
- 그래픽 도구 : DTD, Perti net, ERD
- 데이터 사전 : 데이터 흐름/컴포넌트, 저장소, 오퍼레이션, 데이터 타입등을 저장
고전적 분석용 척도
- 척도의 5요소 : 크기, 비용, 기간, 노력, 품질을 측정
- 품질의 척도 : 결함의 통계, 결함의 수, 결함의 비율
- 프로덕트의 크기를 예측하는 척도 : 데이터 사전의 항목의 수
고전적 분석의 난제
- 고객에 이해할 수 있도록 비정형이여야 하고, 개발할 수 있도록 정형이여야 함.
- 분석(what)과 설계(how)의 경계가 모호