Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

공부해보잠

요구사항 정의 본문

자격증/정보처리

요구사항 정의

heejk 2025. 1. 26. 21:49
요구사항의 개념 및 특징

요구사항의 개념
소프트웨어가 해결해야 할 문제와 제공해야 할 서비스, 그리고 시스템 운영에 필요한 제약조건 등을 기술한 설명입니다.

  • 개발 대상 소프트웨어가 무엇을 해야 하는지 어떤 제약사항을 충족해야 하는지를 정의.

요구사항의 특징

 

이해관계자 간 의사소통

  • 요구사항은 소프트웨어 전반적인 내용을 확인할 수 있는 기준으로, 개발자, 고객, 사용자 등 이해관계자 간 의사소통을 원활하게 합니다.

기반 자료 제공

  • 요구사항은 이후 설계, 구현, 테스트 등 소프트웨어 개발 과정의 모든 단계의 기반이 됩니다.

목표 및 계획 수립

  • 정확하게 정의된 요구사항을 바탕으로 개발 목표와 계획을 체계적으로 수립할 수 있습니다.

품질에 직접적 영향

  • 잘 정의된 요구사항은 소프트웨어의 품질, 유지보수성, 사용자 만족도에 큰 영향을 미칩니다.

요구사항의 유형

일반적으로 기술하는 내용에 따라 기능 요구사항(Functional Requirements)과 비기능 요구사항(Non-Functional Requirements)으로 구분하며, 기술 관점과 대상의 범위에 따라 시스템 요구사항(System Requirements)과 사용자 요구사항(User Requirements)으로 나뉩니다.

기능 요구사항 소프트웨어가 제공해야 하는 서비스나 기능에 대한 요구사항. - 사용자는 회원가입 및 로그인을 할 수 있어야 한다. 
- 결제 시스템은 신용카드와 PayPal 결제를 지원해야 한다.
비기능 요구사항 소프트웨어의 품질, 성능, 보안, 테스트 등과 같은 기능 외적인 특성 및 동작 환경에 대한 요구사항. - 시스템은 초당 10,000건의 트랜잭션을 처리할 수 있어야 한다. 
- 사용자 데이터는 SHA-256으로 암호화되어야 한다.
시스템 요구사항 시스템 전체의 성능, 하드웨어, 네트워크 환경 등 기술적 요구사항. - 서버는 16GB RAM, 8코어 CPU를 갖추어야 한다. 
- 데이터베이스는 MySQL 8.0 이상을 사용해야 한다.
사용자 요구사항 사용자 관점에서 시스템이 제공해야 하는 요구사항. - 사용자는 직관적인 대시보드를 통해 실시간 데이터를 조회할 수 있어야 한다. 
- 모바일과 웹 환경에서 모두 사용 가능해야 한다.

 

 

비기능 요구사항 세부 항목 및 부가설명

 

시스템 장비 구성 요구사항: 실행 환경을 위해 필요한 하드웨어와 네트워크 장비의 사양.

  • 예: CPU, 메모리, 저장 장치, 네트워크 속도.

성능 요구사항: 처리 속도, 응답 시간, 처리량 등 시스템의 성능 측정 기준.

  • 예: 1초 이내 응답 시간 보장.

인터페이스 요구사항: UI/UX 설계 및 시스템 간 데이터 전송 방식을 규정.

  • 예: RESTful API 사용.

데이터 요구사항: 데이터의 저장, 백업, 복구, 삭제 정책.

  • 예: 데이터는 매일 자정 자동 백업.

보안 요구사항: 암호화, 인증, 접근 제어를 통해 데이터와 시스템 보호.

  • 예: 사용자 비밀번호는 SHA-256으로 암호화.

품질 요구사항: 시스템의 전반적인 품질 속성을 정의.

  • 가용성: 시스템이 정상적으로 운영되는 비율.
  • (예: 99.9% 가용성 보장).
  • 정합성: 데이터가 일관되고 정확하게 유지되는 정도. (예: 데이터 동기화 정확도 100%).
  • 상호호환성: 다른 시스템과 상호작용이 가능한 정도. (예: 외부 결제 API 연동).
  • 대응성: 사용자 요구나 환경 변화에 대한 대응 속도. (예: 1일 내 기능 수정 반영).
  • 신뢰성: 장애 발생 없이 안정적으로 운영되는 정도.(예: 시스템 장애율 0.01% 이하).
  • 유지관리성: 시스템 유지보수 및 관리의 용이성. (예: 신규 개발자 1주일 내 적응 가능).
  • 이식성: 다른 환경으로의 전환 용이성. (예: Linux와 Windows 모두 지원).
  • 확장성: 증가하는 사용자나 데이터를 처리할 수 있는 능력.(예: 서버 확장 시 2배 성능 증가).
  • 보안성: 데이터와 시스템의 보호 수준. (예: OWASP 보안 가이드라인 준수).

