Após a leitura desse capítulo, o leitor saberá:



Documentos relacionados
3.1 Definições Uma classe é a descrição de um tipo de objeto.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

2 Diagrama de Caso de Uso

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Modelagem de Casos de Uso (Parte 1)

Engenharia de Software III

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

MC536 Bancos de Dados: Teoria e Prática

A Linguagem de Modelagem Unificada (UML)

Orientação a Objetos

Sumário. Uma visão mais clara da UML

O Processo Unificado: Captura de requisitos

Princípios de Análise e Projeto de Sistemas com UML

Curso de Licenciatura em Informática

Modelo de Entidade e Relacionamento (MER) - Parte 07

UML Modelo Casos de Uso Estudo de Caso

Engenharia de Software

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Lógica de Programação

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr

Disciplina: Unidade III: Prof.: Período:

U3 Sistemas Análise e Desenvolvimento de Softwares ===== Manual do Plano de Contas Financeiras ===== Manual. Plano de Contas Financeiras

Entendendo como funciona o NAT

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Modelagem de dados usando o modelo BANCO DE DADOS 1º TRIMESTRE PROF. PATRÍCIA LUCAS

Engenharia de Requisitos Estudo de Caso

Programa de Apoio Didático Graduação - Perguntas Frequentes

Introdução! 1. Modelos de Domínio! 1. Identificação de classes conceituais! 2. Estratégia para identificar classes conceituais! 2

Prof.: Clayton Maciel Costa

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro.

Resolução da lista de exercícios de casos de uso

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Descreve relacionamentos entre objetos de dados; conduz à modelagem de dados; atributos de cada objeto => Descrição de Objetos de Dados;

Casos de uso Objetivo:

UML Aspectos de projetos em Diagramas de classes

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Guia de Especificação de Caso de Uso Metodologia CELEPAR

Só Matemática O seu portal matemático FUNÇÕES

ProgramaTchê Programação OO com PHP

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

Análise e Projeto Orientado a Objetos. Modelagem de Domínio

UML: Diagrama de Casos de Uso, Diagrama de Classes

Persistência e Banco de Dados em Jogos Digitais

Roteiro 3 Modelagem relacional

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO

MICROSOFT EXCEL AVANÇADO

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Lista de exercícios 01

Diagrama de transição de Estados (DTE)

Pesquisa e organização de informação

Ciclo de Desenvolvimento de Sistemas de BD

Tópicos Especiais em Sistemas de Telecomunicações IV

Treinamento Sistema Condominium Módulo III

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

FÓRMULAS DO MICROSOFT EXCEL

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

I Requisitos de um modelo conceitual: - clareza (facilidade de compreensão) - exatidão (formal)

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

MODELO ENTIDADE - RELACIONAMENTO

Especificação do 3º Trabalho

Livro. Prof. Horácio Ribeiro. Identificação de métodos e mensagens

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Capítulo 6. Criando um Diagrama de Caso de Uso Inicial

ENGENHARIA DA COMPUTAÇÃO

Projeção ortográfica de modelos com elementos paralelos e oblíquos

Lição 1 - Criação de campos calculados em consultas

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Notas de Aula 04: Casos de uso de um sistema

UML: Diagrama de Classes

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

UML: Casos de Uso. Projeto de Sistemas de Software

Feature-Driven Development

Lista de exercícios - MER

Guia de utilização da notação BPMN

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Modelagem de Dados Usando o Modelo Entidade-Relacionamento

Análise e Projeto de Sistemas

Notas de Aula 05: Aplicação de um caso de uso

Projeto 1: Aprovação de Transação de Cartão de Crédito

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Modelo conceitual Aula 08

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Diagrama de Caso de Uso e Diagrama de Sequência

DESENVOLVENDO O SISTEMA

Rock In Rio - Lisboa

BANCO DE DADOS MODELAGEM ER GENERALIZAÇÃO / ESPECIALIZAÇÃO. Prof.: Jean Carlo Mendes carlomendes@yahoo.com.br

Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. ! Generalização/Especialização

Prof. Claudio Passos Apresentação cedida pela Ceça Moraes

