관리 메뉴

나구리의 개발공부기록

1장 - 소프트웨어 개발 방법론 활용 | 섹션6. 소프트웨어 개발 방법론 결정, 섹션7. 소프트웨어 개발 표준, 섹션8. 소프트웨어 개발 방법론 테일러링, 섹션9. 소프트웨어 개발 프레임워크 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 5강 - 정보시스템 구축 관리

1장 - 소프트웨어 개발 방법론 활용 | 섹션6. 소프트웨어 개발 방법론 결정, 섹션7. 소프트웨어 개발 표준, 섹션8. 소프트웨어 개발 방법론 테일러링, 섹션9. 소프트웨어 개발 프레임워크

소소한나구리 2024. 5. 7. 18:32

2024년도 시나공 필기 책 내용 정리 


섹션6. 소프트웨어 개발 방법론 결정

 

1. 소프트웨어 개발 방법론 결정의 개요

 

  • 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영하고 확정된 소프트웨어 생명 주기와 개발 방법론에 맞춰 소프트웨어 개발 단계, 활동, 작업, 절차 등을 정의하는 것

프로젝트 관리 : 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동

(Project Management)

관리 유형 주요 내용
일정 관리 작업 순서, 작업 기간 산정, 일정 개발, 일정 통제
비용 관리 비용 산정, 비용 예산 편성, 비용 통제
인력 관리 프로젝트 팀 편성, 자원 산정, 프로젝트 조직 정의, 프로젝트 팀 개발, 자원 통제, 프로젝트 팀 관리
위험 관리 위험 식별, 위험 분석 및 평가, 위험 관리 계획, 위험 감시 및 조치
품질 관리 품질 계획, 품질 보증 수행, 품질 통제 수행

2. 소프트웨어 개발 방법론 결정 절차

 

  1. 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영
    • 프로젝트 관리와 재사용 현황을 반영하는 방법을 프로젝트 관련자들에게 설명
    • 프로젝트 관리와 재사용 현황을 반영하고 그 결과를 프로젝트 관련자들에게 설명 후 결정
  2. 개발 단계별 작업 및 절차를 소프트웨어 생명 주기에 맞춰 수립
    • 소프트웨어 기본 생명 주기, 지원 생명 주기, 조직 생명 주기별로 주요 프로세스를 확인
    • 소프트웨어의 개발 프로세스, 개발 생명 주기, 프로세스 모형을 정리
  3. 결정된 소프트웨어 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 메뉴얼을 작성

섹션7. 소프트웨어 개발 표준

 

1. 소프트웨어 개발 표준의 개요

 

  • 소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준을 의미
  • 대표적인 소프트웨어 개발 표준 ISO/IEC 12207, CMMI, SPICE 등

2. ISO/IEC 12207

 

  • ISO(International Organization for Standardization, 국제표준화기구)에서 만든 표준 소프트웨어 생명 주기 프로세스로, 소프트웨어의 개발, 운영, 유지보수 등을 체계적으로 관리하기 위한 소프트웨어 생명 주기 표준을 제공
기본 생명 주기 프로세스 획득, 공급, 개발, 운영, 유지보수 프로세스
지원 생명 주기 프로세스 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
조직 생명 주기 프로세스 관리, 기반 구조, 훈련, 개선 프로세스

3. CMMI(Capability Maturity Model Integration)

 

  • CMMI(능력 성숙도 통합 모델)는 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델로 미국 카네기멜론 대학의 소프트웨어 공학연구소(SEI)에서 개발함
단계 프로세스 특징
초기(Initial) 정의된 프로세스 없음 작업자 능력에 따라 성공 여부 결정
관리(Managed) 규칙화된 프로세스 특정한 프로세트 내의 프로세스 정의 및 수행
정의(Defined) 표준화된 프로세스 조직의 표준 프로세스를 활용하여 업무 수행
정량적 관리(Quantitatively Managed) 예측 가능한 프로세스 프로젝트를 정량적으로 관리 및 통제
최적화(Optimizing) 지속적 개선 프로세스 프로세스 역량 향상을 위해 지속적인 프로세스 개선

