Você está na página 1de 56

Análise Orientada a Objetos

A N Á L I S E O R I E N TA D A A O B J E T O S

Conteúdo Programático
A disciplina revisará os conceitos básicos de
orientação a objetos destacando as vantagens do
desenvolvimento orientado a objetos e da análise e
projeto orientado a objetos. Abordará o processo
de desenvolvimento e os conceitos de Linguagem
de modelagem UML (Unified Modeling
Language), através de um estudo de caso.

Jogos e Interação Humano-Computador.


A N Á L I S E O R I E N TA D A A O B J E T O S

Bibliografia
Bibliografia básica:
DENNIS, A; WIXOM, B H; TEGARDEN, D. Systems Analysis and Design with
UML. IE-Wiley, 2009.
GUEDES, Gilleanes T. A. UML 2 - Uma Abordagem Pratica. Novatec, 2009.
LARMAN, C. Utilizando UML e Padrões. Bookman. 2007.

Bibliografia complementar:
WEST, D; MCLAUGHLIN, B; POLLICE, G. Princípios de Análise e Projeto de
Sistemas com UML. Alta Books, 2007.
A N Á L I S E O R I E N TA D A A O B J E T O S

Objetivos
• Identificar os problemas comuns do
Desenvolvimento do Software
• Introduzir as Metodologias para
Desenvolvimento de Software
• Apresentar o Paradigma de Objetos e
• Apresentar a UML – Unified Modeling
Language.
A N Á L I S E O R I E N TA D A A O B J E T O S

Problemas Típicos
• Os prazos não são cumpridos,
• Há dificuldade em se estimar preço,
• A funcionalidade esperada não é obtida,
• Há necessidade de manutenções freqüente,
• As correções introduzem mais erros,
• Ocorrências inesperadas durante o uso.
A N Á L I S E O R I E N TA D A A O B J E T O S

O problema é grande
Acompanhando um grupo de
Cerca de 100 Projetos de Software Concluídos
Durante 1 ano com sucesso
16%

Não concluídos Cancelados


Ameaçados 53% 31%
A N Á L I S E O R I E N TA D A A O B J E T O S

Uma tecnologia madura tem ...


• Custos bem definidos,
• Prazos estimados com precisão,
• Intensa padronização,
• Repetibilidade e
• Previsibilidade.

• Ex. Indústria da Construção Civil.


A N Á L I S E O R I E N TA D A A O B J E T O S

A tecnologia de software ...


• É uma indústria nova (<50 anos),
• O produto não é muito bem conhecido,
• Os métodos são quase todos artesanais,
• O processo não está bem definido, e
• Os padrões mudam constantemente
A N Á L I S E O R I E N TA D A A O B J E T O S

Como obter qualidade ?


• Qualidade é fruto de um gerenciamento
adequado do processo.
• É preciso ter um processo!
• Qualidade é fruto de um projeto eficiente.
A N Á L I S E O R I E N TA D A A O B J E T O S

O Engenheiro ...
• CIVIL
– Cria plantas das construções antes de construir
– O empreiteiro constrói a casa seguindo a planta
• MECÂNICO
– Faz o desenho da peça antes de fabricá-la
– O ferramenteiro fabrica a peça conforme o
desenho
E o Engenheiro de Software ?
A N Á L I S E O R I E N TA D A A O B J E T O S

Qualidade depende de um projeto


• Um projeto representa simplificadamente o que se está
construindo.
• Cria-se um modelo do que se está projetando.
• A modelagem permite controlar a qualidade.
• Pode-se testar e simular o modelo.
• O modelo permite que o projetista e o construtor
(e o cliente) tenham as mesma visão do problema.

Como é um projeto (planta) de software ?


Como é um modelo de software ?
A N Á L I S E O R I E N TA D A A O B J E T O S

Engenharia de Software
• Utilizar procedimentos de engenharia para criar
software
• Projetar antes de construir (Desenhar o software,
UML)
• Criar peças separadamente e integrar só no final
(objetos)

• A UML e a Orientação a Objetos permitem


consolidação da Engenharia de Software
A N Á L I S E O R I E N TA D A A O B J E T O S

Novo Paradigma (Objetos)


• Nova forma de ver um software
• Objetos :
– Dão uma visão completa do problema,
– Padronização e Reutilização (custo e prazo)
– Aumentam a qualidade do sistema
– Construção passa a ser integração
A N Á L I S E O R I E N TA D A A O B J E T O S

