본문으로 바로가기

단위 모듈(Unit Module)

 - 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것

 - 구현되는 하나의 기능을 단위 기능이라고 부름

 - 두 개의 단위 모듈이 합쳐질 경우 두 개의 기능을 구현

 - 독립적인 컴파일이 가능, 다른 모듈에 호출되거나 삽입되기도 함

 - 단위 기능 명세서 작성 -> 입·출력 기능 구현 -> 알고리즘 구현

 


단위 기능 명세서 작성

 - 설계 과정에서 작성하는 기능 및 코드 명세서나 설계 지침과 같이 단위 기능을 명세화한 문서들을 의미

 - 복잡한 시스템을 단순하게 구현하기 위한 추상화 작업이 필요

 - 대형 시스템을 분해하여 단위 기능별로 구분하고 각 기능들을 계층적으로 구성하는 구조화 과정을 거침

 - 모듈의 독립적인 운용과 한 모듈 내의 정보가 다른 모듈에 영향을 주지 않도록 정보 은닉의 원리를 고려


·출력 기능 구현

 - 단위 기능 명세서에서 정의한 데이터 형식에 따라 ·출력 기능을 위한 알고리즘 및 데이터를 구현

 - ·출력 기능 구현 시 사용자 인터페이스인 CLI, GUI와의 연동을 고려


알고리즘 구현

 - ·출력 데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능한 언어를 이용하여 모듈로 구현

 - 구현된 단위 기능들이 사용자의 요구와 일치하는지 확인하는 과정이 필요

 - 단위 기능의 종류에 따라 디바이스 드라이버 모듈, 네트워크 모듈, 파일 모듈, 메모리 모듈, 프로세스 모듈 등으로 구분


단위 모듈 테스트

 - 프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 정확히 수행하는지 검증하는 것

 - 화이트박스 테스트와 블랙박스 테스트 기법을 사용

 - 단위 모듈 테스트의 기준은 단위 모듈에 대한 코드이므로 시스템 수준의 오류는 잡아낼 수 없음


화이트박스 테스트(White Box Test)

 - 모듈의 원시 코드를 오픈시킨 상태에서 원시 코드의 논리적인 모든 경로를 테스트하는 방식
    - 화이트박스 테스트의 종류
      - 제어 흐름 테스트(Control flow testing)
      - 데이터 흐름 테스트(Data flow testing)
      - 분기 테스트(branch testing)
      - 경로 테스트(path testing)


블랙박스 테스트(Black Box Test)

 - 소프트웨어 검사 방법 중 하나로 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법
   - 블랙박스 테스트의 종류
     - 동치 분할 검사(Equivalence Partitioning Testing)
     - 경계값 분석(Boundary Value Analysis)
     - 원인-효과 그래프 검사(Cause-Effect Graphing Testing)
     - 오류 예측 검사(Error Guessing)
     - 비교 검사(Comparison Testing)


유지보수

 - 개발된 소프트웨어의 품질을 항상 최상의 상태로 유지하기 위한 것

 - 소프트웨어 개발 단계 중 가장 많은 노력과 비용이 투입되는 단계

 - 유지보수를 용이하게 하려면 시험 용이성, 이해성, 수정 용이성, 이식성 등이 고려되어야 함

 - 수리(Corrective) 보수, 적응(Adaptive) 보수, 완전화(Perfective) 보수, 예방(Preventive) 보수 활동으로 구분

수정(Corrective)보수
= 수리, 교정, 정정, 하자 보수
- 시스템을 운영하면서 검사 단계에서 발견하지 못한 잠재적 오류를 찾아 수정하는 활동
적응(Adaptive)보수
= 환경 적응, 조정 보수
- 소프트웨어의 수명 기간 중에 발생하는 환경의 변화를 기존의 소프트웨어에 반영하기 위하여 수행하는 활동
- 운영체제나 컴파일러와 같은 프로그래밍 환경의 변화와 주변장치 또는 다른 시스템 요소가 향상되거나 변경될 때 대처할 수 있는 유지보수
완전화(Perfective)보수
= 기능 개선, 기능 보수
- 소프트웨어의 본래 기능에 새로운 기능을 추가하거나 성능을 개선하기 위해 소프트웨어를 확장시키는 활동
- 유지보수 활동 중 가장 큰 업무 및 비용을 차지
예방(Preventive)보수 - 장래의 유지보수성 또는 신뢰성을 개선하거나 소프트웨어의 오류 발생에 대비하여 미리 예방 수단을 강구하는 활동

유지보수의 부작용

 - 코딩 부작용 : 코딩 내용의 변경으로 발생하는 부작용

 - 자료 부작용 : 자료나 자료 구조의 변경으로 인해 발생하는 부작용

 - 문서화 부작용 : 자료 코드에 대한 변경이 설계문서나 사용자가 사용하는 메뉴얼에 적용되지 않을 때 발생하는 부작용


외계인 코드(Alien Code)

 - 아주 오래 전에 개발되거나 참고문서 또는 개발자가 없어 유지보수 작업이 매우 어려운 프로그램을 의미