Challenges/정보처리기사

[정보처리기사]2.소프트웨어 개발/애플리케이션 테스트 관리/소프트웨어 재공학, 소프트웨어 재사용

뚱요 2021. 8. 30. 21:59
반응형

소프트웨어 재공학, 소프트웨어 재사용

1.  소프트웨어 재공학(Reengineering)

 - 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것

 - 유지보수 비용이 소프트웨어 개발 비용의 대부분을 차지하기 때문에 유지보수의 생산성 향상을 통해 소프트웨어 위기를 해결

 - 기존 소프트웨어의 데이터와 기능들의 개조 및 개선을 통해 유지보수성과 품질을 향상

  1.1 ) 재공학의 이점

  • 소프트웨어 품질 향상
  • 소프트웨어 생산성 향상
  • 소프트웨어 수명 연장
  • 소프트웨어 오류 감소
  • 유지보수성

1.2) 종류

  1. 분석(Analysis): 명세서 확인 ,동작 확인, 대상 선정
  2. 이식(Migration): 다른 Os, HW 환경 사용하도록 변환
  3. 재구성(Restructuring)
  4. 역공학(Reverse Eng): 설계정보 추출 및 절차 설계 표현, 데이터 구조 정보 추출
    • 기존 시스템 분석 작업
    • 원시 코드 분석, SW 관계 파악, 설계 정보 재발견 다시 제작

 

1.3) SW 재공학이 SW 재개발에 비해 갖는 장점  20년 3회 기출문제

- 위험부담 감소

- 비용 절감

- 시스템 명세의 오류억제

- 개발시간의 감소

 

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

- 이미 개발되어 인정 받은 SW를 다른 소프트웨어 개발이나 유지에 사용

- 소프트웨어 개발의 품질과 생산성을 높이기 위한 방법

 - 기존에 개발된 소프트웨어와 경험, 지식 등을 새로운 소프트웨어에 적용함

(1) 합성 중심(Composition-Based, = 블록 구성 방법)
전자 칩과 같은 소프트웨어 부품, 즉 블록을 만들어서 끼워 맞춰 소프트웨어를 완성시키는 방법

(2) 생성 중심(Generation-Based, =패턴 구성 방법)
추상화 형태로 써진 명세를 구체화하여 프로그램을 만드는 방법

 

3. 유지보수(maintenance)

3.1 )유지보수 유형

(1)적응 유지보수(adaptive)

SW 운용하는 환경 변화에 대응, SW 변경하는 경우 OS, 컴파일러와 같은 프로그래밍 환경의 변화와 주변장치 또는 달느 시스템 요소 향상/ 변경 될 때 대처 가능한 유지보수 형태

(2)예방 유지보수(Preventive)

SW 재공학 관련

장래의 유지보수성/ 신뢰성 개선/ SW 오류 발생 대비 미리 예방수단 강구

(3)완전한 유지보수(Perfective)

수행중인 기능의 수정, 기능 추가 , 전반적 기능 개선 요구를 받고 수행되는 유형  $$$

(4)수정 유지보수(Corrective)

SW 테스팅 동안 밝혀지지 않은 모든 잠재적 오류 수정하기 위한 보수 형태로 오류의 수정, 진단 포함

 

반응형