[설계패턴]요구 분석 정리

류명운

·

2015. 10. 12. 19:42

반응형

* 1장에서 다룬 소프트웨어 개발 생명주기는 현재의 시스템(as-is)으로부터 새로운 시스템(to-be)으로 옮겨가는 과정이라 할 수 있다.

* 2장에서 다룬 계획 단계의 결과는 시스템 개발 요청, 타당성 분석, 프로젝트 계획이다.

이번 장에서 다룰 분석이란 어떤 것을 이해할 목적으로 쪼개고 나누어 구성 요소의 특징이나 기능, 관계를 파악하는 것이다.

 

요구 분석 4단계

[요구 정의]->[요구 추출]->[요구 정리]->[요구 검토]

모델링: 어떤 실체를 축약하여 주로 다이어그램을 이용하여 비주얼로 표현하며 UML 표준 방법을 사용한다

 

1. 요규 정의

 : 현재 시스템을 파악하여 기술하고 새로운 시스템을 위한 요구, 즉 입력 출력, 처리, 성능, 보안 등을 파악하기 위하여 조사하는 작업이다. 

 1) 출력: 시스템이 제공하는 인쇄된 정보나 전자화된 정보를 말한다.

 2) 입력: 수동이든 자동이든 시스템에 들어와야 할 자료이다.

 3) 처리: 자료를 의미 있는 정보로 변환하기 위하여 적용되는 논리적인 규칙을 뜻한다.

 4) 성능: 속도, 크기, 용량, 가용성, 신뢰성 등 시스템의 특성을 말한다.

 5) 보안: 내부 또는 외부의 위협으로부터 시스템을 보호하기 위한 하드웨어와 소프트웨어 및 절차적인 제어를 뜻한다.


 : 비즈니스 사용자의 니즈(needs)에 초점을 맞추어 작성한다. 따라서 분석 단계의 요구를 일반적으로 비즈니스 요구 또는 사용자 요구라고 부른다.

 1) 비즈니스 요구[분석단계:어떤기능?WHAT?]

 * 비즈니스 요구는 요구 정의에 우선순위가 매겨져 있다. 중요도에 따라 '상', '중', '하'로 나누거나 '릴리스1', '릴리스2', '릴리스3' 등으로 요구를 커버하는 시스템의 버전을 다르게 한다. 이런 방법은 시스템을 점증적으로 개발하지만 요구 사항을 한꺼번에 만들어 넘기는 RAD(Rapid Application Development) 방법을 사용할 때 특히 중요하다

 2) 시스템 요구[설계단계:어떻게구현?HOW?]

 * 설계 단계로 넘어가면 비즈니스 요구는 더 기술적인 내용으로 진화되어 시스템이 어떻게 구현될 것인지를 나타낸다. 설계 단계의 요구는 개발자의 관점에서 작성하며 시스템 요구라고 부른다

 : 요구는 시스템이 무엇을 하느냐에 대한 정의이며, 프로젝트가 분석으로부터 설계, 구현에 이르면서 계속 변경된다는 사실이다.

 

 : 요구는 기능적 요구비기능적 요구 모두 포함한다

 : 요구 정의는 기능적 요구와 비기능적 요구를 개조식으로 나열한 보고서라고 할 수 있다. 요조는 개조식으로 작성하되 숫자를 매겨 각 요구 하나하나가 명확하게 구별되어야 한다. 요구는 우선 기능적 요구와 비기능적 요구로 나누며 그 다음 단계는 요구의 타입이나 기능으로 그루핑하여 기술한다.

 1) 기능적 요구: 기능적 요구는 시스템이 수행해야 할 처리나 가져야 할 정보와 밀접하게 관련된다. 

  - ex) 상품검색,상품주문,마일리지,상품찜 등

 2) 비기능적 요구: 비기능적인 요구는 시스템이 작동되면서 가져야 할 특성으로 예를 들면 성능이나 사용 용이성을 말한다

  - ex) 평균반응시간, 가용성, 개인정보보호, 처리량, 데이터복구 등

  * 비기능적 요구는 분석 이후의 작업에 영향을 준다. 특히 설계 단계에 사용자 인터페이스를 정한다든지 하드웨어 소프트웨어 및 시스템의 내부 구조를 결정할 때 주로 사용된다.

 * 비기능적요구 종류: 운용, 성능, 보안, 문화적, 정책적


요구를 정의하는 목적 2가지

 1) 요구를 정의하는 가장 명확하 목적은 분석 단계에 다른 결과물, 즉 프로세스 모델이나 데이터 모델 등을 작성하는데 필요한 정보를 제공하기 위함이다.

 2) 시스템의 범위를 정하는 것이다