Enfoque tradicional para a


Construção de Sistemas
• Baseia-se na compreensão do sistema
como um conjunto de programas que
executam processos sobre dados.
Programa

Processos

Dados
A N Á L I S E O R I E N TA D A A O B J E T O S

Novo enfoque – Modelagem por Objetos

• Vê o mundo como uma coletânea de objetos


que interagem entre si, apresentam
características próprias que são representadas
pelos seus atributos (DADOS) e operações
(PROCESSOS).
Classe

Processos

Dados
A N Á L I S E O R I E N TA D A A O B J E T O S

Enfoques : Tradicional X Novo

Programa Classe
Processos Atributos

Dados
Processos
A N Á L I S E O R I E N TA D A A O B J E T O S

Qualidade Modelo Objeto


• Objetos indicam maturidade
– Padronização, Re-aproveitamento
– Projetar antes de construir

• Objetos permitem o gerenciamento


– Redução do re-trabalho
– Custos e Prazos bem definidos
– Construção passa a ser Integração
A N Á L I S E O R I E N TA D A A O B J E T O S

Reutilização é o pulo do gato!

Criar
Componentes
Componentes Reutilizáveis
(objetos)

Integrar os
Componentes
A N Á L I S E O R I E N TA D A A O B J E T O S

Conceitos ligados a Objetos


• Classe
• Atributos
• Processos
• Herança
• Polimorfismo
• Encapsulamento (Objetos)
• Mensagem
A N Á L I S E O R I E N TA D A A O B J E T O S

Classe
• Classe é a representação de um conjunto de
coisas reais ou abstratas que são
reconhecidas como sendo do mesmo tipo
por compartilhar as mesmas características
de atributos, operações, relações e
semântica.
A N Á L I S E O R I E N TA D A A O B J E T O S

Representação Gráfica de Classe

Nome da Classe PESSOA

+Nome:Char
+Atributos:Tipo=Valor Inicial +DataNascimento:long

MostrarNome():Char
+Processos(Parâmetro):Tipo Retornado CalcularIdade():int
:
A N Á L I S E O R I E N TA D A A O B J E T O S

Classe (Tipo)
• Classe é uma descrição de tipo que
relaciona um número de objetos, isto é, um
modelo que define a estrutura e capacidades
de uma instância de objeto.
A N Á L I S E O R I E N TA D A A O B J E T O S

Exemplo de Classe como tipo ...

VEICULOS RODADEVEICULO
+Modelo:Char +ModeloDaRoda:Char
+Cor:Char +MedidaDoAro:int
+QuantidadeDeRodas:int +MaterialDeFabricação:Char
+Rodas:RODADEVEICULO +Cor:Char
+Ignição()
+MostraModelo()
+Acelerar()
+MostraCor()
+QualModelo()
+MostraMedidaDoAro()
+QualCor()
+QualRoda(Rodas):Char
A N Á L I S E O R I E N TA D A A O B J E T O S

Atributos
• Atributo é a menor unidade que em si possui
significância própria e inter-relacionada com o
conceito lógico da classe à qual pertence.
• Apresenta um princípio de atomicidade, ou seja,
do armazenamento de um valor simples em célula.

• Um indivíduo possui NOME, SEXO, etc ...


A N Á L I S E O R I E N TA D A A O B J E T O S

