정보처리기사_실기
정보처리기사 20 ~ 30 (소프트웨어 개발 방법론 ~ 개발 프레임워크)
치개
2022. 6. 18. 15:12
- 소프트웨어 개발 방법론
- 소프트웨어의 개발, 유지보수 등에 필요한 일의 수행방법과 각종 기법 및 도구들을 표준화한 것
- 소프트웨어의 생산성과 품질 향상
- 구조적 방법론
- 정형화된 분석 절차에 따라 요구사항을 파악하고 문서화하는 처리(Process)중심의 방법론
- 분할과 정복 (Divide & Conquer) 원리 적용
- 정보공학 방법론
- 정형화된 기법들을 통합 및 적용하는 자료(Data)중심의 방법론
- 대규모 정보시스템 구축에 용이
- 객체지향 방법론
- 현실 세계의 개체를 객체로 만들고 조립하여 소프트웨어를 구현하는 방법론
- 구성 요소 : 객체, 클래스, 메시지
- 기본 원칙 : 캡슐화, 정보은닉, 추상화, 상속성, 다형성 ..
- 컴포넌트 기반 방법론 (CBD)
- 컴포넌트를 조합하여 새로운 애플리케이션을 만드는 방법론
- 컴포넌트 : 문서, 파일 등과 같은 모듈화된 자원
- 재사용 가능
- 확장성 보장, 생산성 및 품질 향상
- 제품계열 방법론
- 공통된 기능을 정의하여 개발
- 임베디드 소프트웨어 구축에 적합
- 영역공학과 응용공학으로 구분
- 소프트웨어 재사용 (Reuse)
- 이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어의 개발이나 유지에 사용
- 개발의 품질과 생산성 증가
- 재사용 방법
- 합성 중심 : 부품을 끼워 맞춰 완성, 블록 구성 방법
- 생성 중심 : 추상화 형태로 써진 명세를 구체화, 패턴 구성 방법
- 소프트웨어 재공학 (Reengineering)
- 기존의 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가
- 소프트웨어 성능을 향상
- 유지보수의 생산성 향상
- 장점
- 품질 향상, 생산성 증가, 수명 연장, 오류 감소
- CASE (Computer Aided Software Engineering)
- 소프트웨어 개발 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
- 자동화 도구
- 주요 기능
- 소프트웨어 생면주기 전 단계의 연결
- 다양한 소프트웨어 개발 모형 지원
- 그래픽 지원
- 소프트웨어 비용 산정
- 인원, 자원, 기간 등으로 규모를 확인하여 비용을 산정하는 것
- 비용 결정 요소
- 프로젝트 요소 : 제품 복잡도, 시스템 크기 ..
- 자원 요소 : 인적 자원, 하드웨어 자원, 소프트웨어 자원 ..
- 생산성 요소 : 개발자 능력, 개발 기간 ..
- 하향식 비용 산정 기법
- 과거의 유사한 경험을 바탕으로 비용 산정
- 전문가 감정 기법
- 경험이 많은 두 명 이상의 전문가에게 비용산정을 의뢰
- 개인적이고 주관적
- 델파이 기법
- 다수의 전문가와 조정자가 비용을 산정
- 전문가 감정 기법의 주관적인 편견 보완
- 상향식 비용 산정 비법
- 세부적인 작업 단위 별로 비용을 산정한 후 집계하여 전체 비용을 산정
- LOC (원시 코드 라인 수) 기법
- 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고, 비용 산정
- 측정이 용이하고 쉬움
- 예측치 = (낙관치 + 4기대치 + 비관치) / 6
- 산정 공식
- 노력 = 개발기간 * 투입인원
- 비용 = 노력 * 단위비용
- 기간 = 노력 * 투입인원
- 생산성 = 코드 수 / 노력
- 개발 단계별 인월수 기법
- LOC기법을 보완
- 필요한 노력을 생명 주기의 각 단계별로 산정
- 수학적 산정 기법
- 경험적 추정 모형, 실험적 추정 모형 이라고도 함
- 개발 비용 산정의 자동화 목표
- COCOMO 모형
- LOC에 의한 비용 산정 기법
- 필요한 노력 (Man-Month)로 나타냄
- Bohem이 제안
- 개발 유형
- 조직형(Organic) : 중.소 규모의 소프트웨어, 5만 라인 이하
- 반분리형(Semi-Detached) : 중간형 소프트웨어, 30만 라인 이하
- 내장형(Embedded) : 초대형 규모의 소프트웨어, 30만 라인 이상
- 모형 종류
- 기본형(Basic) : 소프트웨어의 크기와 개발유형만을 이용
- 중간형(Intermediate) : 기본형 공식 + 제품의 특성, 컴퓨터 특성, 개발요원 특성, 프로젝트 특성
- 발전형(Detailed) : 개발 공정별로 노력을 산출, 개발과정의 후반부에 주로 적용
- Putnam 모형
- 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상
- 생명 주기 예측 모형 이라고도 함
- Rayleigh-Norden 곡선을 기초로 함
- 기능점수(FP) 모형
- 기능을 증대시크는 요인별로 가중치를 부여하여 기능점수를 구한 후 집계하여 비용 산정
- Albrecht가 제안
- 기능 증대 요인
- 자료 입력, 정보 출력, 명령어, 데이터 파일, 외부 루틴과의 인터페이스
- 비용 산정 자동화 도구
- SLIM
- Rayleigh-Norden곡선과 Putnam 모형을 기초로 하여 개발된 자동화 추정 도구
- ESTIMACS
- FP모형을 기초로 하여 개발된 자동화 추정 도구
- 프로젝트 일정 계획
- PERT
- 전체 작업의 상호관계를 표시하는 네트워크
- 낙관적인 경우, 비관적인 경우, 가능성이 있는 경우로 나누어 종료시기를 결정
- 노드와 간선으로 구성
- CPM (임계 경로 기법)
- 작업에 필요한 소요 기간을 예측하는데 사용하는 기법
- 노드와 간선으로 구성
- 임계경로 = 최장 경로
- 간트차트
- 작업 일정을 막대 도표를 이용하여 표시
- 시간선 차트 라고도 함
- 프로젝트 관리
- 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
- 관리 유형
- 일정 관리, 비용 관리, 인력 관리, 위험 관리, 품질 관리
- 소프트웨어 개발 표중
- 개발단계에서 수행하는 품질 관리에 사용되는 국제 표준
- ISO/IEC 12207
- ISO에서 만든 표준 소프트웨어 생명주기 프로세스
- 구분
- 기본 생명 주기 프로세스
- 지원 생명 주기 프로세스
- 조직 생명 주기 프로세스
- CMMI (Capability Maturity Model Integration)
- 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델
- SEI 에서 개발
- 프로세스 성숙도 단계_ 5단게
- 초기(Initial) : 정의된 프로세스 없음
- 관리(Managed) : 규칙화된 프로세스
- 정의(Defined) : 표준화된 프로세스
- 정량적 관리(Quantitatively Managed) : 예측 가능한 프로세스
- 최적화(Optimizaing) : 지속적 개선 프로세스
- SPICE(Software Process Improvement and Capability dEtermination)
- 소프트웨어의 품질 및 생산성 향상을 위해 프로세스를 평가 및 개선하는 국제 표준
- ISO 15504
- 구성
- 고객-공급자 프로세스 : 인수, 공급, 요구 도출, 운영 ..
- 공학 프로세스 : 개발, 유지보수 ..
- 지원 프로세스 : 문서화, 형상, 품질보증 ..
- 관리 프로세스 : 관리, 프로젝트 관리 ..
- 조직 프로세스 : 조직 배치, 인력 관리 ..
- 수행 능력 단계_ 6단게
- 불완전(Incomplete) : 프로세스가 구현되지 않음
- 수행(Performed) : 프로세스가 수행되고 목적을 달성
- 관리(Managed) : 프로세스가 작업 산출물을 인도
- 확립(Established) : 정의된 프로세스가 수행
- 예측(Predictable) : 일관되게 수행
- 최적화(Optimizing) : 지속적인 개선
- 소프트웨어 개발 방법론 테일러링
- 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업
- 고려사항
- 소프트웨어 개발 프레임워크
- 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 제공하는 반제품 형태의 소프트웨어 시스템
- 주요 기능
- 예외 처리
- 트랜잭션 처리
- 로깅 서비스
- 사용자 인증 서비스 ..
- 스프링 프레임워크 (Spring)
- 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
- 동적인 웹 사이트 개발
- 전자정부 표준 프레임워크의 기반 기술
- 전자정부 프레임워크
- 대한민국의 공공부문 정보화 사업에 활용
- 오픈 소스 기반의 범용화 가능
- 표준화, 품질 및 재사용성 향상이 목적
- 닷넷 프레임워크 (.NET)
- Windows 프로그램의 개발 및 실행 환경을 제공
- MicroSoft사에서 개발
- CLR이라는 가상머신 상에서 작동
- 프레임워크의 특성
- 모듈화 (Modularity) : 캡슐화를 통한 모듈화 강화, 유지보수 용이
- 재사용성 (Reusability) : 재사용 가능한 모듈들을 재공, 품질 보증
- 확장성 (Extensibility) : 다형성을 통한 인터페이스 확장 가능
- 제어의 역흐름 (Inversion of Control) : 객체들의 제어를 프레임워크에 넘김, 생산성 향상
'정보처리기사_실기' Related Articles