2. 요구 결정

 : 요구를 정의학 위하여 먼저 비즈니스나 IT 측면에서 요구 자체를 결정하여야 한다.

 : 비즈니스 요구를 결정하기 위하여 가장 효과적인 접근 방법은 경영 관련자와 분석가가 협력하는 것이다.


사용자가 무엇을 원하는지 발견하도록 분석가에게 도움을 주는 다양한 도구가 있다.

 ->프로세스 분석 기법 3가지

 프로세스 분석 기법

 설명

 비즈니스 프로세스 자동화(BPA)

 범위가 한정된 비즈니스 프로세스의 문제를 해결하기 위한 원인 분석 기반 기법(소규모 규모 변경)

 비즈니스 프로세스 개선(BPI)

 비즈니스 프로세스의 효율을 개선하기 위한 기간 분석, 작업 비용 계산, 벤치마킹 기법(중간 규모 변경)

 비즈니스 프로세스 리엔지니어링(BPR)

 비즈니스 프로세스의 효과 분석, 기술 분석, 작업 삭제에 의한 프로세스 재정의(보다 많은 규모의 변경이 포함)

 * 분석가는 시스템 개발 요청서에 기술된 상위 수준의 비즈니스 요구를 기초로 가장 프로젝트에 적합한 기술을 선택하여야 한다.

 * BPA, BPI, BPR 모두 분석가에게 새로운 시스템을 위한 비전을 창조하는 데 도움을 주지만 새로운 시스템 구축에 필요한 자세한 비즈니스 요구에 대한 정보를 추출하기 위해서는 충분하지 않다. 

 ->따라서 분석가는 인터뷰, 설문, 관찰, 서류 분석 같은 다양한 요구 취합 기술을 사용해야 한다.

 

3. 요구 정의 작성

 : 요구 정의를 작성하는 일은 반복적이며 계속적인 작업이다. 분석가가 요구 취합 기술을 사용하여 정보를 모으고, 시스템의 적절한 요구를 찾아내기 위하여 분석하고, 이러한 요구들을 요구 정의 보고서에 추가하는 작업을 계속한다.

 : 요구 정의는 최신의 것으로 유지하여 프로젝트 팀과 사용자들이 참조할 수 있게 하고 새로운 시스템을 이해할 수 있게 한다.


요구 작성 과성

 1)기능, 비기능 종류 결정 -> 2)요구취합 -> 3)요구리스트정의(수정) -> 1)로 반복 

 1)요구 정의를 작성하기 위하여 프로젝트 팀은 먼저 시스템에 대한 기능적 요구인지 아니면 비기능적 요구인지를 경정하여야 한다

 2)다음으로 정보를 모으기 위하여 요구 취합 기법을 사용하여 요구를 찾아내어 나열한다

 3)마지막으로 전체 프로젝트 팀과 사용자와 함께 요구 리스트를 검토하고 수정하고 완성시켜서 요구의 우선순위를 정할 수 있게 한다(* 이 과정을 새 요구가 발견되고 분석 단계가 끝날 때까지 계속하여 요구 정의를 발전시켜 나간다)

 

4. 비즈니스 프로세스 분석

비즈니스 프로세스 분석 3단계 및 3가지 요구 분석 방법

비즈니스 프로세스 자동화(BPA) 

비즈니스 프로세스 개선(BPI) 

비즈니스 프로세스 리엔지니어링(BPR) 

현재 시스템을 이해(as-is)

소규모 규모 변경

개선할 점을 파악

중간 규모 변경 

새 시스템의 요구를 강화(to-be) 

많은 규모 변경 

 *조직의 효율을 높일 수 있지만 비즈니스를 위한 가치 창조나 영향은 적음

 *조직을 운영하는 방법을 적당히 바꿈

 *효율과 효과를 높일 수 있음

 *조직이 수행하는 기본 틀을 수정하는 것

 *새 아이디어와 기술에 초점이 맞추어짐

 현재 시스템을 이해하는데 시간 할애  현재 시스템에 BPA보다 적은 시간 할애  현재 시스템에 대한 이해에 신경X

 1)문제분석 작업

 2)근본 원인 분석 작업

 1)기간분석 작업

 2)작업 비용 분석 작업 

 1)성과분석 작업

 2)기술분석 작업

 3)작업제거 작업

 * 경우에 따라 첫 단계 현재 시스템을 이해하는 단계는 생략하거나 간단하게 한다. 현재 시스템이나 프로세스가 미래 시스템과 관련이 없다면 이 단계를 생략한다

  ->구조적 설계 방법: 현재 시스템을 이해하기 위하여 시간을 투자함

  ->프로토타이핑, 애자일 방법: 거의 전적으로 개선할 점과 새 시스템의 요구에 집중하고 현재 시스템에 대하여 시간을 투자하지 않음

 