Representando um Atributo
Visibilidade NomeDoAtributo : TipoDeExpressão = ValorInicial
• Visibilidade
– (+) Visibilidade Pública (valor default)
– (#) Visibilidade Protegida
– (-) Visibilidade Privada
• Nome do Atributo é a identificação do atributo.
• Tipo de Expressão é uma especificação que depende da linguagem
de programação e do tipo de implementação de um atributo.
• Valor inicial é uma expressão que também depende da linguagem
de programação utilizada para o valor inicial do atributo no
momento inicial da criação de um objeto. O valor inicial é opcional
(o sinal de igual também é omitido).
A N Á L I S E O R I E N TA D A A O B J E T O S

Processos
• É a lógica contida em uma classe para
designar-lhe um comportamento, capaz de
manipular os atributos do objeto.

• Ex.: Cálculo da idade de uma pessoa em


uma classe [indivíduo].
A N Á L I S E O R I E N TA D A A O B J E T O S

Representando um Processo
Visibilidade NomeDoProcesso (Parâmetro) : ExpressãoDeTipoDeRetorno

• Visibilidade
– (+) Visibilidade Pública (valor default)
– (#) Visibilidade Protegida
– (-) Visibilidade Privada
• Nome da Processo
– É a identificação do Processo.
A N Á L I S E O R I E N TA D A A O B J E T O S

Representando um Processo
Visibilidade NomeDoProcesso (Parâmetro) : ExpressãoDeTipoDeRetorno

• Parâmetro
– É uma lista de valores separados por vírgula que a
operação irá usar para o processamento.
• Expressão de Tipo de Retorno
– É uma especificação dependente da linguagem de
programação sobre o tipo de implementação do
valor retornado pela operação. Se o tipo de retorno
é omitido a operação não devolve um valor.
A N Á L I S E O R I E N TA D A A O B J E T O S

Herança
• É a capacidade de um novo objeto tomar
atributos e operações de um objeto
existente, permitindo criar classes
complexas sem repetir código.
• A nova classe simplesmente herda seu nível
base de características de um ante-passado
na hierarquia de classe.
A N Á L I S E O R I E N TA D A A O B J E T O S

Herança

Automóvel Generalização

Automóvel
Esportivo

Porsche Especificação
A N Á L I S E O R I E N TA D A A O B J E T O S

Polimorfismo
• Palavra originária do grego “muitas formas“.

• Tais formas se referem aos vários


comportamentos que uma mesma operação
pode assumir.
A N Á L I S E O R I E N TA D A A O B J E T O S

Polimorfismo

APLICAÇÃO FINANCEIRA

+CalcularSaldo()

RENDA FIXA POUPANÇA FUNDO DE AÇÕES

+CalcularSaldo() +CalcularSaldo() +CalcularSaldo()


A N Á L I S E O R I E N TA D A A O B J E T O S

Objeto
• Um objeto é uma ocorrência específica
(instância) de uma classe.

Uma pessoa Um Automóvel Um Documento Uma Região


A N Á L I S E O R I E N TA D A A O B J E T O S

Mensagem
• É o estimulo (Mensagem) ao objeto,
acionando uma determinada operação
fazendo com que o mesmo responda ou
assuma determinado estado.
A N Á L I S E O R I E N TA D A A O B J E T O S

Mensagem

OBJETO

Produto Final
Pedido Matéria Prima Processo Produtivo

Mensagem Atributos Operações


Resposta
A N Á L I S E O R I E N TA D A A O B J E T O S

Evolução Metodológica
A N Á L I S E O R I E N TA D A A O B J E T O S

Metodologia

Histórico e Diagramas da
UML
A N Á L I S E O R I E N TA D A A O B J E T O S

Histórico da UML
• Tentativa de unificação da notação
• Todos usavam os mesmos conceitos
• Busca do melhor em cada método
• Padronização da representação
• A UML 1.0 é publicada em 13/01/97
http://www.rational.com
• Tradução para o Português 03/11/97
http://usuarios.dialdata.com.br/deboni
A N Á L I S E O R I E N TA D A A O B J E T O S

UML (The Unified Modeling Language)

• Introduzida em 1997, a Unified Modeling


Language (UML) rapidamente se tornou
aceita pelo mercado de software como
uma linguagem gráfica padrão, destinada
à especificação, à construção, à
visualização e à documentação de
sistemas complexos de software.
A N Á L I S E O R I E N TA D A A O B J E T O S

UML (The Unified Modeling Language)

• A UML oferece a qualquer pessoa


envolvida na produção, instalação e
manutenção de software uma notação
padronizada para expressar o projeto
de um sistema.
A N Á L I S E O R I E N TA D A A O B J E T O S

UML (The Unified Modeling Language)

• Abrange elementos conceituais como


processos comerciais e funções de
sistema, além de elementos concretos,
como classes de linguagens de
programação, esquemas de bancos de
dados e componentes de software
reutilizáveis.
A N Á L I S E O R I E N TA D A A O B J E T O S

UML (The Unified Modeling Language)

• A UML é uma linguagem de modelagem


de objetos.

• A UML é a linguagem padrão para


especificar, visualizar, documentar e
construir artefatos de um sistema.
A N Á L I S E O R I E N TA D A A O B J E T O S

Comportamento Externo
• Descrição de cenários de integração entre
elementos externos e o sistema :

– Diagramas de Casos de Usos


Sistema
Interação
Caso de Uso

Ator
A N Á L I S E O R I E N TA D A A O B J E T O S

Estrutura de Suporte
• Estrutura das partes que formam o sistema e
suas relações internas

– Diagramas de Classes
– Diagramas de Pacotes
A N Á L I S E O R I E N TA D A A O B J E T O S

Diagrama de Classes
Associação
Pedido Cliente
-CodigoDoCliente:Integer
+IncluirPedido( ) 1 1 -LimiteDeCredito:Int eger Classe
+AtenderPedido( )
1
Agregação

Multiplicidade Atributos
Pedido, item
-Quantidade:Integer
+IncuirItemPedido( ) Operações
+CalcularTotalPedido( )
A N Á L I S E O R I E N TA D A A O B J E T O S

Diagrama de Pacotes
Pessoa

Parte

Indivíduo Organização
A N Á L I S E O R I E N TA D A A O B J E T O S

Comportamento Dinâmico
• Resposta aos estímulos externos, e a
comunicação entre as partes internas do
sistema e das classes
– Diagramas de Estados (dentro de uma classe)
– Diagramas de Seqüência (entre classes)
– Diagramas de Atividade (entre classes)
– Diagramas de Colaboração (entre classes)
A N Á L I S E O R I E N TA D A A O B J E T O S

Diagrama de Estados
Pedido enviado Alteração de pedido Cancelamento de
solicitada Pedido solicitado

Registrando Alterando Cancelando


pedido pedido pedido
Pedido para análise Pedido será Pedido
requisitado cancelado cancelado
Pedido para
Analisando pedido aprovação Aprovando
Pedido não pode ser pedido
Atendido no Pedido já pode Pedido será atendido
momento Ser atendido
Pedido
Colocando pedido atendido
Atendendo pedido
Em pendência
A N Á L I S E O R I E N TA D A A O B J E T O S

Diagrama de Seqüência
Objeto 1:
:Nome da
Nome da Objeto 2 Objeto 3
Classe
Classe
Nome do Ator
Classe do Ator
3. Operação
1. evento (Lista de
2. operação Parâmetros)
Texto 5. Operação
De (Lista de
Script Parâmetros)
4. Operação
(Lista de
Parâmetros)
A N Á L I S E O R I E N TA D A A O B J E T O S

Diagrama de Atividade
[ condição 1 ]
Atividade 1 Atividade 2

[ condição 2 ]

Atividade 3 Atividade i

[ condição de sincronização ]

Atividade n
A N Á L I S E O R I E N TA D A A O B J E T O S

Diagrama de Colaboração
3 : operação (lista de parâmetros)

1 : evento

2 : operação
Objeto 1:nome
Objeto 2
Da classe

Nome do Ator: 4 : operação (lista de parâmetros)


Classe do Ator 5 : operação
(lista de parâmetros)
Objeto 3:nome
:nome da classe
Da classe
Fluxo de objeto
A N Á L I S E O R I E N TA D A A O B J E T O S

Arquitetura de Implementação
• Descrição dos componentes de software que
formam o sistema e a arquitetura de
hardware

– Diagramas de Componentes
– Diagramas de Implantação
A N Á L I S E O R I E N TA D A A O B J E T O S

Diagrama de Componentes
Programas
Sistema Registro.EXE
Cobrança.EXE De
Cobrança
Bibliotecas

Curso.DLL Pessoa.DLL
Curso Usuário

Classes
Curso.CLS Aluno.CLS Professor.CLS
A N Á L I S E O R I E N TA D A A O B J E T O S

Diagrama de Implantação
Entrada de
Pedido 1
PC * FAX

Recebimento 1
PC 1 Servidor

Compra Impressora *
PC 1
A N Á L I S E O R I E N TA D A A O B J E T O S

Documentação
• Notação coerente em todo modelo
• Relacionamento entre diagramas
• Glossário de termos padronizados

Linguagem Unificada de Modelagem


UML – Unified Modeling Language
A N Á L I S E O R I E N TA D A A O B J E T O S

Relações entre os diagramas


Comportamento
Externo Casos de Uso

Comportamento
Interno

Seqüência Colaboração Atividades Estados

Estrutura Classes Pacotes

Implementação Componentes Implantação