domingo, 11 de outubro de 2009

UML e Martin Fowler

Bom dia pessoal,

Segue frases retiradas do livro: UML Essencial 3 edição de Martin Fowler.

- Os criadores da UML vêem os diagramas como secundários; a essência da UML é o metamodelo. Os diagramas são simplesmente uma apresentação do metamodelo.

- Quase sempre utilizo a UML para fazer esboços. Acho os esboços UML úteis para desenvolvimento e engenharia reversa, tanto na perspectiva conceitual como na de software.
Não sou adepto dos projetos de desenvolvimento detalhados; acredito que é muito difícilfazê-los bem feitos, e eles retardam o trabalho de desenvolvimento. É razoável fazer projetos em nível de interfaces de subsistemas, mas mesmo assim, você deve esperar alterações nestas interfaces, a medida que os desenvolvedores implementam as interações nelas.

- Você não pode olhar um diagrama de UML e dizer exatamente como seria o código equivalente. Entretanto, você pode ter uma idéia aproximada de como ficaria o código.

- Em muitos lugares, diferentes diagramas podem ser úteis, e você não deve hesitar em usar um diagrama que não seja feito com UML, se nenhum diagrama da UML atende o seu propósito.

- Normalmente, a unica maneira de saber se você está no caminho certo é produzir software integrado testado.

- As pessoas dizem que estão fazendo software iterativo, mas na verdade estão usando o processo cascata. Os sintomas são:
a) "Estamos fazendo uma iteração de análise seguida de duas iterações de projeto..."
b) "O código dessa iteração está repleto de erros, mas vamos limpá-lo no final."

- O teste e a integração são as atividades mais difíceis de estimar; portanto, é importante não ter uma atividade aberta como essa no final do projeto.

- Uma técnica comum no caso de iterações é usar um quadro de tempo. Isso obriga uma iteração a ocorrer em um período de tempo fixo. Se você achar que não vai conseguir fazer tudo o que pretendia durante uma iteração, deve deslocar alguns funcionalidades dela; você não deve deslocar a data da iteração. A maioria dos projetos que utilizam desenvolvimento iterativo usam o mesmo período de iteração por todo o projeto; desse modo, você consegue um ritmo de construção regular.

- Na verdade, uma das maiores vantagens do desenvolvimento iterativo é que ele suporta melhorias freqüentes no processo. Ao final de cada iteração, realize uma retrospectiva de iteração, na qual a equipe se reúne para considerar como as coisas ocorreram e como elas podem ser aprimoradas.

- Uma das minhas preocupações com os projetos é que, mesmo para um bom projetista, é muito difícil fazê-los corretamente. Freqüentemente, verifico que meus próprios projetos não sobrevivem intactos ao contato com uma codificação. Ainda considero meus esboços UML úteis, mas não creio que eles possam ser tratados como absolutos.

- Um cenário é uma seqüencia de passos que descreve uma interação entre um usuário e um sistema.

- Um caso de uso é um conjunto de cenários amarrados por um objetivo comum ao usuário.

- As funcionalidades constituem uma boa maneira de repartir um sistema para planejar um projeto iterativo, pelo qual cada iteração implementaria várias funcionalidades. O caso de uso fornecem uma narrativa de como os atores utilizam o sistema. Então, embora as duas técnicas descrevam requisitos, seus propósitos são diferentes.


Toda vez que eu leio e releio este livro sempre encontro informações uteis. A edição é de 2005 e possui um capitulo muito bom de desenvolvimento ágil. Eu gosto muito de UML, considero ela muito util para o auxilio de análise de sistemas orientada a objetos e um mecanismo de comunicação com a equipe, onde podemos planejar rapidamente uma estratégia de como vamos desenvolver os requisitos da iteração.

Abraços a todos,

Abu

Nenhum comentário: