제품 소프트웨어 패키징, 매뉴얼 작성, 소프트웨어 버전 관리

2022. 5. 30. 16:14카테고리 없음

(1) 애플리케이션 패키징

1. 애플리케이션 패키징이란 

- 개발이 완료된 제품 소프트웨어를 배포하고 설치할 수 있도록 고객에게 전달하기 위한 형태로 제작하고, 설치와 사용에 필요한 내용을 포함하는 매뉴얼을 작성하는 활동

 

2. 애플리케이션 패키징 고려사항

  • 사용자 실행 환경의 이해
  • 사용자 관점에서의 패키징 고려사항(사용자 시스템 환경 정의, UI 제공, 관리 서비스 형태로 제공, 패키징의 변경 및 개선 관리 고려)

3. 애플리케이션 패키징 프로세스

기능 식별 -> 모듈화(기능 및 서비스를 모듈 단위로 분류) -> 빌드 진행(신규 개발 소스 및 컴파일 결과물 준비)  -> 사용자 환경 분석 -> 패키징 적용 시험 -> 패키징 변경 개선

 

 

(2) 애플리케이션 배포 도구

1. 애플리케이션 배포 도구 개념

- 배포를 위한 패키징 시에 디지털 콘텐츠의 지적재산권을 보호하고 관리하는 기능을 제공하며, 안전한 유통과 배포를 보장하는 도구이자 솔루션

 

2. 애플리케이션 배포 도구의 기술요소

기술요소 설명
암호화 콘텐츠 및 라이선스를 암호화하고, 전자서명을 할 수 있는 기술
키 관리 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술
식별 기술 콘텐츠 식별 체계 표현 기술
저작권 표현 라이선스의 내용 표현 기술
암호화 파일 생성 암호화된 콘텐츠로 생성
정책 관리 라이선스 발급 및 사용에 대한 정책표현 관리 기술
크랙 방지 크랙에 의한 콘텐츠 사용 방지 기술
인증 사용의 기준이 되는 사용자 인증 기술

 

3. 애플리케이션 배포 도구 활용 시 고려사항

- 암호화 : 내부 콘텐츠에 대한 암호화 및 보안 고려

- 이기종 연동 : 여러 가지 이기종 콘텐츠 및 단말기 간 DRM 연동 고려

- 복장성 및 비효율성 문제 : 문제를 고려하여 최대한 효율적으로 적용

- 알고리즘 적용 : 제품 소프트웨어의 종류에 맞는 알고리즘을 선택할 것

 

 

(3) 애플리케이션 모니터링 도구

1. 애플케이션 모니터링 도구란

- 제품 소프트웨어를 사용자 환경에 설치한 후 기능 및 성능, 운영 현황을 모니터링하여 제품을 최적화하기 위한 도구

 

2. 기능

- 애플리케이션 모니터링 도구는 변경 관리, 성능 관리 및 정적 분석 등의 기능을 수행한다. 

 

(4) DRM

1. DRM의 개념

- 디지털 콘텐츠에 대한 권리정보를 지정하고 암호화 기술을 이용하여 허가된 사용자의 허가된 권한 범위 내에서 콘텐츠의 이용이 가능하도록 통제하는 기술

 

2. DRM의 특징

  • 거래 투명성 : 저작권자와 유통업자 사이의 거래구조 투명성 제공
  • 사용규칙 제공 : 사용가능 횟수, 유효기간, 사용 환경 등을 정의
  • 자유로운 상거래 제공 : 이메일, 디지털 미디어, 네트워크 등을 통한 자유로운 상거래 제공

 

3. DRM 구성요소

  • 콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자
  • 콘텐츠 소비자 : 콘텐츠를 구매해서 사용하는 주체
  • 콘텐츠 분배자 : 암호화된 콘텐츠를 유통하는 곳이나 사람
  • 클리어링 하우스 : 저작권에 대한 사용 권한, 라이선스 발급 등을 수행하는 곳
  • DRM 콘텐츠 : 서비스하고자 하는 암호화된 콘텐츠
  • 패키저 : 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 도구
  • DRM 컨트롤러 : 배포된 디지털 콘텐츠의 이용 권한을 통제
  • 보안 컨테이너 : 원본 콘텐츠를 안전하게 유통하기 위한 전자적 보안장치

4. DRM 기술요소

  • 암호화 : 콘텐츠를 암호화하고, 전자서명할수 있는 기술
  • 키 관리 : 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술
  • 식별 기술 : 식별 체계 표현 기술(DOI, URI)
  • 저작권 표현 : 라이선스의 내용 표현 기술
  • 암호화 파일 생성 : 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
  • 정책 관리 : 라이선스 발급 및 사용에 대한 정책표현 관리 기술
  • 크랙 방지 : 크랙 사용 방지 기술
  • 인증 : 사용의 기준이 되는 사용자 인증 기술

 

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

 

1. 제품 소프트웨어 매뉴얼 개념

- 매뉴얼은 제품 소프트웨어 개발 단계부터 적용한 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용 등을 문서로 기록한 것이다. 

 

2. 제품 소프트웨어 설치 매뉴얼 구성요소

  • 제품 소프트웨어 개요 : 주요 기능 및 UI 설명
  • 설치 관련 파일 
  • 설치 절차
  • 설치 아이콘
  • 삭제 방법
  • 설치 버전 및 작성자
  • 고객 지원 방법 및 FAQ
  • 준수 정보 & 제한 보증 : 불법 등록 사용 금지 등의 준수 사항 권고

 

