Você está na página 1de 22

Resumo Análise OO

Unidade I
❖ Os diagramas que apoiam a análise e projeto estruturado são:
• Diagrama entidade e relacionamento (DER): modela a estrutura de dados
parados, ou seja, é o modelo conceitual do sistema. Mostra-nos as entidades e seus
relacionamentos, nesse modelo, muitos detalhes não são mostrados.
• Dicionário de dados.
• Diagrama de fluxo de Dados (DFD): modela o fluxo de dados, em outras
palavras, mostra os dados em movimento. Como ocorre a interação entra as diversas
entidades (depósito) do sistema.
❖ A orientação a objetos tem como principal característica a forma natural de tratar a realidade,
pois considera que o mundo real é formado de objetos. Benefícios segundo Sommerville:
• Reutilização do código (componentes) tem Vantagens:
▪ É um dos principais requisitos no desenvolvimento de software.
▪Mesmo com a complexidade dos sistemas, permite diminuir o número de
linhas de código. Resposta de Questão.
• Confiabilidade (objetos encapsulados);
• O aumento da produtividade;
❖ Primeiros Métodos OO:
• Modelo OOSA, proposto por Shlaer e Mellor em 1988;
• Wirfs-Brock, lançado em 1989, pelo grupo de pesquisa Smalltalk;
❖ UML: Abrange as fases de levantamento de requisitos, análise, projeto e implantação.
❖ Conceitos Básicos de OO:
• Objeto: Qualquer coisa concreta ou abstrata que existe no mundo real.
• Abstração: abstraímos quando definimos um objeto conceitual partindo de
OBJETOS do mundo real com os mesmos comportamentos de características.
• Classe: representa a ABSTRAÇÃO de um conjunto de OBJETOS do mundo real que
possui comportamentos e características comuns.
CLASSE • Instância: é uma das ocorrências de um OBJETO
FUNCIONÁRIO formado a partir da sua CLASSE
Possui nome O Funcionário 2
Possui Endereço (instância)

Possui Telefone Pedro Alves


Rua Brasil, 399
(00) 0000000

• Atributo: é uma característica particular que os OBJETOS de uma CLASSE


possuem, assumindo valores diferentes para cada OBJETOS.
• Operação: é um protótipo de um método pensado por um analista. As operações são
tudo o que os OBJETOS de uma CLASSE podem fazer (AÇÃO).
• Mensagem: representa o mecanismo de chamada de uma OPERAÇÃO . É utilizada
na solicitação de execução de uma OPERAÇÃO.
• Evento: É um tipo especial de OPERAÇÃO que faz com que os OBJETOS mudem
de ESTADO.
• Parâmetro: São informações ou variáveis que são carregadas para dentro de uma
MENSAGEM.
• Estado: É a condição dos OBJETOS de uma CLASSE em um determinado instante.
• Transição de Estado: é quando ocorre a mudança de ESTADO de um OBJETO de
uma CLASSE como reposta a classe de uma EVENTO (é uma ação).
• Associação: é a forma como os OBJETOS de uma mesma CLASSE ou de CLASSES
diferentes se conectam.
• Encapsulamento: é a maneira pela qual as operações formam um limite de proteção
em torno do OBJETO, ou seja, os valores de um atributo só podem ser manipulados
por meio de suas operações.
• Polimorfismo: é a capacidade que os OBJETOS de CLASSES diferentes possuem
de se comportarem de forma diferente em uma mesma operação.
• Método: é o algoritmo (conjunto de passos) que um OBJETO executa quando reage
a uma OPERAÇÃO. O método é a lógica interna de uma operação.
• Colaboração: é a troca de MENSAGENS que acontece entre OBJETOS e atores.
• Herança: é a propriedade que possibilita que a CLASSE herde características e
comportamento de outra CLASSE.
❖ Diagrama de Comportamento: Os diagramas de comportamento são utilizados para
descrever o sistema modelado já em execução.
❖ Diagrama de Casos de Uso:
o Ator: Pode ser uma pessoa (usuário), um sistema ou uma máquina. O ator é quem
realiza as atividades e sempre atua sobre um caso de uso. Corresponde ao papel
representado em relação ao sistema. Um caso de uso pode envolver vários atores:
▪ Primário: é aquele que inicia uma sequência de interações de um caso de uso;
▪ Secundário: supervisionam, operam, mantêm ou auxiliam na utilização do
sistema.
❖ Diagrama de Sequência: Tem o objetivo refinar o diagrama de classes, o diagrama de
sequência (comportamento), sua utilidade é estudar as interações entre os objetos,
possibilitando a identificação de relação entre os objetos.
(Os processos de negócio para a construção de um novo produto se orientada a partir do
objeto). Resposta de Questão.
❖ Diagrama de Estados: tem como objetivo especificar o comportamento das classes mais
complexas utilizando uma máquina de estados.
❖ Diagrama de Comunicação: Permite a identificação das classes mais próximas e a ordem
de envio das mensagens é identificada por números sequenciais.
o Apesar de conter as mesmas informações que o diagrama de sequência, o diagrama
de comunicação representa a ordem com que ocorre a comunicação, e não o tempo.
A colaboração entre as classes ocorre por meio das trocas de mensagens. Resposta
de questão.
o Interação enfatizando o relacionamento entre os objetos;
o Apresenta somente os objetos e ligações significativas para as interações;
o As mensagens são numeradas sequencialmente;
o Mostra implementação de operações (variáveis).
o Exemplo:
❖ Diagrama de Atividades: É, em sua essência um gráfico de fluxo, demonstrando como ocorre o
fluxo de controle entre as atividades. Esse diagrama é um dos mais detalhistas, dando ênfase maior
ao nível de algoritmo.
Exemplo Seguro Certo:
❖ Diagrama de Instalação: Mostra a configuração de elementos capazes de processar
software (computadores, dispositivos periféricos etc..) e como os componentes de software,
processos e objetos se encontram dentre eles.

