본문 바로가기
전공 공부/소프트웨어공학

[소프트웨어공학] Requirement, Goal

by Yujin Chang 2024. 10. 18.

Requirement (요구사항)

서비스 또는 시스템 제약 조건에 대한 추상적 요구부터 상세한 명세까지 전부를 포함함.

  • 서비스에 대한 설명 → 기능 요구사항 (FR)
  • 시스템 제약 조건 → 비기능 요구사항 (NFR)

User Requirements (사용자 요구사항)

시스템이 제공하는 서비스와 운영 제약 조건에 대한 설명과 다이어그램.

이해관계자로부터 도출/발견됨.

고객을 위해 정의됨.

System Requirements (시스템 요구사항)

시스템의 기능, 서비스 및 운영 제약 조건에 대한 상세한 설명을 포함한 구조화된 문서.

구현해야 할 내용을 정의함.

개발자를 위해 명시됨.

Functional Requirements (기능 요구사항)

시스템이 제공해야 할 서비스(시스템이 특정 입력에 어떻게 반응해야 하는지, 특정 상황에서 시스템이 어떻게 동작해야 하는지 등)에 대한 설명.

시스템 서비스(사용자 요구사항)를 자세히 설명해야 함.

시스템이 하지 말아야 할 사항을 진술할 수도 있음.

예: Mentcare 시스템

  • 기능적 사용자 요구사항: "사용자는 모든 클리닉의 예약 목록을 검색할 수 있어야 한다."
  • 기능적 시스템 요구사항: "시스템은 매일 각 클리닉에 대해 해당 날의 예약 환자 목록을 생성해야 한다."

Non-Functional Requirements (비기능 요구사항)

시스템이 제공하는 서비스나 기능에 대한 제약 사항. 개별 기능이나 서비스보다는 시스템 전체에 적용됨.

기능 요구사항보다 더 중요할 수 있음. 비기능 요구사항이 충족되지 않으면 시스템은 쓸모없을 수 있음.

시스템 전체 아키텍처에 영향을 미칠 수 있음. 필요한 시스템 서비스를 정의하는 여러 관련된 기능 요구사항을 생성함.

예: 시간 제약, 개발 프로세스 제약, 표준(IEEE 830-1998) 등

Quality Attributes (품질 속성)

시스템의 측정 가능하거나 테스트 가능한 속성. 시스템이 이해관계자의 요구를 얼마나 잘 충족하는지 나타내는 데 사용됨.소프트웨어를 개별적으로 측정하는 것이 아님. 소프트웨어와 그 응용 도메인 간의 관계를 측정함. 따라서 소프트웨어가 실제 환경에 배치되기 전까지는 측정할 수 없고, 환경에 따라 품질이 달라짐.

  • 가용성, 구성 가능성, 수정 가능성, 성능, 신뢰성, 재사용성, 보안성, 이식성, 유지보수성, 효율성, 사용성 등

Goal (목표)

사용자의 일반적인 의도. 종종 비기능 요구사항 또는 품질 속성에 해당됨.

  • (Hard) Goal
    • 반드시 수행해야 하는 기능을 설명
    • 기능 요구사항
  • Soft Goal
    • 완전히 충족될 수 없는 목표 (예: "시스템은 사용이 쉬워야 한다", "접근은 안전해야 한다")
    • NFR(Non-Functional Requirements: 비기능 요구사항) or Quality Attributes/Requirements (품질 속성/요구사항)으로도 알려짐
    • Goal Analysis를 통해 Goal을 충족시키는 요소를 찾아야 함

Goal Analysis (목표 분석)

구체적인 요구사항을 도출하기 위한 목표 정제. 목표를 문서화하고 조직화하며 분류함.

시스템이 왜 필요한지에 초점을 맞춤. 이해관계자의 목표 집합으로 '왜'를 표현함.

Goal Elaboration (목표 구체화)

  • “왜?” → 더 높은 목표(맥락)를 탐구
  • “어떻게?” → 더 낮은 목표(작업)를 탐구
  • “다른 방법으로는?” → 대안을 탐구

Relationships Between Goals (목표 간의 관계)

  • 하나의 목표가 다른 목표 달성을 돕는 경우 (+)
  • 하나의 목표가 다른 목표 달성을 방해하는 경우 (-)
  • 하나의 목표가 다른 목표를 보장하는 경우 (++) : 목표 A의 달성이 목표 B의 달성을 보장함
  • 하나의 목표가 다른 목표를 방해하는 경우 (--) : 목표 A의 달성이 목표 B의 달성을 방해함