Todos os imóveis são comprados pela imobiliária para, então, serem colocados a venda.

Transcrição:

Estudo Dirigido Disciplina: Modelagem de sistemas Diagrama de Classe - Modelo de domínio Após a leitura desse capítulo, o leitor saberá: - identificar uma classe e objetos - definir os tipos de classes - identificar atributos e visibilidade de atributos - relacionar classes - definir os tipos de qualificações feitas nos relacionamentos - classes dependentes - modelar estruturas de herança. - modelar associaçoes - exemplos Livro Titulo: UML Essencial - Um Breve Guia para a Linguagem-Padrão de Modelagem de Objeto do autor: Martin Fowler Editora: Artmed Ano: 2005 Edição: 3º Capítulo: capítulo 3 Diagrama de classes Capítulo: capítulo 9: casos de uso Titulo: Utilizando UML e Padrões Uma Introdução à Análise e ao Projeto Orientado a Objetos e ao Processo Unificado do autor: Craig Larman Editora: Artmed Ano: 2007 Edição: 3º

No fim desta aula você: Aprendeu que o diagrama de classes é o mais importante na análise por objetos. Aprendeu o que um objeto e como fazer um diagrama de objetos O diagrama deve ser inciado focando-se no caso e uso crítico Aprendeu a estabelecer relacionamentos Aprendeu como representar conjuntos Uso as classes associativas e verificou a importância delas para dar flexibilidade aos sistemas criados a partir destes modelos. Aprendeu que pode se qualificar os relacionamentos e definir restrições junto às classes. Aprendeu a modelar uma associação

1- Responda falso ou verdadeiro EXERCÍCIOS DE AUTOCORREÇÃO.( ) - No UML a representação de uma classe é formada em três compartimentos, sendo: o primeiro para identificar o nome da classe, abaixo vem o compartimento com os objetos relativos à classe e por último o compartimento dos atributos. 2 - Dadas as seguintes afirmações, marque a opção falsa em relação à generalização. a) Todas as instâncias de uma classe filha são também instancias da classe mãe. b) É uma associação é um tipo de. c) Todas as instâncias da classe mãe são também instancias das classes filhas. d) Uma classe pode ter nenhuma ou varias classes mãe. e) Uma classe pode ter nenhuma ou varias classes filhas. (3) Quais dos relacionamentos abaixo pode haver entre classes? I include (inclusão) II extends (extensão) III agregação IV generalização V composição VI associação a) todos b) nenhum c) II, III, IV, VI d) III, IV, V, VI e) I, II, IV (4) Dadas às seguintes afirmações, marque a opção falsa em relação à herança. a) A herança é um mecanismo que deriva novas classes a partir de uma classe já existente através de um processo de refinamento. b) Uma classe derivada herda atributos e operações da classe base. c) A classe derivada não pode adicionar novos atributos ou operações as já existentes. d) Quando uma classe herda de mais de uma classe, temos a herança múltipla. e) A classe derivada pode redefinir a implementação de operações existentes na classe base.

INSERIR AQUI OS EXERCÍCIOS DE AUTOCORREÇÃO 12 Em relação aos diagramas de classes, a Multiplicidade: A. É obrigatória para todos os tipos de associação B. Não é usada com generalização C É obrigatória na composição D. É opcional com a generalização E. É usada apenas nas subclasses no fim da generalização

INSERIR AQUI OS EXERCÍCIOS propostos 1) Considere a seguinte descrição e construa o modelo conceitual: Um aluno possui matrícula e nome e pode estar alocado a uma ou várias disciplinas. Cada disciplina tem um titulo e uma ementa e pode ter uma ou várias turmas que, por sua vez, possui um único professor alocado. 2 - Modele o diagrama de classes e especifique o tipo de cobertura encontrado, se houver. Podemos dizer que uma sala de aula é composta de um quadro negro, um retroprojetor e vários móveis. Um móvel pode ser ou uma mesa, ou uma cadeira ou uma carteira. 3. Em uma universidade, José da Silva trabalha na biblioteca e é a pessoa responsável por registrar no sistema, os empréstimos de livros aos alunos. Além de trabalhar na biblioteca, José também é aluno da Universidade. Em um diagrama de casos de uso, como representaríamos as interações de José da Silva com o sistema para: Registrar um empréstimo; Efetuar matrícula em disciplina; Cadastrar livro 5) Modele o diagrama de classes : Podemos dizer que uma sala de aula é composta de um quadro negro, um retroprojetor e vários móveis. Um móvel pode ser ou uma mesa, ou uma cadeira ou uma carteira.

