32
Marcio de Carvalho Victorino [email protected] Processo Unificado

Marcio de Carvalho Victorino [email protected] Processo Unificado

Embed Size (px)

Citation preview

Page 1: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

Marcio de Carvalho [email protected]

Processo Unificado

Page 2: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

Unidade IV: Análise OO

(Aspectos Estáticos)

Page 3: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

3

Modelo de Classes

O Modelo de Classes evolui durante as iterações do desenvolvimento do sistema. À medida que o sistema é desenvolvido, o Modelo de Classes é incrementado com novos detalhes. Há três níveis de abstração pelos quais o Modelo de Classes passa: Modelo de Classes de Domínio. Modelo de Classes de Especificação. Modelo de Classes de Implementação.

Page 4: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

4

Modelo de Classes

Modelo de Classes de Domínio: Representa as classes de domínio do negócio em

questão. É construído durante a atividade de análise das

iterações. Não leva em consideração restrições inerentes à

tecnologia a ser utilizada na solução de um problema.

Page 5: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

5

Modelo de Classes

Modelo de Classes de Especificação: É uma extensão do Modelo de Classes de

Domínio. Possui detalhes específicos inerentes a solução de

software escolhida. São definidas novas classes necessárias para

desenvolver a solução do problema. É construído na atividade de projeto das iterações.

Page 6: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

6

Modelo de Classes

Modelo de Classes de Implementação: É uma extensão do Modelo de Classes de

Especificação. Corresponde à implementação das classes em

alguma linguagem de programação, normalmente OO.

É construído na atividade de implementação das iterações.

Page 7: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

7

Diagrama de Classes Os diagramas de classes também podem conter

pacotes ou subsitemas, utilizados para agrupar elementos do seu modelo em um conjunto maior.

Elementos de UML presentes nos Diagramas de Classes: Classes, suas estruturas internas e comportamento; Interfaces; Associações, agregações, dependências, e relações de

herança; Multiplicidade e indicadores de navegação; Nomes de papéis (O que uma classe representa para

outra).

Page 8: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

8

Classes

ContaBancaria

ContaBancaria

numerosaldodataAbertura

ContaBancaria

numerosaldodataAbertura

creditar()debitar()

Nome da Classe

Operações

Atributos

3 formas de representar classes

Page 9: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

9

Relacionamentos Ao construir modelo de classe você irá

descobrir que há um numero muito pequeno de classes que trabalham sozinhas.

Ao fazer modelagem de um sistema é preciso ver como os itens relacionam-se entre si.

Três tipos especialmente importantes: Dependência - que representa relacionamento de

utilização entre as classes. Generalização - que relacionam classes

generalizadas a suas especializações. Associações - representam relacionamentos

estruturais entre objeto.

Page 10: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

10

Dependência

ContaBancaria ObjValor

public class ContaBancaria {private int numero;private float saldo;private Date dataAbertura;

public void creditar(ObjValor valor) {...

}}

Page 11: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

11

Generalização

ContaBancaria

numerosaldodataAbertura

creditar()debitar()

Poupanca

variacao

public class Poupanca extends ContaBancaria {private int variacao;...}

}

public class ContaBancaria {private int numero;private float saldo;private Date dataAbertura;

public void creditar(ObjValor valor) {... }

}

Page 12: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

12

Associação

Pessoa BancoEmpresta de

nome da associação

Pessoa Bancodevedor credor

papéis na associação

Pessoa Banco1..* *

multiplicidade da associação

Page 13: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

13

Associação: Multiplicidade

2..4

0..1

1..*

0..*

1

*

Não Especificado Exatamente um Zero ou mais (vários,

ilimitado)

Um ou mais Zero ou um

Intervalo especificado Intervalos múltiplos

2, 4..6

Page 14: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

14

Associação

public class Cliente {private String nome;private long cpf;private ContaBancaria contas[ ];

.

.

.}

Cliente ContaBancariaMovimenta

1 *

Page 15: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

15

Associação: Classe Associativa

Pessoa Empresaempregado empregador

**nometelefoneendereco

rezaoSocialendereco

Emprego

salariodataContratacao

Page 16: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

16

Associação: Classe Associativa

*

Pessoa

nometelefoneendereco

Empresa

rezaoSocialendereco

Emprego

salariodataContratacao

1 * 1

Page 17: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

17

Associação Reflexiva

Supervisao

Empregado

nometelefoneendereco

*

1

supervisionado

supervisor

