정보시스템 구축 관리 1장 소프트웨어 개발 방법론 활용
Updated:
소프트웨어 개발 방법론
- 구조적 방법론
- 정형롸된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리(Precess) 중심의 방법론이다.
- 복잡한 문제를 다루기 위해 분할과 정복(Divide and Conquer) 원리를 적용한다.
- 정보공학 방법론
- 정보 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료(Data) 중심의 방법론이다.
- 업무 영역 분석과 업무 시스템 설계 과정에 데이터베이스 설계를 위한 데이터 모델링으로 개체 관계도(ERD; Entity-Relationship Diagram)를 사용한다.
- 컴포넌트 기반(CBD) 방법론
- 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론이다.
- 컴포넌트의 재사용(Reusability)이 가능하여 시간과 노력을 절감할 수 있다.
- 새로운 기능을 추가하는 것이 간단하여 확장성이 보장된다.
- 유지 보수 비용을 최소화하고 생산성 및 품질을 향상시킬 수 있다.
- 분석 단계에서 사용자 요구사항 정의서가 산출된다.
S/W공학의 발전적 추세
- 소프트웨어 재사용의 이점
- 개발 시간과 비용 단축
- 소프트웨어 품질 향상
- 소프트웨어 개발의 생산성 향상
- 시스템 명세, 설계, 코드 등 문서 공유
- 소프트웨어 재사용 방법
- 합성 중심: 전자 칩과 같은 소프트웨어 부품, 즉 블록(모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법
- 생성 중심: 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법
- 소프트웨어 재공학의 주요 활동
- 분석(Analysis): 기존 소프트웨어의 명세서를 확인하여 소프트웨어의 동작을 이해하고, 재공학할 대상을 선정하는 활동
- 재구성(Restructuring): 기존 소프트웨어의 구조를 향상시키기 위하여 코드를재구성하는 활동
- 역공학(Reverse Engineering): 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어내는 활동
- 이식(Migration): 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 활동
- CASE 사용의 이점
- 소프트웨어 개발 기간을 단축하고 개발 비용을 절감할 수 있다.
- 자동화된 기법을 통해 소프트웨어 품질이 향상된다.
- 소프트웨어의 유지보수를 간편하게 수행할 수 있다.
- 소프트웨어 모듈의 재사용성이 향상된다.
- CASE의 주요 기능
- 소프트웨어 생명 주기 전단계의 연결
- 다양한 소프트웨어 개발 모형 지원
- 그래픽 지원
- 모듈들의 모순 검사 및 오류검증
- 자료 흐름도 작성
- CASE 원천 기술
- 구조적 기법, 프로토타이핑, 자동 프로그래밍, 정보 저장소, 분산처리
상향식 비용 산정 기법
상향식 비용 산정 기법의 개요 —— 상향식 비용 산정 기법은 프로젝트의 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법이다. 상향식 비용 산정 기법에는 LOC(원시 코드 라인수) 기법, 개발 단계별 인원수 기법, 수학적 산정 기법 등이 있다.
LOC(원시 코드 라인 수, source Line Of Code) 기법
LOC 기법은 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법이다. 측정이 용이하고 이해하기 쉬워 가장 많이 사용된다. 예측치를 이용하여 생선성, 노력, 개발 기간 등의 비용을 산정한다.
- 예측치 = (a + 4m + b)/6, a: 낙관치, b: 비관치, m:기대치(중간치)
- 산정 공식
- 노력(인월) = 개발 기간 X 투입 인원 = LOC / 1인당 월평균 생산 코드 라인 수
- 개발 비용 = 노력(인월) X 단위 비용(1인당 월평균 인건비)
- 개발 기간 = 노력(인월) / 투입 인원
- 생상성 = LOC / 노력(인월)
개발 단계별 인월수(Effort Per Task) 기법
개발 단계별 인월수 기법은 LOC 기법을 보완하기 위한 기법으로, 각 기능을 구현시키는 데 필요한 노력을 생명 주기의 각 단계별로 산정한다. LOC 기법보다 더 정확하다.
수학적 산정 기법
- 수학적 산정 기법의 종류
- COCOMO(COnstructive COst MOdel) 모형
- Putnam 모형
- 기능 점수(Function Point) 모형
- COCOMO 모형 개요
- 원시 프로그램의 규모(LOC)에 의한 비용 산정 기법이다.
- 비교적 작은 규모의 프로젝트 기록을 통계 분석하여 얻은 결과를 반영한 모델이다.
- 비용 산정 결과는 프로젝트를 완성하는 데 필요한 노력(Man-Month)으로 나타난다.
- COCOMO의 소프트웨어 개발 유형
- 조직형(Organic Mode): 기관 내부에서 개발된 중소규모의 소프트웨어로 일괄 자료 처리나 과학기술 계산용, 비지니스 자료 처리용으로 5만(50KDSI) 라인 이하의 소프트웨어를 개발하는 유형
- 반분리형(Semi-Detached Mode): 조직형과 내장형의 중간형으로 트랜잭션 처리 시스템이나 운영체제, 데이터베이스 관리 시스템 등의 30만(300KDSI) 라인 이하의 소프트웨어를 개발하는 유형
- 내장형(Embedded Mode): 내장형은 초대형 규모의 트랜잭션 처리 시스템이나 운영체제 등의 30만(300KDSI) 라인 이상의 소프트웨어를 개발하는 유형
- Putnam 모형
- 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해 주는 모형이다.
- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.
- 기능 점수(FP)모형 - 가중치 증대 요인
- 자료 입력(입력 양식)
- 정보 출력(출력 보고서)
- 명령어(사용자 질의수)
- 데이터 파일
- 필요한 외부 루틴과의 인터페이스
- 자동화 측정 도구 - SLIM
- Rayleigh-Norden 곡선과 Putam 예측 모델을 기초로하여 개발된 자동화 추정 도구이다.
프로젝트 일정 계획
- PERT(프로그램 평가 및 검토 기술)
- 프로젝트에 필요한 전체 작업의 상호 관계를 표시하는 네트워크로 각 작업별로 낙관적인 경우, 가능성이 있는 경우, 비관적인 경우로 나누어 각 단계별 종료 시기를 결정하는 방법이다.
- 결정 경로, 작업에 대한 경계 시간, 작업 간의 상호 관련성 등을 알 수 있다.
- CPM(임계 경로 기법)
- 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용하는 기법이다.
- 경영층의 과학적인 의사 결정을 지원한다.
- 효과적인 프로젝트의 통계를 가능하게 해 준다.
- 임계 경로 소요 기일
- 임계 경로는 최장 경로(굵은 선)를 의미한다.
- 간트 차트(Gantt Chart)
- 프로젝트의 각 직업들이 언제 시작하고 언제 종료되는지에 대한 작업 일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표이다.
- 수평 막대의 길이는 각 작업(Task)의 기간을 나타낸다.
소프트웨어 개발 방법론 결정
소프트웨어 개발 방법론 결정의 개요
소프트웨어 개발 방법론의 결정은 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영하고, 확정된 소프트웨어 생명 주기와 개발 방법론에 맞춰 소프트웨어 개발 단계, 활동, 작업, 절차 등을 정의하는 것이다.
프로젝트 관리(Project Management)는 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동이다. 주요 내용은 다음과 같다.
- 일정 관리: 작업 순서, 작업 기간 산정, 일정 개발, 일정 통제
- 비용 관리: 비용 산정, 비용 예산 편성, 비용 통제
- 인력 관리: 프로젝트 팀 편성, 자원 산정, 프로젝트 조직 정의, 프로젝트 팀 개발, 자원 통제, 프로젝트 팀 관리
- 위험 관리: 위험 식별, 위험 분석 및 평가, 위험 관리 계획, 위험 감시 및 조치
- 품질 관리: 품질 계획, 품질 보증 수행, 품질 통제 수행
소프트웨어 개발 방법론 결정 절차
- 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영한다.
- 소프트웨어 개발 방법론에 프로젝트 관리와 재사용 현황을 반영하는 방법을 프로젝트 관련자들에게 설명한다.
- 소프트웨어 개발 방법론에 프로젝트 관리와 재사용 형황을 반영하고 그 결과를 프로젝트 관련자들에게 설명한 후 결정한다.
- 개발 단계별 작업 및 절차를 소프트웨어 생명 주기에 맞춰 수립한다.
- 소프트웨어의 기본 생명 주기, 지원 생명 주기, 조직 생명 주기별로 주요 프로세스를 확인한다.
- 소프트웨어의 개발 프로세스, 개발 생명 주기, 프로세스 모형을 정리한다.
- 결정된 소프트웨어 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 매뉴얼을 작성한다.
소프트웨어 개발 표준
- ISO/IEC 12207
- 기본 생명 주기 프로세스: 획득, 공급, 개발, 운영, 유지 보수 프로세스
- 지원 생명 주기 프로세스: 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
- 조직 생명 주기 프로세스: 관리, 기반 구조, 훈련, 개선 프로세스
- CMMI의 소프트웨어 프로세스 성숙도 5단계
- 초기(Initial)
- 관리(Managed)
- 정의(Defined)
- 정량적 관리(Quantitatively Managed)
- 최적화(Optimizing)
- SPICE(소프트웨어 처리 개선 및 능력 평가 기준)
- 정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준이다.
- SPICE의 프로세스 수행 능력 단계
- Level 0: 불완전(Oncomplete)
- Level 1: 수행(Performed)
- Level 2: 관리(Managed)
- Level 3: 확립(Established)
- Level 4: 예측(Predictable)
- Level 5: 최적화(Optimizing)
소프트웨어 개발 방법론 테일러링
- 소프트웨어 개발 방법론 테일러링의 개요
- 프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업이다.
- 관리적 측면: 최단기간에 안정적인 프로젝트 진행을 위해 사전 위험을 식별하고 제거하는 작업
- 기술적 측면: 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞는 최적의 기법과 도구를 찾아가는 작업
- 소프트웨어 개발 방법론 테일러링 고려사항
- 내부적 기준
- 목표 환경: 시스템의 개발 환경과 유형
- 요구사항: 개발, 운영, 유지보수 등
- 프로젝트 규모: 비용, 인력, 기간 등
- 보유 기술: 프로세스, 개발 방법론, 산출물, 구성원의 능력 등
- 외부적 기준
- 법적 제약사항: 프로젝트별로 적용될 IT Compliance
- 표준 품질 기준: 금융, 제도 등 분야별 표준 품질 기준
- 내부적 기준
소프트웨어 개발 프레임워크
- 소프트웨어 개발 프레임워크
- 프레임워크는 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템이다.
- 선행 사업자의 기술에 의존하지 않은 표준화된 개발 기반으로 인해 사업자 종속성이 해소된다.
- 개발해야 할 애플리케이션의 일부분이 이미 내장된 클래스 라이브러리로 구현되어 있어 개발자는 이미 존재하는 부분을 확장 및 이용하는 것으로 소프트웨어를 개발할 수 있다.
- 프레임워크의 특성
- 모듈화
- 재사용성
- 확장성
- 제어의 역흐름
댓글남기기