Aula 1 Texto Titulo Diagrama de classes O diagrama de classes é o principal dos diagramas do UML. O diagrama é como uma fotografia dos elementos usados pela aplicação. É uma representação estática, e não deve ser usado para representar dinâmicas da aplicação embora também às retrate como veremos. Existem vários níveis de diagrama de classes, eles são usados no nível de domínio conceitual e em nível de projeto. Nesta aula vamos abordar o diagrama de classes a partir da observação do mundo real para um determinado contexto, vamos construir o diagrama em nível de domínio. Isto é, não se deve representar estruturas de projeto (chaves, arquivos, campos...). O foco da análise é o negócio. Imagine que você está no século 15 e que não tem computador quando estiver fazendo este modelo. TITULO Identificando classes. Uma classe é uma forma de representarmos no mundo simbólico um conjunto do mundo real. Ao observar um conjunto sobre o qual temos alguns interesses (guardar os dados dos e elementos de um conjunto, por exemplo) dizemos que temos uma classe. As propriedades que desejo observar (propriedades para a qual desejamos guardar valores) são chamado de atributos. Representando uma classe Existem várias formas gráficas para se representar uma classe, mas em UML, quando temos interesse em um conjunto do mundo real desenhamos:

da classe ou Elemento da observação Propriedades que se esta interessado em observar ou atributos Exemplo: queremos observar um conjunto de pessoas, e as informações sobre as quais temos interesse são: nome, endereço, telefone, pessoa pessoa Telefone Telefone Ao definir a classe de domínio definimos um modelo de representação dos elementos do conjunto: Assim os elementos (Manoel, rua do bispo-3, 32116734, 371622571) (Jose, Rua Ava-34, 3226216, 37162225881) Fica representado: Manoel José Rua do bispo -3 Rua Ava-34 32116734 3226216 3716222571 37162225881 Observe que colocamos os valores que os atributos assumem nas representações. Neste caso dizemos que a classe foi INSTANCIADA, ou seja, recebeu valores. Cada um dos elementos no mundo das representações é chamado de um objeto da classe. Então uma classe representa um conjunto e os elementos do conjunto objetos são representados segundo a definição da classe.

Dicas 1: - Uma classe é a descrição de um tipo de objeto do mundo real. - Usam-se classes para classificar os objetos que identificamos no mundo real. - As classes devem ser retiradas do domínio do problema. Importante Uma classe completa no UML é representada por um retângulo dividido em três compartimentos: o compartimento de nome, que conterá apenas o nome da classe modelada, o de atributos, que possuirá a relação de atributos que a classe possui e o compartimento de operações chamadas de métodos. Nós veremos o que é método e sua modelagem em aulas futuras Repesentação da classe em UML Cliente : String Idade : Num Criar() Destruir() da Classe Atributos Operações No UML um objeto fica representado da forma: Pablo Barros:Cliente : "Pablo Barros" Idade : 20 Criar() Destruir() do Objeto Atributos Operações Foi instanciado o objeto Pablo Barros da classe cliente. E as operações que se pode fazer com ele são: criar() e destruir(). Vamos aprender como identificar os métodos ainda em aulas futuras

