ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE



Documentos relacionados
O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

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

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

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

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Aula 3 SBD Modelo Entidade Relacionamento Parte 1. Profa. Elaine Faria UFU

DESENVOLVENDO O SISTEMA

Roteiro. Modelagem de Dados: Usando o Modelo Entidade-Relacionamento. BCC321 - Banco de Dados I. Processo de Projeto de Banco de Dados.

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)

Aula II Introdução ao Modelo de Entidade-Relacionamento

1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos

Desenvolver o projeto conceitual de Banco de dados com a utilização do Modelo Entidade-Relacionamento.

Disciplina Técnicas de Modelagem

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

UML & Padrões Aula 3. UML e Padrões - Profª Kelly Christine C. Silva

O Modelo de Entidade Relacionamento (ER ou MER) Parte 1

3 Estratégia para o enriquecimento de informações

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

Uma visão mais clara da UML Sumário

Casos de uso Objetivo:

REQUISITOS DE SISTEMAS

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

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

Modelagem de Sistemas

Eduardo Bezerra. Editora Campus/Elsevier

Especificação Operacional.

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Modelagem de Dados Usando o Modelo Entidade-Relacionamento

UML: Diagrama de Casos de Uso, Diagrama de Classes

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Persistência e Banco de Dados em Jogos Digitais

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO)

Unidade II MODELAGEM DE PROCESSOS

A Linguagem de Modelagem Unificada

agility made possible

ipea políticas sociais acompanhamento e análise 7 ago GASTOS SOCIAIS: FOCALIZAR VERSUS UNIVERSALIZAR José Márcio Camargo*

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

RELACIONAMENTOS ENTRE CLASSES

Sistemas Operacionais. Prof. André Y. Kusumoto

BANCO DE DADOS I AULA 3. Willamys Araújo

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

QUESTÕES PARA ESTUDO DIAGRAMA DE CLASSE

Exercícios Teóricos Resolvidos

Diagramas de Casos de Uso

Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI

Análise e Projeto Orientado a Objetos

Projeto de Banco de Dados. Disciplina: Banco de Dados I José Antônio da Cunha

Tema 1: Modelo Estático

Profa. Daniela Barreiro Claro

INE 5613 Banco de Dados I

4.4. UML Diagramas de interacção

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

Arquivo original em Inglês: Management/Documents/Risk-IT-Brochure.pdf

GBC043 Sistemas de Banco de Dados Modelo de Entidade-Relacionamento (ER)

ADMINISTRAÇÃO GERAL GESTÃO DE PROCESSOS

4.1. UML Diagramas de casos de uso

Modelo Entidade-Relacionamento

2 Ferramentas Utilizadas

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

Banco de Dados. Profª. Ana Leda

Introdução a Banco de Dados Aula 03. Prof. Silvestri

DIAGRAMA DE ATIVIDADES

Desenvolvimento de uma Etapa

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

PLANEJAMENTO ESTRATÉGICO

Curso de Gestão em SI MODELAGEM DE DADOS. Rodrigo da Silva Gomes. (Extraído do material do prof. Ronaldo Melo - UFSC)

Banco de Dados Orientado a Objetos

DESENVOLVENDO COMPETÊNCIAS MATEMÁTICAS Marineusa Gazzetta *

:: aula 8. :: Desenvolveremos as seguintes habilidades nesta aula:

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

Engenharia de Software III

MODELAGEM DE SISTEMAS

1 Introdução. Componentes Usuários. Provedor de Serviços. Figura 1.1 Ambiente de oferecimento de serviços

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

Micro Mídia Informática Fevereiro/2009

Processos de gerenciamento de projetos em um projeto

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

O Processo de Engenharia de Requisitos

Relacionamentos entre classes

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

Qualidade de Software

Professor: Curso: Disciplina: Aula 4-5-6

Medindo a Produtividade do Desenvolvimento de Aplicativos

A NECESSIDADE DE UMA NOVA VISÃO DO PROJETO NOS CURSOS DE ENGENHARIA CIVIL, FRENTE À NOVA REALIDADE DO SETOR EM BUSCA DA QUALIDADE

