UML, ou Unified Modelling Language
É a linguagem responsável pela criação lógica de um sistema a partir de pontos de vista diferentes, onde cada qual é representado por um diagrama específico, fazendo assim uma espécie de simulação do que o modelo físico do sistema deverá fazer.
É composta por:
Diagrama de caso de uso, diagrama de classe, diagrama de sequência, diagrama de estados, diagrama de colaboração, diagrama de atividade, diagrama de componente, diagrama de entidade-associação e diagrama de distribuição.
Diagrama de Caso de Uso
Faz uma representação do sistema a partir da visão do usuário, ou seja, mostra de forma simples o que é feito no sistema e suas interações com o usuário. É composto por cenário, ator, use case e comunicação, sendo que:
1. Cenário: Sequência de eventos que acontecem quando um usuário interage com o sistema.
2. Ator: Usuário do sistema, ou melhor, um tipo de usuário.
3. Use Case: É uma tarefa ou uma funcionalidade realizada pelo ator (usuário)
4. Comunicação: É o que liga um ator com um caso de uso
Relações
Include: É um caso de uso mais específico que esta conectado a outro, assim mantendo a relação de dependência, já que se torna necessário a existência de um para o outro funcionar.
Extend: Também é conectado a um caso de uso e tem uma funcionalidade mais específica porém a relação de dependência não existe.
Exemplo:
O Conselho Nacional de Medicina em parceria com algumas Drogarias e o Governo Federal decidiram criar um sistema com o objetivo de fornecer medicamentos via web, tendo assim o cliente ou paciente mais facilidade e comodidade para se tratar.
O sistema tem como objetivo fornecer medicamentos através da consulta pelo cliente, uma lista com as drogarias que possuírem o medicamento solicitado vai aparecer na tela e o cliente vai poder selecionar a que desejar assim como a quantidade.
O cliente poderá(caso necessário) enviar uma receita médica especial via upload, que será disponibilizada pelo médico, a receita por sua vez será analisada por um administrador do sistema, o qual fará o papel do farmacêutico e por fim o mesmo confirmará a compra caso a receita esteja ok, ou negará a compra caso haja algum problema com a mesma.
Pra finalizar, a drogaria selecionada vai enviar o medicamento ao usuário assim como a nota fiscal, terminando assim toda a transação.
Diagrama de Classe
Diferente do caso de uso, o Diagrama de Classe mostra a visão do analista para o programador, definindo assim as classes(entidades), atributos, chaves, métodos e relações entre classes. Ainda trabalhando em cima do sistema de Farmácia, o diagrama de classes ficaria dessa forma.
Relações:
Associação: Relacionamento simples entre classes onde cada associação representa o tipo de relação entre as classes envolvidas.
Agregação: Relação de composição entre classes porém sem dependência, semelhante ao extend do Caso de Uso.
Composição: Uma relação de composição e dependência entre duas classes, semelhante ao include do Caso de Uso.
Generalização ou Especialização: Ou herança, onde uma classe herda atributos e métodos da classe principal.
É importante ressaltar que toda informação a ser armazenada no banco será uma entidade mas não necessariamente uma classe, por exemplo: Drogaria e Usuário são entidades pois possuem dados essenciais para o sistema, ou seja, precisam ser mantidos no banco para consultas, mas caso houvesse uma classe “Telefones”, onde a mesma armazenasse somente os números do usuário seria então somente uma classe comum com dados não essenciais ao sistema.