Академический Документы
Профессиональный Документы
Культура Документы
Desvio Estru-
Compo-
incondi- turas de Subpro- Eventos Objetos
nentes
cional Controle gramas
Orientao a Objetos
Programao tradicional se baseia na
compreenso do sistema como um conjunto
de programas que executam processos sobre
dados
O enfoque em OO, v o mundo como uma
coletnea de objetos que interagem entre si
e apresentam caractersticas prprias
representadas pelos seus atributos e
operaes
O mundo real, que queremos
modelar, constitudo por objetos
carro
caneta Estrutura
aluno
Comportamento
concerto
congresso
conta a pagar
relatrio
.....................
Qual a estrutura do objeto ?
Quais so as operaes sobre o objeto ?
cdigo
fabricante ligar
tipo acelerar
cor mudar a marcha
licena frear
ano de fabricao virar esquerda
no motor virar direita
.......... ..........
Classe-Carro
cdigo (inteiro)
fabricante (cadeia de caracteres)
tipo (inteiro)
cor (cadeia de caracteres)
licena (cadeia de caracteres)
ano de fabricao (inteiro)
no motor (inteiro)
Com OO ..........
procedimento ligar
procedimento acelerar
procedimento mudar a marcha
procedimento frear
procedimento virar esquerda
procedimento virar direita
..........
fim-classe
Qual a estrutura do objeto ?
Quais so as operaes sobre o objeto ?
matrcula
nome incluir dados pessoais
endereo matricular
data_nascimento alterar endereo
curso incluir nota
data_incio emitir histrico
notas ..........
..........
Classe-Aluno
matrcula (inteiro)
nome (cadeia de caracteres)
endereo (cadeia de caracteres)
data_nascimento (inteiro longo)
curso (cadeia de caracteres)
data_incio (inteiro longo)
Com OO notas
..........
fim-classe
Classe
Estrutura
Operaes
sobre
Comportame
nto
fim-classe
Orientao a Objetos
Benefcios
Os sistemas orientados a objetos podem representar melhor o mundo real ;
Espelha a estrutura e o comportamento dos objetos do negcio;
Permite uma modelagem mais perfeita e natural;
Oferece maior transparncia da modelagem para construo;
A mesma notao usada desde a anlise at o projeto e a implementao;
Ocorre uma reduo na quantidade de erros;
Melhora a comunicao entre desenvolvedores e usurios;
Reduo no tempo de manuteno;
Favorece a reutilizao;
Facilidade de extenso;
Impe maior qualidade, produtividade.
Orientao a Objetos
Um sistema orientado a objetos um
conjunto de objetos que se comunicam
Classes de interao
Classes
de negcio
Classes
de sistema
Classes
persistentes
Orientao a Objetos
Tradicional Orientao a Objetos
Classe
Variveis Atributos
Mtodos
Funes
// programa pessoa estruturada // programa pessoa OO
#include <stdio.h> #include <stdio.h>
void alterarPessoa(tpessoa * p, int i, float t) class pessoa
{ {
p idade = i; private:
p temperatura = t; int idade;
} float temperatura;
public:
void imprimirPessoa(tpessoa p) void alterarPessoa(int i, float t)
{ { idade =i; temperatura = t;}
printf(%d %f, p.idade, p. temperatura);
} void imprimirPessoa(void)
{printf(%d %f, idade, temperatura);}
typedef struct
{ };
int idade;
float temperatura; void main(void)
}tpessoa; {
pessoa joao;
void main(void) joao.alterarPessoa(18, 36.5);
{ joo.imprimirPessoa( );
tpessoa joao; }
alterarPessoa ( &joao, 18, 36.5);
imprimirPessoa( joao );
}
Orientao a Objetos
Classe / Objeto
Objetos
Classe instanciao
(instncias)
Joo
Pessoa
Maria
Classe Objeto
Atributos Estrutura
Especifica
Servios Comportamento
tipo varivel
Orientao a Objetos
Princpios bsicos
Abstrao
Encapsulamento
Herana
Polimorfismo
Orientao a Objetos
Abstrao
O processo de abstrao consiste em
concentrar a ateno em alguns aspectos da
realidade modelada, abandonando os
demais aspectos
Um objeto uma entidade de software que
representa uma abstrao de alguma coisa
no domnio do problema que precisamos
modelar
Orientao a Objetos
Abstrao
Pessoa
Sistema para Sistema para
Nome modelos banco
Altura
Peso Nome Nome
cor dos olhos Altura identidade
cor do cabelo Peso cpf
identidade cor dos olhos idade
cpf cor do cabelo filiao
idade idade naturalidade
filiao
naturalidade
Orientao a Objetos
Encapsulamento
Em um nico pacote esto dados (estrutura)
e operaes (comportamento)
Dados de um objeto so privados do objeto
Dados do objeto s so manipulados pelos
mtodos do prprio objeto
Mtodos de um objeto so pblicos
Os mtodos so a interface do objeto
Orientao a Objetos
Encapsulamento
Atualizar Imprimir
Salrio Dados
Maria
Engenheira
30
31 anos
anos
R$ 1000,00
Aniversrio Alterar Alterar
Idade Cargo
Orientao a Objetos / Herana
Classes Genricas podem ser especializadas
em subclasses
Subclasses herdam atributos e mtodos de
suas superclasses
Orientao a Objetos / Herana
Pessoa
idade
CPF
Alterar Dados
Funcionrio Cliente
idade idade
CPF CPF
Funcionrio
salrio Cliente
crdito
salrio
Alterar Dados crdito
Alterar Dados
Imprimir Salrio Calcular Crdito
Orientao a Objetos
Herana Mltipla
Veculo
nome
atualizar endereo
dados pessoais Pessoa idade
.......
status
salrio credito
atualizar salrio Empregado Cliente
.......
consultar status
consultar credito
comisso habilidade .......
atualizar Vendedor Projetista consultar
salrio
....... habilidade
.......
Orientao a Objetos
Polimorfismo
Polimorfismo a capacidade de assumir
diferentes formas
A subclasse pode redefinir um mtodo
herdado de uma superclasse
Orientao a Objetos
Polimorfismo
Funcionrio
Matrcula
Salrio Salrio =
Calcular Salrio (no. de dias
* Valor base)
Vendedor Gerente
Salrio =
comisso (no. de dias
nvel
Calcular Salrio * Valor base)
+ comisso
Estado
Conjunto
Conjunto dos
dos valores
valores dos
dos atributos
atributos de
de um
um
objeto
objeto em
em um
um determinado
determinado momento
momento
Estado
Atualizar
Salario Imprimir
Salario
Imprimir
Maria
Dados Engenheira Alterar
Pessoais R$ 1000,00 Cargo
Alterar
Dados Imprimir
Pessoais Cargo
Orientao a Objetos
outros conceitos
Aluno Janela
matrcula dimenso
nome cor
notas estilo
alterar dados pessoais redimensionar
matricular abrir
Viso Geral da UML
Noes bsicas de Orientao a objetos
Modelagem de Sistemas
Histrico da UML
O que a UML
Diagramas da UML
Concluses
Modelando Sistemas OO
Sistema conjunto de elementos
interrelacionados, que possuem
caractersticas comuns e que podem ser
entendidos como um todo.
Modelagem
Domnio
Conceitual
Especificao
Implementao Linguagem
Principais Erros de Especificao de
Sistemas
No revisar todos os requisitos;
No garantir que o texto dos Casos de uso estejam de acordo
com o comportamento esperado para o sistema ;
No utilizar prottipo para ajudar a validar o comportamento
do sistema;
Manter seus Casos de Uso em um nvel de abstrao alto
demais, que no ajude os clientes no tcnicos a entender o
que aquele Caso de Uso implementa;
O modelo de domnio no refletir os objetos conceituais do
mundo real;
Servir Almoo
cliente
Adquirir material
gerente catlogo
Casos de Uso - Descrio
Quando um cliente entra no restaurante, ele saudado na
porta e convidado a retirar seu casaco. A seguir, o cliente
ocupa uma mesa e recebe o menu. Aps o cliente ficar
algum tempo escolhendo, ele solicitado a fazer o seu
pedido, ou o cliente pode chamar o garom, e o pedido
passado cozinha, onde preparado. Quando o pedido
est pronto, ele servido ao cliente. Aps a refeio,
espera-se que o cliente chame o garom para efetuar o
pagamento. Depois de pagar, o cliente pode solicitar seu
casaco e deixar o restaurante
Casos de Uso - Passos
Cliente entra no restaurante
Recepcionista convida-o a retirar o casaco
Cliente ocupa a mesa
Garom entrega o menu
Cliente escolhe o prato
Cliente faz seu pedido
Garom passa o pedido a cozinha
A cozinha prepara o pedido
O pedido servido ao cliente
Cliente solicita a conta
Cliente efetua o pagamento
Cliente solicita seu casaco
Cliente deixa o restaurante
Casos de Uso - Extenso
Alternativa onde os casos bsicos so mostrados
no modelo e outros cursos de eventos so
adicionados. Utiliza o outro caso de uso em
algumas situaes.
Servir Almoo
cliente
<<estende>>
Servir sobremesa
Casos de Uso - Incluso
Alternativa onde os partes comuns de dois ou
mais casos de uso so descritas em uma rea
comum. Ou quando um caso de uso utiliza
sempre outro integralmente.
Servir Almoo
<<inclui>>
<<inclui>>
Servir Jantar
Casos de Uso - Formato
Generalizao
Casos de Uso
Ator
Vender Carro
Vender Utilitrio
Atores Generalizao
Vender Equipamento
vendedor
Autorizar Crdito
Gerente
Representao de Requisitos
No-Funcionais
Tempo mximo
de resposta = 1 s
Autorizar Crdito
Gerente
Diagrama de Casos de Uso
Elementos:
-Ator Qualquer elemento externo ao sistema que interage com o
mesmo. Pode ser um usurio, um outro sistema, etc.
gerente
Cadastrar cliente
cliente Sistema
Administradora
de CC
Diagrama de Casos de Uso
(Descrio de Caso de Uso)
Caso de Uso: 1 Cadastrar Cliente
Descrio Geral : Caso de Uso onde cliente efetua o seu cadastramento pela
internet
Atores : Cliente, Adm de carto
Incio : Esse caso de uso tem seu inco quando o cliente acessa o
portal da locadora na internet.
Fluxo Tpico
o
N Ao
1 Cliente informa o nmero do seu CPF
2 Sistema solicita os dados do cliente
3 Cliente informa seus dados
4 Sistema valida CC junto a adm de CC
5 Adm de CC informa CC OK
6 Sistema informa senha do cliente e encerra Caso de Uso
Fluxos Alternativos
Alternativa 1: Adm CC informa CC no OK.
No Ao
5 Adm informa CC no OK
6 Sistema emite mensagem para cliente e encerra Caso de Uso
Diagrama de Classes
Grfico bi-dimensional de elementos de
modelagem
Este diagrama evolui ao longo do ciclo de
vida do desenvolvimento
Mostra as classes e o relacionamento entre
elas
Diagrama de Classes
Descreve relaes estticas, basicamente:
Classes e sub-classes
Associaes
Atemporal
Objeto = qualquer coisa que faz sentido no
contexto da aplicao
Classe = conjunto de objetos com atributos,
comportamentos e semntica comuns.
Perspectivas
Domnio
Conceitual
Especificao
Implementao Linguagem
Modelo Conceitual
Aluno
Nome da Classe matrcula
nome
atributos notas
alterar dados pessoais
mtodos matricular
Diagrama de Classes
Classes
- Associao
- Agregao
- Generalizao
- Dependncia
Diagrama de Classes
Associao
A associao um conjunto de vnculos entre elementos do modelo.
Tipos de associao
Unria uma relao de uma classe consigo mesma (auto-
relacionamento)
Funcionrio
Chefia
Diagrama de Classes
Binria uma relao de uma classe com outra.
N-ria uma relao entre trs ou mais classes, mas uma nica pode
aparecer mais de uma vez.
Equipe Jogador
Temporada
Diagrama de Classes
Nome da associao - mostrado prximo linha do relacionamento para ajudar o
entendimento deste relacionamento, no sendo obrigatrio. Pode-se ainda colocar um
tringulo indicando o sentido de leitura do nome.
Muitos - ____________*
Exatamente 1 - ____________1
Zero ou Muitos - __________0..*
Um ou Muitos - __________1..*
Zero ou um - __________0..1
Mn ou mx - __________n..m
1,2 ou 4 - _________1..2,4
Diagrama de Classes
Papel
Navegabilidade
Uma seta pode ser colocada na extremidade de uma associao indicando que a
navegao determinada na direo para onde partiu a seta. Se no existe seta a
navegao bi-direcional. Se a seta vai da classe eleitor para a classe candidato, isto
significa que a partir de um eleitor podemos determinar qual o seu candidato, mas a
partir de candidato no saberemos os seus eleitores.
Eleitor Candidato
Diagrama de Classes
Qualificador
Classe de Associao
1..* *
Funcionrio Diviso
Alocao
Data
Diagrama de Classes
Classe de Associao X Classe
1 * Contrato
Pessoa
Data
*
1
Empresa
1..*
Pessoa * Empresa
Contrato
Data
Diagrama de Classes
Agregao
A hierarquia de agregao permite representar no Modelo de Objetos, estruturas
todo-parte
Um objeto (o agregado) contm, como atributos, outros objetos, de sua ou de
outras classes
O objeto parte tem existncia prpria independente da existncia do objeto todo
indicado por parte de
*
Turma Aluno
Diagrama de Classes
Composio
uma forma de agregao (por valor), com uma forte propriedade de vida
coincidente da parte com o todo.
O objeto todo declara uma instncia real do objeto parte dentro de seu prprio
corpo tornando o objeto parte fisicamente nele contido (atributo)
O objeto parte no tem existncia prpria sem a existncia do objeto todo
1..*
Pedido Item Pedido
Diagrama de Classes
Dependncia
Indica a ocorrncia de um relacionamento semntico entre dois ou mais
elementos, onde uma classe cliente dependente de alguns servios da classe
fornecedora, mas no tem dependncia estrutural interna.
Classe A Classe B
Diagrama de Classes
X-OR
Somente ma das associaes indicadas pode existir para um determinada
instncia da classe comum.
Pessoa Fsica
Veculo {X-or}
Pessoa Jurdica
Diagrama de Classes
Pacote
Elemento que agrupa recursos (na UML elementos de
modelagem)
Apresenta tambm a dependncia entre partes de umprojeto
Contitui uma unidade que pode ser trabalhada de forma
independente
A dependncia entre pacotes normalmente uma importao.
Pode ser tambm um acesso.
Diagrama de Classes
Pacote - Notao
Pacote
Pacote
Diagrama de Classes
Pacote
Um pacote define um escopo, ou seja, quando
trabalhando dentro de um pacote, s se conhece o que
est dentro do mesmo ou o de outro que ele importe.
Um diagrama de pacotes serve para apresentar as
interdependncias, ou seja, uma arquitetura.
Diagrama de Classes
Pacote - Notao
Autorizao para Planejamento
uso. A
visibilidade de X&D Carrega o importado.
acesso deve Acesso direto.
ser ajustada Visibilidade resolvida
<<importa>>
<<acessa>>
Oramento Oramento
Diagrama de Classes
Generalizao / Especializao
um relacionamento entre um elemento mais geral e um elemento mais
especfico que completamente consistente com o primeiro elemento somando-
o informao adicional especializada.
Tambm conhecido como herana
Subclasses especializam uma classe
Superclasses generalizam uma classe
Identificado por um
Subclasses herdam atributos, operaes e associaes da superclasse
Pessoa
Aluno Professor
Diagrama de Classes
Generalizao / Especializao (Restries)
Restries pr-definidas podem ser usadas para indicar semnticas entre classes
filhas. Essas restries so colocadas entre chaves, separadas por vrgula junto a
seta do relacionamento.
Pessoa
{sobreposio}
Aluno Professor
Diagrama de Classes
Generalizao / Especializao (Restries)
Pessoa
{disjuno}
Homem Mulher
Diagrama de Classes
Generalizao / Especializao (Restries)
Pessoa
{completo}
Fsica Jurdica
Diagrama de Classes
Generalizao / Especializao (Restries)
Animal
{incompleto}
Mamfero Ave
Diagrama de Classes
Professor 1..*
Curso
Pessoa
1
Aluno
* 1..*
1..40
1 Disciplina
1..6
1..*
Turma
Diagrama de Objetos
Joo Matemtica
: Professor : Disciplina
Engenharia
: Curso
Pedro Fsica
: Professor : Disciplina
Descobrindo Classes
Aguardando
Pagamento
Diagrama de Transio de
Estados
Um estado pode ser opcionalmente subdividido em compartimentos
separados cada qual por uma linha horizontal. So eles:
Compartimento de nome
Armazena o nome do estado
Compartimentos de transies internas
Armazena uma lista de aes ou atividades internas que so executadas
enquanto o objeto se apresenta no referido estado. Uma transio interna
no modifica o estado do objeto.
Diagrama de Transio de
Estados
Compartimentos de transies internas
Existem algumas palavras reservadas que representam as transies
internas:
Entry --> identifica uma ao que executada na entrada do estado
Exit --> identifica uma ao que executada na sada do estado
Do --> identifica uma atividade em andamento, ou seja, que executada
continuamente durante o tempo em que o objeto permanece neste estado
Include --> usado para identificar a invocao de uma submquina.
Diagrama de Transio de
Estados
Compartimentos de transies internas
O formato geral
Tipo do evento/expresso-ao (lista de parmetros separadas
por vrgula)[condio de guarda ]
Digitando senha
Entry/echoInvisvel(True)
Exit/echoInvisvel(False)
Do/ValidarCaracter( )
Diagrama de Transio de
Estados
Estado Inicial --> um tipo de estado que indica o local de incio na
mquina de estados ou em um subestado
Aguardando Leitura
de Carto
Atualizando lanamentos
Diagrama de Transio de
Estados
Transies --> uma transio um relacionamento entre dois estados
indicando que houve um mudana de estado e determinadas aes sero
executadas, quando um evento especfico ocorrer, garantindo que
condies foram satisfeitas. Esta transio um evento que gera uma
mudana de estados.
Formato: nome-do evento [condio de guarda]
Nota lanada
Aguardando Nota Atualizando Mdia
[nota>=0]
Diagrama de Transio de
Estados
Estado composto
Um estado composto um estado que possui uma decomposio grfica em
dois ou mais subestados.
Editando Texto
Aguardando ao
Caracter Digitado Tratando entrada
do usurio
Diagrama de Transio de
Estados
Estados compostos - concorrentes
Pit Stop
Trocando
pneus
Entrando Entrando
no Box no Box
Abastecndo
Diagrama de Transio de
Estados
Cliente solicita Reserva em aberto
reserva
entrada/verificar disponibilidade
Atendente Cancela
Reserva [No h Reserva
Disponibilidade] concluda
Cliente confirma
reserva
Cliente faz check out
Cliente cancela
reserva
Obter pedido
de reserva
Recusar Confirmar
reserva reserva
Diagramas de Interao
So diagramas que mostram a interao
entre os objetos do sistema
Inclui uma sequncia de trocas de
mensagens entre objetos dentro de um
contexto para realizar um propsito
especfico do sistema
Os dois tipos existentes so : Diagrama de
Sequncia e Diagrama de Colaborao
Diagrama de Sequncia
Mostra a interao entre os objetos
Considera a sequncia no tempo
O tempo mostrado de maneira Top-Down
Mostra as interaes de objetos organizadas
em uma sequncia de tempo e de
mensagens trocadas
Diagrama de Sequncia - Concepo
Cada Caso de Uso prov vrios cenrios
Um cenrio uma instncia de um caso de uso
O diagrama de classes mostra os objetos do
domnio da aplicao
Fazemos um Diagrama de Sequncia mostrando a
interao dos objetos em um determinado cenrio,
ou seja, para cada cenrio de um Caso de uso
teremos um diagrama
Completam o trip da anlise:
Casos de Uso comportamento externo (funcional)
Diagramas de Classes viso esttica
internos
Diagramas de Sequncia viso dinmica
Diagrama de Sequncia - Concepo
Diag. Classes Caso de Uso
Caso de Uso: 1 Cadastrar Cliente
Descrio Geral : Caso de Uso onde cliente efetua o seu cadastramento pela
internet
Atores : Cliente, Adm de carto
Incio : Esse caso de uso tem seu inco quando o cliente acessa o
portal da locadora na internet.
1..* Fluxo Tpico
Professor Curso N
o
Ao
1 Cliente informa o nmero do seu CPF
Pessoa 1 2
3
Sistema solicita os dados do cliente
Cliente informa seus dados
4 Sistema valida CC junto a adm de CC
Operaes
Aluno 5 Adm de CC informa CC OK
* 1..* 6 Sistema informa senha do cliente e encerra Caso de Uso
1..40
1..6 1 Fluxos Alternativos
No Ao
Turma 5 Adm informa CC no OK
6 Sistema emite mensagem para cliente e encerra Caso de Uso
Diag. Sequncia
Objetos :
interface Cenrio
cli
en
teCliente solicita
cadastro ( )
Sistema solicita
dados ( )
cli
Cliente informa
Criar (dados):cliente
dados (dados)
Diagrama de Sequncia
-Ator Qualquer elemento externo ao sistema que interage com o
mesmo. Pode ser um usurio, um outro sistema, etc.
Cadastro.exe
Hotel.exe
Acesso ao
BD.dll
Diagrama de Implantao
Mostra como os elementos de Hardware so
interligados
Apresenta uma estrutura de ns, onde um
n um elemento de hardware
Pode mostrar quais componentes estaro
sendo executados em cada n
Diagrama de Implantao
SUN
Alarme de Provedor
incndio ETHERNET TCP/IP
TCP/IP
PC Coleta
ETHERNET
PC
Alarme de Monitorao
umidade Ckliente
Viso Geral da UML
Noes bsicas de Orientao a objetos
Modelagem de Sistemas
Histrico da UML
O que a UML
Diagramas da UML
Concluses
Concluses
A UML uma linguagem de modelagem
no uma metodologia
A UML fornece ferramentas para
modelagem , mas no diz como fazer
Com base na UML os 3 amigos
elaboraram um Processo Unificado que
levou a criao do RUP (Rational Unified
Process), que porm no um padro
Concluses
O Banco de dados OO ainda no utilizado
largamente no mercado, o que dificulta a
utilizao da UML em toda a modelagem