[정처기 필기] 「5」 | 소프트웨어 개발 방법론 활용 - (1.3) 소프트웨어 개발 방법론 결정, 표준, 테일러링, 프레임워크
[정처기 필기] 「5」 | 소프트웨어 개발 방법론 활용 - (1.3) 소프트웨어 개발 방법론 결정, 표준, 테일러링, 프레임워크
「1」 소프트웨어 설계
「2」 소프트웨어 개발
「3」 데이터베이스 구축
「4」 프로그래밍 언어 활용
> 「5」 정보시스템 구축 관리
- > 소프트웨어 개발 방법론 활용, IT프로젝트 정보 시스템 구축 관리, 소프트웨어 개발 보안 구축, 시스템 보안 구축
1 소프트웨어 개발 방법론
2 SW 공학의 발전적 추세
3 상향식 비용 산정 기법
4 수학적 산정 기법
5 프로젝트 일정 계획
> 6 소프트웨어 개발 방법론 결정
> 7 소프트웨어 개발 표준
> 8 소프트웨어 개발 방법론 테일러링
> 9 소프트웨어 개발 프레임워크
6. 소프트웨어 개발 방법론 결정
소프트웨어 개발 방법론 결정의 개요
프로젝트 관리, 재사용 현황을 소프트웨어 개발 방법론에 반영, 확정된 소프트웨어 생명 주기와 개발 방법론에 맞춰 소프트웨어 개발 단계, 활동, 작업, 절차 등 정의
>프로젝트 관리<
주어진 기간 내 최소의 비용으로 사용자 만족시키는 시스템을 개발하기 위한 활동
일정 관리 : 작업 순서, 작업 기간 산정, 일정 개발, 일정 통제
비용 관리 : 비용 산정, 비용 예산 편성, 비용 통제
인력 관리 : 프로젝트 팀 편성, 자원 산정, 프로젝트 조직 정의, 프로젝트 팀 개발, 자원 통제, 프로젝트 팀 관리
위험 관리 : 위험 식별 > 위험 분석 / 평가 > 위험 관리 계획 > 위험 감시 / 조치
품질 관리 : 품질 계획, 품질 보증 수행, 품질 통제 수행
소프트웨어 개발 방법론 결정 절차
1 프로젝트 관리, 재사용 현황을 소프트웨어 개발 방법론에 반영
: 반영하는 방법을 프로젝트 관련자들에게 설명
: 결과를 프로젝트 관련자들에게 설명 후 결정
2 개발 단계별 작업 / 절차를 소프트웨어 생명 주기에 맞춰 수립
: 기본 생명 주기, 지원 생명 주기, 조직 생명 주기 별로 주요 프로세스 확인
: 개발 프로세스, 개발 생명 주기, 프로세스 모형 정리
3 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 매뉴얼 작성
7. 소프트웨어 개발 표준
소프트웨어 개발 표준의 개요
소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준, ISO / IEC 12207, CMMI, SPICE
ISO / IEC 12207
ISO에서 만든 표준 소프트웨어 생명 주기 프로세스
기본 생명 주기 프로세스 : 획득, 공급, 개발, 운영, 유지보수 프로세스
지원 생명 주기 프로세스 : 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
조직 생명 주기 프로세스 : 관리, 기반 구조, 훈련, 개선 프로세스
CMMI(Capability Maturity Model Integration, 능력 성숙도 통합 모델)
소프트웨어 개발 조직의 업무 능력 / 조직의 성숙도 평가하는 모델, 미국 카네기멜론 대학교의 소프트웨어 공학 연구소(SEI)에서 개발
단계 | 프로세스 | 특징 |
초기(Initial) | 정의된 프로세스 없음 | 작업자 능력에 따라 성공 여부 결정 |
관리(Managed) | 규칙화된 프로세스 | 특정한 프로젝트 내 프로세스 정의 / 수행 |
정의(Defined) | 표준화된 프로세스 | 조직의 표준 프로세스를 활용하여 업무 수행 |
정량적 관리(Quantitatively Managed) | 예측 가능한 프로세스 | 프로젝트를 정량적으로 관리 / 통제 |
최적화(Optimizing) | 지속적 개선 프로세스 | 프로세스 역량 향상을 위해 지속적인 프로세스 개선 |
SPICE(Software Process Improvement and Capability dEtermination, 소프트웨어 처리 개선 / 능력 평가 기준)
정보 시스템 분야에서 소프트웨어의 품질 / 생산성 향상을 위해 소프트웨어 프로세스를 평가 / 개선하는 국제 표준, ISO / IEC 15504
- 목적
: 프로세스 개선을 위해 개발 기관이 스스로 평가
: 기관에서 지정한 요구조건의 만족여부를 개발 조직이 스스로 평가
: 계약 체결을 위해 수탁 기관의 프로세스 평가
- 5개의 프로세스 범주와 40개의 세부 프로세스로 구성
고객-공급자(Customer-Supplier) 프로세스
: 소프트웨어를 개발하여 고객에게 전달하는 것을 지원, 정확한 운용 / 사용을 위한 프로세스
: 인수, 공급, 요구 도출, 운영
: 10개의 프로세스
공학(Engineering) 프로세스
: 시스템과 소프트웨어 제품의 명세화, 구현, 유지보수 하는 데 사용되는 프로세스
: 개발, 소프트웨어 유지보수
: 9개의 프로세스
지원(Support) 프로세스
: 다른 프로세스에 의해 이용되는 프로세스
: 문서화, 형상, 품질 보증, 검증, 확인, 리뷰, 감사, 품질 문제 해결
: 8개의 프로세스
관리(Management) 프로세스
: 프로젝트 관리자에 의해 사용되는 프로세스
: 관리, 프로젝트 관리, 품질 / 위험 관리
: 4개의 프로세스
조직(Organization) 프로세스
: 조직의 업무 목적 수립, 조직의 업무 목표 달성을 위한 프로세스
: 조직 배치, 개선 활동 프로세스, 인력 관리, 기반 관리, 측정 도구, 재사용
: 9개의 프로세스
- 프로세스 수행 능력 단계
Level 0 (불완전 Incomplete) : 프로세스가 구현되지 않았거나 목적 달성 못한 단계
Level 1 (수행 Performed) : 프로세스가 수행되고 목적이 달성
Level 2 (관리 Managed) : 정의된 자원 한도 내에서 작업 산출물을 인도하는 단계
Level 3 (확립 Established) : 소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행되는 단계
Level 4 (예측 Predictable) : 목적 달성을 위해 통제되고, 양적인 측정을 통해 일관되게 수행되는 단계
Level 5 (최적화 Optimizing) : 프로세스 수행을 최적화, 지속적인 개선을 통해 업무 목적을 만족시키는 단계
8. 소프트웨어 개발 방법론 테일러링
소프트웨어 개발 방법론 테일러링의 개요
프로젝트 상황 / 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법, 산출물 등 수정 / 보완하는 작업
- 관리적 측면에서 볼 때, 최단기간에 안정적인 프로젝트 진행을 위해 사전 위험을 식별, 제거
- 기술적 측면에서 볼 때, 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞는 최적의 기법, 도구를 찾아가는 작업
- 프로젝트 특징 정의 > 표준 프로세스 선정 / 검증 > 상위 수준의 커스터마이징 > 세부 커스터마이징 > 테일러링 문서화
소프트웨어 개발 방법론 테일러링 고려사항
내부적 기준
- 목표 환경 : 시스템의 개발 환경과 유형이 서로 다른 경우
- 요구사항 : 개발, 운영, 유지보수 등 우선적으로 고려할 요구사항이 서로 다른 경우
- 프로젝트 규모 : 비용, 인력, 기간 등 프로젝트 규모가 서로 다른 경우
- 보유 기술 : 프로세스, 개발 방법론, 산출물, 구성원의 능력 등 서로 다른 경우
외부적 기준
- 법적 제약사항 : 적용될 IT Compliance가 서로 다른 경우
- 표준 품질 기준 : 금융, 제도 등 분야별 표준 품질 기준이 서로 다른 경우
소프트웨어 개발 방법론 테일러링 기법
프로젝트 규모와 복잡도에 따른 테일러링 기법
: 가장 일반적인 기법, 프로젝트 규모를 기간, 작업 범위, 참여 인원 등에 따라 대 / 중 / 소로 구분, 프로젝트 업무의 난이도에 따라 복잡도를 상 / 중 / 하로 구분
프로젝트 구성원에 따른 테일러링 기법
: 참여 인원의 기술적 숙련도, 방법론의 이해 정도를 확인하여 결정
팀 내 방법론 지원에 따른 테일러링 기법
: 팀별로 방법론 담당 인력을 배정하여 팀의 방법론 교육, 프로젝트 전체의 방법론 운영을 위한 의사소통 담당하도록 인력을 구성
자동화에 따른 테일러링 기법
: 작업 부하를 줄이기 위해 중간 단계에서의 산출물을 자동화 도구를 사용하여 산출하도록 지원
9. 소프트웨어 개발 프레임워크
소프트웨어 개발 프레임워크의 개요
소프트웨어 개발에 공통적으로 사용되는 구성 요소 / 아키텍처를 일반화하여 손쉽게 구현하도록 여러 기능을 제공해 주는 반제품 형태의 소프트웨어 시스템
- 선행 사업자의 기술에 의존하지 않은 표준화된 개발 기반으로 인해 사업자 종속성이 해소
- 개발할 애플리케이션의 일부분이 이미 내장된 클래스 라이브러리로 구현되어 이미 존재하는 부분을 확장 / 이용하는 것으로 개발할 수 있음
- 예외 처리, 트랜잭션 처리, 메모리 공유, 데이터 소스 관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스 등
- 스프링 프레임워크, 전자정부 프레임워크, 닷넷 프레임워크
>프레임워크의 특성<
모듈화(Moularity)
: 캡슐화를 통해 모듈화를 강화, 설계 / 구현의 변경에 따른 영향을 최소화하여 품질 향상
: 개발 표준에 의한 모듈화로 인해 유지보수 용이
재사용성(Reusability)
: 재사용 가능한 모듈 제공하여 예산 절감, 생산성 향상, 품질 보증
확장성(Extensibilty)
: 다형성(Polymorphism)을 통한 인터페이스 확장 가능하여 다양한 형태, 기능 가진 개발 가능
제어의 역흐름(Inversion of Control)
: 개발자가 관리, 통제할 객체의 제어를 프레임워크에 넘겨 생산성 향상
스프링 프레임워크(Spring Framework)
자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크
- 동적인 웹 사이트 개발을 위한 다양한 서비스 제공
- 전자정부 표준 프레임워크의 기반 기술
전자정부 프레임워크
우리나라의 공공부문 정보화 사업 시 효율적인 정보 시스템 구축을 지원하기 위해 필요한 기능 / 아키텍처 제공
- 개발 프레임워크의 표준 정립으로 응용 소프트웨어의 표준화, 품질 / 재사용성의 향상이 목적
- 오픈 소스 기반의 범용화, 공개된 기술 활용하여 특정 업체의 종속성 배제, 사업별 공통 컴포넌트의 중복 개발을 방지
닷넷 프레임워크(.NET Framework)
Windows 프로그램의 개발 / 실행 환경을 제공, Microsoft 사에서 통합 인터넷 전략을 위해 개발
- 코드 실행을 관리하는 CLR(Common Language Runtime, 공용 언어 런타임)이라는 이름의 가상머신 상에서 작동
- 메모리 관리, 유형 / 메모리 안정성, 보안, 네트워크 작업 등 제공
출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)