SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
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
 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
2
 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
3
 Os objetos possuem atributos (campos) e
operações (procedimentos).
 Veja um exemplo da representação da
classe Aluno:
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
4
Aluno
Nome
RG
Data Nascimento
Inserir Aluno
Alterar dados Aluno
Excluir Aluno
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
5
Venda
Forma de Pagamento
Valor
Data
Totalizar
Emitir Ticket
Emitir Nota Fiscal
Imprimir Nota Fiscal
Inserir Venda
Gravar Venda
Excluir
1º Compartimento:
NOME DA CLASSE
2º Compartimento:
ATRIBUTOS DA CLASSE
3º Compartimento:
OPERAÇÕES DA CLASSE
 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
6
 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
7
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)
Mercadoria provável classe
 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
10
 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
11
 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
12
 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.
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
13
Empresa
Nome
CNPJ
Telefone
Inserir( )
Excluir( )
IncluirProduto( )
ExcluirProduto( )
Mercadoria
Nome
Unidade
Inserir( )
Excluir( )
IncluirFornecedor( )
ExcluirFornecedor( )
GetListaFornecedores( )
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
14
 Representam a informação dos limites
inferior e superior da quantidade de objetos
aos quais outro objeto pode se associar.
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
15
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
 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
17
 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
18
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
19
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
20
Mercadoria
Nome
Unidade
Inserir( )
Excluir( )
IncluirFornecedor( )
ExcluirFornecedor( )
GetListaFornecedores( )
1..*0..*
Pessoa
Nome
CPF
Telefone
Inserir( )
Excluir( )
Empresa
Nome
CNPJ
Telefone
Inserir( )
Excluir( )
IncluirProduto( )
ExcluirProduto( )
1..*0..*
0..1
1..*
0..1
1..*
fornece produtofornecedor
emprega
empregador
empregado
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
21
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
22
 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
23
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
24
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
25
 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
26
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
27
 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
28
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
29
 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
30
 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
31
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
32
 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
33
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
34
 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
35
 Observe as duas classes abaixo:
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
36
 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
37
OU
Projeto de Software - Técnico em
Informática - Deisymar Botega Tavares
38
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
 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
46

Weitere ähnliche Inhalte

Was ist angesagt?

08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_erWalter Alves Pereira
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo LógicoCentro Paula Souza
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane FidelixCris Fidelix
 
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosBanco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosNatanael Simões
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Ricardo Terra
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismoArthur Emanuel
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
Diagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados IDiagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados IDjonathas Cardoso
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Leinylson Fontinele
 

Was ist angesagt? (20)

08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er08 modelo conceitual_fisico_logico_er
08 modelo conceitual_fisico_logico_er
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
06 Modelagem de banco de dados: Modelo Lógico
06  Modelagem de banco de dados: Modelo Lógico06  Modelagem de banco de dados: Modelo Lógico
06 Modelagem de banco de dados: Modelo Lógico
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
 
Aula 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 
Aula diagrama de classes
Aula diagrama de classesAula diagrama de classes
Aula diagrama de classes
 
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosBanco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
 
UML
UMLUML
UML
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Aula 6 aed - registros
Aula 6   aed - registrosAula 6   aed - registros
Aula 6 aed - registros
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)
 
Java: Heranca e polimorfismo
Java: Heranca e polimorfismoJava: Heranca e polimorfismo
Java: Heranca e polimorfismo
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 
AOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de UsoAOO - Diagrama de Caso de Uso
AOO - Diagrama de Caso de Uso
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Diagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados IDiagrama Entidade Relacionamento - Bancos de Dados I
Diagrama Entidade Relacionamento - Bancos de Dados I
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
 

Ähnlich wie 07 diagrama de classes de análise

POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)Marcello Thiry
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Poo apostila a programacao orientada
Poo   apostila a programacao orientadaPoo   apostila a programacao orientada
Poo apostila a programacao orientadarobinhoct
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosRamon Mayor Martins
 
Diagrama de classes1.1
Diagrama de classes1.1Diagrama de classes1.1
Diagrama de classes1.1Maikynata
 
Questionário sobre modelagem revisão da tentativa
Questionário sobre modelagem  revisão da tentativaQuestionário sobre modelagem  revisão da tentativa
Questionário sobre modelagem revisão da tentativaAluisioSantos4
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasClayton de Almeida Souza
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasBreno Vitorino
 
Modelo Conceitual
Modelo ConceitualModelo Conceitual
Modelo Conceitualkottrim
 
