- 소프트웨어 개발 방법론
- 소프트웨어 개발 방법론의 개념
- 소프트웨어 개발 과정들을 정의하고 표준화하여 형상화 한 것으로 지속적으로 적용할 수 있는 방법, 절차, 기법을 설정하는 것
- 프로그래밍 개발과정에서 일관성을 유지하고 프로그램들 간의 효과적인 협업이 이루어질 수 있도록 돕기 위한 방법론으로 소프트웨어의 생산성과 품질 향상을 목적으로 등장
- 소프트웨어 개발 방법론의 종류
- 구조적 방법론
- 1970년대까지 가장 많이 적용된 구조화 프로그래밍 방법
- 개발 순서: 타당성 검토 -> 계획 -> 요구사항 -> 설계 -> 구현 -> 테스트 -> 운용 및 유지보수
- 쉽게 이해할 수 있고 검증 가능한 프로그램 코드를 생성
- 정보공학 방법론
- 정보 시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
- 개발순서: 정보 전략 계획 수립 -> 업무 영역 분석 -> 업무 시스템 설계 -> 기술 설계 -> 업무 시스템 구축 -> 업무 시스템 실행
- 정보공학 방법론은 자료 (Data) 중심의 방법론으로 업무 활동들을 상호 연관성 있게 통합하고 적용
- 객체지향 방법론
- 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체 형태로 만들어진, 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
- 개발 순서: 요구 분석 -> 설계 -> 구현 -> 테스트 -> 인수
- 구조적 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택
- 컴포넌트 기반 (CBD) 개발 방법론
- 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
- 개발 순서: 개발 준비(팀 구성) -> 분석(요구 사항) -> 설계(아키텍처) -> 구현(개발) -> 테스트 및 검증 -> 전개(리허설) -> 인수
- 컴포넌트의 재상용이 가능하여 시간과 노력을 절감, 유지 보수비용을 최소화하고 생산성 및 품질을 향상
- 애자일(Agile) 방법론
- 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 방법론
- 개발 순서: 전략수립 단계 (유저 스토리) -> 스파이크 솔루션 반복 (주기 계획 -> 주기 개발 -> 승인 테스트)
- 스프린트(Sprint)라는 짧은 개발 주기를 반복하며 고객의 평가와 요구 사항을 수용
- 스크럼 (Scrum)
- 매일 정해진 시간에 정해진 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심의 방법론
- 스크럼 개발 프로세스 제품 백로그 (Product Backlog) -> 스프린트 계획 회의 (Sprint Backlog) -> 스프린트 수행 -> 일일 스크럼 회의 -> 스프린트 검토 회의 -> 스프린트 회고
- XP (eXtreme Programming)
- 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법
- XP 개발 프로세스 사용자 스토리 -> 릴리즈 계획 수립 -> 스파이크 -> 이터레이션 -> 승인 검사 -> 소규모 릴리즈
- 구조적 방법론
- 소프트웨어 개발 방법론 선정
- 소프트웨어 개발 방법론의 개념
- 소프트웨어를 개발하는 데 투입 자원, 비용, 시간, 위험 관리 등을 확인하고 어떤 개발 방법론을 선택하여 개발할 것인가를 결정하는 것
- 소프트웨어 개발 방법론의 특징
- 프로젝트 관리
- 일정 관리, 비용 관리, 인력 관리, 위험 관리, 품질 관리
- 소프트웨어 개발 방법론 선정 절차
- 반영, 수립비용 관리, 매뉴얼 작성
- 프로젝트 관리
- 소프트웨어 개발 방법론의 개념
- 소프트웨어 개발 방법론의 개념
- 소프트웨어 비용 산정
- 소프트웨어 비용 산정의 개념
- 소프트웨어 개발에 필요한 개발 규모를 기반으로 개발에 필요한 비용을 예측하는 것
- 소프트웨어 비용은 개발하는 소프트웨어 크기, 소프트웨어 개발에 투입되는 자원, 소프트웨어 생산성에 따라 결정
- 소프트웨어 비용 결정 요소
- 프로젝트 요소: 제품 복잡도, 시스템 크기, 요구되는 신뢰도
- 자원 요소: 인적 자원, 하드웨어 자원, 소프트웨어 자원
- 생산성 요소: 개발자 능력, 개발 기간
- 소프트웨어 비용 산정의 개념
- 하향식 비용 산정 기법
- 하향식 비용 산정 기법의 개념
- 전문 지식이 많은 개발자들이 과거의 유사한 경험을 바탕으로 회의를 통해 비용을 산정하는 방법
- 하향식 비용 산정 기법의 종류
- 전문가 판단 기법: 조직 내에 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰하는 기법
- 델파이 기법: 전문가 판단 기법의 단점을 보완하기 위한 것으로 한명의 조정자와 다수 전문가를 두는 방법
- 하향식 비용 산정 기법의 개념
- 상향식 비용 산정 기법
- 상향식 비용 산정 기법의 개념
- 개발하려는 프로젝트의 세부 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정하는 방법
- 상향식 비용 산정 기법의 종류
- 원시코드 라인 수(LOC) 기법: 소프트웨어 각 기능별 원시 코드 라인 수의 예측치를 이용하여 생산성, 노력, 개발 기간 등의 비용을 산정하는 기법
- 개발 단계별 인 월수(Effort Per Task) 기법: 각 기능을 구현시키는 데 필요한 개발 노력 (인 / 월수)을 생명 주기의 각 단계별로 산정
- 상향식 비용 산정 기법의 개념
- 수학적 산정 기법
- 수학적 산정 기법의 개념
- 경험적 추정 모형 또는 실험적 추정 모형이라고 하는 상향식 비용 산정 기법
- COCOMO 모형
- COCOMO 모형(COnstructive COst MOdel): 시스템의 비용을 산정하기 위해 시스템을 구성하고 있는 모듈과 서브시스템의 각 유형에 대한 총 인원 수와 개발 기간을 계산하는 방식
- COCOMO 모형의 프로젝트 유형: 조직형, 반분리형, 임베디드형
- COCOMO 모형의 종류: 기본형 COCOMO, 중간형 COCOMO, 발전형 COCOMO
- 수학적 산정 기법의 개념
- 소프트웨어 개발 표준
- 소프트웨어 개발 표준의 개념
- 사용자의 요구를 소프트웨어 제품으로 만드는데 사용되는 국제 표준
- 소프트웨어 개발 표준의 종류
- ISO/IEC 12207 표준: 소프트웨어 개발을 수행하기 위한 절차, 활동, 획득, 설정에 대한 소프트웨어 생명주기 단계별로 필요한 프로세스와 각 프로세서에서 나오는 산출물까지 포함
- CMMI: 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하기 위한 모델
- CMMI 의 역량 성숙도 5단계: 초기 단계, 관리 단계, 정의 단계, 정량적 관리 단계, 최적화 단계
- SPICE: 소프트웨어 처리 개선 및 능력 평가 기준
- 소프트웨어 개발 표준의 개념
- 소프트웨어 개발 방법론 테일러링
- 소프트웨어 개발 방법론 테일러링의 개념
- 시스템 개발에서 프로젝트 진행 상황 및 특성에 맞는 방법론과 산출물을 찾아 수정 및 보완하여 최적화된 결과를 얻어내는 작업
- 소프트웨어 개발 방법론 테일러링 수행 절차
- 프로젝트 특징 정의 -> 표준 프로세스 선정 및 검증 -> 상위 수준의 커스터마이징 -> 세부 커스터마이징 -> 테일러링 문서화
- 테일러링의 고려 사항
- 목표 환경, 요구사항, 프로젝트 규모 보유기술 (내부적 요건)
- 테일러링 기법
- 규모와 복잡도에 따른 테일러링, 구성원에 따른 테일러링, 팀내 방법론 지원에 따른 테일러링, 자동화에 따른 테일러링
- 소프트웨어 개발 방법론 테일러링의 개념
- 소프트웨어 개발 프레임워크
- 소프트웨어 개발 프레임워크의 개념
- 비슷한 유형의 소프트웨어 개발에 있어 공통적인 부분에 해당하는 설계와 구현을 손쉽게 할 수 있도록 제공하는 소프트웨어 시스템
- 소프트웨어 개발 프레임워크의 종류
- 스프링 프레임워크: 자바 엔터프라이즈 애플리케이션 (Java Enterprise Application) 개발에 사용되는 프레임워크이며 대한민국 전자정부 표준 프레임워크의 기반 기술
- 전자정부 프레임워크: 우리나라 공공부문의 정보화 사업 부분에서 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처를 제공하는 프레임워크
- 닷넷 프레임워크: 윈도우 프로그램의 개발 및 실행 환경에서 제공하는 프레임워크
- 소프트웨어 개발 프레임워크의 개념
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 필기 노트 - 소프트웨어 개발 보안 구축 (2) | 2024.10.16 |
---|---|
[정보처리기사] 필기 노트 - IT 프로젝트 정보 시스템 구축 관리 (9) | 2024.10.15 |
[정보처리기사] 필기 노트 - 응용 SW 기초 기술 활용 (3) | 2024.10.14 |
[정보처리기사] 필기 노트 - 프로그래밍 언어 활용 (1) | 2024.10.12 |
[정보처리기사] 필기 노트 - 서버프로그램 구현 (2) | 2024.10.12 |