Relacionamentos: Outro elemento importante, para a modelagem de classes, é o relacionamento. Aqui o relacionamento tem o mesmo conceito matemático estabelecido em teoria dos conjuntos. Têm-se um relacionamento quando estabelecemos alguma ligação, do nosso conhecimento, entre os conjuntos. VIU... Não é uma ligação física... é uma ligação do nosso conhecimento ou do domínio da aplicaçãopor isto, não tem como se constatar fisicamente. É um elemento conceitual. Reflete o conhecimento a respeito de alguma coisa. Só existe no mundo simbólico. Vamos esclarecer com alguns exemplos: Você tem o conjunto dos homens e o conjunto das mulheres. A relação CASAMENTO normalmente associa um Homem a uma mulher. A relação Possuir associa um elemento do conjunto de objetos a um elemento do conjunto de pessoas Um relacionamento é um estabelecimento conceitual entre elementos de um conjunto com outro que depende de que aspecto do mundo real estamos nanlisando. Estabelecimento de relacionamentos: Quando temos um conjunto, como por exemplo, o conjunto de alunos: aluno E estamos analisando, no mundo real, como é o controle de estacionamento construído apenas para alunos, identificamos que o outro conjunto de interesse é o de veículos: veiculo Marca placa cor ano

Para os dois conjuntos podemos estabelecer um relacionamento que é representado na forma abaixo: aluno veiculo Marca placa cor ano Pode-se escrever o relacionamento que estamos estabelecendo. Observe que temos DOIS relacionamentos: De aluno para veiculo (relacionamento: possui), e, De veiculo para aluno(relacionamento: pertence). O nome destes relacionamentos não é padronizado e devem ser dados de forma a definir a relação. O sentido da relação é indicado por uma seta, como mostrado abaixo: aluno Possui pertence veiculo Marca placa cor ano Assim o relacionamento mostra o sentido da leitura: - aluno possui veiculo. - veiculo pertence a aluno Dicas 2: - Um relacionamento é um conceito: não existe fisicamente no mundo real - Existem sempre dois relacionamentos entre conjuntos (de A para B e de B para A). - Não force a barra para colocar o mesmo nome para o dois relacionamentos. É perda de tempo e tira o foco da análise que está sendo feita. - Não padronize relacionamentos, ele mudam para cada novo mundo real que estamos analisando

Multiplicidade dos relacionamentos: Uma informação importante quando trabalhamos com os relacionamentos é de como os elementos do conjunto se comportam em relação ao outro. Quando eu tenho um conjunto A e um conjunto B, na matemática um relacionamento representa um par (a,b) onde a pertence ao conjunto A e b pertence ao conjunto B Pode ser que todos os elementos de A tenham o par (a, b), neste caso se fala PARA TODO a pertencente ao conjunto A temos uma imagem b no conjunto B. Observe que não INTERESSA como chega ou para quem chega ao conjunto B. Existem quatro possibilidades de multiplicidade do conjunto A em relação ao conjunto B: Primeira: ANALISANDO A verificamos que de todo elemento do conjunto A sai uma flexa: Neste caso representamos esta informação junto ao relacionamento no sentido da leitura: veiculo aluno Marca placa cor ano pertence Possui 1 LEMOS: Todo Veiculo pertence a UM aluno. Segunda situação:

Observe que da situação anterior UM elemento do conjunto A não tem correspondente no conjunto B. Se existir um elemento (basta um) não ter correspondente que caracterizamos esta situação. Representamos assim: aluno TEM MANTÉM 0..1 PAI VIVO NOME DATA NASCIMENTO cor Existem alunos que TEM ZERO ou UM pai vivo Terceira situação: De todo elemento de A estabelecemos um relacionamento, mas existem ( no mínimo um) elementos que tem mais de um correspondente no conjunto B

Esta situação representa-se na forma: aluno cursa tem 1..N disciplina ementa carga horaria periodo Lemos do seguinte modo: Um aluno cursa uma ou mais de uma disciplina. Quarta situação: No mínimo um elemento pertencente ao conjunto a não tem correspondente em b e existem elementos no conjunto A coma mais de uma imagem. Representa-se:

aluno Possui pertence 0..N veiculo Marca placa cor ano Importante: - Na multiplicidade 0..N ou 1..N estamos representando o mínimo e o Maximo de relacionamento de um elemento, na forma min..max assim pode se representar 3..10 indica que existem elementos no conjunto a com um mínimo de 3 correspondentes em B e no Maximo 10 correspondentes no conjunto B. - Pode-se ainda substituir o N por * Assim o exemplo acima poderia ser desenhado na forma: aluno Possui 0..* pertence veiculo Marca placa cor ano Análise dos relacionamentos. Quando fazemos a analise dos relacionamentos estabelecemos duas informações: Relacionamento do conjunto A para o conjunto B. E, do conjunto B para o conjunta. Assim vamos completar os exemplos anteriores:

Primeira situação veiculo aluno Marca placa cor ano 0..* pertence Possui 1 Lemos: um veiculo pertence a um aluno, E um aluno possui 0 ou mais veículos (tem alunos que não têm veiculo e alunos que tem mais de um) Segunda situação aluno 0..* TEM 0..1 MANTÉM PAI VIVO NOME DATA NASCIMENTO cor Lemos um aluno tem 1 ou Zero PAI VIVO, e Um PAI VIVO mantem Zero ou mais alunos Terceira situação aluno cursa 0..N tem 1..N disciplina ementa carga horaria periodo

Lemos: Um aluno cursa 1 ou mais Disciplinas, e Uma disciplina tem O ou mais de um aluno Quarta situação: aluno 1 Possui pertence 0..N veiculo Marca placa cor ano Lemos: Um aluno Possui zero ou mais veículos. E, Um veiculo pertence a um aluno De forma resumida:: Para expressar a multiplicidade entre os relacionamentos, um intervalo indica quantos objetos estão relacionados. O intervalo pode ser de zero para um (0..1), zero para vários (0..* ou apenas *), um para vários (1..*), dois (2), cinco para 11 (5..11) e assim por diante. É também possível expressar uma série de s como (1, 4, 6..12). Se não for descrita nenhuma multiplicidade, então é considerado o padrão de um para um (1..1 ou apenas 1). Cliente Possui É possuído Conta Corrente

Exercício resolvido: Considere o mundo real abaixo: Um Banco tem diversas agencias identificadas por um código. È importante ter as informações do endereço, telefone Tamanho em metros quadrados de cada agencia. Cada agencia tem sua carteira de clientes. Não há interesse em saber se o cliente tem ou não conta em outra agencias. Do cliente deve-se ter as informações de nome, endereço,. Passamos a ter um cliente quando uma pessoa abre uma conta corrente. Não interessa o numero de contas que o cliente abre. Cada conta é identificada por um, um gerente responsável, um saldo atual e um saldo médio. Primeiro passo: Analisando o Mundo real descrito, podemos ter algumas dúvidas, e para isto devemos procurar o responsável pela formulação do problema. Em alguns casos temos a liberdade de fazermos algumas suposições, mas que obrigatoriamente devem ser verificadas antes de se seguir adiante. Analisando o problema devemos estabelecer um foco para iniciar o trabalho. No texto qual a intenção de que formulou a questão? Qual o foco da análise? Pode-se divergir um pouco, mas esta reflexão é fundamental para o desenvolvimento do raciocínio. Em minha opinião, como analista, e que pode não coincidir com a sua, o texto foca no controle do cliente ou da conta corrente. Assim vou estabelecer o conjunto inicial para a qual representarei a classe: cliente

Segundo passo: Estabeleço os relacionamentos com conjuntos diretamente ligada à classe identificada. Neste caso foi incluir a classe conta com os seus respectivos relacionamentos Conta cliente 1 Tem É Numero Saldo atual Saldo médio Gerente responável Terceiro passo: Estabeleço os relacionamentos com conjuntos necessários para completar a descrição ou que são necessários para o objetivo focado. No nosso caso falta o conjunto de agencias, tendo em vista que UM banco deseja controlar a s agencias. O conjunto de bancos é desnecessário, tendo em vista que seus dados são inicialmente conhecidos e a aplicação esta sendo desenvolvida para ele. O cliente é da agencia e o meu foco é o cliente, por isto vou realcionar o conjunto de agencias com o conjunto de clientes. agencia Conta Código Telefone tem metragem 1 É 0..* cliente 1 Tem É d Numero Saldo atual Saldo médio Gerente responável

