자격증/정보처리기사

요구사항 확인 (1)

카늬 2024. 6. 4. 21:04

소프트웨어 생명 주기

 

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

  • 소프트웨어를 개발하기 위한 과정을 각 단계별로 나눈 것
  • 소프트웨어 개발 단계와 각 단계별 주요 활동 그리고 활동의 결과에 대한 산출물로 표현
  • 대표적인 생명주기 모형
    1. 폭포수 모형
    2. 프로토타입 모형
    3. 나선형 모형
    4. 애자일 모형

폭포수 모형(Waterfall Model)

  • 각 단계를 확실히 매듭짓고 결과를 검토하여 승인 과정을 거친 후 다음단계를 진행하는 개발 방법론

프로토타입 모형(Prototype Model)

  • 실제 개발될 소프트웨어의 견본품(Prototype)을 만들어 최종 결과물을 예측하는 모형

나선형 모형(Spiral Model)

  • 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 개발하는 모형
  • 보헴(Boehm)이 제안
  • 폭포수, 프로토타입 모형의 장점에 위험분석기능을 추가한 모형

애자일 모형(Agile Model)

  • 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발하는 모형
  • 폭포수 모형과 대조적이다
  • 대표적인 개발모형
    • 스크럼(Scrum)
    • XP(eXtreme Programming)
    • 칸반(Kanban)
    • Lean
    • 기능 중심 개발(FDD; Feature Driven Development)

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

  • 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
  • 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.
  • 계약 협상보다는 고객과 협업에 더 가치를 둔다.
  • 계획을 따르기 보다는 변화에 반응하는 것에 더 가치를 둔다.

소프트웨어 공학(SE; Software Engineering)

  • 소프트웨어위기를 극복하기 위한 방안으로 연구된 학문

Scrum[에자일 모형]

 

스크럼(scrum)

  • 팀이 중심이 되어 개발의 효율성을 높이는 기법

스크럼 팀

구성원 역할
제품 책임자
(PO; Product Owner)
요구사항이 담긴 백로그를 작성하는 주체

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

 

스크럼 개발 프로세스

프로세스 내용
스프린트 계획 회의 제품 백로그 중 이번 스프린트에서 수행할 작업을 대상으로 단기 일정을 수립하는 회의
스프린트 실제 개발 작업을 진행하는 과정으로, 보통 2 ~ 4주 정도의 기간 내에서 진행함
일일 스크럼 회의 모든 팀원이 매일 약속된 시간에 약 15분 동안 진행 상황을 점검하는 회의

남은 작업은 소멸차트에 표시함
스프린트 검토 회의 부분 또는 전체 완성 제품이 요구사항에 잘 부합하는지 테스팅하는 회의
스프린트 회고 정해놓은 규칙 준수 여부 및 개선할 점을 확인하고 기록하는것

XP[에자일 모형]

 

XP

  • 수시로 발생하는 고객의 요구사항엥 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 생산성을 향상시키는 기법
  • XP의 5가지
    1. 의사소통(Communication)
    2. 단순성(Simplicity)
    3. 용기(Courage)
    4. 존중(Respect)
    5. 피드백(Feedback)

XP의 주요 실천 방법

실천방법 내용
Pair Programming
(짝 프로그래밍)
다른사람과 함께 프로그래밍을 수행함으로써 개발에 대한 책임을 공동으로 나눠 갖는 환경을
조성함
Collective Ownership
(공동 코드 소유)
개발 코드에 대한 권한과 책임을 공동으로 소유함
Test-Driven Development
(테스트 주도 개발)
개발자가 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성하므로 자신이 무엇을 해야할 지를 정확히 파악함

테스트가 지속적으로 진행될 수 있도록 자동화된 테스팅 도구(구조, 프레임워크)를 사용함
Whole Team
(전체 팀)
개발에 참여하는 모든 구성원(고객 포함)들은 각자 자신의 역학이 있고 그 역할에 대한 책임을 가져야 함 
Continuous Integration
(계속적인 통합)
모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리 될 때마다 지속적으로 통합됨
Refactoring(리팩토링) 프로그램 기능의 변경 없이 시스템을 재구성함

목적 : 프로그램을 쉽게 이해하고 쉽게 수정하여 빠르게 개발할 수 있도록 하기 위함
Small Releases
(소규모 릴리즈)
릴리즈 기간을 짧게 반복함으로써 고객의 요구 변화에 신속히 대응이 가능함

개발 기술 환경 파악

 

개발 기술 환경 파악의 개요

  • 개발하고자 하는 소프트웨어와 관련된 OS, DBMS, 미들웨어등을 선정 할 때 고려해야 할 사항들을 기술하고 오픈소스를 사용할 때 주의해야 할 내용을 제시

OS

  • 컴퓨터시스템의 자원을 효율적으로 관리, 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어
  • 운영체제 관련 요구사항 식별 시 고려사항
    1. 가용성
    2. 성능
    3. 기술 지원
    4. 주변기기
    5. 구축 비용

DBMS(데이터베이스 관리 시스템)

  • 사용자와 DB 사이에서 사용자의 요구에 따라 정보를 생성해 주고, DB를 관리해주는 소프트웨어
  • DBMS 관련 요구사항 식별 시 고려사항
    1. 가용성
    2. 성능
    3. 기술지원
    4. 상호호완성
    5. 구축비용

웹 애플리케이션 서버(WAS)

  • 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어
  • WAS관련 요구사항 식별 시 요구사항
    1. 가용성
    2. 성능
    3. 기술지원
    4. 구축비용

오픈소스

  • 누구나 제한없이 사용할 수 있도록 소스코드를 공개한 소프트웨어
  • 오픈소스 식별 시 요구사항
    1. 라이선스 종류
    2. 사용자 수
    3. 기술의 지속 가능성

요구사항은 대체로 비슷해보임

'자격증 > 정보처리기사' 카테고리의 다른 글

요구사항 확인(6)  (0) 2024.06.15
요구사항 확인 (5)  (1) 2024.06.12
요구사항 확인 (4) - 다이어그램  (0) 2024.06.11
요구사항 확인 (3) - UML  (1) 2024.06.11
요구사항 확인 (2)  (1) 2024.06.10