Software Engineering

[소프트웨어공학] 제6장 사용자 요구 분석 (요구공학)

iseop 2023. 5. 16. 19:13   인쇄용 버전

1. 단원 정리

  • 요구사항(requirements): 목적 달성을 위해 시스템이 갖추어야 할 조건이나 능력
    • 기능적 요구사항: 사용 시나리오, 데이터 형식 등
    • 비기능적 요구사항: 성능, 보안 등
  • FURPS+: HP에서 개발한 요구사항 분류 모델
    • 기능적: Functionality
    • 비기능적: Usability, Reliability, Performance, Supportability ➡️ 품질 조건
    • Plus(+)는 비기능적 요구사항 중 제약 조건을 의미함
  • 요구 공학 프로세스: 시스템 요구사항 명세서(SRS)를 만들기 위한 반복적 프로세스
    • 고객이 작성한 문제 기술서를 바탕으로 SRS를 산출한다.
    • 타당성 조사➡️요구사항 수집/분석(추출)➡️문서화➡️검토➡️관리 절차로 진행된다.
    • 위 절차 중에서 요구사항 수집/분석(추출) 절차는 아래 절차로 나뉘어 진행된다.
      • 수집➡️분류➡️충돌 해결➡️우선순위 부여
    • JAD(Joint Application Design): 설계/개발 과정에 고객과 사용자를 참여시키는 방법
    • 추적가능성 정보(Accountability): 요구사항의 변동을 관리하기 위한 부가 정보
      • 소스 추적성: "요구사항-제안자-제안이유" 정보
      • 요구사항 추적성: 요구사항 간 의존성 정보
      • 설계 추적성: "요구사항-설계문서" 간 연관 정보
  • 요구사항 모델링: 상세한 명세화 작업을 위해 다이어그램, 설계 기술 언어등이 사용된다.
    • 객체지향 분석 기법과 구조적 분석 기법이 존재한다.
    • 요구사항 명세서의 모델화 작업은 나중으로 미뤄지는 경향이 있다.
    • 객체지향 분석
      • 시스템 모델링을 위한 객체지향적 요구사항 분석 방법
      • 입력: 요구사항 명세서(기능 모델+비기능적 요구사항)
        • 기능 모델: 외부에서 접근 가능한 기능 또는 사용자 스토리를 유스케이스 다이어그램으로 표현한 것
      • 출력: 분석 모델(분석 객체 모델+동적 모델)
        • 분석 객체 모델: 클래스 다이어그램으로 표현됨
        • 동적 모델: 상태머신 다이어그램, 시퀀스 다이어그램으로 표현됨
    • 구조적 분석
      • 시스템 모델링을 위해 분할정복/하향식 기능분해 방법을 사용하는 요구사항 분석 방법
      • 구조적 분석의 특징
        • 결과물(시스템 모델)을 그래픽으로 표현
        • 시스템 모델을 통한 분석가-사용자 간 의사소통
        • 기능 분해를 통해 시스템을 다루기 쉬운 조각으로 나눔
      • 구조적 분석 방법에 사용되는 소프트웨어 공학 원리
        • 추상화: 복잡한 개체의 핵심만 추려내는 것
        • 분할정복: 큰 문제를 작고 독립적인 문제로 분할해 해결하는 것
        • 계층화: 분할된 모듈을 트리 구조로 구성하는 것
        • 형식화: 단계별로 결과물을 문서화하는 것
      • SW 시스템을 보는 관점
        • 정보 관점: 시스템이 처리하는 데이터와 그 관계(개체관계도)
        • 기능 관점: 시스템이 수행하는 기능과 그 입/출력(DFD)
        • 동적 관점: 이벤트에 의한 시스템의 상태변화(상태전이도)
      • 데이터 흐름도(DFD): "기능 관점"의 시스템 모델
        • 시스템의 데이터 흐름과 처리를 표현하는 네트워크 다이어그램
        • 프로세스: 타원, 데이터 흐름: 화살표, 데이터 저장소: 윗줄과 밑줄, 외부개체: 사각형
        • 최상위 DFD에서 확장된 최하위 DFD에 존재하는 프로세스를 "기능단위"라고 부른다.
        • 각 기능단위의 로직을 기술한 "프로세스 명세서" 또한 작성한다.
      • 데이터 사전(DD): 데이터의 형식에 관한 정보를 표현, DFD와 별개의 모델이다.

 

2. 연습문제 정리

  • 요구사항 명세서는 계약 조건으로 기능하므로 고객과 개발자 모두 상세히 검토해야 한다.