Você está na página 1de 129

1

Orientao para Objetos


Projeto de Sistemas Aplicativos
para a Internet
FEA/USP
EAD-5881 Tecnologia de Informtica
Prof. Antonio Geraldo da Rocha Vidal
vidal@usp.br
2
Contedo
1. Conceitos de Orientao a Objetos
Classes
Objetos
Programao
2. Introduo Linguagem Java
Conceitos e recursos bsicos
3. Projeto de Sistemas Orientados a
Objetos
4. UML - Unified Modeling Language
3
Paradigma
Paradigma um conjunto de regras
que estabelece fronteiras e descreve
como resolver problemas dentro destas
fronteiras. Os paradigmas influenciam
nossa percepo: ajudam-nos a
organizar e a coordenar a maneira
como olhamos para o mundo...
Daniel Morris e Joel Brandon
4
Paradigmas
Tradicional: baseia-se na compreenso de
um sistema de informao como um conjunto
de programas que executam processos sobre
dados.
Objetos: v um sistema de informao como
uma coletnea de objetos que interagem
entre si, apresentam caractersticas prprias,
que so representadas pelas suas
propriedades (dados) e mtodos (processos).
5
Paradigmas
Programa Classe
Processos
Propriedades
Mtodos
Dados
Tradicional Objetos
6
Orientao a Objetos - OO
Anlise, projeto e programao orientados a
objetos representam uma mudana de
paradigma em relao s tcnicas clssicas.
Objetos so os componentes de um sistema
que pertencem a uma classe e possuem:
Encapsulamento
Herana
Polimorfismo
Propriedades
Mtodos
Eventos
Mensagens
Reutilizao
Flexibilidade
Interoperabilidade
7
Bases das Metodologias OO
Diretamente derivada dos conceitos da
programao orientada a objetos, a anlise e
o projeto orientados a objeto definem uma
nova maneira de pensar nos problemas
utilizando modelos organizados a partir de
conceitos do mundo real.
O componente fundamental a classe de
objetos, algo que combina estrutura e
comportamento em uma nica entidade que
pode derivar vrias ocorrncias ou instncias
de objetos semelhantes.
8
Origens da OO
Linguagens de Programao: Simula,
Smaltalk, Flavours, Objective C, C++,
Java, C#, Object Pascal e outras.
Inteligncia Artificial: frames.
Banco de Dados: modelos semnticos
de dados.

9
Expectativas da OO
A tecnologia de objetos oferece a modularidade de
seus elementos podendo-se tomar um subconjunto
existente e integr-lo de uma maneira diferente em
outra parte do software (sistema aplicativo).
Uma aplicao no universo de objetos consiste de um
conjunto de blocos de construo auto-contidos
e predefinidos que podem ser localizados, reparados
ou substitudos.
A construo de cdigo auto-contido propicia o teste
completo antes de ser utilizado dentro da lgica de
um sistema de informao.
10
Expectativas da OO
Possibilita incrementos graduais de componentes
aos j instalados, ampliando a abrangncia do
sistema.
A combinao de mdulos prov inicialmente um
nvel bsico de funcionalidade que estendido
sucessivamente para atender novas situaes, em
um progresso contnuo da aplicao perante os
usurios.
Forte direcionamento reutilizao de artefatos de
software j existentes, que so criados uma nica
vez e disseminados.
11
Objetos Concretos
Coisas
Tangveis
Automvel
Eventos Casamento
Transaes Transao
comercial
12
Objetos so pacotes de software compostos por
dados e procedimentos, que atuam sobre estes
dados.
Os procedimentos so tambm conhecidos
como mtodos e determinam o comportamento
do objeto.
Os dados so tambm conhecidos como
propriedades e determinam o estado do
objeto.
Objeto = dado + procedimento

Objeto = estado + comportamento
Objetos de Software
13
Objetos de Software
Propriedades
Dados
Variveis
Comportamentos
Mtodos
Procedimentos
14
Objeto Automvel
Potncia
Dimenses
Preo
Mover
Parar
Buzinar
Cor
15
Objetos de Software
Todo acesso aos dados ou propriedades de um objeto
feito atravs da sua interface, que expe mtodos e
propriedades a outros objetos.
16
Encapsulamento
definido como uma tcnica para
minimizar interdependncias entre
mdulos atravs da definio de
interfaces externas.
Interface
Mudanas na implementao de uma classe que preserve
a interface externa no afetam outras definies de classes.
17
Interfaces de Classes
Uma Interface descreve um grupo de classes
com as mesmas:
Propriedades constantes;
Mtodos abstratos;
Uma Interface define a estrutura ou
esqueleto padro de uma classe.
No implementa nenhum comportamento
real, mas apenas os declara.
Implementa propriedades constantes e
mtodos abstratos.
18
Mensagens
Objetos interagem e comunicam-se
atravs de mensagens...
Emissor
Receptor
Andar(...)
As mensagens identificam os mtodos a serem executados
no objeto receptor e passam-lhes alguma informao.
19
Mtodos
Um determinado mtodo define um
comportamento do objeto.
Tipos bsicos de mtodos:
Construtor (constri estados)
Destruidor (destri estados)
Transformador (transforma estados)
Acesso (fornece estados)