Banco de Dados _ Modelagem Conceitual.pdf
Banco de Dados _ Modelagem Conceitual.pdfBanco de Dados _ Modelagem Conceitual.pdf
Banco de Dados _ Modelagem Conceitual.pdfPauloVictor415128
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven DesignÍtalo Bandeira
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Jhonefj
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLEliseu Castelo
 

Ähnlich wie 07 diagrama de classes de análise (20)

Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
 
Sld 4
Sld 4Sld 4
Sld 4
 
Artigo c#
Artigo c#Artigo c#
Artigo c#
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Poo apostila a programacao orientada
Poo   apostila a programacao orientadaPoo   apostila a programacao orientada
Poo apostila a programacao orientada
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
Diagrama de classes1.1
Diagrama de classes1.1Diagrama de classes1.1
Diagrama de classes1.1
 
Questionário sobre modelagem revisão da tentativa
Questionário sobre modelagem  revisão da tentativaQuestionário sobre modelagem  revisão da tentativa
Questionário sobre modelagem revisão da tentativa
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de Sistemas
 
Trabalho de análise e projeto 2
Trabalho de análise e projeto 2Trabalho de análise e projeto 2
Trabalho de análise e projeto 2
 
Linguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e TécnicasLinguagem Java - Conceitos e Técnicas
Linguagem Java - Conceitos e Técnicas
 
Modelo Conceitual
Modelo ConceitualModelo Conceitual
Modelo Conceitual
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
Banco de Dados _ Modelagem Conceitual.pdf
Banco de Dados _ Modelagem Conceitual.pdfBanco de Dados _ Modelagem Conceitual.pdf
Banco de Dados _ Modelagem Conceitual.pdf
 
Aula-04-UML.pptx
Aula-04-UML.pptxAula-04-UML.pptx
Aula-04-UML.pptx
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UML
 

07 diagrama de classes de análise

  • 1. 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 2
  • 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 3
  • 4.  Os objetos possuem atributos (campos) e operações (procedimentos).  Veja um exemplo da representação da classe Aluno: Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 4 Aluno Nome RG Data Nascimento Inserir Aluno Alterar dados Aluno Excluir Aluno
  • 5. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 5 Venda Forma de Pagamento Valor Data Totalizar Emitir Ticket Emitir Nota Fiscal Imprimir Nota Fiscal Inserir Venda Gravar Venda Excluir 1º Compartimento: NOME DA CLASSE 2º Compartimento: ATRIBUTOS DA CLASSE 3º Compartimento: OPERAÇÕES DA CLASSE
  • 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 6
  • 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 7
  • 8. 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.
  • 9. 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) Mercadoria 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 10
  • 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 11
  • 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 12
  • 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. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 13 Empresa Nome CNPJ Telefone Inserir( ) Excluir( ) IncluirProduto( ) ExcluirProduto( ) Mercadoria Nome Unidade Inserir( ) Excluir( ) IncluirFornecedor( ) ExcluirFornecedor( ) GetListaFornecedores( )
  • 14. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 14
  • 15.  Representam a informação dos limites inferior e superior da quantidade de objetos aos quais outro objeto pode se associar. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 15 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
  • 16. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 16
  • 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 17
  • 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 18
  • 19. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 19
  • 20. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 20 Mercadoria Nome Unidade Inserir( ) Excluir( ) IncluirFornecedor( ) ExcluirFornecedor( ) GetListaFornecedores( ) 1..*0..* Pessoa Nome CPF Telefone Inserir( ) Excluir( ) Empresa Nome CNPJ Telefone Inserir( ) Excluir( ) IncluirProduto( ) ExcluirProduto( ) 1..*0..* 0..1 1..* 0..1 1..* fornece produtofornecedor emprega empregador empregado
  • 21. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 21
  • 22. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 22
  • 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 23
  • 24. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 24
  • 25. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 25
  • 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 26
  • 27. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 27
  • 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 28
  • 29. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 29
  • 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 30
  • 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 31
  • 32. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 32
  • 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 33
  • 34. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 34
  • 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 35
  • 36.  Observe as duas classes abaixo: Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 36
  • 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 37
  • 38. OU Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 38
  • 39. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 39
  • 40. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 40
  • 41. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 41
  • 42. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 42
  • 43. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 43
  • 44. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 44
  • 45. Projeto de Software - Técnico em Informática - Deisymar Botega Tavares 45
  • 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 46