5. 요구 취합 방법

 * 요구 취합 팁 세 가지

  1) [신뢰형성] 프로젝트를 위한 지지자 형성, 프로젝트 팀과 시스템의 사용자 사이의 신뢰감 구축이다

  2) [신중한 참여자 선택]요구 취합 과정에 누가 참여할 것인지 신중히 결정하여야 한다

  3) [참여에 감사] 참석자가 시간을 할애하여 참여해 준 것에 대하여 경의를 표하라

 

다섯가지 요구 취합 방법(인터뷰, JAD회의, 설문, 서류분석, 관찰)

1)인터뷰 : 가장 흔히 사용하는 요구 취합 방법

 인터뷰 방법의 단계

 1- 인터뷰 대상자 선정

 2- 인터뷰 질문 작성(3가지 질문 유형: 폐쇄형, 자유 대답형, 유도형)

 3- 인터뷰 준비

 4- 인터뷰 실시

 5- 후속 조치(48시간 이내에 인터뷰 보고서 작성)

2)JAD(Joint Application Development) 회의

 : 프로젝트 팀, 사용자, 관리자 등이 협력하여 시스템의 요구를 찾도록 도와주는 정보 취합 기술이다

 * 문제점: 그룹과 관련된 전통적인 문제로 다른 사람의 의견에 도전하려고 하지 않고 소수만 토론을 한다는 것

 * 개선점: e-JAD라 부르는 새로운 형태가 시도되고 있음(컴퓨터를 사용해 익명으로 회의)

 * JAD회의는 점진적 개발 모델, 발전적 출시, 발전적인 프로토타이핑, 단계적 출시 모델과 결합하여 사용할 수 있다

 * 빠른 기간 내에 소프트웨어를 출시할 수 있다 

JAD 회의 과정(인터뷰와 비슷)

 1- 참여자 선정

 2- JAD 회의 설계

 3- JAD 회의 준비

 4- JAD 회의 실시

 5- 후속 조치(보고서 작성)

3)설문 : 개인으로부터 정보를 취하기 위한 서면 질의서이다

설문 과정

 1- 응답자 선정

 2- 설문지 설계(오해의 소지가 없게 설문을 개발ㅋ)

 3- 설문 진행

 4- 후속 조치(설문 결과 보고서 작성)

4)서류 분석(서류 검토) : 프로젝트 팀은 현재 시스템을 이해하기 위하여 서류를 분석한다

5)관찰 : 작업 과정을 지켜보는 것으로 현재 시스템에 관한 정보를 수집하기 위한 좋은 방법이다

 * 인터뷰 정보를 보완할 목적으로 사용한다


요구 추출 방법 6가지(정보의 타입, 깊이, 너비, 통합, 사용자 참여, 비용)

 1)정보의 타입 - 현재 시스템 이해, 개선점 파악, 미래 시스템 개발 각 단계 중
 2)정보의 깊이 - 요구 취합 방법이나 제공하는 정보가 얼마나 알차고 자세한지

 3)정보의 너비 - 적용한 기법으로 모은 정보와 정보 출처의 범위

 4)정보의 통합 - 요구 취합 작업에서 가장 어려운 측면으로 정보의 결합

 5)사용자 참여 - 새 시스템의 미래 사용자가 분석 과정에 투자하여야 하는 시간과 에너지

 6)비용 - 비용이 얼마나 드는 지

 

요구 취합 방법의 비교

 

 인터뷰

 JAD 회의

 설문

 서류분석

 관찰

 정보의 타입

 As-is, 개선, to-be

 As-is, 개선, to-be

 As-is, 개선

 As-is

 As-is

 정보의 깊이

 상

 상

 중

 하

 하

 정보의 너비

 하

 중

 상

 상

 하

 정보의 통합

 하

 상

 하

 하

 하

 사용자 참여

 중

 상

 하

 하

 하

 비용

 중

 하/중

 하

 하

 하/중

 

