Buscar

Aula1_-_Conceitos_OO_e_UML

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Aula 1 - Conceitos de Orientação a Objetos e UML
Bibliografia:	
 MELO, Ana Cristina. Desenvolvendo Aplicações com UML 2.0 – Do conceitual à implementação. Rio de Janeiro: Brasport, 2004. Capítulo 1. 
*
Estruturado x OO
Qual é o foco no Paradigma Estruturado ?
Qual é o foco no Paradigma Orientado a Objetos ?
*
Objeto
O que é um objeto
Definição: um objeto é a abstração de elementos concretos ou abstratos, existentes no mundo real. 
*
Objeto
Atributos e operações
Um objeto é composto por características (atributos) e serviços (operações) 
Exemplos:
Atributos ...
- nº de portas = 2
- cor = vermelho
- ano = 1995
- etc.
Operações ...
- Ligar
- Acender os faróis
- Travar Portas
- etc.
*
Objeto
Estrutura e comportamento
Os atributos definem sua estrutura e as operações o seu comportamento
*
Objeto
Método
O método corresponde a implementação (subprograma) de uma operação
Procedimento
Função
*
Objeto
Estado
Corresponde ao conjunto de valores dos atributos de um objeto 
*
Classe
O que é uma Classe ? 
É a representação de um conjunto de objetos que possuem características semelhantes e compartilham a mesma estrutura
*
Classe
Uma classe contém a descrição da estrutura (atributos) e do comportamento (serviços) de suas instâncias (objetos)
*
Classe
*
Classe
Tipos de Classes
Classes de Negócio (ou do domínio do problema) 
	Entidade de software que representa uma abstração de alguma coisa no domínio do problema que precisamos modelar
Classes de Implementação (necessárias à construção do software)
		Classes de interface; e
Classes de acesso a dados (persistência).
	Entidades de software necessárias para a construção de sistemas Orientados a Objetos, conectando, por exemplo, os objetos de negócio ao mundo exterior (interface) e ao mecanismo de banco de dados	
*
Arquitetura de Classes
*
Classe de Negócio
*
Classe de Interação
*
Mensagem para um Objeto
É o pedido de um objeto para um outro objeto receptor executar o método indicado e retornar, ou não, o resultado da ação 
*
Conceitos Relevantes
Encapsulamento
Hierarquia (Herança e Agregação)
Polimorfismo
*
Encapsulamento
Significa ocultar o estado do objeto e a implementação de suas operações. (Vantagens – manutenção) 
*
Hierarquia
Tipos de hierarquia
Herança (“é um”)
Composição ou Agregação (“é parte de”)
*
Herança
É a capacidade de uma nova classe em herdar atributos e métodos pertencentes a uma classe existente, consistindo num mecanismo que proporciona reusabilidade e extensibilidade
 A estrutura de herança organiza as classes em relações de generalização e especialização
Subclasses especializam uma classe
Superclasses generalizam uma classe 
*
Herança
Classes de Interface
*
Herança
*
Classes Abstratas
São classes sem instâncias, ou seja, sem objetos, cujo propósito é prover características comuns para suas subclasses e padronizar suas interfaces 
*
Classes Abstratas
nome
endereço
data_nascimento
procedimento incluir dados pessoais
função obter nome
..........
classe-pessoa
fim-classe
privativo
público
*
Composição
Um objeto composto contém como atributos, os de outros objetos de sua ou de outras classes
Sua característica básica é a dependência entre o todo e a parte, pois se o “todo” deixar de existir as partes também o deixam, pois aquele é composto por estas 
Um bom teste para identificar uma composição é fazer duas perguntas :
Se matar o todo mato as partes ?
O relacionamento das partes passa pelo todo ?
*
Composição
*
Agregação
A agregação é semelhante a composição, todavia a parte vive sem o todo, ou seja, se não existir o todo, a parte continuará existindo 
*
Polimorfismo
Objetos de classes distintas podem realizar operações conceitualmente iguais, mas com implementações diferentes
Representa as várias formas que um método pode assumir
 