Realização. Conselho Brasileiro de Manejo Florestal FSC Brasil.

Observações. Referência Título / Campo de Aplicação Emissor Data de adoção

Tópicos da Aula. Que é são requisitos? Tipos de Requisitos. Requisitos Funcionais. Classificação de Requisitos. Requisitos de Software.

Programação Orientada a Objeto

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

Modelando com UML Unified Modeling Language

UML Itens Estruturais - Interface

MC536 Bancos de Dados: Teoria e Prática

UML & Padrões. Aula 1 Apresentação. Profª Kelly Christine C. Silva

Roteiro 3 Modelagem relacional

3 Trabalhos relacionados

Transcrição:

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através de classes, atributos e relacionamentos representa o esquema conceitual da aplicação. Esses construtores básicos especificam restrições importantes, mas não conseguem capturar todas as restrições necessárias. As restrições de integridade são usadas para enriquecer a semântica do mundo real representada nos esquemas conceituais. A UML, no entanto, não define uma sintaxe explícita para descrever essas restrições. Neste artigo, formalizamos o conceito de restrição de integridade para o modelo de objetos da UML. Palavras chaves: 1 INTRODUÇÃO O projeto de banco de dados pode ser descrito como a atividade de construir uma representação do domínio de uma aplicação em um determinado formalismo. Esta representação ou modelo precisa capturar toda a semântica envolvida no domínio da aplicação. As restrições de integridade são usadas para capturar a semântica do mundo real representada nos esquemas conceituais. No entanto, a UML não define uma sintaxe explícita para descrever essas restrições. Por esse motivo, além das restrições presentes na própria estrutura do esquema, tais como, restrições de multiplicidade e navegabilidade, formalizamos os seguintes tipos de restrições de integridade: restrição de chave, dependência funcional e dependência existencial. É importante ressaltar que o resultado desse trabalho foi a base para o desenvolvimento de uma metodologia para integração de visões modeladas com a UML descrita em [1]. Na seção 2, estendemos alguns elementos de modelagem da UML. Esse formalismo é necessário porque é através dele que as restrições representadas pelo diagrama de classes as UML podem ser validadas. Na seção 3, apresentamos as restrições de integridade definidas. Na seção 4, apresentamos as conclusões e direcionamentos futuros do nosso trabalho. 2 ELEMENTOS DE MODELAGEM DA UML O diagrama de classes da UML trata-se de uma estrutura lógica estática composta de uma coleção de elementos de modelagem que representam o esquema conceitual de uma aplicação. Nesta seção, descrevemos alguns desses elementos de modelagem, tais como classes, relacionamentos, atributos e operações. A figura 1 ilustra um exemplo de um diagrama de classes típico para uma aplicação de processamento de pedidos. 2.1 Objeto Os objetos representam entidades do mundo real. Um objeto possui dois componentes: estado (porção dos dados) e comportamento (porção funcional). O estado de um objeto é definido pelos valores de suas propriedades. O comportamento de um objeto é definido por um conjunto de operações que podem ser executadas nos objetos e define o modo como os objetos agem e reagem a estímulos externos em termos de mudança de estado e passagem de mensagens. Qualquer modelo de dados deve conter uma forma de identificar unicamente cada objeto. O paradigma orientado a objeto fornece essa unicidade através de um identificador denominado Object- R. Cient. Fac. Lour. Filho - v.2, n.1, 2002 1