테스트 요구사항: 테스트 가능성과 관련된 정의.

  • 예: 테스트 자동화 지원.

프로젝트 관리 요구사항: 일정, 비용, 인력 계획.

  • 예: 6개월 내 개발 완료.

프로젝트 지원 요구사항: 운영 및 유지보수와 관련된 지원 계획.

  • 예: 1년간 무상 유지보수 제공.

요구사항 개발 프로세스

개발 대상에 대한 요구사항을 체계적으로 도출하고 이를 분석한 후, 분석 결과를 명세서(Specification Document)에 정리한 다음, 이를 확인 및 검증하는 일련의 구조화된 활동입니다.

 

특징:

  • 요구사항 개발 프로세스 시작 전, 타당성 조사(Feasibility Study)가 선행되어야 합니다.
  • 타당성 조사는 비즈니스 목적 부합 여부, 예산 적정성 등을 검토한 보고서를 작성합니다.
  • 요구사항 개발은 요구공학(Requirement Engineering)의 한 요소입니다.

요구사항 개발의 주요 단계

 

도출(Elicitation)

  • 사용자 및 이해관계자로부터 요구사항을 수집.
  • 주요 방법: 인터뷰, 설문조사, 워크숍 등.

분석(Analysis)

  • 수집된 요구사항을 검토하여 중복, 충돌, 모호성을 해결.
  • 우선순위를 부여하고 타당성을 검토.

명세(Specification)

  • 정제된 요구사항을 문서화하여 명확하고 일관되게 표현.
  • 결과물을 명세서(Specification Document)에 기록.

확인(Validation)

  • 요구사항이 사용자 기대를 충족하며 오류가 없는지 검토 및 검증.
  • 사용자와 최종 확인 작업을 수행.

요구사항 개발 프로세스


요구공학(Requirement Engineering)

무엇을 개발해야 하는지 요구사항을 정의하고, 이를 분석, 명세, 검증 및 관리하는 프로세스를 연구하는 학문입니다.

 

목적:
요구사항의 변경 원인을 이해하고, 요구사항 관리 프로세스를 개선함으로써 소프트웨어 프로젝트 실패 가능성을 최소화합니다.

 

특징:

  • 소프트웨어가 점점 복잡하고 대형화됨에 따라 사용자 요구사항도 복잡해지고 잦은 변경이 발생.
  • 요구사항의 불명확하거나 잘못된 관리는 프로젝트 실패의 주요 원인 중 하나.
  • 요구사항 관리의 품질을 개선하여 문제 발생 가능성을 최소화하고 프로젝트 성공률을 높임.

요약:
요구공학은 요구사항을 체계적으로 정의, 관리하며 소프트웨어 개발의 신뢰성과 품질을 향상시키는 데 중점을 둡니다.

.

요구공학


요구사항 도출(Requirement Elicitation, 요구사항 수집)

시스템, 사용자, 및 관련된 이해관계자들 간의 의견을 교환하여 요구사항을 식별하고 이해하는 과정입니다. 소프트웨어가 해결해야 할 문제를 정의하는 첫 번째 단계입니다.

 

특징:

  • 소프트웨어 개발 생명 주기(SDLC) 동안 반복적으로 이루어짐.
  • 개발자와 고객 간 관계가 형성되고, 이해관계자(Stakeholder)가 식별됨.
  • 다양한 이해관계자 간의 효율적인 의사소통이 성공적인 요구사항 도출의 핵심.

주요 기법:

  • 청취와 인터뷰: 고객과의 대화를 통해 요구사항을 직접 수집.
  • 설문: 대규모 사용자 그룹에게 표준화된 질문 제공.
  • 브레인스토밍: 3인이상이 자유롭게 의견을 교환하며 다양한 아이디어를 창의적으로 도출.
  • 워크샵: 이해관계자들과 집중 토론을 통해 요구사항 정의.
  • 프로토타이핑: 시제품을 만들어 요구사항을 시각화하고 검증.
  • 유스케이스: 사용자 관점에서 시스템 사용 시나리오를 정의.

요구사항 분석(Requirement Analysis)

개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정입니다.

 

특징:

  • 사용자 요구사항의 타당성을 조사하고 비용과 일정에 대한 제약을 설정
  • 내용이 중복되거나 하나로 통합되어야 하는 등 서로 상충되는 요구사항이 있으면 이를 중재하는 과정
  • 도출된 요구사항들을 토대로 소프트웨어 범위를 파악
  • 도출된 요구사항들을 토대로 소프트웨어와 주변 환경이 상호 작용하는 방법을 이해
  • 요구사항 분석에는 자료흐름도(DFD), 자료사전(DD) 등의 도구가 사용된다.

부가설명 :

  • 자료흐름도(DFD: Data Flow Diagram): 시스템 내에서 데이터가 흐르고 변환되는 과정을 시각적으로 표현하며, 데이터가 프로세스와 저장소 사이에서 어떻게 이동하는지 설명.
  • 자료사전(DD: Data Dictionary): 자료흐름도에 사용된 데이터와 그 속성을 정의한 문서로, 데이터의 명확한 정의와 일관성 유지를 지원.

요구사항 명세(Requirement Specification)
분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 과정을 의미합니다.

특징 :

  • 기능 요구사항: 빠짐없이 완전하고 명확하게 기술해야 함.
  • 비기능 요구사항: 필요한 부분만 명확하게 기술해야 함.
  • 요구사항은 사용자가 이해하기 쉬우며, 개발자가 효과적으로 설계할 수 있도록 작성되어야 함.
  • 설계 과정에서 잘못된 부분이 발견될 경우, 그 내용을 요구사항 정의서에서 추적할 수 있어야 함.
  • 구체적인 명세 작성을 위해 **소단위 명세서(Mini-Spec)**가 사용될 수 있음.

부가설명 :

  • 소단위 명세서(Mini-Spec): 특정 기능이나 요구사항에 대해 상세하게 기술한 문서로, 설계와 구현 과정에서 참조 가능하도록 작성.

요구사항 확인(Requirement Validation, 요구사항 검증)

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

 

특징 :

  • 분석가가 요구사항을 정확하게 이해하고 명세서를 작성했는지 검증(Validation) 필요.
  • 요구사항이 실제 요구를 반영하는지, 서로 상충되는 요구사항은 없는지 점검.
  • 개발 완료 후 문제가 발견되면 재작업 비용이 발생하므로 요구사항 검증은 매우 중요.
  • 요구사항 명세서의 내용이 이해하기 쉬운지, 일관성 있는지, 회사 기준에 맞는지, 누락된 기능은 없는지 검토.
  • 요구사항 문서는 이해관계자들이 검토하여 확인.
  • 요구사항 검증은 문제를 사전에 발견하는 데 유용하지만, 모든 문제를 확인할 수는 없음.
  • 요구사항 관리 도구를 이용하여 정의 문서들에 대해 형상 관리(Configuration Management) 수행.

부가설명 :

  • 형상 관리(Configuration Management):
    • 소프트웨어 개발 과정에서 생성되는 산출물(요구사항, 설계 문서, 소스 코드 등)의 변경 사항을 체계적으로 관리하는 활동.
    • 변경 이력을 추적하고, 모든 개발 산출물이 최신 상태로 유지되도록 보장.
    • 대표적인 형상 관리 도구: Git, SVN, ClearCase 등.

소프트웨어 요구사항 명세서 / 요구사항 명세 기법

소프트웨어 요구사항 명세서(SRS : Software Requriment Specification)

업계 표준 용어로 소프트웨어가 반드시 제공해야 하는 기능, 특징, 제약조건 등을 명시합니다.

 

특징:

  • 시스템의 모든 동작뿐만 아니라 성능, 보안, 사용성 등과 같은 품질 요건도 기술되어야 함.
  • 프로젝트의 유형에 맞게 양식을 만들어 사용.
  • 시스템 기능, 데이터, 외부 인터페이스, 품질 요구사항 등을 개별 요구사항 명세서에 작성.

요구사항 명세 기법

요구사항 명세 기법은 정형 명세 기법 비정형 명세 기법으로 나뉩니다.

구분 정형 명세 기법 비정형 명세 기법
기반 수학적 원리 기반, 모델 기반 상태/기능/객체 중심
작성 방법 수학적 기호와 정형화된 표기법 사용 자연어, 도형, 다이어그램 등을 활용
특징 - 요구사항을 정확하고 간결하게 표현
- 요구사항 간 일관성 검증 가능
- 추상적이고 사용자 이해도가 낮음
- 자연어와 시각적 표현을 사용해 의사소통 용이
- 작성 결과에 일관성이 떨어질 수 있음
- 해석이 달라질 가능성
장점 - 수학적 기반으로 정확성과 검증 가능
- 복잡한 시스템의 논리적 표현에 적합
- 사용자와의 소통이 쉽고 요구사항의 빠른 이해 가능
- 시각적 도구를 활용하여 직관적 표현 가능
단점 - 높은 기술적 요구와 학습 곡선
- 사용자 및 이해관계자가 이해하기 어려움
- 요구사항 간 모호성과 중복 발생 가능
- 검증 과정에서 오류 발견 어려움
종류 VDM, Z, Petri-net, CSP 등 FSM(Finite State Machine), Decision Table,
ER 모델링, State Chart(SADT) 등

 

출저 및 참고

정보처리 산업기사 기본서(시나공)

728x90

'자격증 > 정보처리' 카테고리의 다른 글

요구사항 분석 CASE와 HIPO  (0) 2025.01.27
요구사항 분석  (0) 2025.01.27
XP(eXterme Programming)기법  (0) 2025.01.26
스크럼(Scrum) 기법  (0) 2025.01.26
소프트웨어 개발 방법론  (0) 2025.01.26