티스토리 뷰
- 유지보수
- 형상 관리
- 리엔지니어링
- 유지보수 도구
유지보수
- 유지보수
→ 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 |
- Total
- Today
- Yesterday
- 셀룰러네트워크
- 소프트웨어 공학
- Compiler
- Extension to Regular Expression
- 인터네트워크
- Instant-NGP
- lan
- Instnat-ngp
- 혼잡제어
- NGP-ERROR
- 디자인 패턴
- 컴퓨터네트워크
- ngp 실행
- Transition Function
- ngp 오류
- 비동기전송모드
- 소프트웨어공학
- Regular Expression
- 컴파일러
- CUDA VISUAL STUDIO 2022 지원
- 클래스 모델링
- 백준 2437
- 인터넷프로토콜
- Ambiguity
- 회선교환
- 전송계층프로토콜
- Proper CFL
- 설계 원리
- ATM
- 아키텍처 설계
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |