VB .NET - Curso Prático ADO .NET - Desenvolvendo uma aplicação : UML e Casos de Uso - II


Na primeira parte iniciamos o curso prático para desenvolvimento de uma aplicação para vendar filmes que surgiu da necessidade de alavancar os negócios de uma pequena empresa do ramo.

No levantamento de requisitos identificamos as funcionalidades do sistema e agora vou apresentar alguns conceitos sobre UML- Unified Modeling Language, mais especificamente sobre os diagramas usados pela UML para descrever o sistema como: diagrama de casos de uso, diagrama de sequências, diagrama de colaboração, etc..

UML - Unified Modeling Language

A UML - Unified Modeling Language - é uma linguagem gráfica padrão para modelagem de dados orientado a objetos. Com ela podemos fazer uma modelagem visual de maneira que os relacionamentos entre os componentes do sistema sejam melhor visualizados e compreendidos e documentados.

Podemos dizer também que a UML é uma linguagem para especificar , construir , visualizar e documentar um sistema de software que surgiu com a fusão das metodologias já anteriormente usadas e tem como objetivo

  1. Modelar sistemas usando os conceitos da orientação a objetos
  2. Estabelecer um elo explicito entre os artefatos conceituais e os executáveis
  3. Tratar questões de representar sistemas complexos de missão crítica
  4. Criar um linguagem de modelagem que possa ser usada por homens e por máquinas

Assim a UML não é um método, é uma linguagem de modelagem designada para especificar, visualizar, construir e documentar um sistema. A linguagem de modelagem é a notação que o método utiliza para expressar projetos enquanto que o processo indica quais passos seguir para desenvolver um projeto.

A especificação da UML consiste de duas partes:

A UML suporta o desenvolvimento iterativo e incremental. O desenvolvimento iterativo e incremental é o processo de desenvolvimento de sistemas em pequenos passos. Uma iteração é um laço de desenvolvimento que resulta na liberação de um subconjunto de produtos que evolui até o produto final percorrendo as seguintes atividades:

O detalhamento de cada etapa destas atividades define o método de desenvolvimento de sistemas.

Vejamos a seguir os principais diagramas UML e um exemplo de sua utilização.

Modelagem de casos de uso

Objetivos principais:

Os casos de uso podem ser vistos como a ponte entre a Análise e a Especificação de Requisitos:

Casos de Uso

São uma descrição de um processo de negócio em texto formal que descreve a sequência de ações que representam um cenário principal e cenários alternativos com o objetivo de demonstrar o comportamento de um sistema através de interações de atores. Assim temos que os casos de uso:

• Representam as principais funcionalidades do sistema sob o ponto de vista dos atores;
• Indica O QUE fazer e não COMO fazer;

Os componentes dos Casos de uso são:

A representanção UML

A representação UML de um caso de uso é uma elipse com o nome do caso de uso no centro:

Atores

São entidades externas ao sistema que participam de um ou mais casos de uso normalmente ou fornecem eventos de entrada ou recebem alguma resposta do sistema.

Em geral, atores podem ser:

Relacionamentos Entre Casos de Uso

Objetivo: Aumentar a reutilização em diferentes contextos

Evita a descrição de um mesmo conjunto de fluxos de eventos, através da extração/fatoração do comportamento comum dos casos de uso.

A linguagem UML define três tipos de relacionamentos:

– Generalização (herança)
– Inclusão
(<< include >>)
– Extensão (
<< extend >>)

Abaixo vemos um diagrama de caso de uso para um sistema para vídeo locadora  que conta com 16 casos de uso dentre eles cadastros (cliente, filme, exemplar, funcionário, fornecedor, gênero, mídia, categoria, caixa,preço), locação, devolução e reserva.

A seguir vou apresentar um exemplo de especificação de caso de uso que poderá ser usada para  o nosso sistema.

Manter Cliente

Objetivo: Realizar o cadastramento, remoção ou alteração de dados de um  cliente.

Ator: Funcionário (usuário).
Prioridade do usuário: Essencial.

Fluxo principal:

    1. Usuário solicita dados pessoais do cliente.
    2. Sistema verifica existência do cliente na base de dados.

    Sub-fluxo: Cadastrar Cliente

        1. Usuário cadastra os dados do cliente no sistema.
        2. O sistema gera um número de cadastro para o cliente.

   Sub-fluxo: Alterar Cliente

        1. Usuário solicita dados a serem alterados.
        2. Usuário altera dados do cliente no sistema.

    Sub-fluxo: Remover Cliente

        1. Usuário remove cliente do sistema.

Fluxo secundário:

    Cliente já cadastrado.

         2.1 Exibir mensagem “Cliente já cadastrado”.
         2.2 Sair.

        Usuário cadastro autorizado.

        1. Estender Manter Autorizado. 

Outro diagrama UML muito importante é o diagrama de sequência.

Um diagrama de seqüência descreve a maneira como os objetos colaboram em algum comportamento ao longo do tempo e registra o comportamento de um único caso de uso. Esse diagrama é simples e lógico, com o objetivo de óbvios a seqüência e o fluxo de controle.

Abaixo temos um exemplo de um diagrama de sequência para um caso de uso Manter Cliente de um programa para videolocadoras onde o usuário solicita as informações para incluir, alterar e excluir um cliente do banco de dados:

Cada seta representa uma mensagem que é enviada de um objeto para outro. O tempo transcorre do topo para a base do diagrama, sendo exibida em seqüência as mensagens trocadas ao longo do tempo.

Diagrama de Colaboração

Mostra a interação organizada ao lado de cada classe de objetos e a ligação entre elas. Como o diagrama de seqüência, o diagrama de colaboração mostra as mensagens trocadas por um conjunto de objetos durante um cenário. É uma representação gráfica alternativa para mostrar um cenário. Descrevem grupos de objetos que colaboram através de comunicação.

Um diagrama de colaboração contém:

Através do diagrama de colaboração é mais fácil visualizar as mensagens trocadas entre os objetos, subsidiando assim a elaboração do diagrama de classes de objetos. Os objetos e as mensagens são as mesmas do diagrama de seqüência.

Utilizando o diagrama de colaboração é possível identificar se existe algum objeto que não troca mensagens com outro. Caso isto aconteça deve-se analisar o modelo de origem e verificar se este objeto é mesmo necessário. Os diagramas de seqüência e de colaboração serão mais utilizados no desenvolvimento do projeto quando são projetadas as implementações dos relacionamentos.

O objetivo do diagrama de colaboração é agrupar as mensagens entre pares de objetos de forma a fazer-se um levantamento das necessidades de comunicação.

A seguir temos um exemplo de diagrama de colaboração Pesquisar Vendas onde o usuário realiza pesquisas sobre filmes por data no banco de dados:

Toda a documentação dos casos de uso e sua descrição são feitas com base no documento de requisitos do sistema. Como o curso tem um enfoque prático eu não vou entrar em detalhes descrevendo cada um dos casos de uso identificados para a nossa aplicação.

A próxima parte vamos abordar a fase de projeto de alto nível.

Referências:


José Carlos Macoratti