소프트웨어공학_0325_이론 및 퀴즈

지원·2025년 3월 25일
0

소프트웨어공학

목록 보기
3/11
post-thumbnail

요구사항 분석, 정의 및 검증

많은 오류가 발생할 수 있는 단계 => 요구분석 단계

요구 분석 작업
1. 도메인 분석
2. 요구 추출
3. 요구 분석 및 정의(명세화)
4. 요구 확인

도메인

요구의 배경,
소프트웨어를 사용할 것으로
예상되는 고객이 말하는 분야의 비즈니스나 기술

도메인 분석 3단계 접근법

  1. 도메인 개념 찾기
  • 해당 분야의 핵심 개념과 용어를 파악
  1. 도메인 사전 작성
  • 개념과 용어를 체계적으로 정의
  1. 비지니스 규칙 정리
  • 규칙과 제약사항을 정리, 업무 로직을 문서화

요구 추출

요구사항 수집 기법

  1. 대면 수집 방법
  2. 비대면 수집 방법
  3. 시나리오 기반 방법

요구추출

  • 요구에 대한 정보 출처 파악
  • 요구에 대한 정보 취합
  • 요구의 제한 사항의 정리(수집된 정보를 구조화, 우선순위 결정)

요구 정보 출처의 다양성

  • 고객
  • 도메인 전문가(비지니스 도메인에 대한 전문 지식을 가진 사람들)
  • 이해당사자(시스템 운용으로 영향을 받는 모든 사람들)
  • 사용자(시스템을 직접 사용하는 사람들)
  • 역공학(기본 시스템을 분석하여 요구사항을 추출)

요구 추출의 다양한 관점

  • 상호작용 관점
    -- 정보를 교환하는 입장에서 바라보는 관점
  • 간접 관점
    -- 직접적으로 참여하지는 않지만 영향을 미치는 관계자의 관점
  • 도메인 관점
    -- 응용 영역의 특징과 제약사항에 관한 관점

대면 수집 방법: 인터뷰

인터뷰 질문 작성 지침

  • 개방형 질문
  • 폐쇄형 질문
  • 상황 질문
  • 우선순위 질문
    질문은 명확하고 중립적이여야하며, 응답자의 의견을 유도하지 않아여한다. 전문 용어나 약어 사용 최소화

대면 수집 방법: JAD 세션

JAD(Joint Application Development)- 브레인스토밍

  1. 참석자를 선정한다.
  2. JAD 세션에 대한 전반적인 사항을 설계한다.
  3. JAD 세션을 준비한다.
  4. 세션 종료 후, 후속 조치를 한다.

비대면 수집 방법

설문지를 활용한 요구사항 수집

효과적인 설문지 설계 방법

  • 무기명 설문의 가치
  • 모든 질문에 고유번호 부여
  • 사전 테스트 실시
  • 편향된 질문 형식 금지
  • 전문적인 약어 사용 자제

요구사항 분석 및 명세화

요구사항의 특징

정의
소프트웨어 시스템이 수행해야 할 것과 있어야 할 특성을 기술한 문장

  • 제안된 시스템이 무엇을 하는가를 나타낸 문장으로 고객의 문제가 적절히 해결되기 위하여 관련자들이 동의한 것

중요성
개발 수명주기에서 가장 중요한 요소, 소프트웨어 개발의 기준이 됨

이해관계자
다양한 이해관계자로부터 도출되며, 소프트웨어가 무엇을 해야하는가를 표현

위험성
요구사항의 문제점을 늦게 발견하면 수정에 많은 비용이 발생

변화가능성
고객과 개발자간 의사소통의 수단으로 분석 과정과 설계 과정을 가지며 지속적으로 변화

요구사항의 분류: 기능

시스템 인터렉션
시스템과 외부 요소들 간의 상호 작용

시스템 반응
외부 데이터나 명령에 대한 시스템 반응

기능 예시
Feature, 자료, 입출력, 사용자 관련 기능

독립적 구현
구현 기술과 독립적인 문제 해결 명세

요구사항의 분류: 비기능

  • 운영 요구사항
  • 자원 요구사항
  • 성능 요구사항
  • 보안 요구사항
  • 문화적/정책적 요구사항

요구사항 정의 품질의 중요성