Pratique voce: Considere o mundo real abaixo: A biblioteca da universidade tem um acervo de livros, catalogados por titulo, edição, editora, primeiro autor. Os alunos podem pegar livros nesta biblioteca. Para isto a biblioteca tem registrado a, nome, telefone e de cada aluno. Ao fazer o empréstimo, registra-se o dia da devolução. Faça um modelo de classes que represente a necessidade da biblioteca. Resposta: aluno livro nome Telefone Tem 0..* 1 é de emprestimo Matricula livro data_dev. 0..* É de Pode ter 1 titulo ediçao primeiro autor editora Classes Dependentes Existem alguns conjuntos, que no processo de modelagem, desejamos condicioná-los a existência de outros conjuntos. São chamados de conjuntos dependentes. A dependência de conjuntos é uma ferramenta da modelagem. Neste caso o modelador deseja que a identificação do conjunto dependente seja feita a partir do conjunto a. A representação da dependência é por uma linha tracejada.

empregado Matricula nome endereço cargo 1 É de Tem 0..* familiar nome parentesco data nascimento data registro O diagrama significa que o familiar deve ser identificado a partir da identificação do empregado. Na realidade um objeto dependente só pode ser dependente de um único objeto, por isto é desnecessário a indicação da multiplicidade 1. Exemplo de desenvolvimento usando a dependência. Considere o pedido abaixo:

Primeiro passo: O objetivo da modelagem é o controle o pedido, portanto, a primeira classe que é o foca da análise já esta definida: Orcamento Cliente endereco Segundo passo : precisamos colocar as intormaçoes do item, mas estes idtens devem ser identificados a partiri do numero do orçamento (decisão de projeto) Orcamento Cliente endereco D 1 1..N Item_orcamento Quantidade Descrição Preço_unitario Modelar sub conjuntos: Muitas vezes temos um conjunto, no mundo real, mas estamos interessados em um subconjunto, ou por que se deve acrescentar alguma informação, ou precisa-se fazer um tratamento específico destes elementos. Considere o conjunto de inscritos em um concurso público, por exemplo, e modelamos a seguinte classe: candidato nome endereço E desejamos destacar o subconjunto dos candidatos aprovados, guardando sua média e colocação, indicamos um subconjunto pelo símbolo: Assim a representação fica:

candidato nome endereço aprovado média colocação Observe que ao estabelecermos o subconjunto estamos definindo novas propriedades para os elementos do subconjunto, inclusive o nome, então lemos: candidato aprovado, também podemos dizer que aprovado é um PAPEL do conjunto de candidatos. A identificação do candidato no subconjunto é a mesma do conjunto. Em Modelagem de objetos diz-se que aprovado herdou as propriedades de candidato (matematicamente não é correto, pois o sub conjunto TEM as propriedades do conjunto principal) mas o termo é devido a uma característica da programação que veremos nas próximas aulas. Podemos ter vários níveis de subconjunto. candidato nome endereço aprovado média colocação contratado num.contrato datacontratação Alguns dos candidatos aprovados foram contratados e podemos representar um novo subconjunto a partir do conjunto de aprovados, e ele também herda as propriedades de aprovado, portanto é o candidato aprovado contratado. Podemos-se destacar quantos subconjuntos forem necessários para se fazer a análise, assim se a empresa que esta promovendo o concurso tivesse interesse em registrar o peso e a altura das candidatas femininas poderia representar:

candidato nome endereço aprovado média colocação contratado num.contrato datacontratação feminino altura peso O diagrama representa dois sub conjuntos no conjunto principal, não interessa para o sub conjunto de feminino se foi ou não aprovado. Ou seja nada podemos afirmar sobre a interseção dos dois (ou mais) sub conjuntos. A hierarquia estabelecida do conjunto principal para os sub conjuntos é também chamada de estrutura GEN-ESP (generalização para a especialidade). O conjunto principal também é chamado de super classe e os conjuntos de subclasses. Uma sub classe pode ter mais de uma superclasse ou seja podemos ter um sub conjunto comum a dois conjuntos principais, neste caso, dizemos que temos herança múltipla. candidato nome endereço trabalhador nome endereço cargo contratado num.contrato datacontratação

