반응형
소프트웨어 재사용 (Software Reuse)
- 소프트웨어 재사용은 이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것입니다.
- 소프트웨어 개발의 품질과 생산성을 높이기 위한 방법입니다.
- 기존에 개발된 소프트웨어와 경험, 지식 등을 새로운 소프트웨어에 적용합니다.
- 소프트웨어 재사용의 이점
- 개발 시간과 자원을 절약할 수 있습니다. 기존에 개발한 소프트웨어의 일부를 재사용함으로써 새로운 소프트웨어를 빠르게 개발할 수 있습니다.
- 품질을 향상시킬 수 있습니다. 재사용된 소프트웨어는 이전에 검증되었으며 안정성이 입증되었기 때문에 높은 품질을 가질 가능성이 높습니다.
- 비용을 절감할 수 있습니다. 재사용된 소프트웨어를 활용함으로써 개발 비용을 줄일 수 있습니다.
- 리스크를 감소시킬 수 있습니다. 재사용된 소프트웨어는 이전에 사용된 경험이 있으며 문제가 해결된 소프트웨어이기 때문에 개발 과정에서 발생할 수 있는 리스크를 줄일 수 있습니다.
- 표준을 준수할 수 있습니다. 재사용된 소프트웨어는 이미 표준을 준수하고 있기 때문에 표준을 준수하는 소프트웨어를 개발하는 데 도움이 됩니다.
- 소프트웨어 재사용 방법
- 합성 중심(Composition-Based) : 전자 칩과 같은 소프트웨어 부품, 즉 블록을 만들어서 끼워 맞춰 소프트웨어를 완성시키는 방법으로, 블록 구성방법이라고도 합니다.
- 생성 중심(Generation-Based) : 추상화 형태로 써진 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법이라고도 합니다.
소프트웨어 재공학 (Sofrware Reengineering)
- 소프트웨어 재공학은 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 츄가하여 소프트웨어 성능을 향상시키는 것입니다.
- 유지보수 비용이 소프트웨어 개발 비용의 대부분을 차지하기 때문에 유지보수의 생산성 향상을 통해 소프트웨어 위기를 해결하는 방법입니다.
- 기존 소프트웨어의 데이터와 기능들의 개조 및 개선을 통해 유지보수성과 품질을 향상시킵니다.
- 소프트웨어 재공학의 이점
- 소프트웨어의 품질 향상
- 소프트웨어의 생산성 증가
- 소프트웨어의 수명 연장
- 소프트웨어의 오류 감소
- 소프트웨어 재공학의 절차
- 계획 : 재공학 과정을 계획하고, 재공학의 이유를 파악하고, 범위를 정의하며 목표를 수립합니다.
- 분석 : 기존 시스템을 분석하고, 코드, 문서 및 기타 자산을 검토합니다. 시스템의 장점과 단점을 파악하고 수정이 필요한 부분을 식별합니다.
- 설계 : 분석을 기반으로 새로운 또는 업데이트된 소프트웨어 시스템의 설계를 수행합니다. 변경 사항을 식별하고 구현 계획을 수립합니다.
- 구현 : 변경 사항을 적용하여 기존 코드를 수정하고, 새로운 기능을 추가하며, 문서 및 기타 자산을 업데이트합니다.
- 테스트 : 변경된 소프트웨어 시스템을 테스트하여 새로운 요구사항과 명세에 부합하는지 확인합니다.
- 배포 : 재공학된 소프트웨어 시스템을 배포하고 최종 사용자가 사용할 수 있도록 합니다.
반응형
CASE(Computer Aided Software Engineering)
- CASE는 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것입니다.
- 객체지향 시스템, 구조적 시스템 등 다양한 시스템에서 활용되는 자동화 도구(CASE Tool : 소프트웨어 공학과 관련된 작업 중에서 하나의 작업을 자동화하는 패키지를 의미)입니다.
- 소프트웨어 생명 주기의 전체 단계를 연결하고 자동화하는 통합된 도구를 제공합니다.
- 소프트웨어 개발 도구와 방법론이 결합되었으며, 정형화된 구조 및 방법을 소프트웨어 개발에 적용하여 생산성 향상을 구현합니다.
- CASE의 주요 기능
- 소프트웨어 생명 주기 전 단계의 연결
- 다양한 소프트웨어 개발 모형 지원
- 그래픽 지원
반응형
'정보처리기사 준비 > 실기 공부' 카테고리의 다른 글
개발 프로젝트 일정 계획 (2) | 2023.07.09 |
---|---|
소프트웨어 비용 산정 기법 - 하향식, 상향식 / 수학적 산정 기법 (0) | 2023.07.09 |
소프트웨어 개발 방법론의 정의와 종류 (구조적, 정보공학, 객체지향 등) (0) | 2023.07.09 |
패키지 다이어그램 (Package Diagram) (0) | 2023.07.09 |
시퀀스(Sequence), 커뮤니케이션(Communication), 상태(State) 다이어그램 (2) | 2023.07.02 |