6. 요구 문서화

 : 소프트웨어 프로젝트를 성공적으로 수행하려면 항상 요구를 잘 정리하여야 한다.

 * 경우에 따라서는 여러 개의 요구 분석서를 작성한다(시스템의 각 부분을 따로 작성하거나 상세 수준에 따라 작성)

 

요구 분석서의 구조

 1) Requirements: 전체 시스템과 각 서브시스템의 상호작용을 서술한 최고층 문서
 2) subsytem: 각 서브시스템에 대한 요구를 별도의 문서로 정리

 3) sub-subsystem: 서브시스템의 서브시스템

 

요구 분석서에 포함되어야할 내용

 1) 문제 정의와 시스템 개요

 2) 기능 리스트

 3) 사용 사례

 

요구 분석서 작성

 1) 먼저 제기된 문제와 시스템에 대한 개요를 기술한다

 2) 중요한 사항은 기능적 요구와 비기능적 요구를 작성한 부분이다
 * 기능적 요구: 기능적 요구는 시스템이 수행해야 할 처리나 가져야 할 정보와 밀접하게 관련된다. 

    ex) 상품검색,상품주문,마일리지,상품찜 등

 * 비기능적 요구: 비기능적인 요구는 시스템이 작동되면서 가져야 할 특성으로 예를 들면 성능이나 사용 용이성을 말한다

    ex) 평균반응시간, 가용성, 개인정보보호, 처리량, 데이터복구 등
 3) 모든 문서에는 제목과 버전 번호, 수정 이력을 잘 표시하여야 한다

 

요구 분석서 검토

 1) 개발 비용의 투자 효과

 2) 현재 당면한 문제의 해결

 3) 명확하고 통일된 표현

 4) 모호한 점이 없게

 5) 일관성

 6) 품질 좋은 시스템을 유도

 7) 실현 가능성

 8) 검증 가능성

 9) 식별할 이름

 



3장 요구 분석

Quiz(pp162-164)

 

1. 분석 단계는 새로운 시스템을 위한 요구 을/를 결정하는 작업을 한다.

 

2. 요구 분석 단계는 요구 정의 단계, 요구 추출 단계, 요구 정리 단계, 요구 검토 단계로 나눌 수 있다.

 

3. 모델링 (이)란 주로 다이어그램을 이용하여 시스템의 실체를 여러 가지 관점에서 축약하여 표현하는 작업이다.

 

4. 시스템이 무엇을 하여야 하는지 또는 어떤 특성을 가져야 하는지를 기술한 것을 요구 분석서 (이)라 부른다.

 

5. 요구는 기능적 요구비기능적 요구로 나눌 수 있다.

 

6. 비즈니스 프로세스 분석 기법은 크게 비즈니스 프로세스 자동화(BPA), 비즈니스 프로세스 개선(BPI), 비즈니스 프로세스 리엔지니어링(BPR) 이 있다.

 

7. 비즈니스 프로세스를 분석하는 과정은 먼저 성과 분석 하고 다음으로 기술 분석 을 하고 마지막으로 작업 제거 한다

 

8. 요구를 찾아내는 방법 중 관찰 은/는 작업 과정을 지켜보는 것으로 현재 시스템에 관한 정보를 수집하는 방법이다.

 

9. 인터뷰 는/은 해결책보다 문제 자체에 집중하여 근본 원인을 찾아내는 BPA 기법이다.

 

10. JAD 회의 는/은 프로젝트 팀, 사용자, 관리자 등이 협력하여 시스템의 요구를 찾도록 도와주는 정보 취합 기술이다.

11. 요구 분석 작업의 과정을 바르게 나열한 것은? 다

 가. 요구 추출 -> 검토 -> 도메인 분석 -> 모델링과 정리

 나. 요구 추출 -> 도메인 분석 -> 모델링과 정리 -> 검토

 다. 도메인 분석 -> 요구 추출 -> 모델링과 정리 -> 검토

 라. 도메인 분석 -> 요구 추출 -> 검토 -> 모델링과 정리

 

12. 다음은 위성과 시각 정보가 교신되어 시각이 정확히 표시되는 시계 소프트웨어에 대하여 추출된 요구들이다. 기능적 요구만을 골라낸 것은? 라

 [ㄱ] 위성 시계에 표시된 디지털 시각을 잘 읽을 수 있고 표시된 타임존 표시를 메뉴얼 없이도 잘 이해할 수 있어야 한다.

 [ㄴ] 위성 시계에는 버튼이 없어 시각을 수정할 수 없으므로 소프트웨어의 결함이 없어야한다.

 [ㄷ] GPS와 교신 후 5분 이내에 정확한 타임존을 표시할 수 있어야 한다.

 [ㄹ] 위성 시계는 시간 2자리, 분 2자리, 초 2자리와 타임존을 나타내는 문자 10자리로 나타내야 한다.

 [ㅁ] 위성 시계에 탑재되는 소프트웨어는 시스템을 회사의 정책에 따라 Java 언어로 구현해야 한다.

