티스토리 뷰
728x90
반응형

166. 소프트웨어 개발 방법론 (★★☆)
- 효율적으로 수행하려는 과정에서 필요한 각종 기법, 도구 체계적으로 정리해 표준화 한 것 / 목적 - SW 생산성, 품질 향상 / 구조적 방법론, 정보공학 방법론, 객체지향 방법론, 컴포넌트 기반 방법론, 애자일 방법론, 제품 계열 방법론 등
- 구조적 방법론 : 정형화된 분석 절차에 따라 요구사항 파악해 문서화하는 처리 중심 방법론 / ~1960 많이 쓰임 / 쉬운 이해, 검증 가능한 프로그램 코드 생성 목적 / 분할&정복 원리 적용
- 타당성 검토 → 계획 → 요구사항 → 설계 → 구현 → 시험 → 운용/유지보수
- 정보공학 벙법론 : 정보 시스템 개발 위해 계획, 분석, 설계, 구축에 정형회된 기법들을 상호 연관성 있게 통합, 적용하는 자료 중심 방법론 / 대규모 정보시스템 구축에 적합 / 개체 관계도(ERD) 사용
- 정보 전략 계획 수립 → 업무 영역 분석 → 업무 시스템 설계 → 업무 시스템 구축
- 객체지향 방법론) 현실 개체를 기계 부품처럼 하나의 객체로 만들어 개발 시 조립하듯이 객체들을 조립해 필요한 SW 구현하는 방법론 / 구조적 기법 문제점 해결책 / 자주 사용되는 모델링 언어 - 패키지 다이어그램, 배치 다이어그램, 상태 전이도 등
- 요구 분석 → 설계 → 구현 → 테스트, 검증 → 인도
- 컴포넌트 기반(CBD, Component Dased Design) 방법론 : 기존 시스템, SW 구성하는 컴포넌트 조합 ~> 하나의 새로운 앱 만드는 방법론 / 재사용 가능, 비용 절감 / 새로운 기능 추가 간단... 확장성 보장
- 개발 준비 → 분석 → 설계 → 구현 → 테스트 → 전개 → 인도
- 애자일 방법론 : 요구사항 유연히 대응할 수 있게 일정한 주기 반복하며 개발과정 진행
- 사용자 스토리 → [계획 → 개발 → 승인테스트] 반복
- 제품 개열 방법론 : 특정 제품에 적용하고픈 공통 기능 정의해 개발 / 임베디드 SW에 적합 / 영역&응용 연계를 위해 제품의 요구사항, 아키텍처, 조립 생산 필요
- 영역 공학) 여역 분석, 영역 설계, 핵심 자산 구현
- 응용 공학) 제품 요구 분석, 제품 설계, 제품 구현
167. SW 공학 발전적 추세 (★★★)
- SW 재사용 개요) 이미 개발되어 인정받은 SW의 전체/일부분을 다른 SW 개발, 유지에 사용 / 생산성, 품질 굿 / 비용, 위험 감소 / 지식 공유
- 재사용 방법
- 합성 중심(Composition-Based) : 블록(전자 칩과 같은 SW 부품)을 만들어 끼워 맞춰 SW 완성... 블록 구성 방법이라고도 함
- 생성 중심(Generation-Based) : 추상화 형태로 쓰여진 명세 구체화해 프로그램 만듦... 패턴 구성 방법
- 재공학의 개요) 새로운 요구에 ㅁ자도록 기존 시스템을 이용해 보다 나은 시스템 구축, 성능 향상 / 개조&개선 통해 유지보수성, 품질 향상 ~> 예방 유지보수 측면에서 SW위기 해결 방법 / 수명 연장 / 오류, 비용 절감
- 분석 : 기존 SW의 명세서 확인 ~> SW 동작 이해, 재공학할 대상 선정하는 활동
- 재구성 : 기존 SW의 구조 햐상 위해 코드 재구성하는 활동... 기능, 외적 동작은 안 바뀜
- 역공학(Reverse Engineering) : 기존 SW 분석 ~> SW 개발 과정, 데이터 처리 과정 설명하는 분석&설계 정보 ㅈ재발견&다새 생성 / 기존 코드 복구, 기존 SW 구성요소와 그 관계 파악해 설계도 추출
- 이식(Migration) : 다른 OS, HW 환경에서 사용할 수 있도록 변환
- CASE 개요(Computer Aided SW Engineering) : SW 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사&디버깅 과정 전체/일부를 컴퓨터 전용 SW 도구 사용해 자동화 하는 것 / 공통 모듈 사용 ~> 재사용성 굿 / 모듈관리 자동 수행 ~> 유지보수 간편 / SW개발도구 + 방법론 => 정형화된 구조, 방법을 개발에 적용해 생산성, 품질향상 구현하는 기법 / 자동화 도구 지원, 개발의 표준화 지향, 자동화 이점 얻을 수 있다!
- 주요 기능) SW 생명주기 전 단계의 연결, 다양한 SW 개발 모형 지원, 그래픽 지원, 모델들의 모순 검사&오류검증, 자료흐름도 작성 등
- 원천 기술) 구조적 기법, 프로토타이핑, 자동 프로그래밍, 정보 저장소, 분산처리
168. 비용 산정 기법 (★☆☆)
- 결정 요소) 소프트웨어, 투입 자원, SW 생산성에 따라 결정
- 프로젝트 요소) 제품 복잡도 / 시스템 크기 / 요구되는 신뢰도
- 자원 요소) 인적 자원 / 하드웨어 자원 / 소프트웨어 자원
- 생산성 요소) 개발자 능력 / 개발 기간
169. 비용 산정 기법 - 하향식 (★☆☆)
- 프로젝트 전체 비용 산정 후 각 작업별로 비용 세분화 / 비과학적 방법 / 전문가 감정 기법, 델파이 기법
- 전문가 감정 기법) 경험 많은 여러 명의 전문가한테 비용 산정 의뢰 / 장 - 편리&신속, 새 프로젝트엔 전 프로젝트와 다른 요소가 있다는 것을 간과 가능 / 단 - 관련 프로젝트 없을 수 있음, 주관적일 수 있음
- 델파이 기법) 주관적 편견 보완 ~> 많은 전문가 의견 종합해 산정... 한명의 조정자도 필요
170. 비용 산정 기법 - 상향식 (★★★)
- 세부 작업 단위별로 비용 산정 후 집계 해 전체 비용 산정하는 것 / LOC, 개발 단계별 인월수 기법, 수학적 산정 기법
- LOC(원시 코드 라인수, source Line of Code) : SW 각 기능의 원시 코드 라인 수의 비관치(많이 측정된 코드 라인 수), 낙관치(적게), 기대치(측정 평균) 측정해 예측치 구함... 측정 쉬움 / 생산성, 노력, 개발 기간 등의 비용 산정
- 예측치 = (a+4m+b)/6 [a:낙관치, b:비관치, m:기대치(중간치)
- 노력(인월) = 개발기간 X 투입 인원 = LOC / 1인당 월평균 생산 코드 라인 수
- 개발 비용 = 노력(인월) X 단위 비용(1인당 월평균 인건비)
- 개발 기간 = 노력(인월) / 투입
- 인원
- 생산성 = LOC / 노력(인월)
- 개발 단계별 인월수(Effort Per Task) 기법 : LOC 보완, 각 기능 구현시키는데 필요한 노력을 생명 주기의 각 단계별로 산정... LOC보다 정확함
171. 수학적 산정 기법 (★★★)
- 개요) 상향식 비용 산정 기법 / 경험적 추정 모형, 실험적 추정 모형이라고도 함 / 개발 비용 산정의 자동화 목표 / COCOMO모형, Putnam모형, 기능 점수(FP) 모형 등
- COCOMO모형(코코몽?) : 보헴이 제안, 원시 프로그램 규모 LOC에 의한 산정 기법 / LOC 예측 후 이를 SW 종류에 따라 다르게 책정되는 비용 산정 방정식에 대입해 비용 산정 / 비교적 작은 규모 프로젝트(중소규모)에 적합 / 같은 프로그램이어도 성격에 따라 비용 다르게 선정 / 비용 산정 결과 - 프로젝트를 완성하는데 필요한 노력(Man-Month)로 나타남
- 개발 유형
- 조직형(Organic Mode) : 기관 내부에서 중/소 규모의 SW로 일괄 자료 처리, 과학 기술 계산용, 비즈니스 자료 처리용으로 5만라인 이하 SW 개발하는 유형 / 사무처리, 업무, 과학 응용 SW용에 적합
- 노력(MM) = 2.4 * (KDSI)^1.05
- 개발 기간(TDEV) = 2.5 * (MM)^0.38
- KDSI : 전체 라인 수를 1000단위로 묶은 것
- 반분리형(Semi-Detached Mode) : 조직형과 내장형의 중간형... 트랜젝션 처리 시스템, OS, DBMS 등 30만 라인 이하의 SW를 개발하는 유형 / 컴파일러, 인터프리터 같은 유틸리티에 적합
- 노력(MM) = 3.0 * (KDSI)^1.12
- 개발 기간(TDEV) = 2.5 * (MM)^0.35
- 내장형(Embedded Mode) : 초대형 규모 트랜잭션 처리 시스템, OS 등의 30만 이상 SW 개발하는 유형 / 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템 등의 시스템 프로그램 개발에 적합
- 노력(MM) = 3.6 * (KDSI)^1.20
- 개발기간(KDSI) = 2.5 * (KDSI)^0.32
- 조직형(Organic Mode) : 기관 내부에서 중/소 규모의 SW로 일괄 자료 처리, 과학 기술 계산용, 비즈니스 자료 처리용으로 5만라인 이하 SW 개발하는 유형 / 사무처리, 업무, 과학 응용 SW용에 적합
- 개발 유형
- Putnam 모형 : SW 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해주는 모형 / 생명 주기 예측 모형 / Rayleigh-Norden 곡선의 노력 분포도 기초 / 대형프로젝트 / 개발 기간 늘수록 인원 노력 감소
- 개발노력(MM) = L^3 / (Cvk)^3 * Td^4 (L:원시코드라인수, Td:개발기간, Cvk:환경상수)
- 기능 점수(FP) 모형 : 알브레히트가 제안, SW기능을 증대시키는 요인별로 가중치 부여&합산 ~> 총 기능 점수 산출해 총 기능 점수, 영향도 이용해 FP 구한 후 이용해서 비용 산정
- 기능점수(FP) = 총 기능 점수 * [0.65 + (0.1 * 총 영향도)]
- SW 기능 증대 요인) 자료입력(입력양식) / 정보 출력(출력 보고서) / 명령어(사용자 질의수) / 데이터 파일 / 필요한 외부 루틴&인터페이스
- 자동화 추정 도구) SLIM : Rayleigh-Norden곡선 + Putnam 예측 모델 기초 / ESTIMACE : FP모형 기초
172. 프로젝트 일정 계획 (★★☆)
- PERT(Program Evaluation and Review Technique, 프로그램 평가 및 검토 기술) : 프로젝트에 필요한 전체 작업의 상호관계를 표시하는 네트워크 / 과거 경험이 없어 예측하기 어려운 SW에서 사용 / 간선에 낙관, 기대, 비관치 표시 / 결정 경로, 작업에 대한 경계 시간, 작업 간의 상호 관련성을 알 수 있음
- 작업 예측치 = {(비관치+4) x 기대치 + 낙관치} / 6
- 평방 편차 = [(비관치-낙관치) / 6]^2
- CPM(Critical Path Method, 임계 경로 기법) : 프로젝트 완성에 필요한 작업 나열, 소요기간 예측 시 사용하는 기법/ 병행 작업 가능하도록 계획 가능, 이를 위한 자원 할당도 가능 / 임계경로 - 최장 경로(굵은선)
- 일정 계획 순서) 프로젝트 규모 추정 → 각 단계에서 필요한 작업 분할 → 각 작업의 상호 의존 관계를 CRM 네트워크로 나타냄 → 일정 계획을 간트 차트로 나타냄
- 간트 차트(Gantt Chart) : 프로젝트의 각 작업들이 언제 시작되고 종료되는지에 대한 작업 일정을 막대 도표를 이용해 표시하는 프로젝트 일정표... 시간선 차트 / 중간 목표 미달성 시 이유&기간 예측 가능 / 사용자와 문제점, 예산 초과 지출 등 관리 가능 / 자원배치, 인원계획에 유용히 / CPM 넷 데이터를 바탕으로 간트차트 제작 ㄱㄴ / 주관적 수치에 기울어지기 쉬움
173. 소프트웨어 개발 방법론 결정 (★★☆)
- 투입 자원, 일정, 비용, 품질, 위험 관리 등을 확인해 어떤 방법론으로 sW를 개발할지 결정하는 것
- 프로젝트 관리) 일정, 비용, 인력, 위험, 품질 관리 => 기간 내 최소 비용으로 만족스런 개발을 위한 활동
- SW 개발 방법론 결정 절차
- 프로젝트 관리, 재사용 현황을 SW 개발 방법론에 반영
- 개발 단계별 작업, 절차를 SW 생명주기에 맞춰 수립
- 결정된 SW 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 매뉴얼 작성
174. 소프트웨어 개발 표준 (★★★)
- ISO/IEC 12207 : ISO에서 만든 표준 SW 생명 주기 프로세스... SW 개발, 운영, 유지보수 등을 체계적으로 관리하기 위한 SW 생명 주기 표준 제공
- 기본 생명 주기 프로세스 - 획득, 공급, 개발, 운영, 유지보수 프로세스
- 지원 생명 주기 프로세스 - 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상관리, 문제해결 프로세스
- 조직 생명 주기 프로세스 - 관리, 기반 구조, 훈련, 개선 프로세스
- CMMI(능력 성숙도 통합 모델, Capability Maturity Model Integration) : SW 개발 조직의 업무 능력, 조직의 성숙도 평가하는 모델.. 미국 카네기 멜론 대학 SW 공학 연구소(SEI)에서 개발
- 초기(initial, 정의된 프로세스X) : 작업자 능력에 따라 성공여부 결정
- 관리(Managed, 규칙화된 프로세스) : 특정한 프로젝트 내의 프로세스 정의, 수행
- 정의(Defined, 표준화된 프로세스) : 조직 표준 프로세스 활용해 업무 수행
- 정량적 괸리(Quantitatively Managed, 예측 가능한 프로세스) : 프로젝트를 정량적으로 관리, 통제
- 최적화(Optimizing, 지속적 개선 프로세스) : 프로세스 역량 향상을 위해 지속적인 프로세스 개선
- SPICE(소프트웨어 프로세스 개선 및 능력 평가) : 정보시스템 분야에서 SW 품질, 생산성 향상을 위해 SW 프로세스를 평가&개선하는 국제 표준... ISO/IEC 15504
- 목적) 프로세스 개선 / 기관에서 지정한 가드라인을 개발 조직 스스로 평가 / 계약 체결 위해 수탁 기관의 프로세스 평가하는 것
- 고객-공급자 프로세스 / 공학 프로세스 / 지원 프로세스 / 관리 프로세스 / 조직 프로세스
- 프로젝트 수행 능력 단계) 0(불완전) / 1(수행) / 2(관리) / 3(확립) / 4(예측) / 5(최적화)
- 목적) 프로세스 개선 / 기관에서 지정한 가드라인을 개발 조직 스스로 평가 / 계약 체결 위해 수탁 기관의 프로세스 평가하는 것
175. 소프트웨어 개발 방법론 테일러링 (★★☆)
- 개요) 프로젝트 상황, 특성에 맞도록 정의된 SW 개발 방법론의 절차, 사용기법 등을 수정, 보완하는 작업... 예상되는 변화를 고려해 진행해야 함!
- 관리적 측면) 최단기간에 안정적인 프로젝트 진행 위해 사전 위험 식별, 제거하는 작업
- 기술적 측면) 최적화된 기술 요소를 도입해 프로젝트 특성에 맞는 최적의 기법, 도구 찾아감
- 프로젝트 특징 정의 → 표준 프로세스 선정&검증 → 상위 수준의 커스터마이징 → 세부 커스터마이징 → 테일러링 문서화
- 고려사항
- 내부적 기준) 목표환경 / 요구사항 / 프로젝트 규모 / 보유기술
- 외부적 기준) 법적 제약사항 / 표준 품질 기준
- 테일러링 기법) 프로젝트 규모&복잡도에 따른 / 프로젝트 구성원 / 팀내 방법론 지원 / 자동화
176. 소프트웨어 개발 프레임워크 (★★★)
- 개요) SW개발에 공통적으로 사용되는 구성요소, 아키텍처 일반화해 쉽게 구현할 수 있도록 여러가지 기능들 제공해주는 반제품 형태 SW / 선행 사업자 기술 의존 않는 표준화된 개발 기반... 사업자 종속성 해소 / 내장 클래스로 기능 구현되어 있음 / 예외처리, 트랜잭션 처리, 메모리공유, 데이터 소스 관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스 등 / 스프링 프레임워크, 전자정부 프레임워크, 닷넷 프레임워크 등
- 스프링 프레임워크) 자바 플랫폼 위한 오픈 소스 경량형 애플리케이션 프레임워크 / 동적 웹사이트 개발 위함 / 전자정부 표준 프레임워크 기반 기술로 사용
- 전자정부 프레임워크) 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능, 아키텍처를 제공하는 프레임워크 / 표준화, 품질&재사용성 향상 목적
- 닷넷 프레임워크) 윈도우즈 프로그램 개발, 실행환경 제공하는 프레임워크
- 특성) 모듈화(Modularity) / 재사용성(Reusabiity) / 확장성(Extensibility) / 제어의 역흐름(Inverse of Control)
728x90
반응형
'자격증 > 정보처리기사 필기' 카테고리의 다른 글
[데이터베이스구축] 1. 논리 데이터베이스 설계 (1) | 2023.03.08 |
---|---|
[정보시스템구축관리] 2. IT프로젝트 정보시스템 구축 관리 (0) | 2023.03.07 |
[소프트웨어개발] 5. 인터페이스 구현 (0) | 2023.03.06 |
[소프트웨어개발] 4. 애플리케이션 관리 (1) | 2023.03.06 |
[소프트웨어개발] 3. 제품 소프트웨어 패키징 (0) | 2023.03.05 |