SW공학 – 고전적 분석

명세문서

  • 명세문서(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에서 사용됨
  • 예를 들어 마우스로 아이콘 선택시 이벤트가 발생하고 다음 상태로 전이한다.

엘레베이터의 FSM

  • 하위 문서를 작성하기 쉽고, 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)의 경계가 모호

CC BY-NC-ND 2.0 KR

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다. 크리에이티브 커먼즈 라이선스

저작권과 관련된 파일요청 및 작업요청을 받지 않습니다.

댓글 남기기