정보처리기사 1과목. 소프트웨어 설계
Chapter 01. 요구사항 확인
[2]. 요구사항 확인
(1) 요구분석 기법
1. 요구분석의 개념
* 도출된 요구사항 간 상충을 해결, 소프트웨어의 범위를 파악하여 외부 환경과의 상호작용을 분석하는 과정
** 외부환경 <-> 시스템의 상호작용 분석
* 개발 대상에 대한 사용자의 요구사항 중 모호하여 이해가 되지 않는 부분 걸러내기 위한 과정
2. 특징
* 문서화 ~ 향후 유지보수에 활용, 소단위 명세서 활용
3. 요구분석 기법
요구사항 기술시에는,, 요구사항 확인 (Validation), 요구사항 구현의 검증(Verification), 비용추정이 가능토록,,
1) 요구사항 분류
* 기능?비기능?
* 요구사항이 소프트웨어에 미치는 영향의 범위 파악
* 소프트웨어의 생명주기동안 변경이 발생하는가?
* 하나 이상의 상위 요구사항에서 유도된 것인지 or 이해 관계자나 다른 원천으로부터 발생한 것인지 분류
2) 개념모델링 생성 및 분석
* 모델 : 쉬운 이해를 위한.. 상황 단순화, 개념적 표현
* 모델링 : 모델 만드는 과정
* 주로 UML을 사용
3) 요구사항 할당
* 아키텍처 구성요소 식별, 상호작용 분석 ~ 추가 요구사항 발견
4) 요구사항 협상
5) 정형 분석
* syntax와 semantics를 갖는 정형화된 언어를 사용하여 수학적 기호로 표현
4. 요구사항 분석 기술
: 청취, 인터뷰&질문, 분석, 중재, 관찰, 작성, 조직, 모델작성 기술
5. 요구사항 분석에 사용하는 기능 모델링 기법
1) 데이터 흐름도
* Data flow diagram : DFD
* 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습
* 시스템 분석 및 설계시 유용, 가장 보편적으로 사용되는 시스템 모델링 도구
* 자료흐름 그래프 혹은 버블차트 라고도 함.
* 구조적 분석기법에 이용
* 데이터 흐름 O 제어의 흐름, 시간의 흐름 X
* 구성요소 : 처리기, 데이터 흐름, 데이터 저장소, 단말
2) 자료사전
* Data Dictionary : DD
* 자료, 자료집합, 자료 흐름, 자료 저장소의 의미, 관계, 관계값, 범위, 단위의 구체적 명시
* 조직에 속한 타인들에게 특정 자료 용어 ~ 의미, 용어 정의 조정 및 취합, 문서화
* = is Composed of '~으로 구성되어 있다' 자료의 정의
* + and, along with
* {} 자료의 반복
* [] 자료의 선택
* ** 주석
* 자료사전 작성 원칙 : 자료의 의미 기술, 구성항목의 기술, 동의어 규정 준수, 자료정의 중복제거
(2) UML
1. UML : Unified Modeling Language
* 객체지향 소프트웨어 개발 과정 ~ 산출물의 명세화, 시각과, 문서화시 사용되는 모델링 기술/방법론을 통합 ~ 범용 표준 모델링 언어
* 가시화 언어 : 개념모델 작성 시 오류 줄이고, 의사소통은 높임
* 구축 언어 : 다양한 프로그래밍 언어로 실행 시스템의 예측이 가능, UML을 소스코드로 변환, 역변환하여 역공학 가능
** 역공학 : RE 리버스 엔지니어링; 구조분석을 통해 시스템의 기술적 원리 발견, 단점보완 및 아이디어 추가
* 명세화 언어 : 정확한 모델 제시, 완전한 모델 작성 가능
* 문서화 언어 : 시스템에 대한 평가 및 의사소통의 문서
2. UML 구성요소
* 사물 Things : 추상적 개념, '주제' /명사 or 동사
* 관계 : 사물의 의미 확장 + 명확성, 사물 사이의 관계/형용사 or 부사
* 다이아그램 : 사물 + 관계 > 그림으로 표현
3. UML 다이어그램
1) Structural/Static Diagram 구조적/정적
- class
* 시스템 내 클래스의 정적 구조 표현
* Attribute / Behavior
* 시스템 구조 파악, 구조상 문제점 도출 O
- object
* class에 속한 객체 즉 instance를 특정 시점의 객체와 객체 사이의 관계로 표현
**https://victor8481.tistory.com/280 <<인스턴스에 대한 설명은 여기
* 객체의 인스턴스 나타내는 대신 실제 클래스 사용, 연관된 모든 인스턴스 표현
- component
* 코드 컴포넌트 기반 물리적 구조표현, 실질적 프로그래밍 작업에 사용
- deployment
* 컴포넌트 사이 종속성 표현, 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치표현
- composite structure
* 클래스 or 컴포넌트가 복합 구조를 갖는다면 그 내부 구조를 표현
- package
* usecase 나 class 등의 모델 요소들을 그룹화한 패키지들의 관계 표현
2) Behavioral/Dynamic Diagram 행위적/동적
- usecase
* 사용자 관점 ~ 시스템 활동 표현
* 시스템의 기능적 요구정의에 활용
- sequence
* 객체간 상호작용 ~ 메시지의 흐름으로 표현, 메시지 보내는 시간 표현
- communication
* 객체 사이의 메시지 + 객체간 연관까지 표현
- state
* 한 객체가 속한 클래스의 상태변화 or 다른 객체와의 상호작용에 따라 상태변화 표현
* 모든 가능한 상태변화 및 전이/ 진입조건, 탈출조건, 상태전이 등을 기술
- timing
* 객체 상태변화 및 시간 제약의 명시적 표현
'---------------2021 > 정보처리기사' 카테고리의 다른 글
[정처기]2021-1018 (분석 모델 확인) (0) | 2021.10.18 |
---|---|
[정처기]2021-1016 (UML,애자일) (0) | 2021.10.18 |
[정처기]2021-1012 (0) | 2021.10.14 |