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

[정보처리기사 필기] Part 5 정보시스템 구축관리 Chapter 2 소프트웨어 개발 방법론 활용 공부

by Mr.ticket 2024. 1. 5.
728x90

1. 메모

 

KDSI(Kilo Delivered Sourece Instruction) : 전체 라인 수를 1,000라인 단위로 묶은 것

 

Rayleigh-Norden 곡선 : Norden이 소프트웨어 개발에 관한 경험적 자료를 수집하여 이를 근거로 그린 곡선

 

2. Point

 

폭포수 모형의 특징

 - 1979년 Boehm이 제시한 전형적인 생명주기 모형이다.

 - 소프트웨어의 개발 시 프로세스에 체계적인 원리를 도입할 수 있는 첫 방법론이다.

 - 적용 사례가 많고, 널리 사용된 방법이다.

 - 단계별로 산출물이 명확하다.

 - 각 단계의 결과가 확인된 후에 다음 단계로 진행하는 선형 순차적, 고전적 생명주기 모형이다.

 - 기존 시스템 보완에 좋다.

 - 응용 분야가 단순하거나 내용을 잘 알고 있는 경우 적용한다.

 - 비전문가가 사용할 시스템을 개발하는 데 적합하다.

 

폭포수 모형의 개발 단계

 1. 계획 단계 : 문제와 시스템의 특성을 파악하여 비용과 기간을 예측하고 개발의 타당성을 분석하고 기본 기능과 성능 요건을 파악

 2. 요구분석 단계 : 사용자 요구를 정확히 분석 및 이해하여 시스템의 기능과 목표, 제약사항 등을 파악한다.

 3. 설계 단계 : 요구사항을 하드웨어 또는 소프트웨어 시스템으로 분배하는 과정으로 한 개 이상의 실행 가능한 프로그램으로 변환할 수 있는 형태로 소프트웨어의 기능을 표현한 것이다.

 4. 구현 단계 : 설계의 각 부분을 실제로 프로그래밍 언어를 통해 코드화하는 단계

 5. 시험 단계 : 각 프로그램 단위의 내부적으로 이상 여부 및 입력에 따라 요구되는 결과로 작동하는지의 여부를 확인

 6. 운용 및 유지보수 단계 : 사용자에게 전달되어 실제로 사용되고, 전달 이후에 발생하는 변경이 있을 경우 이를 수용하고 계속적인 유지를 해주는 단계

 

폭포수 모형의 문제점

 - 단계별로 구현되지만, 병행되어 진행되거나 다시 거슬러 올라갈 수 없으며, 반복을 허용하지 않는다.

 - 실제 프로젝트가 순차적이라기보다 반복적인 성향을 가지기 때문에 개발 모델로 적합하지 않은 경우가 많다.

 - 모든 분석은 프로젝트가 시작되기 전에 완성되어야 한다. 즉, 프로그램의 모든 요구사항을 초기에 완전히 파악하도록 요구하기 때문에 개발 프로젝트의 불명확성을 미연에 방지할 수 없다.

 

나선형 모형(Spiral Model)의 특징

 - 폭포수 모델과 프로토타이핑 모델의 장점을 수용하고, 새로운 요소인 위험 분석을 추가한 진화적 개발 모델로 비교적 대규모 시스템에 적합

 - 프로젝트 수행 시 발생하는 위험을 관리하고, 최소화하려는 것을 목적으로 한다.

 - 계획 수립, 위험 분석, 개발, 사용자 평가의 과정을 반복적으로 수행한다.

 

나선형 모형 개발 단계

 1. 계획 수립 : 요구사항 수집, 시스템의 목표 규명, 제약 조건 등을 파악

 2. 위험 분석 : 요구사항을 바탕으로 위험을 규명하고, 기능 선택의 우선순위, 위험 요소의 분석, 프로젝트 타당성 평가 등으로 프로젝트 진행 여부 파악

 3. 공학적 개발 : 선택된 기능의 개발과 개선된 한 단계 높은 수준의 제품을 개발

 4. 고객 평가 : 구현된 시스템을 사용자가 평가하여 다음 계획을 세우기 위한 피드백 수렴

 

소프트웨어 개발 프레임워크의 특징

 - 애플리케이션의 개발을 조금 더 쉽게 하기 위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용할 수 있도록 협업화된 형태로 제공하는 소프트웨어 환경

 - 프레임워크를 사용하면 이미 만들어진 코드를 사용하게 되므로 시간과 비용이 절약되고 생산성이 증가한다.

 - 고정된 부분을 재사용할 수 있다.(코드 라이브러리, 지원 프로그램, 컴파일러, 도구 세트, API 등)

 

프레임 워크의 특성

 - 모듈화(Modularity) : 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화하여 소프트웨어 품질을 향상시킨다.

 - 재사용성(Reusability) : 재사용 가능한 모듈들을 제공하여 예산 절감, 생산성 향상, 품질 보증이 가능하다.

 - 확장성(Extensibility) : 다형성을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 필요하다.

 - 제어의 역흐름(Inversion of Control) : 개발자과 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킨다.

 

