728x90

소프트웨어 개발 방법론

소프트웨어 개발 방법론의 개요

- 소프트웨어 개발, 유지보수에 필요한 수행 방법과 효율적으로 수행하려는 과정에서 필요한 기법 및 도구를 정리하여 표준화

 

구조적 방법론

- 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론

- Divide and Conquer 원리 적용

 

정보공학 방법론

- 정보 시스템 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료 중심의 방법론

- 대규모 정보시스템 구축에 적합

 

객체지향 방법론

- 기계의 부품을 조립하듯이 객체들을 조립하여 소프트웨어를 구현하는 방법론

- 구조적 기법의 해결책으로 채택

 

컴포넌트 기반(CBD) 방법론

- 컴포넌트를 조합하여 새로운 애플리케이션을 만드는 방법론

- 컴포넌트의 재사용이 가능하여 시간, 노력, 비용을 절감하고 품질을 높임

제품 계열 방법론

- 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론

- 임베디드 소프트웨어 개발에 적합

 

소프트웨어 공학의 발전적 추세

소프트웨어 재사용

- 이미 개발되어 안정되어 있는 소프트웨어를 재사용하는 것

- 합성 중심(블록 구성 방법) 

- 생성 중심(패턴 구성 방법)

 

소프트웨어 재공학

- 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어의 성능을 향상

- 소프트웨어 재공학의 장점 : 품질 향상, 생산성 증가, 수명 연장, 오류 감소

 

CASE(Computer Aided Software Engineering)

- 소프트웨어 개발 과정을 컴퓨터나 소프트웨어로 자동화하는 것

- CASE의 주요 기능

    -> 소프트웨어 생명 주기 전 단계의 연결

    -> 다양한 소프트웨어 개발 모형 지원

    -> 그래픽 지원

 

비용 산정 기법

소프트웨어 비용 산정의 개요

- 소프트웨어의 개발 규모를 소요되는 인원, 자원, 기간 등으로 확인하여 실행 가능한 계획을 수립하기 위해 필요한 비용을 산정하는 것

 

소프트웨어 비용 결정 요소

- 프로젝트 요소 : 제품 복잡도, 시스템 크기, 요구되는 신뢰도

- 자원 요소 : 인적 자원, 하드웨어 자원, 소프트웨어 자원

- 생산성 요소 : 개발자 능력, 개발 기간

 

하향식 산정 기법

- 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정

- 전문가 감정 기법

    -> 조직 내 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰

    -> 진행했던 유사한 프로젝트와 진행할 새로운 프로젝트 간 새로운 요소가 있을 수 있고 경험이 없을 수 있음

- 델파이 기법

    -> 많은 전문가의 여러 의견을 종합하여 산정

    -> 한 명의 조정자와 여러 전문가로 구성되어 객관적임

 

상향식 산정 기법

- 프로젝트의 세부적인 작업 단위별로 비용을 산정 후 집계하여 전체 비용을 산정

- LOC(source Line Of Code) 기법

    -> 소프트웨어의 각 기능의 원시 코드 라인 수로 예측치를 구하고 비용을 산정하는 기법

    -> 노력(인월) = 개발 기간 x 투입 인원 = LOC / 1인당 월평균 생산 코드 라인 수

    -> 개발 비용 = 노력(인월) x 단위 비용(1인당 월평균 인건비)

    -> 개발 기간 = 노력(인월) / 투입 인원

    -> 생산성 = LOC / 노력(인월)

- 개발 단계별 인월수 기법

    -> 각 기능을 구현시키는 데 필요한 노력을 생명 주기의 각 단계별로 산정

 

수학적 산정 기법

수학적 산정 기법의 개요

- 상향식 선정 기법

- 개발 비용 산정의 자동화를 목표로 함

- 경험적 / 실험적 추정 모형이라고도 함

- 과거 유사한 프로젝트를 기반으로 공식을 유도

 

COCOMO 모형

- 보헴이 제안하였으며 LOC에 의한 비용 산정 기법

- 개발 유형 : 소프트웨어의 복잡도 또는 원시 프로그램의 규모에 따라 분류

    -> 조직형(Organinc Mode) : 기관 내부에서 개발된 중·소규모의 소프트웨어로 5만 라인 이하의 소프트웨어를 개발하는 유형

    -> 반분리형(Semi-Detached Mode) : 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 등 30만 라인 이하의 소프트웨어를 개발하는 유형

    -> 내장형(Embedded Mode) : 최대형 규모의 트랜잭션 처리 시스템이나 운영체제 등 30만 라인 이상의 소프트웨어를 개발하는 유형

