본문 바로가기
IT 자격증/정보처리기사

정보처리기사 필기 5주차 Day-1 정리

by 펭귄스토리 2021. 8. 1.

 

Chapter 01. 소프트웨어 개발방법론 활용

1. 소프트웨어 개발방법론 선정

(1) 소프트웨어 생명주기 모델

소프트웨어 생명주기(SDLC : Software Development Life Cycle) 모델 개념

소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차이다. 

 

소프트웨어 생명주기 모델 프로세스 = 요설구테유

순서 프로세스 설명 활동
1 구사항 분석 다양한 이해관계자의 상충할 수도 있는 요구사항을 고려하여 새로운 제품이나 변경된 제품에 부합하는 요구와 조건을 결정하는 단계 기능 요구사항
비기능 요구사항
2 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계 시스템 구조 설계
프로그램 설계
사용자 인터페이스 설계
3 설계 단계에서 논리적으로 결정한 문제해결 방법을 특정 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계 인터페이스 개발
자료 구조 개발
오류 처리
4 스트 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이느지 검사하고 평가하는 단계 단위 테스트
통합 테스트
시스템 테스트
인수 테스트
5 지보수  시스템이 인수되고 설치된 후 일어나는 모든 활동을 수행하는 단계 예방, 완전, 교정, 적응 유지보수

 

소프트웨어 샐명주기 모델 종류 = 폭프나반

종류 설명
포수 모델
(Waterfall Model)
소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델
가장 오래된 모델
고전적 생명주기 모형
요구사항 변경이 어려움
절차 : 타당성 검토 > 계획 > 요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수
로토타이핑 모델
(Prototyping Model)
고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
프로토타입은 구현 단계의 구현 골격
선형 모델
(Spiral Model)
시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델
절차 : 계획 및 정의 > 위험 분석 > 개발 > 고객 평가
복적 모델
(Iteration Model)
구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델

 

(2) 소프트웨어 개발방법론

소프트웨어 개발방법론(Software Development Methodology) 개념

소프트웨어 개발방법론은 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다. 

 

소프트웨어 개발방법론 종류

종류 설명
구조적 방법론
(Structured Development)
전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론
나씨-슈나이더만 차트 특징(Nassi-Shneiderman) : 논리의 기술에 중점을 둔 도형식 표현 방법
정보공학 방법론
(Information Engineering Development)
정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
객체지향 방법론
(Object-Oriented Development)
객체라는 기본 단위로 시스템을 분석 및 설계하는 방법론
컴포넌트 기반 방법론
(CBD : Component Based Development)
소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용 프로그램을 작성하는 방법론
소프트웨어 재사용이 가능
애자일 방법론
(Agile Development)
절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 자율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
제품 계열 방법론
(Product Line Development)
특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론

 

(3) 요구공학 방법론

요구공학 방법론(Requirements Engineering Methodology) 개념

요구공학 방법론은 사용자의 요구가 반영된 시스템을 개발하기 위하여 사용자 요구사항에 대한 도출, 분석, 명세, 확인 및 검증하는 구조화된 방법이다. 

 

요구사항 개발 프로세스 = 도분명확

요구사항

요구사항

요구사항 세 

요구사항 인 및 검증

 

요구사항 개발 프로세스 상세

도출 = 인터뷰, 설문조사, 브레인스토밍, 워크숍

분석 = 자료 흐름 지향 분석, 객체지향 분석, 요구사항 체계화를 위한 분석

명세 = 자연어에 의한 방법, 정형화 기법 사용 방법

확인 및 검증 = 리뷰, 워크 스루, 인스펙션

 

요구사항 관리 프로세스 = 협기변확

순서 프로세스 내용 기법/산출물
1 요구사항 가용한 자원과 수용 가능한 위험 수준에서 구현 가능한 기능을 협상하기 위한 기법 우선순위 결정, 시뮬레이션
2 요구사항 준선 설정 공식적으로 검토되고 합의된 요구사항 명세서 공식 회의, 형상 관리
3 요구사항 경 관리 요구사항 기준선을 기반으로 모든 변경을 공식적으로 통제하기 위한 기법 형상통제 위원회, 영향도 분석
4 요구사항 인 및 검증 구축된 시스템이 이해관계자가 기대한 요구사항에 부합하는지 확인하기 위한 방법 확인 및 검증

 