❖ Diagrama de Estrutura: São utilizados para especificar, visualizar, documentar e construir


aspectos estáticos de um sistema, ou seja, representam a estrutura estável.
❖ Classes: É uma estrutura que modela um conjunto de objeto cujas características são
similares.

❖ Diagrama de Objetos: Corresponde a um segundo nível de abstração do diagrama de


classes. Este diagrama é o diagrama de classes instanciado.
❖ Diagrama de Componentes: Mostra a organização e dependência entre todos os
componentes. Seu objetivo é modelar a visão de implantação dos módulos executáveis do
software.

❖ Diagrama de Implantação: São utilizados para modelar a arquitetura física de distribuição


onde o software será executado. Esse diagrama mostra os nós e os relacionamentos de
comunicação. Um nó representa um recurso computacional com memória e
processamento, ou seja, um disco rígido, um computador, uma impressora etc.
(A configuração física do sistema em termos de nós físicos e ligações físicas entre os nós.)
Resposta de Questão.
❖ Diagrama de Pacotes: Representa um agrupamento de classes, formando a unidade.
Normalmente os pacotes representam relações, em que um pacote depende de outro para
o funcionamento.

❖ Diagrama de Transição de Estados (DTE): é útil para mostrar o ciclo de vida de um


objeto. Em um sistema real somente algumas classes demandam o uso de um DTE.
▪ Classes críticas;
▪ Classes que comportam de forma diferente em função de transições de
estados.
▪ Exemplo:

❖ Processo UP -> RUP: Possui certas características:
▪ Dirigida para use case;
▪ Centrado na arquitetura;
▪ Iterativo e incremental.
▪ Ciclo de vida do UP:
➢ Fases: início, elaboração, construção e transição;
➢ Workflows: requisitos, analise, projeto, implementação e teste.

