TOPCIT 1.2 내용정리

박현지·2021년 2월 3일
0

TOPCIT

목록 보기
2/2
post-thumbnail

1.2 소프트웨어 재사용

1.2.1 소프트웨어 재사용

가) 소프트웨어 재사용 개요

  1. 소프트웨어 재사용 배경
  • 소프트웨어 위기로 인한 품질 및 생산성 저하
  • 소프트웨어 품질 확보 노력
  1. 소프트웨어 재사용 정의
  • 사용 소프트웨어 개발관련 지식을 표준화하여 개발 생산성을 높이기 위해 반복적으로 사용하기에 적합하도록 구성하는 방법
  • 품질을 인정받았던 소프트웨어 전체 또는 일부분을 다시 사용하여 신규 개발되는 소프트웨어의 신뢰성을 높이고 개발 비용을 감소시켜주는 방안
  1. 소프트웨어 재사용의 목적

    신뢰, 확장, 생산

  • 신뢰성 : 사전 성능 검증됨
  • 확장성 : 검증된 기능 기반으로 upgrade 용이
  • 생산성 : 전체적 개발 프로세스 향상

나) 소프트웨어 재사용의 대상

  • 일반적인 지식
  • 설계 정보
  • 데이터 정보
  • 프로그램 코드

다) 소프트웨어 재사용의 원칙

모범하소 자신일

  • 모듈성 : 최소한의 결합도 및 최대한의 응집력
  • 범용성 : 일반적으로 활용될 수 있는 정도
  • 하드웨어 독립성 : 가능한 실행 하드웨어 기종과 무관해야 함
  • 소프트웨어 독립성 : OS 또는 DBMS와는 무관하게 운영해야 함
  • 자기문서화 : 모듈의 정확한 기능, 인터페이스를 기술
  • 신뢰성 : 품질을 믿고 사용할 수 있어야 함
  • 일반성 : 많은 개발자들에게 공통적으로 필요하고 사용 가능해야 함

+)
OS (Operating System) : 운영체제
DBMS (Data Base Management System) : 데이터베이스 관리 시스템

라) 실무에서 재사용 구현의 문제점

  • 공통으로 사용할 수 있는 소프트웨어 모듈을 발견하기 어려움
  • 소프트웨어 표준화 부족
  • 부품이 개발비가 더 들 수 있음
  • 효과가 오랜 시간 경과 후 나타남
  • 현존한느 소프트웨어 부품에서 재사용 부품의 추출이 비현실적

마) 소프트웨어 재사용의 장애요인 및 대책

  1. 소프트웨어 재사용의 장애요인
  • 관리자와 개발 담당자들의 거부 반응
  • 사회적 또는 법적 장애
  1. 소프트웨어 재사용의 장애요인 제거 대책
  • 기술적 방안 : 재사용 소프트웨어 라이브러리 구축, 개발 방법론 활용
  • 관리, 제도적 방안 : 보상제도의 확립, 조직의 변화

바) 재사용 적용 시 고려사항

  • 생산성 향상이 가능해야 함
  • 재사용 문화 조성을 위한 제도 정착
  • 초기 투자를 통한 재사용 환경 구축
  • 도구의 지원이 있어아 함
  • 지속적인 라이브러리의 개선 및 보강

사) 소프트웨어 재사용의 효과

  • 높은 품질의 소프트웨어 생산을 위한 공유 및 활용효과
  • 시스템 개발에 다한 정보공유

1.2.2 역공학

가) 역공학의 정의

  • 소프트웨어 공학의 한 분야로 이미 만들어진 시스템을 역으로 추척하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 일
  • 시스템을 이해하여 수정하는 소프트웨어 유지보수 단계에서 수행
  • 소프트웨어 생명주기 마지막 단계에서 얻어지는 포로그램 또는 문서 등을 이용, 초기 단계의 산출물에 해당하는 정보 또는 문서를 만들어내는 일

<역공학의 Input / Output>

  • Input : 원시코드, 작업절차, 라이브러리 등 입출력 형태의 자료 문서
  • Output : 구조도, 자료 흐름도, 제어 흐름 그래프, 개체 관계도

나) 역공학이 필요한 이유

  • 가동중인 시스템의 유지보수가 어려운 경우
  • 시스템 효율이 저하된 경우
  • 파일 시스템으로 개발된 업무를 관계형 데이터베이스로 재구축 하려는 경우
  • 기본 메인 프레임을 다운사이징 하는 경우

다) 역공학의 장점

  • 개발된 소프트웨어의 분석을 도와줌
  • 유지보수성 향상
  • 기존 시스템 정보를 Repository에 보관하여 CASE 사용을 용이하게 함

라) 역공학의 종류

  • 논리역공학 : 원시코드로부터 정보를 추출해 물리적 설계 정보저장소에 저장
  • 자료역공학 : 기존 데이터베이스를 수정하거나 새로운 데이터베이스 관리시스템으로 전이하는 역할 수행
profile
꾸준히 기록하는 딩딩의 개발일지

0개의 댓글