[정보처리기사][요구사항 확인] 소프트웨어 개발

컴퓨터/정보처리기사

728x90
반응형

소프트웨어 개발 방법론과 프로젝트 관리

소프트웨어 개발 방법론을 결정하고 프로젝트를 관리하는 것은 투입되는 자원, 일정, 비용, 품질, 위험관리등 여러 조건을 확인하고 만족스러운 결과물을 얻기 위한 중요한 절차 및 활동이다.

 

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

소프트웨어 개발 방법론을 결정하는 절차는 다음과 같다.

  • 프로젝트 관리와 재사용 현황을 소프트웨어 개발 방법론에 반영한다.
  • 개발 단계별 작업 및 절차를 소프트웨어 생명 주기에 맞춰 수립한다.
  • 결정된 소프트웨어 개발 방법론의 개발 단계별 활동 목적, 작업 내용, 산출물에 대한 매뉴얼을 작성 및 정의한다.

 

2.프로젝트 관리 (Project Management)

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

 

  • 관리유형
    • 일정 관리 - 작업 순서, 작업 기간, 일정 개발, 일정 통제
    • 비용 관리 - 비용 산정, 비용 편성, 비용 통제
    • 인력 관리 - 팀 편성, 자원 산정, 조직 정의, 팀 개발, 자원 통제, 팀 관리
    • 위험 관리 - 위험 식별, 위험 평가, 위험 대처, 위험 통제
    • 품질 관리 - 품질 계획, 품질 보증, 품질 통제

소프트웨어 개발 표준

소프트웨어 개발 단계에서 수행하는 품질 관리에 사용되는 국제 표준 

  • 종류
    • ISO / IEC 12207
    • CMMI
    • SPICE

1.ISO / IEC 12207

ISO(국제 표준화기구)에서 만든 표준 소프트웨어 생명 주기 프로세스

개발, 운영, 유지보수 등을 체계적으로 관리하기 위한 소프트웨어 생명 주기 표준을 제공한다.

  • ISO / IEC 12207의 생명주기 프로세스 구분
기본 생명주기 프로세스 획득, 공급, 개발, 운영, 유지보수 프로세스
지원 생명주기 프로세스 품질 보증 및 검증, 확인, 활동 검토, 감사, 문서화, 형상관리, 문제해결 프로세스
조직 생명 주기 프로세스 관리, 기반 구조, 훈련, 개선 프로세스

 

2.CMMI - Capablility Maturity Model Integration(능력 성숙도 통합 모델)

소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델.

미국 카네기멜론 대학교의 소프트웨어 공학연구소(SEI)에서 개발

  • CMMI의 성숙도 모델 구조
단계 프로세스 특징
초기
( Initial )
- 작업자의 능력에 따라 성공 여부 결정
관리
( Managed )
규칙화된 프로세스 특정한 프로젝트 내의 프로세스 정의 및 수행
정의
( Defined )
표준화된 프로세스 조직의 표준 프로세스를 활용하여 업무 수행
정량적 관리
( Quantitatively Managed)
예측 가능한 프로세스 프로젝트를 정량적으로 관리 및 통제
최적화
(Optimizing )
지속적 개선 프로세스 프로세스 역량 향상을 위해 지속적인 프로세스 개

3.SPICE - Software Process Improvement and Capability dEtermination

정보 시스템 분야에서 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준

공식 명칭은 ISO/IEC 15504이다.

  • SPIEC - ISO/IEC 15504의 구성
범주 특징
고객 - 공급자
( Customer - Supplier )
구성 요소 : 인수, 공급, 요구도출, 운영
프로세스 수 : 10개

소프트웨어를 개발하여 고객에게 전달하는 것을 지원
소프트웨어의 정확한 운용 및 사용을 위한 프로세스 구성
공학
( Engineering )
구성 요소 : 개발, 소프트웨어 유지보수
프로세스 수 : 9개

시스템 및 소프트웨어의 명세화, 구현, 유지보수 프로세스
지원
( Support )
구성 요소 : 문서화,형상,품질보증,검증,확인,리뷰,감사,품질문제 해결
프로세스 수 : 8개

소프트웨어 생명 주기에서 다른 프로세스에 의해 이용되는 프로세스
관리
( Management )
구성 요소 : 관리, 프로젝트 관리, 품질 및 위험 관리
프로세스 수 : 4개