(4) 비용산정 모델

비용산정 모델 개념

소프트웨어 규모파악을 통한 투입자원, 소요시간을 파악하여 실행 가능한 계획을 수립하기 위해 비용을 산정하는 기법이다. 

 

비용산정 모델 분류

분류 설명  종류
하향식 산정방법 경험이 많은 전문가에게 비용 산정을 의뢰하거나 여러 저눈가와 조정자를 통해 산정하는 방식 전문가 판단
델파이 기법
상향식 산정방법 세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식 코드 라인 수 LOC(Lines of Code)
Man Month
COCOMO 모형
Putnam 모형
FP(Function Point) 모형

 

비용산정 모델

모델  설명
코드 라인 수
LOC(Lines of Code)
소프트웨어 각 기능의 원시 코드 라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정
Man Month 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 기법
COCOMO
(COnstructive COst MOdel)
보헴(Bohem)이 제안한 모형으로 프로그램 규모에 따라 비용을 산정
조직형(Organic Mode) : 기관 내부에서 개발된 중 소규모의 소프트웨어로 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리 개발에 적용

반분리형(Semi-Detached Mode) : 트랜잭션 처리 시스템이나 데이터베이스 관리 시스템, 컴파일러, 인터프리터와 같은 유틸 개발에 적용

임베디드형(Embedded Mode) : 초대형 규모의 트랜잭션 처리 시스템이나 운영체제, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적용
푸트남(Putnam) 모형 소프트웨어 개발 주기의 단계별로 요구할 인력의 분포를 가정하는 모형
개발 기간이 늘어날수록 프로젝트 적용 인원의 노력이 감소됨
기능점수(FP : Function Point) 모형 요구 기능을 증가시키는 인자별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능의 점수를 계산하여 비용을 산정하는 방식

 

(5) 일정관리 모델

일정관리 모델 개념

일정관리 모델은 프로젝트가 일정 기한 내에 적절하게 완료될 수 있도록 관리하는 모델이다. 

 

일정관리 모델 종류

모델  설명
주 공정법
(CPM : Critical Path Method)
여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법
PERT(Program Evaluation and Review Technique) 일의 순서를 계획적으로 정리하기 위한 수렴 기법으로 비관치, 중간치, 낙관치의 3점 추정방식을 통해 일정을 관리하는 기법
중요 연쇄 프로젝트 관리(CCPM : Critical Chain Project Management) 주 공정 연쇄법으로 자원제약사항을 고려하여 일정을 작성하는 기법

 

CPM에서 임계 경로 기간 계산

CPM 네트워크를 그려서 가장 긴 경로를 찾는다. 

임계 경로는 시작 > 가 > 나 > 바 > 종료이다. 

경로 기간
시작 > 가 > 나 > 바 > 종료 8+10+2+4=24일
시작 > 가 > 다 > 사 > 종료 8+5+1+4=18일
시작 > 라 > 사 > 종료 3+1+4=8일
시작 > 마 > 아 > 종료 7+6+4=17일

 

2. 소프트웨어 개발방법론 테일러링

(1) 소프트웨어 개발 표준

ISO/IEC 12207 구성 = 기조지

구분  주요 프로세스
본 공정 프로세스 획득 프로세스, 공급 프로세스, 개발 프로세스, 운영 프로세스, 유지보수 프로세스
직 공정 프로세스 기반 구조 프로세스, 관리 프로세스, 개선 프로세스, 훈련 프로세스
원 공정 프로세스 문서화 프로세스, 품질 보증 프로세스, 형상 관리 프로세스, 검증 프로세스, 확인 프로세스, 문제 해결 프로세스, 활동 검토 프로세스, 감사 프로세스

 

CMMI

CMMI(Capability Maturity Model Integration) 개념

CMMI는 기존 능력 성숙도 모델을 발전시킨 것으로서, 기존에 소프트웨어 품질 보증 기준으로 사용되던 SW-CMM과 시스템 엔지니어링 분야의 품질 보증 기준으로 사용되던 SE-CMM을 통합하여 개발한 품질 개선 모델이다. 

 

