본문 바로가기
정보처리기사 필기

[정보처리기사 필기] Part.1소프트웨어 설계 - chapter.1 요구사항 확인 - Section2. 요구사항 확인(1)

by EasyInfoWorld 2024. 1. 7.

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)

부분 객체가 전체 객체에 속하는 관계로 긴밀한 필수적 관계

전체 객체의 라이프 타임과 부분 객체의 라이프 타임은 의존적 > 책상다리가 없으면 책상은 기능을 못한다. 간장과 다름

전체 객체가 없어지면 부분 객체도 없어짐 > 책상이 박살나면 책상다리도 박살난거임. 다리만 살아남진 못함.