03. 분석모델 확인
모델링기법
개념
복잡한 시스템을 쉽게 이해하기 위해 불필요한 부분을 생략하고 추상화하여 간단한 모델로 표현하는 것을 의미
소프트웨어를 구성하는 모듈들을 식별하고, 이것들의 연결을 그림으로 표현
요구분석 과정에 의해 수집된 개념과 정보를 분석하여 UML과 같은 방법을 이용하여 모델로 비주얼화
주는 도움
소프트웨어를 이해하는 데 도움
이해관계자들 사이에서 문제를 해결할 수 있도록 해줌
파악한 개념을 사용자와 고객에게 전달할 때 도움을 줌
설계, 구현, 테스팅, 유지보수에 개념적인 기준을 제공
구분
기능적 모델링
- 시스템의 기능 사용자 관점에서 나타냄
정적 모델링
객체 간의 관계를 나타냄
클래스 다이어그램을 주로 이용
동적 모델링
시간의 흐름에 따라 객체들을 모델링
상태 다이어그램(상태도)을 주로 이용
분석 모델의 종류
구조적 분석 모델
구조적 분석 방법론
- 도형화된 도구를 이용해 정형화된 분석 절차에 따라 사용자 요구사항을 파악하고 문서화하는 분석 기법
- 사용하는 도구 : 자료흐름도(DFD), 자료사전(DD), 소단위 명세서(Mini-spec)
- 하향식 기능 분해 기법 등을 사용하는 특성
구조적 분석 도구
자료 흐름도 | Data Flow Diagram
- 가장 보편적으로 사용되는 시스템 모델링 도구로서, 기능 중심의 시스템을 모델링하는데 적합
- 자료의 흐름과 처리 과정을 도형 중심으로 기술
- 자료 흐름 그래프 또는 버블 차트라고도 함
구성요소 설명 기호 처리 과정
Process자료를 변환시키는 처리 과정을 나타냄 ○ 자료 흐름
Data Flow자료의 이동을 나타냄 >자료 저장소
Data Store파일, 데이터베이스 등 자료가 저장되는 곳을 나타냄
단말
Terminator데이터의 입출력 주체(사용자)를 나타냄 □
자료 사전 | Data Dictionary
- 자료흐름도에 기술된 모든 자료들에 대한 사항을 자세히 정의
기호 의미 설명 = 정의 ~로 구성 + 연결 and, 순차 ( ) 생략 생략 가능한 자료 [ l ] 선택 여러 대안 중 하나 선택 { } 반복 자료의 반복 ** 설명 주석
- ex) 정보는 번호, 이름, 집번호, 휴대폰번호로 구성되어 있고, 집번호와 휴대폰번호는 둘 중 하나만 선택이 가능
정보 = 번호 + 이름 + [ 집번호 | 휴대폰번호 }
소단위 명세서 | Mini Specification
- 자료흐름도에서 어떤 일이 수행되는지를 정의하기 위해 각 처리들이 수행하는 업무를 상세하게 작성
- 프로세스 명세서라고도 함
- 구조적 언어이며 서술문장, 그래프, 선후 조건문, 의사결정표 등이 사용
개체 관계도 | Entity Relationship Diagram
- 시스템에서 처리되는 개체(자료)와 개체의 구성과 속성, 개체간의 관계를 표현하여 자료를 모델화하는 데 사용
- 데이터베이스 설계의 표현으로 사용
속성 설명 기호 개체Entity 업무의 중심이 되는 실체 □ 속성Attribute 업무에 속하는 구체적인 항목 ○ 관계Relationship 업무와 업무의 연관관계 ◇
상태 전이도 | State Transition Diagram
- 시스템에 어떤 일이 발생할 경우 시스템의 상태와 상태 간의 전이를 모델화
- 상태 전이도를 통해 개발자는 시스템의 행위를 정의
객체지향 분석 모델
객체 지향 분석 모델
- 사용자의 요구사항을 분석하여 구조(클래스), 연산(행위), 속성, 그들 간의 관계 등을 정의하여 모델링하는 작업
- 상향식 방식
객체지향 분석 방법론
Rumbaugh
- 가장 일반적으로 사용되는 방법
- 분석 활동을 객체 모델, 동적 모델, 기능 모델로 나누어 수행
종류 설명 객체 모델링
Object Modeling- 시스템에서 요구되는 객체를 찾아내어속성과 연산 식별 및 객체들 간의 관계를 규정해 객체 다이어그램으로 표현
- 세 가지 모델 중 가장 선행되어야 함동적 모델링
Dynamic Modeling- 상태 다이어그램을 이용하여 시간의 흐름에 따라 제어 흐름, 동작 순서 등 동적인 행위 표현
- 객체나 클래스의 상태, 사건을 중심으로 표현기능 모델링
Functional Modeling- 자료 흐름도를 이용해 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정 표현
- 어떤 데이터를 입력하여 어떤 결과를 구할 것인지를 표현
Booch
- 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 분석 방법
Jacobson
- Use case를 강조하여 사용하는 분석 방법
Coad & Yourdon
- E-R Diagram을 사용하여 객체의 행위를 모델링
Wirfs-Brock
- 분석과 설계 간의 구분 없음
- 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행
정보공학 분석 모델
자료에 중점을 두어 자료와 프로세스를 별개의 작업으로 병행 진행한 뒤에는 서로간의 오류를 상관분석을 통해 검증
기업 전체 또는 기업의 주요부분을 계획, 분석, 설계 및 구축에 정형화된 기법들을 상호 연관성 있게 통합, 적용하는 데이터 중심 방법론
정형화 분석 모델
분석자동화 도구
CASE | Computer Aided Software Engineering
개념
소프트웨어 개발과정 일부 또는 전체를 자동화하기 위한 도구
소프트웨어 개발과정을 컴퓨터와 전용 소프트웨어가 도움을 주는 것
작업 과정 및 데이터 공유를 통해 작업자 간의 커뮤니케이션 증대
주요 기능
S/W 라이프사이클 전 단계의 연결
모델들 사이의 모순 검사
모델의 오류 검증
자료 흐름도 등 다이어그램 작성
다양한 소프트웨어 개발 모형 지원
시스템 문서화 및 명세화를 위한 그래픽 지원
표준화된 개발 환경 구축 및 문서 자동화 기능 제공
원천 기술
구조적 기법(객체지향 시스템에도 활용)
프로토타이핑 기술
자동 프로그래밍 기술
정보 저장소 기술
분산 처리 기술
분류
상위 CASE 생명주기 전반부에 사용되며, 소프트웨어의 계획와 요구분석, 설계 단계를 지원
모순검사, 오류검사, 자료흐름도 작성 등의 기능을 수행
하위 CASE
생명주기 후반부에 사용되며, 코드의 작성과 테스트, 문서화 하는 과정을 지원
구문 편집기, 코드 생성기 등의 기능을 수행
통합 CASE
- 소프트웨어 생명주기에 포함되는 전체 과정을 지원
종류
- 비용 측정 도구
- SLIM (Putnam 모형의 근거)
- 요구 분석용 도구
- PSL/PSA
- SREM
- SYSREM
- 설계 도구
- DARTS
- StateMATE
- SSD
- STP
- ARTFIX
- 통합 도구
- TAGS
- PROMOD
HIPO | Hierarchical Input Process Output
개념
하향식 소프트웨어 개발을 위한 문서화 도구
시스템의 기능을 여러 개의 고유 모듈들로 분할하여 이들 간의 계층구조를 표현한 도표
기능
분석 및 설계 도구로 사용
하향식 개발에 적합
체계적인 문서관리에 효율적
기능과 자료의 의존관계를 명시
종류
가시적 도표 Visual Table of Content - 시스템의 전체 기능과 흐름을 보여주는 계층(Tree) 구조
- 입력, 처리, 출력 없음
총체적 도표 Overview Diagram - 프로그램을 구성하는 기능을 기술한 것
- 입력, 처리, 출력에 대한 전반적인 정보 제공
세부적 도표 Detail Diagram - 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표
- 총체적 도표와 같은 모양이지만 내용만 좀 더 복잡하게 들어간 형태
요구사항 관리 도구
개념
고객의 요구사항을 파악하여, 우선순위를 부여하여 적용하고, 추적하고, 보고할 수 있도록 도움을 주는 도구
협업, 히스토리 추적, 우선순위 책정 및 적용, 상태 보고, 보고 요약, 요구사항 추적성 등의 기능을 제공
선정 시 고려사항
다중 언어 지원
요구사항 정의와 식별
요구사항 검증 및 그래픽적 표현
요구사항 형상과 변경관리
요구사항의 재사용
문서화
보고서와 대시보드
다른 도구와의 인터페이스
종류
Helix RM
Jira
Orcanos
ReQtest
Visure Requirements
Redmine