요구사항 정의 시 나타나는 치명적 과실들

  • 노이즈 발생
    -- 관련 없는 정보나 모호한 표현 존재
  • 침묵 발생
    -- 중요 사항이 누락되는 경우
  • 과도한 스펙 명세
    -- 결정되지 않은 많은 구현 사항 포함
  • 모순 발생
    -- 전후 내용 간 일관성 부족
  • 모호성
    -- 여러 의미로 해석 가능한 표현
  • 전방 참조
    -- 아직 정의하지않은 사항을 앞서 참조
  • 사실이 아닌 기대사항
    -- 막연한 추측과 기대에 근거하는 경우

요구사항 정의 문서의 품질 요소

정확성
이해관계자가 원하는 모든 요구가 정의되었는지 확인

명확성
모호성이 없어야 함

완전성
시스템이 제공하는 모든 것이 요구사항 정의서에 포함되어야 함

요구사항 정의 품질: 일관성과 추적성

일관성을 갖춘 문서
현재 문서의 내용이 이전 문서의 내용과 충돌하지 않아야 함

추적성을 갖춘 문서
하나의 요구사항이 분석, 설계, 구현 과정을 거치면서 어떻게 변하는지 확인할 수 있어야 함

어떻게 처리할지 결정할 때 중요한 역할을 함

추적성 매트릭스의 활용

추적성 매트릭스
요구사항이 설계, 구현, 테스트 단계에서 어떻게 반영되는지 추적하는 도구

SRS : 소프트웨어 요구 사양서
RDD : 요구사항 정의서
FR : 기능 요구사항
NF : 비기능 요구사항
NR : 필요없음
UC : 유즈케이스
N/A : 해당 없음

요구사항 정의서 작성 가이드라인

고유 식별자 부여
모든 요구사항에 유일한 식별자를 부여하여 추적성을 확보

명확한 문장 구조

단문 작성

우선순위 부여

체계적 그룹화

요구 품질 평가 기준

원자적 속성
단일 목적가져야 함

완전성
요구사항이 정보의 모든 것을 포함

비모호성과 통일성
명확하지 않은 표현이나 중복된 내용이 없어야 함

추적성
쉽게 추적할 수 있도록 고유번호 부여해야 함

우선순위화
요구사항의 중요도에 따라 순위를 정해야 함

테스트 가능화
요구사항이 검증 가능하도록 기술되어야 함

요구 문서화의 계층적 구조

요구 정의

  • 요구 명세서
    -- 세부 요구사항
    --- 요구사항 모델

요구 검증

이해용이성
요구명세서를 읽을 때 요구의 의미를 이해할 수 있는가?

중복
필요 없이 중복된 부분이 없는가?

완전성
요구를 기술하는데 빠진 정보가 없는가?

일관성
요구사항이 서로 모순되지 않는가?

모호성
모호함없이 모든 참여자들에게 명확하게 이해될 수 있는가?

검증 가능성
사용자의 요구를 만족하는가?

추적 가능성
시스템 요구사항과 시스템 설계문서 및 구현과 매핑되어 추적할 수 있는가?

4주차 퀴즈나왔던 것들

사용자의 실제 업무 환경을 직접 분석하는 방법 => 관찰

요구사항 정의서가 중요한 이유
=> 고객과 개발자가 동일한 이해를 갖도록 하기 위해

도메인의 분석의 주요 목표
=> 문제의 배경과 성격을 이해하는 것

요구사항 검증 시 사용되는 대표적인 방법
=> 프로토타입 개발

요구사항 정의서 작성 시 고려해야 할 요소
요구사항의 변경 가능성, 완전성, 명확성

JAD 세션의 주요 특징
=> 고객과 개발팀이 협업하여 요구사항을 도출

요구사항 수집 시 문헌조사의 주요 목적은?
=> 기존 시스템을 참고하여 요구사항을 도출하기 위해

소프트웨어 개발 과정에서 요구사항 검토의 주요 목적
=> 요구사항의 오류를 초기에 발견하기 위해

요구사항 변경을 효과적으로 관리하기 위한 방법
=> 변경 요청을 분석하고 추적성을 유지하는 것

비기능적 요구사항이 중요한 이유
=> 시스템의 성능과 품질을 결정하기 때문

요구사항 검증을 통해 얻을 수 있는 주요 이점
=> 개발 후 수정 비용 절감

요구사항 분석에서 가장 중요한 요소는?
=> 고객의 요구를 명확히 이해하는 것

0개의 댓글