quinta-feira, março 16, 2006
As Leis da Evolução de Software
Conforme discutimos em aula, as leis de Lehman, sumarizadas abaixo, são fundamentalmente centradas no conceito de retro-alimentação.
Vale também lembrar que essas leis são válidas para software que não podem ser considerados sistemas fechados, ou seja simples programas que tem especificação bem definida e que portanto podem ser verificados formalmente, se essa especificação for socialmente aceita como completa. Vejam exemplos desse tipo de software (chamado por Lehman de S-type) aqui e aqui.
As leis de Lehman, apresentadas a seguir, foram traduzidas do artigo Rules and Tools for Software Evolution Planning and Management (a tradução usou partes da tradução feita por Roberto Holanda de outro artigo de Lehman e usou o termo software em substituição a E-type Software):
I - Mudança contínua.
Um software deve ser continuamente adaptado, caso contrário se torna progressivamente menos satisfatório.
II - Complexidade crescente.
À medida que um software é alterado, sua complexidade cresce, a menos que um trabalho seja feito para mantê-la ou diminuí-la.
III - Auto-regulação.
O processo de evolução de software é auto-regulado próximo à distribuição normal com relação às medidas dos atributos de produtos e processos.
IV - Conservação da estabilidade organizacional .
A não ser que mecanismos de retro-alimentação tenham sido ajustados de maneira apropriada, a taxa media de atividade global efetiva num software em evolução tende a ser manter constante durante o tempo de vida do produto.
V - Conservação da Familiaridade.
De maneira geral, a taxa de crescimento incremental e taxa crescimento a longo prazo tende a declinar.
VI - Crescimento contínuo.
O conteúdo funcional de um software deve ser continuamente aumentado durante seu tempo de vida para para manter a satisfação do usuário.
VII - Qualidade decrescente.
A qualidade do software será entendida como declinante a menos que o software seja rigorosamente adaptado às mudanças no ambiente operacional.
VIII - Sistema de Retro-alimentação.
Processos de evolução de software são sistemas de retro-alimentação em múltiplos níves, em múltiplos laços (loops) e envolvendo múltiplos agentes.
A próxima leitura pode ser encontrada aqui.
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário