Engenharia de Software Escrita de Programas Departamento de Matemática Universidade dos Açores Hélia Guerra [email protected] Normas e procedimentos de programação Normas para quem faz Métodos para documentar o código Normas para os outros equipas de teste, de integração, de manutenção documentação ferramentas automáticas para identificar dependências Correspondência entre os componentes do desenho e os componentes do código ligação fraca, coesão elevada, interfaces bem 2 definidas Orientações Estruturas de controlo Facilitam a leitura do código Constroem programa através de blocos de código Não generalizar demasiado nem especificar demasiado Utilizar nomes de parâmetros nos comentários para mostrar a coesão entre os componentes Tornar visível a dependência entre componentes 3 orientações Algoritmos A eficiência da implementação é um aspecto importante A eficiência pode ter custos escondidos tempo de escrita tempo de testes tempo para os outros entenderem tempo para modificar Não sacrificar clareza e correcção por eficiência 4 Orientações estruturas de dados Os dados devem ser estruturados e guardados de forma a facilitar a sua gestão Deve-se manter o programa simples Usar uma estrutura de dados para definir a estrutura do programa 5 Estrutura de dados recursiva 6 orientações preservação da qualidade Localização do input e do output Utilizar pseudocódigo Rever e reescrever. Não remendar! Refactorizar! Reutilizar (Produtor) Criar componentes para serem reutilizadas no futuro (Consumidor) Reutilizar componentes previamente definidos 7 Reutilização consumidor Carcterísticas a verificar dos componentes que vão ser reutilizados é adequado ao que se pretende? se for necessário efectuar alterações, é mais simples fazê-las ou alterar o desenho? está bem documentado? tem relatório de testes efectuados e histórico de revisões? 8 Produção de componente para reutilizar Aspectos a ter em conta desenvolver componentes genéricas, usando parâmetros e antecipando condições em que eles poderão ser utilizado separar dependência de modo a isolar as secções que sofrem alterações das que se mantém manter a interface genérica e bem definida Incluir informação sobre faltas encontradas e corrigidas usar nomes sugestivos de acordo com as normas documentar as estruturas de dados e os algoritmos manter separadas as secções de comunicação e de suporte de erros 9 Documentação Documentação interna Bloco de comentários no cabeçalho do componente Variáveis explicativas Outros comentários Indentar Documentar dados (dicionário de dados) Documentação externa descrição do problema descrição do algoritmo descrição dos dados 10 comentários de cabeçalho de componente Nome do componente Autor Onde se aplica no desenho do sistema Quando é que foi escrita e revista Para que serve Como utiliza as suas estruturas de dados, algoritmos e controlo 11 programação Para encontrar uma boa solução [Polya, 1957] perceber o problema estabelecer um plano seguir o plano rever o que foi feito 12 Resumo Aspectos a ter em conta na escrita do código orientações e normas da empresa reutilização de código de outros projectos escrita de código, tendo em vista futura reutilização utilizar o desenho de baixo nível como framework inicial, depois iterar do desenho para o código 13