본문 바로가기

정보처리기사

(정보처리기사 실기 정리) 1. 요구사항 확인 - (9) 요구사항 정의

반응형

 

정보처리기사 실기대비 단원별 정리입니다.

정보처리기사 게시판에 들어가셔서 공부하세요. 화이팅

 

 

 

 

 

 

 

요구사항 정의: 정리 및 개요

소프트웨어 개발에서 요구사항 정의는 사용자가 필요로 하는 서비스를 명확히 하고, 이를 제공하기 위한 시스템의 기준을 수립하는 중요한 단계입니다. 이를 통해 개발자와 이해관계자 간의 소통을 원활히 하고, 개발 과정에서의 오류를 최소화할 수 있습니다.


 

 

 

 

 

1. 요구사항의 개념

정의

  • 소프트웨어가 해결해야 할 문제와 제공해야 할 서비스에 대한 명확한 설명.
  • 시스템 개발, 유지보수 과정에서 기준과 근거로 사용됨.
  • 운영 및 서비스 제공을 위한 제약조건과 정상적인 운영을 위한 필수 요소를 포함.

 

 

 

 

 


2. 요구사항의 종류

요구사항은 크게 네 가지로 분류됩니다.

(1) 기능 요구사항 (Functional Requirements)

  • 시스템이 "무엇을" 수행해야 하는지와 관련된 구체적 요구사항.
  • 주요 내용:
    1. 시스템이 제공해야 할 기능 (예: 회원 로그인, 데이터 저장 등).
    2. 입력과 출력의 형태 및 조건.
    3. 데이터 처리와 관련된 연산 또는 규칙.
    4. 사용자가 시스템을 통해 원하는 결과를 얻는 과정.
  • 예시:
    • "사용자는 회원ID와 비밀번호를 입력하여 로그인할 수 있어야 한다."
    • "데이터를 PDF 형식으로 출력할 수 있어야 한다."

(2) 비기능 요구사항 (Non-functional Requirements)

  • 시스템의 품질과 제약사항에 관련된 요구사항.
  • 주요 내용:
    1. 성능 요구사항: 처리 속도, 응답 시간 등.
    2. 품질 요구사항: 가용성, 정합성, 확장성, 보안성 등.
    3. 인터페이스 요구사항: 다른 시스템과의 연동 방식.
    4. 데이터 무결성과 보안 요건.
    5. 시스템 유지보수 및 관리.
  • 예시:
    • "시스템은 하루 24시간, 연중무휴로 운영 가능해야 한다."
    • "500명의 동시 접속 사용자를 지원해야 한다."

(3) 사용자 요구사항 (User Requirements)

  • 정의: 사용자의 관점에서 시스템이 제공해야 할 요구사항.
  • 특징:
    1. 기술 용어를 배제하고, 사용자가 이해하기 쉽게 서술.
    2. 간결하고 쉬운 표현을 사용.
  • 예시:
    • "사용자는 상품을 카테고리별로 검색할 수 있어야 한다."
    • "모바일 환경에서도 서비스가 제공되어야 한다."

(4) 시스템 요구사항 (System Requirements)

  • 정의: 시스템 개발자 관점에서 기술적, 전문적 용어로 작성된 요구사항.
  • 특징:
    1. 시스템 내부 구성과 다른 시스템과의 연계를 포함.
    2. 기술적 제약사항, 구현 방식, 하드웨어와 소프트웨어의 구성을 설명.
  • 예시:
    • "시스템은 Java 17 이상과 호환되어야 한다."
    • "데이터베이스는 PostgreSQL을 사용하며, 이중화 구성을 지원해야 한다."

 

 

 

 

 

3. 기능 요구사항과 비기능 요구사항 비교

구분기능 요구사항비기능 요구사항
목적 시스템이 수행해야 할 동작 정의 시스템 성능, 품질, 제한 조건 정의
초점 "무엇을" 해야 하는지 "어떻게" 잘 수행해야 하는지
예시 "회원가입 기능을 제공한다." "시스템은 1초 이내 응답 시간을 제공해야 한다."
주요 고려 사항 기능의 정확성, 처리 규칙 시스템의 확장성, 가용성, 유지보수성

4. 요구사항 정의의 중요성

  1. 개발 방향성 제공
    • 프로젝트 목표와 개발 우선순위를 명확히 하여 방향성을 잡을 수 있음.
  2. 문제 발생 예방
    • 초기 단계에서 요구사항을 명확히 정의함으로써, 이후 발생할 수 있는 불필요한 수정 작업을 최소화.
  3. 이해관계자 간 협력 강화
    • 사용자, 개발자, 관리자 간의 공통된 이해 기반 마련.
  4. 비용 및 시간 절감
    • 요구사항 정의를 통해 개발 리소스를 효율적으로 관리하고 프로젝트 낭비를 방지.

 

 

 

 

 

5. 요구사항 정의 작성 시 주의사항

  1. 명확성과 구체성
    • 모호한 표현을 피하고, 구체적으로 작성.
  2. 검증 가능성
    • 요구사항이 테스트 및 검증 가능한 형태로 작성되어야 함.
  3. 추적 가능성
    • 모든 요구사항은 변경 관리 및 추적이 가능하도록 관리.
  4. 이해 용이성
    • 사용자는 쉽게 이해하고, 개발자는 정확히 구현할 수 있도록 작성.

 

 

 

 

 

결론

요구사항 정의는 소프트웨어 개발의 성공적인 시작을 보장하는 핵심 단계입니다. 기능적, 비기능적 요구사항뿐만 아니라 사용자와 시스템의 요구를 모두 고려하여 작성해야 하며, 이를 기반으로 효과적이고 효율적인 시스템을 구축할 수 있습니다.

 
반응형