Engenharia de Requisitos - Eduardo Magno

terça-feira, março 28, 2006

What Netscape Learned from Cross-Platform Software Development

Acredito que o principal foco deste artigo é discutir a série de decisões equivocadas que foram tomadas pela equipe de desenvolvimento da Netscape.

Em minha opinião, o maior problema desta empresa foi assumir um desenvolvimento independente de plataforma quando ainda não existia tecnologia suficientemente madura. Neste sentido, a Netscape teve quatro problemas principais:
(i) Um esforço muito grande por parte dos desenvolvedores para criar código abstrato e independente de plataforma;
(ii) Tempo excessivamente grande para testar e “debugar” os sistemas em diferentes plataformas (e maquinas) de tal forma a garantir que eles funcionem adequadamente;
(iii) Tentar, sem sucesso, o desenvolvimento de uma camada independente de plataforma (NSPR) em que suas aplicações deveriam ser executadas;
(iv) Migrar prematuramente para a máquina virtual Java (JVM), quando esta ainda não se encontrava satisfatoriamente estável.

domingo, março 26, 2006

Sexta Lei: Continuing Growth

A sexta lei de Lehman [2] diz que o conteúdo funcional do programa deve ser continuamente ampliado para atender a satisfação do usuário durante o ciclo de vida do software.

O artigo do Scacchi [3] levanta pelo menos dois pontos contra esta lei:
(i) a falta de estudos que forneçam informações sobre a satisfação do usuário e como ela é avaliada;
(ii) o “encolhimento” do software para atender anseios de usuários de dispositivos móveis (minimização).

Em relação ao primeiro ponto levantado, concordo que deve haver estudos para relacionar o crescimento funcional ao feedback de satisfação do usuário. Por outro lado, minha opinião em relação ao segundo ponto é que a minimização de software para atender usuários de dispositivos móveis não deve ser tratada como um contra exemplo desta sexta lei. Pois, acredito que neste caso as funcionalidades da aplicação estão aumentando, uma vez que agora o sistema é capaz de executar tanto em equipamentos do tipo desktop quanto do tipo handheld.

[Referências] Vide postagem anterior.

Segunda Lei: Increasing Complexity

Esta lei de Lehman [2] afirma que a complexidade de um programa aumenta, a não ser que sejam feitos esforços de manutenção e redução do mesmo.

Os dados e gráficos contidos no artigo de Scacchi [3] mostram um crescimento contínuo em tamanho e acoplamento de Software Livre (SL) durante sua evolução – dados confirmados, por exemplo, na avaliação do Linux Kernel avaliado no artigo.

Apesar da complexidade de software não poder ser avaliada apenas em função de seu tamanho e acoplamento entre módulos, estes atributos são bons indicadores da complexidade de sistemas [1]. Portanto, em minha opinião as informações do artigo confirmam esta segunda lei de Lehman para SL.

Finalmente, concordo com Scacchi [3] quando ele afirma (página 21, parágrafo 2) que novos estudos são necessários para melhor avaliar a complexidade, tanto no Linux Kernel quanto em outros sistemas de software. Além disso, acredito ser importante utilizar medidas de coesão em adição a tamanho e acoplamento para melhor expressar a complexidade.

[1] HENDERSON-SELLERS, B. “Object-Oriented Metrics: Measures of Complexity”. Prentice Hall, 1996. 234p.

[2] LEHMAN, M. "Laws of Software Evolution Revisited". EWSPT 1996, LNCS 1149, Springer Verlag, p. 108-124, 1997

[3] SCACCHI, W. “Understanding open source software evolution - Applying, breaking and rethinking the laws of software evolution”. Institute for Software Research, University of California, 2003.

quarta-feira, março 22, 2006

As leis de Lehman estão sendo quebradas??

Gostaria de comentar uma afirmação feita no artigo “Understanding Open Source Software Evolution: Applying, Breaking, and Rethinking the Laws of Software Evolution” discutido na última aula (21 de Março).

“..., it has begun clear that the laws and theory may be breaking down, at least from results of the many empirical studies reviewed in this chapter.” (página 27, conlusões)

Será mesmo que, partir das informações contidas neste artigo, se pode concluir que as leis de Lehman estão sendo quebradas?

Eu acredito que não, pois os dados apresentados não contradizem totalmente o que as leis dizem. Por outro lado, sobre o meu ponto de vista, os dados apresentados no artigo estão em concordância com pelo menos quatro leis: “I-Continuing Change”, “II-Increasing Complexity”, “VI-Continuing Growth” e “VII-Declining Quality”.

Em relação às outras quatro leis de Lehman, também não vi nenhuma contradição entre os dados do artigo e estas leis.

segunda-feira, março 20, 2006

Evolução de Software

PUC-Rio, Brasil.