Identifier (OID). O OID designa univocamente o objeto na representação e é preservado até mesmo quando o estado do objeto muda completamente. 2.2 Classe Figura 1 Exemplo Diagrama de Classes Na UML, uma classe é uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica [2]. Uma definição de classe possui o nome da classe, que deve ser único em todo o banco de dados, um tipo e uma extensão. A extensão de uma classe C (Extensão(C)) consiste em um conjunto de objetos que são membros ou instâncias de C. O tipo de uma classe C (Tipo( C)) é uma tupla <propriedades, operações> que indica o conjunto de propriedades e operações que são aplicados a todos os objetos de C. Uma propriedade de uma classe pode ser vista como uma definição dos dados mantida pelas instâncias da classe (atributo) ou como relacionamentos dos objetos da classe com objetos de outras classes (ligação). Esses conceitos serão definidos mais adiante. 2.3 Atributo Um atributo é uma definição de dados mantida pelas instâncias de uma classe [2]. Todo atributo tem um tipo associado que corresponde a uma classe pré-definida. O valor de um atributo é uma instância do tipo do atributo. Os atributos podem ser classificados em monovalorados ou multivalorados. O valor de um atributo monovalorado é um objeto do tipo atômico. Os tipos atômicos são tipos que não possuem estrutura e representam um único valor. Tipos numéricos e caracteres são exemplos de tipos atômicos. No diagrama de classes mostrado na figura 1, o atributo nome da classe Cliente definido por nome: String é um exemplo de atributo monovalorado que associa uma instância da classe pré-definida String a um objeto da classe Cliente, indicando que um cliente possui um nome. O valor de um atrib uto multivalorado é um objeto que contém uma coleção de objetos que são instâncias de um mesmo tipo. Uma coleção de elementos associada a um objeto de uma classe pode ser implementada usando um dos construtores: Array, Set e List. Set é uma estrutura de dados que captura a noção usual de conjuntos matemáticos. Os construtores Array e List são estruturas que capturam a noção usual de listas e vetores usados nas linguagens de programação. Por exemplo, na figura 1, o atributo telefone da classe Cliente, definida por 2 R. Cient. Fac. Lour. Filho - v.2, n.1, 2002

telefone : set<string>, associa um conjunto de instâncias da classe pré-definida String a um objeto da classe Cliente, indicando que um cliente pode ter mais de um número de telefone. 2.4 Operação Uma classe incorpora um conjunto de atribuições que definem o comportamento dos objetos da classe e que são executadas por suas operações. Uma operação é um serviço que uma instância de uma classe executa sempre que recebe uma mensagem de outro objeto. Na UML, há uma distinção importante entre operação e método: uma operação é algo invocado por um objeto, enquanto um método é um corpo de um procedimento. Dessa forma, um método é a implementação de uma operação [3]. 2.5 Associação Os objetos contribuem para o comportamento de uma aplicação cooperando entre si. Essa cooperação é alcançada através das associações. Uma associação é um relacionamento semântico entre duas ou mais classes e que envolve conexões entre suas instâncias [2]. Por exemplo, no diagrama da figura 1, temos que as instâncias da classe Pedido estão relacionadas com as instâncias da classecliente. 2.5.1 Ligações de uma Associação A notação da UML permite adicionar uma seta à extremidade da associação para indicar sua navegabilidade. Se a navegabilidade existir somente em uma direção, chamamos a associação de unidirecional. Uma associação bidirecional contém navegabilidades nas duas direções [4]. Em um nível mais conceitual, a UML usa as associações sem setas para indicar que a navegabilidade é bidirecional. Para cada direção de navegação é associada uma ligação ou papel. Uma ligação relaciona os objetos de uma classe com objetos da outra classe envolvida na associação. Definimos a notação l: A fi B para indicar que a ligação l associa à classe A os objetos da classe B que estão associados a A. Neste caso, dizemos que l é uma ligação da classe A. Por exemplo, no contexto da figura 1, temos que a classe Item- Pedido está associada à classe Pedido através da ligação linha de item. Isso implica que as instâncias da classe Item-Pedido estão associadas à uma instância da classe Pedido através da ligação linha de item (linha de item: Item-Pedido fi Pedido), ou seja, linha de item é uma ligação da classe Item-Pedido. As extremidades das associações também contêm uma multiplicidade. A multiplicidade é uma indicação de quantos objetos podem participar de uma associação. Na figura 1, o * na extremidade da associação entre a classe Pedido com a classe Cliente indica que um cliente tem muitos pedidos associados a ele, enquanto 1 na outra extremidade indica que um pedido vem somente de um cliente. Se o valor máximo da multiplicidade especificada para uma ligação for 1, então dizemos que a ligação é monovalorada. Caso seja maior que 1, a ligação é multivalorada. 2.5.2 Atributos como Ligação É importante ressaltar que um atributo também pode ser visto como uma ligação. A diferença está apenas na navegabilidade desse dois conceitos. Um atributo possui um único sentido de navegação: do tipo para o atributo. Já as ligações podem existir nas duas direções de navegação. 2.5.3 Classe de A ssociação No mundo real, existem algumas situações cuja semântica não pode ser capturada através de associações. Para representar tais situações são utilizadas as classes de associação. Uma classe de R. Cient. Fac. Lour. Filho - v.2, n.1, 2002 3

