본문 바로가기

정보처리기사_실기

[정보처리기사 실기]Section 001 소프트웨어 생명 주기 ~ Section 007 요구사항 분석

001 소프트웨어 생명주기

1. 소프트웨어 생명 주기 (Software Life Cycle)

- 소프트웨어 생명 주기는 소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것이다.

-개발 단계와 각 단계별 주요 활동 그리고 활동의 결과에 대한 산출물로 표현한다.

-대표적인 생명 주기 모형

  • 폭포수 모형
  • 프로토타입 모형
  • 나선형 모형
  • 애자일 모형

2. 폭포수 모형 (Waterfall Model)

- 폭포수 모형은 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히 매듭짓고 그 결과를 철저하게 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론이다.

- 가장 오래되고 전통적인 생명주기 모형

- 고전적 생명 주기 모형

- 모형을 적용한 경험과 성공사례가 많다.

- 다음 단계를 수행하기 위한 결과물이 명확하게 산출되어야 한다.

 

3. 프로토타입 모형 (Prototype Model)

- 실제 개발될 소프트웨어에 대한 견본품(Prototype)을 만들어 최종 결과물을 예측하는 모형이다.

-견본품은 사용자와 시스템 사이의 인터페이스에 중점을 두어 개발한다.

 

4. 나선형 모형 (Spiral Model)

- 나선을 따라 돌듯 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발하는 모형이다.

- 보헴(Boehm) 제안

- 누락되거나 추가된 요구사항을 첨가할 수 있다.

- 4가지 주요 활동

계획수립 - 위험분석 - 개발 및 검증 - 고객평가 

 

5. 애자일 모형 (Agile Model)

- 애자일은 '민첩한', '기만한'이라는 의미로, 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발하는 모형이다.

- 고객의과 소통에 초점을 맞춘 개발 방법론

- 폭포수 모형과 대조적

- 기업 활동 전반에 걸쳐 사용된다.

- 대표적 개발 모형 

  • 스크럼 (Scrum)
  • XP (eXtrem Programming)
  • 칸반 (Kanban)
  • Lean
  • 기능 중심 개발 (FDD: Feature Driven Development)

6. 애자일 개발 4가지 핵심 가치

- 개인과 상호작용에 더 가치를 둔다.

- 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.

- 계약 협상보다는 고객과 협업에 더 가치를 둔다.

- 계획을 따르기보다는 변화에 반응하는 것에 더 가치를 둔다.

 

7. 소프트웨어 공학

- 소프트웨어 공학 (SE)는 소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문이다.

- 여러 가지 방법론과 도구, 관리 기법들을 통하여 소프트웨어의 품질과 생산성 향상을 목적으로 한다.

 

002. 스크럼(Scrum) 기법

1. 스크럼(Scrum)

- 스크럼은 팀이 중심이 되어 개발의 효율성을 높이는 기법이다.

2. 스크럼 팀

구성원 역할
제품 책임자
(PO; Product Owner)
- 요구사항이 담긴 백로그를 작성하는 주체
- 이해관계자들 중 개발될 제품에 대한 이해도가 높고, 요구사항을 책임지    고 의사를 결정할 사람으로 선정
스크럼 마스터
(SM; Scrum Master)
스크럼 팀이 스크럼을 잘 수행할 수 있도록 가이드 역할을 수행함
개발팀
(DT; Development Team)
제품 책임자와 스크럼 마스터를 제외한 모든 팀원으로서 제품 개발을 수행함

key Word

- 일일 스크럼 회의 

- 스프린트 2~4주

- 스프린트 검토 회의

- 스프린트 회고

- 제품 백로그

- 소멸 차트

 

003. XP(eXtreme Programming) 기법

- XP는 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상하는 방법이다.

- 짧고 반복적인 개발주기, 단순한 설계, 고객의 적극적 참여를 통해 소프트웨어를 빠르게 개발하는 것을 목적으로 한다.

- XP 5가지 핵심 가치

  • 의사소통
  • 단순성
  • 용기
  • 존중
  • 피드백

004. 개발 기술 환경파악

개발하고자 하는 소프트웨어와 관련된 운영체제(OS), 데이터베이스 관리 시스템(DBMS), 미들웨어 등을 선정할 때 고려해야 할 사항을 기술하고, 오픈 소스를 사용할 때 주의해야 할 내용을 제시한다.

 

005. 요구사항 정의

- 요구사항은 소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건이다.