Page 18: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

18

Agregação

Cliente

Banco

1..*

*

Page 19: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

19

Composição

*Banco Filial1

Page 20: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

20

Agregação & Composição

*Banco Filial1

Cliente

1..*

*

Page 21: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

21

Responsabilidades & Colaborações

Costuma-se categorizar os objetos de um sistema de acordo com o tipo de responsabilidade a ele atribuída. objetos de entidade objetos de controle objetos de fronteira

Esta categorização foi proposta por Ivar Jacobson (Jacobson et al, 1992) em uma técnica denominada Análise de Robustez.

Page 22: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

22

Objetos de Entidade

Um objeto de entidade é um repositório para alguma informação manipulada pelo sistema.

Esses objetos representam conceitos do domínio do negócio.

Normalmente esses objetos armazenam informações persistentes.

Há várias instâncias de uma mesma classe de entidade coexistindo no sistema.

Page 23: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

23

Objetos de Fronteira

Esses objetos traduzem os eventos gerados por um ator em eventos relevantes ao sistema.

Também são responsáveis por apresentar os resultados de uma interação dos objetos em algo inteligível pelo ator.

Um objeto de fronteira existe para que o sistema se comunique com o mundo exterior.

Por conseqüência, estes objetos são altamente dependentes do ambiente.

Page 24: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

24

Objetos de Controle

São a “ponte de comunicação” entre objetos de fronteira e objetos de entidade.

Responsáveis por controlar a lógica de execução correspondente a um caso de uso.

Decidem o que o sistema deve fazer quando um evento externo relevante ocorre. Eles realizam o controle do processamento Agem como gerentes (coordenadores,

controladores) dos outros objetos para a realização de um ou mais caso de uso.

Page 25: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

25

Divisão de responsabilidades

A categorização de responsabilidades implica em que cada objeto é especialista em realizar um de três tipos de tarefa: se comunicar com atores (fronteira) manter as informações do sistema (entidade) coordenar a realização de um caso de uso

(controle). A importância dessa categorização está

relacionada à capacidade de adaptação do sistema a eventuais mudanças

Page 26: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

26

Divisão de responsabilidades

«entidade»

«entidade»

«entidade»«controle»«fronteira»

Page 27: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

27

Classes Avançadas Visibilidade (UML):

A visibilidade de uma característica indica se ela pode ser utilizada por outras classes:

Público (+) – membros da classe são acessíveis por todos os clientes.

Package (~) - membros da classe são acessíveis somente pelas classes do mesmo pacote (package) e pela própria classe.

Protegido (#) – membros da classe são acessíveis somente por subclasses e pela própria classe.

Privado (-) - membros da classe são acessíveis somente pela própria classe.

Page 28: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

28

Classes Avançadas Escopo:

O escopo da propriedade especifica se uma característica aparece em cada instancia da classe ou se haverá uma única instancia da característica para todas as instancias da classe:

Instância – cada instancia da classe mantém seu próprio valor para a característica.

Static (Classe) – existe apenas um valor da característica para todas as instancias do classificador.

Page 29: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

29

Classes Avançadas

Elementos abstratos, herança e polimorfismo: É comum especificar classes abstratas, significando que

não poderão apresentar instancias diretas. Na UML são representadas por nome em itálico.

Generalização (herança) é usada para fazer a modelagem de estruturas de classes com abstrações mais gerais no topo da hierarquia e outras mais específicas na parte inferior.

Uma operação é polimórfica, significando que, em uma hierarquia de classes, você pode especificar operações com a mesma assinatura em pontos diferentes da hierarquia.

Você pode especificar uma operação abstrata escrevendo o respectivo nome em itálico.

Page 30: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

30

Diagrama de objetos

Além do diagrama de classes, A UML define um segundo tipo de diagrama estrutural, o diagrama de objetos.

Pode ser visto com uma instância de diagramas de classes

Representa uma “fotografia” do sistema em um certo momento. exibe as ligações formadas entre objetos

conforme estes interagem e os valores dos seus atributos.

Page 31: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

31

Exemplo (Diagrama de objetos)

Empregado

João : Empregado

Maria : Empregado

José : Empregado

Antônio : EmpregadoAline : Empregado

Lucas : Empregado

Rafaela : Empregado

Supervisao

Empregado

nometelefoneendereco

*

1

supervisionado

supervisor

Page 32: Marcio de Carvalho Victorino mcvictorino@uol.com.br Processo Unificado

FIM