Neste capítulo, vamos estudar sobre métodos de programação, a documentação e os desafios na implementação do software.
No processo de codificação, a linhas de código manter multiplicando, assim, o tamanho do software aumenta. Aos poucos, torna-se quase impossível lembrar o fluxo do programa. Se um se esquece como o software e os programas, arquivos, os procedimentos são construídos, torna-se, então, muito difícil de partilhar, depurar e modificar o programa. A solução para isso é programação estruturada. Ela incentiva o desenvolvedor a usar sub-rotinas e alças em vez de usar simples saltos no código, assim, trazendo clareza no código e melhorar a sua eficiência também ajuda a programação estruturada programador codificação para reduzir tempo e organizar o código corretamente.
Programação estruturada como o programa deve ser codificado. Programação estruturada usa três conceitos principais:
Análise top-down - um software é sempre racional para fazer alguns trabalhos. Este trabalho racional é conhecido como problema no software linguajar. Assim sendo, é muito importante que possamos compreender como resolver o problema. Sob análise top-down, o problema é dividido em pequenos pedaços onde cada um tem algum significado. Cada problema é resolvido individualmente e os passos são claramente sobre como resolver o problema.
Programação Modular - Durante a programação, o código é dividido em pequenos grupo de instruções. Esses grupos são conhecidos como módulos, subprogramas ou sub-rotinas. Programação Modular com base na compreensão da análise top-down. Ela desestimula salta com "goto" declarações no programa, o que muitas vezes dificulta o fluxo do programa não rastreáveis. Saltos são proibidos e formato modular é incentivada na programação estruturada.
Codificação - estruturado em referência com top-down análise, codificação estruturado sub-divide os módulos em outras unidades menores do código no fim da sua execução. Programação estruturada usa estrutura de controle, que controla o fluxo do programa, considerando que utiliza codificação estruturado estrutura de controle para organizar suas instruções em padrões definíveis.
Programação funcional é estilo de linguagem de programação, que utiliza os conceitos de funções matemáticas. Uma função em matemática deve apresentar sempre o mesmo resultado na recepção do mesmo argumento. Em línguas processuais, o fluxo do programa é executado através de procedimentos, ou seja, o controle de programa é transferido para o procedimento chamado. Enquanto fluxo de controle é transferindo-se de um processo para outro, o programa altera o seu estado.
Na programação de procedimentos, é possível um procedimento para produzir resultados diferentes quando é chamado com o mesmo argumento, como o próprio programa pode estar em outro estado, enquanto chamando-a. Esta é uma propriedade, bem como um sistema de devolução de programação de procedimentos, em que a sequência ou a duração da execução do procedimento torna-se importante.
Programação funcional proporciona meios de cálculo como funções matemáticas, que produz resultados independentemente do estado do programa. Isso faz com que seja possível prever o comportamento do programa.
Programação funcional usa os seguintes conceitos:
Primeira classe e de alta ordem funções - estas funções têm capacidade para aceitar outra função como argumento ou eles voltar outras funções como resultados.
Pure funções - Estas funções não incluem atualizações destrutiva, isto é, eles não afetam qualquer I/O ou a memória e se eles não estiverem em uso, podem ser facilmente removidas sem prejudicar o resto do programa.
A recursividade - recursão é uma programação técnica onde uma função chama-se a si mesma e se repete o código do programa, a menos que algum tipo de pré-definido corresponde. A recursividade é a forma de criar loops de programação funcional.
Avaliação rigorosa - é um método de avaliação da expressão passou a funcionar como um argumento. Programação funcional tem dois tipos de métodos de avaliação, rigorosa (ansioso) ou não-estrita (lazy). Avaliação rigorosa sempre avalia a expressão antes de chamar a função. Avaliação não-estrita não é avaliar a expressão, a não ser que seja necessário.
Λ-cálculo - a maioria das linguagens de programação funcional uso λ-cálculo como seus sistemas de tipo. Λ-expressões são executadas, avaliando-os à medida que eles ocorrem.
Sigmatismo comuns, Scala, Erlang e Haskell, F# são alguns exemplos de linguagens de programação funcional.
Estilo de programação é um conjunto de codificar as regras seguidas por todos os programadores a escrever código. Quando vários programadores trabalham no mesmo projeto de software, freqüentemente, elas precisam trabalhar com o programa código escrito por outros programadores. Isso se torna entediante ou às vezes impossível, se todos os desenvolvedores não seguem algum padrão de programação estilo ao código do programa.
Um estilo de programação funcional e inclui o uso dos nomes das variáveis relevantes para a tarefa desejada, usando bem-colocado indentation, comentando código para a conveniência do leitor e apresentação geral do código. Isso faz com que o código do programa legível e compreensível por todos, o que, por sua vez, os faz depuração e resolução de erros mais fácil. Além disso, estilo codificação adequada ajuda a facilitar a documentação e actualizações.
Prática de coding style varia com as organizações, sistemas operacionais e a linguagem de codificação propriamente dita.
Os seguintes elementos codificação pode ser definido sob orientação da codificação uma organização:
Convenções de nomenclatura - Esta seção define como nome funções, variáveis, constantes e variáveis globais.
Recuo - Este é o espaço deixado no início da linha, normalmente 2-8 espaços em branco ou um único guia.
Espaço em Branco - geralmente é omitido no final da linha.
Os operadores - define as regras da escrita matemática, atribuição e operadores lógicos. Por exemplo, operador de atribuição ‘=’ deve ter espaço antes e depois dele, como em "x = 2 ".
As estruturas de controle - As regras da escrita se-então-outro, caso a switch, enquanto até e demonstrações de fluxo de controle aninhadas e exclusivamente na moda.
Comprimento da linha e acondicionamento - Define quantos caracteres devem estar lá em uma linha, na sua maioria uma linha é de 80 caracteres. O acondicionamento define como uma linha deve ser enrolado, se é demasiado longo.
Funções - define como funções devem ser declaradas e invocado, com e sem parâmetros.
Variáveis - Este menciona como as variáveis de diferentes tipos de dados são declaradas e definidas.
Comentários - Este é um dos importantes componentes codificação, como os comentários incluídos no código descrevem o que o código faz e todas as outras descrições associadas. Esta seção também ajuda a criar documentações para ajudar outros desenvolvedores.
Documentação do Software é uma parte importante do processo de software. O documento escrito é uma excelente ferramenta e meio de repositório de informações necessárias para saber sobre processo de software. Documentação do Software também fornece informações sobre como utilizar o produto.
UM bem-mantido documentação deve incluir os seguintes documentos:
Requisito documentação - Esta documentação funciona como ferramenta-chave para designer de software, programador e a equipe de testes a efectuar as respectivas tarefas. Este documento contém todas as funcionais e não-funcionais e comportamentais descrição do software.
Fonte deste documento pode ser previamente armazenados dados sobre o software, já que executa o software no cliente final, cliente da entrevista, questionários e pesquisas. Geralmente é armazenada sob a forma de planilha ou documento de processador de texto com o high-end gerenciamento software equipe.
Esta documentação funciona como base para o software a ser desenvolvido e é muito usado em fases de verificação e validação. A maioria dos casos de teste são construídas diretamente na documentação do requerimento.
Projeto de Software documentação - Essas documentações contêm todas as informações necessárias, as quais são necessárias para a construção do software. Ela contém: (a) Alto nível de arquitetura de software, (b) design de Software mais detalhes, (c) os diagramas de fluxo de dados (d) Database design
Estes documentos funciona como repositório para os desenvolvedores a implementar o software. Embora estes documentos não dar quaisquer detalhes sobre a forma de código do programa, eles dão todas as informações necessárias que é necessária para a codificação e implementação.
Documentação técnica - Essas documentações são mantidos pelos programadores e real dos codificadores. Esses documentos, como um todo, representam informações sobre o código. Durante a escrita do código, os programadores ainda objectivo do código, quem a escreveu, onde será necessário, o que faz e como faz, para que outros recursos o código usa, etc.
A documentação técnica aumenta o entendimento entre vários programadores trabalhando no mesmo código. Ela melhora a capacidade de utilização do código. Ela torna fácil e depuração rastreáveis.
Há várias ferramentas automatizadas disponíveis, e alguns vem com a própria linguagem de programação. Por exemplo java vem ferramenta Javadoc para gerar documentação técnica do código.
Documentação do Usuário - Esta documentação é diferente de todos os acima explicado. Todas documentações anteriores são mantidos para fornecer informações sobre o software e o seu processo de desenvolvimento. Mas documentação do usuário explica como o produto de software deve trabalhar e como ele deve ser usado para obter os resultados desejados.
Estas documentações podem incluir procedimentos de instalação de software, manuais de instruções, o usuário-guias, método de remoção e especiais referências para obter mais informações como licença actualizações ...
Há alguns dos desafios enfrentados pela equipe de desenvolvimento e implementação do software. Alguns deles são mencionados abaixo:
Código de reutilização - interfaces de programação de presente-dia idiomas são muito sofisticados e estão equipados enorme as funções da biblioteca. Ainda assim, para que o custo do produto final, a gestão da organização prefere a re-utilizar o código, que foi criado anteriormente por algum outro software. Não há grandes problemas enfrentados pelos programadores para verificações de compatibilidade e decidir a quantidade de código para re-uso.
Gerenciamento de versão - Cada vez que um novo software é emitido para o cliente, os desenvolvedores têm de manter versão e configuração documentação relacionada. Esta documentação tem de ser altamente precisas e disponíveis no momento.
Target-Host - programa de software, que está sendo desenvolvido na organização, tem de ser concebido para hospedar as máquinas dos clientes. Mas, às vezes, é impossível projetar um software que trabalha com máquinas de destino.