본문 바로가기
CS/소프트웨어 공학 에센셜

유지보수

by k-mozzi 2021. 6. 27.
반응형
Preface

 

예방 유지보수의 유형을 공부하던 도중 재공학을 통해 소프트웨어에 새로운 기능을 추가할 수도 있고, 성능을 향상시킬 수도 있다는 글을 보며 '역공학과 재공학은 예방 유지보수보단 완전 유지보수의 유형으로 보는 것이 맞지 않을까?'라는 생각이 들었다.

 

소프트웨어 공학을 공부하면 할 수록 개발 프로세스에서 사용되는 용어들은 어느 한 가지 의미에 국한되는 것이 아닌, 다양한 개념을 포함하여 사용된다는 것을 느낄 수 있다.

 

처음엔 한 단어가 높은 활용도를 갖는 것이 헷갈리고 불편하다는 생각을 했지만, 시간이 지나며 '정확한 의미를 파악(이해)한 몇 가지 단어만으로 다양한 개념을 관통할 수 있을 것 같다'라는 생각이 들었다.

 

앞으로도 개념들을 특정 의미로 구체화하는 것이 아닌, 가능한 다양한 관점으로 추상화하여 생각할 수 있도록 노력하자.


- 소프트웨어는 변경을 수용할 수 있으며, 적응성과 확장성을 갖도록 설계되어야 한다.


1. 유지보수의 정의

 

- 여러 변경사항에 대해 적응하는 활동이자 변화에 대비하는 과정이다.

 

- 유지보수 유형

1) 수정(corrective) 유지보수 = 하자보수 : 잘못된 것을 수정

2) 적응(adaptive) 유지보수 : 새로운 환경에 적응

3) 완전(perfective) 유지보수 : 새로운 기능 추가 → 가장 많은 비용

4) 예방(prevenitive) 유지보수 : 미래의 시스템 관리


2. 역공학과 재공학

 

- 역공학 : 원시 코드를 이용하여 원시 코드 이상의 추상화된 표현으로 나타내는 것

 

- 재공학 : 기존 시스템을 이해하여 새로운 형태로 변경하는 것

 

- BPR(Business Process Reengineering) : 조직의 혼돈을 피하고 유용하며 혁신적인 결과를 얻고자 근본적인 변경을 시도하는 것

→ 소프트웨어 프로세스 개선(SPI : Software Precess Improvement)와 동일한 관점


3. 유지보수 절차와 조직

 

- 유지보수 요청은 유지보수 요청서(MRF : Modification Request Form) 및 변경 요청서(change request)에 의해 이루어진다.

 

- 변경 요청서 : 외부 문서

 

- 소프트웨어 변경 보고서(SCR : Software Change Report) : 내부 문서

1) 변경 요청을 수용하기 위해 요구되는 시간과 노력의 크기

2) 요구되는 수정의 성질

3) 요청의 우선순위 및 문제의 심각도

4) 수정 이후의 사후 자료 etc.

 

 

 

 

 

참고 문헌 : 윤청, 소프트웨어 공학 에센셜(생능출판), 2019, p.466~472.

728x90
반응형

댓글