자격증/정보처리기사
필기 - 2. 소프트웨어 개발_ch2. 통합 구현
권동동
2024. 7. 3. 15:03
1. 모듈 구현
(1) 단위 모듈 구현
1️⃣ 단위 모듈 구현의 개념
- 단위 모듈별로 분할하고 추상화 하여 성능을 향상시키고, 유지보수를 효과적으로 하기 위한 구현 기법
2️⃣ 단위 모듈 구현의 원리
원리 | 설명 |
정보 은닉 | 어렵거나 변경 가능성이 있는 모듈을 타 모듈로부터 은폐 |
분할과 정복 | 복잡한 문제를 분해, 모듈 단위로 문제 해결 |
데이터 추상화 | 각 모듈 자료 구조를 액세스하고 수정하는 함수내에 자료 구조의 표현 내역을 은폐 |
모듈 독립성 | 낮은 결합도와 높은 응집도를 가짐 |
3️⃣ 구현 단계에서 작업 절차
순서 | 절차 | 설명 |
1 | 코딩 계획 | 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계 |
2 | 코딩 | 논리적으로 결정한 문제해결 방법을 특정 프로그래밍 언어를 사용하여 구현하는 단계 |
3 | 컴파일 | 작성한 코드를 다른 언어의 코드(주로 기계어)로 변환하는 단계 |
4 | 테스트 | 기능이 요구사항을 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 검사하고 평가하는 단계 |
4️⃣ 재사용 기법
재사용 종류 | 설명 | |
재공학 | 기존 소프트웨어를 버리지 않고 기능을 개선시키거나 기능을 새로운 소프트웨어로 재활용하는 소프트웨어 재사용 기법 | |
분석 | 기존 소프트웨어 명세서를 확인하여 소프트웨어 동작을 이해하고, 재공학 대상을 선정하는 작업 | |
재구조 | 상대적으로 같은 추상적 수준에서 하나의 표현을 다른 형태로 바꾸는 작업 | |
역공학 | 기존 소프트웨어를 분석하여 설계도를 추출하거나 다시 만들어내는 작업 | |
이식 | 소프트웨어 재공학의 주요 활동 중 기존 소프트웨어 시스템을 새로운 기술 또는 하드웨어 환경에서 사용할 수 있도록 변환하는 작업 | |
재개발 | 기존 시스템 내용을 참조하여 완전히 새로운 시스템을 개발, 기존 시스템에 새로운 기능을 추가, 기존 시스템의 기능을 변경하는 기법 |
재사용 규모에 따른 분류 | 설명 |
함수와 객체 | 클래스나 메서드 단위의 소스 코드를 재사용 |
컴포넌트 | 컴포넌트 자체에 대한 수정 없이 인터페이스를 통해 통신하는 방식으로 재사용 |
애플리케이션 | 공통된 기능들을 제공하는 애플리케이션을 공유하는 방식으로 재사용 |
(2) 단위 모듈 테스트
1️⃣ 단위 모듈 테스트의 개념
- 단위 모듈 테스트는 모듈의 개별적인 코드 단위가 예상대로 작동하는지 확인하는 기법
2️⃣ 단위 모듈 테스트의 종류
블랙박스 테스트 (= 명세 기반 테스트) |
프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트 |
화이트박스 테스트 (= 구조 기반 테스트) |
단위 모듈 테스트의 가장 기본적 방법은 모듈 내부의 소스를 보면서 수행하는 테스트 |
2. 통합구현 관리
(1) IDE 도구
1️⃣ IDE 도구의 개념
- 개발과 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어
2️⃣ IDE 도구의 기능
기능 | 설명 |
개발환경 지원 | 개발언어를 통해 어플리케이션 개발환경 제공 |
컴파일 | 문법에 어긋나는지 확인하고 기계어로 변환하는 기능 제공 |
디버깅 | 프로그래밍 과정에 발생하는 오류 및 비정상적인 연산 제거 |
외부 연계 | 외부 형상, 배포관리 기능과 연계되어 자동 배포등이 가능 |
DB연동 | JDDB, ODBC 등을 통한 데이터베이스 연동 |
(2) 협업 도구
1️⃣ 협업 도구의 개념
- 다른 개발자와 개발 관련 소통을 위해서 지속적으로 커뮤니케이션을 수행하기 위한 도구
2️⃣ 협업 도구의 분류
- 문서 공유 - 구글드라이브
- 소스 공유 - 깃허브
- 아이디어 공유 - 에버노트
- 디자인 공유 - 레드 펜
- 마인드 맵 - 마인드 마이스터
(3) 형상 관리 도구
1️⃣ 형상 관리 도구의 개념 ❗
- 형상 관리는 소프트웨어 생명주기 동안 발생하는 변경사항을 체계적으로 관리하여 소프트웨어의 품질 보증을 향상시키는 관리적 활동
- 형상 관리는 개발 과정의 변경 사항을 관리
- 형상 관리에서 관리 항목으로는 프로젝트 요구 분석서, 소스 코드, 운영 및 설치 지침서가 있다
- 유지보수 단계뿐만 아니라 개발 단계에도 사용 가능
2️⃣ 형상 관리 절차
순서 | 절차 | 설명 |
1 | 형상 식별 | 형상 관리 계획을 근거로 형상 과닐의 대상이 무엇인지 식별하는 활동 |
2 | 형상 통제 | 형상 항목의 변경사항에 대하여, 형상통제위원회가 승인/기각/보루를 결정하고, 승인된 변경사항의 이행을 체계적으로 통제하는 활동 |
3 | 형상 감사 | 형상 관리 계획대로 형상 관리가 진행되고 있는지, 형상 항목의 변경이 요구사항에 맞도록 제대로 이뤄졌는지 등을 살펴보는 활동 |
4 | 형상 기록 | 소프트웨어 형상 및 변경 관리에 대한 각종 수행결과를 기록하는 활동 |
3️⃣ 형상 관리 도구의 개념
- 소프트웨어 변경 사항을 관리하기 위해서 형상 식별, 통제, 감사, 기록을 수행하는 도구
- Git
4️⃣ 형상 관리 도구의 기능
체크인 | 개발자가 수정한 소스를 형상 관리 저장소로 업로드 하는 기능 |
체크아웃 | 형상 관리 저장소로부터 최신 버전을 개발자 PC로 다운로드 받는 기능 |
커밋 | 소스를 형상 관리 저장소에 업로드 후 최종적으로 업데이트가 되었을 때 형상 괸리 서버에서 반영하도록 하는 기능 |
5️⃣ 형상 관리 도구 사례
csg - ssg 쓱을 쌔게 말하면
- CVS
- 중앙 집중형 서버 저장소를 두고 클라이언트가 접속해서 버전 관리를 실행
- SVN
- 중앙 집중형 클라이언트-서버 방식
- Git
- 리눅스 커널의 개발을 위해 만듦