CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 1 IN1008 – Projeto Conceitual de BD Diagramas UML para Modelagem de dados Por: David Emmanuel [email protected] CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 2 Roteiro • Motivação • Objetivos • História da UML • Conceitos importantes • Arquitetura da UML • Diagramas UML • UML Profile Data Modeling • Referências CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 3 Motivação [1] [2] • Unificação de todos os modelos do sistema (de aplicação a banco de dados) em torno de uma única linguagem, que pode ser compartilhada por todos os envolvidos no desenvolvimento do sistema (analistas, programadores, DBAs, etc) • Permite diferentes tipos de modelagem, incluindo modelos para processos de negócio, fluxo de eventos, aplicações, arquiteturas e banco de dados • O histórico evolutivo da especificação UML procura criar mecanismos de extensibilidade para atender requisitos de domínios específicos; CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 4 Objetivos [1] [2] [3] • Facilitar a comunicação de todas as pessoas envolvidas no processo de desenvolvimento de um sistema • Representar sistemas de softwares sob diversas perspectivas • Ser independente de qualquer linguagem de programação • Ser uma linguagem de modelagem visual expressiva, relativamente simples, e extensível • Explorar as capacidades introduzidas na UML, com o uso de perfis (profiles), para atendimento das necessidades de modelagem de dados; CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 5 História da UML [4] [5] • As linguagens de modelagem orientadas a objetos surgiram entre a partir da metade da década de 70 • A quantidade de métodos orientados a objetos passou de pouco mais de 10 para mais de 50 no período de 1989 a 1994 • Muitos destes métodos tiveram dificuldades para encontrar uma linguagem de modelagem capaz de atender inteiramente suas necessidades • Destacaram-se alguns métodos: Método OMT – Object Modeling Technique (James Rumbaugh) • Focado Análise e sistemas de informações com uso de dados Método Booch (Grady Booch) • Permite a especificação de classes , objetos e interações Método OOSE - Object Oriented Software Engeneering (Ivar Jacobson) • Suporte a captura de requisitos através de UseCases CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 6 História da UML [4] • Na metade da década de 90 Booch (Rational Software Corporation), Jacobson (Objectory) e Rumbaugh (General Eletrics) partiram para a criação de uma linguagem unificada de modelagem • Usando técnicas orientadas a objeto criariam uma linguagem que iria desde o conceito até o sistema executável • Podendo ser utilizada por homens e máquinas, não somente para criar sistemas complexos como também sistemas menores e outros problemas que não fossem sistemas de informação. • A criação da UML iniciou oficialmente em outubro de 1994 quando Rumbaugh se juntou a Booch na Rational, com foco inicial na junção dos métodos Booch e OMT. • O esboço da versão 0.8 do Método unificado foi lançado em outubro de 1995, mesma época em que Jacobson se associou a Rational tentando incorporar o OOSE ao método. CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo História da UML [4] • Após a versão 0.8 a integração do método OOSE ao método unificado ocorreu, resultando no lançamento da versão 0.9 da UML em junho de 1996 • Esse método foi então aprovado pela comunidade de engenharia de software em geral • O método despertou o interesse das empresas que criaram um consórcio com investimento de recursos tendo o propósito de trabalhar uma definição mais forte e completa da UML. • Com isso foi definida a versão 1.0 da UML contando com o apoio destas empresas: Oracle, IBM, Unisys Microsoft, Rational, Intellicorp,Texas Instrument, HP I-Logix, ICON Computing e MCI Systemhouse CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo História da UML [4] • Em janeiro de 1997, com uma linguagem de modelagem bem definida expressiva, poderosa e que poderia ser aplicada a uma grande variedade de projetos a UML foi oferecida a OMG (Object Management Group). • De janeiro a julho de 1997 estas empresas se uniram ao grupo: Andersen Consulting, Ericson, Object Time Limited, Platinum Technology, Ptech, Recih Technologies, Softeam, Sterling e Taskon • Um grupo liderado por Cris Kobryn (MCI SystemHouse) e administrado por Ed Eykholt (Rational) foi formado com o propósito de formalizar a especificação da UML e de integrar alinguagem com outros esforçoes de padronização. • A versão 1.1 foi entregue a OMG em julho de 1997, em setembro foi aceita pelo Architecture Board da OMG, sendo logo após submetida a votação de todos os membros • Em 14 novembro de 1997 a versão 1.1 foi adotada pela OMG CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo História da UML [4] [5] [6] [7] • Após ter sido adotada como padrão pela OMG a manutenção da UML foi então assumida pela RTF (Revision Task Force) da OMG, sob a responsabilidade de Cris Kobryn. • A RTF lançou uma versão editorial, a UML 1.2 em junho de 1998 • No final do mesmo ano a RTF lançou a UML 1.3 • A UML está em contínuo desenvolvimento, depois da versão 1.3 surgiram a UML 1.4 em 2001, em março de 2003 a UML 1.5, em agosto do mesmo ano a UML 2.0 e em novembro de 2007 a UML 2.1 • Por último a UML 2.2 lançada em fevereiro de 2009 em que está organizada em 2 volumes, o Infrastructure UML e o Superstructure UML CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Conceitos importantes [2] • MetaModelagem – técnica de criação de metamodelos. • Modelagem – arte e ciência de criar modelos de uma determinada realidade. • MetaModelo – modelos que descrevem artefatos e as regras para um modelo. • Modelo – consiste na interpretação de um dado domínio do problema (fragmento do mundo real sobre o qual as tarefas de modelagem incidem). • Esquema – especificação de um modelo usando uma determinada linguagem, formal ou informal, textual ou gráfica. • Diagrama – representação gráfica do esquema. CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 11 Arquitetura da UML [8] • Arquitetura de 4 níveis da OMG: Camada Descrição Exemplo M3 Metametamodelo Define a linguagem para especificar metamodelos MOF MetaClass, MetaAttribute, MetaOperation M2 Metamodelo Instância de um metametamodelo. Define a linguagem para especificar um modelo. UML e CWM Class, Property, Operation, Component M1 Modelo Instância de um metamodelo, Define a linguagem para definir um domínio da informação. Modelos de domínio específico. Ex.: Modelo de locadora. M0 Objeto do Usuário – dados do usuário Instância de um modelo. Define os valores de um domínio específico. Instâncias do modelo locadora, objetos. Ex.: Locacao # 0123, DVD ... CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 12 Arquitetura da UML [8] • Exemplo da Arquitetura de 4 níveis da OMG CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 13 Arquitetura da UML [8] • UML 2.2: Pacotes do volume Infrastructure: A especificação da UML 2.2 está organizada em dois volumes: • Infrastructure • Superstructure (próximo slide) Pacotes do CORE: Metalinguagem CORE para reuso na definição de metamdelos, incluindo MOF, UML e CWM. Criação de novas línguas baseado no mesmo core de metalinguagem como UML. Metamodelo no núcleo da arquitetura MDA. CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 14 Arquitetura da UML [8] • UML 2.2: Pacotes de alto nível do pacote Superstructure: Superstructure • Estende e personaliza a Infrastructure para definir o metamodelo UML. • Define os elementos que compõem as notações de modelagem da UML, criadas pela extensão e acréscimo dos elementos básicos definidos na Infrastructure. CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 15 Diagramas UML [5] [9] • Diagramas são os meios utilizados para visualização dos blocos de construção da UML • São representações gráficas de um conjunto de elementos • Permitem visualizar o sistema sob diversas perspectivas • Dividem-se em dois tipos Diagramas Estruturais • Definem os elementos do sistema e seus relacionamentos Diagramas Comportamentais • Definem a funcionalidade do sistema, ou seja a interação entre seus elementos CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Diagramas UML [11] • Diagramas Estruturais Diagrama de Classes • Define os elementos básicos de um modelo: os tipos, as classes, as interfaces e os relacionamentos entre eles. CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Diagramas UML [11] • Diagramas Estruturais Diagrama de Objetos • Similar ao diagrama de classes porém sua principal diferença é que ele apresenta atributos com valores • Corresponde a uma instância do diagrama de classes, mostrando o estado de um sistema em um determinado ponto do tempo CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Diagramas UML [11] • Diagramas Estruturais Diagrama de Implantação • Mostra a configuração dos elementos de processamento em tempo de execução, além dos componentes, processos e objetos existentes no sistema CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Diagramas UML [11] • Diagramas Estruturais Diagrama de Componentes • Apresenta as dependências entre componenetes de software, incluindo implementação de classes, arquivos de código fonte, arquivo de código binário, arquivos executáveis e scripts CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Diagramas UML [5] [11] • Diagramas Comportamentais Diagrama de Caso de Uso • Modela as interações entre o usuário e o sistema, definindo o comportamento, as exigências e o resultado esperado de uma funcionalidade CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Diagramas UML [12] • Diagramas Comportamentais Diagrama de Estado • Demonstra todos os possíveis estados de um objeto, como esses estados mudam (transições) e como os objetos respondem aos eventos CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Diagramas UML [12] • Diagramas Comportamentais Diagrama de Sequência • Mostra as interações entre os objetos a partir de um evento disparado pelo usuário em forma de linha do tempo CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Diagramas UML [9] • Diagramas Comportamentais Diagrama de Comunicação • É focado na organização estrutural dos objetos que enviam e recebem mensagens CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo Diagramas UML [11] • Diagramas Comportamentais Diagrama de Atividade • É uma variação do diagrama de estados, representa a execução das ações e as transições que são acionadas pela conclusão de outras atividades CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Proposto por Scott Ambler O primeiro elemento que deve ser especificado é o tipo de modelo que está sendo elaborado Isto pode ser feito através de um texto descritivo em um elemento Nota da UML ou através de um estereótipo CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • No caso do modelo físico de dados, pode-se também definir o tipo de armazenamento CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Tabelas de um banco de dados são definidas através de Class Boxes • Estas são divididas em três seções Seção 1 • Nome da tabela e estereótipo associado abaixo Seção 2 • Colunas da tabela com especificação do seu tipo de dados • Estereótipo também devem ser associados para definir o tipo de chave ou restrição do atributo Seção 3 • Definição dos triggers associados às tabela CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Exemplo de representação de uma tabela e seus componentes de acordo com o Profile CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Class boxes também são utilizadas na representação de Views • Deve ser levado em conta o emprego obrigatório do estereótipo <<View>>, cuja finalidade é facilitar a distinção entre as tabelas, pois nestas o uso do estereótipo <<Table>> é opcional CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • A representação de índices também é feita através de Class Boxes • Deve-se nomear o índice na primeira seção do Class box e empregar o estereótipo <<Index>> • A dependência com relação a coluna que compõe o um índice pode ser expressa de 2 modos Descrevendo a coluna de dependência na segunda seção do Class Box e fazendo uma ligação com a tabela Fazendo uma ligação de dependência entre o Class Box que representa o índice e conectá-lo diretamente na tabela que é utilizada para a formação do índice CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Índice representado das duas maneiras possíveis CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Da mesma maneira que os elementos anteriores as Stored Procedures também são representadas através de Class Boxes • Na primeira seção do Class Box deve ser informado um nome para a Stored Procedure e também deve ser empregado o estereótipo <<Stored Procedures>> • A próxima seção é utilizada para descrever a lista de Stored Procedures ou funções, sendo que devem ser especificados os parâmetros de entrada e o tipo de retorno gerado CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Exemplo de uma Stored Procedure de acordo com o perfil proposto por Scott Ambler CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Lista de estereótipos que podem ser utilizados no modelo físico de dados em associação com o elemento Class Box da UML CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 35 UML Profile Data Modeling [10] • A representação das chaves de uma tabela é feita através de estereótipos e também por intermédio de tagged values • Os estereótipos são utilizados para definir o tipo de chave • Tagged Values são conjuntos definidos por expressões do tipo “nome = valor” • As tagged values são utilizadas para aumentar o nível de detalhamento das chaves da tabela informando seu tipo e como é feita a sua composição • A composição de uma chave é feita através da especificação da sua ordem CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Exemplo de representação de chaves com estereótipos e Tagged Values CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] • Analisando a figura anterior conclui-se que a composição das chaves pode ser expressa conforme a tabela a seguir CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 39 UML Profile Data Modeling [10] • Os relacionamentos entre tabelas, também chamados de associações, são representadas por linhas sólidas entre as mesmas • Este profile define uma série de estereótipos que podem ser utilizados durante a modelagem, porém, o próprio autor recomenda a utilização da representação visual dos mesmos sempre que possível CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo UML Profile Data Modeling [10] CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 41 UML Profile Data Modeling [10] • A especificação de restrições é feita com a utilização da OCL (Object Constraint Language) • A OCL é uma linguagem declarativa através da qual são feitas as descrições de regras que se aplicam aos modelos CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 42 Referências • [1] Diagramas UML para modelagem de Dados – Clarissa Borba e Fabrício Cabral • [2] Diagramas UML para modelagem de Dados – Érick Gomes • [3] http://www.axpert.com.br/tecnologia/uml/uml.html • [4] http://imasters.uol.com.br/artigo/2994/uml/historico_da_uml/ • [5] http://www.inf.pucrs.br/~toacy/disciplinas/grad/es-aulas/03 IntroducaoUML.pdf • [6] http://paginas.fe.up.pt/~ei02084/artigo.pdf • [7] http://www.omg.org/spec/UML/2.1.2/ • [8] http://www.omg.org/docs/formal/07-11-04.pdf • [9] http://www.unesp.br/gs/treinamento/graduacao/CursoUML-Diagramas.pdf • [10] UML Data Modeling Profile – TC de Felipe Dalle Molle UFRGS • [11]http://www.plugmasters.com.br/sys/materias/476/1/UML---Que-raios-%E9isso%3F • [12] http://www.inf.ufrgs.br/procpar/disc/cmp167/trabalhos/sem2001-1/T1/alex/ CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 43 CIn/UFPE – IF696 - Integração de Dados e DW - Prof. Robson Fidalgo 44