프레임워크의 종류

 - 스프링 프레임워크

 - 전자정부 프레임워크

 - 닷넷 프레임워크

 

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

 - 공통 컴포넌트 재사용으로 중복 예산 절감

 - 표준화된 연계모듈 활용으로 상호 운용성 향상

 - 개발표준에 의한 모듈화로 유지보수 용이

 

개발비용 산정 시 고려 요소

 - 시스템 정의 및 개발 전략 수립 단계에서는 개발비용 산정이 개괄적으로 이루어진다.

 - 프로젝트의 정확한 측정을 위해 충분한 시간을 갖고 측정한다.

 - 프로젝트 개발비용 결정 요소에는 프로젝트 요소, 자원 요소, 생산성 요소 등이 있다.

 - 프로젝트 비용과 노력 측정을 위해 상대적으로 간단한 분해 기술을 이용한다.

 - 하나 이상의 자동화 측정 도구를 이용한다.

 - 소프트웨어 비용과 노력에 대한 실험적 모델을 형성한다.

 

LOC 기법 : WBS에서 분해된 각각의 시스템 기능들에 필요한 원시 코드 라인 수를 산정함에 있어 PERT의 예측 공식을 이용한다.

 

PERT의 예측 공식 : 확률론에서의 배타 분포도(Beta Distribution)에 근거한 낙관치(Optimistic Estimate), 기대치(Most Likely Estimate), 비관치(Pessimistic Estimate)의 확률적 집합으로, 예측치(Expected Value)와 이의 작업편방편차(Variance)가 산출되도록 유도한다.

 

COCOMO의 프로젝트 모드(제품의 복잡도에 따른 프로젝트 개발 유형)

 

Putnam의 생명 주기 예측 모형

 - Rayleigh-Norden 곡선에 기초하며 소프트웨어 개발비용을 산정하는 공식을 유도한다.

 - 동적 모형으로 각 개발기간마다 소요 인력을 독립적으로 산정할 수 있다.

 - 시간에 대한 함수로 대형 프로젝트의 노력 분포 산정에 이용된다.

 - SLIM 비용 추정 자동화 모형의 기반이 된다.

 

CBD(Component Based Development) : 시스템 또는 소프트웨어를 구성하는 각각의 컴포넌트를 만들고 조립해 또 다른 컴포넌트나 소프트웨어를 만드는 것

 

SDDC(Software Definition Data Center) : 데이터 센터의 모든 자원이 가상화되어 서비스되고, 사람의 개입 없이 소프트웨어 조직만으로 자동 제어 관리되는 데이터 센터

 

CMM(Capability Maturity Model) 성숙도 5단계

 1. 수준1(초보 단계, Initial) : 소프트웨어 프로세스가 임기응변적이고 혼란스러운 단계로 프로세스가 겅의 정의되어 있지 않으며 프로젝트의 성공은 개인적 능력에 달려 있다.

 2. 수준2(반복 단계, Repeatable) - 프로젝트 관리: 비용 산출, 스케줄, 기능성을 지닌 기초적인 프로젝트 프로세스가 확립되어 있는 단계로 필요한 프로세스 훈련은 비슷한 애플리케이션을 만든 계승자로부터 반복된다.

 3. 수준3(정의 단계, Definition) - 엔지니어링 프로세스 : 2단계의 모든 사항은 포함하며, 관리와 공학 프로세스에 관한 소프트웨어 프로세스가 문서화, 규격화, 통합되어 있는 단계로 소프트웨어 개발과 유지에 문선화와 공인된 조직의 프로세스를 사용한다.

 4. 수준4(관리 단계, Management) - 프로덕트 및 프로세스 품질 : 3단계의 모든 사항을 포함하며, 소프트웨어 프로세스의 평가와 제품의 품질의 세부사항들이 평가되는 단계로 소프트웨어 프로세스와 제품이 정량적으로 이해되고 세부적으로 평가된다.

 5. 수준5(최적 단계, Optimizing) - 지속적인 개선 : 4단계의 모든 사항을 포함하며, 프로세스와 혁신적인 생각, 기술로부터 정량적인 피드백을 통해 지속적인 프로세스 향상이 이루어지는 단계이다.

 

SPICE(Software Process Improvement and Capability dEtermination)

단계 명명 의미
CL0 미완성
(Incomplete)
미구현 또는 목표 미달성
CL1 실행
(Performed)
프로세스 수행 및 목적 달성
CL2 관리
(Managed)
프로세스 수행 계획 및 관리
CL3 확립
(Established)
표준 프로세스 사용
CL4 예측
(Predictable)
프로세스 정량적 이해 및 통계
CL5 최적화
(Optimizing)
프로세스 지속적인 개선

 

3. 오답 노트

 

폭포수 모형의 특징으로 거리가 먼 것은 ?

1. 개발 중 발생한 요구사항을 쉽게 반영할 수 있다.

2. 순차적인 접근 방법을 이용한다.

3. 단계적 정의와 산출물이 명확하다.

4. 모형의 적용 경험과 성공 사례가 많다.

폭포수 모형은 개발 중 발생한 요구사항을 반영하기 어려운 단점이 있다.

 

개인 공부를 위한 게시물로 틀린 내용을 포함할 수 있는 점 참고 부탁드립니다.
728x90

댓글