4. SPICE(Software Process Improvement and Capability dEtermination)

  • SPICE(소프트웨어 처리 개선 및 능력 평가 기준)는 정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준으로 공식 명칭은 ISO/IEC 15504임
  • SPICE의 목적

    • 프로세스 개선을 위해 개발 기관이 스스로 평가 하는 것
    • 기관에서 지정한 요구조건의 만족여부를 개발 조직이 스스로 평가 하는 것
    • 계약 체결을 위해 수탁 기관의 프로세스를 평가하는 것
  • 5개의 프로세스 범주와 40개의 세부 프로세스로 구성됨
범주 특징
고객 - 공급자
(Coustomer - Supplier)
프로세스
소프트웨어를 개발하여 고객에게 전달하는 것을 지원하고, 소프트웨어의 정확한 운용 및 사용을 위한 프로세스로 구성됨
구성요소 : 인수, 공급, 요구 도출, 운영
프로세스 수 : 10개
공학(Engineering)
프로세스
시스템과 소프트웨어 제품의 명세화, 구현, 유지보수를 하는데 사용되는 프로세스로 구성됨
구성 요소 : 개발, 소프트웨어 유지보수
프로세스 수 : 9개
지원(Support)
프로세스
소프트웨어 생명 주기에서 다른 프로세스에 의해 이용되는 프로세스로 구성됨
구성 요소 : 문서화, 형상, 품질 보증, 검증, 확인, 리뷰, 감사, 품질 문제 해결
프로세스 수: 8개
관리(Management)
프로세스
소프트웨어 생명 주기에서 프로젝트 관리자에 의해 사용되는 프로세스로 구성됨
구성 요소 : 관리, 프로젝트 관리, 품질 및 위험 관리
프로세스 수 : 4개
조직(Organization)
프로세스
조직의 업무 목적 수립과 조직의 업무 목표 달성을 위한 프로세스로 구성됨
구성 요소 : 조직 배치, 개선 활동 프로세스, 인력 관리, 기반 관리, 측정 도구, 재사용
프로세스 수 : 9개
  • SPICE 프로세스 수행 능력 단계
단계 특징
Level 0 - 불완전(Incomplete) 프로세스가 구현되지 않았거나 목적을 달성하지 못한 단계
Level 1 - 수행(Performed) 프로세스가 수행되고 목적이 달성된 단계
Level 2 - 관리(Managed) 정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도하는 단계
Level 3 - 확립(Established) 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행되는 단계
Level 4 - 예측(Predictable) 프로세스가 목적 달성을 위해 통제되고, 양적인 측정을 통해서 일관되게 수행되는 단계
Level 5 - 최적화(Optimizing) 프로세스 수행을 최적화하고, 지속적인 개선을 통해 업무 목적을 만족시키는 단계

섹션8. 소프트웨어 개발 방법론 테일러링

 

1. 소프트웨어 개발 방법론 테일러링의 개요

 

  • 프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업
  • 관리적 측면에서 볼 때 테일러링은 최단기간에 안정적인 프로젝트 진행을 위해 사전 위험을 식별하고 제거하는 작업
  • 기술적 측면에서 볼 때 테일러링은 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞은 최적의 기법과 도구를 찾아가는 작업
소프트웨어 개발 방법론 테일러링 수행 절차(왼쪽에서 오른쪽으로 진행)
프로젝트 특징 정의 표준 프로세스 신청 및 검증 상위 수준의 커스터마이징 세부 커스터마이징 테일러링 문서화

2. 소프트웨어 개발 방법론 테일러링 고려사항

 

  • 내부적 기준

    • 목표 환경 : 시스템의 개발 환경과 유형이 서로 다른 경우
    • 요구 사항 : 프로젝트의 생명주기 활동에서 개발, 운영, 유지보수 등 프로젝트에서 우선적으로 고려할 요구사항이 서로 다른 경우
    • 프로젝트 규모 : 비용, 인력, 기간 등 프로젝트의 규모가 서로 다른 경우
    • 보유 기술 : 프로세스, 개발 방법론, 산출물, 구성원의 능력 등이 서로 다른 경우
  • 외부적 기준

    • 법적 제약사항 : 프로젝트별로 적용될 IT Compliance(내/외부적으로 반드시 지켜야하는 법적 규제사항이나 지침)가 서로 다른 경우
    • 표준 품질 기준 : 금융, 제도 등 분야별 표준 품질 기준이 서로 다른 경우