20
Abstrao
Focalizar o essencial, ignorar
propriedades acidentais ou especficas.
Classe Automvel Classe Mamfero
A abstrao deve sempre ter algum objetivo, pois o objetivo
ele que determina o que e o que no essencial
21
Classes de Objetos
Uma classe de objetos descreve um
grupo de objetos com:
Propriedades semelhantes;
Comportamentos semelhantes;
Relacionamentos comuns com outros
objetos.
22
Classes
Objetos
Instncias
Classe Automvel
Atributos
Potncia
Velocidade
Cor...
Mtodos
Acelerar
Frear
Buzinar...
Classificao
Instanciao
23
Classes
Classe Pai
Super Classe
Atributos e mtodos
da classe.
Instanciao de classe
Atributos e mtodos
especficos.
Subclasse Subclasse
24
Classes vs. Subclasses
Classes:
Contm informaes sobre como uma subclasse
ou um objeto deve ser e como deve se comportar.
Definem a forma e o comportamento padro de
subclasses e objetos nela baseados.
Subclasses:
So instncias ou ocorrncias de uma classe.
Herdam todas as suas caractersticas padro de
uma classe.
Alm disso, podem possuir caractersticas
especficas.
Podem derivar outras subclasses ou objetos nelas
baseados.
25
Classes vs. Objetos
Classes:
Contm informaes sobre como um objeto deve
ser e como deve se comportar.
Definem a forma e o comportamento padro de
objetos nela baseados.
Objetos:
So instncias ou ocorrncias de uma classe.
Herdam todas as suas caractersticas padro de
uma classe ou subclasse.
Alm disso, podem possuir caractersticas
especficas.
No podem derivar outros objetos neles baseados.
26
Relacionamentos entre Classes
Generalizao
Herana
Agregao
Polimorfismo
27
Generalizao /
Especializao
Generalizao o relacionamento entre
uma classe e uma ou mais verses
refinadas dessa classe.
Generalizao
Especializao
Generalizao a abstrao que permite compartilhar
semelhanas entre classes, preservando suas diferenas.
28
Hierarquia de Classes
Sub Classe A
Classe Derivada
Sub Classe B
Classe Derivada
Sub Classe C
Classe Derivada
Super Classe
Classe Primitiva
29
Herana
Uma classe derivada ou subclasse herda
as propriedades e mtodos da classe
me ou superclasse, mas pode:
Adicionar novos mtodos prprios;
Estender suas propriedades/atributos;
Redefinir a implementao de mtodos
existentes.