CMMI 모델

단계적 모델 

연속적 모델

 

CMMI 단계적 표현 모델의 성숙도 레벨 = 초관정관최

수준 레벨 설명
1 기화 단계 정의된 프로세스가 없고 작업자 능력에 따라 성과가 좌우되는 단계
2 리 단계 특정한 프로젝트 내의 프로세스가 정의되고 수행되는 단계
3 의 단계 조직의 표준 프로세스를 활용하여 업무를 수행하는 상태 표준화, 일관된 프로세스가 존재하는 단계
4 정량적 리 단계 정량적 기법을 활용하여 핵심 프로세스를 통제하는 단계
5 적화 단계 프로세스 역량 향상을 위해 신기술 도입, 프로세스 혁신 활동 수행하는 단계

 

SPICE

SPICE(Software Process Improvement and Capability dEtermination) 모델 개념

SPICE는 소프트웨어 프로세스에 대한 개선 및 능력측정 기준에 대한 국제 표준이다. 

 

SPICE 프로세스 수행 능력 수준 단계 구성 = 불수관확예최

레벨 수준 설명
0 안정 단계 프로세스가 구현되지 않았거나, 프로세스가 그 목적을 달성하지 못한 단계
1 행 단계 프로세스의 목적이 전반적으로 이루어진 단계
2 리 단계 정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도
3 립 단계 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행
4 측 단계 프로세스가 목적 달성을 위해 통제되고, 양적인 측정을 통해서 일관되게 수행
5 적화 단계 프로세스 수행을 최적화하고, 지속적으로 업무 목적을 만족

 

(2) 테일러링 기준

테일러링 개념

테일러링은 조직의 표준 프로세스를 커스터마이징하여 프로젝트의 비즈니스적으로 또는 기술적인 요구에 맞게 적합한 프로세스를 얻는 과정이다. 

 

테일러링 프로세스 = 정표상세문

순서  프로세스 설명
1 프로젝트 특징 사업목표, 현황확인, 프로젝트에 대한 이해
2 준 프로세스 선정 및 검증 표준 프로세스 선정
표준 프로세스 검증
3 위 수준의 커스터마이징 비즈니스 니즈에 따른 생명주기 정의
4 부 수준의 커스터마이징 테일러링 매트릭스를 활용해 세부 WBS 적용
5 테일러링 서화 결정 사항 문서화 
검토 및 승인

 

테일러링 개발방법론의 기준 = 목요프구국법

구분 기준 설명
내부적 기준 표환경 시스템의 개발 유형 및 기술 환경의 상이한 부분 조정
구사항 프로젝트의 생명주기 활동 측면에서 개발/운영/요지보수 등 프로젝트에서 우선적으로 고려할 요구사항이 상이하므로 최적화 필요
로젝트 특성 사업비, 참여 인력, 납품 기간 등 프로젝트 특성이 서로 다르기 때문에 조정 필요
성원 능력 프로세스, 산출물, 방법론 등에 대한 참여 인력의 숙련도, 능력 등이 서로 다르기 때문에 조정 필요
외부적 기준 제 표준 품질 기준 프로젝트의 대상 도메인에 따라 산출물의 국제적 품질기준이 서로 다르기 때문에 조정 필요
적 규제 프로젝트의 대상 도메인에 따라 적용되는 컴플라이언스가 서로 다르기 때문에 조정 필요

 

(3) 소프트웨어 개발 프레임워크

소프트웨어 개발 프레임워크(Software Development Framework) 개념

정보 시스템을 요구분석, 설계, 개발, 테스트하는 과정에 대한 기본 골격 또는 틀이다. 

 

소프트웨어 개발 프레임워크 단계

개발준비 > 분석 > 설계 > 구현 > 시험 > 전개 > 인도

 

소프트웨어 개발 프레임워크 적용 시 기대효과

개발할 소프트웨어에 대한 품질 보증이 가능하다 

소프트웨어 개발 용이성 증가

개발표준에 의한 모듈화로 유지보수가 용이하고 개발하고자 하는 소프트웨어의 복잡도 감소

 

https://book.naver.com/bookdb/book_detail.nhn?bid=15910265

 

수제비 정보처리기사 필기

NCS