복잡한 알고리즘은 모듈이라고하는 작은 부분으로 나뉘며, 분할 과정은 모듈화라고 합니다. 모듈화는 알고리즘 설계의 복잡성을 크게 줄이고 프로세스를보다 쉽게 설계하고 구현할 수있게 해줍니다. 모듈 식 프로그래밍은 각 기능이 서로 구별되고 독립적으로 작동하는 프로그램 형태로 프로그램을 설계하고 작성하는 기술입니다. 기능의 내용은 일관된 방식으로 이루어지며 모듈 간의 낮은 결합이 존재합니다.
비교 차트
비교 근거 | 하향식 접근법 | 상향식 접근법 |
---|---|---|
기본 | 거대한 문제를 작은 하위 문제로 분해합니다. | 기본적인 낮은 수준의 문제를 해결하고 더 큰 문제로 통합합니다. |
방법 | 서브 모듈은 개별적으로 분석됩니다. | 캡슐화 할 데이터를 조사하고 정보 은닉의 개념을 의미합니다. |
통신 | 하향식 접근 방식에서는 필요하지 않습니다. | 특정 양의 의사 소통이 필요합니다. |
여분 | 중복 정보 포함. | 리던던시를 제거 할 수 있습니다. |
프로그래밍 언어들 | 구조 / 절차 중심 프로그래밍 언어 (예 : C)는 하향식 방식을 따릅니다. | 객체 지향 프로그래밍 언어 (C ++, Java 등)는 상향식 접근 방식을 따릅니다. |
주로 사용되는 | 모듈 문서화, 테스트 케이스 생성, 코드 구현 및 디버깅 | 테스트 |
하향식 접근법의 정의
탑 다운 방식은 기본적으로 복잡한 문제 또는 알고리즘을 여러 개의 작은 부품 (모듈)으로 나눕니다. 이 모듈들은 결과 모듈이 근본적으로 이해 될 때까지 더 분해되어 더 이상 분해 될 수 없습니다. 일정 수준의 모듈성을 달성 한 후에 모듈의 분해가 중단됩니다. 하향식 방식은 대형 프로그램 모듈을보다 간단하고 작은 모듈로 분리하여 효율적인 방식으로 프로그램을 구성하고 코딩하는 단계적인 프로세스입니다. 이 접근법에서 제어 흐름은 항상 하향 방향입니다. 하향식 접근법은 함수를 사용하여 "C"프로그래밍 언어로 구현됩니다.
따라서 하향식 방법은 추상 설계로 시작한 다음 추가 설계가 필요하지 않을 때까지이 설계를 순차적으로 구체화하여보다 구체적인 수준을 생성합니다.
상향식 접근법의 정의
상향식 접근 방법은 상향식 접근 방식과는 정반대의 방식으로 작동합니다. 처음에는 상위 모듈을 만들기 위해 결합 된 가장 기본적인 부품 설계가 포함됩니다. 하위 모듈과 모듈을 상위 모듈에 통합하는 작업은 필요한 전체 알고리즘을 얻을 때까지 반복적으로 수행됩니다.
Bottom-up 접근법은 추상화 레이어로 기능합니다. 상향식 접근 방식의 기본 적용은 각 기본 모듈을 먼저 테스트 한 후 테스트하여 더 큰 모듈과 병합합니다. 테스트는 특정 저수준 함수를 사용하여 수행됩니다.
하향식 접근법과 상향식 접근법의 주요 차이점
- 하향식 접근법은 큰 작업을 작은 하위 작업으로 분해하는 반면 상향식 접근법은 먼저 작업의 다른 기본 부분을 직접 해결 한 다음 해당 부분을 전체 프로그램에 결합하는 방식을 선택합니다.
- 각 하위 모듈은 하향식 방식으로 개별적으로 처리됩니다. 반대로 상향식 접근법은 캡슐화 할 데이터를 검사하여 정보 은닉 개념을 구현합니다.
- 하향식 방식의 여러 모듈은 많은 통신을 필요로하지 않습니다. 반대로, 상향식 접근법은 별도의 기본 모듈 간의 상호 작용을 필요로하여 이후에 결합합니다.
- 하향식 접근법은 중복성을 생성 할 수있는 반면 상향식 접근법은 중복 정보를 포함하지 않습니다.
- Fortran, COBOL 및 C와 같은 프로 시저 프로그래밍 언어는 하향식 접근 방식을 따릅니다. 반대로 C ++, Java, C #, Perl, Python과 같은 객체 지향 프로그래밍 언어는 상향식 접근 방식을 유지합니다.
- Bottom-up 방식은 테스트에 우선적으로 사용됩니다. 반대로 하향식 접근법은 모듈 문서화, 테스트 케이스 생성, 디버깅 등에서 활용됩니다.
결론
하향식 접근법과 상향식 접근법은 하향식이 시스템을 상위 수준 사양에서 하위 수준 사양으로 분해하는 일반적인 접근 방식 인 알고리즘 설계 방법입니다. 반면에, 상향식 접근법은보다 효율적이며 원시적 인 구성 요소가 처음에 설계된 다음 더 높은 수준으로 진행되는 역 방식으로 작동합니다.
하향식 접근 방식은 통신 및 재사용 성 개념의 식별을 무시하면서 하위 모듈 (모듈 간의 낮은 결합을 의미)의 격리에 중점을 둡니다. 상향식 접근법에서 정보 숨기기 및 재사용 가능성이 중요한 요소입니다.