소프트웨어 개발 방법론

정보처리기사

목록 보기
20/100

소프트웨어 개발 방법론


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

  • 소프트웨어 개발, 유지보수, 운영 등 소프트웨어 생명주기의 각 단계에서 필요한 기법, 도구, 절차를 체계적으로 정리하고 표준화한 방법론.
  • 목적: 소프트웨어의 생산성과 품질 향상.

2. 주요 소프트웨어 개발 방법론

2.1. 구조적 방법론 (Procedural/Structured Approach)

  • 개념: 프로그램을 기능별로 모듈화하여 개발.
  • 목표: 이해하기 쉽고 검증 가능한 코드를 작성.
  • 특징:
    • 분할과 정복 원리 적용.
    • 프로그램을 작게 나누고 이를 조합하여 전체 시스템 구성.
  • 적용 시기: 1960년대부터 주로 사용.
  • 절차:
    1. 타당성 검사
    2. 계획 수립
    3. 요구사항 분석
    4. 설계
    5. 구현
    6. 테스트
    7. 운영 및 유지보수

2.2. 정보공학 방법론 (Information Engineering Methodology)

  • 개념: 자료 중심으로 프로그램을 개발.
  • 목적: 회사의 업무 데이터를 중심으로 프로그램 개발.
  • 특징:
    • 업무 중심 설계.
    • 대규모 정보 시스템 구축에 적합.
  • 절차:
    1. 정보 전략 계획 수립
    2. 업무 영역 분석
    3. 설계
    4. 구축

2.3. 객체지향 방법론 (Object-Oriented Approach)

  • 개념: 현실 세계의 객체를 기반으로 시스템 개발.
  • 목적: 재사용성, 확장성, 유지보수성 향상.
  • 구성 요소:
    • 객체(Object): 현실 세계의 독립적인 실체.
    • 클래스(Class): 유사한 객체를 묶은 집합.
    • 메시지(Message): 객체 간 상호작용.
  • 기본 원칙:
    • 캡슐화: 데이터와 함수를 묶음.
    • 정보 은닉: 내부 정보 보호.
    • 추상화: 필요한 정보만 노출.
    • 상속성: 상위 클래스 속성과 기능을 하위 클래스에서 사용.
    • 다형성: 동일 연산이 다양한 형태로 동작.
  • 절차:
    1. 분석
    2. 설계
    3. 구현
    4. 테스트
    5. 인도

2.4. 컴포넌트 기반 방법론 (Component-Based Development)

  • 개념: 기존에 개발된 모듈(컴포넌트)을 재사용하여 시스템 개발.
  • 특징:
    • 재사용성 극대화.
    • 개발 시간 단축 및 비용 절감.
    • 유지보수와 확장 용이.
  • 절차:
    1. 개발 준비
    2. 분석
    3. 설계
    4. 구현
    5. 테스트
    6. 전개
    7. 인도

2.5. 제품 계열 방법론 (Product Line Approach)

  • 개념: 특정 제품군에 공통된 기능을 정의하고 개발.
  • 적합 대상: 임베디드 소프트웨어.
  • 특징:
    • 특정 제품에 특화된 기능 제공.
    • 영역 공학응용 공학으로 구분.
    • 영역 공학:
      • 핵심 자산 구현.
      • 영역 분석 및 설계.
    • 응용 공학:
      • 제품 요구 분석, 설계, 구현.
  • 장점:
    • 다양한 제품군에 쉽게 적용 가능.
    • 효율적인 자원 활용.

3. 요약

  • 소프트웨어 개발 방법론은 효율성과 품질 향상을 목표로 함.

  • 각 방법론은 목적과 특징이 다르며, 상황에 따라 적합한 방법론 선택이 중요.

  • 주요 방법론:

    • 구조적 방법론: 모듈화, 정형 절차.
    • 정보공학 방법론: 데이터 중심.
    • 객체지향 방법론: 재사용성, 확장성 강조.
    • 컴포넌트 기반 방법론: 재사용과 생산성.
    • 제품 계열 방법론: 특정 제품군에 적합.
  • 개발 절차는 대부분 분석 → 설계 → 구현 → 테스트 → 인도의 흐름을 따름.

0개의 댓글