(5) 국제 표준 제품 품질 특성

1. 국제 표준 제품 품질 특성이란

- 제품에 대하여 명확하게 정의된 특성을 의미하며, 품질을 평가하는 기준 항목이다.

- 국제 표준화는 ISO/IEC, ITU-T, IEEE를 중심으로 진행된다.

 

2. ISO/IEC 9126의 소프트웨어 품질 특성

  • 기능성 : 명시된 요구와 내재된 요구를 만족하는지
  • 신뢰성 : 성능 수준을 유지할 수 있는지
  • 사용성 : 사용자에 의해 이해되고 학습되고 사용되고 선호될 수 있는지
  • 효율성 : 사용되는 자원의 양에 따라 요구된 성능을 제공하는지
  • 유지보수성 : 소프트웨어 제품이 변경되는 능력
  • 이식성 : 하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력

3. ISO/IEC 14598의 소프트웨어 품질 특성

  • 반복성: 동일 평가자가 평가하면 동일한 결과가 나와야 함
  • 재현성 : 다른 평가자가 동일 사양을 평가하면 유사한 결과가 나와야 함
  • 공정성 : 특정 결과에 편향되지 않아야 함
  • 객관성 : 객관적 자료에 의해서만 평가되어야 함 

 

4. ISO/IEC25000이란

- 소프트웨어 품질 특성 및 품질 평가 방법을 통합한 품질 평가 모델 국제 표준이다.

 

▼ISO/IEC 25000 구성요소

  • 품질 관리 : 가이드라인과  품질평가의 관리에 관한 표준 제시
  • 품질 모델 : 제품 품질 평가의 일반 모델 제시
  • 품질 측정 : 품질측정 메트릭 정의
  • 품질 요구 : 품질 요구사항 설정 프로세스
  • 품질 평가 : 품질평가 절차를 정의

 

5. 소프트웨어 공학의 기본원칙

▷ 소프트웨어 위기 개념 : 여러 원인에 의해 소프트웨어 개발 속도가 하드웨어 개발 속도를 따라가지 모하는 현상

▷ 소프트웨어 공학 : 소프트웨어의 개발, 운용, 유지보수 및 파기에 대한 체계적인 접근 방법

▷ 소프트웨어 공학 관련 법칙 : 브루스의 법칙, 파레토 법칙, 롱테일 법칙

 

 

(6) 소프트웨어 버전 관리 도구

1. 소프트웨어 버전 관리 도구란

- 형상 관리 지침을 활용하여 제품 소프트웨어의 신규 개발, 변경, 개선과 관련된 수정 사항을 관리하는 도구이다. 

 

2. 소프트웨어 버전 관리 도구 유형

  • 공유 폴더 방식 : 매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사하는 방식(RCS)
  • 클라이언트/서버 방식 : 버전 관리 자료가 중앙시스템에 저장되어 관리되는 방식(CVS, SVN, Clear Case)
  • 분산 저장소 방식 : 로컬 저장소와 원격 저장소로 분리된 구조(Git, BitKeeper)

 

(7) 빌드 자동화 도구

1. 빌드 자동화 도구란

- 빌드란 소프트웨어를 생성하고 테스트하고 검사하여 배포하기 위해 수행하는 행위의 집합이다.

- 빌드 자동화 도구란 제품 소프트웨어 실행파일 생성을 자동화하기 위해서 저장소에 있는 소스를 자동적으로 읽어서 빌드한 후 테스트하고 검사하여 실행파일을 만드는 도구이다. 

 

2. 빌드 자동화 구성요소

구성요소 설명 도구
CI 서버 빌드 프로세스를 관리하는 서버 Jenkins, Hudson
SCM 소스 코드 형상 관리 시스템
소스 코드의 개정과 백업 절차를 자동화
SVN, Git
빌드 도구 컴파일, 테스트, 정적 분석 등을 통해 동작 가능한 소프트웨어 생성 Ant, Maven
테스트 도구 작성된 테스트 코드에 따라 자동으로 테스트를 수행해주는 도구 Junit, Selenium
테스트 커버리지 도구 테스트 코드가 대상 소스 코드에 대해 어느 정도 커버하는지 분석하는 도구 Emma
인스펙션 도구 프로그램을 실행하지 않고, 소스 코드 자체로 품질을 판단할 수 있는 정적 분석 도구 CheckStyle,
Cppcheck

 

3. 젠킨스(Jenkins)

- 젠킨스는 자바 기반의 오픈소스로 가장 많이 활용되는 빌드 자동화 도구

- 서블릿 컨테이너 서버 기반으로 구동되는 시스템

- 설치가 쉽고 친숙한 웹 GUI를 가지고 있으며 저장소 부하를 감소시켜주고 실시간 피드백, 분산 빌드, 3rd party플러그인을 통한 확장과 최근 빌드를 제공해 준다.

 

4. 그래들(Gradle)

- 그래들은 그루비와 유사한 도메인 언어를 채용, 현재 안드로이드 앱을 만드는 데 필요한 안드로이드 스튜디오의 공식 빌드 자동화 시스템이다.

- 그래들은 실행할 처리 명령들을 모아 태스크로 만든 후 태스크 단위로 실행한다.