[정보처리기사] 5과목 - 정보시스템 구축 관리 (소프트웨어 개발 방법론 활용)
정보시스템 구축 관리 이론 - 소프트웨어 개발 방법론 활용 정리
소프트웨어 개발 방법론
1. 구조적 방법론
- 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
- 복잡한 문제를 다루기 위해 분할 정복 적용
2. 정보공학 방법론
- 정보 시스템의 개발을 위해 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료(data)중심의 방법론
- DB 설계를 위한 ERD 사용
3. 컴포넌트 방법론(CBD)
- 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
- 컴포넌트의 재사용
- 기능 추가가 쉬워 확장성 보장
- 유지보수 비용 최소화, 생산성 및 품질 향상
- 분석 단계에서 사용자 요구사항 정의서 산출
SW 공학의 발전적 추세
1. SW 재사용 방법
- 합성 중심
- 모듈을 만들어서 끼워 맞춰 소프트웨어를 완성시키는 방법
- 생성 중심
- 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법
2. SW 재공학의 주요 활동
- 분석 (Analysts)
- 기존 SW 명세서를 확인하여 동작을 이해하고, 재공학할 대상을 선정
- 재구성 (Restructuring)
- 기존 SW의 구조를 향상시키기 위해 코드를 재구성
- 역공학 (Reverse Engineering)
- 기존 SW를 분석하여 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만드는 활동
- 이식 (Migration)
- 기존 SW를 다른 운영체제나 HW 환경에서 사용할 수 있도록 변환
3. CASE (Computer Aided Software Engineering)
- 소프트웨어 개발 과정의 전체 또는 일부를 자동화 하는 것
- 장점
- 개발 기간 단축, 개발 비용 절감
- 자동화 기법을 통해 품질 향상
- 유지보수 간편
- 모듈의 재사용성 향상
- 주요 기능
- SW 생명 주기 전 단계의 연결
- 다양한 SW 개발 모형 지원
- 그래픽 지원
- 모델들의 모순 검사 및 오류 검증
- 자료 흐름도 작성
- 원천 기술
- 구조적 기법
- 프로토타이핑
- 자동 프로그래밍
- 정보 저장소
- 분산 처리
상향식 비용 산정 기법
1. LOC (원시 코드 라인 수)
- $a$: 낙관치(가장 짧은 라인)
- $b$: 비관치(가장 긴 라인)
- $m$: 기대치(측정된 평균 라인)
- $예측치 = \frac{a + (4m) + b}{6}$
수학적 산정 기법
1. COCOMO 모형
- 특징
- 프로젝트를 완성하는데 필요한 man-month로 산정 결과를 나타냄
- 보헴(Bohem)이 제안한 것으로 원시코드 라인수(LOC)에 의한 비용 산정 기법
- 비교적 작은 규모의 프로젝트를 통계 분석한 결과를 반영한 모델
- 중소 규모의 소프트웨어 프로젝트 비용 추정에 적합
- 개발 유형에 따른 구분
- 조직형 (Organic)
- 5만 라인 이하
- 사무 처리용, 업무용, 과학용 소프트웨어 개발에 적합
- 반분리형 (Semi-Detached)
- 30만 라인 이하 ↓
- 컴파일러, 인터프리터 개발에 적합
- 내장형 (Embedded)
- 30만 라인 이상 ↑
- 미사일 유도 시스템, 실시간 처리 시스템 개발에 적합
- 조직형 (Organic)
2. Putnam 모형
- 특징
- 소프트웨어 생명 주기의 전 과정 동안 사용될 노력의 분포를 가정해주는 모형
- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초함
- 대형 프로젝트의 노력 분포 산정에 이용
- 개발 기간이 늘어날수록 프로젝트 적용 인원의 노력 감소
3. 기능 점수(FP) 모형
가중치 증대 요인
- 특징
- 자료 입력 (입력 양식)
- 정보 출력 (출력 보고서)
- 명령어 (사용자 질의 수)
- 데이터 파일
- 필요한 외부 루틴과의 인터페이스
프로젝트 일정 계획
1. PERT (프로그램 평가 및 검토 기술)
- 프로젝트에 필요한 전체 작업의 상호관계를 표시하는 네트워크로 각 작업별로 낙관치, 비관치로 종료시기를 결정
- 작업들 간의 상호 관련성, 결정 경로, 경계 시간, 자원 할당 등을 제시한다.
- 각 작업들이 언제 시작하고 언제 종료되는 지에 대한 일정을 네트워크 도표를 이용하여 표시한다.
2. CPM (임계 경로 기법)
- 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용
- 경영층의 과학적인 의사 결정 지원
- 효과적인 프로젝트 통제 가능
- 병행 작업이 가능하도록 계획 가능하며, 이를 위한 자원 할당이 가능
- 임계 경로는 최장 경로를 의미
3. 간트 차트 (Gantt Chart)
- 프로젝트 각 작업이 언제 시작하고 종료되는지 막대 도표로 표기
- 수평 막대 길이는 작업의 시간
소프트웨어 개발 표준
1. CMMI (Capability Maturity Model Integration)
- 초기 (Initial)
- 관리 (Managed)
- 정의 (Defined)
- 정량적 관리 (Quantitatively Managed)
- 최적화 (Optimizing)
2. SPICE (Software Process Improvement and Capability Etermination)
SW의 품질 및 생산성 향상을 위해 소프트웨어 프로셋그를 평가 및 개선하는 국제 표준
- 목적
- 프로세스 개선을 위해 개발 기관이 스스로 평가하는 것
- 기관에서 지정한 요구조건의 만족 여부를 개발 조직이 스스로 평가
- 계약 체결을 위해 수탁 기관의 프로세스를 평가
- 프로세스 수행 능력 단계
- Level 0: 불완전 (Incomplete)
- Level 1: 수행 (Performed)
- Level 2: 관리 (Managed)
- Level 3: 확립 (Established)
- Level 4: 예측 (Predictable)
- Level 5: 최적화 (Optimizing)
3. 프레임워크
- 정의
- 개발에 필요한 요소들을 일반화하여 쉽게 구현할 수 있도록 여러 기능들을 제공해주는 반제품 형태의 소프트웨어
- 표준화된 개발 기반으로 인해 사업자 종속성 해소
- 개발해야할 일부분이 이미 내장된 클래스 라이브러리로 구현되어 있음
- 특성
- 모듈화
- 재사용성
- 확장성
- 제어의 역흐름
참고 사이트
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.