associação é um elemento de modelagem que representa relacionamentos n-ários e permite que atributos, operações e outras associações sejam adicionados às associações. O número de classes ligadas à classe de associação corresponde ao grau da classe de associação. Uma classe de associação pode ser vista tanto como uma associação que tem propriedades de classe ou como uma classe que tem propriedades de associação [3]. Conforme mostrado no esquema da figura 2, na UML, uma classe de associação é representada por um símbolo de classe anexado a uma associação por uma linha tracejada e, apesar de possuir uma notação gráfica de uma associação e uma classe, corresponde a um único elemento de modelagem. Figura 2 Notação de Classe de Associação na UML Uma classe de associação captura um evento do mundo real que envolve um objeto de cada uma das classes participantes da associação. Isso significa que toda instância da classe de associação está associada com uma única instância de cada uma de suas classes participantes. Formalmente, existe uma ligação da classe de associação para cada classe participante, onde a multiplicidade dessas ligações é 1. Em geral, o nome dessa ligação corresponde ao nome da classe participante. Por exemplo, no esquema da figura 3, a classe de associação Gerência captura o fato de que um empregado e trabalha em um projeto p que é gerenciado pelo gerente g. Dessa forma, existe uma ligação da classe de associação Gerência para cada uma de suas classes participantes (empregado: Gerência fi Empregado,projeto:Gerência fi Projeto e gerente: Gerência fi Gerente) cuja multiplicidade é 1. Figura 3- Exemplo- Classe de Associação 4 R. Cient. Fac. Lour. Filho - v.2, n.1, 2002

Vale a pena ressaltar que as classes de associação adicionam uma restrição importante às associações, na qual somente uma instância da classe de associação pode relacionar os mesmos objetos das classes participantes. Isso implica que não é possível ter mais de uma instância da classe de associação relacionando os mesmos objetos das classes participantes. Por exemplo, no contexto do exemplo da figura 3, só é possível associarmos um empregado a um mesmo projeto e gerente uma única vez. 2.6 Caminho Os objetos de uma classe também podem estar relacionados indiretamente com os objetos de outras classes através da composição de duas ou mais ligações. Suponha, por exemplo, o diagrama da figura 1. De acordo com as ligações definidas entre as classes Empregado, Departamento e Gerente, temos que um empregado está relacionado com o gerente do seu departamento de forma indireta através da composição das ligações depto e ger, ou seja, existe um caminho entre as classes Empregado e Gerente (depto ger). Uma definição formal de caminho é apresentada a seguir. Definição 1 :(Caminho) Sejam C 1, C 2,..., C n+1 classes de um esquema, tais que existe uma ligação l i de C i para C i+1 (l i : C i fi C i+1 ), 1 i n. Assim sendo, T = l 1 l 2... l n é um caminho de C 1. A multiplicidade de um caminho depende das multiplicidades especificadas para as ligações que o compõe. Um caminho é monovalorado se todas as ligações que o compõem são monovaloradas. Um caminho é multivalorado se pelo menos uma das ligações que o compõe é multivalorada. 2.7 Esquema Orientado a Objeto Um esquema orientado a objetos é uma tupla S = (C, I), onde C representa um conjunto finito de classes e I é um conjunto de restrições de integridade. Definição 2: (Estado de Classe e de Objeto) O estado de uma classe C é o conjunto de objetos que pertencem à extensão de C, ou seja, o conjunto de objetos que são instâncias de C em um determinado instante. O estado de um objeto é definido pelos valores de suas propriedades (atributos e ligações) em um determinado instante. Considere c uma instância da classe C. Para qualquer atributo a de C, c.a retorna o valor do atributo a para a instância c no estado corrente. Para qualquer ligação l: C fi C', c.l retorna as instâncias de C' que estão associadas com c através da ligação l no estado corrente. Para qualquer caminho T = l 1 l 2... l n de C, onde l 1 : C fi C 1 e l i : C i-1 fi C i, 2 i n, c T retorna as instâncias de C n que estão associadas com c através do caminho T no estado corrente. 3 RESTRIÇÕES DE INTEGRIDADE EM UML As restrições de integridade impõem restrições nos estados admissíveis de esquema de um banco de dados (instâncias do banco de dados). Um instância D do esquema de um banco de dados é consistente ou é uma instância válida, se e somente se para qualquer restrição de integridade I, I é válida em D. Os estados permissíveis (instâncias) de um banco de dados são aqueles que satisfazem sua estrutura e todas as suas restrições. É responsabilidade do projetista identificar essas restrições durante o projeto do banco de dados. Os construtores básicos de associação, atributo e generalização especificam restrições importantes, mas não conseguem capturar todas as restrições do diagrama de classes. As restrições de integridade ajudam a enriquecer a semântica do mundo real representada nos esquemas conceituais. Entretanto, a UML não define uma sintaxe explícita para descrever essas restrições. Por esse motivo, além das restrições presentes na própria estrutura do esquema, tais como, restrições de multiplicidade e navegabilidade, nesta seção, definimos uma notação para representar os seguintes tipos de restrições de integridade: restrição de chave, dependência funcional e dependência existencial. R. Cient. Fac. Lour. Filho - v.2, n.1, 2002 5

