요구사항 확인 2

랑아·2023년 4월 14일
0
post-thumbnail

요구사항 정의

01. 요구공학

1) 요구공학의 개념

  • 시스템 요구사항 문서를 생성, 검증, 관리하기 위해서 수행되는 구조화된 활동의 집단
  • 요구사항의 요구사항 획득, 요구사항 분석, 요구 명세서, 검증 및 요구사항 변경 관리 등에 대한 전반적인 활동과 관리를 체계적, 반복적으로 수행하는 것

2) 요구사항 개발 프로세스

1. 요구사항 도출(Requirement Elicitation)

  • 개발된 소프트웨어가 해결해야 할 문제를 이해하는 첫 번째 단계
  • 소프트웨어 요구사항의 출처가 누구이며 어느 부서인지, 어디에 있는지 파악
  • 소프트웨어 요구사항을 어떠한 방법으로 수집할 것인가를 파악
  • 이해관계자가 식별되고, 개발팀과 고객 사이의 관계가 만들어지는 단계
  • 다양한 이해관계자와 효율적이고 다양한 의사소통이 매우 중요함
  • 도출 기법에는 인터뷰, 스토리텔링, 프로토타이핑, 워크숍, 벤치마킹 등이 있음

2. 요구사항 분석(Requirement Analysis)

  • 사용자의 요구를 이해하는 실질적인 첫 번째 단계
  • 요구사항의 타당성을 조사
  • 소프트웨어 요구사항들 사이에 서로 다르거나 상충되는 것을 해결
  • 소프트웨어의 범위를 파악
  • 소프트웨어 개발 비용과 일정에 대한 제약을 설정
  • 소프트웨어가 다른 환경과 어떻게 상호 작용하는지 이해
  • 소프트웨어 요구사항을 최적화하여 정확히 분석
  • 분석 기법에는 DFD(Data Flow Diagram), DD(Data Diagram), E-R Diagram, UML Diagram 등이 있음
  • 요구사항을 분석하고 정의해서 문서화

3. 요구사항 명세(Requirement Specification)

  • 파악된 요구사항을 체계적으로 검토, 평가하고 승인될 수 있는 문서를 작성
  • 시스템 정의, 시스템 요구사항, 소프트웨어 요구사항을 개발자뿐만 아니라 고객도 알 수 있을 정도로 쉽게 작성

4. 요구사항 명세기법

  • 정형 명세기법
    • 사용자의 요구를 표현할 때 수학적인 원리와 표기법을 이용하여 서술
    • 사용자의 요구 특성을 정확하게 표현
    • 가장 강력한 표현 방법으로 도구 사용이 필수적
    • 명세서가 간결하고, 명세와 구현이 일치
    • 수학적인 이해가 필요하기 때문에 사용자와 개발자 간의 부담이 발생
    • 종류
      • VDM, Z, CSP, CSS 등
  • 비정형 명세기법
    • 사용자의 요구를 표현할 때 자연어를 기반으로 서술
    • 가장 일반적이고, 친숙하지만 명세서로는 바람직하지 못함
    • 사용자의 요구를 표현할 때 상태, 기능, 객체 중심으로 서술
    • 이해가 용이하며, 사용자와 개발팀 간의 의사 전달 방법이 다양함
    • 불충분한 명세서가 작성될 수 있으며, 모호성이 발생할 수 있음
    • 종류
      • FSM, Decision Table, E-R, SADT 등
  • 요구사항 명세서 작성 시 고려사항
    • 고객과 개발자가 쉽게 이해할 수 있도록 작성
    • 사용자와 개발자가 모두 동의한 내용을 작성(계약서 역할)
    • 시스템의 모든 기능과 모든 제약조건을 기술
    • 요구사항 검증을 위해 품질 측정 및 검증 방법, 인수 테스트 기준 등을 기술
    • 우선순위에 따른 중요도를 기술
    • 요구사항을 쉽게 알아볼 수 있도록 식별자 사용
  • 요구사항 명세서 작성 원칙
    • 명확성 : 요구사항 명세 내용은 하나의 의미만을 부여함
    • 완전성 : 기능, 성능, 범위, 제약사항 등 모두 요구사항을 포함
    • 검증 가능성 : 요구사항의 충족 여부와 달성 여부를 확인할 수 있게 함
    • 일관성 : 명세 내용 간에 상호 모순이 발생하지 않도록 함
    • 수정 용이성 : 요구사항 변경을 쉽게 수정할 수 있도록 함
    • 추적 가능성 : 요구사항 명세 근거로 오류 추적이 가능해야 함
    • 개발 후 이용성 : 운영 및 요지보수를 효과적으로 사용할 수 있어야 함