Unidade II
❖ Estudo de Viabilidade: Temos a Análise de Viabilidade em que o Analista deve determinar
rapidamente se o problema pode ser resolvido considerando 5 aspectos:
▪ Viabilidade Técnica: Deve determinar se o projeto pode ser desenvolvido e
implementado usando os recursos existentes: computadores, periféricos, sistema
operacional e recursos humanos.
▪ Viabilidade Legal: Verifica se não existem conflitos entre o sistema em consideração
e os compromissos legais que a empresa tem.
▪ Aspecto Operacional: O analista faz a verificação de que o sistema será capaz de
executar as funções projetadas no ambiente organizacional existente com o pessoal.
▪ Aspecto de Tempo: Vai determinar o cronograma para desenvolvimento e verificar
se o sistema será factível no tempo determinado.
▪ Aspecto Econômico: Vai determinar se os benefícios sobrepõem os custos.
❖ Projeto: Descreve a estrutura do software que será implementado. Nele estão contidos os
dados e a interface entre os componentes do sistema. É importante para formalizar as regras
de negócio do sistema, melhorando a comunicação entre o cliente e o programador.
❖ Implementação: É nesse estágio de desenvolvimento de software que se cria uma versão
executável do software.
❖ Implantação: É a fase correspondente na qual o software será entregue ao cliente.
❖ Manutenção: É o processo de modificar o sistema desenvolvido depois que ele é colocado
em operação, é a fase do ciclo de vida do software que dura mais tempo, até que sistema
deixe de ser utilizado. Há 3 tipos de manutenção:
▪ Corretiva
▪ Adaptativa
▪ Evolutiva
❖ Modelos de Processos:
▪ Modelo Cascata: É o primeiro a ser publicado do processo de desenvolvimento de
software. Nesse modelo, pressupõe-se que o domínio do problema foi inteiramente
compreendido, portanto, é o modelo indicado quando conhecemos por inteiro a regra
de negócio do software.
▪ Modelos Evolucionário: Tem como base a ideia de desenvolver uma implementação
inicial, expor o resultado ao comentário do usuário e fazer seu aprimoramento por
meio de muitas versões, até que um sistema adequado tenha sido resolvido. Porém
esse modelo possui alguns problemas:
➢ Como os sistemas são produzidos rapidamente, não é viável produzir
documentos que reflitam cada versão do sistema.
➢ Os sistemas frequentemente são mal estruturados.

❖ Requisitos de Software: As principais atividades da engenharia de requisitos:


▪ Especificar o problema (elicitar).
▪ Compreender o problema (analisar).
▪ Definir uma proposta (modelo válido).
▪ Atualizar Requisitos (gerenciar).
❖ Requisitos: são os objetivos e as restrições estabelecidas pelo usuário do sistema. Os
requisitos podem ser divididos em:
▪ Requisitos funcionais (RF): definem as funções do sistema, ou seja, o que se
espera que o sistema faça.
▪ Requisitos não funcionais (RNF): estão relacionados às tecnologias utilizadas (o
que pode ser mensurado), usabilidade, desempenho, segurança, confiabilidade,
manutenibilidade, disponibilidade que o sistema deverá possuir.
❖ A fase de Análise envolve uma série de atividades:
▪ A análise é a solução conceitual dada ao problema, mas sem levar em conta detalhes
da implementação, tais como a linguagem e o sistema gerenciador de banco de dados
a serem utilizados. (Resposta questão).
▪ Validação e Verificação (A verificação permite aplicar testes que garantam a
implementação do requisito) Resposta de questão.
▪ Análise de Viabilidade.
▪ Resolução de conflitos.
▪ Definição de prioridade.
❖ Diagrama de casos de Uso: são utilizados para representar, de forma panorâmica, os
requisitos funcionais do ponto de vista do usuário.
❖ Atores: pode ser uma pessoa, outro sistema ou uma entidade mais externa ao sistema.
❖ Casos de Uso: Um caso de uso é uma sequência de ações que produz um resultado
significativo para um ator. A elipse é a notação para casos de use case, as duas
denominações são utilizadas. Um caso de uso representa uma atividade que o ator realiza.
❖ Relacionamento de inclusão (include): Ocorre sempre quando um caso de uso é
executado, é uma relação de obrigatoriedade. Exemplo:

❖ Relação de extensão (extend): Utilizado para modelar situações em que diferentes


