💠기타/정보처리기사

[정처기 실기] 「1」 | 소프트웨어 구축 - (1.6) 소프트웨어 유지보수, 제품 소프트웨어 패키징

2024. 3. 28. 20:54
728x90

[정처기 실기] 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) : 콘텐츠에 저작권 정보를 은닉, 워터마킹(불법 복제 방지) / 핑거프린팅(불법 유통 방지)

○ 기술 요소 : 암호화, 키 관리, 식별 기술, 저작권 표현, 암호화 파일 생성, 정책 관리, 크랙 방지, 인증

 

제품 소프트웨어 매뉴얼 작성

제품 소프트웨어 매뉴얼 작성

○ 사용자가 제품을 처음 설치할 때 참조하는 매뉴얼

○ 제품 소프트웨어 매뉴얼 종류 

  - 제품 소프트웨어 설치 매뉴얼

  - 제품 소프트웨어 사용자 매뉴얼

 

 

 

 

 

 

 

출처 | 흥달쌤

728x90