정처기/정보처리기사

[1과목-소프트웨어설계]요구사항 및 분석모델 확인

onlyun 2024. 1. 19. 01:17

 

#요구사항 확인

#분석모델 확인

 

도출
(Elicitatio)
분석
(Analysis)
명세
(Specification)
확인
-(Validation)
-이해관계자들 간 의사소통 중요 -상충되는 요구사항 해결, 소프트웨어 범위 파악 -시스템 정의서
-시스템 요구사항 명세서
-소프트웨어 요구사항 명세서
검토
-요구사항 이해 확인

 

 

Ⅰ. 요구사항 분석 기법 📌암기

1-1. 요구사항 분류

ⓐ 요구사항이 기능인지 비기능인지 ⭐

ⓑ 요구사항이 하나 이상의 고수준 요구사항으로부터 유도된 것인지

   또는 이해관계자나 다른 원천으로부터 직접 발생한 것인지?

ⓒ 요구사항이 제품에 관한 것인지 프로세스에 관한 것인지?

ⓓ 우선순위가 더 높은 것인지?

ⓔ 요구사항의 범위 - 요구사항이 소프트웨어에 미치는 범위

ⓕ 요구사항이 소프트웨어 생명 주기 동안에 변경이 발생하는지?

 

**기능 / 비기능  

✅매년 출제되고, 갈수록 문장이 길어지고 애매모해지니까 정확하게 알아둘 것

-기능 : 

-비기능 : 속성

ex) 음료수 자판기 만들 때,

콜라 버튼을 누르면 콜라가, 사이다 버튼을 누르면 사이다가 나와야 한다. -- 기능

음료수가 빠르게 나와야 한다 -- 비기능

음료수가 나올 때, 소음이 적어야 한다 -- 비기능

 

ex) 기능

금융시스템은 조회, 인출, 입금, 송금 등의 기능이 있어야 한다는 기능적 요구

 

ex) 비기능

- 시스템 구축과 관련된 안전, 보안에 대한 요구사항은 비기능적 요구에 해당

- 시스템 처리량, 반응시간 등의 성능 요구품질 요구는 비기능적 요구에 해당

- 차량 대여 시스템이 제공하는 모든 화면이 3초 이내에 보여야 한다는 것은 비기능적 요구

→ 제약조건이 걸린 것은 비기능적 요구에 해당

 

----- ↓ 내용을 한번 읽는 정도 -----

 

2. 개념 모델링(Conceptual Modeling)

-요구사항 분석 핵심 : 실세계 문제에 대한 모델링

-UML(Unified Modeling Language) 사용

-사용 시나리오 표시는 유스케이스 다이어그램 많이 사용

 

[문제]소프트웨어 모델링과 관련한 설

ⓐ 모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 있다.

ⓑ 구조적 방법론에서는 DFD, DD 등을 사용하여 요구사항의 결과를 표현한다.

ⓒ 객체지향 방법론에서는 UML 표기법을 사용한다.

ⓓ 소프트웨어 모델을 사용할 경우, 개발될 소프트웨어 대한 이해도 및 이해 당사자 간의 의사소통 향상에 도움이 된다.

 

3. 요구사항 할당(Requirement Allocation)

-아키텍쳐 구성요소 식별

 

4. 요구사항 협상

-상충되는 내용을 조율

-우선순위 부여 : 중요한 요구사항 필터링 가능, 요구사항들 간 상충되는 문제를 해결하는데 사용

 

5. 정형 분석(Formal Analysis)

-형식적으로 정의된 시맨틱을 지닌 언어로 요구사항 표시

-정확, 명확하게 표현 :: 오해 최소화

-요구사항 분석 마지막 단계에서 수행

비정형 명세기법 정형 명세기법
-자연어 기반 서술
-애매모호한 표현으로 다르게 해석될 가능성 존재
-수학적 원리와 표기법
-Z 정형 명세 언어

 


ⅡUML(unified Mdeling annalysis)

