View
216
Download
1
Embed Size (px)
Citation preview
Ádamo [email protected]
Conceito: Classe◦ Definição de um conjunto de objetos que
compartilham estrutura e comportamento comuns◦ Objetos são criados a partir das classes
Conceito: Objeto◦ Um objeto é um elemento da classe◦ Objeto deve pertencer a somente uma classe◦ É o elemento que efetivamente armazena as
informações de um programa◦ Objetos trocam mensagens entre si
Classe
Objetos
EntidadeObservada
Entidade Representada
Avião
ABSTRAÇÃOREPRESENTAÇÃO
Operação mentalpara observar umdomínio e capturarsua estrutura
Refere-se àsconvenções derepresentação
Notação gráfica,linguagem de programação
Estudantede
Graduação
José Maria
CLASSIFICAÇÃO
CATEGORIA
INDIVÍDUO(Objeto)
Classificação - Instanciação
Estudantede
Graduação
José Maria
CATEGORIA
INDIVÍDUO(Objeto)
Classificação - Instanciação
INSTANCIAÇÃO
Generalização (Especialização) a partir de duas categorias abstrai-se uma
categoria mais genérica sub-categorias satisfazem todas as
propriedades das categorias das quais elas constituem especializações
deve existir pelo menos uma propriedade que distingue duas categorias especializadas
Estudante
GENERALIZAÇÃO
ESPECIALIZAÇÃO(herança)
CATEGORIA
CATEGORIA
Generalização - Especialização
Estudantede
Graduação
Mamífero
GENERALIZAÇÃO
ESPECIALIZAÇÃO(herança)
CATEGORIA
CATEGORIA
Baleia
Atributos•sangue quente•vertebrado•vivíparo
Atributos•Habitat: mar•Tempo médio devida: 200 anos
Generalização - Especialização
Agregação (Decomposição) Associação entre 2 classes representa
um relacionamento todo-parte entre o agregado (todo) e um componente (parte)
A idéia é representar o relacionamento “tem um...”;
EmpresaCATEGORIA
INDIVÍDUO(Objeto)
Agregação - Decomposição
DECOMPOSIÇÃO
Departamento
AGREGAÇÃO1
*
Agregação - Decomposição
DECOMPOSIÇÃO
AGREGAÇÃO
Explicar por que o conhecimento da UML é importante para as organizações
Apresentar os conceitos básicos da UML
Apresentar diagramas utilizados e seus componentes
Diversos métodos e técnicas OO, com muitos aspectos em comum, porém utilizando notações distintas
Inconvenientes para a aprendizagem, aplicação, construção e uso de ferramentas, etc
Luta entre distintos enfoques
Diferentes notações para o mesmo conceito
Ex: SHLAER & MELLOR (1989 e 1991); COAD & YOURDON (1991); COAD & NICOLA (1993); COAD et al. (1995); WIRFS-BROCK et al. (1990); BOOCH (1994 e 1995); RUMBAUGH et al. (1991 e 1996); MARTIN & ODELL (1994 e 1995); JACOBSON (1994 e 1995)
Necessidade de uma padronização
Padrão de projeto para especificar, documentar aspectos de um sistema sob o paradigma OO
Surgiu como união dos modelos:◦ Object-modeling technique - OMT (James
Rumbaugh) ◦ Métodos de Booch (Grady Booch)◦ Object-oriented software engineering - OOSE (Ivar
Jacobson)
Desenvolver o modelo de uma aplicação antes de construí-la, é tão essencial quanto ter uma planta para a construção de uma casa
Bons modelos são essenciais para a comunicação entre os times de projetos e para assegurar a beleza arquitetural
Dificuldade com o aumento da complexidade dos sistemas
UML é apenas uma parte de um método para desenvolvimento de software◦ Análise de requisitos◦ Análise ◦ Projeto◦ Implementação◦ Teste
Modelagem de forma padronizada Documentação e visualização gráfica Composta por diversos diagramas de
modelagem Destina-se a projetar sistemas complexos
de software, como por exemplo:◦ Sistemas que manipulam as grandes bases: INPE
sobre desmatamento, Adepará sobre pecuária, Sagri sobre agricultura
◦ Transportes◦ Defesa/ espaço aéreo◦ ...
A UML define três tipos básicos de construção:
Elementos: abstrações de um modelo Relacionamentos: definem como os itens se
relacionam Diagramas: agrupam coleções de itens
De estrutura (estático) De comportamento (dinâmico) De agrupamento (organização) De anotação (explicativo)
Classes Interface Componentes Nós Classes Ativas
Classe
Interface◦ Descreve o comportamento visível externamente
da classe◦ A interface sempre é atachada a classe ou ao
componente que realiza a interface
Componentes◦ Partes físicas de um sistema, cujo comportamento
é definido pelas suas interfaces◦ O trabalho interno dos componentes deve ser
invisível e seu uso ser independente de plataforma.
Nós◦ Peça física de equipamento (hardware),
representa um recurso computacional do sistema
<nome>
Classes ativas◦ Classes cujos objetos possuem seus próprios
fluxos de controle (“threads”)◦ Elementos cujo comportamento (tempo de
execução) é concorrente com o de outros elementos
De estrutura De comportamento De agrupamento De anotação
Modelar o aspecto dinâmico do modelo◦ Caso de uso◦ Ator◦ Interação◦ Máquina de Estado
Caso de Uso◦ Ação realizada pelo sistema em relação a
um certo ator
Ator◦ Agente que vai interagir com o sistema
Processar venda
Interação◦ Troca de mensagens entre objetos◦ Modela o comportamento de um conjunto de
objetos ◦ Ordem temporal e sequência das operações
<nome_da_operação>
Máquinas de estado◦ Especifica o ciclo de execução de um objeto ou
interação durante seu tempo de vida em resposta aos eventos, juntamente com suas respostas a estes eventos
◦ Estado
◦ Transição
<nome>
De estrutura De comportamento De agrupamento De anotação
Pacotes◦ São as partes organizacionais dos modelos UML◦ Organização do elementos em grupos◦ Puramente conceitual
<elementos>
<nome>
De estrutura De comportamento De agrupamento De anotação
Notas◦ Comentários do modelo UML◦ Observações sobre elementos do modelo
<comentário>
A UML define três tipos básicos de construção:◦ Elementos◦ Relacionamentos◦ Diagramas
Características de relação e dependência entre os modelos UML
Associação Herança Dependência
Associação◦ A associação representa uma ligação entre dois
elementos◦ Expressas como uma linha sólida, de um
elemento ao outro, e com um verbo (ou substantivo) que qualifique a associação
◦ Podem expressar a cardinalidade e o sentido da associação
Especificam quantas instâncias de uma classe podem participar da associação
Cardinalidade Significado0..1 Zero ou um1 Somente 1
0..* Maior ou igual a zero* Maior ou igual a zero
1..* Maior ou igual a um1..20(m..n) De 1 até 20 (m a n), inclusive
Exemplo:
Uma classe financeira esta associada a 0 ou mais vendas da classe venda através da associação financiamento. E a classe venda está associada a no máximo um elemento da classe vendedor através da associação venda.
Financeiracodigonome
Vendadatahora
VendedornúmeroSenhanivel autorizacao
venda
0..n 1financiamento
0..1 0..n
Agregação
Composição
Características de relação e dependência entre os modelos UML
Associação Herança Dependência
Generalização (Herança)◦ Os elementos mais específicos possuem todas as
características do seu elemento mais geral
Características de relação e dependência entre os modelos UML
Associação Herança Dependência
Dependência◦ Conexão semântica entre dois elementos, um
independente e outro dependente◦ Qualquer alteração no elemento independente
pode afetar o elemento dependente
A UML define três tipos básicos de construção:◦ Elementos◦ Relacionamentos◦ Diagramas
Uma representação gráfica de uma coleção de elementos de um modelo
Um mesmo item pode aparecer em todos os diagramas ou em apenas alguns
Diagrama de Casos de Uso;
Diagrama de Classes; Diagrama de Objetos; Diagrama de
Estrutura Composta; Diagrama de
Sequência; Diagrama de
Comunicação;
Diagrama de Transição de Estados;
Diagrama de Atividades; Diagrama de
Componentes; Diagrama de
Desenvolvimento; Diagrama de Pacotes; Diagrama de Interface
Geral; Diagrama de Tempo; ...
Diagrama de classes Diagrama de objetos Diagrama de caso de uso (use case) Diagrama de sequência Diagrama de colaboração ou comunicação Diagrama de transição de estados Diagrama de atividades Diagrama de componentes Diagrama de desenvolvimento
Oferece uma visão estática da estrutura do sistema Exibe as classes do sistema e o grau do
relacionamentos entre elas
Um diagrama de classes pode oferecer três perspectivas, cada uma para um tipo de observador diferente◦ Conceitual◦ Especificação◦ Implementação
Conceitual (exemplo) ◦ Representa os conceitos do domínio em estudo◦ Perspectiva destinada ao cliente
Especificação (exemplo) ◦ Tem foco nas principais interfaces da arquitetura, nos principais
métodos, e não como eles irão ser implementados ◦ Perspectiva destinada as pessoas que não precisam saber
detalhes de desenvolvimento, tais como gerentes de projeto
Implementação - a mais utilizada de todas (exemplo) ◦ Aborda vários detalhes de implementação, tais como
navegabilidade, tipo dos atributos, etc◦ Perspectiva destinada ao time de desenvolvimento
Muito similar ao Diagrama de Classes e utiliza quase a mesma notação. “Retrato” do diagrama de classes
Este diagrama mostra uma “fotografia” dos objetos existentes na execução do sistema
Serve para visualizar os relacionamentos e interações entre os atores e os casos de uso do sistema
Especificam e documentam o comportamento de um elemento para se entender como este é utilizado
Exemplo:
Exemplo 2:
Mostra a interação entre os objetos da aplicação arranjados numa linha do tempo
Útil para se levantar quais são os envolvidos no fluxo e definir a interface de alguns objetos
Mostrar como as mensagens entre os objetos são trocadas no decorrer do tempo para a realização de uma operação
Semelhante ao diagrama de sequência Pode-se visualizar os relacionamentos entre
os objetos
Apresenta os estados possíveis de uma classe do modelo, e que eventos do sistema causam essas mudanças de estado (ciclo de vida)
Mostra o fluxo das atividades do sistema
Explora o lado funcional, expondo a relação entre seus componentes e suas dependências
Usado para modelar a visão de implementação estática de um sistema através da captura de dependências entre os diferentes tipos de componentes
Usos comuns:◦ Modelagem do código fonte ◦ Modelagem de executáveis◦ Modelagem de bancos de dados físicos
Mostra o lado funcional, exibindo a arquitetura física do hardware e do software do sistema
Um nó representa um recurso de processamento, tal como um computador. Nós podem conter instâncias de componentes, as quais podem conter objetos
70
Linguagem de Modelagem Unificada (UML) Padrão de projeto para especificar e
documentar aspectos da modelagem de um sistema
Criado pela necessidade de uma padronização
Utilizam para sua construção: elementos, relacionamentos e diagramas
ElementosCaracterizam a forma que os objetos serão
representados◦ De estrutura: Classes, Interface, Componentes,
Nós◦ De comportamento: Caso de uso, Interação,
Máquina de Estado ◦ De agrupamento: Pacotes◦ De anotação: Notas
RelacionamentosCaracterísticas de relação e dependência entre os
modelos UML◦ Associação ◦ Herança ◦ Dependência
DiagramasUma representação gráfica de uma coleção de
elementos de um modelo◦ Diagrama de classes◦ Diagrama de objetos◦ Diagrama de caso de uso◦ Diagrama de sequência◦ Diagrama de colaboração◦ Diagrama de transição de estados◦ Diagrama de atividades◦ Diagrama de componentes◦ Diagrama de desenvolvimento
Linguagem de modelagem de sistemas mais difundida no mercado para desenvolvimento de software
Compatibilidade com orientação à objetos Extremamente importante ter uma representação
visual de seu sistema antes que ele entre na etapa de implementação
UML pode não só facilitar e agilizar a modelagem de seu sistema de informação, como também cria uma facilidade de comunicação entre os gestores e os analistas de sistemas