[컴퓨터 공학] 요구사항과 분석기법, 명세서

조원희·2023년 7월 5일
0

computer-science

목록 보기
1/2

요구사항이란?

요구사항(要求事項, 영어: Requirement)이란 시스템 개발 분야에서 어떤 과제를 수행하기 위하여 필요한 조건이나 능력을 말한다. 시스템 개발 및 운영 시 발주자가 특정 과제를 수행하는데 필요한 조건과 능력을 체계적으로 정리하여 요구사항 번호를 붙여서 제안요청서를 작성하고, 제안자가 해당 요구사항에 맞춰 제안서를 작성한다.

요구 사항 분석 과정

  • 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용할 수 있다.
  • 자료흐름도, 자료 사전 등이 효과적으로 이용될 수 있다.
  • 보다 구체적인 명세를 위해 소단위 명세서(Mini-Spec)가 활용될 수 있다.

요구사항의 검증

  • 실제로 고객이 원하는 바를 정의했는지를 확인하는 과정
  • 시스템을 개발하거나, 시스템이 운영 중일 경우에 발견되면 방대한 재작업 비용이 발생되기 때문에 사전에 검증하는 작업이 필요
  • 시스템을 변경하여 요구사항 문제를 수정하는 비용은 설계 및 코딩오류에 비하여 비용이 많이 소요됨.

인터페이스 요구사항 검토(검증) 방법

  • 동료 검토(Peer Review) : 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견
  • 워크스루(Walk Through, CASE 도구) : 검토 회의 전, 명세서를 미리 배포하여 사전검토 후에 짧은 검토 회의를 통해 결함 발견
  • 인스펙션(Inspection) : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 명세서를 확인하면서 결함을 발견

요구사항의 체크리스트 (Requirements Checklist)

1) 유효성(Validity) : 고객의 필요를 충족하는 기능을 제공하는가?
2) 일관성(Consistency): 충돌하는 요구사항이 존재하는가?(모순되는 제약조건이 없는가?)
3) 완결성(Completeness): 고객이 요구한 모든 기능이 포함하는가?
4) 현실성(Realism): 예산과 기술적으로로 실행 가능한가?
5) 검증 가능성(Verifiability): 개발한 뒤 요구사항들을 검증할 수 있는가?

요구사항의 구분

1) 기능적 요구사항

  • 시스템이 수행해야 하는 행위들을 구체화 한 것
  • 시스템에서 제공해야 할 기능을 정의한 것
  • 입력기능, 출력기능, 데이터베이스 기능, 통신 기능 등

2) 비기능적 요구사항

  • 시스템이 가져야 하는 기능 이외의 요구사항
  • 시스템의 전체적인 품질이나 고려해야 하는 제약사항 등
  • 사용 용이성, 효율성, 신뢰성, 이식성, 유연성, 확장성 등
  • 성능적인 면: 응답 속도, 자원 사용량 등
  • 보안 측면: 침입 대응, 침입 탐지, 사용자 인증, 권한 부여 등

요구사항 개발 프로세스

도출(Elicitation) → 분석(Analysis) → 명세(Specification) → 확인(Validation)


요구사항 분석 시에 필요한 기술

  • 청취와 인터뷰 질문 기술
  • 분석과 중재기술
  • 관찰 및 모델 작성 기술

요구사항 분석이 어려운 이유

  • 개발자와 사용자 간의 지식이나 표현의 차이가 커서 상호 이해가 쉽지 않다.
  • 사용자의 요구사항이 모호하고 불명확하다.
  • 사용자의 요구는 예외가 많아 열거와 구조화가 어렵다
  • 소프트웨어 개발 과정 중에 요구사항이 계속 변할 수 있다.

요구사항 모델링에 사용되는 도구

  • Data Flow Diagram
  • UML Diagram
  • E-R Diagram
  • 애자일(Agile) 방법
  • 유스케이스 다이어그램(Use Case Diagram)
  • 시퀀스 다이어그램(Sequence Diagram)

요구사항 관리 도구의 목적

  • 요구사항 변경으로 인한 비용 편익 분석
  • 요구사항 변경의 추적
  • 요구사항 변경에 따른 영향 평가

요구 사항 명세기법

1-1) 정형 명세법의 종류

  • 수학적 기반/모델링 기반
  • Z, VDM, Petri-Net(모형기반)
  • CSP, CCS, LOTOS(대수적방법)

1-2) 정형 명세법의 특징

  • 시스템 요구특성이 정확하고 명세가 간결하다. 명세와 구현이 일치.
  • 수학적 기호, 정형화된 표기법으로 작성
  • 정확하고 간결하게 표현할 수 있지만 표기법이 어려워 사용자가 이해하기 어렵다.
  • 일관성이 있다.

2-1) 비정형명세법의 종류

  • 상태, 기능, 객체 중심 명세법
  • FSM(Finite state machine)
  • Decision Table, ER모델링
  • State chart(SADT)
  • UseCase : 사용자기반모델링

2-2) 비정형명세법의 특징

  • 명세 작성이 간편하고 의사전달 방법이 다양하다.
  • 일반 명사, 동사 등의 자연어를 기반으로 작성한다.
  • 이해가 쉽다.
  • 일관성이 떨어진다.


profile
안드로이드 개발자 wonny 입니다 :)

0개의 댓글