[SW 설계] 요구사항 정의

당고짱·2023년 4월 30일
0

SW design and develop

목록 보기
3/11
post-thumbnail

요구사항

어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건 등

  • 소프트웨어 개발이나 유지보수 과정에서 필요한 기준과 근거를 제공
  • 개발에 참여하는 이해관계자들 간의 의사소통을 원할하게 함
  • 요구사항이 제대로 정의되어야만 이를 토대로 이후 과정의 목표와 계획을 수립할 수 있음

요구사항 유형

기능 요구사항(Funtional requirements)

  • 시스템이 무엇을 하는지, 어떤 기능을 하는지
  • 입력이나 출력으로 무엇이 포함되어야 하는지
  • 어떤 데이터를 저장하거나 연산을 수행해야 하는지
  • 시스템이 반드시 수행해야 하는 기능
  • 사용자가 시스템을 통해 제공받기를 원하는 기능

비기능 요구사항(Non-funtional requirements)

  • 시스템 장비 구성 요구사항 : 하드웨어, 소프트웨어, 네트워크 등
  • 성능 요구사항 : 처리 속도 및 시간, 처리량, 동적 및 정적 적용량 등
  • 인터페이스 요구사항 : 다른 소프트웨어, 하드웨어 및 통신 인터페이스, 다른 시스템과의 정보 교환에 사용되는 프로토콜과의 연계도 포함해 기술
  • 데이터 요구사항 : 초기 자료 구축 및 데이터 변환을 위핸 대상, 방법, 보안이 필요한 데이터 등 데이터 구축하기 위해 필요한 요구사항
  • 테스트 요구사항 : 장비 성능 테스트, 시스템 운영 테스트
  • 보안 요구사항 : 데이터 및 기능, 운영 접근을 통제
  • 품질 요구사항 : 품질 항목, 품질 평가 대상에 대한 요구사항
  • 제약사항 : 시스템 설게, 구축, 운영과 관련해 사전에 파악된 기술, 표준, 업무 등
  • 프로젝트 관리 요구사항 : 원활한 수행을 위한 관리 방법
  • 프로젝트 지원 요구사항 : 프로젝트 원활한 수행을 위한 지원 사항이나 방안

사용자 요구사항

  • 사용자 관점에서 본 시스템이 제공해야 할 요구사항
  • 사용자를 위한 것으로 친숙한 표현으로 이해하기 쉽게 작성

시스템 요구사항

  • 개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항
  • 사용자 요구사항에 비해 전문적이고 기술적인 용어 표현
  • 소프트웨어 요구사항

요구사항 개발 프로세스

개발 대상에 대한 요구사항을 체계적으로 도출하고 분석한 후 분석 결과를 명세서에 정리해 확인 및 검증하는 일련의 구조화된 활동

  • 프로세스 진행 전 타당성 조사가 선행되어야 함
  • 요구공학의 한 요소
    도출(Elicitation) → 분석(Analysis) → 명세(Specification) → 확인(Validation)

도출

시스템, 사용자, 시스템 개발에 관련된 사람들이 서로 의견을 요환하여 요구사항이 어디에 있는지, 어떻게 수집할 것인지 식별하고 이해하는 과정

  • 소프트웨어가 해결해야 할 문제를 이해하는 첫 번째 단계
  • 개발자와 고객 사이의 관계가 만들어지고 이해관계자가 식별됨
  • 효율적인 의사소통 중요
  • 소프트웨어 개발 생명 주기동안 지속적 반복됨
  • 청취, 인터뷰, 설문, 브레인스토밍 등

분석

요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 걸러내기 위한 과정

  • 요구사항의 타당성을 조사하고 비용과 일정에 대한 제약을 설정
  • 상충되는 요구사항이 있으면 중재하는 과정
  • 소프트웨어의 범위를 파악
  • 소프트웨어와 주변 환경이 상호 작용하는 방법 이해
  • 자료 흐름도, 자료 사전 등의 도구 사용됨

명세

요구사항을 바탕으로 모델을 작성하고 문서화 하는 것

  • 기능 요구사항은 빠짐없이 완전하고 명확하게 기술
  • 비기능 요구사항은 필요한 것만 명확하게 기술
  • 잘못된 부분이 확인될 경우 내용을 요구사항 정의서에서 추적할 수 있어야 함
  • 소단위 명세서가 사용될 수 있음
구분정형 명세 기법비정형 명세 기법
기법수학적 원리 기반, 모델 기반상태/기능/객체 중심
작성 방법수학적 기호, 정형화된 표기법일반 명사, 동사 등의 자연어를 기반으로 서술 또는 다이어그램으로 작성
특징요구사항을 정확하고 간결히 표현, 요구사항에 대한 결과가 작성자에 관계없이 일관성 있음, 표기법이 어려워 사용자가 이해하기 어려움자연어의 사용으로 요구사항에 대한 결과가 작성자에 따라 다를 수 있음 → 일관성이 떨어지고 해석이 달라짐, 내용의 이해가 쉬워 의사소통 용이
종류VDM, Z, Petri-net, CSP 등FSM, Decision Table, ER모델링, State Chart 등

확인

개발 자원을 요구사항에 할당하기 전 명세서가 정확하고 완전하게 작성되었는지 검토

  • 분석가가 요구사항을 정확히 이해하고 명세서를 작성했는지 확인해야 함
  • 실제 요구를 반영하는지, 상충되는 요구사항은 없는지 점검
  • 개발 완료 후 문제가 발견되면 재작업 비용이 발생할 수 있어 검증은 매우 중요
  • 내용이해가 쉬운지, 일관성이 있는지, 회사 기준에 맞는지, 누락된 기능은 없는지 등 검증하는 것이 중요
  • 이해관계자들이 문서를 검토해야 함
  • 모든 문제를 확인할 수 있는 것은 아님
  • 관리 도구를 이용해 형상관리(프로그램, 프로그램을 설명하는 문서, 데이터 등) 수행
profile
초심 잃지 말기 🙂

0개의 댓글