[정처기 필기] 「1」 | 요구사항 확인 - (1.1) 소프트웨어 생명 주기

728x90

[정처기 필기]1」 | 요구사항 확인 - (1.1) 소프트웨어 생명 주기

> 「1」 소프트웨어 설계

- > 요구사항 확인, 화면 설계, 애플리케이션 설계, 인터페이스 설계

「2」 소프트웨어 개발

「3」 데이터베이스 구축

「4」  프로그래밍 언어 활용

「5」  정보시스템 구축 관리

 

> 1 소프트웨어 생명 주기

2 스크럼(Scrum) 기법

3 XP(eXtreme Programming) 기법

4 현행 시스템 파악

5 개발 기술 환경 파악

6 요구사항 정의

7 요구사항 분석

8 요구사항 분석 CASE와 HIPO

9 UML(Unified Modeling Language)

10 주요 UML 다이어그램

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

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

 

소프트웨어를 개발하기 위한 과정을 각 단계별로 나눈 것 == 소프트웨어 수명 주기

 

- 소프트웨어 개발 단계, 각 단계 별 주요 활동, 활동 결과 => 산출물로 표현

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

 

> 소프트웨어 공학 <

 

소프트웨어의 위기를 극복하기 위해 연구된 학문 => 소프트웨어의 품질과 생산성을 향상할 목적

 

다음과 같은 형태로 정의

- IEEE의 소프트웨어 공학 표준 용어사전 : 개발, 운용, 유지보수, 폐기 처분에 대한 체계적인 접근 방안

- Fairley : 지정된 비용과 기간 내에 생산, 유지보수하는 데 관련된 기술적이고 관리적 원리

- Boehm : 과학적인 지식을 응용하며 개발, 운용, 유지보수하는 데 필요한 문서 작성 과정

 

소프트웨어 공학의 기본 원칙

- 현대적인 프로그래밍 기술을 계속적으로 적용

- 품질이 유지되도록 지속적으로 검증

- 개발 관련 사항, 결과를 명확하게 기록

 

폭포수 모형(Waterfall Model)

 

각 단계를 확실히 매듭짓고, 그 결과를 철저하게 검토하여 승인 후 다음 단계를 진행하는 개발 방법론

 

- 가장 오래되고, 폭넓게 사용된 전통적인 소프트웨어 생명 주기 모형 == 고전적 생명 주기 모형

- 선형 순차적 모형

- 모형을 적용한 경험, 성공 사례 많음

- 매뉴얼 작성해야 함

- 각 단계가 끝난 후에 다음 단계를 위한 결과물이 명확하게 산출되어야 함

- 두 개 이상의 과정이 병행되지 않음

 

타당성 검토 계획 요구 분석 설계 구현(코딩) 시험(검사) 유지보수
  →

 

프로토타입 모형(Prototype Model, 원형 모형)

 

사용자의 요구사항이 불분명할 때, 요구사항을 정확히 파악하기 위해 견본품(시제품 Prototype)을 만들어 최종 결과물 예측하는 모형

 

견본품은 의뢰자, 개발자 모두에게 공동의 참조 모델

- 시스템의 일부 혹은 모형을 만드는 과정으로 요구된 소프트웨어를 구현하는데, 이는 구현 단계에서 사용될 골격 코드가 됨

- 새롭게 도출된 요구사항을 충분히 반영하여 프로토타입을 새롭게 만듦

- 단기간 제작 목적 => 비효율적인 언어, 알고리즘 사용될 수 있음

 

요구 수집 (시작) 빠른 설계 프로토타입 구축
                         ↑           → → → 

                          ↑             ← ← ←
→ → → → → →
(반복)
← ← ← ← ← ←
  →                                     

← ← ←                                     
구현 (끝) 프로토타입 조정 고객 평가

 

나선형 모형(Spiral Model, 점진적 모형)

 

위험 분석 기능을 추가한 모형

 

- 여러 번의 소프트웨어 개발 과정을 거쳐 최종 소프트웨어 개발 => 점진적 모형

- 위험을 관리하고 최소화하는 것이 목적

- 핵심 기술에 문제, 요구사항이 이해하기 어려운 경우 적합한 모델

- 점진적 모형이기 때문에 요구사항을 첨가할 수 있고, 정밀하며 유지보수 필요 없음

 

계획 수립 위험 분석 개발 및 검증 고객 평가
   → (반복)

 

계획 수립         위험 분석
               





                 

 
 
              
              


 
 

(시작) 


(끝)
 
 
             


              
   
고객 평가         개발 및 검증

 

애자일 모형(Agile Model)

 

일정한 주기를 반복하여 요구사항 변화에 유연하게 대응

 

- 특정 개발 방법론이 아닌 고객과의 소통에 초점을 맞춘 방법론을 통칭

- 기업 활동 전반에 사용

- 스프린트(Spirnt) 또는 이터레이션(Iteration)이라 부르는 짧은 개발 주기 반복, 주기마다 결과물에 대한 평가와 요구 적극 수용

각 개발주기에서 요구사항에 우선순위 부여

- 소규모 프로젝트, 숙달된 개발자, 급변하는 요구사항에 적합한 모델

- 스크럼(Scrum), XP(eXtreme Programming), 칸반(Kanban), Lean, 크리스탈(Crystal), ASD(Adaptive Software Development), 기능 중심 개발(FDD; Feature Driven Development), DSDM(Dynamic System Development Method), DAD(Disciplined Agile Delivery)

 

  반복주기 1 반복주기 2   마지막 반복주기
  
전략수립
  
↗   개발 ↗  개발   ↗  개발
테스트 테스트 - - - 테스트
↖   설계 ↖   설계   ↖   설계
 
수행 및 유지보수
  

 

> 애자일 선언(Agile Manifesto) <

 

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

1 프로세스와 도구 < 개인과 상호작용

2 방대한 문서 < 실행되는 SW

3 계약 협상 < 고객과 협업

4 계획 따르기 < 변화에 반응

 

애자일 개발 12가지 실행 지침

1 빠르고 지속적으로 제공

2 요구사항을 적극 수용

3 몇 개월이 아닌 몇 주 단위로 실행되는 것을 제공

4 고객과 개발자가 함께

5 의지가 확실한 사람들로 구성, 필요한 개발환경과 지원 제공, 일을 잘 마치도록 신뢰

6 얼굴 맞대고 의견

7 개발의 진척도를 확인하는 1차 기준 => 작동하는 소프트웨어

8 지속 가능한 개발 장려, 일정한 속도로 개발

9 기술적 우수성, 좋은 설계 => 민첩성 향상

10 단순화

11 자기주도하는 조직적인 팀 지향

12 효과적인 팀이 되도록 정기적으로 고민, 조정

 

폭포수 모형과 애자일 비교

 

구분 폭포수 모형 애자일
새로운 요구사항 반영 어려움 지속적으로 반영
고객과의 의사소통 적음 지속적
테스트 마지막에만 반복되는 일정 주기가 끝날 때마다
개발 중심 계획, 문서(매뉴얼) 고객

 

 

 

 

 

 

 

 

 

 

 

출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)

728x90