Você está na página 1de 46

Curso Técnico de Informática Industrial

Professora Deisymar Botega Tavares


CEFET-MG – Timóteo
Material adaptado do texto Análise Orientada a Objetos do
Professor: Marcelo Balbino
2

 Etapa responsável pelo estudo do sistema;


 Nesta fase não se deve preocupar com
questões tecnológicas ou de implementação;
 Nesta fase devemos:
 Verificar a qualidade dos requisitos obtidos;
 Modelar os conceitos do domínio do problema;
 Detalhar os requisitos no nível adequado aos
desenvolvedores, servindo de base para o desenho
do produto.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
3

 Na fase de análise utiliza-se o recurso de


Classes para estudar os requisitos funcionais.
 Classes são abstrações de elementos do
mundo real que fazem parte do problema
estudado.
 Os objetos são as instâncias das classes.
 Exemplo: no domínio acadêmico:
 ALUNO é uma CLASSE;
 Lorean, Filipe, Vinícius, Alex, alunos matriculados
num curso, são objetos da classe aluno.
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
4

 Os objetos possuem atributos (campos) e


operações (procedimentos).
 Veja um exemplo da representação da
classe Aluno: Aluno
Nome
RG
Data Nascimento
Inserir Aluno
Alterar dados Aluno
Excluir Aluno

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
5

1º Compartimento: Venda
NOME DA CLASSE
Forma de Pagamento
Valor
Data
2º Compartimento:
Inserir Venda
ATRIBUTOS DA CLASSE
Gravar Venda
Excluir
Totalizar
3º Compartimento: Emitir Ticket
OPERAÇÕES DA CLASSE Emitir Nota Fiscal
Imprimir Nota Fiscal

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
6

 Técnica de Análise das Descrições dos


Casos de Uso:
 Procure por substantivos existentes nos fluxos
dos casos de uso;
 Cada substantivo normalmente será:
1. Uma provável classe;
2. Um atributo de uma classe;
3. Uma operação de uma classe;
4. Um aspecto de implementação (ex. relatório);
5. Uma entidade fora do escopo do produto;

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
7

 Os substantivos que se encaixarem nos casos 4


e 5 não interessam e devem ser descartados.
 Não se deve também incluir os atores (sujeitos
das frases nos fluxos dos casos de uso) como
prováveis classes.
 Outros documentos gerados até então também
podem ser utilizados para análise (mini mundo,
lista de funcionalidades, entrevistas ... etc)

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
8

O caixa faz a abertura da venda.


Para cada item de venda:
O caixa registra informa a identificação e a quantidade do item.
O Sistema totaliza a venda para o cliente.
O caixa encerra a venda.
O Sistema emite o ticket de caixa para o cliente.
O caixa registra a forma de pagamento.
O Sistema faz a baixa no estoque das mercadorias vendidas.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
9

Classe candidata Análise

Abertura operação
Venda provável classe
item de venda provável classe
Identificação atributo do Item de Venda
Quantidade atributo do Item de Venda
Cliente entidade fora do escopo
ticket de caixa relatório (entidade de implementação)
forma de pagamento atributo de Venda
Baixa operação
Estoque atributo da mercadoria (saldo do estoque)
Projeto de Software - Técnico em
Mercadoria
Informática - Deisymar Botega Tavares
provável classe
10

 Classes Candidatas:
 Venda;
 Itens de Venda;
 Mercadoria;
 Geralmente as classes encontradas são classes
persistentes:
 Classes que possuem dados persistentes, ou seja,
dados que devem ser armazenados pelo sistema.
 As classes persistentes são aquelas que sobrevivem
a cada execução do programa por estarem
armazenadas em arquivos ou bancos de dados.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
11

 Vamos fazer o seguinte exercício 1 do


arquivo disponível no qualidata.
 Lista Exercício 6 - Detecção de Classes -
Diagrama de Classes e Diagrama de Sequencia

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
12

 As classes de um domínio não são informações


isoladas.
 Classes se relacionam;
 Após identificarmos as classes teremos que
relacioná-las.
 Existem alguns tipos básicos de relacionamentos
entre as classes:
 Associação;
 Agregação;
 Composição;
 Associação Reflexiva;
 Classe de Associação;
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
13

 Denota relação lógica entre os objetos das classes em


questão.
 São representadas por uma linha que liga as classes
cujos objetos se relacionam.
Empresa Mercadoria
Nome Nome
CNPJ Unidade
Telefone
Inserir( )
Inserir( ) Excluir( )
Excluir( ) IncluirFornecedor( )
IncluirProduto( ) ExcluirFornecedor( )
ExcluirProduto( ) GetListaFornecedores( )

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
14

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
15

 Representam a informação dos limites