프로젝트 관리자에 의해 사용되는 프로세스
조직
( Organization )
구성 요소 : 조직 배치, 개선 활동 프로세스, 인력 관리, 기반 관리, 측정 도구, 재사용
프로세스 수 : 9개

조직의 업무 목적 수립과 조직의 업무 목표 달성을 위한 프로세스
  • SPICE - ISO/IEC 15505 프로세스 수행 능력 단계
단계 특징
불완전
( Incomplete )
프로세스 구현의 불완전 또는 목적을 미달성한 단계
수행
( Performed )
프로세스가 수행되고 목적이 달성된 단계
관리
( Managed )
정의된 자원의 한도 내에서 그 프로세스가 작업 산출물을 인도하는 단계
확립
( Established )
소프트웨어 공학 원칙에 기반하여 정의된 프로세스가 수행되는 단계
예측
( Predictable )
프로세스가 목적 달성을 위해 통제되고, 양적인 측정을 통해서 일관되게 수행되는 단계
최적화
( Optimizing )
프로세스 수행을 최적화하고, 지속적인 개선을 통해 업무 목적을 만족시키는 단계

 

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

개발 방법론 테일러링은 프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업이다.

 

  • 소프트웨어 개발 방법론 테일러링 수행 절차
    1. 프로젝트 특징 정의
    2. 표준 프로세스 선정 및 검증
    3. 상위 수준의 커스터마이징
    4. 세부 커스터마이징
    5. 테일러링 문서화
  • 개발 방법론 테일러링시 고려사항
기준 내용
내부적 목표 환경 - 시스템의 개발 환경과 유형이 서로 다른 경우
요구 사항 - 프로젝트의 생명 주기 활동에서 개발, 운영, 유지보수 등 프로젝트에서 우선적으로 고려할 요구사항이 서로 다른 경우 
프로젝트 규모 - 비용, 인력, 기간 등 프로젝트의 규모가 서로 다른 경우
보유 기술 : 프로세스, 개발 방법론, 산출물, 구성원의 능력 등이 서로 다른 경우

즉 개발 환경, 프로젝트환경, 보유기술등 내부적인 요소
외부적 법적 제약사항 - 프로젝트 별 적용될 IT Compliance가 서로 다른 경우
표준 품질 기준  - 금융, 제도 등 분야별 표준 품질 기준이 서로 다른 경우

즉 법규 및 규제등 외부적인 요소

 

소프트웨어 개발 프레임워크

소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 여러 기능을 제공하는 반제품 형태의 시스템

 

선행 사업자의 기술에 의존하지 않는 표준화된 개발 기반으로 인해 사업자 종속성이 해소된다.

 

  • 주요 기능
    • 예외 처리
    • 트랜잭션 처리
    • 메모리 공유
    • 데이터 소스 관리
    • 서비스 관리
    • 쿼리 서비스
    • 로깅 서비스
    • 사용자 인증 서비스
  • 종류
    • 스프링
    • 전자정부
    • 닷넷

1.스프링 프레임워크 - Spring Framework

자바 플랫폼을 위한 오픈 소스 경량형 애플리케이션 프레임워크

  • 동적인 웹 사이트의 개발을 위해 다양한 서비스를 제공
  • 전자정부 표준 프레임워크의 기반 기술로 사용되고 있음

2. 전자정부 프레임워크 

대한민국의 공공부문 정보화 사업 시 효율적인 정보 시스템 구축을 지원하기 위해 필요한 아키텍처를 제공하는 프레임워크

  • 개발 프레임워크의 표준 정립으로 응용 소프트웨어의 표준화, 품질 및 재사용성의 향상을 목적으로 한다.
  • 오픈 소스 기반의 범용화를 이룰 수 있다.
  • 공개된 기술을 활용함으로써 특정 업체의 종속성을 배제하고 사업별 공통 컴포넌트의 중복 개발을 방지한다.

3. 닷넷 프레임워크 - .NET Framework

Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크

  • Microsoft 사에서 통합 인터넷 전략을 위해 개발
  • 코드 실행을 관리하는 CLR(Common Language Runtime)이라는 가상머신 상에서 작동한다.

 

소프트웨어 개발 프레임 워크의 특성

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

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :