요구사항

하나·2022년 4월 1일
0

CS

목록 보기
4/7
post-thumbnail

1. 요구사항

  • 현실 세계를 개선하기 위해 수많은 문제(Problem)을 만나고,
    문제를 해결하기 위해 수많은 솔루션(Solution)들이 도출되고 있음
  • Problem = Wants, Needs
  • Solution = Requirement

요구사항이란?

사용자가 문제를 해결하거나 목표를 달성하는 데 필요한 조건 또는 기능 (IEEE Std. Glossary)
• 요구사항이란 무엇이 구현되어야 하는가에 대한 명세
• 요구사항은 시스템이 어떻게 동작하여야 하는지 또는 시스템 특징이나 속성들에 대한 설명
• 요구사항은 시스템 개발 프로세스 상의 제한 사항 (Sommerville & Sawyer 1997)
• 요구사항은 설계를 선택하게 하는 모든 것 (Brain Lawrence)
• 원하는 시스템의 외부에서 관찰 가능한 특성 (Alan Davis)

2. 요구사항의 역할

프로젝트 발생원인, 프로젝트 관리 출발점, 개발 활동근간, 품질 판단 기준, 변경의 근본 원인

“소프트웨어를 구축하는데 있어서 가장 어려운 부분은 무엇을 구축할 것인지를 정확하게
판단하는 것이다. 개념적인 작업의 다른 어떤 부분도 사람, 컴퓨터, 연계되는 다른 시스템
등을 포함한 상세한 기술적인 요구사항을 결정하는 것보다 어려운 것은 없다. 이 부분이 잘
못된다면 다른 어떤 부분보다도 좋지 않은 결과를 가져오며 수정하는 것은 훨씬 더 어렵다.”
“요구사항은 작업의 우선 순위를 결정하고, 프로젝트에 필요한 노력과 자원을 예측할
수 있게 해 준다.”
“요구사항은 가정해서는 안되며, 정확한 내용을 기술하여야 한다.”

Referenced by “Frederick Brooks”

  • 요구사항과 아키텍처

제약사항, 품질, 성능, 기능요구사항 → 아키텍처

  • 요구사항과 테스트

3. 기능요구사항

  • 기능 요구사항
    ‐ 시스템에서 입력을 받아들여 처리하고 출력을 만들어 내는 기능에 관련된 요구사항

  • 비기능 요구사항 - 일반적으로 품질을 결정할 수 있는 요소들
    ‐ 기능적 요구사항 외 시스템이 가져야 하는 속성에 대한 요구사항
    ‐ 개발 프로세스, 관련 표준 등의 제약 사항도 포함

  • 기능 요구사항

소프트웨어가 무엇(What)을 해야 하는지에 대해 정의한 요구사항

  • 하나의 기능은 하나 이상의 시스템이나 컴포넌트에 의해서 제공되는 능력
  • 소프트웨어의 특성 혹은 사용자가 어떻게 (How) 작동시켜야 하는지에 대해 기술
  • 주의: 어떻게 구현 할지에 대한 고민을 하는 것이 아님

4. 비기능 요구 사항

시스템이나 소프트웨어가 무엇(What)을 얼마나(How much) 잘 해야 하는지에 대
해 정의한 요구사항
• 사용자의 만족도와 연관
• 개발에 필요한 아키텍처나 설계 등의 기술적인 제약사항들도 포함
• 품질속성(Quality Attribute), 제약사항(Constraints), 제한사항(Limitation)

  • 품질속성

여러가지 분류가 존재, ISO/IEC 9126, ISO/IEC 25010

  • Reliability
    ‐ 주어진 수행 시간 동안 정상 상태에서 오류 없이 제 기능을 수행할 수 있는 정도
    • Availability
    ‐ 전체 시간 중, 정상적인 수행이 가능한 시간 정도
  • Robustness
    ‐ 비정상적인 상태나 환경에서 시스템이 제 기능을 수행할 수 있는 정도
    • Recovery
    ‐ 기능 오류가 발생하여도 원래 기능으로 복구 가능한 정도
    • Efficiency
    ‐ 사용자 요청에 빠르고 적절하게 반응할 수 있는 정도
    ‐ 응답시간, 자원의 효율성, 처리량 등.
  • Security
    ‐ 고의적인 공격이나 침해에 대응하고 이를 방지하는 정도
    • Integrity
    ‐ 정보가 비정상적인 경로를 통해 변경되지 않았음을 보장하는 정도
  • Interoperability
    ‐ 상호 운용 정도
    • Portability
    ‐ 다른 환경에서 수행 가능한 정도
  • 제약사항

Solution constraints
‐ 구현 기술에 대한 제약
‐ Architecture mechanism, implementation technique 등의 engineering decision
• Boundary constraints
‐ 개발되는 시스템의 외부 요건이나 내부 인터페이스에 의해 시스템의 기능이나 비기능
에 영향

Resource
‐ 비용, 예산, 일정 등에 의한 제약 사항
• Standards
‐ 산업 표준에 의한 제약 사항
• Cultural & Political
‐ 문화나 정치에 의한 제약사항
• Regulations
‐ 법률이나 사규에 의한 제약사항

Company & System Vision
‐ 회사 및 시스템의 비전
• Market
‐ 출시하고자 하는 마켓의 제약사항(Time-to-Market, etc.)
• Competitor
‐ 경쟁 업체의 동향 및 특허 등에 의한 제약사항

참고 : https://www.codepresso.kr/ 'SW공학기초' 강의

0개의 댓글