요구공학
요구공학이란 문제의 요구사항들을 이해하는 것
소프트웨어 엔지니어가 직면한 더 어려운 문제
RE: Requirement engineering
→ 커뮤니케이션 활동으로부터 모델링 활동까지
→ 디자인과 구현을 이어주는 다리
요구공학의 Task
✅ customer가 무엇을 원하는지
✅ needs를 분석
✅ feasibility(실행할 수 있음)을 평가
✅ 합리적인 접근법을 중재
✅ 문제를 정확하게 명시화 ( → 모델링 ! )
✅ specification 유효성 검증
✅ 요구사항이 제대로 반영되어서 구현되었는지 관리
요구공학 단계
Inception(착수) - Elicitation(추출) - Elaboration(상세) - Negotiation(협상) - Specification(명세) - Validation(검증) - Management(관리)
1. inception : 착수
소프트웨어 프로젝트가 어떻게 시작되는가?
→ single event, casual conversation,.. 우연히 시작될 수 있다 !
🙋🏻♀️ First context-free 질문
① 이 작업을 요청한 배경에는 누가 있는가?
② 누가 solution(우리가 만든 프로젝트)을 사용할 것인가?
③ 이 solution이 성공하면 어떤 금전적 이윤이 있나?
④ 더 필요한 자료(source)가 있는가? (Ex. 우리 둘이 얘기하고 있는데 법률과 같은 사항이 있는가 ~ )
🙋🏻♀️ Next 질문
① 성공적인 solution에 의해 만들어지는 'good' 결과를 어떻게 정의할것인가?
② 이 solution은 어떤 문제를 해결할 것인가?
③ solution이 어떤 환경에서 사용되는지 말해줘 !
④ 특별한 성능 문제나 제약 조건이 솔루션에 접근하는 방식에 영향을 줌 ?
🙋🏻♀️The final 질문
① 니 답변이 official임 ? = 네가 책임질 수 있는 사람인가?
② 내거 너무 많은 질문이 있었는가 ?
③ 질문이 연관성이 있었는가?
④ 다른 누군가가 추가적인 정보를 줄 수 있는가?
⑤ 내가 물어볼 다른건 없는가 ?
2. Elicitation : 추출
고객, 사용자와 마주 앉아서 어떤 product가 나와야하니, product에 뭐가 있으면 좋겠니 .. 이런 말들을 하는데 보기에는 쉬워보인다.. 하지만 어려움 ..
👿 Difficulties of Elicitation
- 문제의 scope : 시스템의 경계
- 이해의 문제 : 고객이나 사용자에게 needs를 완성할 수 없다는 것을 이해시켜야한다..
- 휘발성문제 : 요구사항이 계속 변한다 !
3. Elaboration : 상세
모델링 작업 분석
상세 기간동안 customer의 정보는 expand, refine된다
5개의 모델 ~~
① Scenario-based Models
② Class-based Models
③ Behavioral Models
④ Flow-oriented Models
⑤ Data Models
4. Negotiation : 협상
서로다른 customer들의 요구가 충돌할 수 있다.
→ reconcile
요구사항의 우선순위를 정하고 .. 요구사항에 따른 비용과 시간을 종합분석해서 중재를 해야함
key는 stakeholder에게!
5. Specification : 명세
- 명세는 서류로, 그래픽 모델로, 기하학적 모델로, 시나리오로, 프로토타입(시제품)이나 이들을 결합한 형태로 나올 수 있다 !
- Standard template 표준화된 템플릿
- 일관성있어야하고, 이해가능해야한다
6. Validation : 검증
- 품질에 관한 것
- 검증하고 명세 → 소프트웨어의 요구를 확실하게 하기 위해, 상태가 애매모호함없는지: 비일관성, 생략과 에러가 감지되고 수집되지 않았는지 그리고 작업 산출물이 프로젝트의 기준을 지키는지
validation을 위한 질문들
✅ 오브젝트의 요구사항이 일관적인가?
✅ 모든 요구사항이 추상화 수준을 사용하여 지정되었음?
✅ 요구사항이 ㄹㅇ로 필요함?
✅ 요구사항에 속성이 있음?
✅ 다른 요구사항과 요구사항끼리의 충돌이 있음?
✅ 각각의 요구사항 한번 시행되서 테스트해볼 수 있음?
✅ 요구사항 모델이 적절히 정보를 반영하고 기능, 함수,시스템의 행동을 잘 반영함 ?
✅ 요구사항이 분할되었음?
✅ 요구사항 패턴이 사용됨?
7. Requirement Management
프로젝트 팀이 프로젝트가 진행되는 동안 언제든지 요구 사항 및 요구 사항 변경 사항을 식별, 제어 및 추적하는 데 도움이 되는 일련의 활동
시스템 분석가의 자격
✒︎ 추상적, 논리적 개념화 능력
✒︎ 애매모호하거나 모순된 것들로부터 정확한 사실을 이끌어 낼 능력
✒︎ 고객의 환경을 이해할 능력
✒︎ H/W, S/W 요소를 고객의 환경에 적용시킬 능력
✒︎ 말하고 쓰기를 통한 대화 능력
✒︎ To see the forest for the tree
요기까지 일단 시험범위 ~ 0
[참고 및 출처]
한국항공대학교 「소프트웨어 공학」 강의자료
'[지식창고] > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어공학] Chapter 3. 소프트웨어 프로세스 (0) | 2023.04.23 |
---|---|
[소프트웨어공학] Chapter2-2. 소프트웨어 공학 개요(2) (0) | 2023.04.17 |
[소프트웨어공학] Chapter 5 - (1) . 프로젝트 관리 (0) | 2023.04.05 |
[소프트웨어 공학] Chapter 4. 프로젝트 관리 개념(2) - 프로젝트 측정 (0) | 2023.04.03 |
[소프트웨어공학] Chapter 4. 프로젝트 관리 개념(1) - 4P (0) | 2023.03.29 |