Projeto de Software
(Jack Reeves; Douglas Schmidt; Terry Winograd)
Apesar da divergência que existe entre vários autores a respeito da definição de Projeto de Software, posso conceituá-lo como sendo um processo que, a partir dos requisitos do software e do domínio do problema, decompõe o sistema em componentes e determina seus relacionamentos, especificando suas interfaces, descrevendo suas funcionalidades e identificando oportunidades para o reuso. Ou seja, uma vez que o domínio do problema foi esclarecido, o sistema é projetado com o apoio de uma ou mais metodologias de forma a resolver o problema em questão.
O projeto do software é uma etapa crucial para o sucesso no desenvolvimento de qualquer sistema, pois com ele o projetista tem uma visão ampla do que deve ser feito e aplica a estratégia que melhor atende às necessidades do software. Esta estratégia deve considerar os seguintes aspectos na concepção de um software:
* Extensibilidade – o software suporta a adesão de novas funcionalidades sem que haja necessidade de grandes alterações na sua arquitetura subjacente;
* Robustez – o software deve estar preparado para tratar de situações imprevisíveis, como entrada de dados inválida e condições de baixa memória do computador;
* Tolerância à falhas – o software não pode estar suscetível à falhas, ele deve ser resistente e capaz de recuperar possíveis ações de falha;
* Compatibilidade – o software deve ter a capacidade de operar com outros produtos que também foram projetados para suportar a interoperabilidade;
* Modularidade – o software resulta em componentes independentes e bem definidos, o que leva a uma melhor divisão de trabalho na equipe de desenvolvimento e melhor manutenção do sistema;
* Reusabilidade – um software reusável permite que seus componentes modularizados possam ser reutilizados em casos que existam necessidades semelhantes em outros projetos.
No seu artigo, o autor Reeves conclui que a única documentação do software que atualmente satisfaz o critério de engenharia de software é o código fonte. Neste ponto eu discordo totalmente do autor, pois na minha concepção o projeto e a arquitetura do software são os critérios mais importantes. Uma vez que estes critérios são obtidos com uma boa qualidade, o código fonte pode ser implementado por qualquer programador a partir da documentação.
Resumos Relacionados
- Software Engineering - A Practiioner's Approach
- Software Engineering - A Practiioner's Approach
- Um Problema No Computador? Software Para Você Chegar Ao Seu Computador
- Microsoft Office 2003
- System Software
|
|