Escolar Documentos
Profissional Documentos
Cultura Documentos
Orientação a Objetos
e UML
Introdução a
Orientação a Objetos
Introdução a Orientação a Objetos
A construção de uma solução computadorizada consiste no
mapeamento do problema a ser resolvido no mundo real
(Espaço do Problema) em um modelo de solução no Espaço de
Soluções.
Gap Semântico – distância entre o problema do mundo real e o
modelo abstrato construído.
A Orientação a Objetos é um dos paradigmas existentes para
apoiar o desenvolvimento de sistemas, que busca fornecer
meios para se diminuir o gap semântico.
Introdução a Orientação a Objetos
Introdução a Orientação a Objetos
Vantagens / Benefícios
Gap Semântico Reduzido – o mundo real é composto por objetos, e o mesmo ocorre
com o mundo computacional, facilitando assim a compreensão;
Centralização de dados e funções em uma única unidade, o objeto;
Reutilização – o que permite um ganho significativo de tempo e custo. Aqui há destaque
para o conceito de herança. No desenvolvimento de softwares o uso de tal conceito
reduz custo e tempo;
Modularização - não só no que se refere aos pacotes, mas principalmente ao tratamento
de classes;
Compatibilidade - os modelos desenvolvidos (análise, projeto e programação) são
claramente relacionados e complementares. Fica destacada aqui a importância
crescente
da documentação de um software;
Manutenibilidade - a modularização natural em classes facilita a realização de alterações
no software.
Ocultamento de Informação – uma classe enxerga apenas a interface de outra classe, o
que evita vários erros acidentais.
Introdução a Orientação a Objetos
Objetos podem ser não só coisas concretas como também coisas inanimadas, como
por exemplo uma matrícula, as disciplinas de um curso, os horários de aula
Objetos
Mas o que é Objeto?
De acordo com o dicionário: - Objeto: “1. Tudo que se oferece aos nossos sentidos ou
à nossa alma. 2. Coisa material: Havia na estante vários objetos. 3. Tudo que
constitui a matéria de ciências ou artes. 4. Assunto, matéria. 5. Fim a que se mira ou
que se tem em vista”
Objetos podem ser não só coisas concretas como também coisas inanimadas, como
por exemplo uma matrícula, as disciplinas de um curso, os horários de aula
Classes
O que é uma Classe?
Uma classe descreve um conjunto de objetos com propriedades e
comportamentos semelhantes e com relacionamentos comuns com outros
objetos.
Classes podem incluir abstrações que são parte do domínio do problema, assim como as
classes que fazem uma implementação. Podemos usar ainda as classes para
representar itens de software, de hardware e até itens que sejam somente conceituais.
Exemplo:
A classe Pessoa deverá ter atributos e métodos comuns
Tipos de Classes
Classe Concreta – Uma classe que tem assinatura e a
implementação de métodos.
Classe Abstrata – Provê organização, não possui “instances” e
possui uma ou mais operações (métodos) abstratas.
Interfaces
O diagrama de casos de uso é a ferramenta gráfica utilizada
para este propósito. Nele demonstramos visualmente o
comportamento esperado ( as funcionalidades ) pelo sistema e
todos os envolvidos com o sistema ( atores ) e com isso temos a
fronteira do sistema definida de forma clara e objetiva.
Elaboramos o diagrama de casos de uso de sistema para
representar os requisitos funcionais, ou seja, as funções que
deverão estar disponíveis no sistema para que as necessidades
que motivaram a sua construção sejam satisfeitas.
Descrevendo o Sistema sob o ponto de vista do
usuário.
A modelagem de casos de uso deve ser feita considerando-se a
visão do usuário, seus problemas, suas necessidades de
informação, as atividades que fazem parte do seu dia a dia, as
informações com as quais trabalha, etc.
Um único indivíduo pode interpretar o papel de vários atores (por exemplo, José,
além de ser – ou interpretar o papel de – caixa, pode atuar como o atendente de
balcão); vários indivíduos podem interpretar o papel de um único ator (por
exemplo, José e Pedro podem ser, ambos, atores caixa).
O que são Atores?
Exemplo: UC_01_IncluirRepresentanteLegal
Atores Envolvidos
- Preencher com os atores que interagem com o caso de uso no
diagrama de casos de uso.
- Todos os atores envolvidos devem ser mencionados neste item.
Pré-Condição
- Descrever as condições que devem ser verdadeiras para que o
caso de uso seja executado.
- Estas condições devem especificar o estado do sistema antes da
execução do caso de uso.
Pré-Condição ( Continuação )
- Descrever as condições que devem ser verdadeiras para que o
caso de uso seja executado.
- Estas condições devem especificar o estado do sistema antes da
execução do caso de uso.
Fluxo de Eventos
- São sequências de passos que representam os cenários possíveis
para um caso de uso. Um caso de uso pode ter vários cenários.
- Os passos devem descrever o que deve ser feito e não como fazer.
- Um cenário é uma sequência específica de ações que ilustra um
comportamento.
Escrevendo Casos de Uso Eficazes
O Fluxo Básico normalmente deve ser iniciado por uma ação do Ator ou por um
Evento como por exemplo Passagem do Tempo, nesse caso o Ator é o
Temporizador ou simplesmente Tempo.
Exemplos:
O Caso de Uso inicia quando o Ator seleciona a opção Consultar Beneficio por NIT
O Fluxo Básico não deve conter condições para a realização dos passos. As
condições são especificadas nos Fluxos Alternativos e nos Fluxos de Exceção.
Sempre que houver erros ou exceções para um determinado passo do Fluxo Básico
mencionar entre parênteses(), os Fluxos Alternativos (alternativas) e os Fluxos
de Exceção (erros ou exceções) que irá tratar as alternativas ou exceções. Esta
prática é importante para facilitar compreensão do Caso de Uso.
Fluxo Alternativo
Fluxo Alternativo
Às vezes, o Fluxo Básico possui várias alternativas prováveis de ocorrer. Nestes casos,
pode-se usar o conceito de Fluxo Alternativo. Os Fluxos Alternativos representam um
dos possíveis caminhos do Fluxo Básico.
Um Caso de Uso pode ter vários Fluxos Alternativos e pode ser necessário vários níveis
de Fluxos Alternativos, porém recomenda-se cautela pois isso torna o Caso de Uso
mais complexo e difícil de entender.
Caso existem Fluxos Alternativos comuns e que são repetidos em diferentes Casos de
Uso, pode-se analisar a possibilidade de se modelar um novo Caso de Uso que
possa ser usado por outros Casos de Uso.
Relacionamento de Comunicação
Representa o relacionamento entre os Atores e os Casos de Uso
Um Ator pode se relacionar com mais de um Caso de Uso
O fato de um Ator estar associado a um Caso de uso significa que esse ator
interage (troca informações) com o sistema
É o mais comum dos relacionamentos
Relacionamentos entre Casos de Uso
Evita repetição de fluxos alternativos e passos entre os Casos de Uso,
promovendo reuso com a criação de novos Casos de Uso que podem ser
incluídos em outros Casos de uso
Um Caso de Uso pode ser incluído por mais de um Caso de Uso
A Inclusão é um relacionamento que elimina a repetição de informações e
simplifica a especificação de um Caso de Uso
O Relacionamento de Inclusão não deve refletir jamais a sequência de
navegação do Protótipo de Projeto.
Relacionamentos entre Casos de Uso
A figura abaixo mostra uma situação em que determinado restaurante opera de formas
diferentes no almoço e na janta: no almoço ele oferece refeição por quilo e à noite a refeição é
oferecida à la carte. Existe um conjunto de ações comum a ambos os casos de uso, que
ocorrem obrigatoriamente e de forma idêntica segundo as regras do restaurante: o pagamento
pela refeição.
Relacionamentos entre Casos de Uso
A figura abaixo mostra a situação em que o restaurante faz promoções para os almoços,
de modo que os clientes habituais não pagam a refeição a cada determinado número de
idas ao restaurante. Isso significa que, de acordo com as regras do restaurante, o
pagamento pelo almoço pode não ocorrer ou seja não é obrigatório pois está condicionado
a uma regra de negócio.
Relacionamentos entre Casos de Uso
Relacionamento de Generalização
Relacionamento permitido somente entre Casos de Uso
Permite que um Caso de Uso herde comportamento de um Caso de Uso
mais genérico
Somente o comportamento diferente precisa ser redefinido em um Caso de
Uso que herda o comportamento do Caso de Uso ancestral.
Então o Caso de Uso herdeiro pode especializar o comportamento do
Caso de Uso Base, adicionando novo comportamento nos passos dos
Fluxos de Evento ( Fluxo Básico, Fluxo Alternativo e Fluxo de Exceção )
Este Relacionamento pode existir entre Casos de Uso e entre Atores.
Não é um tipo muito comum de Relacionamento e deve ser evitado.
Relacionamentos entre Casos de Uso
As Regras de Negócio tratadas por um Caso de Uso deve ser referenciadas entre
parênteses () no passo do Fluxo de Evento em que são aplicadas. Esta boa
prática de especificação ajuda a manter a rastreabilidade entre os Casos de Uso
e as Regras de Negócio.
A Regra de Negócio deve ser aplicada no passo em que o Ator interage com o
sistema e nunca no passo em que o sistema envia resposta ao Ator.
Para cada Regra de Negócio deverá ser especificado um Fluxo de Exceção para
tratar a exceção para quando a Regra de Negócio não for atendida.
O Fluxo de Exceção que tratar uma Regra de Negócio deve conter a referência à
Regra de Negócio e, adicionalmente, à Mensagem que deve ser apresentada ao
Ator, se for o caso.
Regras de Validação
Devem ser aplicadas Regras de Validação no passo onde o Ator interage com o
sistema e nunca no passo que o sistema envia resposta ao Ator.
Toda Regra de Validação deve ter um Fluxo de Exceção para tratar a situação em
que a Regra de Validação não for atendida.
O Fluxo de Exceção que tratar uma Regra de Validação deve conter a referência
à Regra de Validação e, adicionalmente, à Mensagem que deve ser
apresentada ao Ator, se for o caso.
Mensagens do Sistema
Quando existir um passo em que foi exibida uma Mensagem a referência a esta
Mensagem deve constar no passo e deve vir entre parênteses (). Deve ser
referenciado no passo o código da mensagem e mencionado o tipo de erro.
Exemplo:
O sistema apresenta mensagem de confirmação do cadastramento (MSG_XXX)
Exercícios
Exercícios – Diagrama de Casos de Uso
Exercício 1
Vídeo Locadora
Desenvolva um Diagrama de Casos de Uso para um Sistema de vídeo locadora que trabalha da
seguinte forma:
Ao realizar uma locação, o sócio deve primeiro informar seu código para que o atendente possa
verificar se este se encontra cadastrado. Se o sócio não estiver cadastrado, então a locação deverá
ser recusada e o sócio será informado de como proceder para se cadastrar. Caso esteja cadastrado,
o atendente deve verificar se o sócio em questão, já devolveu todas as locações feitas
anteriormente, se não o tiver feito, a locação deve ser recusada.
Caso o sócio tenha quitado todas as locações anteriores, então este deverá informar os títulos dos
filmes ou os números das cópias dos filmes que deseja alugar. Em seguida o atendente registrará a
locação e fornecerá as cópias em questão para o sócio.
Exercício 2
Desenvolva o Diagrama de Casos de Uso para um sistema de venda de passagens aéreas pela
Internet, equivalente ao módulo de compra de passagens por um cliente, levando em consideração
os seguintes fatos:
O cliente deve selecionar o local de origem ( cidade e aeroporto de onde partirá ) voo e o local de
destino, informando ainda se deseja uma passagem só de ida ou passagens de ida e volta. Em
seguida o cliente deve selecionar a data de partida e, se tiver optado por ida e volta, a data de
retorno.
Após isso, o cliente deve consultar os horários e classes (econômica, executivo, etc ) disponíveis do
vôo desejado.
Caso o cliente esteja de acordo com o horário e preço de algum dos voos apresentados, então ele
deve selecionar os assentos disponíveis e informar o número de parcelas com que deseja pagar a
passagem.
Exercícios – Diagrama de Casos de Uso
Exercício 3
Clínica Veterinária
Um cliente chega à clínica onde marca uma consulta com a secretária, informando seus dados
pessoais e do(s) animal(s) que deseja tratar. Se o cliente ou o animal ainda não foram cadastrados
ou precisam atualizar algum dado, a secretária deverá atualizar seus cadastros.
Em cada sessão de tratamento, o cliente deve informar os sintomas do animal e estes devem ser
registrados. Um tratamento pode ser encerrado a qualquer momento ou pode ter várias sessões
dependendo do diagnóstico feito pelo médico-veterinário.
Modelando o fluxo de
processos com
Diagrama de
Atividades
Tipos de Diagramas
Diagramas Comportamentais
Diagrama de Caso de Uso
Diagrama de Sequência
Diagrama de Colaboração
Diagrama de Estados
Diagrama de Atividades
Diagramas Estruturais
Diagrama de Classes
Diagrama de Pacotes
Diagrama de Objetos
Diagrama de Componentes
Diagrama de Implantação
Diagrama de Atividades
Transição
Decisão
Locação de Fitas
O sócio deve se dirigir ao atendente e apresentar seu código de registro de sócio ou, se não se
lembrar, seu nome.
O atendente então pesquisa o sócio no cadastro de sócios para verificar se ele realmente é sócio.
Se não estiver cadastrado a locação deve ser recusada.
Caso o sócio esteja cadastrado, o sistema deve verificar se este possui alguma pendencia, ou
seja, alguma locação que não foi devolvida. Se houver alguma pendencia a locação deve ser
recusada.
Se o sócio não possuir pendencias, então o atendente irá registrar a locação, bem como cada uma
das cópias locadas.
Exercícios – Diagrama de Atividades
Primeiramente o cliente deve selecionar o local de origem, ou seja, um dos aeroportos da cidade
onde o passageiro tomará o voo.
Em seguida, o cliente deve selecionar o local de destino, ou seja, o aeroporto da cidade para onde
o passageiro deseja viajar.
Após isso, o cliente irá consultar todos os voos que possuam escala nos aeroportos de origem e
destino selecionados.
Caso o valor e o horário de algum voo satisfaçam o cliente, este comprará uma passagem para o
vôo em questão, caso contrário, o processo será encerrado.
Se o cliente optar por comprar uma passagem, este deverá se identificar caso já seja registrado ou
gerar um novo registro caso não esteja cadastrado.
Em seguida, deverá selecionar a forma de pagamento da passagem após o que a passagem será
finalmente gerada.
Exercícios – Diagrama de Atividades
Clínica Veterinária
Crie um Diagrama de Atividades referente ao processo de geração de uma nova consulta de um determinado
animal de um sistema de clínica veterinária, determinando os passos percorridos durante este processo, levando
em consideração as seguintes características.
Ao chegar a veterinária, o dono do animal deve se identificar. Caso este não esteja registrado, a secretária deverá
cadastrar os dados pessoais do cliente, bem como de seu animal.
Ao consultar um cliente, uma lista de todos os animais do cliente é apresentada junto com os dados pessoais do
cliente. Caso o animal para o qual o cliente deseja atendimento não esteja presente na lista, a secretária deve
cadastrá-lo.
Ao selecionar um animal, a secretária pode visualizar todos os tratamentos do animal, já realizados ou ainda em
andamento.
A partir da listagem dos tratamentos, a secretária pode selecionar um tratamento, o que fará surgir juntamente com
as informações gerais do tratamento, todas as consultas já realizadas durante o mesmo, permitindo também que
outra consulta possa ser marcada, caso o tratamento não tenha sido concluído.
Se for a primeira consulta do animal, primeiramente um novo tratamento deve ser gerado, contendo a data de inicio
do tratamento e identificando o animal e os sintomas gerais do animal. Caso não seja a primeira consulta deve-se
selecionar o tratamento referente à consulta para depois marcá-la.
Após selecionar o cliente, o animal para o qual será marcada a consulta e o seu tratamento, a secretária poderá
marcar a consulta. Sempre que for registrar uma nova consulta, a secretária deve informar a data e a hora
desejadas pelo cliente.
Mais Detalhes do
Diagrama de Classes
O que é Diagrama de Classes?
Nome e Sentido
Cardinalidade
.É uma indicação que especifica o número de objetos de cada classe envolvidos
com a associação.
Quando não há uma especificação de cardinalidade, entende-se que a
cardinalidade é 1.
A herança múltipla ocorre quando uma classe deriva de mais de uma classe base.
Mantém-se exatamente os mesmos princípios da herança porém a classe
derivada passa a incorporar em seu interior os atributos e métodos de mais de
uma classe base.
No exemplo não se pode mais afirmar que a classe CAutomovel seja uma
generalização completa de CCarro. CAutomovel é , na verdade,
uma generalização parcial pois só considera aspectos específicos de CCarro.
O conceito de especialização se mantém na herança múltipla. No exemplo,
CCarro é um caso especial de CAutomovel e é também um caso especial de
CBemMovel.
Diagrama de Objetos
Podemos usar a estrutura de pacotes para criar coesão entre as classes que tem
objetivos comum, por exemplo podemos colocar em único pacote todas as
classes que se referem a regras de negócios.
Locação de Fitas
Um filme tem obrigatoriamente ao menos uma cópia, mas pode possuir diversas cópias. Cada
cópia refere-se exclusivamente a um determinado filme.
Um sócio pode realizar muitas locações enquanto permanecer sócio da locadora, mas uma
locação refere-se unicamente a um sócio.
Cada locação deve obrigatoriamente referenciar ao menos uma cópia de filme, podendo
referenciar muitas cópias, no entanto uma mesma cópia pode ser alocada diversas vezes, ao
longo do tempo.
Exercícios – Diagrama de Classes
Elabore um Diagrama de Classes para um sistema de venda de passagens aéreas pela Internet,
equivalente ao módulo de compra de passagens por um cliente. Considere as seguintes
informações:
Um cliente pode ser um passageiro de muitos voos, cada voo requer a compra de uma passagem.
No entanto, cada passagem se refere a um cliente específico. A empresa mantém um cadastro de
todos os clientes que já foram passageiros algum dia.
Um voo pode ter muitos passageiros, no entanto cada passageiro se refere exclusivamente a um
voo específico. Cada voo possui origem, destino, data e hora.
Um voo pode fazer escalas em diversos aeroportos, ou seja, pode ter diversos destinos e um
aeroporto pode ser o destino de muitos voos. A empresa mantêm um cadastro de todos os
aeroportos para onde oferece voos.
Um aeroporto está localizado em uma cidade especifica, mas uma cidade pode possuir muitos
aeroportos.
Exercícios – Diagrama de Classes
Clínica Veterinária
Crie o Diagrama de Classes para um sistema de clínica veterinária, levanto em consideração as seguintes
características:
Um cliente pode possuir muitos animais, mas um animal pertence a apenas um único cliente. A clínica
precisa de informações a respeito de cada cliente, como nome, endereço, telefone e e-mail, além de um
resumo dos animais que lhe pertencem.
Um animal pertence a uma única espécie, porém podem haver vários animais de uma espécie. É preciso
manter informações sobre cada animal, como nome, sexo, idade e espécie a qual pertence.
Um animal pode realizar vários tratamentos, mas um tratamento é realizado exclusivamente por um
animal.
Cada tratamento possui ao menos uma consulta, mas pode possuir muitas consultas. Uma determinada
consulta refere-se exclusivamente a um determinado tratamento. Cada consulta deve armazenar
informações como a data em que foi realizada por somente um veterinário.
Um veterinário pode realizar muitas consultas, porém uma consulta deve ser realizada por somente um
veterinário.
Em uma consulta podem ser marcados exames para o animal, o número de exames possíveis em uma
consulta é indeterminado, mas precisam ser registrados.
Modelando
Interações entre
Objetos
O que é Diagrama de Sequência?
Locação de Fitas
O atendente deve verificar se o sócio está cadastrado. Senão estiver cadastrado a locação deve
ser recusada.
Em seguida, o atendente deve verificar se o sócio possui alguma locação pendente, caso em que
também recusará o empréstimo.
Se o sócio existir e não tiver locações pendentes, então a locação deverá ser registrada e as
cópias emprestadas ao sócio.
Passagens Aéreas
O cliente irá selecionar uma origem ( seu ponto de partida ) e um destino ( seu ponto de chegada )
e consultar todos os voos relacionados ao destino escolhido que partam da origem selecionada.
Caso o horário e o valor de algum dos voos retornados satisfaça o cliente, ele comprará as
passagens.
Ao comprar uma passagem, o cliente precisa se identificar, caso já esteja cadastrado na empresa
ou se registrar, caso ainda não esteja cadastrado. Mesmo que já esteja registrado, um cliente pode
ter que atualizar seus dados.
Clínica Veterinária
Se a consulta não for a primeira consulta do tratamento, o veterinário antes de examinar o animal
pode querer verificar o histórico das últimas consultas do tratamento. Para isso será necessário
consultar o dono do animal que está sendo tratado, esta consulta trará juntamente com as
informações do cliente uma listagem de todos os animais pertencentes ao cliente. Com esta
listagem, o veterinário seleciona o animal a ser tratado, o que forçara exibir as informações
específicas do animal. A partir do cadastro do animal podemos consultar uma lista de todos os
tratamentos feitos pelo mesmo e após selecionar o tratamento atual do animal pode-se visualizar
uma nova listagem contendo todas as consultas já realizadas, bastando ao veterinário selecionar a
consulta desejada.
Após a realização da consulta pelo veterinário deve-se registrar o histórico da consulta que contém
a data em que a consulta foi realizada, o resumo do diagnóstico que foi feito e o médico veterinário
que realizou a consulta. Se for a primeira consulta, o sistema deve gerar uma nova instância de
tratamento, já que um tratamento pode possuir muitas consultas, mas uma consulta é sempre
relacionada a um tratamento.
Modelando o Ciclo de
Vida do Objeto
(Máquina de Estado)
O que é Diagrama de Estado?
Locação de Fitas
Desenvolva o Diagrama de Máquina de Estados para o sistema de locadora de fitas para o módulo
de locação de fitas de filmes, enfocando os estados de uma locação, de acordo com os fatos já
apresentados e nas informações descritas abaixo:
Caso não haja pendências, deve-se iniciar o registro da nova alocação, bem como de cada item
locado.
Após selecionar todas as cópias desejadas para a locação, esta deve ser finalizada.
Exercícios – Diagrama de Máquina de Estados
Após requisitar os possíveis voos que façam escala nos locais de origem e destino desejados pelo
cliente e caso o horário e o valor de algum dos voos retornados satisfaçam o cliente, então o
cliente selecionará um dos voos na listagem apresentada.
Em seguida o cliente deverá se identifica a após isso selecionar a forma de pagamento através da
qual desejar pagar as passagens.
Finalmente, o cliente poderá confirmar a compra o que fará com que a passagem seja gerada.
Exercícios – Diagrama de Máquina de Estados
Clínica Veterinária
Primeiro é necessário identificar o dono do animal que deseja marcar a consulta e em seguida o
animal propriamente dito.
Se for a primeira consulta, um novo tratamento deve ser gerado, antes que a consulta seja
marcada, já que um tratamento pode possuir muitas consultas, mas uma consulta pertence
unicamente a um tratamento.
Locação de Fitas
É necessário existir um módulo principal, cuja função será chamar os outros módulos do sistema.
É necessária também a existência de um módulo para gerenciar os diversos filmes oferecidos pela
locadora. As cópias dos filmes são gerenciadas neste mesmo módulo.
Finalmente é preciso haver um módulo para gerenciar os empréstimos de fitas realizados pela
locadora.
Exercícios – Diagrama de Implantação
A interface de venda de passagens roda na própria máquina do cliente, quando este a acessa
através da Internet.
As solicitações do cliente são retransmitidas pela interface de venda de passagens para o servidor
de comunicação da empresa. As solicitações serão então interpretadas pelo módulo controlador da
página, que as repassará para o módulo de venda de passagens.
O módulo de venda de passagens, juntamente com o módulo responsável por manter os clientes
da empresa, rodam em um servidor de aplicação e se comunicação com um servidor de banco de
dados, que mantêm as informações do sistema, localizado em um servidor de arquivos.
Finalmente há um segundo servidor de aplicação, onde devem rodar os módulos responsáveis por
gerenciar os voos oferecidos pela empresa, bem como as escalas mantidas pela empresa e os
aeroportos onde os voos pousam. Da mesma forma que no primeiro servidor de aplicação, os
módulos deste servidor buscam os dados em um SGBD localizado em um servidor de arquivos.
Exercícios – Diagrama de Implantação
Clínica Veterinária
É preciso haver um módulo responsável pela manutenção dos médicos-veterinários que trabalham
na clínica.
Deve haver também um módulo para manter o cadastro de clientes e seus respectivos animais,
bem como os tratamentos e consultas por eles realizados.
Fim