/capaSQL13.JPG" width=203 border=0>
Clique aqui para ler todos os artigos desta edição
Projeto de software utilizando UML
por Rodrigo Oliveira Spinola
Muito se fala sobre a curva de aprendizado associado à orientação a objetos. Esta curva de aprendizado é fruto da necessidade e troca de paradigma ao deixar de projetar e desenvolver estruturado para fazê-lo seguindo os princípios da orientação a objetos. Em alguns aspectos, a mudança pode ser até fácil. Aqueles que não trabalharam por muito tempo com o paradigma estruturado tendem a ter mais facilidades. Vale deixar claro aqui que não estamos questionando o quão difícil é programar em uma linguagem orientada a objetos mas sim, aprender a tirar proveito das vantagens que estas linguagens fornecem.
Nota
Segundo Rumbaugh, a tecnologia baseada em objetos é mais do que apenas uma forma de programar. Ela é mais importante como um modo de pensar em um problema de forma abstrata, utilizando conceitos do mundo real e não idéias computacionais.
Neste contexto situamos a UML, linguagem de modelagem unificada. Até certo ponto podemos dizer que ela foi projetada para ajudar as pessoas a focarem nas vantagens provenientes do uso do paradigma orientado a objetos. UML é utilizada para visualizar, especificar, construir e documentar artefatos de software. Veremos agora o que significa cada um desses contextos de utilização.
· Visualizar: para muitos programadores, a distância entre pensar em uma solução para o problema e transformá-la em código é próxima de zero. Ele cria a solução e ele mesmo a desenvolve. Ainda assim, ele de alguma forma está modelando mentalmente o sistema que irá construir. Entretanto, existem sérios problemas com esta abordagem. Primeiro, comunicar o modelo criado mentalmente para outros desenvolvedores é uma tarefa cujo risco de perda de informação durante a comunicação é alto. E segundo, imagine que o projeto em questão é grande e a equipe envolvida não se restringe a um ou dois programadores. Teríamos sérias dificuldades na construção do sistema. Isso sem falar que não existiria documentação para o software e sua manutenção no futuro traria dor de cabeça, com certeza. Assim, o uso da UML provê uma notação comum para o entendimento compartilhado sobre o software que se está construindo.
· Especificar: a UML permite a construção de modelos precisos, não ambíguos e completos.
· Construir: os modelos construídos utilizando a UML podem ser conectados a uma série de linguagens de programação permitindo uma tradução entre os modelos construídos e o código. Este mapeamento permite também a engenharia reversa na qual os modelos são gerados a partir do código fonte. Vale uma ressalva aqui, UML não é uma linguagem visual de programação.
· Documentar: neste caso, os modelos criados durante o desenvolvimento fazem parte da documentação do software.
A Figura 1 nos dá uma boa metáfora da importância da UML para a construção de software. Da mesma forma que precisamos de um projeto bem feito antes de construirmos um edifício, precisamos também para software. Perceba que a planta de uma casa facilita a comunicação entre os envolvidos na construção, permite uma avaliação do cliente e assim por diante.
Figura 1.
Como o próprio nome nos diz, a UML é uma linguagem de modelagem, não um método. Ou seja, ela nos diz o que podemos modelar, mas não como. Modelos servem para possibilitar o entendimento do ambiente no qual o sistema irá operar, a comunicação entre as pessoas envolvidas em um projeto, promover a melhor compreensão dos requisitos do projeto, promover a difusão deste conhecimento entre os envolvidos e, avaliar diferentes soluções através da modelagem da solução.
Nota
UML é apenas uma notação e não propõem/define como organizar as atividades de projeto. Por isto, pode ser ajustada para satisfazer a diferentes situações de desenvolvimento e ciclos de vida de software.
A UML possui dois grandes conjuntos de diagramas (ver Figura 2):
· Estrutural: modelam aspectos estáticos do software focando nas entidades participantes e seus relacionamentos. Os diagramas deste conjunto são: diagrama de classes, objetos, componentes e implementação.
· Comportamental: modelam aspectos dinâmicos do software focando, na maioria das vezes, como as entidades interagem para prover uma determinada funcionalidade para o usuário. Os diagramas deste conjunto são: diagrama de casos de uso, seqüência, colaboração, estados e atividades.
Figura 2. Em cinza temos os diagramas estruturais e em branco, os comportamentais.
Veremos a partir de agora como elaborar os principais (mais utilizados) diagramas da UML através de um estudo de caso.
Estudo de Caso e Especificação dos Requisitos
Considerando a descrição de requisitos apresentada na Listagem 1 sobre um sistema de aluguel de automóveis podemos identificar quatro requisitos funcionais. São eles: cadastrar cliente, cadastrar carro, efetuar aluguel, dar baixa no aluguel. Para cada um desses requisitos funcionais é preciso fazer sua especificação. Neste caso, escolheremos cadastrar cliente e efetuar aluguel e, faremos a especificação seguindo o modelo apresentado no artigo Desenvolvimento de aplicações orientadas a objeto apoiado por tecnologias Java Parte II – Análise publicado nesta edição. Assim, temos para o caso de uso cadastrar cliente a Tabela 1 e para o caso de uso efetuar aluguel a Tabela 2. Perceba que neste caso a associação entre requisitos identificados e casos de uso é de um para um, mas nem sempre isso é verdade. Para saber mais sobre como identificar atores e casos de uso veja Box 1. A Figura 3 apresenta o diagrama de casos de uso criado. O Funcionário é o ator que interage com o sistema e os casos de uso, as funcionalidades a serem disponibilizadas.
Uma locadora de veículos deseja um sistema para facilitar o atendimento a seus clientes. O processo de aluguel de carros atual é confuso e está gerando insatisfação entre os clientes. A locadora é formada basicamente pelos seus clientes e carros para aluguel. Os carros estão divididos em diversos tipos: popular, luxo e utilitário. As informações importantes sobre os carros a serem armazenadas são: código (placa do carro), tipo, modelo, ano, cor, chassis, quilometragem e valor do aluguel (diária).
Os funcionários serão responsáveis pelo cadastro dos clientes e dos carros adquiridos pela locadora, por efetuar o aluguel de um carro para o cliente e dar baixa no aluguel. Existem clientes especiais e clientes comuns. Os especiais possuem uma taxa de desconto e um valor de quilometragem extra para seus aluguéis. Qualquer cliente é identificado por RG, nome, CPF, telefone, endereço, contato.
Listagem 1.
... |