- 1 - 소프트웨어 개발 방법론 활용
1. 소프트웨어 개발 방법론
1) 소프트웨어 개발 방법론의 개요
소프트웨어 개발 방법론은 소프트웨어 개발, 유지보수 등에 필요한 여러가지 일들의 수행 방법과 이러한 일들을 효율 적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화 한것
목적 -> 소프트웨어의 생산성과 품질 향상
종류 -> 구조적 방법론, 정보공학 방법론, 객체지향 방법론, 컴포넌트 기반 방법론, 애자일 방법론, 제품 계열 방법론
2) 구조적 방법론
정형화된 분석 절차에 따라 사용자 요구사항을 파악해 문서화 하는 처리(Process) 중심의 방법론
복잡한 문제를 다루기 위한 분할과 정복(Divide and Conquer)를 이용한다.
순서
타당성 검토 단계 -> 계획 단계 -> 요구사항 단계 -> 설계 단계 -> 구현 단계 -> 시험 단계 -> 운용/유지보수 단계 |
3) 정보공학 방법론
정보 시스템 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성있게 통합 적용하는 자료 중심의 방법론이다.
순서
정보 전략 계획 수집 단계 -> 업무 영역 분석 단계 -> 업무 시스템 설계 단계 -> 업무 시스템 구축 단계 |
4) 객체지향 방법론
객체지향 방법론은 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체로 만들어 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법
과거에 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택된 방법론이다.
구성 요소 : 객체, 클래스, 메시지
기본 원칙 : 캡슐화, 정보 은닉, 추상화, 상속성, 다형성 등이 있다.
순서
요구분석 단계 -> 설계 단계 -> 구현 단계 -> 테스트 및 검증 단계 -> 인도 단계 |
5) 컴포넌트 기반 방법론(CBD 방법론)
기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론이다.
컴포넌트의 재사용이 가능해 시간과 노력을 절감할 수 있다.
유지 보수 비용을 최소화 하고 생산성 및 품질을 향상시킬 수 있다.
순서
개발 준비 단계 -> 분석 단계 -> 설계 단계 -> 구현 단계 -> 테스트 단계 -> 전개 단계 -> 인도 단계 |
6) 애자일 방법론
민첩한, 기민한 뜻으로 애자일 방법론은 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론이다.
소규모 프로젝트, 고도로 숙련된 개발자, 급변하는 요구사항에 적합
대표적 종류 : XP(익스트림 프로그래밍), 스크럼, 칸반, 크리스탈
7) 제품 계열 방법론
특정 제품에 적용하고 싶은 공통된 기능을 정의해 개발하는 방법론
임베디드 소프트웨어를 만드는데 적합하다.
영역 공학 : 영역 분석, 영역 설계, 핵심 자산을 구현하는 영역
응용 공학 : 제품 요구 분석, 제품 설계, 제품을 구현하는 영역
영역 공학과 응용공학의 연계를 위해 제품의 요구사항, 아키텍처, 조립 생산이 필요하다.
2. 비용 산정 기법
1) 소프트 웨어 비용 산정
소프트웨어 비용 산정은 소프트웨어의 개발 규모를 소요되는 인원, 자원, 기간으로 확인하여 실행 가능한 계획을 수립하기 위한 비용을 계산하는 것.
비용이 높을 경우 : 예산 낭비와 일의 효율성이 저하됨
비용이 낮을 경우 : 개발자의 부담이 가중되고 품질문제가 발생됨.
상향식 산정 기법과 하향식 산정 기법이 있다.
2) 소프트웨어 비용 결정 요소
개발하는 소프트웨어, 소프트웨어 개발에 투입되는 자원, 소프트웨어 생산성에 따라 결정된다.
프로젝트 요소
제품 복잡도 : 소프트웨어 종류에 따라 발생할 수 있는 문제들의 난이도
시스템 크기 : 소프트웨어의 규모에 따라 개발하는 시스템의 크기
요구되는 신뢰도 : 일정기간 내 주어진 조건 하에서 프로그램이 필요한 기능을 수행하는 정도
자원 요소
인적 자원 : 소프트웨어 개발 관련자들이 갖춘 능력 혹은 자질을 의미
하드웨어 자원 : 소프트웨어 개발 시 필요한 장비와 워드프로세서, 프린터 등의 보조 장비를 의미
소프트웨어 자원 : 소프트웨어 개발 시 필요한 언어 분석기, 문서화 도구 등의 개발 지원 도구
생산성 요소
개발자 능력 : 개발자들이 갖춘 전문 지식, 경험, 이해도, 책임감, 창의력
개발 기간 : 소프트웨어 개발 기간
3. 하향식 비용 산정 기법
1) 하향식 비용 산정 기법의 개요
과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 비과학적인 방법
전체 비용을 산정 후 각작업별로 비용을 세분화
하향식 비용 산정 기법에는 전문가 감정 기법, 델파이 기법이 있다.
2) 전문가 감정 기법
조직 내에 있는 경험이 많은 두 명 이상의 전문가에 게 비용 산정을 의뢰하는 기법이다.
가장 편리하고 신속하게 비용을 산정할 수 있고 의뢰자로부터 믿음을 얻을 수 있다.
새로운 프로젝트에는 과거의 프로젝트와 다른 요소들이 있다는 것을 간과 할 수 있음.
새로운 프로젝트와 유사한 프로젝트에 대한 경험이 없을 수가 있고 개인적이고 주관적임.
3) 델파이 기법
전문가 감정 기법의 주관적인 문제를 보완하기 위해 많은 전문가들의 의견을 종합해 산정하는 기법
한 명의 조정자와 여러 전문가로 구성된다.
순서
(1) 시스템 정의서와 비용 내역을 기록하는 서식 제공
(2) 산정 요원들은 정의서 분석, 비용 산정
(3) 조정자는 내용 요약 후 배포
(4) 산정 요원들은 산정한 결과를 이용해 다시 익명으로 산정
(5) 요원간의 의견이 일치할 때 까지 반복
4. 상향식 비용 산정 기법
1) 상향식 비용 산정 기법의 개요
프로젝트의 세부적인 작업 단위 별로 비용을 산정한 후 집계해 전체비용을 산정하는 방법.
종류 : LOC(원시 코드 라인 수 기법), 개발 단계별 인월 수 기법, 수학적 산정 기법
2) LOC(원시 코드 라인 수) 기법
각 기능의 원시코드 라인 수의 비관치, 낙관치, 기대치를 측정해 예측치를 구하고 비용을 산정하는 기법
예측치 = a + 4m + b / 6
* a: 낙관치, b: 비관치, m: 기대치(중간치)
산정 공식
노력(인월 또는 LOC) = 개발 기간 x 투입 인원 |
ex) LOC 기법으로 예측된 총 라인수가 30,000라인, 개발에 참여한 프로그래머가 5명, 프로그래머의 평균 생산성이 월간 300라인일 때, 개발에 소요되는 기간은?
노력(인월) = LOC / 1인당 월평균 생산 코드 라인 수 = 30000/300 = 100명
개발 기간 = 노력(인월) / 투입 인원 = 100/5 = 20개월
* 1회 + 2회 기출문제 출제
* 산정 공식을 꼭 외우고 풀이를 연습하세요!
3) 개발 단계별 인월 수(Effort Per Task) 기법
개발 단계별 인월 수 기법은 LOC기법을 보완하기 위한 기법으로, 각 기능을 구현시키는데 필요한 노력을 생명 주기의 각 단계별로 산정한다.
LCO기법 보다 정확하다.
'2020 정보처리기사 필기 > 5과목 - 정보시스템 구축 관리' 카테고리의 다른 글
[2020 정보처리기사 필기 요약] 5과목 - 정보시스템 구축 관리(IT프로젝트 정보시스템 구축 관리_4) (0) | 2020.08.20 |
---|---|
[2020 정보처리기사 필기 요약] 5과목 - 정보시스템 구축 관리(IT프로젝트 정보시스템 구축 관리_3) (0) | 2020.08.16 |
[2020 정보처리기사 필기 요약] 5과목 - 정보시스템 구축 관리(IT프로젝트 정보시스템 구축 관리_2) (0) | 2020.08.16 |
[2020 정보처리기사 필기 요약] 5과목 - 정보시스템 구축 관리(IT프로젝트 정보시스템 구축 관리_1) (0) | 2020.08.03 |
[2020 정보처리기사 필기 요약] 5과목 - 정보시스템 구축 관리(소프트웨어 개발 방법론 활용_2) (0) | 2020.08.01 |