3. 소프트웨어 개발 방법론 테일러링 기법

 

  • 프로젝트 규모와 복잡도에 따른 테일러링 기법 : 가장 일반적인 기법으로, 프로젝트 규모를 프로젝트 기간, 작업범위, 참여인원 등에 따라 대/중/소로 구분하고, 프로젝트 업무 난이도에 따라 복잡도를 상/중/하로 나누는 기법
  • 프로젝트 구성원에 따른 테일러링 기법 : 프로젝트에 참여하는 구성원들의 기술적 숙련도와 방법론의 이해 정도를 확인하여 테일러이 수준을 결정하는 기법
  • 팀내 방법론 지원에 따른 테일러링 기법 : 프로젝트 수행 시 각 팀별로 방법론 담당 인력을 배정하여 팀의 방법론 교육과 프로젝트 전체의 방법론 운영을 위한 의사소통을 담당하도록 인력을 구성하는 기법
  • 자동화에 따른 테일러링 기법 : 프로젝트 수행 시 작업 부하를 줄이기 위해 중간 단계에서의 산출물을 자동화 도구를 사용하여 산출할 수 있도록 지원하는 기법

섹션9. 소프트웨어 개발 프레임워크

 

1. 소프트웨어 개발 프레임워크의 개요

 

  • 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화 하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템
  • 선행 사업자의 기술에 의존하지 않은 표준화된 개발 기반으로 인해 사업자 종속성이 해소 됨
  • 개발해야 할 애플리케이션의 일부분이 이미 내장된 클래스 라이브러리로 구현되어 있어 개발자는 이미 존재하는 부분을 확장 및 이용하는 것으로 소프트웨어를 개발할 수 있음
  • 주요 기능에는 예외 처리, 트랜잭션 처리, 메모리 공유, 데이터 소스 관리, 서비스 관리, 쿼리 서비스 , 로깅 서비스, 사용자 인증 서비스 등이 있음

프레임 워크의 특성

모듈화
(Modularity)
캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질을 향상시킴
개발 표준에 의한 모듈화로인해 유지 보수가 용이함
재사용성
(Reusability)
재사용 가능한 모듈들을 제공함으로써 예산 절감, 생산성 향상 품질 보증이 가능함
확장성
(Extensibility)
다형성(Polymorphism)을 통항 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션이 개발 가능함
제어의 역흐름
(Inversion of Control)
개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킴

2. 스프링 프레임 워크(Spring Framework)

 

  • 자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
  • 동적인 웹 사이트의 개발을 위해 다양한 서비스를 제공함
  • 전자정부 표준 프레임워크의 기반 기술로 사용되고 있음

3. 전자정부 프레임워크

 

  • 우리나라의 공공부문 정보화 사업 시 효율적인 정보 시스템의 구축을 지원하기 위해 필요한 기능 및 아키텍처를 제공하는 프레임워크
  • 개발 프레임워크의 표준 정립으로 응용 프로그램웨어의 표준화, 품질 및 재사용성의 향상을 목적으로 함
  • 오픈 소스 기반의 범용화가 되고 공개된 기술을 활용함으로써 특정 업체의 종속성을 배제하고 사업별 공통 컴포넌트의 중복 개발을 방지함

4. 닷넷 프레임워크(.NET Framework)

 

  • Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크로, Microsoft 사에서 통합 인터넷 전략을 위해 개발함
  • 코드 실행을 관리하는 CLR(Common Language Runtime, 공용 언어 런타임)이라는 이름의 가상머신 상에서 작동함
  • 메모리 관리, 유형 및 메모리 안전성, 보안, 네트워크 작업 등 여러가지서비스를 제공함