본문 바로가기

자격증/정보처리기사 1과목

1-6강. 요구사항 확인-분석모델 확인(1)

과목1. 소프트웨어 설계, 6강. 요구사항 확인-분석모델 확인(1)

 

[ 목차 ]

1. 모델링의 개념

2. 개념 모델링의 역할

3. 개념 모델링 과정

4. 개념 모델의 종류와 표기법

5. UML 다이어그램의 사용

6. 분석모델 검증

7. 유스케이스 모델 검증

8. 개념수준 분석 클래스 검증

9. 분석 클래스 검증

 

1. 모델링의 개념

1) 실세계의 물리현상을 특정한 목적과 일정한 표기법에 맞춰 이용하기 쉬운 형식으로 표현하는 일

2) 요구사항을 표준화된 약속(UML)으로 표현하여 의사소통

 

2. 개념 모델링의 역할

1) 실세계 문제에 대한 모델링이 소프트웨어 요구사항 분석의 핵심이며 모델은 문제가 발생하는 상황에 대한 이해를 증

    진시키고 해결책을 설명

2) 개념 모델은 문제 도메인의 엔터티들과 그들의 관계 및 종속성을 반영

엔티티  : =개체, 사람이 생각하는 개념이나 정보 단위와 같은 현실 세계의 대상체

3. 개념 모델링 과정

1) 도메인 분석

2) 도메인 개념 : 프로세스, 기능, 역할, 비즈니스 규칙

3) 기능적 모델링 : Use Case

4) 정적 모델링 : class, object, component, deployment

5) 동적 모델링 : statae, sequence, collaboration, communication, activity

 

4. 개념 모델의 종류와 표기법

1) 대부분의 모델링 표기법은 UML을 사용

2) 유스케이스 다이어그램, 상태 모델, 목표기반 모델, 사용자 인터액션, 객체 모델, 데이터 모델

3) 데이터 흐름 모델 : 데이터가 시스템에 의해서 어떻게 처리되는지 보여주는 직관적인 방법

4) ER 모델 : 개체와 개체간의 관계를 도식화하는 모델로 1976년 P.Chen이 개발

5. UML 다이어그램의 사용

1) 사용 시나리오를 나타내기 위해 유스케이스 다이어그램이 많이 사용

2) 구조 다이어그램은 시스템의 정적 구조와 다양한 추상화 및 구현 수준에서 시스템의 구성요소, 구성요소들의 관계

    보여줌

3) 행위 다이어그램은 시스템 내의 객체들의 동적인 행위를 보여주며, 시간의 변화에 따른 시스템의 연속된 변경을 설명

사용 시나리오 : 사용자가 프로그램을 사용하는 대략적인 줄거리

구조 다이어그램 : 클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램, 배치 다이어그램

행위 다이어그램 : 액티비티 다이어그램, 상태 다이어그램

6. 분석모델 검증

1) 정보시스템의 분석설계가 잘 도출되었는지 검증

2) 단계 : 유스케이스 모델 검증 - 개념수준 분석 클래스 검증 - 분석 클래스 검증

             - 액터                           - 클래스 도출                      - 스테레오 타입

             - 유스케이스                 - 클래스 명과 속성              - 경계 및 제어 클래스 도출

             - 유스케이스 명세서      - 클래스들 간 관계              - 관계 및 상세화 정도

 

7. 유스케이스 모델 검증

1) 한국정보화진흥원의 정보시스템 감리지침에서는 시스템 기능에 대한 유스케이스 모형 상세화 수준 및 적정성에 대하

    여 다음과 같은 사항을 점검

2) 액터

  1] 기능 구현에 관계되는 액터가 모두 도출되었는가?

  2] 액터 목록에서 엑터명이 역할 중심으로 명명되었는가?

  3] 요구사항 정의서, 요구사항 기술서에 외부/내부 액터가 모두 도출되었는가?

  4] 액터 목록과 액터 명세서에 기록된 액터가 타당한가?

요구사항 정의서

ID
이름
유형 : 시스템과 외부 요소들 간의 인터랙션인 기능과 기능 이외의 사항인 비기능으로 구분
품질 속성
우선순위
중요도
출처
관련 부서
전제 조건
내용
관련 요구사항
버전
수용 여부

3) 유스케이스

  1] 요구기능 구현에 필요한 유스케이스가 모두 도출되었는가?

  2] 도출된 유스케이스를 논리적으로 연결하여 누락된 기능을 파악

  3] 도출된 유스케이스가 유스케이스 목록과 유스케이스 명세서에 반영 되었는가?

  4] 도출된 유스케이스의 논리적인 합이 과업 범위와 일치하는가?

  5] 도출된 유스케이스들이 논리적으로 그룹화 되었는가?

  6] 유스케이스 기능 범위가 다른 유스케이스 기능 범위와 중복되는가?