5. 요구사항 확인(Requirement Validation)

  • 분석가가 소프트웨어 요구사항을 이해했는지 확인이 필요함
  • 요구사항 명세서가 표준에 적합하고 이해가 가능한지 확인
  • 요구사항 명세서가 일관성이 있고, 완전한지 검증하는 것이 중요함
  • 이해관계자들이 문서를 검토해야 하므로 쉽게 작성되어있는지 확인
  • 소프트웨어 요구사항 관리 도구를 이용하여 요구사항 정의 명세서를 형상 관리함
  • 소프트웨어 요구사항이 실제로 적용되기 전에 문제를 파악하기 위한 여러 형태로의 검증을 수행

3) 요구사항 도출 기법

1. 사용자 그룹 인터뷰

  • 사용자를 대상으로 인터뷰를 수행하여 요구사항을 도출
  • 가능한 많은 사용자로부터 인터뷰하는 것이 좋음
  • 회의록 작성은 필수적이며 가능하면 인터뷰 내용은 녹음하여 반복 청취하는 것이 좋음

2. 이해관계자 설문 조사

  • 사용자와 직접 만나기 어려울 때는 설문 형식으로 조사
  • 현행 시스템의 문제점, 개선할 점 등을 끌어낼 수 있는 설문을 준비

3. 문헌 조사

  • 유사한 소프트웨어의 업무 문서나 양식을 조사하여 현행 시스템 정보에 대해 이해함
  • 산업 기술 표준, 정부 정책, 규제, 법규 등을 조사
  • 개발팀은 개발 업체의 업무 교육이나 튜토리얼에 참가

4. 프로토타이핑

  • 기본적인 기능만 빠르게 구현해서 사용자에게 피드백을 받음
  • 개발자의 의도를 사용자로부터 빠르게 피드백 받고자 할 때 사용
  • 프로토타입을 위한 프로그램 전용 언어로 가상적인 사용자 인터페이스 환경을 만들어 사용

5. 스토리텔링

  • 이야기 형식으로 요구사항을 기술하여 자연스럽게 개발자가 요구사항에 대한 이해가 되도록 구성하는 기법
  • 스토리텔링은 애자일 방법에서 주로 사용하는 방법으로 개발자와 사용자 간의 대화를 통해 함께 요구사항을 분석해내는 방법

6. 분석과 중재 기술

  • 사용자의 요구사항을 철저하게 분석하여 오류와 이상 여부를 판단
  • 사용자의 요구가 무리하거나 합리적이지 않을 경우 사용자를 이해시키고 설득시킬 수 있는 중재 기술이 필요

7. 관찰과 모델 작성 기술

  • 업무 특성이나 사용자의 업무 처리를 자세히 관찰하여 업무의 흐름을 모델링할 수 있어야 함



02. 구조적 분석

1) 구조적 분석의 원리

1. 추상화 원칙(Principle of Abstract)

  • 특정 대상에 대한 실체로부터 분리된 개념이나 관점으로 특정 대상을 간소하게 표한하는 방법
  • 실체를 둘러싸고 있는 세부적인 것에 의한 제약을 받지 않고 문제의 해결을 고려할 수 있게 함

2. 정형화 원칙(Principle of Formality)

  • 특정 대상을 수학적 알고리즘과 같이 연구할 수 있도록 하여 생각과 명령을 자동화시킬 수 있는 근거를 제공할 수 있게 함

3. 분할 정복의 개념(Divide-and-Conquer Concept)

  • 복잡하고 규모가 큰 시스템을 좀 더 작고 독립적인 서브 시스템으로 나누고(분할), 작게 분할된 시스템들을 쉽게 이해한다(정보)는 개념

