Articles

Estrutura de software

Esta secção tem múltiplos problemas. Por favor, ajude a melhorá-la ou discuta estas questões na página de discussão. (Aprenda como e quando remover estas mensagens modelo)

Esta secção necessita de citações adicionais para verificação. Por favor, ajude a melhorar este artigo, acrescentando citações a fontes fiáveis. O material não proveniente de fontes pode ser contestado e removido.
Findir fontes: “Software framework” – notícias – jornais – livros – académico – JSTOR (Abril 2011) (Saiba como e quando remover esta mensagem modelo)

br>

Esta secção pode ser demasiado longa e excessivamente detalhada. Por favor, considere resumir o material enquanto cita as fontes conforme necessário. (Abril de 2020)

Esta secção contém palavras evasivas: fraseologia vaga que frequentemente acompanha informação tendenciosa ou não verificável. Tais afirmações devem ser esclarecidas ou removidas. (Abril 2020)

Esta secção é escrita como uma reflexão pessoal, ensaio pessoal, ou ensaio argumentativo que afirma os sentimentos pessoais de um editor da Wikipedia ou apresenta um argumento original sobre um tópico. Por favor, ajude a melhorá-lo, reescrevendo-o num estilo enciclopédico. (Abril 2020) (Aprenda como e quando remover esta mensagem modelo)

>br>>/div>

(Aprenda como e quando remover esta mensagem modelo)

br>>p> Os designers de estruturas de software visam facilitar o desenvolvimento de software, permitindo aos designers e programadores dedicarem o seu tempo a satisfazer os requisitos de software em vez de lidarem com os detalhes de baixo nível mais padronizados do fornecimento de um sistema de trabalho, reduzindo assim o tempo global de desenvolvimento. Por exemplo, uma equipa que utiliza uma estrutura web para desenvolver um website bancário pode concentrar-se na escrita de código específico para a banca em vez da mecânica de tratamento de pedidos e gestão do estado.

Frameworks acrescentam frequentemente ao tamanho dos programas, um fenómeno denominado “inchaço do código”. Devido às necessidades das aplicações orientadas para a procura do cliente, tanto as estruturas concorrentes como as complementares acabam, por vezes, num produto. Além disso, devido à complexidade das suas APIs, a redução pretendida no tempo global de desenvolvimento pode não ser alcançada devido à necessidade de gastar mais tempo a aprender a utilizar a estrutura; esta crítica é claramente válida quando uma estrutura especial ou nova é encontrada pela primeira vez pelo pessoal de desenvolvimento. Se tal estrutura não for utilizada em tarefas subsequentes, o tempo investido na aprendizagem da estrutura pode custar mais do que o código propositadamente escrito familiar ao pessoal do projecto; muitos programadores guardam cópias de uma placa de caldeira útil para necessidades comuns.

No entanto, uma vez que uma estrutura é aprendida, os projectos futuros podem ser mais rápidos e mais fáceis de completar; o conceito de uma estrutura é fazer um conjunto de soluções de tamanho único, e com familiaridade, a produção de código deve aumentar logicamente. Não existem tais afirmações sobre o tamanho do código eventualmente associado ao produto final, nem a sua relativa eficiência e concisão. A utilização de qualquer solução de biblioteca implica necessariamente a utilização de extras e activos estranhos não utilizados, a menos que o software seja um compilador-objector de ligação tornando um módulo executável apertado (pequeno, totalmente controlado, e especificado).

A questão continua, mas uma década mais de experiência da indústria mostrou que as estruturas mais eficazes acabam por ser as que evoluem da re-facturação do código comum da empresa, em vez de utilizar uma estrutura genérica de “tamanho único” desenvolvida por terceiros para fins gerais. Um exemplo disso seria como a interface do utilizador num pacote de aplicações como uma suite de escritório cresce para ter uma aparência, sensação, e atributos e métodos comuns de partilha de dados, uma vez que as outrora díspares aplicações agrupadas, crescem unificadas numa suite que é mais restrita e mais pequena; a suite mais recente/evolutiva pode ser um produto que partilha bibliotecas de utilitários e interfaces de utilizador integrais.

Esta tendência na controvérsia levanta uma questão importante sobre frameworks. Criar uma estrutura que seja elegante, versus uma que apenas resolva um problema, ainda é mais um ofício do que uma ciência. A “elegância do software” implica clareza, concisão, e pouco desperdício (funcionalidade extra ou estranha, grande parte da qual é definida pelo utilizador). Para aquelas estruturas que geram código, por exemplo, “elegância” implicaria a criação de código limpo e compreensível para um programador razoavelmente conhecedor (e que é, portanto, facilmente modificável), versus um que apenas gera código correcto. A questão da elegância é a razão pela qual relativamente poucas estruturas de software resistiram ao teste do tempo: as melhores estruturas foram capazes de evoluir graciosamente como a tecnologia subjacente sobre a qual foram construídas de forma avançada. Mesmo aí, tendo evoluído, muitos desses pacotes irão reter as capacidades herdadas, inchando o software final, já que métodos substituídos foram retidos em paralelo com os métodos mais recentes.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *