<개발환경 구축>
*개발 도구의 분류 4가지
1) 구현 도구: 개발자의 코드 작성과 디버킹, 수정 등과 같은 작업을 지원하는 도구. 프로그램 개발할 때 가장 많이 사용되는 도구
2) 테스트 도구: 코도의 기능 검증과 전체의 품질을 높이기 위해 사용하는 도구. 코드의 테스트, 테스트에 대한 계획, 수행 및 분석 등의 작업 가능
3) 형상관리 도구: 개발자들이 작성한 코드와 리소스 등 산출물에 대한 버전 관리를 위한 도구. 프로젝트 진행 시 필수로 포함되는 도구.
4) 빌드 도구: 작성한 코드의 빌드 및 배포를 수해하는 도구. 각각의 구성요소와 모듈에 대한 의존성 관리를 지원
<공통 모듈 구현>
*응집도 유형
-우연적 응집도(Coincidental Cohesion): 모듈 내부의 각 구성요소가 연관이 없을 경우
-논리적 응집도(Logical Cohesion): 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
-시간적 응집도(Temporal Cohesion): 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우
-절차적 응집도(Procedural Cohesion): 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우
-통신적 응집도(Communication Cohesion): 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있을 경우
-순차적 응집도(Sequential Cohesion): 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우
-기능적 응집도(Functional Cohesion): 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
=> 응집도가 높아질수록 품질이 좋아진다.
*결합도 유형
-내용 결합도(Content Coupling): 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
-공통 결합도(Common Coupling): 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우
-외부 결합도(External Coupling): 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우
-제어 결합도(Control Coupling): 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
-스탬프 결합도(Stamp Coupling): 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우
-자료 결합도(Data Coupling): 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우
=> 결합도가 낮을수록 품질이 좋아진다.
<공통 모듈 테스트>
*공통 모듈 테스트의 종류
-화이트박스 테스트: 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식
-메서드 기반 테스트: 공통 모듈의 외부에 공개된 메서드 기반의 테스트. 메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트를 수행.
-화면 기반 테스트: 사용자용 화면이 있는 경우, 각각의 화면단위로 단위모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트를 수행.
-테스트 드라이버(Driver) / 테스트 스텁(Stub): 기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우 테스트 드라이버, 테스트 스텁을 통해 테스트를 수행. 테스트 드라이버는 하위 모듈은 있지만 상위 모듈은 없는 경우 사용하는 기법이며, 테스트 스텁은 상위 모듈은 있지만 하위 모듈은 없는 경우 사용.
'Computer Science' 카테고리의 다른 글
[정보처리기사 실기] 11. 응용 SW 기초 기술 활용 (0) | 2021.07.16 |
---|---|
[정보처리기사 실기] 12. 제품소프트웨어 패키징 (0) | 2021.07.13 |
정보처리기사 실기 기출 문제 (2020년 1회~2021년 1회) (0) | 2021.07.12 |
2021년 2회차 정보처리기사 실기 문제/답안 복기 (2021.07.10 시행) (0) | 2021.07.10 |
[git] pull request 하는 방식 2가지: write 권한이 있을 때 / 없을 때 (0) | 2021.06.09 |