코딩뿌셔
[5과목] 정보시스템 구축관리 - 소프트웨어 개발방법론 본문
01 소프트웨어 개발방법론
02 요구공학 방법론
03 비용산정 모델
04 소프트웨어 개발 표준
05 소프트웨어 개발 프레임워크
01 소프트웨어 개발방법론
▶ 소프트웨어 생명주기(SDLC; Software Development Life Cycle) 모델
: 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차
▷ 프로세스
요구사항 분석 | 설계 | 구현 | 테스트 | 유지보수 |
▷ 모델
종류 | 설명 |
폭포수 모델 | 단계별 정의와 산출물 명확, 순차적 접근, 요구사항 변경이 어려움 (계획 → 요구사항 → 분석 → 설계 → 구현 → 테스트 → 유지보수) |
프로토타이핑 모델 | 고객의 피드백을 반영하여 소프트웨어를 만들어감, 프로토타입 개발 (요구사항 분석 → 개발 → 평가 → 구현 → 테스트) |
나선형 모델 | 개발 위험을 최소화하기 위해 점진적으로 개발, 위험분석, 반복개발 (계획 및 정의 → 위험분석 → 개발 → 고객평가 : 반복) |
반복적 모델 | 사용자의 요구사항 혹은 제품 일부분을 반복적 개발하여 최종 시스템으로 완성, 병렬 개발 통합 |
▶ 소프트웨어 개발방법론
: 소프트웨어를 하나의 생명체로 간주하고 소프트웨어 개발의 시작부터 시스템을 사용하지 않는 과정까지의 전 과정 형상화
▷ 종류
종류 | 설명 |
구조적 방법론 | 기능에 따라 나누어 개발, 분할과 정복 접근 방식, 하향식 방법론 |
정보공학 방법론 | 관리절차와 작업 기법 체계화, 개발주기를 이용해 프로젝트 수행 |
객체 지향 방법론 | 현실 세계 개체를 하나의 객체로 만들어 객체들을 조립하여 소프트웨어 구현 |
컴포넌트 기반 방법론 | 생산성과 품질 향상, 유지보수 비용 최소화, 소프트웨어 재사용 가능 |
애자일 방법론 | 절차보다는 사람 중심, 변화에 유연하고 신속하게 적응, 효율적 시스템 개발 방법 |
제품 계열 방법론 | 특정 제품에 적용하고 싶은 공통 기능을 정의하여 개발 |
02 요구공학 방법론
▶ 요구공학 방법론
: 사용자의 요구가 반영된 시스템 개발을 위해 사용자 요구사항 도출, 분석, 명세, 확인 및 검증하는 구조화된 방법
▷ 특징
- 고객과 개발자가 요구사항 의미를 서로 다르게 이해하면 시스템 개발이 실패할 가능성 증대
- 시스템이 사용되는 동안 발견되는 오류 상당 부분이 요구사항 오류에서 파생
- 구조적 요구분석을 위해 블록 다이어그램을 채택한 자동화도구(SADT)가 있음
▷ 개발 프로세스
도출 | 분석 | 명세 | 확인 및 검증 |
인터뷰, 설문조사, 브레인스토밍, 워크숍 |
자료 흐름 지향 분석, 객체 지향 분석, 요구사항 체계화 분석 |
자연어 방법, 정형화 기법 | 리뷰, 워크스루, 인스펙션 |
03 비용산정 모델
▶ 비용산정 모델
: 소프트웨어 규모파악을 통한 투입자원, 소요시간 파악하여 실행 가능한 계획 수립을 위해 비용 산정
▷ 모델 분류
분류 | 모델 | 설명 |
하향식 산정방법 | 전문가 감정 기법 | 2명 이상 전문가, 편리하고 신속하게 산정 가능, 개인적이고 주관적 |
델파이 기법 | 전문가 감정 기법의 주관적 판단 보완, 많은 전문가 의견 종합 | |
상향식 산정방법 | LOC(Lines of Code) | 측정이 및 이해 쉬움, 예측치 이용하여 생산성, 노력, 개발 기간 등 비용 산정 |
Man Month | 한 사람이 1개월 동안 할 수 있는 양 기준으로 프로젝트 비용 산정 | |
COCOMO | 프로젝트를 완성하는데 필요한 노력(man-month)으로 산정 | |
Putnam 모형 | 생명주기 예측 모형, 대평 프로젝트의 노력 분포 산정에 이용 | |
기능점수(FP) 모형 | 요구 기능 증가시키는 인자별 가중치 부여, 총 기능 점수 계산하여 비용 산정 | |
개발 단계별 노력 | LOC 기법의 확장, 코딩 단계뿐만 아니라 SW개발 생명주기 단계별 적용 |
04 소프트웨어 개발 표준
▶ ISO/IEC 12207 표준
: 소프트웨어 생명주기 프로세스, 소프트웨어와 관련된 조직, 공급자, 개발자 등 이해관계자들이 각자 입장에서 수행해야 할 일을 정의하고 지속적으로 개선시키기 위한 활동
기본 생명주기 프로세스 | 획득, 공급, 개발, 운영, 유지보수 프로세스 |
지원 생명주기 프로세스 | 품질 보증, 검증, 확인, 활동 검토, 문서화, 형상관리, 문제해결 프로세스 |
조직 생명주기 프로세스 | 관리, 기반 구조, 훈련, 개선 프로세스 |
▶ CMMI (Capability Maturity Mdel Intergration)
: 능력 성숙도 모델(CMM)을 발전시킨 것, 기존 소프트웨어 품질 보증 기준과 시스템 엔지니어링 분야 품질 보증 기준을 통합하여 개발한 품질 개선 모델
▷ 모델
모델 | 설명 |
단계적 모델 | 조직 전체적인 성숙도 확인을 위해 CMMI 5단계 성숙도 레벨로 정의하고 성숙수준 기반 평가 |
연속적 모델 | 조직 비즈니스 목적 충족, 위험요소 완화에 중요한 개선사항의 순서를 정하여 적용 |
▷ CMMI 단계적 모델 성숙도 레벨
초기화 (Initial) |
관리 (Managed) |
정의 (Defined) |
정량적 관리 (Quantitatively Managed) |
최적화 (Optimized) |
▶ SPICE
: 소프트웨어 프로세스에 대한 개선 및 능력측정 기준에 대한 국제 표준
▷ 프로세스 수행 능력 수준
레벨 | 0 | 1 | 2 | 3 | 4 | 5 |
수준 | 불안정 단계 | 수행 단계 | 관리 단계 | 확립 단계 | 예측 단계 | 최적화 단계 |
▶ 테일러링(Tailoring)
: 조직 표준 프로세스를 커스터마이징하여 비즈니스 또는 기술적 요구에 맞게 적합한 프로세스를 얻는 과정, 이미 정의된 개발방법론 절차, 기법, 산출물 등 재활용하여 계획 수립
05 소프트웨어 개발 프레임워크
▶ 소프트웨어 개발 프레임워크
: 반제품 상태ㅐ의 제품을 토대로 도메인별 필요한 서비스 컴포넌트를 사용하여 재사용성 확대, 성능 보장받을 수 있게 하는 개발 소프트웨어
▷ 적용 시 기대효과
- 개발할 소프트웨어에 대한 품질 보증 가능
- 소프트웨어 개발 용이성 증가
- 개발하고자 하는 소프트웨어 복잡도 감소
- 소프트웨어 변경 사항 발생 시 대응 용이
- 개발표준에 의한 모듈화로 유지보수 용이
- 공통 컴포넌트 재사용으로 중복 예산 절감
'자격증 > 정보처리기사' 카테고리의 다른 글
[1과목] 소프트웨어 설계 - 애플리케이션 설계 (0) | 2022.07.06 |
---|---|
[1과목] 소프트웨어 설계 - 화면 설계 (0) | 2022.07.05 |
[4과목] 프로그래밍 언어 활용 - 네트워크 기초 활용 (0) | 2022.07.03 |
[4과목] 프로그래밍 언어 활용 - 응용 SW 기술 (0) | 2022.07.03 |
[4과목] 프로그래밍 언어 활용 - 서버프로그램 구현 (0) | 2022.07.03 |