-객체지향 설계를 위한 표준언어

-시스템을 시각적 모델링하는 언어

 

1. UML 구성요소 📌암기

1-1. 구성요소

구성요소 설명
사물 (Thing) (기본요소), 시스템의 구조, 시스템의 행위, 개념의그룹화, 부가적인 개면설명
관계(Relationship) 의존관계, 연간관계, 일반화관계, 실체화환 관계
다이어그램(Diagram) -구조 다이어그램 : 클래스, 오브젝트, 컨포넌트, 배치
-행위 다이어그램 : 유스케이스, 순차, 통신, 상태 등)

 

1-2. UML 활용 다이어 그램

다이어그램
정적 모델(시스템 구조)
Structual Diagram
동적 모델(시스템 행위)
Behavioral
클래스 다이어그램(Class) 유스케이스 다이어그램(Use-case)
객체 다이어그램(Obejct) 순차 다이어그램(sequence)
컴포넌트 다이어그램(Component) 통신 다이어그램(Communication)
배치 다이어그램(Deployment) 상태 다이어그램(Sate)
하나의 객체가 가진 상태와 그 상태의 변화에 의한 동작순서
  활동 다이어그램(Activity)

 

 

1-3. 유스케이스 다이어그램

-사용자 관점에서 기술한 다이어그램

-시스템 범위 결정 (누가 시스템을 사용하 것인지? 등등)

구성요소 설명 기타
시스템 -만들려는 어플리케이션
-사각형을 그리고 시스템 명칭 작성
 
액터 -시스템 외부에서 시스템과 상호작용하는 사람 or 다른 시스템
유스케이스 시스템이 액터에게 제공하는 기능
관계 액터와 유스케이스 관계
ⓐ연관관계,
ⓑ의존관계(포함 및 확장),
ⓒ일반화관계
 

 

 

**관계 설명

관계 설명  
연관관계  
포함관계  
확장관계  
일반화관계 -유사한 유스케이스/액터를 모아 추상화한 유스케이스와 연결 시켜 그룹핑

 

 

1-4. 유스케이스 만든 순서

엑터 식별 ▶ 유스케이스 식별   관계 정의

 

1-5. 스테레오 타입(Stereo Type)

-UML, 추가적인 확장요소

-길러멧(guillemet,《》)사이에 적는다.  ex) 《interface》, 《abstract》

 


Ⅲ 검증하기

1. 요구사항 검증하기

 > 업무기능에 대한 요구사항이 요구사항 목록에 모두 반영되었나?

 > 요구사항 정의서 작성했나?

 > 비기능적 요구사항이 명확하게 도출되었나?

 > 타 시스템과 연계 및 인터페이스에 대한 요구사항이 적절히 도축되었는지 체크

 

2.분석모델 검증하기

 > 분석모델까지 요구사항 추적표를 작성하고 검토 의견 컬럼 추가

 > 작성된 요구사항 추적표에 검토의견 작성

 > 요구사항 추적표에 검토의견 정제

 


Ⅳ 분석 자동화 도구 - CASE(Computer Aided Software Engineering)

-자동화 지원 소프트웨어 도구 제공, 개발자의 반복적인 작업량을 줄임

-문서 생성과 개발팀 간의 협업에 도움

-그래픽 기능으로 PC에서 운영

ex) 그래픽 기능(차트, 다이어그램), 데이터사전, 분석과 감시도구 등

 

1. 장점

-구조적인 것들을 그대로 활용 가능

-교차 참조도와 보고서를 통함 결함, 생략, 불일치 반경 용이

-요구 정보 추출 후, 분석하는 것에 도움

-원형(Prototype) 이나 프로그램의 개발 및 유지 용이

-반복적 업무에 벗어나, 창의적 업무 몰두

-소프트웨어의 점진적 개발 가능

-소프트웨어의 재활용성 재고

-모든 들이 그림으로 표현되어 있기 때문에 개발자들 간 정보시스템의 공유 쉬업