*
Vantagens
Implementa o conceito de delegação
Evita construções case (if...then, else if...then, else if...then)
Simplifica a introdução de novos tipos (subclasses)
Conceitualmente mais intuitivo
Para uma mesma mensagem (chamada de método) pode haver várias operações polimórficas
Uma mensagem pode ser enviada a um conjunto de objetos de classes distintas; cada objeto responde ativando sua própria operação 
 
 
*
Polimorfismo
 Aluno
matrícula
nome
mensalidade
Incluir Aluno
Consultar Mensalidade a Pagar
 Aluno_ Auxiliar
% desconto na mensalidade
Consultar Mensalidade a Pagar
 Aluno_Bolsista
Órgão provedor
Duração da bolsa
Incluir Aluno_Bolsista
*
Princípios de OO
Delegação da responsabilidade do processamento aos objetos
Comunicação exclusivamente através de mensagens
 
 
*
Associação
Denotam o relacionamento semântico entre duas classes
São semelhantes aos relacionamentos utilizados no modelo relacional
Inclui modelagem de cardinalidades
 
 
*
Associação
*
Associação
*
Paradigma OO
O que buscamos ao modelar orientado a objetos ?
Melhor validação com o usuário
Diminuição do tempo e custo de desenvolvimento
Reutilização de código, facilidade de manutenção
 
 
*
*
*
X
*
Mecânica Fênix
A empresa faz a manutenção de automóveis, e está automatizando o seu controle administrativo. Ao procurar a Fênix, um cliente é recebido, e, em primeiro lugar, realiza-se um exame prévio, de onde resulta um orçamento com a descrição dos serviços e peças necessárias.
Caso o cliente autorize a execução do serviço, ele é encaminhado a um mecânico, e será aberta uma ficha de serviço. Esta ficha contém o nome do proprietário, seu endereço, CGC ou CPF. Constam ainda desta ficha as peças a serem substituídas, seu código, quantidade, serviço de mão de obra executado, data e hora da entrada e saída.
As peças estocadas na Fênix são acessadas pelo seu código, ou nome, e também tem a sua descrição, veículos que a utilizam, quantidade em estoque, preço de venda e preço e data da compra. Sobre os fornecedores são guardados o seu endereço, CGC, quantidade mínima por pedido, prazo de entrega, forma de pagamento, e preço unitário.
Os serviços de mão de obra são tabelados contendo todas as peças necessárias, seu preço, tempo médio de execução, e mecânicos capacitados para fazê-lo. Ao término da execução do serviço é emitida uma Nota Fiscal de saída com os dados do cliente, seu carro, e serviços e peças utilizadas. Após isto, dá-se baixa no estoque, cadastra-se o cliente e veículo, se ainda não o fizeram. 
 
 
*
Questões para revisão
Objeto
 Classe (atributos e operações)
 Encapsulamento
 Hierarquia (Herança e Agregação)
 Polimorfismo
 
 
*
Linguagem de Modelagem Unificada - UML
Bibliografia:	
 MELO, Ana Cristina. Desenvolvendo Aplicações com UML 2.0 – Do conceitual à implementação. Rio de Janeiro: Brasport, 2004. Capítulo 2. 
