SW공학의 발전적 추세

0

정보처리기사

목록 보기
21/100

소프트웨어 공학의 발전적 추세


1. 소프트웨어 재사용 (Software Reuse)

  • 개념: 기존에 개발된 소프트웨어의 코드, 모듈, 기능 등을 새로운 소프트웨어 개발 시 재활용하여 사용하는 방법.
  • 목적:
    • 개발 시간 단축
    • 비용 절감
    • 실패 위험성 감소
    • 프로그램 복잡도 완화
    • 신뢰성, 성능, 효율성 향상

재사용 방법

  1. 합성 중심:
    • 기존의 모듈, 블록(부품)을 조립하여 새로운 소프트웨어를 완성.
    • 예: 블록 구성 방식.
  2. 생성 중심:
    • 추상화된 명세를 구체화하여 새로운 프로그램을 생성.
    • 예: 패턴 구성 방식.

2. 소프트웨어 제공하기 (Software Reengineering)

  • 개념: 기존 소프트웨어의 구조, 성능, 품질을 개선하여 새로운 요구사항에 맞추는 과정.
  • 목적:
    • 유지보수 생산성 향상
    • 품질 및 성능 개선
    • 시스템 수명 연장

특징

  • 기존 시스템을 완전히 폐기하지 않고 개조 및 개선.
  • 새로운 기능 추가 및 성능 향상.

장점

  1. 품질 향상
  2. 생산성 증가
  3. 수명 연장
  4. 오류 감소

예시

  • 기존 소프트웨어의 문서화 부족으로 인한 유지보수 어려움을 해결하기 위해 소스 코드 분석 후 문서를 생성(역공학).
  • 기존 소프트웨어의 개선 후 재구축.

3. 케이스 (CASE: Computer-Aided Software Engineering)

  • 개념: 소프트웨어 개발의 전 과정(요구 분석, 설계, 구현, 검사 등)을 컴퓨터와 전용 도구를 통해 자동화.
  • 목적:
    • 생산성 향상
    • 표준화된 개발
    • 개발 품질 향상

특징

  1. 자동화 범위:
    • 부분 자동화: 특정 단계만 자동화.
    • 전체 자동화: 생명주기 전체를 자동화.
  2. 지원 기능:
    • 생명주기 전 단계 연결
    • 다양한 개발 모형 지원
    • 그래픽 기반 설계 도구 제공

4. 소프트웨어 발전의 주요 이점

  1. 개발 효율성:
    • 기존 소프트웨어의 재활용(재사용, 제공하기)으로 시간과 비용 절감.
    • CASE 도구로 개발 과정 자동화.
  2. 품질 및 신뢰성:
    • 검증된 모듈 사용으로 오류 감소.
    • 제공하기를 통해 기존 시스템 품질 개선.
  3. 생산성 증가:
    • 반복적인 작업 최소화.
    • 효율적인 개발 환경 제공.
  4. 유지보수 비용 절감:
    • 제공하기를 통해 유지보수 성과 향상.
    • 문서화를 통해 유지보수의 용이성 확보.

정리

  • 소프트웨어 재사용: 기존 소프트웨어의 일부를 활용해 새로운 소프트웨어 개발.
  • 소프트웨어 제공하기: 기존 소프트웨어를 개선하여 성능 및 품질을 향상.
  • CASE 도구: 소프트웨어 개발의 자동화를 통해 효율성과 품질을 향상.

소프트웨어 개발 과정에서 이러한 방법론과 도구를 활용하면 개발 비용과 시간을 줄이고 품질을 높이는 효과를 얻을 수 있습니다.

0개의 댓글