3.1 Restrição de Chave Uma restrição de chave especifica a unicidade nos valores dos atributos de uma classe. Uma classe usualmente possui um atributo cujos valores são distintos para cada instância da classe. Tal atributo é chamado de atributo chave e seus valores podem ser usados para identificar cada instância da classe unicamente. Esse tipo de identificação corresponde ao conceito de chave primária do modelo ER. Por exemplo, na figura 1, o atributo número é uma chave da classe Pedido, pois não é permitido que dois pedidos possuam um mesmo número. A seguir definimos formalmente a restrição de chave. Definição 3 : (Chave) Seja C uma classe e a 1, a 2,..., a n atributos de C. A restrição de chave a 1, a 2,..., a n Chaves(C) especifica que para quaisquer instâncias e 1 e e 2 de C se e 1.a i = e 2.a i, então e 1 e 2, para todo 1 i n (e 1 e e 2 são semanticamente equivalentes, i.e, representam o mesmo objeto do mundo real). 3.2 Restrição de Dependência Funcional (FD) Segundo [5], uma dependência funcional (FD) é uma restrição entre dois conjuntos de atributos de um banco de dados. Os projetistas usam seu conhecimento da semântica dos atributos - como eles estão relacionados uns com os outros - para especificarem as dependências funcionais. Uma dependência funcional especifica uma restrição sobre os estados possíveis de um banco de dados. As extensões do banco de dados que satisfazem as restrições de dependência funcional são denominadas extensões legais. Portanto, no modelo relacional, o principal uso das dependências funcionais é descrever uma relação especificando restrições sobre seus atributos que devem sempre ser satisfeitas. O diagrama de classes da UML é constituído de estruturas poderosas para a construção de bons esquemas conceituais, no entanto, não possui uma definição precisa para as restrições de dependência funcional desses esquemas. A seguir propomos uma definição formal para restrições de dependência funcional que, além de especificarem as restrições entre os atributos de uma classe (relacionamentos intra-classe), também consigam capturar os relacionamentos entre as classes (relacionamentos interclasse). Definição 4: (Dependência Funcional) Seja C uma classe de S e p 1, p 2,..., p n, q propriedades de C. A dependência funcional C[p 1, p 2,..., p n fi q] especifica que para quaisquer instâncias c 1 e c 2 de C, se c 1.p i = c 2.p i, 1 i n, então c 1.q c 2.q. 3.3 Restrição de Dependência Existencial (DE) As restrições de dependência existencial (DEs) permitem expressar formalmente a equivalência semântica de conceitos correspondentes representados de maneiras diferentes. A seguir, definimos formalmente os dois tipos de dependência existencial. Definição 5:(DE de Subconjunto) Sejam C 1 e C 2 classes, p 1, p 2,..., p n propriedades de C 1 e q 1, q 2,..., q n propriedades de C 2. A restrição de DE C 1 [p1, p 2,..., p n ] C 2 [q 1, q 2,..., q n ] especifica que para qualquer instância c 1 de C 1 existe uma instância c 2 de C 2 tal que c 1.p i = c 2.q i, 1 i n. Definição 6: (DE de Equivalência) Sejam C 1 e C 2 classes, p 1, p 2,..., p n propriedades de C 1 e q 1, q 2,..., q n propriedades de C 2. A restrição de DE C 1 [p 1, p 2,..., p n ] C 2 [q 1, q 2,..., q n ] especifica que C 1 [p 1, p 2,..., p n ] C 2 [q 1, q 2,..., q n ] e C 2 [q 1, q 2,..., q n ] C 1 [p 1, p 2,..., p n ]. 4 CONCLUSÕES Durante a modelagem conceitual, o projetista deve compreender, estruturar e representar a semântica do mundo real através de um modelo de dados de alto nível, de modo que esses aspectos possam ser incorporados a um sistema de informação e representem as necessidades dos usuários e 6 R. Cient. Fac. Lour. Filho - v.2, n.1, 2002

