샘성의 iOS 개발 일지

[정보처리기사] 2. 재공학 본문

정보처리기사/소프트웨어 설계

[정보처리기사] 2. 재공학

SamusesApple 2023. 11. 9. 14:55
728x90

1. 재공학

1-1) 소프트웨어 재공학(Software Reengineering)의 개념

💡 “기존의 시스템을 변경 혹은 재구조화 해서 사용하자.”

  • 소프트웨어 위기를 유지보수의 생산성으로 해결하려는 방법을 뜻함

 

1-2) 재공학의 장점, 목표, 과정

  • 장점
    • 개발 시간 및 비용 감소
    • 품질 향상 (기존에 존재하는 것을 다시 만든 것이니까)
    • 신뢰성 향상 (기존에 사용했기 때문에 검증됨)
    • 구축 방법에 대한 지식의 공유, 프로젝트 실패 위험 감소
  • 목표
    • 최우선 목표는 소프트웨어 유지보수성 향상이다.
    • 복잡한 시스템을 다루는 방법 구현, 다른 뷰의 생성, 잃어버린 정보 복구 및 제거
    • 재사용을 수월하게 해서 소프트웨어의 수명을 연장시키자.
  • 과정
    • 분석(사용 가치 여부 분석) → 구성(구조 리펙토링) → 역공학(기존에 있는 것을 뜯어보기) → 이식(실제 필요한 곳에 적용시키기)

 

2. 역공학

💡 소프트웨어를 분석하여 소프트웨어 개발 과정, 데이터 처리 과정을 설명하는 설계 정보를 재문서화 하는 것

 

3. CASE

💡 Computer Aided Software Engineering의 약자, 소프트웨어 개발의 자동화 도구

 

3-1) CASE가 제공하는 기능

  • 개발을 신속하게 할 수 있음, 오류 수정이 쉬움 → 소프트웨어 품질 향상됨
  • 소프트웨어 생명주기의 전체 단계를 연결해주고 자동화 및 통합 도구를 제공함
  • 소프트웨어 시스템의 문서화 및 명세화를 위한 그래픽 기능 제공
  • 소프트웨어 개발 단계 표준화 기할 수 있음, 자료 흐름도 작성 기능 제공
  • 모델들 사이의 모순 검사 기능 제공
  • 원천 기술
    • 구조적 기법
    • 프로토타이핑 기술
    • 정보 저장소 기술

 

3-2) CASE 사용의 장점

  • 기간 단축, 비용 감소 → 생산성 향상
  • 소프트웨어 설계, 구현, 유지보수를 모두 관리할 수 있는 문서화 도구

 

3-3) CASE의 분류

  • 상위 CASE
    • 요구 분석 및 설계 단계 지원
  • 하위 CASE
    • 소스 코드 작성, 테스트, 문서화 과정 지원
  • 통합 CASE
    • 소프트웨어 개발 주기 전체 과정 지원

3-4) 요구사항 분석을 위한 CASE 도구

  • SADT (Structured Analysis and Design Technique)
    • 시스템 정의, 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위해 사용되어 온 구조적 분석 및 설계 도구
    • SoftTech사에서 개발함
    • 구조적 요구분석을 위한 블록 다이어그램을 채택한 자동화 도구
728x90