- 개발이나 유지 보수 과정에서 필요한 기준과 근거를 제공

- 이해관계자들 간의 의사소통을 원활하게 하는 데 도움을 준다.

- 요구사항의 유형

  •  기능 요구사항
  •  비기능 요구사항
  •  사용자 요구사항
  •  시스템 요구사항 

006. 요구사항 개발 프로세스 

1. 요구사항 개발 프로세스

- 요구사항 개발 프로세스는 개발 대상에 대한 요구사항을 체계적으로 도출하고 분석한 후 명세서에 정리한 다음 확인 및 검증하는 일련의 구조화된 활동이다.

- 요구사항 개발 프로세스가 진행되기 전에 타당성 조사가 선행되어야 한다.

- 요구사항 개발은 요구 공학의 한 요소이다.

도출 (Elicitation) 분석 (Analysis) 명세 (Specification) 확인 (Validation)

2. 요구사항 도출

- 요구사항 도출은 시스템, 사용자, 개발자 등 시스템 개발에 관련된 사람들이 서로 의견을 교환하여 요구사항을 어떻게 수집할 것 인질을 식별하고 이해하는 과정 

- 소프트웨어 개발 생명 주기(SDLC) 동안 지속적으로 반복된다.

- 요구사항을 도출하는 주요 기법

  • 청취와 인터뷰
  • 설문
  • 브레인스토밍
  • 워크숍
  • 프로토타이핑
  • 유스케이스

3. 요구사항 분석

- 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정이다.

- 대표적인 도구 

  • 자료 흐름도 (DFD)
  • 자료 사전 (DD)

4. 요구사항 명세

- 요구사항 명세는 분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 것을 의미한다.

 

5. 요구사항 확인

- 요구사항 명세서가 정확하고 완전하게 작성되었는지를 검토하는 활동이다.

- 요구사항 관리 도구를 이용하여 정의 문서들에 대해 형상 관리(SCM)를 수행한다.

 

6. 요구공학

- 요구공학은 무엇을 개발해야 하는지 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문이다.

 

7. 요구사항 명세 기법

구분 정형 명세 기법 비정형 명세 기법
기법 수학적 원리 기반, 모델 기반 상태 / 기능 / 객체 중심
작성 방법 수학적 기호 , 정형화된 표기법 일반 명사, 동사 등 자연어를 기반으로 서술 또는 다이어그램으로 작성
특징 요구사항을 정확하고 간결하게 표현할 수 있음 내용의 이해가 쉬어 의사소통이 용이
일관성이 떨어질 수 있음
종류 VDM, Z, Petri-net, CSP FEM, Decision, Table, ER모델링, State Chart(SADT)등

 

007. 요구사항 분석

1. 요구사항 분석

- 소프트웨어 개발의 실제적인 첫 단계로, 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화하는 활동을 의미한다.

- 사용자 요구의 타당성을 조사하고 비용과 일정에 대한 제약을 설정한다.

- 사용자의 요구를 정확하게 추출하여 목표를 정한다.

 

2. 구조적 분석 기법 

- 자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법 

- 도형 중심의 분석용 도구와 분석 절차를 이용하여 사용자의 요구사항을 파악하고 문서화한다.

- 하향식 방법을 사용하여 시스템을 세분화할 수 있다.

- 분석 중복을 배제할 수 있다.

- 주요 분석 기법 도구

  • 자료 흐름도 (DFD)
  • 자료 사전 (DD)
  • 소단위 명세서 (Mini-Spec)
  • 개체 관계도 (ERD)
  • 상태 전의도 (STD)
  • 제어 명세서

3. 자료 흐름도 (DFD; Data Flow Diagram)

- 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법이다.

- 자료 흐름 그래프, 버블 차트라고 한다

- 자료 흐름과 처리를 중심으로 하는 구조적 분석 기법에 이용된다.

 

4. 자료 흐름도 기본 기호

  • 프로세스
  • 자료 흐름
  • 자료 저장소
  • 단말

5. 자료 사전 

- 자료 사전은 자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것이다. 

- 데이터를 설명하는 데이터로, 데이터의 데이터 또는 메타데이터라고도 한다.

  • = 자료의 정의 :~로 구성되어 있다.
  • + 자료의 연결 : 그리고(and)
  • ( ) 자료의 생략 : 생략 가능한 자료
  • [ ] 자료의 선택 : 또는 
  • { } 자료의 반복 
  • * * 자료의 설명: 주석