[정처기 실기] 「1」 | 소프트웨어 구축 - (1.6) 소프트웨어 유지보수, 제품 소프트웨어 패키징
[정처기 실기] 「1」 | 소프트웨어 구축 - (1.6) 소프트웨어 유지보수, 제품 소프트웨어 패키징
> 「1」 소프트웨어 구축
「2」 데이터베이스 구축
「3」 운영체제
「4」 네트워크
「5」 정보보안
「6」 신기술 용어
1. 소프트웨어 공학 개념
2. 프로젝트 계획 / 분석
3. 소프트웨어 설계
4. 화면 설계
5. 서버 프로그램 구현
6. 인터페이스 구현
7. 객체지향 구현
8. 애플리케이션 테스트 관리
> 9. 소프트웨어 유지보수
> 10. 제품 소프트웨어 패키징
9. 소프트웨어 유지보수
소프트웨어 유지보수
소프트웨어 유지보수의 개념
○ 개발 완료 이후부터 폐기될 때까지 지속적으로 수행되는 작업
유지보수(Maintenance)의 구분
○ 수정 보수(Corrective) : 오류 수정
○ 적응 보수(Adaptive) : 환경 변화
○ 향상 보수(Perfective) : 기능 추가
○ 예방 보수(Preventive) : 잠재적 오류 대비
유지보수 관련 용어
○ 레거시 시스템(Legacy System) : 오래된 기술, 방법론, 컴퓨터 시스템, 소프트웨어
○ 외계인 코드(Alien Code) : 오래되어 유지보수가 어려운 코드
○ 스파게티 코드(Spaghetti Code) : 복잡하게 얽힌 프로그래밍 소스코드
○ 코드 스멜(Code Smell) : 소스코드 내 존재하는 잠재적인 문제
10. 제품 소프트웨어 패키징
국제 표준 제품 품질 특성
제품 품질 국제 표준
○ 소프트웨어 개발 공정 각 단계에서 산출되는 제품이 사용자 요구를 만족하는지 검증하기 위한 국제 표준
○ ISO/IEC 9126 소프트웨어 품질 특성
- 기능성(Functionality)
- 신뢰성(Reliability)
- 사용성(Usability)
- 효율성(Efficiency)
- 유지보수성(Maintainability)
- 이식성(Portability)
○ ISO/IEC 14598 평가 특성
- 반복성(Repetability) - 동일 평가자가 동일 제품 테스트
- 재현성(Reproducibility) - 다른 평가자가 동일 제품 테스트
- 공정성(Impartiality) - 평가의 편향 없음
- 객관성(Objectivity) - 평가자의 주관성에 영향받지 않는 평가
○ ISO/IEC 12119 구성요소
- 제품 설명서
- 사용자 문서
- 실행 프로그램
○ ISO/IEC 25000 9126 + 14598
- ISO/IEC 2500n - 품질 일반 부분
- ISO/IEC 2501n - 품질 특성
- ISO/IEC 2502n - 품질 측정 부분
- ISO/IEC 2503n - 품질 요구사항
- ISO/IEC 2504n - 품질 평가 부분
프로세스 품질 국제 표준
○ 소프트웨어 개발 프로세스 / 관련 업체의 프로세스 관리 능력을 평가, 개선하는 데 사용
○ ISO/IEC 12207 구성
- 기본 생명주기 프로세스 : 획득, 공급, 개발, 운영, 유지보수
- 지원 생명주기 프로세스 : 문서화, 형상관리, 품질보증, 검증, 확인
- 조직 생명주기 프로세스 : 관리, 기반구조, 개선, 교육훈련
○ ISO/IEC 15504(SPICE)
- 프로세스 수행능력 평가 표준 프레임워크
- SPICE 프로세스 능력 수준
: 0 | 불안정 단계(Incomplete) - 미구현 / 목표 미달성
: 1 | 수행 단계(Performed) - 프로세스 수행 / 목적 달성
: 2 | 관리 단계(Managed) - 프로세스 수행 계획 / 관리
: 3 | 확립 단계(Established) - 표준 프로세스의 사용
: 4 | 예측 단계(Predictable) - 프로세스의 정량적 이해 / 통제
: 5 | 최적화 단계(Optimizing) - 프로세스의 지속적인 개선
○ CMM(Capability Maturity Model)
- 소프트웨어 개발 업체들의 업무능력 평가 기준을 세우기 위한 평가 모형
- CMM 성숙도 5단계
: 1 | 초기 단계 - 성과를 예측할 수 없는 상태
: 2 | 반복 단계 - 성공적인 프로젝트의 반복
: 3 | 정의 단계 - 프로세스의 기초가 정립되어 발전
: 4 | 관리 단계 - 정량적 프로세스 관리
: 5 | 최적화 단계 - 질적 / 양적 지속적 개선
○ CMMi(Capability Maturity Model Integration)
- 기존 CMM에 프로젝트 관리(PM), 프로큐어먼트(Procurement), 시스템 엔지니어링(SE) 등 요소 추가
- CMMi 성숙도 5단계
: 1 | 초기 단계 - 프로세스를 갖고 있지 않는 조직
: 2 | 관리 단계 - 기본적인 프로세스 가짐
: 3 | 정의 단계 - 표준 프로세스를 보유
: 4 | 정량적 관리 단계 - 프로세스들을 정량적으로 관리
: 5 | 최적화 단계 - 질적 / 양적 지속적 개선
서비스관리 국제 표준
○ 고객에게 IT 서비스 제공하고 관리하기 위한 통합된 관리체계를 적용하여, 고객에게 적절한 통제, 개선된 효과 / 개선의 기회 제공
○ 국제 서비스관리 표준
- ISO/IEC 20000 : 고객에게 제공하는 IT 서비스의 수준을 객관적으로 평가
제품 소프트웨어 패키징
애플리케이션 패키징
○ 개발 완료된 소프트웨어를 사용자에게 전달하기 위한 형태로 패키징하는 과정
○ 애플리케이션 패키징의 특징
- 최종 사용자 중심으로 진행
- 신규 / 변경된 소스를 식별, 모듈화하여 패키징
- 버전 관리 / 릴리즈 노트를 통해 지속적으로 관리
- 다양한 사용자 환경에서 호환성 고려하여 패키징
○ 애플리케이션 패키징 수행 순서
- 기능 식별 > 모듈화 > 빌드 진행 > 사용자 환경 분석 > 패키징 적용 시험 > 패키징 변경 개선
애플리케이션 배포 도구
○ 최종 사용자에게 소프트웨어를 전달하는 전체 과정
○ 애플리케이션 배포 도구 활용 시 고려사항
- 반드시 내부 콘텐츠 암호화 / 보안
- 다양한 이기종 연동을 고려
- 사용자 편의성을 위한 복잡성 / 비효율성 문제를 고려
- 제품 소프트웨어의 종류에 적합한 암호화 알고리즘 적용
○ CI / CD
- CI(Continuous Integration) : 지속적인 통합
- CD(Continuous Delivercy / Deployment) : 지속적인 배포
릴리즈 노트
○ 소프트웨어 제품과 함께 배포되는 문서
○ 릴리즈 노트 작성항목 : Header, 개요, 목적, 이슈 요악, 재현 항목, 수정 / 개선 내용, 사용자 영향도, SW 지원 영향도, 노트, 면책 조항, 연락 정보
DRM(Digital Rights Management)
○ 디지털 콘텐츠의 불법 사용을 제한하고 승인된 사용자에게만 콘텐츠 사용을 허용하는 기술
○ DRM의 구성 / 흐름
라이선스 등록 | → → | → → → → | | 클리어링 하우스 | | (Clearing House) | |
→ → → → → → | 라이선스 발급 | |||
↑ | 권한 정책 |
라이선스 |
← ← ← ← ← ← | 요금 지불 | ↓ | |||
↑ ↑ ↑ |
↑ 라이선스 요청 ↑ |
↑ ↑ ↑ |
↓ ↓ ↓ |
|||||
| 콘텐츠 제공자 | |
콘텐츠 등록 → → → → |
| 콘텐츠 분배자 | |
라이선스 요청 ← ← ← ← ← ← |
| 콘텐츠 소비자 | |
||||
패키저 |
콘텐츠 |
메타 데이터 |
유통 시스템 |
콘텐츠 다운로드 → → → → → → |
DRM 컨트롤러 |
보안 컨테이너 |
- 콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자
- 콘텐츠 분배자 : 암호화된 콘텐츠 제공
- 패키저 : 콘텐츠를 메타 데이터와 묶는 기능
- 보안 컨테이너 : 안전한 유통을 위한 전자적 보안 장치
- DRM 컨트롤러 : 콘텐츠의 이용 권한을 통제
- 클리어링 하우스 : 키 관리 / 라이선스 발급 관리
○ DRM 사용 규칙 제어 기술
- 콘텐츠 식별 체계(Identification) : 디지털 콘텐츠에 고유 식별 번호를 부여하여 관리(DOI, URI)
- 메타 데이터(Meta Data) : 콘텐츠에 관한 구조화된 데이터
- 권리 표현 기술(Right Expression) : 콘텐츠에 대한 규칙 설정(XrML), Render(이용) / Transport(교환) / Derivative(변환)
○ 저작권 보호 기술
- 암호화 기술 : 특정 키를 가진 사용자만 콘텐츠 이용
- 위변조 방지(Tamper-Proofing) : 콘텐츠에 무단 조작 시 감지하고 오류 동작을 유발
- 워터마킹(Watermarking) : 콘텐츠에 저작권 정보를 은닉, 워터마킹(불법 복제 방지) / 핑거프린팅(불법 유통 방지)
○ 기술 요소 : 암호화, 키 관리, 식별 기술, 저작권 표현, 암호화 파일 생성, 정책 관리, 크랙 방지, 인증
제품 소프트웨어 매뉴얼 작성
제품 소프트웨어 매뉴얼 작성
○ 사용자가 제품을 처음 설치할 때 참조하는 매뉴얼
○ 제품 소프트웨어 매뉴얼 종류
- 제품 소프트웨어 설치 매뉴얼
- 제품 소프트웨어 사용자 매뉴얼
출처 | 흥달쌤