본문 바로가기

백엔드 개발자 기록 일람/정보처리기사 준비 기록

재공학

소프트웽어 재공학(Software Reengineering)의 개념

소프트웨어의 위기를 개발의 생산성이 아닌 유지보수의 생산성으로 해결하려는 방법을 의미한다.현재는 시스템을 변경하거나 재구조화(Restructuring)하는 것이다. 재구조화는 재공학의 한 유형으로 사용자의 요구사항이나 기술적 설계의 변경없이 프로그램을 개선하는 것이다. 저런 재공학 관정에서 가장 연관 깊은 유지보수 유형은 예방 유지보수이다.

 

★재공학의 과정.

- 분석(Analysis) : 기존 소프트웨어의 명세서를 확인하여 소프트웨어의 동작을 이해하고 재공학  대상을 선정하는 것이다.

- 재구성( Restructuring) 재구조화라고도 하는 것. 소프트웨어 구조를 향상시키기 위해 코드를 재구성하는 것이다.

- 역공학(Reverse Engineering) 원시 코드를 분석하여 소프트웨어 관계를 파악하고 기존 시스템의 설계 정보를 재발견하여 다시  제작하는 작업이다.

- 이식(Migration) : 기존 소프트웨어 시스템을 새로운 기술 또는 하드웨어  환경에서  사용할 수 있도록 변환하는 작업이다.

 

☆리팩토링(Refactoring) 

소프트웨어를 보다 쉽게 이해할 수   있고, 적은 비용으로  수정할 수 있도록 겉으로 보이는 동작을 변화 없이 내부 구조를 변경하는 것을 의미한다.

 

CASE(Computer Aided Softwaer Engineering)

소프트웨어 개발 과정에서  사용되는 요구분석, 설계, 구현, 검사 및 디버깅 과정을 컴퓨터와  전용 소프트웨어 도구를 사용하여 자료 흐름도등의 다이어그램을 쉽게 작성하게 해주는 자동화 기술을 제공한다. 또한 작업 과정 및 데이터 공유를 통해 작업자 간의 커뮤니케이션을 증대한다.

 

☆CASE가 제공하는 기능

소트프웨어 개발 기간 단축 및 개발 비용을 절약하여 소프트웨어 생산성을 향상시키며, 자동화된 검사를 통해 소프트웨어 품질이  향상 시킬 수 있다. 또한 프로그램의 유지보수가 편해지고 모듈의 재사용성이 향상된다. 이는 소프트웨어 개발 주기의 표준안 확립, 소프트웨어 개발 기법의 실용화, 문서화의 용이성과 시스템 수정 및 유지보수 축소의 효과를 얻을 수 있다.

 

◆CASE의 분류

상위(Upper) CASE: 요구 분석 및 설계  단계 지원(모델 간 모순 검사 기능, 모델 오류 검증 기능, 자료 프름도 작성기능)

하위(Lowe) CASE: 소스 코드 작성, 테스트, 문서화 과정 지원

통합(Intergrate) CASE : 소프트웨어 개발 주기 전체 과정 지원.

 

요구사항 분석을 위한 CASE 도구.

요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 도구를 의미한다. 표준화와 보고를 통한 문서화 품질 개선. 변경이 주는 영향 추적의 용이성, 명세에 대한 유지보수 비용 축소, 교차 참조도와 보고서를 통한 결함, 생략, 불일치 등의 발견 용이성  등의 특성을 가지며 DB를 모두가 이용 가능하다는 점에서  분석자들 간의 적절한 조정 기능을 제공한다.

 

요구사항 분석을 위한 CASE 도구

SADT(Structured Analysis and Design Technique)

소프트디치 사에서  개발한 것으로 시스템의 정의, 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위해 널리이용되어 온 구조적 분석 및 설계 도구이다. 구조적 요구분석을 하기 위해 블록 다이어그램을 채택한 자동화  도구이다.

SREM(Software Requirement Engineering Methodology) = RSL/REVS
 TRW 사가 우주 국방 시스템 그룹에 의해 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 할 목적으로 개발한 것으로, RSL과 REVS를 사용하는 자동화 도구이다.
RSL(Requirement Statement Language) : 요소, 속성, 관계, 구조들을 기술하는 요구사항 기술 언어
REVS(Requirement Engineering and Validation System) : RSL로 기술된 요구사항들을 자동으로 분석하여 요구사항 분석 명세서를 출력하는 요구사항 분석기
PSL/PSA
미시간 대학에서 개발한 것으로 PSL과 PSA를 사용하는 자동화 도구이다.
PSL(Problem Statement Language) : 문제(요구사항) 기술 언어
PSA(Problem Statement Analyze) : PSL로 기술한 요구사항을 자동으로 분석하여 다양한 보고서를 출력하는 문제 분석기
TAGS(Technology for Automated Generation of Systems)
시스템 공학 방법 응용에 대한 자동 접근 방법으로, 개발 주기의 전 과정에 이용할 수 있는 통합 자동화 도구이다.
구성 : IORL, 요구사항 분석과 IORL 처리를 위한 도구, 기초적인 TAGS 방법론
IORL : 요구사항 명세 언어

'백엔드 개발자 기록 일람 > 정보처리기사 준비 기록' 카테고리의 다른 글

현황 시스템 분석  (0) 2024.01.18
SCRUM  (1) 2024.01.16
애자일 개발 방법론과 XP  (0) 2024.01.15
소프트웨어 설계 방법론  (0) 2024.01.11
소프트웨어 공학의 개념  (0) 2024.01.05