소프트웨어 공학의 모든 것 , 최은만 , 생능
4장 요구 분석
연습문제 서술형
1. 기능 요구와 비기능 요구는 무엇인지 그 차이점 위주로 설명하라 (차이점 설명)
기능 요구는 시스템이 수행해야 할 특정 동작이나 작업을 정의하는 요구사항으로, 사용자가 원하는 기능적 동작을 명시한다. 예를 들어, “사용자가 상품을 검색할 수 있어야 한다는 기능 요구에 해당한다. 반면, 비기능 요구는 시스템의 성능, 품질, 사용성, 안정성 등을 규정하여 시스템이 어떻게 동작해야 하는지를 나타낸다. 예를 들어, “응답 시간은 2초 이내여야 한다”는 비기능 요구이다. 주요 차이점은 기능 요구는 시스템의 무엇을 수행할지를 다루는 반면, 비기능 요구는 **어떻게** 수행할지를 다룬다는 점이다.
2. 기능 요구 종류를 나열하고 예를 들어보라 (기능 요구 종류와 예시)
기능 요구의 종류는 다음과 같다.
- 사용자 인터페이스 요구: 시스템의 인터페이스에 대한 요구사항으로, 예를 들어, “로그인 페이지에 아이디와 비밀번호 입력 필드가 있어야 한다.”
- 데이터 관리 요구: 데이터의 생성, 수정, 삭제에 대한 요구로, 예를 들어, “사용자는 자신의 계정 정보를 수정할 수 있어야 한다.”
- 보안 요구: 시스템의 보안 요구사항으로, 예를 들어, “비밀번호는 암호화되어 저장되어야 한다.”
- 비즈니스 규칙 요구: 시스템이 따라야 할 비즈니스 규칙을 나타내며, 예를 들어, “할인 코드는 사용자가 한 번만 사용할 수 있어야 한다.”
3. 웹 기반 쇼핑몰에 대한 기능적 요구와 비기능적 요구를 찾아서 써라 (웹 기반 쇼핑몰 요구 사항)
- 기능적 요구
- 사용자는 상품을 검색할 수 있어야 한다.
- 사용자는 장바구니에 상품을 추가하고 제거할 수 있어야 한다.
- 사용자는 결제 페이지에서 결제 수단을 선택하여 주문할 수 있어야 한다.
- 비기능적 요구
- 웹사이트의 응답 시간은 3초 이내여야 한다.
- 모든 결제 과정은 HTTPS 프로토콜을 통해 안전하게 처리되어야 한다.
- 시스템은 하루 최대 10,000명의 동시 접속을 지원해야 한다.
4. 요구 추출 방법을 나열하고 어떤 특징이 있는지 비교 설명하라 (추출 방법 비교)
요구 추출 방법에는 **인터뷰**, **설문 조사**, **워크숍**, **관찰**, **프로토타이핑** 등이 있다.
- 인터뷰: 이해 관계자와 직접 대화하여 요구를 도출하는 방법으로, 심도 있는 정보 수집이 가능하나 시간과 비용이 많이 든다.
- 설문 조사: 많은 사람의 의견을 빠르게 모을 수 있으나 심층적인 답변을 얻기 어렵다.
- 워크숍: 여러 이해 관계자가 모여 요구를 논의하는 방식으로, 아이디어를 공유하고 합의를 이루기 쉽지만, 참여자들의 의견 조율이 필요하다.
- 관찰: 실제 환경에서 사용자의 행동을 관찰하여 요구를 도출하며, 사용자의 실제 사용 패턴을 이해할 수 있으나, 비밀스럽거나 잘 드러나지 않는 요구는 파악하기 어렵다.
- 프로토타이핑: 초기 시제품을 통해 요구를 확인하며, 사용자 피드백을 통해 요구 사항을 명확히 할 수 있으나, 개발 비용이 발생할 수 있다.
5. 휴대폰에서 전화를 걸려는 사람과 휴대폰 시스템 사이의 인터랙션을 유스케이스로 작성하라 (유스케이스 구성 요소)
- 간단한 설명: 사용자가 전화번호를 입력하고 통화를 시작하여 상대방과 통화하는 과정이다.
- 사전 조건: 사용자가 휴대폰 네트워크에 연결되어 있어야 한다.
- 이벤트: 사용자가 전화번호를 입력하고 통화 버튼을 누른다.
- 기본 흐름:
1. 사용자가 전화번호를 입력한다.
2. 사용자가 통화 버튼을 누른다.
3. 시스템이 통화 연결을 시도한다.
4. 상대방이 응답하면 통화가 시작된다.
- 확장 흐름: 사용자가 전화번호를 잘못 입력했을 경우, 시스템은 오류 메시지를 표시하고 다시 입력할 수 있도록 한다.
6. 홈쇼핑 회사의 다음 나열한 기능을 처리할 수 있는 시스템을 개발한다고 하자. 제품을 저장하는 창고를 관리, 고객의 전화 주문을 처리, 주문을 하루 만에 배달. 어떤 액터가 필요한지 나열하라. 위에서 발견한 액터들의 유스케이스를 나열하라 (액터와 유스케이스 식별)
- 액터: 창고 관리자, 고객 서비스 담당자, 배송 기사
- 유스케이스:
- 창고 관리: 창고 관리자는 제품을 입고하고 출고하며 재고를 관리한다.
- 주문 처리: 고객 서비스 담당자는 전화로 고객의 주문을 접수하고 결제 확인을 한다.
- 배송: 배송 기사는 하루 만에 주문된 제품을 고객에게 전달한다.
7. 현금자동인출기를 위한 시스템 유스케이스 다이어그램을 만들고 유스케이스 명세를 작성하라 (유스케이스 다이어그램 및 명세 작성)
- 유스케이스 다이어그램: 액터에는 사용자와 은행 서버가 있으며, 유스케이스는 “현금 인출”, “잔액 조회”, “계좌 이체” 등이 포함된다.
- 유스케이스 명세 예시 (현금 인출):
- 간단한 설명: 사용자가 ATM에서 현금을 인출한다.
- 사전 조건: 사용자가 유효한 계좌와 PIN 번호를 가지고 있어야 한다.
- 기본 흐름:
1. 사용자가 카드를 삽입하고 PIN 번호를 입력한다.
2. 시스템이 계좌 인증을 수행한다.
3. 사용자가 인출 금액을 선택한다.
4. 시스템이 계좌 잔액을 확인하고 현금을 인출한다.
5. 시스템이 카드를 반환하고 거래를 종료한다.
8. 레스토랑에 가면 홀에서 서비스하는 종업원이 PDA를 이용해서 주문을 받아 입력하면 조리사에게 바로 디스플레이되어 조리할 수 있는 시스템을 채택하고 있는 것을 볼 수 있다. 음식 주문, 음식값 지불 유스케이스 명세를 자세히 기술하라 (유스케이스 명세 작성)
- 음식 주문:
- 간단한 설명: 종업원이 손님으로부터 주문을 받아 PDA에 입력하여 주방에 전달한다.
- 사전 조건: PDA가 시스템에 연결되어 있어야 한다.
- 기본 흐름:
1. 종업원이 손님의 주문을 받는다.
2. 종업원이 PDA에 주문 내용을 입력한다.
3. 시스템이 주방 디스플레이에 주문을 전송한다.
4. 주방에서 조리가 시작된다.
- 음식값 지불:
- 간단한 설명: 손님이 식사 후에 계산을 한다.
- 사전 조건: 결제 시스템이 정상적으로 작동해야 한다.
- 기본 흐름:
1. 종업원이 PDA를 통해 결제 금액을 확인한다.
2. 손님이 지불 방법을 선택한다.
3. 결제가 완료되면 영수증을 출력하고 결제 절차를 종료한다.
9. 사용자 스토리와 유스케이스의 차이점에 대해 자세히 기술하라 (차이점 설명)
사용자 스토리는 간단하고 비기술적인 문장으로 사용자가 원하는 기능과 가치를 설명하는 것으로, “사용자로서 나는 상품을 검색할 수 있기를 원한다”와 같은 형식이다. 유스케이스는 특정 기능을 중심으로 사용자와 시스템의 상호작용을 단계별로 상세하게 설명하는 것이며, 사전 조건, 기본 흐름, 확장 흐름 등을 포함한다. 주요 차이점은 사용자 스토리는 간단하고 비기술적이지만, 유스케이스는 기술적이고 구체적인 흐름을 포함하여 개발자가 시스템의 동작을 명확히 이해할 수 있도록 한다는 점이다.
10. 요구분석 명세서에는 어떤 내용을 기술하여야 하나 또한 어떤 기준으로 검증하는가 (명세서 내용과 검증 기준)
요구분석 명세서에는 요구사항의 개요, 기능 요구, 비기능 요구, 시스템 제약, 데이터 요구사항 등이 포함되어야 한다. 명세서가 정확하게 작성되었는지 검증하기 위해서는 완전성, 일관성, 명확성, 검증 가능성을 기준으로 삼는다. 요구사항이 모두 포함되어 있는지, 서로 충돌하는 부분은 없는지, 이해하기 쉬운지, 그리고 검증 가능한 형태로 작성되었는지를 평가하여 문서의 품질을 보장한다.
'[ Computer Science ] > SW Engineering' 카테고리의 다른 글
[소프트웨어공학] 소프트웨어 아키텍처 패턴 (3) | 2024.11.20 |
---|---|
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 6장 서술형 (1) | 2024.10.28 |
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 5장 서술형 (6) | 2024.10.28 |
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 3장 서술형 (5) | 2024.10.28 |
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 2장 서술형 (1) | 2024.10.28 |
[SW Engineering] 소프트웨어 공학의 모든 것 연습문제 1장 서술형 (7) | 2024.10.28 |