본문 바로가기
정보처리기사/필기

[정보처리기사] Part01-01-2. 요구사항 확인 (1)

by 채연2 2022. 2. 24.

* 요구 공학 (Requirements Engineering)

☞ 시스템 요구사항 문서 생성, 검증, 관리하기 위해 수행되는 구조화된 활동 집합

☞ 이해관계자 사이에 효과적인 의사소통 수단 제공하고 요구사항에 대한 공통 이해 설정

☞ 요구사항 손실 방지 및 에러 감지로 불필요한 비용 절감하고 요구사항 변경 추적 가능케 함

 

    ▶ 개발 절차

        ▷ 타당성 조사

            - 시스템 구축 가능성 평가 : 비용, 일정, 기술, 법률 제약 사항

            - 활용 기법

                = 질문지(AS-IS 문제점, 통합 시 문제점), SWOT 분석

        ▷ 도출 (Elicitation)

            - SW가 해결해야 할 문제 이해하고 요구사항이 어디에 있고, 어떻게 수집할 것인가와 관련되어 있음

            - 활용 기법

                = 인터뷰, 포커스 그룹, 집단 창의력 기법, 설문조사, 관찰, 문헌조사, 프로토타입, 벤치마킹, 스토리텔링

        ▷ 분석 (Analysis)

            - 요구사항들 간 상충 해결하고, SW 범위 파악하며 SW가 환경과 어떻게 상호작용 하는지 이해

            - 활용 기법

                = 구조적 분석 : DFD(Data Flow Diagram), Data Dictionary, mini Spec, ERD

                = 유즈 케이스 기반 분석 : UML, 모델링

        ▷ 명세 (Specification)

            - 체계적으로 검토, 평가, 승인될 수 있는 문서 작성하는 것 의미

            - 활용 기법

                = ER 모델링, FSM (Finite State Machine), SADT(구조적 분석과 디자인 기술)

                = SRS, IEEE std 830-1998

        ▷확인/검증 (Validation/Verification)

            - 분석가가 요구사항 이해했는지에 대한 확인 필요하고, 요구사항 문서가 조직 표준에 부합하고 이해 가능하며 일관성 있고 완전한지에 대한 검증 중요

            - 활용 기법

                = Verification(검증) : SW 개발 라이프 사이클 각 단계 산출물이 이전 단계에서 설정된 개발 규격과 요구들 충족시키는 지 여부 판단하기 위한 활동

                = Validation (확인) : SW 개발 라이프 사이클 각 단계 산출물이 최초 사용자 요구 또는 SW 요구에 적합한지 입증하기 위한 활동

 

