[1과목-소프트웨어설계]요구사항 및 분석모델 확인
#요구사항 확인
#분석모델 확인
도출 (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) 이나 프로그램의 개발 및 유지 용이
-반복적 업무에 벗어나, 창의적 업무 몰두
-소프트웨어의 점진적 개발 가능
-소프트웨어의 재활용성 재고
-모든 들이 그림으로 표현되어 있기 때문에 개발자들 간 정보시스템의 공유 쉬업