소프트웨어 개발 방법론 활용 정리 - (정보시스템 구축 관리) [정보처리기사 필기]
반응형

 

소프트웨어 개발 방법론

소프트웨어 개발, 유지보수에 필요한 수행 방법과, 그 과정에 필요한 기법 및 도구의 표준화

 

구조적 방법론

정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론

타당성 검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 시험 -> 운용/유지보수

 

정보공학방법론

정보 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료 중심의 방법론.

대규모 정보시스템 구축에 적합

정보 전략 계획 수립 -> 업무 영역 분석 -> 업무 시스템 설계 -> 업무 시스템 구축

 

객체지향방법론

소프트웨어 개발 시 기계의 부품을 조립하듯이 객체들을 조립해서 소프트웨어를 구현하는 방법론

요구사항 분석 -> 설계 -> 구현 -> 테스트 및 검증 -> 인수

구성 요소 : 객체, 클래스, 메시지..

기본 원칙

  • 캡슐화 : 데이터와 함수를 하나로 묶는 것, 실제 구현 내용이 은닉됨
  • 정보 은닉 : 객체가 가지고 있는 속성, 메소드를 감추어 외부에서 접근이 불가능하게 하는 원칙
  • 추상화 : 불필요한 부분은 제외하고 중요한 부분만 간추려서 구성하는 것
  • 상속성 : 상위 클래스의 속성, 메소드를 하위 클래스가 물려받는 것
  • 다형성 : 여러 가지 형태를 가질 수 있도록 하는 것.

 

컴포넌트 기반 방법론

컴포넌트를 조합하여 새로운 어플리케이션을 만드는 방법론

(컴포넌트 : 문서, 소스코드, 파일, 라이브러리 처럼 모듈화된 자원)

개발 준비 -> 분석 -> 설계 -> 구현 -> 테스트 -> 전개 -> 인수

 

에자일 방법론

고객의 요구사항 변화에 유연하고 빠르게 대처할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론

사용자 스토리 -> [계획 -> 개발 -> 승인테스트] 반복

 

제품 계열 방법론

특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론 (임베디드 소스프퉤어)

 

비용 산정

소프트웨어의 개발 규모를 소요되는 인원, 자원, 기간 등으로 확인하여 계획을 수립하기 위해 비용을 계산하는 것.

 

소프트웨어 비용 결정 요소

  • 프로젝트 요소 : 제품 복잡도, 시스템 크기, 요구되는 신뢰도
  • 자원 요소 : 인적 자원, 하드웨어 자원, 소프트웨어 자원
  • 생산성 요소 : 개발자 능력, 개발 기간

 

하향식 산정 기법

과거의 유사한 경험을 바탕으로 전문가들이 참여한 회의를 통해 비용 산정

  • 전문가 감정 기법 : 조직 내 경험이 많은 두 명 이상의 전문가에게 비용 산정을 의뢰
  • 델파이 기법 : 한 명의 조정자와 여러 전문가가 의견을 종합하여 산정

 

상향식 산정 기법

프로젝트의 세부적인 작업 단위별로 비용을 산정 후 집계하여 전체 비용을 산정

 

LOC(원시 코드 라인 수) 기법

소프트웨어의 기능의 원시 코드 라인 수의 비관치 낙관치 기대치를 측정 -> 예측치를 구하고, 이를 통해 비용 산정

a = 낙관치, b = 비관치, c = 기대치(중간) -> 예측 (낙관+4기대치+비관)/6

  • 노력(인월 = MM(Man-Month)) = 개발기간 x 투입인원 = LOC / 1인당 월평균 생산 코드 라인 수
  • 개발 비용 = 노력(MM) * 단위 비용 (1인당 월평균 인건비)
  • 개발 기간 = 노력(MM) / 투입 인원
  • 생산성 = LOC / 노력(MM)

 

개발 단계별 인월수 기법

LOC 기법을 보완하기 위해, 각 기능을 구현하기 위해 필요한 기법을 생명 주기의 각 단계별로 설정

 

COCOMO 모형

Bohem이 제안한 것으로 LOC에 의한 비용 산정 기법

개발 유형

  • 조직형 : 기관 내부에서 개발된 중 소규모의 소프트웨어, 5만 (50KDSI) 라인 이하
  • 반분리형 : 트랜잭션 처리 시스템, 운영체제, DBMS , 30만 (50KDSI) 라인 이하
  • 내장형: 대형 규모의 트랜잭션 처리, 운영체제 , 30만 (50KDSI) 라인 이상

