Top-down ('top down') e bottom-up ('bottom up') são estratégias de processamento de informação características das ciências da informação "Ciências da informação (tecnologia"), especialmente em relação ao software. Por extensão, também se aplicam a outras ciências sociais e exatas.
No modelo top-down é formulado um resumo do sistema, sem especificar detalhes. Cada nova peça é então redefinida, cada vez mais detalhadamente, até que toda a especificação seja detalhada o suficiente para validar o modelo. O modelo de cima para baixo é frequentemente projetado com a ajuda de "caixas pretas" que facilitam o atendimento aos requisitos, mesmo que essas caixas pretas não expliquem detalhadamente os componentes individuais.
Em contraste, no projeto bottom-up, as peças individuais são projetadas detalhadamente e depois interligadas para formar componentes maiores, que por sua vez são interligados até que o sistema completo seja formado. As estratégias baseadas no fluxo de informação “de baixo para cima” parecem potencialmente necessárias e suficientes porque se baseiam no conhecimento de todas as variáveis que podem afetar os elementos do sistema.
Ciência da Computação
No processo de desenvolvimento de software, as abordagens de cima para baixo e de baixo para cima desempenham um papel crucial.
O design de cima para baixo foi iniciado na década de 1970 pelos pesquisadores da IBM Harlan Mills") e Niklaus Wirth. Mills desenvolveu os conceitos de programação estruturada para usos práticos e os testou em um projeto em 1969 para automatizar o índice do necrotério do New York Times.
O sucesso administrativo e de engenharia do projeto fez com que a abordagem de cima para baixo se espalhasse pela IBM e pelo resto da indústria de computadores.
Niklaus Wirth, cujas realizações incluem o desenvolvimento da linguagem de programação Pascal, escreveu o influente artigo Program Development by Stepwise Refinement.
Os métodos de cima para baixo foram favorecidos na engenharia de software até a chegada da programação orientada a objetos no final da década de 1980.
Estimativa detalhada (bottom-up)
Introdução
Em geral
Top-down ('top down') e bottom-up ('bottom up') são estratégias de processamento de informação características das ciências da informação "Ciências da informação (tecnologia"), especialmente em relação ao software. Por extensão, também se aplicam a outras ciências sociais e exatas.
No modelo top-down é formulado um resumo do sistema, sem especificar detalhes. Cada nova peça é então redefinida, cada vez mais detalhadamente, até que toda a especificação seja detalhada o suficiente para validar o modelo. O modelo de cima para baixo é frequentemente projetado com a ajuda de "caixas pretas" que facilitam o atendimento aos requisitos, mesmo que essas caixas pretas não expliquem detalhadamente os componentes individuais.
Em contraste, no projeto bottom-up, as peças individuais são projetadas detalhadamente e depois interligadas para formar componentes maiores, que por sua vez são interligados até que o sistema completo seja formado. As estratégias baseadas no fluxo de informação “de baixo para cima” parecem potencialmente necessárias e suficientes porque se baseiam no conhecimento de todas as variáveis que podem afetar os elementos do sistema.
Ciência da Computação
No processo de desenvolvimento de software, as abordagens de cima para baixo e de baixo para cima desempenham um papel crucial.
O design de cima para baixo foi iniciado na década de 1970 pelos pesquisadores da IBM Harlan Mills") e Niklaus Wirth. Mills desenvolveu os conceitos de programação estruturada para usos práticos e os testou em um projeto em 1969 para automatizar o índice do necrotério do New York Times.
O sucesso administrativo e de engenharia do projeto fez com que a abordagem de cima para baixo se espalhasse pela IBM e pelo resto da indústria de computadores.
A abordagem de cima para baixo enfatiza o planejamento e o conhecimento completo do sistema.
Entende-se que a codificação não pode começar até que um nível de detalhe suficiente seja alcançado, pelo menos em alguma parte do sistema. Isto atrasa o teste das unidades funcionais do sistema até que grande parte do projeto esteja concluída.
Bottom-up enfatiza a programação e os testes iniciais, que podem começar assim que o primeiro módulo for especificado. Essa abordagem corre o risco de programar coisas sem saber como elas vão se conectar ao resto do sistema, e essa conexão pode não ser tão fácil como se acreditava inicialmente. A reutilização de código é um dos maiores benefícios da abordagem de baixo para cima.
O desenvolvimento de software moderno geralmente combina de cima para baixo e de baixo para cima. Embora um conhecimento completo do sistema seja geralmente considerado necessário para um bom design, tornando-o teoricamente uma abordagem de cima para baixo, a maioria dos projetos de desenvolvimento de software tenta usar o código existente até certo ponto. O uso de módulos existentes dá ao design um sabor de baixo para cima. Algumas abordagens utilizam uma estratégia na qual um sistema parcialmente funcional é totalmente concebido e programado, e expandido para atender aos requisitos do projeto.
Ecologia
Em ecologia, o controle de cima para baixo refere-se a quando um predador de ponta controla a estrutura populacional ou a dinâmica do ecossistema. As interações entre esses predadores de topo e suas presas é o que influencia os níveis tróficos inferiores. Mudanças no nível superior dos níveis tróficos têm um efeito inverso nos níveis tróficos inferiores. O controle de cima para baixo pode afetar negativamente o ecossistema circundante se houver uma mudança drástica no número de predadores. O exemplo clássico são os ecossistemas florestais de algas. Nesses ecossistemas, as lontras marinhas são um predador importante. Alimentam-se de ouriços que por sua vez comem algas marinhas. Quando as lontras são removidas, as populações de ouriços-do-mar crescem e reduzem a floresta de algas, criando terrenos baldios para os ouriços-do-mar. Isto reduz a diversidade do ecossistema como um todo e pode ter efeitos prejudiciais sobre todos os outros organismos. Por outras palavras, estes ecossistemas não são controlados pela produtividade das algas marinhas, mas por um predador de topo. Neste exemplo você pode ver o efeito inverso que o controle top-down tem; Quando a população de lontras diminuiu, a população de ouriços aumentou.
O controlo de baixo para cima nos ecossistemas refere-se a ecossistemas nos quais o fornecimento de nutrientes, a produtividade e o tipo de produtores primários (plantas e fitoplâncton) controlam a estrutura do ecossistema. Se não houver recursos ou produtores suficientes no ecossistema, não sobrará energia suficiente para o resto dos animais da cadeia alimentar devido à biomagnificação e à eficiência ecológica. Um exemplo seria como as populações de plâncton são controladas pela disponibilidade de nutrientes. As populações de plâncton tendem a ser maiores e mais complexas em áreas onde a ressurgência costeira traz nutrientes para a superfície.
Existem muitos exemplos diferentes desses conceitos. É comum que as populações sejam influenciadas por ambos os tipos de controle, e ainda há debates sobre qual tipo de controle afeta as cadeias alimentares em determinados ecossistemas.
Niklaus Wirth, cujas realizações incluem o desenvolvimento da linguagem de programação Pascal, escreveu o influente artigo Program Development by Stepwise Refinement.
Os métodos de cima para baixo foram favorecidos na engenharia de software até a chegada da programação orientada a objetos no final da década de 1980.
A abordagem de cima para baixo enfatiza o planejamento e o conhecimento completo do sistema.
Entende-se que a codificação não pode começar até que um nível de detalhe suficiente seja alcançado, pelo menos em alguma parte do sistema. Isto atrasa o teste das unidades funcionais do sistema até que grande parte do projeto esteja concluída.
Bottom-up enfatiza a programação e os testes iniciais, que podem começar assim que o primeiro módulo for especificado. Essa abordagem corre o risco de programar coisas sem saber como elas vão se conectar ao resto do sistema, e essa conexão pode não ser tão fácil como se acreditava inicialmente. A reutilização de código é um dos maiores benefícios da abordagem de baixo para cima.
O desenvolvimento de software moderno geralmente combina de cima para baixo e de baixo para cima. Embora um conhecimento completo do sistema seja geralmente considerado necessário para um bom design, tornando-o teoricamente uma abordagem de cima para baixo, a maioria dos projetos de desenvolvimento de software tenta usar o código existente até certo ponto. O uso de módulos existentes dá ao design um sabor de baixo para cima. Algumas abordagens utilizam uma estratégia na qual um sistema parcialmente funcional é totalmente concebido e programado, e expandido para atender aos requisitos do projeto.
Ecologia
Em ecologia, o controle de cima para baixo refere-se a quando um predador de ponta controla a estrutura populacional ou a dinâmica do ecossistema. As interações entre esses predadores de topo e suas presas é o que influencia os níveis tróficos inferiores. Mudanças no nível superior dos níveis tróficos têm um efeito inverso nos níveis tróficos inferiores. O controle de cima para baixo pode afetar negativamente o ecossistema circundante se houver uma mudança drástica no número de predadores. O exemplo clássico são os ecossistemas florestais de algas. Nesses ecossistemas, as lontras marinhas são um predador importante. Alimentam-se de ouriços que por sua vez comem algas marinhas. Quando as lontras são removidas, as populações de ouriços-do-mar crescem e reduzem a floresta de algas, criando terrenos baldios para os ouriços-do-mar. Isto reduz a diversidade do ecossistema como um todo e pode ter efeitos prejudiciais sobre todos os outros organismos. Por outras palavras, estes ecossistemas não são controlados pela produtividade das algas marinhas, mas por um predador de topo. Neste exemplo você pode ver o efeito inverso que o controle top-down tem; Quando a população de lontras diminuiu, a população de ouriços aumentou.
O controlo de baixo para cima nos ecossistemas refere-se a ecossistemas nos quais o fornecimento de nutrientes, a produtividade e o tipo de produtores primários (plantas e fitoplâncton) controlam a estrutura do ecossistema. Se não houver recursos ou produtores suficientes no ecossistema, não sobrará energia suficiente para o resto dos animais da cadeia alimentar devido à biomagnificação e à eficiência ecológica. Um exemplo seria como as populações de plâncton são controladas pela disponibilidade de nutrientes. As populações de plâncton tendem a ser maiores e mais complexas em áreas onde a ressurgência costeira traz nutrientes para a superfície.
Existem muitos exemplos diferentes desses conceitos. É comum que as populações sejam influenciadas por ambos os tipos de controle, e ainda há debates sobre qual tipo de controle afeta as cadeias alimentares em determinados ecossistemas.