inferior e superior da quantidade de objetos
aos quais outro objeto pode se associar.
NOME SIMBOLOGIA NA UML
Apenas Um 1..1 ( ou 1)
Zero ou Muitos 0 ..* ( ou *)
Um ou Muitos 1 .. *
Zero ou Um 0..1
Intervalo Específico Li ...Ls

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
16

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
17

 A conectividade corresponde ao tipo de


associação entre duas classes: “muitos para
muitos”, “um para muitos” e “um para um”.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
18

 Nome da Associação: fornece algum


significado semântico a mesma.
 Direção de Leitura: indica como a
associação deve ser lida
 Papel: para representar um papel específico
em uma associação.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
19

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
20

Empresa Mercadoria
Nome Nome
CNPJ Unidade
Telefone fornece produto
fornecedor Inserir( )
Inserir( ) Excluir( )
0..* 1..* IncluirFornecedor( )
Excluir( )
IncluirProduto( ) empregador ExcluirFornecedor( )
ExcluirProduto( ) GetListaFornecedores( )
0..1
emprega

Pessoa
empregado
Nome
CPF
1..* Telefone

Inserir( )
Excluir( )

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
21

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
22

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
23

 Ou também chamada classe Associativa.


 É uma classe que está ligada a uma
associação;
 Geralmente é necessária quando duas ou mais
classes estão associadas, e dessa associação
surgem informações importantes.
 Uma classe associativa pode estar ligada a
associações de qualquer tipo de conectividade.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
24

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
25

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
26

 A maioria das associações entre classes são


binárias:
 Envolve duas classes.
 Mas podem existir associações envolvendo
3, 4 ,5 ... Classes.
 Associações ternárias envolvem 3 classes e
não são muito raras.
 Em UML utiliza-se o losango para relacionar
associações n-árias.
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
27

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
28

 São associações que representam ligações entre


objetos de uma mesma classe.
 Não quer dizer que um objeto se ligue a ele próprio.
 Deve-se utilizar a denominações de papéis em
associações reflexivas. Veja exemplo:

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
29

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
30

 Para entendermos agregação e composição


temos que entender o conceito de:
 Relação Todo-Parte;
 Uma relação Todo-Parte entre dois objetos
indica que um dos objetos está contido no
outro. Podemos também dizer que um
objeto contém o outro.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
31

 Se uma das perguntas a seguir for


respondida com um sim, provavelmente há
uma agregação onde X é todo e Y é parte.
 X tem um ou mais Y?
 Y é parte de X?

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
32

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
33

 Composição é uma Agregação mais forte.


 Implica que o “todo” é responsável pela criação da
“parte” e que esta não vive sem o “todo”.
 A composição é mais física, uma parte não pode
pertencer a dois objetos compostos ao mesmo tempo:
 um motor não pode pertencer a dois carros ao mesmo tempo;
 uma casa e suas paredes
 Implica uma forma de propagação de algumas
propriedades:
 Quando o objeto composto morrer, as partes morrem
também.
 Quando um carro se mover, as partes se movem também.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
34

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
35

 Muitas vezes relacionamentos entre classe denotam:


 Generalidade ou especificidade entre as classes envolvidas.
 Exemplo:
 O conceito mamífero é mais genérico que o conceito ser
humano.
 O conceito carro é mais específico que o conceito veículo.
 Esse é o chamado relacionamento de herança.
 Herança é o termo em orientação a objetos que se
refere à criação de novas classes a partir de existentes
onde os atributos e operações comuns são agrupados
para fins de reutilização de código.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
36

 Observe as duas classes abaixo:

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
37

 Num contexto de um sistema de controle de


pessoal podemos ter a seguinte Generalização:

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
38

OU

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
39

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
40

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
41

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
42

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
43

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
44

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
45

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares
46

 BALBINO, Marcelo. Análise Orientada a Objetos. Notas de


aula.2010.
 BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas
com UML. 2. ed. Rio de Janeiro: Elsevier, 2007.
 DIAGRAMA de Classes. Disponível em: <http://www.fca.pt/docs-
online/722-636-8_des_sis_inf.pdf>. Acesso em: 08 jun 2011.
 GIULIANO. Modelagem Conceitual: Generalização/
Especialização, Agregação e Composição. Disponível em:
http://vqv.com.br/lucelia/projSistemas/Classes.pdf. Acesso em:
08 jun 2011.
 PAULA Filho, Wilson de Pádua. Engenharia de Software:
Fundamentos, Métodos e Padrões. 2. ed. São Paulo: LTC, 2003.

Projeto de Software - Técnico em


Informática - Deisymar Botega Tavares

Você também pode gostar