1.요구분석 기법
(1)요구공학
소프트웨어의 요구사항을 식별,분석,문서화 하고 이를 관리하는 과정
(2)요구공학의 필요성
품질개선
리스크 감소
비용 절감
효율적인 프로젝트 관리
사용자와 개발자 간의 소통개선
(3)요구사항 개발 프로세스
도출 > 분석 > 명세 > 확인
1)요구사항 도출
사용자와 이해관계자들로 부터 요구사항을 수집한다. 인터뷰,설문조사,브레인스토밍,워크샵 등등
2)요구사항 분석
수집된 요구사항의 불완전한,모호한,중복되는,충돌하는 사항을 찾아내고 수정
실제 구현가능한지, 가능한 경우 우선순위를 결정
구조적 분석도구 > 절차지향언어에서 쓴다. 나중에 자세히 배움
DFD : 자료 흐름도
Data Dictionary : 자료 사전
Mini-Spec : 소단위 명세서
ERD : 개체 관계도
STD : 상태 전이도
객체지향 분석 도구 > JAVA 등에 쓰인다
UML
모델링 > 앞으로 모델링이라 하면 그림그리는것! 이라고 생각하면 된다.
3)요구사항 명세
분석된 요구사항은 명세서 형태로 정리한다.
시스템이 수행해야 할 기능, 성능, 제약 조건등을 포함한다
구분 | 정형 명세 기법 | 비정형 명세 기법 |
기반 | 수학,논리학 | 자연어,그림 중심 |
작성기법 | 수학적 기호, 정형화된 표기법 | 일반 명사, 동사 등의 자연어. 다이어그램 |
장점 | 명세 오류 및 모호성 쉽게 파악 | 사용자/개발자 간의 의사전달 용이 |
단점 | 작서이 어렵고,시간이 많이 걸림 | 내용이 모호,완전한 검증이 곤란 |
언어종류 | VDM, Z, Petri-net, CSP | FSM, ER모델링 등등 |
↑언어종류 중 Z가 어디에 포함되는지 가끔나온다.
분류 | 기능 요구사항 | 비기능 요구사항 |
설명 | 시스템이 어떤 기능을 수행해야 하는지 정의. 예)웹사이트에서 사용자는 로그인을 해야한다. 사용자는 주문을 할 수 있어야 한다. 등등 | 시스템이 어떻게 동작해야 하는지에 대한 요구사항. 품질 관련 특성이나 제약 사항. 시스템의 성능,보안,가용성,유지 보수성 등. 예)이걸 누르면 0.0001초 안에 접속되야한다. 이건 어떤 권한을 가진 사용자만 접속된다. |
↑이거 잘나온다.
4)요구사항 확인 및 검증
이해 했는지 확인하고 요구사항 문서가 일관성 있고 완전한지 검증
(4)요구사항 분석 기법
인터뷰,브레인스토밍
원인-효과 다이어그램 : 문제의 원인과 결과를 시각화 하는 다이어그램을 만들어서 분석
프로토타이핑 : 시제품을 만들어서 보여주는 것
사용사례 : 사용자가 사용하는 과정을 스토리보드 형태로 묘사
요구사항 검토 : 전문가 팀이 검토하여 불완전한, 모호한,중복되는,충돌하는 요구사항을 찾아낸다.
2.UML > Unified Modeling Language)
(1)UML개념
소프트웨어 시스템을 시각화 및 문서화 하고, 소프트웨어 시스템의 구조와 동작을 명세하는 표준화된 모델링 언어
> 표준화하게 그림그려놓은 언어!
(2)UML특징
1)가시화 언어 : 시스템의 구조와 동작을 시각적으로 표현해서 이해하기 쉽게함.
2)명세화 언어 : 표준화된 언어로 요구사항과 기능을 명세하는데 사용
3)구축언어 : 이걸 보고 개발자들이 개발할때 쓴다. 객체지향 소프트웨어 개발에서 중요한 역할을 한다
4)문서화 언어 : 기능,구조,동작 등을 표준화된 형태로 문서화하여 개발과정에서의 커뮤니케이션을 개선, 유지보수에 도움.
(3)UML 구성요소 > 잘나온다.
1)사물(Things) : 모델을 구성하는 가장 중요한 기본요소. 다이어그램 안에 관계가 형성될 수 있는 대상
2)관계 : 사물과 사물 사이 연관성
3)다이어그램 : 사물과 관계를 도형으로 표현
↑여기까지가 기본 구성요소
스테레오타입 : 기본 구성요소에 추가적인 의미를 부여하는데 사용되는 확장 메커니즘
↑얘는 기본/필수 요소 아니다
(4)사물(Things)
1)구조사물 : 시스템의 개념적, 물리적 요소
2)행동사물 : 시간과 공간에 따른 요소들의 행위
3)그룹사물 : 요소들을 그룹으로 묶은 것
4)주해사물 : 부가적 설명이나 제약조건
(5)관계
1)일반화 관계 > 상속
한 클래스가 다른 클래스를 포함하는 상위 개념일때
예)가전제품이라는 클래스 안에는 세탁기,티비,냉장고 등 다른 클래스가 포함된다.
2)연관 관계 > 내가 어떤것을 사용한다!
2개 이상 사물이 서로 관련된 관계
한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 표시
예) 사람 → 휴대폰
3)의존 관계 > 연관 관계와 비슷한데 좀 다름
연관 관계와 차이점은 두 클래스의 관계가 한 메서드를 실행하는 동안과 같이 매우 짧은 시간만 유지 > 잠깐만 쓰는것
예) 학생 → 색연필
4)실체화 관계
인터페이스를 구현받아(리모컨 껍데기) 추상 메서드를 오버라이딩 하는 것(선풍기 리모컨, 티비리모컨)
예)리모컨 껍데기 라는 깡통에 선풍기 리모컨 기능, 티비 리모컨 기능을 오버라이딩 하는 것
5)집합 관계 中 집약관계(Aggregation)
한 객체가 다른 객체를 소유하는 'has a' 관계
전체 객체의 라이프타임과 부분 객체의 라이프 타임은 독립적 > 간장이 다 떨어져도 불고기 할 수있다.맛이없을뿐.
전체 객체가 사라진다 해도 부분 객체는 사라지지 않는다. > 불고기를 다먹었다고 집안에 간장이 사라지진 않는다.
6)집합 관계 中 합성관계(Composition)
부분 객체가 전체 객체에 속하는 관계로 긴밀한 필수적 관계
전체 객체의 라이프 타임과 부분 객체의 라이프 타임은 의존적 > 책상다리가 없으면 책상은 기능을 못한다. 간장과 다름
전체 객체가 없어지면 부분 객체도 없어짐 > 책상이 박살나면 책상다리도 박살난거임. 다리만 살아남진 못함.
'정보처리기사 필기' 카테고리의 다른 글
[정보처리기사 필기] Part.1소프트웨어 설계 - chapter.1 요구사항 확인 - Section1. 현행 시스템 분석 (0) | 2024.01.07 |
---|