요구공학 프로세스

 

    1. 요구사항 도출

    - 사용자들로부터 제시되는 추상적 요구에 대해 관련 정보 식별 및 수집하여 구체적 요구사항으로 표현하는 활동

 

        ▶ 요구사항 도출 기법

            ▷ 인터뷰

                - 요구사항 도출한 사용자 대상으로 인터뷰 수행

                - 많은 사용자로부터 인터뷰 하는 것이 좋고 회의록 작성 필수

                - 필요 시 인터뷰 내용 녹음하여 반복 청취하는 것 좋음

            ▷ 포커스 구룹

                - 선별된 전문가 집단의 대화식 토론으로 요구사항 수집하는 방법

            ▷ 집단 창의력 기법

                - 요구사항 식별 위해 여러 가지 그룹 활동 통해 창의적인 아이디어 도출

                - 브레인 스토밍

            ▷ 이해관계자 설문조사

                - 사용자와 대면 조사가 어려울 때에 설문 형식으로 조사

                - 현행 시스템 개선 의견 끌어냄

            ▷ 관찰

                - 개인 업무처리 방법이나 절차에 대해 직접적으로 관찰하는 방법

                - 요구사항 명확히 설명하기 힘들거나 어려움 있는 경우 사용하는 방법

            ▷ 문헌 조사

                - 유사 프로젝트 및 업무 문서나 양식 조사하여 현재 시스템 정보에 대한 이해 도출

                - 산업 및 기업 표준, 정부 정책, 규제 및 법규도 조사

                - 개발팀은 업무 도메인 교육이나 튜토리얼에 참가

            ▷ 프로토타입

                - 요구사항에 대한 이해 위해 기본적인 기능만 빠르게 구현하여 사용자로부터 피드백 받는 기법

                - 개발자 아이디어를 사용자로부터 조기에 피드백 받고자 할 때 사용

                - 프로토타이핑 전용 언어로 모의 사용자 (Mock-up) 인터페이스 만들어 사용

            ▷ 벤치마킹

                - 경쟁 제품, 성공 사례 및 업무 절차 참조하여 유사한 수준의 효과 낼 수 있는 기능 요구 사항 정의

            ▷ 사용자 스토리텔링

                - 사용자 요구사항을 이야기 형식으로 기술해 자연스럽게 개발자가 요구사항에 대한 이해 가도록 구성

                - 주로 애자일 방법에서 사용하는데 개발자와 사용자가 서로 긴밀이 대화하면서 요구사항 함께 만듦

            ▷ 업무절차 및 양식 조사

                - 업무 관련 문서, 절차, 양식, 운영 메뉴얼 등을 조사함으로써 업무 절차와 처리 입출력의 이해

                - 기업 내부 표준 검토함으로써 요구와 제한 사항 찾아 시스템 요구 분석서 제한 사항으로 적용

            ▷ 설문

                - 이해 당사자들로부터 요구 찾는 도구

                - 이해 당사자들을 의사결정 과정에 포함하여 관심, 내부 정보, 개선 의견 이끌어 냄

            ▷ 브레인 스토밍

                - 여러 명으로부터 정보 얻는 효과적 방법

                - 인터뷰와 같이 수행하면 더 많은 정보 추출 가능하며 훈련된 요원 주재로 과정 정돈하는 것이 중요

                - JAD(Joint Application Development) : 사용자와 개발자 공동참여하여 프로토타입 기반 작업 수행함으로써 비즈니스 요구사항 명확히 도출하고 그에 따라 시스템 설계 및 개발

 

    2. 요구사항 분석

    - 도출된 요구사항들 간 상충 해결하고 SW 범위 파악하며 SW가 환경과 어떻게 상호작용하는지를 분석하는 과정

    - 사용자의 요구 정확하게 추출하여 목표 정하고 어떤 방식으로 해결할 것인지 결정

    - 사용자 요구사항 정확하고 일관성 있게 분석하여 문서화

    - SW 분석가에 의해 요구사항 분석 수행

 

        ㄱ. 구조적 분석방법론

        - 도형화된 도구 이용해 정형화된 분석 절차에 따라 사용자 요구사항 파악하고 문서화하는 분석 기법

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

                - 시스템 처리 과정을 자료 흐름에 중점 두어 기술하는 분석용 도구

                - 시각적으로 업무와 데이터 흐름 쉽게 볼 수 있어 프로그램 구현에 도움이 됨

                - 작성 시 시스템 레벨별로 단계적 상세화 하며 자료 흐름 일관성 유지

 

                ▶ 자료 흐름도 구성요소