aplicações de forma natural e direta. Erros introduzidos em um esquema conceitual podem se estender para as próximas fases do projeto do banco de dados, tornando-se cada vez mais caros e difíceis de serem removidos. Construir um bom esquema requer bastante cuidado e um entendimento detalhado do domínio e restrições da aplicação a ser modelada para que esta possa ser representada de forma clara e precisa. A principal contribuição deste trabalho foi a formalização do significado dos construtores do modelo de objetos da UML para que estes pudessem ser usados adequadamente na extensão do modelo de objetos da UML para incluir as restrições de chave, dependência funcional e dependência existencial. A motivação para o desenvolvimento desse estudo foi encontrada na ineficácia existente nas atuais práticas de modelagem conceitual com a UML, quando aplicadas a situações específicas do mundo real. Nosso estudo tomou como ponto de partida trabalhos realizados para a modelagem conceitual dos dados envolvendo o uso do modelo de dados ER, apesar do diagrama de classes ser bem mais abrangente que o diagramaer. É importante ressaltar que a formalização resultante deste trabalho foi aplicada no desenvolvimento de uma metodologia para integração de visões modeladas com a UML [6]. Como trabalhos futuros, pretendemos incorporar o catálogo de padrões desenvolvido a um tutorial para ensino do processo de integração de visões utilizando o diagrama de classes da UML. Esse tutorial possibilitará, através de exemplos, questionamentos e textos explicativos, o aprendizado de forma didática de importantes técnicas de modelagem conceitual, auxiliando os projetistas de banco de dados no desenvolvimento de projetos conceituais consistentes, mesmo em situações não facilmente capturadas por um esquema conceitual. 5 REFERÊNCIASBIBLIOGRÁFICAS [1] VIDAL,Vânia Maria P. ; MARINHO, Fabiana G. O Uso de Padrões na Integração de Visões Modeladas com UML. SugarloafPLoP, 2002. [2] UML Notation Guide. Rational Software Corporation, Santa Clara, CA,1997. Version 1.1. Disponível em: <www.rational.com.>. [3] FURLAN, José Davi. Modelagem de Objetos Através da UML. Análise e Desenho Orientados a Objeto. Makron Books,1998. [4] FOWLER, Martin. Analysis Patterns. Reusable Object Models. Object Technology Series. Addison-Wesley, 1997. [5] ELMASRI, Ramez ; NAVATHE, Shamkant B. Fundamentals of Database Systems. 3. ed. Addison-Wesley, 2000. [6] MARINHO,Fabiana Gomes. Padrões para Integração de Visões Modeladas com UML. Dissertação de Mestrado, Universidade Federal do Ceará, 2001. R. Cient. Fac. Lour. Filho - v.2, n.1, 2002 7