▶ 157 소프트웨어 개발 방법론
구조적 방법론 / 중요★
정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
•구조적 방법론의 절차
타당성 검토 단계 → 계획 단계 → 요구사항 분석 단계 → 설계 단계 → 구현 단계 → 시험 단계 → 운용/유지보수 단계
정보공학 방법론
정보 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료 중심의 방법론
- 대규모 정보 시스템을 구푹하는데 적합
객체지향 방법론
소프트웨어 개발 시 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
- 구성 요소에는 객체, 클래스, 메시지 등이 있음
- 기본 원칙에는 캡슐화, 정보 은닉, 추상화, 상속성, 다향성 등이 있음
*단어 의미 알기
*객체(Object) : 데이터와 함수(자료구조와 연산)를 묶어 놓은 하나의 소프트웨어 모듈
*클래스(Class) : 공통된 송성과 연산을 갖는 객체의 집합
*메시지(Message) : 객체와 객체 간의 통신 수단
*캡슐화(Encapsulation) : 데이터와 함수를 하나로 묶는 것
*정보 은닉(Information Hiding) : 다른 객체에 자신의 정보를 숨기고 연산만을 통해 접근 허용하는 것
*추상화(Abstraction) : 불필요한 부분 생략, 가장 중요한 것에 중점을 두어 개략화하는 것
*상속성(inheritance) : 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
*추상화(Abstraction) : 불필요한 부분 생략, 가장 중요한 것에 중점을 두어 개략화하는 것
*다향성(Polymorphism) : 다른형태로 응답
컴포넌트 기반(CBD; Component Based Design) 방법론
기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
*컴포넌트(Component) : 문서, 소스코드, 파일, 라이브러리 등과 같은 모듈화된 자원으로, 재사용 가능
애자일(Agile) 방법론 / 중요★
고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론
- 대표적인 종류에는 프로그래밍(XP), 스크럼(Scrum), 칸반(Kanban), 크리스탈(Crytal)등이 있음
• 애자일 방법론의 절차
사용자 스토리 → 【계획 → 개발 → 승인 테스트】반복주기
제품 계열 방법론
특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
▶ 158 비용 산정 기법
소프트웨어 비용 결정 요소
- 프로젝트 요소 : 제품 복잡도, 시스템 크기, 요구되는 신뢰도
- 자원 요소 : 인적 자원, 하드웨어 자원, 소프트웨어 자원
- 생산성 요소 : 개발자 능력, 개발 기간
▶ 159 비용 산정 기법 - 하향식
전문가 감정 기법
조직 내에 있는 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
델파이 기법
전문가 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법
▶ 159 비용 산정 기법 - 상향식1
LOC(원시 코드 라인 수, source Line Of Code) 기법
소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
★ 예측치 = (a+4m+b) / 6 단, a : 낙관치, b : 비관치, m : 기대치(중간치)
• 산정 공식
- 노력(인월) = 개발기간 * 투입인원
= LOC / 1인당 월평균 생산 코드 라인 수
- 개발 비용 = 노력(인월) * 단위 비용(1인당 월평균 인건비)
- 개발 기간 = 노력(인월) / 투입 인원
- 생산성 = LOC / 노력(인월)
개발 단계별 인월수 기법
LOC 기법을 보완하기 위한 기법, 각 기능을 구현시키는 데 필요한 노력을 생명 주기의 각 단계별로 산정
▶ 159 비용 산정 기법 - 상향식2
COCOMO 모형 / 중요★
보헴(Boehm)이 제안한 것으로, 원시 프로그램의 규모인 LOC에 의한 비용 산정 기법
• COCOMO의 소프트웨어 개발 유형
- 조직형(Organic Mode) : 5만(50KDSI) 라인 이하
- 반분리형(Semi-Detached Mode) : 30만(300KDSI) 라인 이하
- 내장형(Embedded Mode) : 30만(300KDSI) 라인 이상
• COCOMO 모형의 종류
- 기본(Basic)형
- 중간(Intermediate)형
- 발전(Detailed)형
Putnam 모형
소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해 주는 모형
- 생명 주기 예측 모형이라고도 함
- Rayleigh - Norden 곡선의 노력 분포도를 기초로 함
기능 점수(Function-Point) 모형
☞ 자동화 추정 도구
비용 산정의 자동화를 위해 개발된 도구로는 SLIM이 있음
▶ 162 소프트웨어 개발 방법론 결정
프로젝트 관리
관리 유형 |
주요 내용 |
일정 관리 |
작업 순서, 작업 기간 산정, 일정 개발, 일정 통제 |
비용 관리 |
비용 산정, 비용 예산 편성, 비용 통제 |
인력 관리 |
프로젝트 팀 편성, 자원 산정, 프로젝트 조직 정의, 프로젝트 팀 개발, 자원 통제, 프로젝트 팀 관리 |
위험 관리 |
위험 식별, 위험 평가, 위험 대처, 위험 통제 (위험 관리 순서) |
품질 관리 |
품질 계획, 품질 보증 수행, 품질 통제 수행 |
소프트웨어 개발 방법론 결정 절차
① 프로젝트 관리와 재사용 현환을 소프트웨어 개발 방법론에 반영
② 개발 단계별 작업 및 절차를 소프트웨어 생명 주기에 맞춰 수립
③ 결정된 소프트웨어 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 메뉴얼 작성
▶ 163 소프트웨어 개발 표준
ISO/IEC 12207
ISO(국제표준화기구)에서 만든 표준 소프트웨어 생명 주기 프로세스
- 기본 생명 주기 프로세스
- 지원 생명 주기 프로세스
- 조직 생명 주기 프로세스
CMMI
소프트웨어 개발 조직의 업무 능력 및 조직의 성숭도를 평가하는 모델
- 초기, 관리, 정의, 정량적 관리, 최적화 5단계로 구분
SPICE
소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준 ISO/IEC 15504
▶ 164 소프트웨어 개발 방법론 테일러링
소프트웨어 개발 방법론 테일러링
프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업
소프트웨어 개발 방법론 테일러링 고려 사항
- 내부적 요건 : 목표 환경, 요구사항, 프로젝트 규모, 보유 기술
- 외부적 요건 : 법적 제약사항, 표준 품질 기준
소프트웨어 개발 방법론 테일러링 기법
- 프로젝트 규모와 복잡도에 따른 테일러링 기법
- 프로젝트 구성원에 따른 테일러링 기법
- 팀내 방법론 지원에 따른 테일러링 기법
- 자동화에 따른 테일러링 기법
*IT Compliance : 기업 운영 시 IT 분야에서 내.외부적으로 반드시 지켜야 하는 법적 규제 사항이나 지침
▶ 165 소프트웨어 개발 프레임워크
스프링 프레임워크(Spring Framework)
자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
전자정부 프레임워크
우리나라의 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처 제공하는 프레임워크
닷넷 프레임워크(.NET Framework)
Windows프로그램의 개발 및 실행 환경을 제공하는 프레임워크, Microsoft사에서 개발