하향식 및 상향식 프로그래밍
왜 우리는 C와 같은 언어는 하향식이고 자바나 C++와 같은 OOP 언어는 상향식이라고 합니까?이 분류가 소프트웨어 개발에 중요한 영향을 미칩니까?
"하향식" 접근 방식은 문제를 높은 수준으로 정의하고 하위 문제로 세분화합니다. 그런 다음 코드화하기 쉽고 명확한 조각으로 내려갈 때까지 반복적으로 수행합니다.이것은 종종 프로그래밍의 "기능적 분해" 스타일과 연관되지만 그럴 필요는 없습니다.
"바텀업" 프로그래밍에서는 더 큰 프로그램이 되기 위해 구성할 수 있는 하위 수준의 도구를 식별합니다.
실제로 거의 모든 프로그래밍은 여러 가지 접근 방식을 사용하여 이루어집니다.객체 지향 프로그래밍에서는 일반적으로 도메인 객체를 식별하여 문제를 세분화합니다(상단 하향 단계). 그런 다음 최종 프로그램으로 재결합합니다(하단 상향 단계).
Top-Down 개발에서는 주 기능부터 시작하여 수행해야 할 주요 단계를 생각한 다음 각 단계를 하위 부분으로 분할합니다.
Bottom-Up 프로그래밍에서는 기본 기능과 필요한 부품을 생각하고 구성합니다.여러분은 배우들과 그들의 방법을 개발하고, 그것들을 하나로 묶어 일관성 있는 전체를 만듭니다.
OOP는 객체를 개발함에 따라 자연스럽게 상향식으로 진행되는 반면 절차적 프로그래밍은 하나의 기능으로 시작하여 서서히 추가함에 따라 하향식으로 진행되는 경향이 있습니다.
저는 "톱다운"과 "보텀업"이라는 용어가 그런 식으로 사용되는 것을 들어본 적이 없습니다.
이 용어는 일반적으로 소프트웨어 시스템의 설계 및 구현에 접근하는 방법을 설명하기 위해 사용되며, 따라서 모든 언어 또는 프로그래밍 패러다임에 적용됩니다.
"LISP에서 Paul Graham은 "Bottom-up"이라는 용어를 약간 다르게 사용하여 공유 기능에 공통 기능을 지속적으로 추출함으로써 애플리케이션 도메인 측면에서 프로그래밍할 수 있는 새로운 상위 수준의 LISP 방언을 만듭니다.그것은 일반적으로 사용되는 용어가 아닙니다.요즘 우리는 그것을 "리팩터링"과 "도메인별 임베디드 언어"라고 부릅니다. (그리고 오래된 LISP 프로그래머들은 LISP가 1950년대부터 그렇게 할 수 있었다고 비웃을 것입니다.)
저는 분류가 특정 언어에 적용된다는 것을 들어본 적이 없습니다. 오히려 프로그래밍 패러다임입니다. 먼저 세부사항을 작성한 다음(예: 전체 구현 방법 구축), 그 다음에 함께 작성(예: 메인() 방법에서 호출)하거나 논리적 흐름에서 시작하여 구현을 구체화합니까?
두 가지 언어를 모두 사용할 수 있습니다.하지만 저는 이것이 일반적으로 반대라고 말하고 싶습니다. 현재 OOP 언어에서는 먼저 인터페이스를 정의하고 논리적 구조를 형성한 후에야 구현에 대해 걱정하는 반면, C와 같은 직선 절차 언어에서는 실제로 몇 가지 방법을 구현해야 합니다.
이 위키피디아 페이지는 그것을 꽤 잘 설명합니다. http://en.wikipedia.org/wiki/Top-down#Programming
하향식 접근법에서 시스템은 처음에는 하위 시스템을 지정하지만 처음에는 세부적으로 설명하지 않는 방식으로 공식화된 다음, 각 시스템과 하위 시스템을 기본으로 지정할 때까지 매우 상세하게 정의됩니다.
예: C 프로그램에서는 프로그램의 맨 위에 기능을 선언한 다음 모든 서브시스템/서브루틴에 대한 메인 엔트리를 통해 매우 상세하게 정의해야 합니다.
상향식 접근법에서는 먼저 기본 레벨에서 추상 레벨로 시작하는 설계가 이루어집니다.
예:-Inc++/java는 클래스에서 프로그래밍 기능의 기본 레벨부터 디자인을 시작한 다음 프로그램의 주요 부분으로 이동합니다.
구문보다는 패러다임(객체 지향, 명령, 기능 등)에 관한 것입니다.
상향식 프로그래밍은 하향식 프로그래밍의 반대입니다.프로그래밍 언어의 기존 기본 요소에서 시작하여 모든 응용 프로그램이 작성될 때까지 점점 더 복잡한 기능을 구성하는 프로그래밍 스타일을 말합니다.
같은 기사의 후반부:
C 또는 Java와 같은 언어에서 상향식 프로그래밍은 언어의 원시 요소 또는 기존의 추상 데이터 유형에서 추상 데이터 유형을 구성하는 형태를 취합니다.
프로그래밍에 대한 하향식 접근법과 상향식 접근법의 차이점은 하향식 접근법이 문제를 가지고 관리 가능한 단계로 들어가며 상향식 접근법이 실제로 그러한 단계를 자세히 설명한다는 것입니다.
대부분의 절차적이거나 낮은 수준의 언어는 C 언어처럼 하향식 접근법을 따릅니다.마찬가지로 Java, c++ 등과 같은 고급 언어도 Bottom-Up 접근법을 따릅니다.
Top-down 방식에서는 모든 시스템 또는 큰 기능을 작은 서브시스템으로 분해하는 반면, Bottom-up 방식에서는 작은 서브시스템을 함께 결합하여 크고 최종적인 시스템을 개발합니다.
예: 반복은 하향식 접근법이고 반복은 상향식 접근법입니다.
C는 구조화된 언어이며 프로그램 순서는 위에서 아래로 진행됩니다.주 방법부터 시작합니다.
OOP는 클래스와 개체 수에 따라 달라집니다.프로그램 흐름이 OOP에서 하향식 접근 방식에 있지 않습니다.
언급URL : https://stackoverflow.com/questions/881064/top-down-and-bottom-up-programming
'programing' 카테고리의 다른 글
UIView 프레임, 경계 및 중심 (0) | 2023.06.20 |
---|---|
MariaDB가 한 데이터베이스에 대해 종속 하위 쿼리에 대해 색인을 사용하지 않지만 동일한 서버에 있는 다른 데이터베이스에는 사용하지 않음 (0) | 2023.06.15 |
TensorFlow 2가 TensorFlow 1보다 훨씬 느린 이유는 무엇입니까? (0) | 2023.06.15 |
셀이 범위 내에 있는지 여부를 VBA 테스트 (0) | 2023.06.15 |
Oracle에서 날짜에서 시간을 빼서 해당 날짜에도 영향을 미치도록 하는 방법 (0) | 2023.06.15 |