É utilizado para:
modelar a visão estática do projeto de um sistema;
modelar o relacionamento entre os diversos objetos que farão
parte do sistema;
capturar o vocabulário do problema;
gerar as declarações da estrutura das classes.
Figura 86 – Exemplo de diagrama de classe
Explicação do diagrama de classes: CLIENTE pode estar associado a 0 OU N PEDIDOS e este está associado a pelo menos um tipo de pagamento (abstrata, não é instanciada: crédito, dinheiro ou cheque). PEDIDO é composto de partes (agregação): detalhes do pedido, ou seja, um ou mais detalhes de pedido e está associado a um item do estoque que será dado baixa. A dificuldade é elaborar o diagrama e não na leitura, principalmente quando há muitas informações. Há projetos com 100 classes e tende a ter complexidade alta e quando o domínio é definido é mais fácil.
COMO FAZER UM DIAGRAMA DE CLASSES
Identifique um primeiro conjunto de classes;
Adicione atributos e comportamentos;
Encontre generalizações;
Adicione associações;
Reveja o modelo construído adicionando ou removendo classes,
atributos, associações ou generalizações.
IDENTIFICANDO AS CLASSES
Ler a especificação de requisitos;
Extrair nomes: simples ou compostos;
Eliminar os que são: redundantes, representam instâncias, são vagos
ou genéricos demais e desnecessários para a solução do problema;
Atentar na especificação para os nomes que indicam atores que
interagem com o usuário;
Decida baseando-se em seu conhecimento do domínio, na
especificação de requisitos ou em um especialista do domínio os dados que devem ser contidos em cada classe.
IDENTIFICANDO OS ATRIBUTOS
Se um subconjunto de atributos de uma classe formam um grupo
coerente pode ser interessante criar uma outra classe para estes atributos.
IDENTIFICANDO O COMPORTAMENTO
Ler a especificação de requisitos;
Extrair verbos: simples ou compostos;
Eliminar os que são: redundantes, representam instâncias, são vagos
ou genéricos demais ou desnecessários para a solução do problema;
Colocar os comportamentos extraídos nas classes identificadas.
IDENTIFICANDO GENERALIZAÇÕES
Existem duas formas para identificação de generalização:
o BOTTOM-UP: agrupa classes simulares criando uma superclasse;
o TOP-DOWN: procurar por classes mais genéricas para então, se
preciso, especializá-las.
IDENTIFICANDO ASSOCIAÇÃO
Começar com as classes considerando mais centrais e importantes; Decidir quais os relacionamentos destas com as outras;
Uma associação existe se uma classe: possui, controla, está conectada
para, está relacionada para, é parte de, tem como parte, é membro de e tem como membro;
Alguma outra classe no modelo;
Evite adicionar muitas associações a uma classe. O acoplamento fica
muito alto;
Especifique a multiplicidade.
EXEMPLO – ESTUDO DE CASO: LOCADORA DE VEÍCULOS
Este estudo está completo na página 89.
Alugar Carro: cliente deve solicitar ao funcionário o aluguel do carro. O
sistema verifica se o carro solicitado pelo cliente está disponível. Caso esteja, o processo de locação é concluído e o carro passa a estar
Vamos fazer juntos
indisponível. A data de aluguel deve ser guardada para calculo do valor do aluguel na devolução.
Dar Baixa: cliente faz devolução do carro para o funcionário e solicita
nota fiscal (recibo) com a quilometragem percorrida e o valor do aluguel. O funcionário coloca o status do carro novamente como disponível, solicita ao sistema para calcular o valor a ser pago e emite o recibo para o cliente.
Cadastrar Cliente: cliente solicita ao funcionário que o cadastre na
locadora. O funcionário recebe os dados e cadastra-o.
Cadastrar Carro: funcionário cadastra o carro adquirido.
PASSOS PARA IDENTIFICAR AS CLASSES (HEURÍSTICA) 1. Descrição dos requisitos;
2. Extrair os substantivos; 3. Tentativa de classes;
4. Eliminar classes estranhas; 5. Classes identificadas.
EXERCÍCIOS
1) Em relação aos relacionamentos abaixo responda:
a) Qual a representação mais correta – a primeira ou segunda relação? Por quê?
2)Qual a diferença de intepretação entre as duas representações? Qual seria mais indicada para um tribunal regional eleitoral?
3) Com base nos requisitos funcionais abaixo, defina um diagrama de classes:
RF01 - O software deverá permitir que o gerente cadastre salões de festas. RF02 - O software deverá permitir que o gerente cadastre profissionais.
RF03 - O software deverá permitir que o gerente realize o cadastramento de serviços utilizados em uma festa de casamento, como buffet, carros utilizados. RF04 - O software deverá permitir que o cliente realize o cadastramento da lista de convidados.
RF05 – O software deverá permitir que o cliente realize o cadastramento das lojas de presentes.
RF06 - O software deverá permitir que o cliente elabore da configuração da festa pelo cliente.
RF07 - O software deverá permitir a geração do orçamento para o cliente.
RF08 - O software deverá permitir que o gerente realize a impressão de relatórios de festas.
RF09 - O software deverá permitir que o cliente cadastre a lista de presentes. RF10 - O software deverá permitir que o gerente realize o cadastramento de usuários.
RF11 - O software deverá permitir a autenticação dos usuários
4) Com base no estudo de caso abaixo faça o diagrama de classes:
Os funcionários da transportadora devem cadastrar clientes, filiais, veículos, funcionários, tipos de veículos, cidades, distancias, categorias de frete e fretes de clientes.
Clientes são pessoas físicas e possuem: nome, endereço e telefone. Filiais têm: nome, endereço, telefone, funcionário responsável e vários
veículos. Veículos devem possuir placa e um tipo de veiculo, além de ser necessariamente de uma filial.
Funcionários são identificados pela matricula e têm ainda: nome,
endereço, telefone e dependentes (nome e data de nascimento), além de estar associado, obrigatoriamente a uma filial. Tipo de veículo apresenta uma descrição (caminhão, moto, etc) e o peso máximo que Pode transportar além de estar associado a veículos.
Cidades contêm nome e estado a que pertence, representando as
e destino e para cada par de cidades atendidas, deve haver a distância em quilômetros entre elas.
Categoria do frete deve conter descrição e um percentual, que deve
incidir sobre o valor do frete onde, por exemplo, entregas rápidas têm aumento de 10% entregas super-rápidas tem aumento de 30% e entrega normal não tem acréscimo no valor. Cada frete tem um código, um cliente, o veiculo deve efetuar o frete, cidade origem e destino, funcionário responsável e itens a serem transportados, não podendo haver um frete sem os dados citados. Ainda precisa ter o valor a ser calculado através da distância percorrida entre as cidades: origem e destino e da categoria do frete. Para isso, deve existir um valor padrão para o km rodado. Um item de transporte é cada objeto a ser transportado num frete e deve possuir apenas uma descrição e seu peso. Por fim, temos que o sistema ainda deve emitir Nota Fiscal com todas as informações de um determinado frete, logo após o seu cadastramento.
4) Com base nos requisitos funcionais abaixo, faça o diagrama de caso de uso e o diagrama de classe:
RF01. O sistema deve permitir á secretaria cadastrar cursos contendo código, descrição e professor coordenador.
RF02. O sistema deve permitir à secretaria cadastrar disciplinas de cursos contendo código, descrição, carga horária, ementa, bibliografia e pré- requisitos;
RF03. O sistema deve permitir à secretaria cadastrar alunos contendo matrícula, o nome, endereço, telefone e curso para o qual aprovado.
RF04. O sistema deve permitir ao departamento de recursos humanos (RH) cadastrar professores, contendo nome, endereço, telefone e titulação máxima (graduação, especialização, mestrado, doutorado) e cursos que esteja vinculado.
RF05. O sistema deve permitir à secretaria abrir turmas de disciplinas e cursos, informando ano e semestre, dias da semana e horários de realização.
RF06. O sistema deve permitir aos coordenadores de curso alocar professores a determinadas turmas.
RF07. O sistema deve permitir a secretaria matricular alunos em turmas. RF08. O sistema deve permitir aos professores lançar avaliações (duas notas parciais, nota da prova final e frequência) dos alunos das turmas que estejam sob sua responsabilidade.
RF09. O sistema deve permitir aos alunos consultar suas avaliações.
RF10. O sistema deve permitir à secretaria emitir diários de classes de turmas.
RF11. O sistema deve permitir à secretaria emitir históricos escolares de alunos.
RF12. O sistema deve efetuar o cálculo da aprovação de alunos em turmas, sendo que para ser aprovado, deve-se ter frequência mínima de 75%. Além disso, para aprovação sem prova final, a média das notas
parciais deve ser maior ou igual a 70. Para reprovação direta esta média deve ser menor que 30. Médias entre 30 (inclusive) e 70 (exclusive) colocam o aluno em prova final. Se média da prova final com a média anterior for menor que 50, o aluno está reprovado, caso contrário, aprovado.
RF09. O sistema deve controlar a situação de um aluno, podendo estar matriculado, trancado, formado, ou ter abandonado o curso.
5) Faça o diagrama de classes do estudo de caso abaixo:
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 pe3lo 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.
6) Faça o diagrama de controle de respostas das questões de uma prova:
A Instituição de Ensino ―UniLinense‖ deseja controlar todas as
respostas referentes às questões, de uma determinada prova, aplicadas aos alunos da instituição. Sabe-se que uma prova tem que ter obrigatoriamente uma questão e pode ter várias, as questões por sua vez fazem parte da prova e só podem estar vinculada a uma determinada prova.
Cada prova tem somente um professor responsável e um mesmo professor pode se responsabilizar por várias provas. Os alunos a serem controlados se subdividem em alunos regulares e alunos dependentes. Ambos alunos respondem várias questões e uma questão é aplicada a vários alunos. Para cada questão aplicada a um aluno deseja-se armazenar uma resposta.
7) Faça o diagrama de controle de venda de veículos:
O objetivo principal desse sistema é controlar as vendas de veículos, direto da fábrica, realizadas pelos Concessionários aos clientes. Sabe-se que um Concessionário pode vender vários Veículos diretamente da fábrica e que os veículos podem ser vendidos em vários concessionários (por exemplo, um Gol pode ser vendido por vários concessionários). Toda Venda é destinada a um e somente um Cliente e todo cliente pode comprar vários veículos.
D
DIIAAGGR R AAMMAA DDEE OOBBJJEETTOOSS
Representa a instância (uma ocorrência) do diagrama de classes. Para cada classe temos um objeto (instância) em um determinado tempo.
Podemos enxergar dados reais facilitando a compreensão e a modelagem de estrutura complexas de dados. Auxilia ainda na identificação de problemas na execução de uma aplicação.
A representação gráfica é semelhante à classe, um retângulo com duas partes. Na primeira é exibido o nome do objeto sublinhado (pode ser omitido desde que mantenha os dois pontos e o nome da classe e na segunda os seus atributos um em cada linha com seus respectivos valores:
Nome do Objeto: nome do objeto : nome da classe. Exemplo:
Nome do Atributo: nome do atributo : tipo = valor. Exemplo:
O relacionamento entre os objetos é feito através de links que é a instância de uma associação. Um nome de papel pode ser mostrado no final de cada link. Multiplicidade não pode ser exibida para links, pois estão instanciadas. Podem ser exibidos os adornos de agregação, composição, navegação e qualificadores, notas, restrições e pacotes. Exemplo:
Diagrama de Classes
func1: Funcionário : Funcionário Funcionário1
Produto1:Produto descrição= ―Sala‖ cor = ―azul‖ tamanho = 40 preço = 15,00 Funcionário nome : string cargo : string salário : real Projeto descrição:string inicio: date fim : date custo : real FuncionárioContratado carteiraProfissional: string dataAdmissão:date FuncionárioTerceirizado inicioContrato:date terminoContrato:date prestadoraServicos:string taxaAdministracao:real trabalha gerencia 1..* 1 1 0..1
Diagrama de Objetos
Figura 75 – Modelo de Diagrama de Objetos