요구사항은 중요한듯

심지혜·2024년 3월 21일
0

소프트웨어 공학

목록 보기
1/5

요구사항 공학이 중요한 이유

  • 요구사항 공학: 참여자들로 하여금 개발되는 소프트웨어 제품을 전체적으로 파악하도록 하여 의사 소통 시간을 절약하게 해 주는 것
  • 상세한 요구사항이 있어야만 산정이 가능하고, 이를 기반으로 계획을 세울 수 있기 때문~

요구사항 엔지니어링

고객이 시스템에 요구하는 서비스가 무엇인지 확립하고 시스템을 개발하고 운영하는 동안 충족해야하는 제약사항(constraint)이 무엇인가를 정립하는 과정.

실질적인 개발 과정에서 가장 먼저 진행되는 작업이다. 이 작업의 결과를 바탕으로 이후의 설계(design), 구현(implementation), 테스트(test)가 진행되기 때문에 굉장히 중요한 단계라고 볼 수 있다.

시스템에 대한 요구사항을 완전하게(complete), 그리고 요구사항 간의 충돌이 없도록 일관성 있게(consistent) 정립하는 것을 추구한다.

요구사항의 종류

일반적으로 기능적, 비기능적 요구사항으로 구분하며, 기술 관점과 대상 범위에 따라 시스템 요구사항, 사용자 요구사항으로 나뉜다.

  1. 기능적 요구사항
    시스템이 무엇을 하는지, 어떤 기능을 하는지에 대한 사항이며 시스템이 반드시 수행해야 하는 기능이다.
    ex) 사용자는 회원ID와 비밀번호를 입력하여 로그인할 수 있다.
  2. 비기능적 요구사항
    성능, 인터페이스, 장비 구성 등 대부분 품질이나 제약사항과 관련이 있는 요구사항들이다.
    ex) 시스템은 1년 365일, 하루 24시간 운용이 가능해야 한다.
  3. 사용자 요구사항
    사용자 관점에서 본 시스템이 제공해야 할 요구사항. 사용자를 위한 것이므로 친숙한 표현과 이해하기 쉽게 작성한다.
  4. 시스템 요구사항
    개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항. 개발자 입장으로 쓰여진 것이기 때문에 전문적이고 기술적인 용어로 구성되어 있다~

requirements engineering process

(요구사항 엔지니어링 프로세스 라는 뜻)

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

FAST guidelines

소프트웨어 개발 프로젝트에서 요구사항을 분석하고 시스템의 기능을 정의하는 데 사용되는 기법이다. 문제에 대해 객관적으로 생각하고 프로젝트의 범위를 식별함으로써 복잡한 시스템을 보다 쉽게 이해하고 관리할 수 있게 된다.

적용 방법

  1. 프로젝트에서 식별된 기능으로 시작한다.
  2. "How" 경로를 따라 기능이 어떻게 달성되는지 물어보고, 답변을 활동 동사와 측정 가능한 명사의 형태로 오른쪽에 배치한다. "Why" 경로(오른쪽에서 왼쪽으로)의 논리를 테스트하여 이 기능이 왜 수행되는지 묻는다.

+논리가 작동하지 않을 때엔 누락되거나 중복된 기능을 식별하거나 순서를 조정하고, 동시에 발생하는 기능을 식별하기 위해 "이 기능이 수행될 때, 무엇이 또한 수행되거나 이 기능에 의해 발생하는가?"를 다시 되짚어보면 된다.

Davis` Principles

소프트웨어 개발 과정 전반에 걸쳐 품질을 최우선으로 두는 접근 방식
아래와 같은 원칙들이 있다.

  • 품질을 1순위로
  • 고객에게 제품을 조기에 제공
  • 요구 사항을 결정하기 전에 문제를 파악
  • 설계 대안 평가
  • 적절한 프로세스 모델 사용
  • 다양한 단계에 다른 언어 사용
  • 지적 거리 최소화
  • 기술을 도구보다 우선시
  • 코드 검사
  • 좋은 관리가 기술보다 중요
  • 사람이 성공의 열쇠

Use case model

사용자가 시스템과 상호작용하는 방식을 보여준다.

유스케이스 다이어그램

시스템의 기능을 나타내기 위해 사용자의 요구를 추출하고 분석하는데 사용
유스케이스(시스템 기능), 액터(시스템과 상호작용 하는 것)으로 구성된다.

액터가 될 수 있는 것에는 사용자가 맡은 일, 다른 시스템이 있다.
액터를 찾기 위한 질문

  • 시스템의 지원을 받는가?
  • 어떤 사용자 그룹이 시스템의 주요기능을 사용하는가?
  • 보수와 관리 등의 부수적 기능을 사용하는가?
  • 외부 하드웨어나 소프트웨어 시스템과 동작하는가?

부마위키
https://buma.wiki
내가 다니는 부산소프트웨어마이스터고에서 쓰는 교내 나무위키다.
처음에 야심차게 다른 학교에도 만들어주겠다고 만들었는데 다른 소프트웨어마이스터고에서도 따라서 만들어서 실패한 것 같다.

아무튼 이걸 보고 간단하게 쓴 use case model을 보고 가자~

잘 쓴 것은 아니기에 충분히 좋은 use case model을 참고하길 바란다.

끝~

출처
https://newdevlog.tistory.com/14
https://lizarmong-water.tistory.com/16

0개의 댓글