클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

[소프트웨어 설계] 1장 요구사항 확인 2 - 요구 사항 확인 1 : 요구분석 기법 본문

자격증 공부/정보처리기사 필기

[소프트웨어 설계] 1장 요구사항 확인 2 - 요구 사항 확인 1 : 요구분석 기법

huenuri 2024. 7. 31. 12:10

오늘 새벽에 정보처리기사 필기 공부를 별로 하지 못해서 쉬는 시간과 점심시간을 이용해 내용을 정리해보기로 했다. 점심시간에는 집에 가서 관련된 내용을 스캔해보고 쉬는 시간에는 자투리 시간을 아껴서 내용을 기록해볼 것이다.

두번째 강의부터는 좀더 어려운 개념이 들어가서 한번 들어서는 이해가 잘 되지 않았다. 점심을 먹으면서 이 부분을 다시 들어도 좋겠다.
바로 학습을 진행해보자!


 

요구분석 기법 💎💎💎

1. 요구분석(Requirements Analysis)의 개념 🎃

  • 사용자의 요구를 추출하여 목표를 정하고 어떤 방식으로 해결할 것인지 결정하는 단계
  • 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정

 

2. 요구분석의 특징 🎃

  • 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계
  • 분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용
  • 보다 구체적인 명세를 위해 소단위 명세서가 활용
  • 개발 비용이 가장 많이 소요되는 단계는 아님
  • 요구분석 중 도메인 분석은 요구에 대한 정보를 수집하고 배경을 분석하여 이를 토대로 모델링을 하게 됨

 

개발 비용이 가장 많이 소요되는 단계는 유지보수 단계이다.

용어 정리

소단위 명세서(Mini_Spec) : 데이터 흐름도에 나타나 있는 처리 항목을 1~2페이지 정도의 소규모 분량으로 요약하여 작성하는 논리적 명세서

 

 

3. 요구사항 분석 단계 절차

요구사항을 기술할 때는 요구사항의 확인, 요구사항의 검증, 비용 추정이 가능하도록 충분하고 정확하게 기술해야 한다.

 

용어 정리

  • 기능 요구사항 : 기능과 관련하여 소프트웨어가 가져야 하는 기능적 속성에 대한 요구사항
  • 비기능 요구사항 : 기능적 속성이 아닌 성능, 보안, 품질 등에 대한 요구사항

 

 

4. 요구사항 분석 기술 🎃

 

 

5. 요구사항 분석에 사용하는 가능 모델링 기법

1) 데이터 흐름도 🎃

데이터 흐름도 개념

  • 데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림
  • 시스템 분석과 설계에서 매우 유용하게 사용되는 다이어그램
  • 시스템 모델링 도구로서 가장 보편적으로 사용되는 것 중의 하나
  • 자료 흐름 그래프 또는 버블(Bubble) 차트라고 함

 

데이터 흐름도 특징

  • 구조적 분석 기법에 이용
  • 데이터의 흐름에 중심을 두는 분석용 도구
  • 제어의 흐름을 중요하지 않음
  • 시간 흐름을 명확하게 표현할 수 없음

 

 

데이터 흐름도 구성요소

처리기, 데이터 흐름, 데이터 저장소, 단말이 있다.

암기 방법 : 프플스터
Process/ Date Flow/ Date Store/ Termintor

 

 

2) 자료 사전 🎃

자료 사전(DD; Data Dictionary) 개념 🎃

  • 자료 요소, 자료 요소들의 집합, 자료의 흐름, 자료 저장소의 의미와 그들간의 관계, 관계 값, 범위, 단위들을 구체적으로 명시하는 사전
  • 파일 혹은 데이터베이스에 있는 자료에 대한 자료 또는 각 자료 항목에 주어진 이름과 길이 그리고 서술과 같은 데이터를 포함하는 참조를 위한 작업

 

자료 사전의 작성 목적

  • 조직에 속해 있는 다른 사람들에게 특정한 자료 용어가 무엇인지 알려주기 위해, 용어의 정의를 조정하고 취합하고 문서로 명확히 하는 목적이 있음
  • 자료 흐름도에 나타나는 어떤 자료의 흐름도 자료 사전에 정의되어 있어야 함

 

자료 사전 기호 ✨

 

자료 사전의 작성 원칙

 

 

6. 요구사항 분석이 어려운 이유

  • 개발자와 사용자 간의 지시이나 표현의 차이가 커서 상호 이해가 쉽지 않음
  • 사용자의 요구사항이 모호하고 불명확함
  • 소프트웨어 개발 과정 중에 요구사항이 계속 변할 수 있음
  • 사용자의 요구는 예외가 많아 열거와 구조화가 어려운 편

 

 

학습을 마치고

점심시간에 집에 와서 책 내용을 스캔하고 정리하며 학습을 더 진행해보았다. 밥을 먹는둥 마는둥하며 공부하는 즐거움에 푹 빠져있는 것 같다. 시험도 얼마 안남았으니 정처기는 하루에 적어도 3시간은 공부를 해야 할 것이다.
이제 수업 갈 준비를 하고 서둘러야겠다. 조금 어려운 개념들도 있었지만 반복하여 학습하다보면 어느새 암기할 수 있을 것이다.

이 책의 장점은 수험생들이 암기할 수 있도록 방법을 알려주고 쉽게 설명해준다는 것이다.