4. 계층적 구조의 개념(Hierarchical Structure Concept)

  • 여러 개의 작은 독립적인 모듈로 나누어진 것들을 어떻게 배치하는 것이 좋을 것인가 하는 문제
  • 계층적 구조는 모듈 상호 연관 관게 및 구조에 대한 이해도 향상에 크게 도움이 됨

2) 구조적 분석의 특징

  • 그림 중심의 도형과 도표 형태로 분류
  • 시스템 분석 시 사용자 참여 기회를 확대
  • 시스템 개발의 모든 단계에서 필요한 명세서 작성이 가능
  • 분석의 중복성을 배제하고 하향식으로 분석

3) 구조적 분석의 도구(방법론)

1. 자료 흐름도(DFD : Data Flow Diagram)

  • 시스템을 구성하고 있는 구성 요소들 사이에 자료와 정보가 어떻게 흐르고 있는가를 그림으로 도식한 다이어그램
  • 분석 단계의 가장 첫 번째로 작성되는 그래프 모형의 도형으로 분석의 핵심적인 구조인 동시에 3단계로 계층화하여 세분되는 과정을 거쳐 산출되는 도형

2. 자료 사전(DD : Data Diagram)

  • 시스템과 관련된 모든 자료의 명세와 자료 속성을 파악할 수 있도록 조직화한 도구
  • 소프트웨어에서 사용하는 모든 자료 항목을 규칙에 맞게 정리한 집합

3. 소단위 명세서(Mini-spec)

  • 내부적인 처리가 아닌 처리에 영향을 미치는 조건만을 프로그램 설계 언어(PDL)로 간단하게 기술하는 명세서
    • PDL(프로그램 설계 언어)
      • 프로그래밍 언어와 유사한 문법 구조를 가지고 있지만, 실제 컴퓨터가 이해할 수 있도록 변환하는 번역 기능이 없는 언어
      • 설계 단계에서 프로그램을 프로그램 문법 주고와 유사하게 표현하기 위한 언어
  • 처리 절차나 논리적 활동을 기술하는 도구로 구조적 언어나 의사 결정표의 형태로 구성된 것
  • 규모가 큰 자료 흐름도의 부족한 부분을 간략하게 서술
  • 소규모일 경우에는 생략할 수 있음

4) 자료 흐름도(DFD)의 표기법

이름표기법의미
외부 입출력(Terminal)자료의 생성지와 종착지, 정보의 생성자와 소비자
처리 과정(Process)변환 과정, 모듈, 프로시저, 함수
자료 흐름(Data Flow)자료의 흐름, 인터페이스, 매개 변수
자료 저장소(Data Store)자료 저장, 파일, 데이터베이스, 디스크

5. 자료 흐름도의 작성 지침

  • 자료는 처리를 거쳐 변환될 때마다 새로운 명칭을 부여해야 함
  • 자료 흐름도의 최하위 처리는 소단위 명세서를 가짐
  • 어떤 처리가 출력 자료를 산출하기 위해서는 필요한 자료가 반드시 입력되어야 함
  • 자료 흐름은 4가지의 기본 기호로 표시
  • 한 페이지 단위로 작성
  • 단계마다 약 6~7개 이내의 절차 버블(원, Process)이 적당함
  • 페이지 당 버블의 수가 12개 이내
  • 페이지의 단계는 2~3단계 이내
  • 2~3단계로 커지면 설계에 임할 수 있을 정도로 구체화
  • 최종 단계의 버블은 프로그램 코딩이 가능한 수준에서 멈춤
  • 한 번에 한 개의 버블만 세분화

6) 자료 사전(DD) 표기법

이름표기법
자료의 정의=
자료의 연결+
자료의 선택[ | ]
자료의 반복{ }n
자료의 생략( )
자료의 설명**

7) 자료 사전 표기법의 예

사원 = 사번 + 성명 + 부서[총무부|영업부|자재부]
+ 직위[사장|부장|과장|사원]
+ {가족명+관계[부|모|배우자|자|녀]}5^5
+ (기타)

0개의 댓글