*
UML
O que é UML ?
UML significa “Linguagem de Modelagem Unificada” (notação com semântica associada) e é a padronização da linguagem de desenvolvimento orientado a objetos para visualização, especificação, construção e documentação de sistemas
UML não é uma metodologia, pois não diz quem deve fazer o quê, quando e como
UML pode ser usado segundo diferentes metodologias, tais como RUP (Rational Unified Process), FDD (Feature Driven Development), etc.
UML não é uma linguagem de programação
*
UML
Histórico
Década de 90, muitos métodos disputavam o mercado
Os principais métodos eram:
. Booch (Grady Booch - Rational)
. OMT (Rumbaugh - GE)
. OOSE (Jacobson - Objectory)
*
UML
Histórico
Booch, OMT e OOSE
Individualmente possuíam pontos fortes, mas com vários pontos em comum
Os três autores decidiram unificar seus métodos
( Rational )
*
UML
Histórico
*
UML
Histórico
*
UML
Origens
*
UML
Parceiros
*
Valor da UML
É um padrão aberto
Suporta todo o ciclo de vida do software
modelagem do negócio (processos e objetos do negócio)
modelagem de requisitos alocados ao software
Modelagem
da solução de software
Suporta diversas áreas de aplicação
É baseado na experiência e necessidades da comunidade de utilizadores
É suportado por muitas ferramentas
*
Conceitos Básicos da UML
Visões
Diagramas
Elementos do Modelo
Recursos Genéricos
*
Visões
Uma visão representa um aspecto específico do sistema
Diferentes aspectos do sistema a ser modelado por meio de várias visões
Nem sempre todas as visões são necessárias
*
Modelos e Diagramas
Um modelo é uma representação em pequena escala, numa perspectiva particular, de um sistema existente ou a criar
A aplicação do conceito de abstração (omissão de detalhes) é fundamental na construção de um modelo
Modelos são a linguagem por excelência do projetista (designer)
Modelos são veículos para comunicação com vários interessados (stakeholders)
Modelos permitem raciocinar acerca do sistema real, sem o chegar a construir
Ao longo do ciclo de vida de um sistema são construídos vários modelos, sucessivamente refinados e enriquecidos
*
Modelos e Diagramas
Um modelo/visão é constituído por um conjunto de diagramas (desenhos) consistentes entre si, acompanhados de descrições textuais dos elementos que aparecem nos vários diagramas
Um diagrama é parte de um modelo/visão e descreve o seu conteúdo
Diagramas usam elementos para representar conceitos, e o mesmo elemento (exemplo: classe) pode aparecer em vários diagramas de um modelo
No UML, há treze diagramas (Eram 9 na versão 1.4)
Diagramas estruturais: classes, objetos, componentes, pacotes, implantação e estrutura composta
Diagramas de visão dinâmica: casos de uso, interação (visão geral, sequência, temporal, comunicação (colaboração)), atividades e máquinas de estado
*
UML
Modelos
*
Elementos Básicos do Modelo
. Estruturais (classes, interfaces, colaborações, casos de uso, classes ativas, componentes, nós)
. Comportamentais (interação, estado)
. Agrupamento (pacotes)
. Anotacionais (notas)
Fonte: Grady Booch
*
Elementos Básicos do Modelo
Relacionamentos
. dependência, associação, generalização, realização
*
Elementos Básicos do Modelo
Mecanismos de extensibilidade 
Estereótipos
Propriedades (tagged values)
Restrições (constraints)
*
Diagrama de Casos de Uso
Captura a funcionalidade do sistema tal como é visto pelos utilizadores
Construído nos primeiros estágios do desenvolvimento
Objetivo
Especificar o contexto de um sistema
Capturar os requisitos funcionais de um sistema
Validar a arquitetura de um sistema
Dirigir a implementação e gerar casos de teste
Desenvolvido por analistas e especialistas de domínio
*
Diagrama de Casos de Uso
*
Diagrama de Classes
Captura o vocabulário de um sistema
Construído e refinado ao longo do desenvolvimento
Objetivo
Nomear e modelar conceitos no sistema
Especificar colaborações
Especificar esquemas lógicos de bases de dados
Desenvolvido por analistas, designers e implementadores
*
Diagrama de Classes
*
Diagrama de Sequência
Captura comportamento dinâmico (troca de mensagens entre objetos)
Objetivo
Modelar fluxos de controle
Ilustrar cenários típicos dos casos de uso, representando sua implementação 
*
Diagrama de Sequência
*
Diagrama de Implantação
Captura a topologia do hardware de um sistema
Construído como parte da especificação da arquitetura
Objetivo
Especificar a distribuição de componentes
Identificar estrangulamentos de desempenho
Desenvolvido por arquitetos, engenheiros de redes, e engenheiros de sistemas
*
Diagrama de Implantação
*
*
*
*
*
*
Questões para revisão
UML
 O que é ?
Valor ?
Visões
Elementos básicos
Modelos e Diagramas

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes