ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소프트웨어 유지보수, 역공학, 재공학
    Topcit/소프트웨어 개발 2018. 6. 11. 15:16
      1. 소프트웨어 유지보수
        1. 소프트웨어 유지보수 정의
          1. SDLC 마지막 단계
          2. 오류 수정, 원래 요구 정정, 기능, 수행력을 증진시키는 일련의 작업
        2. 소프트웨어 유지보수 목적
          1. 소프트웨어의 성능 개선, 하자보수, 새로운 환경에서 동작할 있도록 이식, 수정, 일련의 예방조치
        3. 소프트웨어 유지보수 종류
          1. 사유에 의한 유지보수
            1. 수정 유지보수 : 오류로 인한 유지보수, 처리, 수행, 구현, 오류 식별
            2. 적응 유지보수 : 데이터 환경과 인프라 환경 변화 적응을 위한 처리
            3. 완전화 유지보수 : 새로운 기능 추가, 변경, 품질을 위한 유지보수
          2. 시간에 의한 유지보수
            1. 계획 유지보수 : 주기적 유지보수
            2. 예방 유지보수 : 예방 차원의 유지보수
            3. 응급 유지보수 : 유지보수 사후 승인 필요
          3. 대상에 의한 유지보수
            1. 데이터, 프로그램 보수 : 데이터의 변환 필요 처리
            2. 문서화 보수 : 문서 표준의 변경이나 기타 필요 처리
            3. 시스템 유지보수 : 시스템의 유지보수
        4. 소프트웨어 유지보수 절차
          1. 절차
            1. 현행 소프트웨어 이해
              1. 프로그램 구조 분석, 변수, 자료구조, 응용분야, 업무지식
            2. 요구사항 분석
              1. 유지보수 유형, 전략 수립
              2. 변경 프로그램 대상 파악
            3. 영향범위 파악 수정
              1. 소프트웨어 변경으로 기존 기능 영향
              2. 프로그램 변경, 수정
            4. 테스트, 유지보수
              1. 문서 수정, 형상 관리, 유지 보수 수행
          2. 유지보수 용이성
            1. 소프트웨어 유지보수의 난이도를 나타낸다.
            2. 이용 용이성 : 어플리케이션, 프로그램이 얼마나 이해하기 용이한가
            3. 수정 용이성 : 어플리케이션, 프로그램을 수정하는데 얼마나 용이한가
            4. 시험 용이성 : 어플리케이션, 프로그램의 정확성을 보여주는 과정이 얼마나 용이한가
            5. 개선법
              1. 분석 활동 : 고객의 요구사항, 제약사항을 결정하고, 개발하려는 제품의 타당성을 밝힌다.
              2. 표준 지침 : 소프트웨어 유지 보수가 용이하도록 다양한 종류의 표준, 지침을 제정한다.
              3. 설계 활동 : 명확성, 모듈성, 변경 용이성을 강조하여 활용한다.
              4. 구현 활동 : 표준 구조와 코딩 스타일을 적용해야 한다.
              5. 보조 문서 : 유지 보수 활동에 필요한 지침서와 테스트 설명서가 필요하다.
        5. 소프트웨어 유지보수 조직 유형
          1. 소프트웨어 유지보수 활동 주체
            1. 요청
              1. MRF 작성
              2. CR 작성
            2. 분석
              1. 유지보수 유형 분류, 심각성 판단
              2. 유지보수 요청 내용 분석, 영향도 분석
              3. 유지보수 우선 순위 결정
            3. 승인
              1. 분석 내용에 따라 유지보수 진행 여부 승인
              2. 유지 보수 실행에 대한 승인
            4. 실행
              1. 유지보수 대상에 대한 유지보수 실행
              2. 소프트웨어 변경 보고서 작성
              3. 관련 문서 변경
          2. 소프트웨어 유지보수 조직 유형
            1. 작업의 형태에 따른 조직
              1. 사용자의 요구를 분석하고 시스템을 설계하고 구현하고 테스트
              2. 팀은 서로 분리된 책임과 역할 수행
              3. 프로그래밍 지식과 기술에 대해 전문화됨
            2. 어플리케이션 분야에 따른 조직
              1. 응용 어플리케이션에 따라서 조직을 분류
              2. 응용 지식의 개발에 대해 전문성을 가짐
            3. 생명주기에 따른 조직
              1. 개발과 유지보수로 조직을 구분
              2. 개발, 유지보수 기술의 전문화
              3. 개발, 유지보수 조직 조정 비용 필요
      2. 역공학, 재공학, 재사용
        1. 소프트웨어 3R
          1. 저장소(Repository)를 기반으로 역공학(Reverse Engineering), 재공학(Reengineering), 재사용(Reuse)을 통해 소프트웨어 생산성을 극대화하는 기법
          2. 3R 필요성
            1. 유지보수 오류, 재사용으로 인한 비용 절감
            2. 소프트웨어 개발 생산성 향상
            3. 시스템의 이해, 변경, 테스트 용이
            4. 소프트웨어 변경 요구사항에 대한 신속한 대처
          3. 소프트웨어 3R 개념도
          1. 3R 구성
            1. 역공학
              1. 구현된 소프트웨어를 분석 -> 설계 -> 요구사항 분석
            2. 재공학
              1. 역공학으로 구조화된 소프트웨어를 기반으로 다시 추상개념으로 현실화
            3. 재사용
              1. 재공학을 통해 구현 사용중인 소프트웨어의 사용
        1. 역공학의 개요
          1. 역공학의 정의
            1. 이미 만들어진 시스템을 역으로 추적하여 처음의 문제나 설계 기법 등의 자료를 얻어내는
          2. 역공학이 필요한 경우
            1. 기존에 가동중인 시스템의 유지보수가 어려운 경우
            2. 변경이 빈번하여 시스템 효율이 저하된 경우
            3. 파일 시스템으로 개발된 업무를 관계형 데이터베이스로 재구축 하려는 경우
            4. 기본 메임 프레임을 다운사이징 하는 경우
          3. 장점
            1. 상용화 되거나 개발된 소프트웨어의 분석을 도와준다.
            2. 기존 시스템의 자료와 정보를 설게 수준에서 분석 있어 유지 보수성을 향상
            3. 기존 시스템 정보를 저장소에 보관하여 CASE 사용을 용이하게 한다.
          4. 역공학의 입력, 출력
            1. 입력
              1. 원시코드
              2. 목적코드
              3. 작업절차
              4. 라이브러리
            2. 출력
              1. 구조도
              2. 자료 흐름도
              3. 제어 흐름 그래프
              4. 개체 관계도
          5. 역공학의 종류
            1. 논리 역공학
              1. 원시코드로부터 정보를 추출하여 물리적 설계 정보 저장소에 저장
              2. 물리적 설계 정보를 얻어내는 역할 수행
            2. 자료 역공학
              1. 기존 데이터베이스를 수정하거나 새로운 데이터베이스 관리 시스템으로 전이하는 역할 수행
        2. 재공학의 개요
          1. 재공학의 정의
            1. 기존 소프트웨어의 데이터, 기능들을 변경, 개선하여 유지보수의 용이성, 품질 개선, 유지보수 비용감소
            2. 기존 시스템을 프로그래밍 표준에 맞춤, 고수준 언어로 재구성, 하드웨어에 이식
          2. 재공학을 적용하는 목적
            1. 현재 시스템의 유지보수 향상
            2. 시스템 이해와 변경 용이
            3. 유지 보수 비용, 시간 절감
            4. 표준의 준수, CASE 사용 용이
          3. 소프트웨어 재공학의 단계
            1. 원시코드로부터 정보 추출
            2. 역공학, 시스템 형상, 검증
            3. 순공학, 설계 최적화
            4. 원시코드 생성
          4. 재공학의 적용 방법
            1. 재구조화 방법 : 소프트웨어 부품을 라이브러리에 모아 놓고, 새로운 소프트웨어 개발 필요한 부품을 탐색 결합
            2. 재모듈화 방법 : 시스템의 모듈 구조를 변화, 시스템 구성요소의 클러스터 분석, 결합도와 관련됨
            3. 의미론적 정보추출 : 코드 수준이 아닌 문서 수준의 복구 방법
        3. 소프트웨어 재사용의개요
          1. 소프트웨어 재사용의 정의
            1. 사용 소프트웨어 개발 관련 지식을 표준화하여 개발 생산성을 높이기 위하여 반복적으로 사용하기에 적합하도록 구성하는 방법
          2. 소프트웨어 재사용의 이점
            1. 소프트웨어 생산의 TCO 절감
            2. 높은 품질의 소프트웨어 생산을 위한 공유 활용 효과
            3. 시스템 개발에 대한 정보공유 프로젝트의 산출물 공유
          3. 소프트웨어 재사용의 목적
            1. 신뢰성 : 기능, 안정, 속도 등의 사전 성능 검증됨
            2. 확장성 : 검증된 기능 기반으로 업그레이드 용이
            3. 생산성 : 비용, 시간, 위험 전체적 개발 프로세스 향상
            4. 사용성 : 독립된 컴포넌트 로서의 조립성 제공
            5. 유지보수성 : 품질 개선, 오류 수정, 업그레이드 용이
            6. 적응성 : 독립된 컴포넌트 로서 새로운 프로세스 적응 용이

       


    댓글