정보처리기사 실기 0101 - 소프트웨어 공학

Sol Kim·2024년 10월 28일
0
post-thumbnail

요구사항 확인

현행 시스템 분석하기

소프트웨어 공학

A. HIPO : Hierarchy plus Input Process Output

기본 모델로 입력/처리/출력으로 구성되는 시스템 분석 및 설계시스템 문서화용 기법으로, 일반적으로 하향식 소프트웨어 개발을 위한 문서화 도구이다.

  • 일반적 구성 : 가시적 도표(Visual Table of Contents) + 총체적(Overview) 다이어그램 + 세부적(Detail) 다이어그램
  • 구성 II : 구조도(가시적 도표, VToC) + 개요 + 도표(Index Diagram) + 상세 도표(Detail Diagram)
  • 특징 : 기능과 자료의 의존 관계를 동시에 표현할 수 있으며, 보기/이해하기 쉬우며 유지보수가 용이하다

가시적 도표 (도식 목차, VToF)

  • 시스템의 전체 기능과 흐름을 보여주는 Tree 구조

총체적 도표 (Overview Diagram, 2.0 Update stock Example)

  • 프로그램을 구성하는 기능을 기술한 것
  • 입력, 처리, 출력에 대한 전반적 정보 제공

세부적 도표

  • 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술함

B. V-Model (1980, Paul Rook)

Waterfall Model에 시스템 검증과 테스트 작업을 강조한 모델로,Waterfall Model처럼 Sequential Process인 것 처럼 보이나, Diagram에서 볼 수 있듯 상하방으로 Linear 하지 않고 V형의 프로세스를 가짐.

특징

  • 세부적 프로세스로 구성되어 신뢰도 높은 시스템 개발에 효과적
  • 개별 단계의 작업을 확인하기 위해 테스팅 작업을 수행 ( V영역 우측)
  • 생명 주기 초반부터 테스트 작업을 지원
  • 코드뿐 아니라 요구사항 및 설계 결과도 테스트 가능
  • 테스트 작업을 단계별로 구분하여 책임이 명확해짐

V-Model과 Waterfall Model의 비교

항목 Waterfall V-Model
비용 Low-Cost High-Cost
복잡도 단순함 비교적 복잡함
유연성 요구분석 이후 수정 어려움 비교적 유연함
Phases 이전 단계로 되돌아갈 수 없음 회귀에 제약이 없음
실행 프로세스 둘 모두 Sequential Execution Process 임
선형성 단계의 진행이 선형적임 선형적 진행이 아님
재사용성 요구분석에 의존적이므로 재사용이 어려움 Waterfall에 비해 일부 재사용 가능
테스팅 개발과정 종료 후 일괄 테스트 첫 스테이지부터 단계별 테스트 진행
신뢰도 낮음 높음
프로세스 단계적/지속적 동시 진행
결함 V-Model에 비해 결함 수가 적음 Waterfall에 비해 결함 수가 많음
요구사항 소프트웨 개발의 처음부터 요구사항 명세가 필요함
고객 참여 감소 비교적 높음
개발 중 테스트 불가능 가능
결함 식별 테스트 단계에서 수행 처음부터 수행 가능
디버깅 마지막 단계 후 최종적 수행 각 단계별로 수행 가능
사용 빈도 잘 사용하지 않음 비교적 높음

C. 재공학

  1. 소프트웨어 재사용 (Software Resusability)
    : 이미 개발이 완료된 소프트웨어의 전체 또는 일부분을 다시 사용하여 새롭게 개발하는 기법으로, Class/Object 등의 요소로 인해 재사용성이 크게 향상됨(1990's)

  2. 재사용의 장점

  • 개발 시간 및 비용 감소
  • 품질 향상
  • 생산성 향상
  • 신뢰성 향상
  • 구축 방법에 대한 지식의 공유
  • 프로젝트 실패 위험 감소
  1. 소프트웨어 재공학 ( Software Reengineering )

분석(Analysis) -> 구성 (Restructuring) -> 역공학(Reversing) -> 이식 (Migration)

  • 재공학의 한 유형으로, 소프트웨어 재사용을 기반으로 보다 나은 시스템을 구축하고 새로운 기능을 추가해 스프트웨어 성능을 향상시키는 기법임
  • 소프트웨어 위기를 개발의 생산성이 아닌 유지보수의 생산성으로 해결하려는 방법을 의미함
  • 데이터와 기능들의 개조 및 개선을 통해 유지보수의 용이성을 향상시키고자 함
  • 현재의 시스템을 변경하거나 재구조화(Restructuring)하는 것
  • 사용자의 요구사항이나 기술적 설계의 변경 없이(혹은 기술적 설계만을 변경하여) 프로그램을 개선하는 것

Target

  • 유지보수성 향상이 최우선 목표
  • 소프트웨어 수명 연장
  • 복잡한 시스템을 다루는 방법의 구현
  • 다른 뷰의 생성
  • 재사용 용이성
  • 잃어버린 정보의 복구/제거

D.역공학

  • 현재 프로그램으로부터 Data, Architecture, 절차에 관한 분석 및 설계 정보를 추출하여 재발견/Re-Create하는 작업
  • 재문서화 또한 가장 간단하고 오래된 역공학으로 볼 수 있음
profile
POST : Power-On Study Thoroughly

0개의 댓글