자격증/정보처리기사
요구사항 확인 (5)
카늬
2024. 6. 12. 19:24
소프트웨어 개발 방법론
소프트웨어 개발 방법론
- 소프트웨어 개발, 유지보수 등에 필요한 여러 일들의 수행방법과 수행하려는 과저에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화 한 것
- 소프트웨어 개발 방법론의 목적은 소프트웨어의 생산성과 품질 향상이다.
- 주요 소프트웨어 개발 방법론
- 구조적 방법론
- 정보공학 방법론
- 객체지향 방법론
- 컴포넌티 기반(CBD) 방법론
- 제품 계열 방법론
- 애자일 방법론
구조적 방법론
- 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론이다.
- 1960년대까지 가장 많이 적용되었던 소프트웨어 개발 방법론
- 복잡한 문제를 다루기 위해 분할과 정복 원리를 적용
- 구조적 방법론의 개발절차
- 타당성 검토
- 계획
- 요구사항
- 설계
- 구현
- 시험
- 운용/유지보수
정보공학 방법론
- 정보 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료 중임의 방법론이다.
- 대규모 정보시스템을 구축하는데 적합하다.
- 정보공학 방법론의 개발절차
- 정보 전략 계획 수립
- 업무 영역 분석
- 업무 시스템 설계
- 업무 시스템 구축
객체지향 방법론
- 부품처럼 하나의 객체로 만들어 기계부품 조립하듯이 객체들을 조립해서 소프트웨어를 구현하는 방법론
- 구조적 기법의 문제점으로 인한 소프트웨어 위기를 해결책으로 채택
- 객체지향 방법론 구성요소
- 객체
- 클래스
- 메시지
- 객체지향 방법론의 기본원칙
- 캡슐화
- 정보 은닉
- 추상화
- 상속성
- 다형성
- 객체지향 방법론의 개발 절차
- 요구 분석
- 설계
- 구현
- 테스트 및 검증
- 인도
컴포넌트 기반 방법론
- 소프트웨어를 구성하는 컴포넌트(재사용이 가능한 모듈화 자원)를 조합하여 새로운 애플리케이션을 만드는 방법론
- 컴포넌트는 재사용이 가능하여 시간과 노력을 절감할 수 있다.
- 새로운 기능을 추가하는 것이 간단하여 확장성이 보장된다.
- 유지 보수 비용을 최소화하고 생산성 및 품질을 향상 시킬 수 있다.
- 컴포넌트 기반 방법론의 개발 절차
- 개발 준비
- 분석
- 설계
- 구현
- 테스트
- 전개
- 인도
제품 계열 방법론
- 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
- 임베디드 소프트웨어를 만드는데 적합
S/W 공학의 발전적 추세
소프트웨어 재사용(software Reuse)
- 이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것
- 소프트웨어 개발의 품질과 생산성을 높이기 위한 방법
- 기존에 개발된 소프트웨어와 경험, 지식 등을 새로운 소프트웨어에 적용한다.
- 소프트웨어 재사용 기법
- 합성 중심 - 전자칩과 같은 소프트웨어 부품, 즉 블록을 만들어서 끼워 맞춰 소프트웨어를 완성시키는 방법으로, 블록 구성 방법이라고도 함
- 생성 중심 - 추상화 형태로 써진 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법이라고도 함
소프트웨어 재공학(Software Reengineering)
- 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것
- 유지보수의 생산성을 향상을 통해 소프트웨어 위기를 해결하는 방법
- 소프트웨어 재공학의 이점
- 소프트웨어의 품질 향상
- 소프트웨어의 생산성 증가
- 소프트웨어의 수명 연장
- 소프트웨어의 오류 감소
CASE(Computer Aided Sofrware Engineering)
- 소프트웨어 개발 과정에서 사용되는 요구분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
- CASE 주요 기능
- 소프트웨어 생명주기 전 단계의 연결
- 다양한 소프트웨어 개발 모형 지원
- 그래픽 지원
비용 산정 기법 - 하향식
하향식 비용 산정 기법
- 과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 기법
- 프로젝트의 전체 비용을 산정한 후 각 작업별로 비용을 세분화 한다.
- 하향식 비용 산정 기법
- 전문가 감정 기법
- 델파이 기법
전문가 감정 기법
- 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
델파이 기법
- 전문가 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법
비용 산정 기법 - 상향식
상향식 비용 산정 기법
- 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
- 주요 상향식 비용 산정하는 방법
- LOC(원시 코드 라인 수) 기법
- 개발 단계별 인월수 기법
- 수학적 산정기법
LOC(원시 코드 라인 수)기법
- 각 기능의 원시코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
- 측정이 용이하고 쉬워 가장 많이 사용한다.
개발 단계별 인월수(Effort Per Task) 기법
- LOC 기법을 보완하기 위한 기법
- 각 기능을 구현시키는데 필요한 노력을 생명 주기의 각 단계별로 산정
수학적 산정 기법
수학적 산정 기법
- 수학적 산정 기법은 상향식 비용 산정 기법으로, 경험적 추정 모형, 실험적 추정 모형이라고도 한다.
- 개발비용의 자동화를 목표로 한다.
- 사용되는 공식은 과거의 유사한 프로젝트를 기반으로 유도된 것이다.
- 주요 수학적 산정 기법
- COCOMO 모형
- Putnam 모형
- 기능 점수 모형
COCOMO 모형
- 원시 프로그램의 규모인 LOC에 의한 비용 산정 기법이다.
- 보헴이 제안하였다.
COCOMO의 소프트웨어 개발 유형
- 조직형 - 5만라인 이하의 소프트웨어를 개발하는 유형
- 반 분리형 - 30만 라인 이하의 소프트웨어를 개발하는 유형
- 임베디드형 - 30만 이상의 소프트웨어를 개발하는 유형
Putnam 모형
- 소프트웨어 생명 주기의 전 과정 동안에 사용될 놓ㅎ력의 분포를 예상하는 모형
- 푸트남이 제안한 것으로, 생명 주기 예측 모형이라고도한다.
- 대형 프로젝트의 노력분포 산정에 이용된다.
기능 점수(FP : Funtion Point) 모형
- 소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여하고 가중치를 합산하여 총 기능점수를 산출해 기능점수를 구한 후 비용을 산정
- 알브레히트가 제안
- 소프트웨어 기능 증대 요인
- 자료 입력(입력 양식)
- 정보 출력(출력 보고서)
- 명령어(사용자 질의 수)
- 데이터 파일
- 필요한 외부 루틴과의 인터페이스