소프트웨어 개발 방법론: Difference between revisions

From IT Wiki
No edit summary
No edit summary
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[분류:소프트웨어 공학]]
소프트웨어 개발 방법론은 소프트웨어 공학 원리를 소프트웨어 개발 생명주기에 적용한 개념으로 정보시스템 개발을 위한 작업활동, 절차, 산출물, 기법 등을 체계적으로 정리한 것을 말한다.  
소프트웨어 개발 방법론은 소프트웨어 공학 원리를 소프트웨어 개발 생명주기에 적용한 개념으로 정보시스템 개발을 위한 작업활동, 절차, 산출물, 기법 등을 체계적으로 정리한 것을 말한다.  


==종류==
==종류==
===구조적 방법론===
{| class="wikitable"
! 구분
! 구조적
! 정보공학
! 객체지향
! CBD
|-
| 시기
| 1960년대
| 1980년대
| 1990년대
| 2000년대
|-
| 특징
| 모듈화, 유지보수성 향상
| 기업업무 중심의 정보시스템 개발 최적화
| 실세계의 객체 모형을 반영
| 재사용성 및 효율성 극대화
|-
| 주요 관점
| 프로세스 중심
| 데이터 중심
| 객체 중심
| 컴포넌트 중심
|-
| SDLC
| 폭포수 모델
| 프로토타이핑 모델
| 반복적 모델
| 반복적 모델
|-
| 개발 방식
| Top Down
| Top Down
| Bottom Up
| Bottom Up
|}
 
=== [[구조적 방법론]] ===
정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 체계적인 방법으로 비즈니스 프로세스 자동화를 목표로 하고 있으며, 프로세스 중심의 개발 방법
정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 체계적인 방법으로 비즈니스 프로세스 자동화를 목표로 하고 있으며, 프로세스 중심의 개발 방법


Line 20: Line 59:
** 설계 : Structure Chart, 프로그램 사양서 등
** 설계 : Structure Chart, 프로그램 사양서 등


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


Line 44: Line 83:
***  정의된 클래스들에 대해 특정언어를 이용하여 1:1로 정의
***  정의된 클래스들에 대해 특정언어를 이용하여 1:1로 정의


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



Latest revision as of 19:41, 19 October 2019

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

종류[edit | edit source]

구분 구조적 정보공학 객체지향 CBD
시기 1960년대 1980년대 1990년대 2000년대
특징 모듈화, 유지보수성 향상 기업업무 중심의 정보시스템 개발 최적화 실세계의 객체 모형을 반영 재사용성 및 효율성 극대화
주요 관점 프로세스 중심 데이터 중심 객체 중심 컴포넌트 중심
SDLC 폭포수 모델 프로토타이핑 모델 반복적 모델 반복적 모델
개발 방식 Top Down Top Down Bottom Up Bottom Up

구조적 방법론[edit | edit source]

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

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

객체지향 방법론[edit | edit source]

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

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

CBD 방법론[edit | edit source]

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

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

출처[edit | edit source]