[지식창고]/소프트웨어공학

[소프트웨어공학] Chapter 6. 요구사항 개념

개발새발주발 2023. 4. 19. 15:27
728x90
요구공학 

요구공학이란 문제의 요구사항들을 이해하는 것 

소프트웨어 엔지니어가 직면한 더 어려운 문제 

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

 

[참고 및 출처] 

한국항공대학교 「소프트웨어 공학」 강의자료