30
Herana
Sub Classe A
Classe Derivada
Sub Classe B
Classe Derivada
Subsub Classe 1 Subsub Classe 2
Sub Classe C
Classe Derivada
Super Classe
Classe Primitiva
Localizao de Mtodos e Propriedades na Hierarquia
Instncia
Calcular()
31
Herana
Automvel
Automvel
Esportivo
Ferrari
Generalizao
Especializao
Propriedades e
mtodos comuns
compartilhados
por classes.
Propriedades e
mtodos
diferentes de
uma subclasse,
acrescentando ou
alterando
caractersticas
herdadas.
32
Agregao
Chassi Carroceria Suspenso Motor
Automvel
Um objeto agregado construdo por vrios componentes
Agregao Fixa
33
Agregao
Pessoa
Empresa Departamento Setor
Um objeto agregado feito de componentes
Agregao Varivel
34
Polimorfismo
Refere-se a:
Vrios comportamentos que um mesmo mtodo
ou operao pode assumir;
Capacidade de um nome referir-se a objetos
diferentes que executam certas responsabilidades
dependendo da mensagem que lhes passada.
Um nome pode denotar objetos de muitas
subclasses diferentes que esto relacionadas
por alguma superclasse comum. Assim, um
objeto identificado por esse nome tem a
capacidade de responder a algum conjunto
comum de operaes de modos diferentes.
35
Evento vs. Estado
Evento:
Uma ocorrncia significativa no mundo real que
deve ser tratada pelos objetos de software.
So atividades especficas e predeterminadas,
provocada pelo usurio ou pelo sistema.
Possuem mtodos de objetos associados a eles.
Estado:
Situao de um objeto em um dado instante do
tempo.
36
Objetos: propriedades
Caractersticas ou atributos dos objetos que
so prprias da classe ou subclasse qual
pertencem.
Exemplo: objeto JOS, pertencente
subclasse CLIENTE, da subclasse PESSOA
FSICA, da classe PESSOA.
Nmero: 000001
CPF: 999.888.777-66
Nome: Jos da Silva
Endereo: Rua da Independncia, 709
Telefone: 3089-9090
Etc.
37
Objetos: mtodos & eventos
Cada objeto reconhece e pode responder a
aes denominadas eventos prprios da sua
classe/subclasse.
Eventos:
So atividades especficas e predeterminadas
provocada pelo usurio ou pelo sistema.
Possuem mtodos associados a eles.
Mtodos:
So comportamentos ou procedimentos
associados ao objeto.
Mtodos podem existir independentemente de
eventos.
38
Objetos: mensagens
Objetos recebem mensagens de outros
objetos com os quais se relacionam.
Mensagens:
Transferem informaes de um objeto para
outro.
So enviadas e recebidas atravs de
eventos.
So caracterizadas pelos mtodos ou
comportamentos dos objetos; tanto do que
envia como do que recebe.
39
Objetos: polimorfismo
Usando a mesma mensagem, objetos
podem assumir caractersticas e
comportamentos diferentes:
De acordo com contextos especficos;
De acordo com eventos especficos;
De acordo com eventos e contextos
especficos.
Um objeto pode assumir vrias formas:
Propriedades/atributos diferentes;
Mtodos/comportamentos diferentes.
40
Linguagens Orientadas a Objetos
41
Introduo s Linguagens
Orientadas a Objetos
Conceitos Bsicos
(Vlidos para C++, C#, Java, J++ e J#)
42
Java
Its a jungle out there

So drink your Java
Propaganda do Printers Caf
em Palo Alto CA/USA
43
Por que surgiu o Java?
Software para eletro-domsticos (1992)
Mnimo uso de memria
Mnimo preo
C++ simplificado
Desenvolvida pela Sun Microsystems Inc.
(1994)
Distribuio de software atravs da Internet
(1996)
Novo paradigma de programao:
Orientada a objeto
Totalmente aberta
Independente de plataforma e sistema operacional
44
Caractersticas do Java da
Sun
Linguagem orientada a objetos
Estrutura semelhante ao C++
Gera Bytecodes
Interpretada
Alta Performance (JIT)
Segurana
Endereamento restrito
Objetos assinados
Aplicao Carregada Localmente
45
Caractersticas do Java da
Sun
Aplicaes Personalizadas
Independncia de Arquitetura
Neutra
Distribuda
No h herana mltipla
No h aritmtica de ponteiros
Inclui tratamento de excees
Implementa Coletor de Lixo
46
Arquitetura de Programas Java
47
Java Script
Primeira Verso do Java
Aplicao Interna ao HTML
Interpretada
No havia o conceito de ByteCodes

<script language=Java Script
Function --------
{ .......

}
</script>
48
Applet Java
Aplicao executada quando se chama
uma pgina WWW
carregada na Mquina Cliente
Restringe-se a uma determinada rea
(janela)
<applet code=apl.class
codebase=http://www.fia.fea.usp.br/vidal
align=left
width=300
height=100
<param name=tamanho value=30>
<param name=fonte value Arial>
</applet:
49
Aplicao Java
Aplicao executada stand-alone
Exige somente a presena do
interpretador Java (Java Virtual Machine)


public class HelloWorldApp
{
// Definio do Mtodo MAIN
public static void main (String args[])
{
String text = "Hello World!";
System.out.println(text);
}
}
50
Java e Orientao a Objetos
Java suporta as principais caractersticas da
programao orientada a objeto atravs de
seus construtores de classes e de interfaces.
Uma classe um modelo que descreve um
conjunto inteiro de objetos. Em geral, uma
classe tem os mesmos membros, isto ,
propriedades (dados) e mtodos
(procedimentos), que os objetos criados a
partir dela.
Uma interface representa uma coleo de
comportamentos relacionados. Contm
somente declaraes de mtodos e
propriedades constantes.
51
Criando Classes
Uma classe composta por mtodos
(comportamento) e propriedades
(variveis que determinam o estado).
public class Pessoa {
// Variveis ou propriedades
String Nome;
boolean ComFome;
// Mtodos
int Comer(int quantidade)
{ //... }
}
Mtodos mudam o estado das variveis
52
Exemplo de Definio de
Classe (propriedades)
public class Morador...
{
String nomeCompleto;
String apartamento;
String telefone;
int anoChegada;
....

53
Exemplo de Definio de
Classe (mtodos)
public class Morador...
{....
public morador(String no, String ap,
String te, int an)

{ nomeCompleto = no;
apartamento = ap;
telefone = te;
anoChegada = an;
}
public int permanencia()
{ return (2002 - anoChegada); }
}
54
Criando Objetos
Criao do Objeto lassie a partir da
classe Cachorro:
/*Crie uma varivel de referncia
para a classe Cachorro:*/
Cachorro lassie;

/*Crie um objeto da classe Cachorro
e designe-o para a referncia:*/
lassie = new Cachorro();
55
Usando Objetos
Executando um mtodo do objeto
criado:
Cachorro.latir();
/* Errado! -no se pode fazer todos
os cachorros latirem.*/

lassie.latir();
/* Correto! pode-se fazer um
determinado cachorro latir.*/

56
Exemplo de Instanciao de
uma Classe
...
Morador prof;
....
prof = new morador(Vidal, 82, 3081-0001,1998);
...


57
Exemplo de Mtodos com
Mensagens
.....
Morador prof;
int p;
....
prof = new morador(Vidal, 81, 3081-0001,1998);
....
p = prof.permanencia(); // acionando o mtodo
// permanencia para o
// objeto definido em prof
indica o envio de mensagem para o
objeto prof
....
58
Herana
A herana permite a voc reutilizar e
modificar cdigo j existe.
A herana forma relaes hierrquicas entre
classes ou interfaces.
A meu ver a mais significativa contribuio do
paradigma da Orientao para Objetos para o
desenvolvimento de software.
59
Exemplo de Herana
import morador;

public class morador_inq extends morador
{
int aluguel;
public morador_inq(String no, String ap,
String tel, int an, int va)
{ super(no, ap, tel, an);
aluguel = va;
}
}

60
Exemplo de Agregao
Objeto Composto
public class material extends Object
{
String rotulo;
Boolean emCaixa;
int anoEstocagem;
double valor;
Morador proprietario;

public material (....)
....

61
Exemplo de Agregao
Objeto Composto
public class material extends Object
{....
public material (String ro, double va,
boolean em, Morador pro, int an)
{rotulo = ro; valor = va;
emCaixa = em; proprietario = pro;
anoEstocagem = an;
}

public int permanencia()
{ return (2002 - anoEstocagem); }

62
Pacotes
Um pacote um grupo de classes
relacionadas.
Eles so semelhantes a bibliotecas em
outras linguagens de programao.
Ajudam a organizar classes,
relacionando-as em categorias com
funcionalidades (mtodos e
comportamentos) semelhantes.
63
Pacotes JAVA
java.lang
java.util
java.io
java.awt
java.applet
Para usar um pacote pr-existente,
voc deve import-lo para o seu
programa.
64
Pacotes Java
65
Anlise e Projeto de Sistemas
Orientados a Objeto
UML - Unified Modeling Language
66
Contedo
Viso Geral
UML
Tcnicas de Modelagem
Anlise: Classes
Projeto: Objetos, Interface e Sistema
Consideraes Finais
67
Metodologia
Conjunto de tcnicas e diretrizes para
construo, manuteno e melhoria de
produtos de software.
Fornece uma base de comunicao: um
conjunto de tcnicas e uma base para
engenharia de software.
68
Fases Clssicas do
Desenvolvimento de Sistemas
Definio de
Requisitos
Anlise
Projeto
Implementao
Teste
Implantao
Domnio do Problema
Domnio da Soluo
69
Metodologia OO
Uma metodologia de desenvolvimento
de sistemas considerada Orientada a
Objetos se ela orienta a construo de
sistemas a partir do entendimento do
mundo real como um conjunto de
objetos que comunicam-se entre si de
forma coordenada.
70
Metodologia OO
Principais Atividades:
Entender quais so os objetos envolvidos
no domnio do problema.
Entender como se comunicam no mundo
real.
Projetar a forma como devem ser
implementados.
71
UML Unified Modeling Language
UML
Booch
Rumbaugh
Jacobson
Meyer
Harel
Wirgs-Brock
Fusion
Gamma et al
Shlaer-Mellor
Odell
Objetivo: linguagem de modelagem unificada que tratasse assuntos de escala
inerentes a sistemas complexos e de misso crtica, que se tornasse poderosa o
suficiente para modelar qualquer tipo de aplicao em tempo real, cliente/servidor,
orientada a objetos e outros tipos e padres de software.
72
A UML
Os fomentadores da UML no inventaram a
maioria das idias, em vez disso, seu papel
foi selecionar e integrar as melhores prticas,
tornando-a um meio padro de expressar
projetos de sistemas.
Ajuda a desmistificar o processo de
modelagem de sistemas de software.
Linguagem-padro para encorajar os
desenvolvedores a modelar os seus sistemas
de software, antes de constru-los.
Adoo rpida e muito difundida.
73
A UML
Tornou-se o modo-padro para desenhar
diagramas de projetos orientados a objetos.
Tambm foi adotada em campos no-
orientados a objetos.
projetada para ser independente do
processo de software.
uma linguagem padro para especificar,
visualizar, documentar e construir
componentes de um sistema de informao.
Pode ser utilizada em todos os processos ao
longo do ciclo de desenvolvimento e atravs
de diferentes tecnologias de implementao.
74
A UML
uma linguagem de modelagem; no uma
metodologia. No possui um processo!
Uma linguagem de modelagem a notao,
principalmente grfica, utilizada por mtodos
para expressar projetos.
O processo a sugesto de quais passos
devem ser seguidos na elaborao de um
projeto.
A linguagem de modelagem a parte-chave
do processo para a comunicao.
75
A UML
Est na sua verso 1.3 de 1999.
Define uma notao e um metamodelo:
Notao a parte grfica dos modelos; a
sintaxe da linguagem de modelagem.
Metamodelo um diagrama, geralmente o
diagrama de classes, que define a como notao
deve ser utilizada corretamente.
A UML tem pouco rigor; suas notaes
apelam para a intuio em vez da definio
formal. O mais importante a utilidade para
o projeto.
Atualmente um padro do OMG Object
Management Group.
76
A UML pode ser usada para:
1. Mostrar as fronteiras de um sistema e suas funes
principais utilizando atores e casos de uso;
2. Ilustrar a realizao de casos de uso com
diagramas de interao;
3. Representar uma estrutura esttica de um sistema
utilizando diagramas de classe;
4. Modelar o comportamento de objetos com
diagramas de transio de estados;
5. Revelar a arquitetura de implementao fsica com
diagramas de componente e de implantao;
6. Estender sua funcionalidade atravs de
esteretipos.
77
UML & Anlise e Projeto
O objetivo real do desenvolvimento de
software o cdigo executvel.
Nenhum usurio ficar satisfeito apenas
com diagramas de projeto bonitos.
O usurio quer um software que seja
executado!
Portanto, ao utilizar a UML importante
pensar em como ela ajudar a escrever
o cdigo executvel.
78
Domnio da Soluo Domnio do Problema
Processo de
Desenvolvimento
CONCEPO
Projeto Lgico
(Anlise
Conceitual)
ELABORAO
Projeto Fsico
(Projeto de
Software)
TRANSIO
Teste
Ajuste
Treinamento
CONSTRUO
Implementao
(Desenvolvimento)
1 2 3 ...
Interativo e Incremental
ITERAES:
Anlise
Projeto
Implementao
Teste & Ajuste
Treinamento
RISCOS:
Requisitos
Tecnologia
Pessoal Habilitado
Fatores Polticos
REQUISITOS
Reviso
de Processos
de Negcio
79
Tipos de Anlise
Anlise Esttica: descreve as
estruturas e os relacionamentos entre
os objetos do domnio do problema
(Diagrama de Classe de Objetos).
Anlise Dinmica: descreve o
comportamento dos objetos em termos
de suas mudanas ao longo do tempo
(Diagrama de Transio de Estados e
Diagrama de Interao).
80
Modelagem com a UML
1. O que fazem e desejam os usurios do sistema?
(anlise de processos e casos de uso).
2. Quais so os objetos no mundo real que interagem
com o sistema em estudo e suas associaes?
(diagrama de classes e MER).
3. Quais objetos so necessrios para cada caso de
uso? (anlise de processos, casos de uso e CRC).
4. Como colaboram entre si objetos dentro de um
caso de uso? (diagramas de interao).
5. Como sero implementados os controles de tempo
real? (diagramas de estados e de atividades).
6. Como ser construdo o sistema? (diagrama de
pacotes, diagrama de componentes, diagrama de
implantao).
ANLISE DE PROCESSOS
(No faz parte formal da UML)
82
Processos & Organizaes
Uma organizao pode ser vista como
um grande processo que recebe
insumos, informaes e recursos do
ambiente, os processa e os devolve ao
ambiente na forma de servios.
A organizao tambm pode ser vista
como um conjunto de processos
operacionais e gerenciais, que se
desdobram em etapas, e que por sua vez
se subdividem em atividades e estas em
tarefas.
83
Reviso vs. Reengenharia
de Processos
Melhoria Contnua Reengenharia
Mudanas suaves,
graduais e
contnuas.
Mudanas drsticas,
fundamentais e
descontnuas.
Qualidade Total
Racionalizao e Produtividade
Desenvolvimento de Processos
Baixo Risco
Alto Risco
No informatize,
destrua (Hammer).
Evolua lenta e
gradualmente (Kaizen).
Melhoria, Programas, Projetos Redesenho, Reprojeto
84
Mudana Organizacional
Do foco nas funes...(Sistemas Isolados)
85
Mudana Organizacional
...ao foco nos Processos (Sistemas Integrados).
86
Processo
um conjunto de atividades estruturadas, seqenciais e
medidas que transforma um ou mais tipos de entrada e
cria um produto ou servio que tem valor para
determinados usurios, clientes ou mercados.
Entradas
Requisitos
Produtos/
Servios
Fornecedores
Clientes
PROCESSO



87
Caractersticas dos Processos
Processos eficientes e eficazes possuem
as seguintes caractersticas:
Repetitibilidade
Estabilidade
Previsibilidade
Mensurabilidade
Documentao
88
Elementos de um Processo
Nome
Escopo e Limites
Clientes (internos e/ou externos)
Fornecedores (internos e/ou externos)
Requisitos de Entrada e Sada
Atividades e Participantes
Mapa do Processo
Indicadores e Medidas (tempo, custo etc.)
Informaes! (incluindo sua documentao)
89
Diagrama de um Processo
Fornecedor Processo Cliente

Atividades
com
Valor
Agregado

Transformao Entradas
Informaes
Insumos
Instrues
Materiais
Tecnologia
Sadas
Produtos
Servios
Informaes
(informao servio)
90
Anlise do Processo
Fornecedor
- Insumos
- Informaes
- Instrues
- Materiais
- Tecnologia
Entradas
Requisitos
Cliente

Produtos
- Servios
- Informaes

Sadas
Requisitos
Recursos
Instalaes
Padres de
Desempenho
Conhecimentos
Habilidades
Mtodos
Procedimentos
Regras
PROCESSO



91
Metodologia para Anlise do
Processo
1. Identificao de Produtos e Processos:
A partir do entendimento dos negcios da organizao.
2. Matriz Servio/Fornecedor/Cliente:
Detalha os produtos finais e intermedirios de um
processo
Detalha seus fornecedores e clientes internos e externos
Detalha as responsabilidades envolvidas
3. Mapa do Processo:
Fluxograma de atividades: identificando as unidades
organizacionais, tarefas, tempos, pessoas e interfaces
envolvidas em cada atividade.
Fluxograma de informaes: identificando as
informaes utilizadas no processo, detalhando seu
recebimento, processamento, envio, registro e interfaces
envolvidas.
92
Matriz Fornecedor X Cliente
Cliente
A
Cliente
B
Cliente
C
... Cliente
X
Fornecedor
A
Servio
1
Servio
3
Fornecedor
B
Servio
2
Fornecedor
C
Servio
4
...
Fornecedor
X
Servio
X
93
Smbolos para Fluxogramas
Operao
Operao Manual
Deciso
Documento
Arquivar
Extrair
Entrada
Conector Pgina
Conector
Incio/Fim
Processo
Armazenamento
Preparao
Dados
Disco
Acesso
Consulta
94
Mapa de Processo
Processo de Negcio
D
e
p
t
o
.

2
D
e
p
t
o
.

3
D
e
p
t
o
.
1
Incio Atividade 1 Deciso
Atividade 2
Atividade 3
Fim
No
Sim
95
Mapa de
Processo
Processo de Pedidos de Venda
Evento Atividade Informao
Unidade
Organizacional
Loja
Vendas
Vendas
Vendas
Pedido
Recebido
Entrar
Pedido
Pedido
Reigstrado
Processar
Pedido
Perguntar ao
Cliente
Preparar
Pedido
Suplementar
Pedido
Pronto
Necessidade
de
Informaes
Informaes
Recebidas
Pedido
Suplementado
Pedido do
Cliente
Clientes
Regulares
96
Ciclo de Melhoria de
Processos
Entendimento
do Negcio
Anlise do
Processo
Projeto do
Processo
Implementao
do Processo
(automao)
Gerenciamento do Processo
97
Benefcios para a Aplicao
da Tecnologia da Informao
Identificao clara do que dever ser automatizado
Aponta a priorizao das atividades a serem
automatizadas
Viso do todo com responsabilidades bem definidas
Garantia de automatizao de um processo j
racionalizado e preparado para usar a TI
Necessidades de suporte de Sistemas de Informao j
identificadas (dados, polticas, normas, regras do
negcio, procedimentos, recursos, capacitao etc.)
Reduo do tempo para obteno da viso global.
98
UML: Casos de Uso
(UML Use Case)
A partir dos Processos de Negcio explicita
requisitos de usurios em partes
significativas.
Descreve a funcionalidade do sistema
percebida por atores externos ligados ao
Processo de Negcio.
Um ator interage com o sistema podendo ser
um usurio, dispositivo ou outro sistema.
O planejamento e a construo de sistemas
realizado pela implementao de alguns
Casos de Uso em cada iterao.
99
UML: Casos de Uso
Tcnica proposta por Jacobson (1992).
Conceitos bsicos:
Cenrio: uma seqncia de passos que
descreve uma interao entre um usurio e
um sistema.
Caso de uso: um conjunto de cenrios
amarrados por um objetivo comum de um
usurio.
Base para testes dos requisitos do sistema.
100
UML: Casos de Uso
Caractersticas dos Casos de Uso:
H um caso comum, em que tudo d certo, e que
ocorre com mais freqncia.
H casos alternativos, menos freqentes, que
podem ocorrer quando algo sai fora do comum
(outros caminhos ou erros).
Captura de Casos de Uso:
Descrio do cenrio primrio como uma
seqncia de passos numerados.
Descrio descrio das alternativas, como
variaes daquela seqncia de passos mais
comum.
101
UML: Casos de Uso
Exemplo
Compra de um Produto na Web
1. O cliente navega pelo catlogo e seleciona itens
a serem comprados.
2. O cliente vai para o check out.
3. O cliente preenche o formulrio para remessa.
4. O sistema apresenta a informao total
incluindo: faturamento, remessa, preos e
impostos.
5. O cliente preenche a informao de carto de
crdito.
6. O sistema autoriza a compra.
7. O sistema confirma imediatamente a venda.
8. O sistema envia uma confirmao para o cliente
via e-mail.
102
UML: Casos de Uso
Exemplo
Caso Alternativo 1 Falha na Autorizao:
No passo 6, o sistema falha na autorizao da
compra por carto de crdito. Permite ainda ao
cliente reenviar a informao do carto de
crdito ou tentar novamente com outro.
Caso Alternativo 2 Cliente Habitual
O sistema mostra a informao total e os quatro
ltimos dgitos do carto de crdito.
O cliente pode aceitar ou escrever por cima
destas opes e retornar para o Caso Comum no
passo 6.
103
UML: Diagrama de Casos de Uso
Sistema
Ator
Caso de Uso
uses
104
UML: Diagrama de Classes
(UML Static Structure)
Um dos mais importantes componentes da UML.
Mostra a estrutura esttica de conceitos, tipos e
classes do sistema.
Conceitos mostram como os usurios pensam
sobre o mundo real.
Tipos mostram interfaces de componentes de
software.
Classes mostram a implementao dos
componentes de software.
considerado esttico pois a estrutura descrita
sempre vlida para o sistema.
105
UML: Diagrama de Classes
Grfico bidimensional de elementos de
modelagem que pode conter:
Tipos
Pacotes
Relacionamentos
Classes
Um diagrama de objetos uma variao do
diagrama de classes que mostra objetos em
vez de classes.
106
UML: Diagrama de Classes
+IncluirPedido()
+AtenderPedido()
-Nmero
-Data
Pedido
+Incluir()
+Av aliar()
-Cdigo
-Nome
-Limite Crdido
-Endereo
Cliente
-Pedido
0..*
-Cliente
1
+IncluirItem()
+CalcularTotal()
-Quantidade
Item Pedido
-Pedido 1
-Item 1..*
+IncluirProduto()
+AtualizarPreo()
+AtualizarSaldo()
-Cdigo
-Nome
-Preo
-SaldoEstoque
Produto
-Item
0..*
-Produto
1
Hardware Software Suprimento
Generalizao
Associao
Agregao
Dados/Propriedades
Operaes/Mtodos
Super Classe
Subclasse
Composio
Multiplicidade
107
Diagrama de Classes - Exemplo
-lastName : char
-firstName : char
-address : char
-city : char
-state : char
-zipcode : char
-phoneNumber :
char
-faxNumber : char
-email : char
Person
event +ir() :
float
-salary : float
-cpfNum : char
-title : char
Person::Employe
e
+prazo() : int
-creditLimit : float
-creditCarg :
char
-expireDate :
char
Person::Client
+salePrice() : float
-productName :
char
-productPrice : float
-cgcNum : char
Person::Supplier
108
Cartes CRC
(No fazem parte formal da UML)
Ajudam a chegar essncia do objetivo
de uma classe.
Bons para explorar como implementar
Casos de Uso.
Devem se utilizados para simplificar e
esclarecer detalhes.
teis para o entendimento de Classes e
Objetos.
109
Cartes CRC
PEDIDO
Verifique se os itens esto em estoque Item Pedido
Determine o Preo Produto
Verifique se o pagamento vlido Cliente
Despache para o endereo de entrega Cliente
Responsabilidade Colaborao
110
UML: Diagramas de
Interao
(Sequence & Collaboration)
So modelos que descrevem como grupos de
objetos colaboram em algum comportamento
do sistema.
Tipicamente capturam o comportamento de
um nico Caso de Uso.
Mostram vrios objetos e as mensagens que
so passadas entre estes objetos em um
Caso de Uso.
Categorias de Diagramas de Interao:
Diagramas de Seqncia
Diagramas de Colaborao
111
UML: Diagramas de Seqncia
(UML Sequence)
Mostram o fluxo global de controle da
interao entre objetos atravs de
mensagens.
Permitem o entendimento da seqncia de
mtodos em classes distintas que revela o
comportamento pretendido.
Ajudam o entendimento de processos
concorrentes.
As duas dimenses de um diagrama de
seqncia so tempo (vertical) e objetos
(horizontal).
112
UML: Diagrama de Seqncia
Prepare()
Entrada de Pedido Pedido Item de Pedido
Adicione Item()
Produto
VerificarEstoque()
RetirarEstoque()
Retorno OK()
PrecisaRepor()
Item Reposio
Message1()
Item Entrega
Message2()
113
UML: Diagramas de Colaborao
(UML Collaboration)
Mostra uma interao dinmica de um Caso
de Uso organizada em torno de objetos e
seus vnculos mtuos.
Utiliza nmeros de seqncia para evidenciar
a seqncia de mensagens.
Flechas indicam as mensagens enviadas
dentro de um dado Caso de Uso.
Mostra como objetos so ligados entre si.
Utiliza o layout de Diagramas de Classes ou
de Pacotes para esboar a colaborao entre
objetos.
114
UML: Diagrama de Colaborao
Janela Entrada Pedido Pedido
Incluir()
Item Pedido
Incluir()
Produto
VerificarEstoque()
AtualizarSaldo()
Item Entrega
I
n
c
l
u
i
r
(
)
Item Reposio
I
n
c
l
u
i
r
P
r
o
d
u
t
o
(
)
115
UML: Diagramas de Estados
(UML Statechart)
Mostram como um nico objeto se comporta
atravs de muitos Casos de Uso.
Mostra seqncias de estados que um objeto
ou uma interao assume em sua vida em
resposta a eventos, juntamente com suas
respostas e aes.
um complemento de uma classe
relacionando os possveis estados que objetos
da classe podem ter e quais eventos podem
causar a mudana de estado (transio).
116
UML: Diagrama de Estados
Registrando Pedido
Analisando Pedido
Alterando Pedido
Pedido enviado
Analise
requisitada
Alterao de
Pedido Solicitada
Cancelamento de Pedido
Cancelamento
de Pedido
Solicitado
Pedido deve ser
cancelado
Aprovando Pedido
Pedido para
Aprovao
Pedido Pendente
Pedido no pode
ser atendido no
momento
Pedido j pode
ser atendido
Atendendo Pedido
Pedido deve ser
Atendido
Pedido Atendido
Eventos
117
UML: Diagramas de
Atividades
(UML Activity)
Mostra comportamento com estrutura de
controle.
Pode mostrar:
Muitos objetos em muitos usos.
Muitos objetos em Caso de Uso nico.
A implementao de mtodos.
um diagrama de estados especial onde a
maioria dos estados de ao e a maioria
das transies ativada por concluso das
aes dos estados de origem.
Seu propsito estudar fluxos dirigidos por
processamento interno, descrevendo as
atividades desempenhadas numa operao.
118
UML: Diagrama de Atividades
Registrar
Pedido
Cancelar
Pedido
Autorizar
Pagamento
Atualizar
Estoqe
Aceitar
Pedido
119
UML: Pacotes
(UML Deployment)
Mostra grupos de classes e as
dependncias entre elas.
Pessoa
Indivduo Organizao
120
UML: Diagramas de Componentes
(UML Component)
So mostradas dependncias entre
componentes de software.
Tipos de componentes:
Cdigo-fonte
Cdigo-binrio
Executveis.

121
UML: Diagrama de Componentes
Componente
da Interface 1
Componente
da Interface 2
Componente
de Negcios 1
122
UML: Diagramas de Implantao
(UML Deployment)
Mostra elementos de configurao de
processamento e os componentes de
software, processos e objetos que neles se
mantm.
Inclui o uso fsico do sistema considerando
computadores, dispositivos e suas
interconexes.
Mostram o layout fsico dos componentes nos
ns de hardware.
123
UML: Diagrama de Implantao

SERVIDOR
BANCO DE
DADOS
ESTAO
CLIENTE
(PC)
ESTAO
CLIENTE
(PC)
SERVIDOR
WEB
Entrada do Pedido
Registro do Pedido
124
Relacionamento entre as
Tcnicas de Modelagem
Use Case
Diagrama de
Classes
CRC DTE DI
Componentes Pacotes Implantao
Reviso de
Processos
125
Tecnologias de Implementao
Ferramentas CASE:
Rational Rose (Rational), Visio Enterprise (Microsoft) etc.
Linguagens Orientadas a Objetos:
Java, J++, J#, C#, VB.NET, C++ e Smalltalk
Ambientes de Desenvolvimento:
VisualAge for Java (WebSphere) (IBM)
Oracle Applications (Oracle)
Visual Studio .NET (Microsoft)
Visual Caf (Symantec)
Jbuilder (Borland/Inprise)
Banco de Dados Orientado a Objetos:
O2 (O2 Technology)
Objectstore (Object Design Inc.)
Jasmine (Computer Associates)
126
Implementao de uma
Metodologia OO
Mudana de paradigma requer treinamento
intensivo.
Prottipos sem compromisso.
Os primeiros sistemas devem ser livres.
Grupo formal de metodologia proposta e
treinamento.
Acerto do ambiente de desenvolvimento
suporte e padres.
Administrao de classes/objetos Biblioteca
de Classes.
Ferramenta CASE.
127
Benefcios da OO
Reutilizao de cdigo.
Estabilidade.
O projetista pensa em termos de
comportamento dos objetos e no em
detalhes de baixo nvel.
Construo de objetos cada vez mais
complexos.
Confiabilidade.
Verificao de preciso.
Novos mercados de software.
Desenvolvimento acelerado.
Integridade.
128
Benefcios da OO
Programao facilitada.
Manuteno facilitada.
Ciclo de vida dinmico.
Refinamento durante a construo.
Modelagem mais realista.
Melhor comunicao entre profissionais de
sistemas e usurios.
Interoperabilidade.
Processamento Cliente/Servidor.
Processamento distribudo e paralelo.
Bibliotecas de classes industrializadas e
corporativas.
129
Fim! Obrigado e Sucesso!