sequências (opções) de interações podem ser inseridas em um caso de uso. Cada
sequência representa um comportamento eventual (opcional) que somente ocorre em
certas condições. Exemplo:
o Relações de dependência: são representadas por uma seta tracejada, a seta parte
do caso de uso que depende de outro em algum momento.
o Fluxo Básico: Descreve como o sistema e os atores colaboram para produzir algo
de valor aos atores e o que pode impedir sua obtenção.
o Fluxo Alternativo: descreve um caminho entre os muitos possíveis. No documento
é descrito um caminho que talvez não possa ser seguido somente com o fluxo básico.
❖ Regra de negócio: São políticas, condições ou restrições que devem ser consideradas na
execução dos processos existentes em uma organização;
o Descrevem a maneira pela qual a organização funciona;
o Estas regras são identificadas e documentadas;

Unidade III

• Diagrama de Classes: O diagrama de classes mostra a estrutura estática do sistema.


o Atributos: são elementos que definem a estrutura de uma classe, também são
denominados de variáveis de classe. O atributo é um elemento da classe que
pode representar uma característica dos objetos instanciados.
o Visibilidade informa quais classes que podem ver esse atributo:
▪ + Público: Todas as classes têm acesso.
▪ - Privado: Somente métodos definidos na classe podem vê-lo.
▪ # Protegido: Métodos definidos na classe e nas classes derivadas
podem vê-lo.
▪ ~ Pacote: Visível dentro das classes de pacote.
o Métodos: é a maneira de ordenar a ação de acordo com certos princípios, ou
seja, é a maneira ou forma de proceder que determina um comportamento. Com
isso os métodos determinam o comportamento dos objetos de uma classe e são
semelhantes às funções ou procedimentos da programação estruturada.
o Multiplicidade: Associação é uma relação entre duas classes, significando que
os objetos destas classes possuem uma ligação. Um conceito importante entra
as classes é a multiplicidade que mostra a cardinalidade de uma associação.
o A multiplicidade especifica quantas instâncias de uma classe relaciona-se
a uma única instância de uma classe associada:
▪ 1 Exatamente um.
▪ 0..* Zero ou mais.
▪ * Zero ou mais.
▪ 1..* Um ou mais.
▪ 0..1 Zero ou um.
▪ 0..8 Intervalo específico (5,6,7,8).
▪ 4..7,9 Combinação (4,5,6,7 ou 9).
o Associação unária: classe se associa com ela mesma, ou seja, é uma auto
associação.

o Associação Binária: são as mais comuns, elas acontecem entre duas classes.
No exemplo pode-se verificar que na instância o objeto classe cliente está
associada com várias instâncias da classe compra, porém a classe compra está
associada a somente um cliente.

o Associação ternária: A associação ternária associa 3 classes. A notação para


esta associação é um losango (diamante) Exemplo:
o Classe Associativa: Quando uma associação possuir atributos próprios, pode-se
criar uma classe associativa. Essas classes são úteis quando queremos
armazenar o histórico de uma associação.
o Agregação: Segundo Lee & Tepfenhart agregação é um caso especial de
associação utilizado para representar relacionamentos de pertinência “parte-todo”
ou “uma parte de”. A agregação pode ser regular ou de composição.
o Agregação Regular: A agregação regular é representada por um losango vazado.

o Agregação de Composição: é uma agregação de fato, em que o todo é composto


por partes. A destruição da instância de objeto de A implica na destruição da
instância de objeto associado da classe B.
o Generalização: é uma associação hierárquica que indica um relacionamento
entre a classe de mais alto nível, denominada superclasse, e outra de mais baixo
nível, denominada subclasse, ou, ainda, classe mão e filha. A diferença entre as
demais associações é que, na generalização, é enfatizado o conceito de herança
que tem como características a reutilização de atributos e métodos definidos nas
classes mais gerais (super-classe) por classes mais específicas (subclasses).

o Herança Múltipla: Neste caso a classe é derivada de mais de uma classe base
(superclasse). A herança múltipla permite a concatenação (mesclagem) de
informações de duas ou mais origens.
➢ Vantagem: é a maior capacidade de especificação de classes e a maior
oportunidade de reutilização. Ela traz a modelagem de objetos mais
próxima da maneira como se costuma pensar.
➢ Desvantagem: A desvantagem é a perda em simplicidade conceitual e de
implementação.
o A UML também possui representação para classes estereotipadas são 3:
➢ Boundary: são classes utilizadas para modelar a interação entre o sistema
e os atores.
➢ Control: são classes que representam a coordenação, sequenciamento,
transações e controle de outros objetos.
➢ Entity: são classes que modelam dados que se deseja armazenar de
maneira persistente.

UNIDADE IV
o Diagrama de Sequência: Sua utilidade é estudar as interações entre os objetos,
possibilitando a identificação de relação entre as classes, servindo para refinar o
diagrama de Classes. Exemplo: Solicitação de um empréstimo por um Aluno.
o Notação do Diagrama de Sequência
o Timeline: As timelines ou linhas de vida fazem parte da dimensão vertical
do diagrama. A linha de vida é composta de duas partes: a cabeça e a
cauda.
o Mensagens: é representada por uma linha horizontal, do emissor para o
receptor, com o nome e possíveis argumentos, ligando uma linha de vida a
outra. As mensagens podem ser síncronas ou assíncronas.
▪ Mensagens Síncronas: Quando quem envia (emissor) fica no
aguardo no aguardo da resposta pelo receptor, e são representados
por uma seta com a ponta preenchida.
▪ Mensagens Assíncronas: Quem envia a mensagem (emissor)
NÃO fica no aguardo da resposta pelo receptor, e são representadas
por uma seta com a ponta vazada.
o Diagrama de Estados: Tem como objetivo especificar o comportamento das
classes mais complexas utilizando máquinas de estado.
o Estado: representa a situação ou momento no tempo de vida de um objeto,
o objeto pode passar por vários momentos ao longo de sua vida.
o O comportamento de uma classe pode ser modelado por meio do diagrama
de estados. Porém, não são todas as classes que necessitam dessa
representação, pois não apresentam um número de estados que se possa
quantificar. Resposta de Questão.
o Diagrama de Comunicação: contém as mesmas informações que o diagrama de
sequência, porém não considera o tempo e sim a ordem da comunicação. O
diagrama identifica as classes mais próximas e a ordem de envio de mensagens
que é identificada por números sequenciais, mostrando a interação de forma
organizada em torno dos objetos.

o Vínculo: é a ligação entre dois objetos (caminho), que identifica o envio e


o recebimento de mensagens.
o Mensagens: As mensagens enviadas e recebidas são representadas por
setas que apontam suas direções.

UNIDADE V
o Exemplo Cinema:
o Descrições Textuais por Caso de Uso:
Nome do Caso de Uso Cadastrar Novos Usuários
Descrição Permite inserir novos usuários no sistema
Ator Administrador
Pré-condições O sistema deve estar em execução
Pós-Condições Novo usuário inserido
Fluxo Básico
Ações do Ator Ações do Sistema
Solicitar a criação do novo
usuário
Abre a Janela de Cadastro (A2)
Usuário informa os dados
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos Alternativos
A1:em {valida a entrada} Se o usuário fornecer uma entrada incorreta,
informa-lo sobre o erro e retornar ao campo
incorreto
A2:em {Solicita Cancelamento} O usuário pode decidir encerrar o caso de uso
sem fornecer sua entrada. Nesse caso,
retornar ao fluxo básico em {Fim}.

Nome do Caso de Uso Definir Permissões para os Usuários


Descrição Permite definir permissões para os usuários
Ator Administrador
Pré-condições O sistema deve estar em execução
Pós-Condições Permissões concedidas
Fluxo Básico
Ações do Ator Ações do Sistema
Solicitar a definição de
permissões
Abre a janela de definição de Permissões (A2)
Usuário informa as permissões
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos Alternativos
A1:em {valida a entrada} Se o usuário fornecer uma entrada incorreta,
informa-lo sobre o erro e retornar ao campo
incorreto.
A2:em {Solicita Cancelamento} O usuário pode decidir encerrar o caso de uso
sem fornecer uma entrada. Nesse caso,
retornar fluxo básico em {Fim}

Nome do Caso de Uso Cadastrar Elenco