구성 요소 설명 표기법
Process (프로세스) 자료 처리/변환 과정 표현
Data Flow (자료 흐름) 자료 흐름 표현
Data Store (자료 저장소) 파일, DB 등 저장소 위치 표현
Terminator (단말 자료 출처와 도착지 표현

자료흐름도

 

            b 자료 사전 (DD : Data Dictionary) (= 메타 데이터)

                - 자료 흐름도 대상이 되는 모든 자료에 대한 기본사항들을 더 자세히 정의하기 위해 사용되는 도구

 

                ▶ 자료 사전 작성 규칙

                    ▷ =

                        - 자료의 정의 (A는 ~로 구성되어 있다)

                    ▷ +

                        - 자료의 연결 (A와 B 연결)

                    ▷ ( )

                        - 자료의 생략 ( 없어도 되는 자료)

                    ▷ [ | ]

                        - 자료의 선택 (A 이거나 B)

                    ▷ { }

                        - 자료의 반복

                    ▷ **

                        - 자료의 설명

 

                    ※예시

                        - 고객 파일 = *구성은 주민등록번호에 따라 순차적임* = {주민등록번호 + 고객 명세 + 

                                                                                                   고객 신용 + {입금상황}}

                        - 고객 명세 = 고객 성명 + 고객주소 + 거래 개시일

                        - 입금 방법 = [현금 | 수표 | 신용카드]

 

            c. 상태 전이도

                - 시스템에 어떤 일이 발생할 경우 시스템 상태와 상태 변화를 모델링하는 것

 

                ▶ 상태 전이도 구성요소

                   ▷ 시스템 상태

                        - 시스템이 수행중인 상태 의미하는 것

                        - 표기 : 직사각형

                   ▷ 상태 변화

                        - 시스템이 어떤 상태에서 다른 상태로 변환되는 과정

                        - 표기 : 화살표

                        - 화살표 시작은 상태 변화 일으키는 사건 의미하고, 끝은 사건 결과로 발생하는 내용

                   ▷ 조건과 행동

                        - 상태 변화를 일으키는 조건과 상태 변화시킬 때 시스템이 취하는 행동 명시

상태전이도

 

        ㄴ. 유즈 케이스 기반 분석방법론

        - 사용자 요구사항을 시나리오 기반으로 나타내기 위해 유즈 케이스 다이어그램 주요 사용. 모델링 표기법은 UML.

            a.  유즈케이스 다이어그램

                - 시스템이 제공하는 기능과 서비스 및 관련된 외부 요소를 사용자 관점에서 표현하는 UML 다이어그램

구성요소 내용 표기법
Actor
(행위자)
- 사용자가 시스템에 대해 수행하는 역할
- 시스템과 상호작용하는 사람 또는 사물

Use Case
(유즈 케이스)
- 시스템이 제공해야 하는 서비스
- Actor가 시스템 통한 일련의 행위
Relation
(관계)
액터와 유즈 케이스 간 관계 표현  
연관
(Association)
엑터와 유즈 케이스 간 상호작용 관계 표현

확장
(Extend)
기본 유즈 케이스 수행 시 특정 조건 만족할 때 수행하는 유즈 케이스 표현
포함
(Include)
유즈 케이스 실행 위해 반드시 포함해서 실행되어야 하는 유즈 케이스 표현
 
일반화
(Generalization)
유사한 유즈 케이스들이나 액터들 모아 추상화하여 표현
그룹화
(Grouping)
여러 개 유즈 케이스 단순화 하여 표현
System
(시스템)
- 전체 시스템 영역 표현
- 특별한 의미 가지지 못함

 

    3. 요구사항 명세

    - 도출된 요구사항 분석하여 정의하는 단계

    - 요구사항 명세서는 이 단계에서 작성되는 최종 산출물

 

        ㄱ. 요구사항 명세서

           - SW가 수행해야 할 기능과 제약조건 등이 기술되어 있으며 이 후 진행되는 설계, 개발 및 테스트 완료 승인에 대한 기준으로 사용

           - SRS : SW 요구사항을 어떻게 작성하는지 정의해 놓은 국제 표준 (IEEE std 830-1998)

 

            ▶ SRS 구성요소 예시

               ▷ 개요

                    - Introduction, 시스템 필요성과 비즈니스 목적에 대해 기술

               ▷ 용어

                    - Glossary, 사용되는 기술 용어에 대한 기술

               ▷ 시스템 모델

                    - 시스템 컴퍼넌트와 관계 설명

               ▷ 기능적 요구사항 정의

                    - Functional Requirement Definition, 제공되는 기능에 대한 설명

               ▷ 비 기능적 요구사항 정의

                    - Non-Functional Requirement Definition, 시스템 제약조건과 시스템 프로세스에 대해 설명

               ▷ 시스템 진화

                    - 시스템이 근거하고 있는 기초적인 가정과 예상되는 변화 기술

               ▷ 요구 명세

                    - Requirement Specification, 기능적 요구사항에 대한 상세한 설명

               ▷ 부록

                    -  Appendix, 시스템 하드웨어 플랫폼, DB 모델 설명

               ▷ 색인

                    - Index

 

            ▶ 기능적 요구사항과 비 기능적 요구사항

               ▷ 기능적 요구사항

                    - 시스템에서 제공되어야 할 특정 기능 정의

                    - 데이터 모델 : 개념적인 모델 상태를 구체화한 것으로 생성, 삭제 등 실행 정의

                    - 데이터 흐름 처리 모델 : 시스템 행위가 어떻게 이루어지는가 표현하여, 데이터 모델 입출력이 데이터 일부분으로 사용함

                    - 프로세스 모델 : 병행, 상호작용, 다른 프로세서들 간 동기화 등 사건과 활동 서술

               ▷ 비 기능적 요구사항

                    - 시스템 전체적 품질이나 기능적 요구사항 구현 시 고려해야하는 제약사항

                    - S/W뿐만 아니라 시스템 전체에 대한 요구 사항

                    - 성능 : 응답 속도, 자원사용량

                    - 보안 : 침입 대응, 사용자 인증/권한

                    - 아키텍처 : 확장성, 유연성

                    - 안정성 : 장애 대응, 서비스 연속성

 

            ▶ 요구사항 명세 원리와 내용

               ▷ 명확성

                    - 각각 요구사항 명세 내용은 하나의 의미만 부여

               ▷ 완전성

                    - 기능, 성능, 속성, 인터페이스, 설계 제약 등에 관한 모든 시스템 요구사항 포함됨

               ▷ 검증가능성

                    - 요구사항 내용 충족 여부와 달성 정도 확인 가능

               ▷ 일관성

                    - 명세 내용 간 상호간 모순 없어야 함

               ▷ 수정용이성

                    - 요구사항 변경 시 쉽게 수정 가능해야 함

               ▷ 추적 가능성

                    - 각 요구사항 근거에 대한 추적과 상호참조 가능해야 함

               ▷ 개발 후 이용성

                    - 시스템 개발 후 운영 및 유지보수에 효과적인 이용 가능해야 함

 

            ▶ 요구사항 검토 방법

               ▷ 동료 검토 (Peer Review)

                    - 2~3명이 진행하는 리뷰 형태

                    - 요구사항 명세서 작성자가 요구사항 명세서 설명하고 이해관계자들이 설명 들으면서 결함 발견하는 형태로 진행

               ▷ 워크 스루 (Walk Through)

                    - SW 시스템 개발 단계마다 실시하는 비정형 검토 회의

                    - 오류 조기 검출에 목적 두고 리뷰 통해 오류 검출하고 문서화

               ▷ 인스펙션 (Inspection)

                    - SW 요구, 설계, 원시 코드 등 저작자 외 다른 전문가 또는 팀이 검사하여 오류 찾아냄

                    - SW 품질 높이는 방법의 하나

 

    4. 요구사항 확인/검증

    - 사용자 요구가 정확하게 요구 사항 명세서에 기술되었는지 검토하고 베이스라인으로 설정하는 활동

        ▶ 요구사항 검증 방법

           ▷ 요구사항 검토

                - 요구사항 검토 담당자들이 요구 사항 명세서를 수작업으로 분석하는 방법

                - 요구사항 명세서에 오류 없는지, 불명확한지, 표준 준수했는지 등 검토

           ▷ 프로토타이핑

                - 개발할 시스템에 대한 주요 기능이나 일부분을 약식으로 개발하여 최종 사용자나 고객 대상으로 시연하면서 시스템이 작동하는 모습 경험할 수 있게 하고 요구 사항 확인

 

        ▶ 테스트 설계

            - 요구사항 테스트할 수 있도록 테스트 케이스 생성하여 추후 요구 사항이 현실적으로 테스트 가능한지 검토

            - 인터페이스 요구 사항에 대한 테스트 케이스는 송/수신 시스템에서 확인해야 할 사항 각각 도출하고, 송/수신 시스템에서 각각 개별 데이터 유효값을 체크하는 테스트 케이스와 송/수신 데이터 간 연관 관계 체크하는 테스트 케이스로 구별해서 작성

            - 송/수신 데이터가 코드성 데이터일 경우, 코드 유효값 체크할 수 있도록 테스트 케이스 작성

            - 수신 시스템에서 전송받은 데이터를 운영 DB에 반영하는 과정에서 오류 발생 않는지, 송/수신 시스템에서 참조하는 테이블에 데이터 없거나 데이터 갱신 및 등록 오류 발생하는지 점검 가능토록 테스트 케이스 작성

 

        ▶ 요구사항 관리

        - 모든 요구공학 프로세스 단계와 동시에 수행

        - 요구사항에 대한 변경 제어하고 시스템 완성도에 대해 이해관걔자와 합의 역할 및 책임 부여

 

                ■ 요구사항 관리 절차

                    □ 요구사항 협상

                        - 가용한 자원과 수용 가능한 위험 수준에서 구현 가능한 기능 협상하기 위한 기법

                    □ 요구사항 기준선

                        - 공식적으로 검토되고 합의된 요구사항 명세서

                    □ 요구사항 변경 관리

                        - 요구사항 기준선 기반으로 모든 변경 공식적으로 통제하기 위한 기법

                    □ 요구사항 확인

                        - 구축된 시스템이 이해관계자가 기대한 요구사항에 부합되는지 확인하기 위한 방법

요구사항 관리 프로세스

 

             ▶ 요구사항 관리 도구

              - 요구사항 기반으로 프로젝트 관리, 설계, 개발, 테스트 등 수행 가능한 역할 지원하는 도구

 

                ■ 요구사항 관리 도구 주요 기능

                    □ 프로젝트 생성

                        - 프로젝트 타입 및 기본 모듈 템플릿, 속성, 역할별 뷰 설정하여 프로젝트 생성 도와주며 이를 저장하여 재사용할 수 있도록 할 수 있음

                    □ 요구사항 작성

                        - 모든 요구사항에 고유 ID 생성, 부여되고 이 ID는 사용자에 의한 임의 변경 될 수 없도록 함

                    □ 요구사항 Import/Export

                        - 요구사항 일괄 등록 및 추출위해 Plain Text, Rich Text 등 다양한 형식 파일 Import/Export 기능 제공

                    □ 요구사항 이력관리

                        - 요구사항 별로 히스토리 관리 기능 제공하여 변경 이력 관리 가능

                    □ 요구사항 베이스라인

                        - 요구사항 확정되고 관리 시작점이 되는 요구사항 베이스라인 기능 제공

                    □ 요구사항 추적성

                        - 어느 요구사항이 베이스인지 구분 위한 기능

                        - 현재 요구사항 기반으로 작성된 요구사항인지, 타 요구사항 기반으로 현재 요구사항 작성되었는지 알려줌 

                    □ 협업 환경

                        - 하나의 요구사항 문서를 여러 명이 작성 가능토록 하는 협업 기능

                        - 일반적으로 공유 모드 제공하고 선점 사용자 외에는 수정 및 삭제 권한 제한

                    □ 외부 연동 환경

                        - 요구사항대로 설계되었는지 파악 위해 설계도구와 연동 지원하며, 요구사항대로 구현되었는지를 확인하기 위해 형상 관리도구와의 연동 지원

                    □ 확장성

                        - API 등 통해 타 시스템과의 연동 기능 제공

 


* 요구사항 추적 매트릭스 (RTM : Requirement Traceability Matrix)

☞ 최종 인도물에 요구사항 반영되기까지 프로젝트 생애주기 전 과정을 추적하는 도표

☞ 프로젝트 끝날 때 요구사항 문서에 승인된 요구사항이 인도되도록 지원하며, 제품 범위에 대한 변경 관리하는 데 유용한 체계 제공

 

요구사항 추적 매트릭스 예시

    ▶ 요구사항 추적 매트릭스 구성 요소

        ▷ Project 정보

            - Project Name : 프로젝트 명

            - Project Manager Name : 프로젝트 관리자 명

            - Project Description : 프로젝트에 대한 간단한 설명

        ▷ ID

            - 요구항목 구별 가능한 식별자

        ▷ Associated ID

            - 요구항목 추적 위해 사용하는 Utility와 관계된 식별자

        ▷ 기술적 가정

            - 기능적 요구사항과 연결된 기술적 가정이나 고객의 필요성

        ▷ 우선순위

            - 요구사항 우선순위

        ▷ 기능적 요구

            - 기능적 요구사항

        ▷ 상태

            - 기능적 요구사항 현재 상태

        ▷ 아키텍처/설계 문서

            - 기능적 요구사항과 관계된 Architectural/Design 문서

        ▷ 기술적 사양

            - 기능적 요구사항이 만족해야 하는 Technical Specification

        ▷ System Component

            - 요구사항과 관련된 시스템 구성 요소

        ▷ SW Module

            - 요구사항 구현에 사용되는 SW 모듈

        ▷ Test Case Number

            - 기능적 요구사항 검토 위한 Test case 번호

        ▷ Verification 

            - 기능적 요구사항 검토 문서 관련 설명

        ▷ Additional Comments

            - 추가적인 부연 설명

 

    ▶ 요구사항 추적 매트릭스 작성 방법

        ▷ 업무 구분

            - 요구사항 및 업무 내용 도출할 해당 업무명 기재

            - 고객 담당업무 분류하여 작성

            - 요구사항이 특정 업무에 종속되는 경우 반드시 업무명 기재하고, 종속되지 않고 전체 없무와 관련된 경우 생략 가능

        ▷ 요구사항 ID

            - 도출된 요구사항을 각각 구분하기 위한 식별자 기재

        ▷ 요구사항

            - 해당 업무 구현하기 위한 세부 요구사항 기재

        ▷ 해결방안

            - 요구사항 만족시키기 위한 해결방안 또는 처리내용 기재

        ▷ 출처

            - 도출된 요구사항 출러 기재

        ▷ 분석

            - 해당 요구사항 반영한 분석 단계 산출물 기입

        ▷ 설계

            - 해당 요구사항 반영한 설계 단계 산출물 기입

        ▷ 개발

            - 해당 요구사항 반영한 개발 단계 산출물 기입

        ▷ 테스트

            - 해당 요구사항 반영한 테스트 단계 산출물 기입


* 요구사항 분석 도구/모델

    1. CASE ( Computer Aided Software Engineering)

        ① Diagram 작성 도구 : SW 명세서 정의, 설계 결과 표현

        ② 설계 분석기 : 설계 명세서 정확성, 일치성, 모호성에 대한 검사

        ③ 코드 생성기 : 명세서로부터 프로그래밍 언어로 된 모듈 코드 생성

        ④ Repository : CASE 도구 중심, SDLC 동안 정보 저장

        ⑤ 프로젝트 관리 지원 도구

        ⑥ 재공학 도구 : 기존 시스템 설계 명세서 작성 지원

        ⑦ Prototyping 도구 : 초기 UI 작성 지원

 

        ▶ CASE 도구 분류

            ▷ Upper CASE

                - 계획 수립, 요구 분석, 기본 설계 단계 지원하고 이를 다이어그램으로 표현

            ▷ Middle CASE

                - 새 설계 작업 지원하며 화면/출력 등 작성 지원

            ▷ Lower CASE

                - 시험, 유지보수 작업 지원하며 소스코드와 시스템 명세서 획득

            ▷ I-CASE

                - 위 세 가지 통합한 것으로 Rational ROSE, COOL 등이 국내에서 사용 중

 

        ㄱ. HIPO (Hierarchical Input Process Output) 모델

            - 하향식 SW 개발 위한 문서화 도구

            - 기능과 자료 의존 관계 동시 표현 가능해 보기 쉽고 이해 쉬움

            - 1970년대부터 쓰인 시스템 분석용 디자인 도구 및 문서화 기법

            - 시스템 표현하는 모듈들 계층적으로 나타내고 모듈들 문서화하기 위해 사용됨

HIPO 예시 (가시적 도표)

            ▶ HIPO 도표 구성

                ▷ 가시적 도표 (Visual Table of Contents)

                    - 시스템 전체적인 기능과 흐름 보여주는 Tree 형태 구조도

                ▷ 총체적 도표 (Overview Diagram)

                    - 프로그램 구성하는 기능 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보 제공하는 도표

                ▷ 세부적 도표 (Detail Diagram)

                    - 총체적 도표에 표시된 기능 구성하는 기본 요소들을 상세히 기술하는 도표

 

 

 

 

☞☞☞ Part01-01-2. 요구사항 확인 (2)

320x100

댓글