- 모형의 종류 : 비용 산정 단계 및 적용 변수의 구체화 정도로 구분

    -> 기본형(Basic) : 소프트웨어의 크기와 개발 유형만을 이용하여 비용을 산정

    -> 중간형(Intermediate) : 기본형의 공식을 사용하거나 4가지 특성의 15가지 요인에 의해 비용을 산정

        * 제품의 특성 : 요구되는 신뢰도, 데이터베이스 크기, 제품의 복잡도

        * 컴퓨터의 특성 : 수행 시간의 제한, 기억 장소의 제한, 가상 기계의 안정성, 반환 시간

        * 개발 요원의 특성 : 분석가의 능력, 개발 분야의 경험, 가상 기계의 경험, 프로그래머의 능력, 프로그래밍 언어의 경험

        * 프로젝트 특성 : 소프트웨어 도구의 이용, 프로젝트 개발 일정, 최신 프로그래밍 기법의 이용

    -> 발전형(Detailed) : 개발 공정별로 보다 자세하고 정확하게 노력을 산출하여 비용을 산정

 

Putnam 모형

- 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해주는 모형

- 생명 주기 예측 모형이라고도 함

- 시간에 따라 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함

- 대형 프로젝트 노력 분포 산정에 이용

- SLIM : Rayleigh-Norder 곡선과 Putnam 예측 모델을 기초로 하여 개발된 자동화 측정 도구

 

기능 점수(FP) 모형

- 소프트웨어 기능을 증대시키는 요인별로 가중치를 부여하고 합산하여 총 기능 점수를 산출하며 총 기능 점수와 영향도를 이용하여 기능 점수를 구한 후 이를 이용해서 비용을 산정

- 알브레히트가 제안

 

프로젝트 일정 계획

프로젝트 일정 계획

- 프로젝트의 소작업을 파악하여 순서와 일정을 정하는 것

- PERT : 프로젝트에 필요한 전체 작업의 상호 작용을 표시하는 네트워크

- CPM : 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용하는 기법

    -> 임계 경로 : 최장 경로(가장 오래걸리는 경로)

- 간트차트 : 작업 일정을 막대 도표를 사용하여 표시하는 기법

소프트웨어 개발 표준

소프트웨어 개발 표준의 개요

- 소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준

 

ISO/IEC 12207

- ISO에서 만든 표준 소프트웨어 생명 주기 프로세스

- 소프트웨어의 개발, 운영, 유지보수를 관리하기 위한 생명 주기 표준을 제공

- 기본 / 생명 / 조직 생명 주기 프로세스로 구분

 

CMMI(Capability Maturity Model Integration, 능력 성숙도 통합 모델)

- 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가

- 성숙도는 초기, 관리, 정의, 정량적 관리, 최적화로 구분

 

SPICE(Software Process Improvement and Capability dEtermination, 소프트웨어 처리 개선 및 능력 평가 기준)

- 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준

- ISO/IEC 15504

- 목적

    -> 프로세스 개선을 위해 개발 기관이 스스로 평가

    -> 기관에서 지정한 요구조건의 만족 여부를 개발 조직이 스스로 평가

    -> 계약 체결을 위해 수탁 기관의 프로세스를 평가

- 프로세스

    -> 고객-공급자 프로세스 : 소프트웨어를 개발하여 고객에게 전달하는 것을 지원하며 소프트웨어의 정확한 운용 및 사용을 위한 프로세스로 구성

    -> 공학 프로세스 : 시스템과 소프트웨어 제품의 명세화, 구현, 유지보수를 하는데 필요한 프로세스로 구성

    -> 지원 프로세스 : 소프트웨어 생명 주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성

    -> 관리 프로세스 : 소프트웨어 생명 주기에서 프로젝트 관리자에 의해 사용되는 프로세스로 구성

    -> 조직 프로세스 : 조직의 업무 목적 수립과 조직의 업무 목표 달성을 위한 프로세스로 구성

- 프로세스 수행 능력 단계

    -> 불완전 : 구현되지 않거나 목적을 달성하지 못함

    -> 수행 : 수행되고 목적이 달성됨

    -> 관리 : 정의된 자원 한도 내에서 작업 산출물을 인도

    -> 확립 : 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행

    -> 예측 : 목적 달성을 위해 통제되고 양적인 측정을 통해 일관되게 수행

    -> 최적화 : 수행을 최적화하고 지속적인 개선을 통해 업무 목적을 만족시킴

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

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

- 소프트웨어 개발에 공통적으로 사용하는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템

- 스프링 프레임워크 : 자바 플랫폼과 동적인 웹 사이트의 개발을 위한 프레임워크

- 전자정부 프레임워크 : 우리나라의 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처를 제공

- 닷넷 프레임워크 : Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크로 Microsoft에서 통합 인터넷 전략을 위해 개발됨

실기 정리

 

2021 정보처리기사 실기 정리

본 정리 글은 시나공 정보처리기사 실기책과 2020년 기출문제 등을 참고하여 작성하였습니다. -> 책 정보 확인하기 시나공 정보처리기사 실기 수험생들의 궁금증을 100% 반영시험에 나올만한 내

1d1cblog.tistory.com

 

728x90

+ Recent posts