둘셋 개발!

요구사항 분석 (중요성, 분류,요구사항 개발 단계, Use Case Diagram) 본문

소프트웨어공학

요구사항 분석 (중요성, 분류,요구사항 개발 단계, Use Case Diagram)

23 2022. 6. 2. 16:48

요구사항의 중요성

요구사항을 기반으로 모든 개발 활동이 이루어 지기 때문에 중요하다.

출처: https://itpenote.tistory.com/55

 

A system can be no better thant its requirements


요구사항 분류

기능과 비기능 요구사항을 나뉜다.

 

1. 기능 요구사항

: 제품 구현을 위해 소프트웨어가 가져야 하는 기능

: 저장 기능, 편집 기능, 삭제 기능, 보기 기능 등

 

2. 비기능 요구사항

: 제품의 품질 기준을 만족시키기 위해 소프트웨어가 가져야 하는 성능, 사용의 용의성, 안전성과 같은 행위적 특성

: 성능, 사용의 용의성, 신뢰도, 보안성, 운용상의 제약, 안전성, 정확성, UI간편성, GPS 성능 등

 

 


요구사항 개발 단계

요구사항 추출 -> 요구사항 분석 -> 요구사항 명세 -> 요구사항 검증

 

1. 요구사항 추출

 : 고객이 원하는 요구사항을 수집

 : 고객의 요구사항은 추상적일 수 있기 때문에 수주자는 정확한 요구사항을 파악해야 함

 : 인터뷰나 시나리오로 추출 할 수 있음

 

2. 요구사항 분석

 : 추출된 요구사항을 바탕으로 식별 가능한 문제를 찾고 이해하는 단계

 : 요구사항 명세서를 작성하기 전에 완전하고 일관성 있는 요구사항으로 정리함

 

3. 요구사항 명세

 : 분석된 요구사항을 명확하고 완전하게 기록

 : 구현해야 할 모든 기능, 제약 조건, 합의된 성능, 요구사항 번호화 및 우선순위화

        => 최종 결과물: 요구사항 명세서 (SRS: Software Requirement Specificaion)

 

4. 요구사항 검증

 : 사용자 요구가 SRS에 올바르게 기술되었는지 검토

 : 명세된 요구사항의 구현 가능성 검토

 : 명세 표현의 정확성 및 완전성 검증

 : 표준과 일치성 검증

 : 요구사항 간 충돌 검증

 : 기술적 결함에 대한 검증

 


Use Case Diagram

: 사용자 관점에서 시스템의 서비스 혹은 기능 및 그와 관련한 외부 요소를 보여주는 다이어그램

: 요구사항 명세서를 개발자에게 주었을 때 개발을 할 수 있을 정도여야 함

 

출처 : http://vip.sejong.ac.kr/dihan/capstone/Capstone%20Design%20Ch4.pdf

 

 

 

✏️ 주의사항: 위의 그림과 같이 똑같은 모양으로 그려야 함 그게 약속임

                      ex) 유스케이스를 타원형이 아닌 직사각형으로 그리면 안됨

 

1. Actor (액터)

: 액터는 시스템과 상호작용하는 어떠한 엔티티도 될 수 있다. 하지만 시스템의 일부는 아니다.

: ex) 사람, another system, ...

 

2. Use Case

: 시스템의 '무엇을?' 을 담당한다. 즉 시스템의 행동이라고 볼 수 있다.

: 액터와 항상 관계되어야 하고 여러개의 액터와 관계를 맺을 수 있다.

 

3. Relationships

  • Generalization (일반화) : actor 또는 use case가 구체화단 다른 여러 actor 또는 use case를 가지고 있는지 

출처 :https://andrew0409.tistory.com/5

  • Include (포함관계): 이 use case가 실행하기 위해서 반드시 실행되어야 하는 유스케이스가 있는가

출처 : https://blog.daum.net/hankylee/12

  • Extend (확장관계): 이 use case를 실행 함으로써 선택적으로 실행 되는 유스케이스가 있는가

출처 : https://blog.daum.net/hankylee/12

 

 

-    Use Case Diagram 그리는 순서

1. 시스템 그리기

 

2. Actor 식별

      - 누가 시스템을 사용할 것인가?

      - 누가 시스템을 관리하는가?

      - 시스템과 상호작용하는 하드웨어나 소프트웨어 시스템이 있는가?

 

3. Use Case 식별

      - 시스템의 동작 모두

 

4. 관계 정의