O UML permite que você represente vários subconjuntos destacando por uma linha pontilhada algumas restrições entre chaves separadas por vírgula quando existir mais de uma: trabalhador nome endereço cargo Incompleto, disjuntos motorista c.habilitação data arteira engenheiro universidade dataformatura digitador velocidade editorpreferido Foi indicada uma restrição com duas observações: que não foram representados todos os subconjuntos (incompleto)e que podem ir sendo completados, poderia ser completo se todos fossem representados. E que os conjuntos são disjuntos, portanto mutuamente exclusivos, poderia ser sobreposição se o elemento pudesse pertencera a mais de um subconjunto nesta estrutura. Se o empregado for motorista, não é engenheiro, ou seja a interseção entre os subconjuntos definidos é o conjunto vazio.

Aprenda mais Generalizações Completa e Incompleta: Uma restrição simbolizando que uma generalização é completa significa que todas as subclasses já foram especificadas, e não existe mais possibilidade de outra generalização a partir daquele ponto. A generalização incompleta é exatamente o contrário da completa e é assumida como padrão da linguagem. Pessoa {completa} Homem Mulher Aprenda mais: veiculo potencia lugares sobreposição,incompleto terrestre modelo aquatico velocidade anfíbio

ASSOCIAÇÕES: Outro recurso importante é a associação. Uma associação é um conjunto criado com objetivo de ligar outros dois (ou mais) conjuntos existentes. As classes asociadoras são representadas por linhas cheias e a classe que as associa é ligada a esta linha cheia por uma linha pontilhada. Toda vez que tivermos um relacionamento de multiplicidade ( 0..*) para os dois lados do relacionamento deve-se usar a classe associativa. O modelo de classes de objetos é determinista, isto é, devemos saber quem se relaciona com quem, portanto a multiplicidade 1 é obrigatória nos relacionamentos fora da estrutura associativa. A B A/B Exemplo: Uma empresa trabalha com projetos. Todo empregado trabalha em um projeto, cada projeto é coordenado por um órgão. O departamento de pessoal precisa saber que dia e hora o empregado entrou e saiu de cada projeto. Faça um modelo de classes que permita fornecer esta informação: Primeiro passo : O modelador inciaria identificando os conjuntos existentes: projetos descrição prazo empregado Tem 0..* nome salário

Exercicios de revisão: 1. Considere um sistema de locação de filmes em que um cliente solicita a locação de alguns filmes em DVD e após ter-se identificado ao funcionário e escolhido os filmes, ele os leva para casa, sabendo dos prazos de devolução de cada filme e do valor do aluguel a ser pago. Com relação a essa situação, a. desenhe o diagrama de Caso de Uso correspondente à situação apresentada. b. descreva o Caso de Uso relativamente a: atores, pré-condições, pós-condições e fluxo principal. c. descreva os tratamentos de exceção do Caso de Uso, considerando duas exceções: cliente em débito (quitação do débito) e filme reservado para outro cliente (filme não pode ser alugado ao cliente). 2. Requisitos de um sistema são freqüentemente classificados como funcionais, não-funcionais e de domínio. Qual a definição que melhor descreve requisitos não-funcionais? a. São ferramentas automatizadas de apoio ao processo de desenvolvimento de sistemas. b. São requisitos que descrevem o que o sistema deve fazer, como deve reagir a determinadas entradas e como deve comportar-se em situações particulares. c. São requisitos que derivam do domínio da aplicação e que refletem características e restrições desse domínio. d. São requisitos que não estão diretamente relacionados com as funções específicas do sistema. e. São requisitos que especificam como deve ser testada uma parte do sistema, incluindo-se as entradas, os resultados esperados e as condições sob as quais os testes devem ocorrer. 3. O Processo Unificado (RUP rational unified process) é um moderno processo de desenvolvimento de software constituído de quatro fases. Assinale a opção que apresenta as quatro fases do RUP, na ordem em que elas devem ser executadas. a. concepção, elaboração, construção, teste b. elaboração, transição, concepção, construção c. elaboração, concepção, teste, transição d. elaboração, concepção, transição, construção e. concepção, elaboração, construção, transição