#5 S/W 공학의 발전적 추세

1, 소프트웨어 재사용(Software Reuse)
: 이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는 것
: 소프트웨어 개발의 품질과 생산성을 높이기 위함
: 클래스, 객체 등의 소프트웨어 요소는 소프트웨어 재사용성을 크게 향상

- 재사용이 가능한 요소
: 전체 프로그램, 부분 코드, 응용 분야에 관한 지식, 논리적인 데이터 모형, 프로세스 구조, 시험 계획 등

- 재사용의 이점
: 개발 시간과 비용 단축, 품질 향상, 생산성 향상

- 재사용 도입의 문제점
: 어떤 것을 재사용할 것인지 선정
: 시스템에 공통적으로 사용되는 요소들을 발견
: 프로그램 표준화 부족

- 재사용 방법
: 재사용 방법에는 합성중심, 생성 중심 방법이 있음


2. 소프트웨어 재공학(Software Re-engineering)
: 새로운 요구에 맞도록 기존 시스템을 이용하기 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것
: 유지보수 생산성 향상을 통해 소프트웨어 위기를 해결하는 방법

- 재공학의 목표
: 유지보수성 및 기술 향상, 생산성 향상, 소프트웨어 수명 연장, 소프트웨어 요소들을 추출하여 정보 저장소에 저장하는 것을 주된 목적으로 하여, 다음과 같은 목표를 가진다
: 복잡한 시스템을 다루는 방법 구현, 다른 뷰의 생성, 잃어 버린 정보의 복구 및 제거, 부작용의 발견, 고수준이 추상, 재사용 용이

- 소프트웨어 재공학의 주요 활동
: 분석(Analysis), 개조(Restructuring), 역공학(Reverse Engineering), 이식(Migration)

* 유지보수 측면에서 예방 유지 보수의 위기를 해결하고자 함

- 역공학
:  기존 소프트웨어를 분석하여 개발 과정과 처리과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어 내는 작업, 정공학과 반대 방향으로 기존 코드를 복구하는 방법
: 현재 프로그램으로 부터 데이터, 아키텍처, 그리고 절차에 관한 분석 및 설계 정보를 추출하는 과정
: 코드 역공학 = 코드 -> 흐름도 -> 자료 구조도 -> 자료 흐름도 순으로 재성
: 데이터 역공학 = 코드 -> 자료사전 -> 개체 관계도 순으로 재생


3. CASE
: 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
: 소프트웨어 개발의 모든 단계에 걸쳐 일관된 방법론을 제공하는 자동화 도구들을 지원하고, 개발자들은 이 도구를 이용하여 소프트웨어 개발의 표준화를 지향하며, 자동화의 이점을 얻을 수 있게 해준다

- CASE 사용의 이점
: 소프트웨어 개발의 시간 단축, 비용 절감, 품질 향상, 간편한 유지보수
: 생산성 향상 , 생산, 운용 활동을 효과적으로 관리, 통제
: 품질과 일관성을 효과적으로 제어, 표준화 확립
: 모듈의 재사용성 향상, 문서화도 쉽게 할 수 있음

- CASE 분류

1. 상위(Upper) CASE
: 소프트웨어 생명 주기의 전반부에서 사용되는 것으로, 문제를 기술하고 계획하며 요구 분석과 설계 단계를 지원하는 CASE
: SREM, PSL/PSA, SERA, FOUNDATION

2. 하위(Lower) CASE
: 소프트웨어 생명 주기의 하반부에서 사용되는 것으로 코드의 작성과 테스트, 문서화 하는 과정을 지원하는 CASE
: 구문 중심 편집기, 코드 생성기 등

3. 통합(Integrate) CASE
: 소프트웨어 생명 주기에 포함되는 전체 과정을 지원하기 위한 CASE, 공통의 정보 저장 장소와 통일된 사용자 인터페이스를 사용하여 도구들을 통합
: IEF, POWERTOOLS, TAGE/IORL, TEAMWORK 등

4. 정보 저장소
: 소프트웨어를 개발하는 과정 동안 모아진 정보를 보관하여 관리하여 관리하는 곳
: CASE 정보 저장소, CASE 데이테버이스, 요구사항 사전, 저장소라고 함
: 초기 소프트웨어 개발 환경에서는 사람이 정보 저장소 역할을 했지만 오늘날에는 데이터베이스가 정보 저장소 역할을 담당

- 사용의 이점
: 도구들과 생명 주기 활동, 사용자들, 응용 소프트웨어들 사이의 통신과 소프트웨어 시스템의 정보 공유를 향상
: 시스템 구성 요소들과 시스템 정보가 정보 저장소에 의해 관리되므로 유지 보수성 향상
: CASE 도구들 간에 정보 교환이 쉽고, 사용자가 쉽게 새로운 도구를 추가 가능
: 통합 CASE 도구 사용 가능, 생명 주기 정보 재사용, 시스템의 이식과 변환을 용이

* 자동화 예측 도구들 중 Rayleigh-Norden 곡선과 Putnam의 예측 모델에 기반을 둔 것은
SLIM이다.

댓글 없음:

댓글 쓰기