4) 유스케이스 명세서

  1] 유스케이스 명세서 형식에 중요 항목이 누락되지 않았는지 확인

  2] 유스케이스의 주요 이벤트 흐름이 모두 도출되고 논리적으로 타당한지 확인

  3] 유스케이스를 구현하기 위해 필요한 입출력 항목이 모두 도출되었는지 확인

 

8. 개념수준 분석 클래스 검증

1) 시스템의 주요 도메인 개념을 분석 클래스로 도출하여 유스케이스 분석에 활용하므로, 개념 수준의 주요 분석 클래스

    를 적절히 도출하였는지, 관련 정보가 명확한지 점검

2) 개념수준의 분석 클래스 도출

  1] 시스템의 주요 도메인 개념을 분석 클레스로 도출

  2] 각 유스케이스에 대한 명세서를 바탕으로 분석 수준의 클래스 모델을 작성

3) 주요 점검 항목

  1] 개별 유스케이스 단위로 작성하지 않고 시스템 전체를 대상으로 작성 했는가?

  2] 중요도가 높은 요구사항 또는 유스케이스에 필요한 엔터티 클래스가 도출되었는가?

  3] 도출된 클래스 이름과 설명이 이해관계자 간에 이견이 발생하지 않도록 명확한가?

  4] 클래스의 속성은 도출 했으며 도출된 속성의 이름과 설명이 정확한가?

  5] 클래스들 간에 순환적 관계가 불필요하게 정의되어 있는가?

  6] 클래스 간의 관계에서 다중성이 정의되었는가?

다중성

0..1 : 0 또는 1개의 인스턴스
0..* : 0을 포함한 무한대의 인스턴스(주문)
1 : 1개의 인스턴스
1..* : 1개 이상의 인스턴스
n..m : n에서 m까지의 인스턴스

9. 분석 클래스 검증

1) 유스케이스마다 분석 클래스가 적절히 도출되었고 제어 클래스의 도출 등이 충분하고 상세하게 도출되어 클래스의 역할, 클래스 간의 관계, 메시지 흐름 등을 확인할 수 있는지 검토

2) 유스케이스 실현(실체화)에 필요한 분석 클래스 도출 확인

  1] 하나의 유스케이스를 실현하기 위해 3개 이상의 클래스가 역할기준으로 도출되어야 함

  2] 유스케이스 별로 실현에 필요한 클래스가 추적 가능해야 클래스 누락 여부를 확인 가능

  3] 유스케이스 별로 도출된 분석 클래스들이 역할기준으로 경계,. 엔터티, 제어 클래스가 도출되어 스트레오 타입으로

       표시되었는지 확인

경계클래스의 종류

 

1) UI클래스, 사용자, 사용자와의 입/출력


2) SI클래스, 시스템, 외부 시스템과의 데이터 송/수신


3) DI클래스, 장치, 장치의 모니터링 및 제어

3) 경계와 제어 클래스의 도출 여부 및 상세화 정도 확인

  1] 유스케이스 실현에 필요한 분석 클래스들이 도출되었는지 확인하기 위하여 유스케이스 단위로 분석 클래스를 확인

경계

1) 유스케이스와 연결된 액터가 있고 액터의 유형이 시스템 또는 장비인 경우, 해당 액터를 위한경계클래스가 도출되었는지 확인하고 유스케이스의 이벤트 흐름을 참조하여 관련 기능을 처리하기 위한 연산이 도출되었는지 확인

2) 유스케이스 명세서의 이벤트 흐름을 확인하여 유스케이스에서 필요한 UI를 위한 경계 클래스가 도출되었는지 확인

3) UI를 위한 경계 클래스인 경우 사용자에게 제공할 항목이 속성으로 도출되었는지 확인하고 화면, 보고서 상의 데이터 타입, 길이가 경계 클래스 속성 정의와 일치하는지 확인

제어

1) 유스케이스 별로 제어 클래스가 1개 이상 도출되었는지 확인
2) 제어 클래스의 연산에 대응하는 엔터티 클래스가 있는지 확인
3) 유스케이스 명세서에 기술된 이벤트 흐름을 처리하기 위한 연산이 제어 클래스에 정의되어 있는지 확인 

4) 클래스 간의 관계, 클래스 정보의 상세화 정도 확인

관계

1) 유스케이스 명세서를 바탕으로 각 클래스 사이의 관계를 정의하였는지 확인

2) 관계의 다중성이 정확하고 모순이 없는지 확인

3) 2 개의 클래스 간에 1개 이상의 관계가 존재하면 관계명 또는 역할명이 정의되었는지 확인

연산 및 속성 상세화

1) 유스케이스 명세서를 바탕으로 클래스의 속성 및 연산이 도출되었는지 확인

2) 도출된 연산의 매개변수(명, 타입, 길이)와 리턴 타입이 정의되었는지 확인

3) 도출된 클래스의 속성(명, 타입, 길이)이 이해관계자 간에 이견이 없도록 명확하게 정의되었는지 확인

4) 경계 클래스의 속성과 화면/보고서의 항목, 엔터티 클래스의 속성 정보가 일관성을 가지는지 확인