티스토리 뷰

  • 유지보수
  • 형상 관리
  • 리엔지니어링
  • 유지보수 도구

 

 


유지보수

 

  • 유지보수

 SW 인수 설치 이후 일어나는 작업

→ 개발 기간보다 소요 시간이 길다

4가지 종류의 유지보수가 존재 : 교정형 / 적응형 / 개선형 / 예방형

 

  • Lehman의 원리

 SW는 계속 변경되고 복잡도는 계속 증가한다

 대규모 SW의 유지보수에는 일정한 방향이 있고, 안정화 상태인 경우가 많다

 SW 기능은 계속 증가하고, 피드백을 통해 진화한다.

 진화할 때 친근성을 유지하려고 한다.

 SW가 운영환경에 적응하지 못하면 품질이 떨어진다.

 

  • 개발과 유지보수의 차이

→ 유지보수는 이해/분석 단계에 많은 비용이 발생

→ 통합적이며 이해중심적임

 

  • 유지보수의 접근 방법

 

  • 유지보수에 영향을 주는 요소

 사용자 : 불편, 오류 개선 요청

 환경 : 운용환경, 조직의 변화

 유지보수 프로세스 : 변경 요청, 이해, 변경 효과분석, 리그레션 테스팅

 SW 제품의 지속적인 사용과 변경

 유지보수와 관련된인력

 

  • 유지보수 작업의 문제점과 한계

 SW는 변경이 수시로 일어나고, 문서에 반영하지 않으면 추적이 불가능하다.

 다른 사람이 작성한 프로그램을 이해하기 어려움

 변경을 가정한 설계는 보기 힘듦

 유지보수를 담당하는 프로그래머는 동기부여가 되지 않음 ( 개발에 비해 동기부여가 떨어짐 )

 유지보수를 위해 적극적인 도구를 사용하지 못함 

→ 대부분 테스트나 디버깅 도구 정도의 사용에서 끝남

 

  • 유지보수 작업 단계

형상 관리 잘된 경우 

1. 프로그램 이해 ( 개발 문서 / 사용자 매뉴얼 등을 바탕으로 프로그램을 이해함 )

2. 변경 요구 분석

3.변경 영향 분석

4.리그레션 테스트

 

→ 형상 관리가 안된 경우 

1. 프로그램 이해 ( 원시코드 의존 / 상향식 & 묶음화 원리로 프로그램을 이해함 )

2. 변경 요구 분석

3. 변경 영향 분석

4. 리그레션 테스트

 

  • 유지보수 작업 모델

즉시 수정 모델 / 반복적 개선 모델 / 재사용 중심 모델

 

 


형상 관리

 

 

  • 형상관리

소프트웨어를 이루는 부품의 베이스라인을 정하고 변경을 통제하는 것

 변경에 대해 철저히 관리하는 것

 형상 관리 요소 : 분석서 / 설계서 / 프로그램 ( 원시코드, 목적코드, 명령어&자료&테스트 파일 )  / 사용자 지침서

 

  • 형상관리 절차

1. 소프트웨어 형상 파악

2. 형상 변경 제어

3. 소프트웨어 형상 감사

4. 소프트웨어 형상 상태 보관

 

1. 소프트웨어 형상 파악 

 식별자 / 이름 / 문서 종류 ( 요구 분석서, 설계 문서, 원시 코드, 테스트 케이스

 문서 파일 이름 및 경로 / 저자 / 생성 날짜 / 목표 완성일 / 버전 / 업데이트 이력 / 설명

 SQA ( 품질 보증 책임자 ) / SCM ( 항목 체크 책임자 )

→ 위 형상 요소들을 파악하는 단계

 

2. 형상 변경 제어

2-1. 변경 이유 파악

 이유 : SW 결함 / HW 변경 / 운영 요구 변경 / 고객의 개선 요구 / 예산, 일정의 변경

2-2. 변경 분석

2-3. 변경 제안 준비

 변경의 설명 / 조직 및 개발자 파악 / 변경 이유 / 영향받는 항목 / 필요 노력 / 일정 영향

2-4. 변경 제안의 평가

2-5. 변경 추가

 

3. 형상 감사

 베이스라인을 구축하기 위한 메커니즘 정의 ( 구축 베이스라인 / 승인 베이스 라인 )

 형상 항목 검토 및 확인

 

 


리엔지니어링

 

 

  • 리엔지니어링

 지속적인 변화로 구조가 나빠지는 SW 에 대한 개선

 시스템 , 컴포넌트의 재구조화 과정

 유지보수를 넘어서는 개선을 하는 과정

 

  • 역공학

 시스템을 이루는 부품을 찾고 관계를 파악해 다른 형태로 표현하기 위해 시스템을 분석하는 과정

 경쟁 제품 분석

 

  • 리엔지니어링의 목적

 SW 아키텍처 개선

 SW 복잡도 경감

 변경에 대한 적응성 개선

 성능, 효율, 자원 유용성 개선

 SW 시스템의 유지보수 개선 및 디자인 패턴 적용 

 

  • 리엔지니어링의 추상화

 

  • 리엔지니어링 순서

1. 개선이 필요한 위치 파악

2.개선 전략 선택

3. 제안된 개선 구현

4. 목표를 기준으로 시스템 평가

 

 

 


유지보수 도구

 

 

  • 유지보수 도구의 사용 이점

 도구의 사용을 통해 시간과 노력 감소 가능 

→ 일관성을 유지하고 변경 사항을 공유할 수 있음

역공학 / 메트릭 측정 / 성능 측정 / 정적 분석 / 변경 효과 분석 / 형상 관리 / 리그레션 테스팅 도구 사용

'전공 > 소프트웨어 공학' 카테고리의 다른 글

14. 소프트웨어 공학을 마치며  (0) 2023.07.12
13. 품질 보증  (0) 2023.07.12
11. 테스트  (0) 2023.07.11
10. 구현  (0) 2023.07.11
9. 디자인 패턴 2  (0) 2023.07.07