Eng. Software
Design de API deve ser de uma forma que seja fácil de aprender e memorizar,guiado por código legível,seja difícil de usar errado,fácil de herdar,que seja completa,e mantenha compatibilidade cm versões anteriores.
Uso de API envolve processos de : seleção,aprendizado,teste,integração e possivelmenteuso de outras API’s providas por biblioteca e/ou Framework.
4.2 Tempo de Execução em Orientação à Objetos
Linguagens O.O suportam uma série de mecanismos em tempo de execução,como polimorfismo e reflexão.Esses mecanismos aumentam a flexibilidade de programas O.O
4.3 Parametrização e Genéricos
Tipos genéricos(ADA,Eiffel) ou templates(C++),é a definição de um tipo de dados ou classe,sem especificar todos os outros tipos que essa classe usa.Os tipos não especificados são passados como parâmetros a medida que eles são necessários.
Tipos Genéricos provém uma terceira forma(além de herança e composição) de criar comportamento em software orientado à objeto.
4.4 Asserções,Design por Contrato e Programação Defensiva
Uma asserção é um predicato executável,colocado dentro do código,geralmente em uma rotina,que permite que o programa se verifique,i.e,veja se ele está funcionando como o esperado.
Design por Contrato é uma forma de desenvolvimento em que cada rotina é considerada por ter pré e pós condições .Quando pré e pós condições são usadas,cada rotina e/ou classe forma um contrato com o resto do programa.Asserções podem ser usadas para verificar essas condições.
Programação Defensiva significa proteger uma rotina de ser quebrada por parâmetros inválidos.Para validar esses parâmetros pode-se verificar os parâmetros e decidir uma forma de tratar entradas inválidas.Asserções podem ser usadas para verificar os valores de entrada.
4.5 Tratamento de Erro,Exceção e Tolerância à Falha A maneira que os erros são tratados afetam diretamente a habilidade do software de encontrar requisitos relacionados à corretude,ser robusto,e outros requisitos