Descrição Permite inserir novos atores ou diretores no
sistema.
Ator Operador
Pré-condições O sistema deve estar em execução
Pós-Condições Novo ator inserido
Fluxo Básico
Ações do Ator Ações do Sistema
Solicita a criação do novo ator
Abre a janela de Cadastro (A2)
Usuário informa os dados
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos Alternativos
A1:em {valida a entrada} Se o usuário informa uma entrada incorreta,
informa-lo sobre o erro e retornar ao campo
incorreto.
A2:em {solicita cancelamento} O usuário pode encerrar o caso de uso sem
fornecer uma entrada. Nesse caso, retorna ao
fluxo básico em {Fim}.

Nome do Caso de Uso Cadastrar Novos Filmes


Descrição Permite inserir novos Filmes no sistema
Ator Operador
Pré-condições O sistema deve estar em execução
Pós-Condições Novo filme inserido
Fluxo Básico
Ações do Ator Ações do Sistema
Solicitar informação do novo
filme
Abre a janela de cadastro (A2)
Usuário informa os dados
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos Alternativos
A1: Se o usuário informa uma entrada incorreta,
informa-lo sobre o erro e retornar ao campo
incorreto.
A2: O usuário pode encerrar o caso de uso sem
fornecer uma entrada. Nesse caso, retorna ao
fluxo básico em {Fim}.

Nome do Caso de Uso Cadastrar Novos Cinemas


Descrição Permite inserir novos cinemas ao sistema
Ator Operador
Pré-condições O sistema deve estar em execução
Pós-Condições Novo sistema inserido
Fluxo Básico
Ações do Ator Ações do Sistema
Solicita a criação do novo
cinema
Abre a Janela de Cadastro (A2)
Usuário informa os dados
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos Alternativos
A1:em {valida a entrada} Se o usuário fornecer uma entrada incorreta,
informa-lo sobre o erro e retornar ao campo
incorreto.
A2: O usuário pode decidir encerrar o caso de uso
sem fornecer a entrada. Nesse caso, retornar
ao fluxo básico em {Fim}.

Nome do Caso de Uso Cadastrar Salas


Descrição Permite inserir novas salas no sistema
Ator Operador
Pré-condições O sistema deve estar em execução
Pós-Condições Nova sala inserida no sistema
Fluxo Básico
Ações do Ator Ações do sistema
Solicitar a criação da nova sala
Abre a janela de Cadastro (A2)
O usuário informa os dados
Sistema validada a entrada (A1)
Sistema salva os dados
Fim
Fluxos Alternativos
A1:em {valida a entrada} Se o usuário fornece a entrada incorreta,
informa-lo sobre o erro e retornar ao campo
incorreto.
A2: O usuário pode decidir encerrar o caso de uso
sem fornecer uma entrada. Nesse caso,
retornar ao Fluxo Básico em {Fim}.

Nome do Caso de Uso Exibir Filme


Descrição Permite colocar um filme em exibição
Ator Operador
Pré-condições O sistema deve estar em execução
Pós-Condições Status de exibição alterado
Fluxo Básico
Ações do Ator Ações do Sistema
Solicitar a exibição do filme
Abre a Janela de movimentação (A2)
Usuário altera o status
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos Alternativos
A1:em {valida a entrada} Se o usuário fornece uma entrada incorreta,
informa-lo sobre o erro e retornar ao campo
incorreto.
A2:em {Solicita Cancelamento} O usuário pode decidir encerrar o caso de uso
sem fornecer sua entrada. Nesse caso,
retornar ao fluxo básico em {Fim}.

Nome do Caso de Uso Suspender exibição do filme


Descrição Permite suspender a exibição do filme no
sistema
Ator Operador
Pré-condições O sistema deve estar em execução
Pós-Condições Suspenção da exibição do filme
Fluxo Básico
Ações do Ator Ações do Sistema
Solicita a suspenção da
exibição
Abre a Janela de movimentação (A2)
Usuário informa os dados
Sistema valida a entrada (A1)
Sistema salva os dados
Fim
Fluxos Alternativos
A1:em {valida a entrada} Se o usuário fornece uma entrada incorreta,
informa-lo sobre o erro e retornar ao campo
incorreto
A2:em {Solicita Cancelamento} O usuário pode decidir encerrar o caso de uso
sem fornecer sua entrada. Nesse caso,
retornar ao fluxo básico em {Fim}.