7-1 요구사항 도출(요구사항 개요)

윤효준·2025년 7월 15일
0

소프트웨어 공학

목록 보기
9/43

요구사항은 소프트웨어 시스템이 수행해야 할 것과 소프트웨어 시스템에 있어야 할 특성을 기술한 문장이라고 할 수 있다.

프로젝트 실패의 가장 중요한 이유 중 하나는 명확하지 못한 요구사항 정의이기에 요구사항을 정확히 할 필요가 있다.

🗂️ 요구사항의 분류

소프트웨어 개발을 위해 스테이크 홀더들이 제시하는 다양한 요구사항을 분류하면 기능에 대한 요구사항, 비기능에 대한 요구사항, 인터페이스에 대한 요구사항으로 구분할 수 있다.

기능적 요구사항

사용자의 업무 처리와 직접 관련되어 소프트웨어 시스템이 수행해야 하는 요구 내용을 의미한다.
이러한 요구사항이 구현되지 않으면 사용자는 수작업으로 해당 업무를 처리해야 하기에 반드시 구현되어야 하는 항목이다.

기능적 요구사항을 정할 때는 기능성, 데이터, 사용자를 고려해야 한다.

  • 기능성: 시스템이 해야 하는 것은 무엇인가?
  • 데이터: 시스템의 입력과 출력 데이터는 무엇이고, 그 형식은 어떻게 정의되는가?
  • 사용자: 시스템을 사용하고 관리하는 사람은 누구인가?

비기능적 요구사항

비기능적 요구사항은 다음과 같은 6가지 관점에서 제시될 수 있다.

운영 요구사항

시스템, 문서 형식, 파일 형식 등에 제한받지 않고 사용 가능해야 한다.

자원 요구사항

소프트웨어 실행을 위해 최소한의 메모리를 제공해야 한다.
다양한 방식의 입출력 장치를 제공해야 한다.

성능 요구사항

질의에 대한 응답 시간은 1초를 넘지 말아야 한다.
데이터베이스는 실시간 업데이트가 가능해야 한다.

보안 요구사항

사용자 유형별 접근 권한을 제한해야 한다.
데이터는 암호화해야 한다.

문화적/정책적 요구사항

한글과 영어를 지원해야 한다.
모든 날짜 표기는 YYYY-MM-DD여야 한다.

품질 요구사항

유지보수가 용이해야 한다.
합리적으로 동작해야 한다.

인터페이스 요구사항

사용자와의 인터페이스 뿐만 아니라 기존 시스템과의 연동도 포함해야 한다.

🔍 요구사항 정의 품질

요구사항은 소프트웨어 개발을 위한 기준점이 될 수 있으므로 정확하고 명확해야 한다. 요구사항을 정의할 때는 다음과 같은 부정적 현상이 발생하지 않도록 주의해야 한다.

노이즈 발생

관련 없는 정보가 포함되거나 모호한 표현이 존재하는 경우

침묵 발생

언급되어야 할 사항이 누락되는 경우

과도한 스펙 명세

아직 결정되지 않는 구현 관련 사항이 포함되는 경우

모순 발생

전후 내용에 일관성이 없는 경우

모호성

하나의 표현이 여러 가지 의미로 해석되는 경우

전방 참조

아직 정의하지 않은 사항을 앞서 참조하는 경우

사실이 아닌 기대 사항

사실에 근거하지 않고 막연한 추측과 기대에 근거하는 경우

profile
작은 문제를 하나하나 해결하며, 누군가의 하루에 선물이 되는 코드를 작성해 갑니다.

0개의 댓글