소프트웨어 개발 방법론

From CS Wiki
Revision as of 01:46, 3 October 2019 by 116.120.12.172 (talk)

소프트웨어 개발 방법론은 소프트웨어 공학 원리를 소프트웨어 개발 생명주기에 적용한 개념으로 정보시스템 개발을 위한 작업활동, 절차, 산출물, 기법 등을 체계적으로 정리한 것을 말한다.

종류

구조적 방법론

정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 체계적인 방법으로 비즈니스 프로세스 자동화를 목표로 하고 있으며, 프로세스 중심의 개발 방법

  • 특징
    • 데이터 흐름 지향, 즉 프로세스 위주의 분석과 설계 방식
    • 모듈의 분할과 정복에 의한 하향식 설계 방식
    • SDLC의 구조를 가진 폭포수 모델이 기본
    • 소프트웨어의 개발이 목표인 프로세스와 산출물의 구성
    • 데이터의 구성에 대한 설계 방안이 부족
    • 프로젝트 관리 및 조직, 역할 등 방법론적 다른 요소들의 정의가 없음
  • 라이프사이클 : 폭포수 모델
  • 개발방식 : TOP‐DOWN
  • 단계별 산출물
    • 계획 : 도메인 분석, 프로젝트 계획서 등
    • 분석 : DFD(Data Flow Diagram) 등
    • 설계 : Structure Chart, 프로그램 사양서 등

객체지향 방법론

분석, 설계 및 개발에 있어서 객체지향 기법을 활용하여 시스템을 구축하는 방법

  • 특징
    • 반복적이고 점증적인(Iterative and Incremental) 개발 방식
    • 재사용성의 강조
    • 쉽고 표준화된 표기법 존재
    • 분산객체 기술의 완벽한 지원
    • 분석 설계 및 구현 단계들 사이에 의미적 갭(semantic gap)이 작다
  • 라이프사이클 : 반복적 개발
  • 개발방식 : BOTTOM‐UP
  • 단계
    • 계획
      • 주어진 문제 안에서 객체들을 발견하고 객체들의 상관관계를 분석
      • 산출물: 비즈니스 프로세스, 개념 모델, 프로젝트 계획서 등
    • 분석
      • 산출물: 유즈케이스 다이어그램, 시퀀스 다이어그램, 클래스 다이어그램 등
    • 설계
      • 객체들을 클래스로 정의하고 상관관계를 상속 단계로 정의
      • 산출물: 시퀀스 다이어그램, 클래스 다이어그램, 컴포넌트 다이어그램, 배포 다이어그램 등
    • 구현
      • 정의된 클래스들에 대해 특정언어를 이용하여 1:1로 정의

CBD 방법론

재사용이 가능한 컴포넌트의 개발 또는 사용컴포넌트를 조합하여 애플리케이션 개발 생산성과 품질을 높이고, 시스템 유지보수 비용을 최소화할 수 있는 방법이다

  • 특징
    • 컴포넌트 기반 개발
    • 반복 점진적 개발프로세스 제공
    • 표준화된 산출물 작성, 컴포넌트 제작 기법을 통한 재사용성 향상
  • 라이프사이클 : 반복적 개발
  • 개발방식 : BOTTOM‐UP
  • 단계별 산출물
    • 계획 : 비즈니스 프로세스, 개념 모델, 프로젝트 계획서 등
    • 분석 : 유즈케이스 다이어그램, 유즈케이스 명세서, 요구사항 추적표 등
    • 설계 : 사용자 인터페이스 설계서, 컴포넌트 설계서, ERD 기술서, 데이터베이스 설계서 등

출처