가. [ㄱ][ㄴ]    나. [ㅁ]    다.[ㄷ][ㄹ]    라.[ㄹ]

 

13. 요구 추출에 대한 설명으로 옳지 않은 것은? 나

 가. 요구를 찾는 것은 누가 시스템과 관련 있는지 시스템의 범위가 어디까지인지 결정하는 것으로 시작된다.

 나. 요구는 발견한 시간에 따라 우선순위를 매긴다.

 다. 요구를 파악하는 것은 시스템이 수행하여야 할 기능을 찾아내는 것이다.

 라. 요구 추출을 위해서는 현재 상황, 배경, 인터뷰, 문서를 참조하여야 한다.

 

14. 요구 추출 방법에 대한 설명으로 적합하지 않은 것은? 라

 가. 관찰 - 사용자의 업무를 관찰하며 메모하여 감추어진 문제를 잘 드러낸다.

 나. 인터뷰 - 관련 당사자를 만나 질의 응답하여 정확한 요구를 추출할 수 있다.

 다. JAD 회의 - 여러 사람이 모인 그룹에서 아이디어를 타진하므로 효과적으로 요구를 추출할 수 있다.

 라. 설문 - 설문지를 통하여 다수의 사용자에게 설문하여 요구에 대한 빠른 피드백을 줄 수 있다.

 

15. 요구를 정의하는 과정을 바르게 나열한 것은? 나

 가. 기능, 비기능 종류 결정 -> 요구 취합 -> 요구 리스트 정의

 나. 요구 취합 -> 기능, 비기능 종류 결정 -> 요구 리스트 정의

 다. 요구 취합 -> 요구 리스트 정의 -> 기능, 비기능 종류 결정

 라. 기능, 비기능 종류 결정 -> 요구 리스트 정의 -> 요구 취합 

 

16. 다음 중 비즈니스 프로세스 분석 작업의 순서를 바르게 나열한 것은? 다

 가. 새 시스템의 요구를 정의 -> 개선할 점을 파악 -> 현재 상황을 이해

 나. 현재 상황을 이해 -> 새 시스템의 요구를 정의 -> 개선할 점을 파악

 다. 현재 상황을 이해 -> 개선할 점을 파악 -> 새 시스템의 요구를 정의

 라. 새 시스템의 요구를 정의 -> 현재 상황을 이해 -> 개선할 점을 파악

 

17. 다음에 설명한 비즈니스 프로세스 분석 방법은 무엇인가? 다

 조직이 수행하는 프로세스의 기본 틀을 수정하는 것으로 잠재적 비즈니스 가치가 매우 크다. 따라서 비용도 많이 들며 위험이 크다.

 가. 비즈니스 프로세스 자동화

 나. 비즈니스 프로세스 개선

 다. 비즈니스 프로세스 리엔지니어링

 라. 비즈니스 프로세스 재구조화

 

18. 요구 취합 방법을 바르게 설명하지 않은 것은? 나

 가. 인터뷰는 현재, 미래 시스템에 대하여 자세한 정보를 깊이 있게 찾아낼 수 있으나 정보를 통합하는 데 시간이 많이 걸린다.

 나. JAD 회의는 주로 현재 시스템에 대한 정보를 제공하며 정보 통합이 어렵고 사용자의 참여가 어렵다.

 다. 설문은 많은 사람들의 정보나 의견을 필요로 할 때 사용하며 주로 현재 시스템이나 개선에 대한 정보를 제공한다.

 라. 서류 분석과 관찰은 비용이 적게 드나 광범위한 출처로부터 다양한 정보를 제공받는다.

 

19. 요구 분석서에 포함될 내용이 아닌 것은? 다

 

 가. 문제 정의와 시스템 개요

 나. 기능 리스트

 다. 소프트웨어 구조도

 라. 사용 사례

 

20. 요구 분석을 검토하기 위한 체크 리스트에 포함될 내용이 아닌 것은? 라

 가. 개발 비용의 투자 효과가 있는가?
 나. 현재 당면한 문제를 해결하고 있는가?
 다. 명확하고 모호한 점이 없는가?
 라. 모듈이 시스템의 기능을 만족하는가?

 

 

반응형