튜토리얼에도 고난과 역경이 있다.

소프트웨어공학) CH04 요구분석 본문

나의 공부/Computer Science

소프트웨어공학) CH04 요구분석

내가 Nega 2021. 3. 31. 21:47
728x90

요구 사항과 요구 분석 명세서의 이해

  • 소프트웨어 개발의 목적
    • 개발된 소프트웨어의 고객 만족
  • 고객 만족을 위한 특성
    • 적시성 : 빠른 출시를 통한 시장의 점유
    • 유연성 : 다양한 환경에서의 적응성
    • 통합 : 기존 시스템과의 쉬운 통합

요구사항/요구사항 분석 명세서

  • 요구사항
    • 이용자가 어떤 문제를 풀거나 목표를 달성하기 위해 필요한 조건이나 능력(사전적 의미)
    • 사용자와 개발자 간에 합의한 개발 범위에서 시스템이 제공해야 하는 기능(SW개발 의미)
      • 기능 요구사항 + 성능 관련 요구사항 (품질, 비기능 요구사항)
  • 요구 분석 명세서
    • 개발 초기에 사용자의 요구사항 (비기능 요구 사항 포함)을 추출하여 정리한 문서
    • What에만 초점, How는 고려 X

요구 분석의 이해

  • 과정
    • 사용자 요구 파악 -> SW 목표 수립 -> 모델링 -> 요구 분석 명세서
  • 요구 분석
    • 소프트웨어 요구 사항 정의를 위해 사용자의 요구 사항을 조사하고 확인하는 과정
    • 소프트웨어 개발 생명주기의 첫 단계
    • 소프트웨어 개발 성패의 열쇠
    • 과정
      • 현 상태 파악 -> 사용자 요구 파악 -> 사용자 요구 결정
  • 요구 분석의 어려움
    • 문제 영역에 대한 이해력 부족
    • 의사소통 문제
    • 계속 변하는 요구사항
    • 변경 요구에 대한 대처 방안 -> `요구사항 추적성` 중요
      • 변경 사항에 대한 날짜 별, 기간 별 기록
      • 변경이 미치는 영향에 대해 사전 분석 필요
    • 애매모호한 요구사항
    • 분석가의 역할
    • 사용자와 개발자의 마찰
  • 요구사항 수집 방법 `ISO 29148`
    • 자료 수집
      • 문서 수집( 업무 메뉴얼, 업무 흐름도 등) : 전반적인 업무 흐름 파악 및 이해
      • 현행 시스템 분석 : 입력화면 및 출력물
    • 인터뷰
    • 설문 조사
    • 브레인 스토밍을 통한 구조적 워크샵
    • 기술 문서 검토
    • 조직적 분석기술 (SWOT분석, 제품 포트폴리오)
    • ..etc

요구 분석의 절차와 요구 사항 종류

  • 절차
    • 자료수집
      • 현행 시스템 파악, 실무 담당자와 인터뷰, 현재 사용하는 서류 검토
    • 요구사항 도출
      • 수집한 자료 정리 및 분류 -> 개발에 반영할 요구사항 검출
    • 문서화
      • 요구 분석 명세서 작성
    • 검증
      • 요구 분석 명세서 검토 -> 모순 사항, 빠드린 사항 등 점검
  • 종류
    • 요구사항 구별1
      • 기능적 요구사항
      • 비기능적 요구사항
        • 품질
        • 제약 사항
    • 요구사항 구별2
      • 사용자 요구사항
      • 시스템 요구사항 <br/>

구별 1. 기능적 요구사항과 비 기능적 요구사항

비기능적 요구사항

  • 수행 가능한 환경
  • 품질
    • 품질 특성
    • ISO 9126 / ISO 25010 ![Alt](Ch04 요구 분석 15-16-47.png) <br/>
    • ISO 25000 품질특성, 시험유형 ![Alt](https://i.loli.net/2021/01/05/tvoMQnhz7fySB9O.jpg)
      <br/>
    • 신뢰성
      • 신뢰
        • 소프트웨어를 믿고 사용할 수 있는 것
        • 사용자가 주어진 시간과 환경에서 고장없이 사용할 수 있어야 한다.
      • 신뢰도
        • 장애 없이 동작하는 시간의 비율
      • 신뢰도 측정
        • MTBF = MTTF + MTTR
          • MTBF : 고장 간 평균 시간 (Mean Time Between Failure)
          • MTTF : 평균 실패 시간 (Mean Time To Failure)
          • MTTR : 평균 수리 시간 (Mean Time To Repair)
        • 이용가능성 Availability
          • MTTF/(MTTF + MTTR) * 100%
          • 주어진 시점에서 시점에서 프로그램이 요구에 따라 작동되고 있을 가능성
    • 성능
    • 보안성
      • 참고
        • CWE (Common Weakness Enumeration),
        • OWASP Top 10
        • 시큐어 코딩 가이드
    • 안전성
    • 사용성
      • 소프트웨어를 상용할 때 혼란스러워하거나 사용하는 순간에 고민하지 않게 하는 편의성
      • ex) 주민번호 입력할 때 -를 넣어야 할지 말지
      • ex) 의미가 같은 단어 두 개를 혼용하여 혼란스럽게 하진 않은지
  • 제약 사항
    • ex)
      • 자바 언어를 사용해 개발한다.
      • CBD 개발 방법론을 적용해야 한다.
      • 레드헷 리눅스 엔터프라이즈 버전에서 실행해야 한다.

기능적 요구사항

구별2. 사용자 요구사항과 시스템 요구사항

사용자 요구사항

  • 사용자를 위한 도면
    • 사용자가 알고 싶어하는 내용을 중심으로 작성
    • `사용자 요구 분석 명세서`
      • 특징
        • 사용자와 대화 시 거부감을 줄이고 충분히 이해할 수 있도록 쉽게 작성
        • 다이어그램 사용
      • 작성 방법
        • 유사한 프로젝트 경험을 가진 분석가 선정
        • 표준 양식 사용
    • `요구사항 정의서`
  • 시공자를 위한 도면
    • 각 분야의 기술자가 작업하는데 필요한 도면
    • `시스템 요구 분석 명세서`
      • 특징
        • 시스템 요구 사항을 설계하는데 도움이 되도록 기술적 용어나 전문적 표현 사용하여 작성
        • 설계를 위해 사용되므로 완전하고 일관성 있게 작성
      • 사용 도구
        • 구조적 방법론의 구조적 언어
        • 유스케이스 다이어그램
  • 사용자 요구 분석 명세서와 시스템 요구 분석 명세서는 일관성이 매우 중요!

시스템 요구사항

<br/br/>

요구 사항의 표현

4장 33pg~

요구사항의 문서화

반응형