모형

  • 기본형 : 소프트웨어의 크기와 개발 유형만을 이용하여 비용 산정
  • 중간형 : 기본형의 공식을 사용하거나, 4가지 특성의 15가지 용인에 의해 비용 산정
    제품 특성 : 요구 신뢰도, db 크기, 제품 복잡도
    컴퓨터 특성 : 수행 시간 제한, 기억 장소 제한, 가상 기계 안정성, 반환시간
    개발 요원 특성 : 분석가 능력, 개발 분야 경험, 가상 기계 경험, 프로그래머 능력, 프로그래밍 언어 경험
    프로젝트 특성 : 소프트웨어 도구 이용, 프로젝트 개발 일정, 최신 프로그래밍 기법 사용
  • 발전형 : 개발 공정별로 보다 자세하고 정확하게 노력을 산출하여 비용을 산정

 

Putnam 모형

소프트웨어 생명 주기의 모든 과정 동안에 사용될 노력의 분포를 가정하는 모형

생명 주기 예측 모형

Rayleigh-Norden 곡선의 노력 분포도를 기초로 시간에 따라 표현

 

자동화 측정 도구

SLIM : Rayleigh-Norder 곡선 + Putnam 예측 모델을 기초로한 자동화 측정 도구

ESTIMACS : 다양한 프로젝트와 개인별 요소를 수용하도록 FP 모형을 기반으로 개발됨

 

FP (Function-Point) 모형

소프트웨어 기능을 증가시키는 요인별로 가중치를 부여하고 합산하여 총 기능 점수와 영향도를 이용.

기능 점수를 이용해서 비용을 산정.

 

프로젝트 개발 방법론 결정

프로젝트 관리 유형

관리 유형 주요 내용
일정 관리 작업 순서, 기간 산정, 일정 개발, 일정 통제
비용 관리 비용 산정, 비용 예산 현성, 비용 통제
인력 관리 팀 편성, 자원 산정, 조직 정의, 팀 개발, 자원 통제, 팀 관리
위험 관리 위험 식별, 위험 평가, 위험 대처, 위험 통제
품질 관리 품질 게획, 품질 보증 수행, 품질 통제 수행

개발 방법론 결정 절차

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

 

소프트웨어 개발 표준

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

 

ISO/IEC 12207

ISO에서 만든 표준 소프트웨어 생명 주기 프로세스

기본, 지원, 조직 생명 주기별 프로세스로 구분

 

CMMI(Capability Maturity Model Integration), 능력 성숙도 통합 모델

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

초기, 관리, 정의, 정량적 관리, 최적화 5단게로 구분

 

SPICE(Software Process Improvement and Capability dEtermination), 소프트웨어 처리 개선 및 능력 평가 기준

소프트웨어의 품질 및 생산성 향상을 위해 프로세스를 평가 및 개선하는 국제 표준 (ISO/IEC 15504)

고객-공급자, 공학, 지원, 관리, 조직 프로세스로 구분

불완전, 수행, 관리, 확립, 예측, 최적화 단계

 

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

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

 

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

내부적 요건 : 목표 환경, 요구사항, 프로젝트 규모, 보유 기술

외부적 요건 : 법적 제약사항, 표준 품질 기술

 

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

  • 규모와 복잡도 : 프로젝트 규모와 업무에 난이도에 따라 복잡도 구분
  • 구성원 : 구성원들의 숙련도와 방법론의 이해 정도에 따른 수준
  • 팀내 방법 지원 : 팀별 방법론 담당 인력에 따라 방법론 교육과 전체의 운영을 위한 의사소통을 담당하도록 인력 구성
  • 자동화 : 중간 단계에서 산출물을 자동화 도구를 사용하여 작업 부하를 줄이면서 산출하도록 지원

 

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

소프트웨어 개발에 공통적으로 사용되는 구성 요소, 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 소프트웨어 시스템

  • 스프림 프레임워크 : JAVA 플랫폼 + 동적인 웹 사이트의 개발을 위한 프레임워크
  • 전자정부 프레임워크 : 효율적인 정보 시스템의 구축을 지원하기 위해 기능 및 아키텍처 제공
  • 닷넷 프레임워크 : Windows 프로그램의 개발 및 실행 환경을 제공하는 프레임워크

 

전문가가 아니라 정확하지 않은 지식이 담겨있을 수 있습니다.
언제든지 댓글로 의견을 남겨주세요!

 

반응형