와이유스토리

[소프트웨어공학] 4. 요구공학(Requirements Engineering) 본문

컴퓨터공학/소프트웨어공학

[소프트웨어공학] 4. 요구공학(Requirements Engineering)

유(YOO) 2022. 10. 1. 14:11

1. 요구사항

소프트웨어가 문제를 해결하기 위해 제공하는 서비스 도는 정상적으로 운영되는데 필요한 제약조건

2. 요구공학

요구사항을 도출, 분석, 명세, 확인하는 구조화된 활동이다. 요구사항 도출이 어렵고, 요구사항과 기대의 차이가 발생하거나, 요구사항 변화관리가 어렵기 때문에 요구공학을 통해 이를 해결한다. 요구공학 프로세스는 개발 단계와 관리 단계로 구성된다.

 

1) 개발 단계(Requirements Development)

  • 도출(Elicitation)
  • 분석(Analysis)
  • 명세(Specification)
  • 검증(Verification and Validation)

2) 관리 단계(Requirements Management) : 모든 요구사항 개발 프로세스의 주요 이슈를 관리한다.

  • 협상(Negotiation)
  • 기준선 설정(Baseline)
  • 변경관리(Change Control)
  • 추적(Traceability)

3.  요구사항 개발 단계

1) 요구사항 도출

시스템, 사용자, 이해관계자(Stakeholder)가 서로 의견 교환하여 요구사항이 무엇인지, 어떻게 수집할지 식별하고 이해하는 과정

 

(1) 요구사항 소스

(2) 요구사항 도출 기법

  • 인터뷰 : 이해 관계자와 대화
  • 설문조사 : 설문지, 여론조사
  • 브레인스토밍 : 3인 이상 자유롭게 의견 교환 및 독창적인 아이디어 산출하는 방법
  • 델파이 기법 : 다양한 전문가의 지식과 의견 수렴하여 문제 해결 및 미래 예측
  • 역할극 : 여러 사람이 각자 맡은 역할 연기
  • 워크샵 : 단기간에 다양하고 전문적인 정보 수집 및 공유
  • 스토리보드
  • 프로토타이핑 : 프로토타입을 통해 효과적으로 요구 분석을 수행하며 명세서 산출하는 방법
  • 유스케이스 : 사용자의 요구사항을 기능 단위로 표현하는 것

2) 요구사항 분석

사용자의 요구사항 중 모호하거나 이해되지 않는 부분 발견 및 걸러내는 과정

사용자 요구사항의 타당성 조사, 비용과 일정 제약 설정, 상충되는 요구사항 해결

 

(1) 요구사항 분류

1. 기술 관점과 대상의 범위에 따라

1) 사용자 요구사항

사용자 관점에서 본 시스템이 제공해야 할 요구사항

시스템을 통하여 달성하는 '무엇'을 설명해야 한다.

 

2) 시스템 요구사항(소프트웨어 요구사항)

개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 될 요구사항.

기술하는 내용에 따라 기능 요구사항, 비기능 요구사항으로 분류할 수 있다.

 

2. 기술하는 내용에 따라

1) 기능 요구사항

시스템 기능, 입력, 출력, 저장 수행 등 시스템이 무엇을 하는지, 반드시 수행해야 하는 기능이 무엇인지에 대한 사항. 서비스에 대한 요구사항(UI)

 

2) 비기능 요구사항

시스템 장비 구성, 성능, 품질, 제약사항, 프로젝트, 인터페이스, 테스트, 데이터 요구사항, 백엔드 등이 있다.

 

(1) 시스템 제약사항

1. 제품 요구사항

  • 사용성 : 쉽게 사용할 수 있는가
  • 효율성
    • 성능 : 시스템의 자원을 효율적으로 사용하는가
    • 공간 : 메모리 최대 얼마까지 사용하는가
  • 신뢰성 : 오류없이 수행하는 시스템이 작동하는가
  • 이식성 : 다른 환경에서 프로그램이 동작하는가

2. 조직 요구사항

  • 배포 : 온라인, 오프라인 등 어떻게 배포할 것인가
  • 구현 : 어떤 방법론, 프로그래밍 언어를 사용할 것인가
  • 표준 : 표준을 따를 것인가

3. 외부 요구사항

  • 상호운용성 : 다른 소프트웨어와 어떻게 연동할 것인가
  • 윤리적 요구사항 : 나이 제한
  • 법적 요구사항
    • 사생활 : 공개 범위 선택 등 사생활 보호
    • 안전성 : 재난, 외부 침입으로부터 안전한가

(2) 품질 특성

1. 소프트웨어 품질 목표

1) 소프트웨어 운영 특성 : 정확성, 신뢰성, 효율성, 무결성, 사용 용이성

2) 소프트웨어 변경 수용 능력 : 검사 용이성, 유지보수 용이성, 유연성

3) 소프트웨어 적용 능력 : 이식성, 상호 운용성, 재사용성

 

2. 국제 제품 품질 표준

1) ISO/IEC 9126

  • 기능성(Functionality) : 요구사항을 정확하게 만족하는 기능을 제공하는가
    • 적절성/적합성, 정밀성/정확성, 상호운용성, 보안성, 호환성
  • 신뢰성(Reliability) : 요구된 기능을 정확하고 일관되게 오류없이 수행하는가
    • 성숙성, 고장허용성, 회복성
  • 사용성(Usability) : 사용자가 정확하게 이해하고 사용하는가
    • 이해성, 학습성, 운용성, 친밀성
  • 효율성(Efficiency) : 할당된 시간 동안 한정된 자원으로 얼마나 빨리 처리하는가
    • 시간 효율성, 자원 효율성
  • 유지보수성(Maintainability) : 환경의 변화에 소프트웨어를 쉽게 개선, 확장 수정할 수 있는가
    • 분석성, 변경성, 안정성, 시험성
  • 이식성(Potability) : 소프트웨어를 다른 환경에서도 쉽게 적용할 수 있는가
    • 적용성, 설치성, 대체성, 공존성

2) ISO/IEC 12119

3) ISO/IEC 14598

4) ISO/IEC 25000

2) ISO/IEC 25010 : 호환성, 보안성 강화

 

3. 국제 프로세스 품질 표준

1) ISO/IEC 9001

2) ISO/IEC 12207 : 소프트웨어 생명주기(기본, 조직, 지원 프로세스)

3) ISO/IEC 15504(SPICE) : 불완전 -> 수행 -> 관리 -> 확립 -> 예측 -> 최적화

4) CMMI

 

3. 요구사항을 만드는 주체에 따라

1) 비즈니스 요구사항

프로젝트를 추진하는 배경, 시스템 개발 효과 등 '왜'에 해당하는 정보를 포함한다.

 

(2) 개념 모델링(UML)

유스케이스 다이어그램, 데이터 흐름 모델, 상태 모델, 목표 기반 모델, 사용자 인터렉션, 객체 모델, 데이터 모델 등

 

(3) 요구사항 할당

요구사항 만족시키기 위한 구성 요소 식별

 

(4) 요구사항 협상

우선순위, 적절한 기준점 찾아 협상

 

(5) 정형 분석

구문과 의미를 갖는 정형화된 언어를 이용해 요구 사항을 수학적 기호로 표현 및 분석

 

※ 요구사항 분석 단계 기법

  • 자료흐름 지향 분석 : 자료 흐름도(DFD)와 자료 사전(DD)를 통해 분석
    • 자료 흐름도 : 프로세스, 자료 흐름, 자료 저장소, 단말
    • 자료 사전 : 자료 흐름도의 자료를 더 상세히 작성
  • 객체지향 분석 : 시스템 기능과 데이터를 함께 분석해 UML로 표준화하여 분석
    • 럼바우 분석기법

※ 요구사항 분석 기술 : 청취, 인터뷰와 질문, 분석, 중재, 관찰, 작성, 조직, 모델 작성

 

3) 요구사항 명세

완전하고 명확하게 요구사항 문서화 및 명세서 작성

(1) 요구사항 명세 기법

  • 비정형 명세 기법 : 자연어로 서술, 상태, 기능, 객체 다이어그램, FSM, DT, ERM, SADT
  • 정형 명세 기법 : 수학적 표기법으로 서술, VDM, Z, CSP, Petri-net

4) 요구사항 확인

개발 자원을 요구사항에 할당하기 전에, 요구사항 명세서가 정확하고 완전하게 작성되었는지 검토한다

(1) 요구사항 확인 기법

- 요구사항 검토

- 정형 기술 검토(TCR)

  • 동료 검토(Peer Review) : 요구사항 명세서 작성자가 설명하고, 동료들이 들으면서 결함 발견
  • 워크 스루(Walk Through) : 회의 전 명세서 미리 배포하여 사전 검토, 짧은 회의로 결함 발견
  • 인스펙션(Inspection) : 작성자 제외한 다른 전문가들이 확인하며 결함 발견

- 프로토타이핑 활용 : 견본품을 만들어 최종결과물 예측

- 인수 테스트 : 사용자 입장에서 확인

  • 알파 테스트
  • 베타 테스트

- CASE 도구 활용 : 요구사항 변경사항 추적, 분석, 관리, 표준 준수여부 확인

- 베이스라인을 통한 검증

- 요구사항 추적표(RTM)를 통한 검증

 

4.  요구사항 관리 단계

1) 요구사항 협상

2) 요구사항 기준선 설정

3) 요구사항 변경관리

4) 요구사항 확인 및 검증

Comments