Viviane Cristina Dias Proposta de um Framework Conceitual de Dados e Padrões de Análise para a Definição de um Banco de Dados em Qualidade da Energia Elétrica Dissertação apresentada ao Programa de Pós-Graduação em Engenharia Elétrica, da Pontifícia Universidade Católica de Minas Gerais, como requisito parcial para obtenção do Grau de Mestre em Engenharia Elétrica. Linha de Pesquisa: Inteligência Computacional e Sistemas Distribuídos – ICSD Orientador: Prof. Dr. Carlos Alberto Marques Pietrobon Co-Orientador: Prof. Dr. Mário Fabiano Alves Belo Horizonte Pontifícia Universidade Católica de Minas Gerais 2004 II “Feliz aquele que transfere o que sabe e aprende o que ensina” (Cora Coralina) III Agradecimentos À Fundação Capes; Ao Coordenador do Programa de Pós-Graduação em Engenharia Elétrica, Prof. Dr. Carlos A . P. S. Martins . Aos professores Dr. Carlos A. M. Pietrobon e Dr. Mário F. Alves, pelos sábios conselhos, disponibilidade e dedicada orientação; Ao Grupo de pesquisa Gerquali pela disponibilização dos dados, em especial ao Délio; Aos professores do PPGEE, pela partilha do conhecimento; Às amigas Juliana, Claudete e Viviane F. pelo companheirismo e incentivo nesta jornada; À Isabel Sirqueira e Isabel Novais pelo atendimento cordial; Ao Geraldo por seu amor, incentivo, paciência e compreensão; Aos meus pais, Antonio e Geralda, pelo carinho, compreensão nos momentos de ausência e pela formação que recebi; Aos meus irmãos Nilton, Antonio e Elaine pela amizade; A Deus, fonte de toda a vida e guia do melhor caminho. IV Resumo A monitorização da Qualidade da Energia Elétrica associada a correta organização e utilização da informação resultante, fornece meios para auxiliar no planejamento, na operação e no projeto de sistemas de transmissão e distribuição de energia elétrica. A grande quantidade de dados aquisitados em monitorizações de sistemas elétricos deve ser armazenada em um banco de dados que possibilite uma diversidade de formas de recuperação destes dados, a fim de inferir padrões de ocorrência de problemas de Qualidade da Energia Elétrica. Este banco de dados deve ser bem estruturado e fácil de ser projetado por engenheiros eletricistas. Este trabalho apresenta uma proposta do uso de um Framework Conceitual e padrões de análise para QEE, aplicáveis as etapas de requisitos e modelagem conceitual de um banco de dados para QEE visando facilitar o uso de técnicas de orientação a objetos através do reuso de padrões. V Abstract Power Quality monitoring associated with the correct storing an use of the resulting information, provides a powerful way for planning, operating and designing transmission and distribution power systems. The enormous quantity of data resulting from monitoring should be stored in database designed for flexibility of data retrieval, such as to allow inference into power quality problems occurrence patterns. This database should be well structured and easy to be designed by power system engineer This work presents a proposal of the use of a Framework Conceptual and analysis patterns for PQ, applicable to the early stages of the database development (requirements and conceptual model). The maim purpose is to facilitate the use of objects orientation techniques through the reuse of patterns. VI Sumário 1 INTRODUÇÃO.................................................................................................................................... 13 1.1 1.2 1.3 1.4 2 MOTIVAÇÃO .................................................................................................................................. 13 OBJETIVOS .................................................................................................................................... 16 METODOLOGIA.............................................................................................................................. 17 ORGANIZAÇÃO DA DISSERTAÇÃO ................................................................................................. 18 REVISÃO DA LITERATURA ........................................................................................................... 20 2.1 A QUALIDADE DA ENERGIA ELÉTRICA.......................................................................................... 20 2.1.1 Distúrbios Eletromagnéticos ................................................................................................... 21 2.1.1.1 2.1.1.2 2.1.1.3 Transientes .................................................................................................................................... 23 Variações de Tensão ..................................................................................................................... 24 Harmônicos ................................................................................................................................... 25 2.1.2 Parâmetros de Referência para Análise da Qualidade da Energia Elétrica........................... 26 2.1.3 Sistema de Informação para Qualidade da Energia Elétrica.................................................. 27 2.2 INSTRUMENTOS DE REUTILIZAÇÃO ............................................................................................... 28 2.2.1 Reutilização de Especificações de Requisitos.......................................................................... 30 2.2.2 Padrões.................................................................................................................................... 31 2.2.3 Padrões de Projeto .................................................................................................................. 34 2.2.4 Padrões de Análise .................................................................................................................. 38 2.2.5 Framework .............................................................................................................................. 41 2.2.5.1 2.3 2.4 2.5 2.5.1 2.5.2 2.6 2.6.1 Framework x Padrões de Projeto................................................................................................... 47 QUALIDADE DE ENERGIA ELÉTRICA E APOIO COMPUTACIONAL ................................................... 49 UML - LINGUAGEM DE MODELAGEM UNIFICADA ........................................................................ 54 LINGUAGENS DE MARCAÇÃO ........................................................................................................ 60 Características da XML........................................................................................................... 61 XML como intercâmbio de Informações.................................................................................. 63 MODELO DE DADOS ...................................................................................................................... 64 Modelagem Conceitual de Banco de Dados............................................................................ 66 3 MODELAGEM CONCEITUAL DE DADOS PARA SISTEMAS DE INFORMAÇÃO DA QUALIDADE DA ENERGIA ELÉTRICA................................................................................................. 68 3.1 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3 3.4 4 REQUISITOS DE MODELAGEM CONCEITUAL PARA SIQEE............................................................. 69 PADRÕES DE ANÁLISE DE QEE ..................................................................................................... 71 Padrão Local de Monitorização.............................................................................................. 73 Padrão Equipamento de QEE ................................................................................................. 75 Padrão Ajuste dos Equipamentos de QEE .............................................................................. 76 Padrão Eventos em um Sistema Elétrico................................................................................. 77 Padrão Normas e Organizações.............................................................................................. 78 Padrão Ocorrências de Campo ............................................................................................... 79 METODOLOGIA DE DESENVOLVIMENTO DE FRAMEWORKS ........................................................... 80 FRAMEWORK QEE_FRAME ........................................................................................................... 84 AMBIENTE DE DESENVOLVIMENTO DE SOFTWARE (ADS) ............................................... 89 4.1 4.2 4.3 4.4 TEORIA DO DOMÍNIO ..................................................................................................................... 89 ONTOLOGIA .................................................................................................................................. 91 ONTOLOGIA E BASE DE CONHECIMENTO....................................................................................... 93 AMBIENTES DE DESENVOLVIMENTO DE SOFTWARE ORIENTADO A DOMÍNIO (ADSOD) .............. 94 5 AMBIENTE DE DEFINIÇÃO DE UM BANCO DE DADOS PARA QUALIDADE DE ENERGIA ELÉTRICA................................................................................................................................. 96 5.1 5.2 5.3 6 MÓDULO GRÁFICO ........................................................................................................................ 98 MÓDULO DICIONÁRIO DE DADOS ............................................................................................... 105 MÓDULO GERAÇÃO AUTOMÁTICA .............................................................................................. 106 APLICAÇÃO: CASOS EXEMPLO................................................................................................. 108 6.1 A TEORIA DO DOMÍNIO ............................................................................................................... 108 6.1.1 Identificação do Propósito .................................................................................................... 108 VII 6.1.2 Definição ............................................................................................................................... 109 6.2 CASO 1- SISTEMA DE GERENCIAMENTO DA QUALIDADE DA ENERGIA ELÉTRICA. ...................... 110 6.2.1 Edição da Teoria do Domínio ............................................................................................... 110 6.2.2 Edição da Sub-teoria ............................................................................................................. 110 6.2.3 Edição de Conceitos .............................................................................................................. 111 6.2.4 Integração do Framework Conceitual com os Padrões de Análise....................................... 112 6.2.5 Conversão do Diagrama de Classes em DTD ....................................................................... 113 Temos então o arquivo .DTD gerado como pode ser visto no Apêndice C.......................................... 114 6.2.6 Mapeamento da DTD para um SGBD relacional.................................................................. 114 6.3 CASO 2- CARACTERIZAÇÃO DA SENSIBILIDADE DE PROCESSOS INDUSTRIAIS FRENTE A AFUNDAMENTOS DE TENSÃO .................................................................................................................... 119 6.3.1 Edição da Teoria do Domínio ............................................................................................... 119 6.3.2 Edição da Sub-teoria ............................................................................................................. 120 6.3.3 Edição de Conceitos .............................................................................................................. 120 6.3.4 Integração do Framework Conceitual com os Padrões de Análise....................................... 121 6.3.5 Conversão do Diagrama de Classes em DTD ....................................................................... 122 6.3.6 Mapeamento da DTD para um SGBD relacional.................................................................. 122 7 CONCLUSÕES.................................................................................................................................. 123 7.1 7.2 CONTRIBUIÇÕES DA DISSERTAÇÃO .............................................................................................. 124 TRABALHOS FUTUROS ................................................................................................................ 125 8 REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................................. 127 9 APÊNDICES ...................................................................................................................................... 133 VIII Lista de Figuras Figura 2.1: Distúrbios de tensão típicos, idealizados [FER99]. .......................................... 22 Figura 2.2: Ilustra o diagrama de classes do padrão de projeto Composite [GAM95]........ 35 Figura 2.3: Diagrama de Classes do Padrão Local de Monitorização................................. 41 Figura 2.4: Aplicação desenvolvida totalmente [SIL00]..................................................... 44 Figura 2.5: Aplicação desenvolvida reutilizando classes de biblioteca [SIL00]................. 44 Figura 2.6: Aplicação desenvolvida reutilizando um Framework [SIL00]......................... 44 Figura 2.7: Framework Caixa Branca. ................................................................................ 47 Figura 2.8: Framework Caixa Preta..................................................................................... 47 Figura 2.9: Notação gráfica do diagrama de classes UML. ................................................ 58 Figura 2.10: Código de uma página em HTML. ................................................................. 60 Figura 2.11: Código de uma página em XML..................................................................... 61 Figura 2.12: Estrutura de disponibilização de dados na Web.............................................. 64 Figura 3.1: Arquitetura de um Sistema de Informação para Qualidade da Energia Elétrica. ..................................................................................................................................... 70 Figura 3.2: Processo de captura e aplicação de padrões...................................................... 72 Figura 3.3: Processo de captura e aplicação de padrões de QEE. ....................................... 73 Figura 3.4: Diagrama de Classes do Padrão Local de Monitorização................................. 74 Figura 3.5: Diagrama de Classes do Padrão Equipamentos de QEE .................................. 75 Figura 3.6: Diagrama de Classes do Equipamento de QEE. ............................................... 76 Figura 3.7: Diagrama de Classes do Padrão Eventos em um Sistema Elétrico................... 77 Figura 3.8: Diagrama de Classes do Padrão Normas e Organizações................................. 79 Figura 3.9: Diagrama de Classes do Padrão Ocorrências de Campo. ................................. 80 Figura 3.10: As Etapas do Projeto Dirigido por Exemplo para o Desenvolvimento de um Framework................................................................................................................... 81 Figura 3.11: Etapas do Projeto Dirigido por Hot Spot para o desenvolvimento de um Framework. ................................................................................................................. 82 Figura 3.12: Ciclo de vida de Framewoks [SIL00]. ............................................................ 85 IX Figura 3.13: Ciclo de vida do Framework QEE-Frame. ..................................................... 86 Figura 3.14: Diagrama de classes do QEE_Frame. ............................................................. 86 Figura 5.1: Arquitetura do Ambiente de Definição de um Banco de Dados para Qualidade de Energia Elétrica. ..................................................................................................... 98 Figura 5.2: Modelo para edição da Teoria do Domínio. ................................................... 100 Figura 5.3: Inclusão da Teoria do Domínio....................................................................... 100 Figura 5.4: Inclusão da subteoria....................................................................................... 101 Figura 5.5: Inserir Padrão de Análise. ............................................................................... 101 Figura 5.6: Inserir Referências Bibliográficas................................................................... 102 Figura 5.7: Inserir Conceito............................................................................................... 102 Figura 5.8: Inserir Associação entre Teoria do Domínio e Sub-teoria.............................. 103 Figura 5.9: Inserir Associação entre Sub-teoria e Conceito. ............................................. 103 Figura 5.10: Inserir Associação entre Subteoria e Padrões de Análise. ............................ 104 Figura 5.11:Inserir O Framework Conceitual de acordo com a Teoria do Domínio......... 104 Figura 5.12: Visualização das Subteorias e a relação com os Padrões de Análise............ 105 Figura 5.13: Demonstrativo do uso da ferramenta Rational Rose para Conversão de Dados. ................................................................................................................................... 106 Figura 6.1: Integração do Framework Conceitual – QEE_Frame e Padrões de Análise para o Caso 1. .................................................................................................................... 113 Figura 6.2: Interface para definição da Linguagem de conversão do diagrama................ 114 Figura 6.3:Interface para geração do arquivo de dados no formato DTD......................... 114 Figura 6.4: Visualização da ferramenta XMLSPY............................................................ 115 Figura 6.5:Inclusão dos arquivos gerados. ........................................................................ 115 Figura 6.6:Conversão DTD/Shema. .................................................................................. 116 Figura 6.7:Demonstrativo das classes mapeadas............................................................... 116 Figura 6.8:Interface para alterações de tipos de dados...................................................... 117 Figura 6.9:Demonstrativo das tabelas que serão criadas no Microsoft Access................. 117 Figura 6.10: Demonstrativo do Script em SQL................................................................. 118 Figura 6.11:Seleção o SGBD que será utilizado. .............................................................. 118 X Figura 6.12:Tabelas criadas no Microsoft Access............................................................. 119 Figura 6.13 : Integração do Framework Conceitual – QEE_Frame e Padrões de Análise para o Caso 2. ............................................................................................................ 122 Figura 9.1: Seleção da Teoria do Domínio........................................................................ 145 Figura 9.2: Seleção da Subteoria. ...................................................................................... 145 Figura 9.3: Interface para definição da Linguagem XML - DTD ..................................... 147 Figura 9.4: Geração do documento .DTD ......................................................................... 147 Figura 9.5: Demonstrativo da Criação do Projeto e Inclusão do Arquivo .DTD .............. 151 Figura 9.6: Demonstrativo do resultado da conversão para DTD/Shema. ........................ 152 Figura 9.7: Demonstrativo do ajuste nos tipos dos dados. ................................................ 152 Figura 9.8: Interface para a escolha do SGBD utilizado. .................................................. 153 Figura 9.9: Definição das Chaves Primárias. .................................................................... 153 Figura 9.10: Visualização das Tabelas que serão Criadas................................................. 153 Figura 9.11: Banco de Dados Criado com suas respectivas Tabelas................................. 154 XI Siglas ADSOD - Ambientes de Desenvolvimento de Software Orientados a Domínio ADS - Ambientes de Desenvolvimento de Software ANEEL - Agência Nacional de Energia Elétrica ANSI - American National Standars Institure CASE - Computer-aided Software Engineering CBEMA - Computer and Business Equipment Manufacturers Association CICRE - Conference Internatioanledes Gands Réseux Eletriques à Haute Tesion HTML - Hypertext Markup Language IEC - International Eletrotechnical Commission IEEE - Institute of Electrical and Electronics Engineers ITI - Information Technology Industry Council ONS - Operador Nacional do Sistema Elétrico OOAD - Object Oriented Analysis and Design QEE - Qualidade da Energia Elétrica SGBD - Sistema Gerenciador de Banco de Dados SGML - Standard Generalized Markup Language SGQEE - Sistema de Gerenciamento da Qualidade da Energia Elétrica SIQEE - Sistema de Informação da Qualidade da Energia Elétrica UML - Unified Modeling Language XML - Extensible Markup Language XII 1 Introdução Este capítulo introduz o trabalho proposto, apresentado a motivação, os objetivos, e a metodologia utilizada, bem como uma descrição da forma como essa dissertação está organizada. 1.1 Motivação Sistemas de Informação para Qualidade da Energia Elétrica (SIQEE) são sistemas computacionais que permitem a captura, armazenamento, manipulação, recuperação, análise e apresentação dos dados relativos a Qualidade da Energia Elétrica (QEE). Esses dados são constituídos por informações sobre os locais de monitorização, os fenômenos eletromagnéticos monitorados, valores de referência (curvas, limites de norma, etc), parâmetros de ajuste dos equipamentos de medição, dentre outros. Os SIQEE manipulam uma grande quantidade de Informações, exigindo que se trabalhe com banco de dados bem estruturados, moldados para atender as especificidades impostas pelas características dos fenômenos envolvidos, e pelos objetivos dos resultados a serem alcançados, de forma a possibilitar uma análise eficiente sobre a qualidade da energia elétrica. Em [ALV00] podemos verificar alguns objetivos que motivam pesquisas de qualidade da energia elétrica: • Observância de limites impostos por legislação específica; • Obtenção de informações estatísticas para fins diversos; • Monitorização do sistema elétrico, objetivando a garantia da qualidade da energia elétrica e o diagnóstico de falhas; • Monitorização dos sistemas elétricos industriais, objetivando diagnósticos e a garantia de operação de equipamentos dentro de limite especificados pelos seus fabricantes. 13 O gerenciamento da informação sobre a QEE exige a utilização de ferramentas computacionais apropriadas como por exemplo o uso de um SGBD [AGO00], [DIA01], [ALV00], [NET01], [FER01], [MED03], entre outros. Dependendo do número de locais de monitorização, do período de monitoramento e do tipo de fenômeno eletromagnético monitorado, a monitorização da qualidade da energia elétrica pode gerar gigabytes de dados [DAB95]. Considerando estas características e as necessidades de tratamento da informação, a adoção de um SGBD1 em muitos casos se faz necessário, como pode ser visto em [DAB95], [FER99], [VIV01], [SAN02], [CRU03], [MED03], [ROM03]. No entanto, técnicas de projeto de banco de dados que são usados com sucesso em aplicações de outros domínios, não têm sido adequadamente empregadas pela comunidade de projetistas de aplicações de Qualidade da Energia Elétrica. Isso é decorrente de alguns fatores, os quais podemos citar: • as aplicações de SIQEE são projetadas e desenvolvidas, muitas vezes, pelos próprios usuários, os quais, normalmente, não possuem formação em computação. Em geral esses profissionais não se preocupam com a modelagem conceitual do banco de dados a ser utilizado pela sua aplicação, ou utilizam alguma ferramenta que já disponibiliza um modelo para o armazenamento de dados, que muitas vezes é ineficiente ao objetivo projetado pelo usuário; • Inexperiência por parte desses projetistas que lidam com QEE, em relação ao uso de metodologias de desenvolvimento de sistemas. • Essa inexperiência tem resultado em alguns casos na construção de sistemas com limitações de uso como: redundância de dados, inconsistência de dados, etc. Atualmente, as aplicações de SIQEE estão sendo desenvolvidas, em sua grande maioria, pelas concessionárias, que têm grande interesse comercial neste tipo de sistema, e pelas comunidades acadêmicas, sendo em alguns casos através de parceria entre essas instituições. Apesar da relevância do assunto, constata-se que existem poucos trabalhos relacionados a projeto de banco de dados para QEE. Atualmente, quem deseja projetar um 1 Sistema Gerenciador de Banco de Dados 14 SIQEE que use um SGBD começará do zero, tendo que passar por todas as fases do projeto de sistemas, o que demanda tempo do projetista e um alto conhecimento relativo aos fenômenos que caracterizam a QEE e, conseqüentemente, aos dados envolvidos. Neste sentido, os especialistas têm procurado na Engenharia de Software novos paradigmas e ferramentas de desenvolvimento de software. O incremento nos custos de desenvolvimento e manutenção, o aumento da demanda por informatização na sociedade e a maior complexidade das novas aplicações têm gerado desafios no processo de desenvolvimento de sistemas de informação. Os métodos clássicos para o desenvolvimento de software não têm sido bem sucedidos em apoiar esse novo paradigma de desenvolvimento. Portanto a orientação a objetos tem surgido como um poderoso instrumento para o desenvolvimento de sistemas, principalmente em relação ao conceito de reutilização. Existem algumas propostas para possibilitar a reutilização aceitas na área de orientação a objetos, dentre elas podemos citar o uso de padrões e Frameworks para domínios específicos que poderiam ser instanciados para produzir novos produtos de domínio. A reutilização de software tem sido considerada para diminuir os custos de desenvolvimento e manutenção bem como gerar produtos de melhor qualidade, por estar fazendo uso de um software já desenvolvido, testado e validado. Em Engenharia Elétrica no que diz respeito a SIQEE, são pouco explorados os benefícios da orientação objeto, bem como o reuso. Por outro lado essa técnica mostra-se interessante visto que estaremos reutilizando a experiência adquirida por outros projetistas, possibilitando desta forma iniciar um SIQEE baseado em projetos anteriores. Usando as técnicas propostas pela Engenharia de Software durante a fase de análise, poderemos definir requisitos para um SIQEE bem como a modelagem conceitual dos dados para este sistema. Uma forma de prover o reuso de análise e projeto para banco de dados para QEE é definir um meio de disponibilização dos dados. Como os usuários que lidam com QEE estão dispersos em lugares geograficamente distantes a disponibilização destes dados na Web é um meio interessante, uma vez que eles poderão tratar os dados e adequá-los a seus projetos específicos de banco de dados para QEE. Para facilitar essa troca de informações 15 na Web pode-se fazer o uso da XML (Extensible Markup Language), que atualmente está sendo considerada como um padrão de transferência de dados via Web. 1.2 Objetivos O objetivo principal desta dissertação é propor um Framework Conceitual de Dados para Sistemas de Informação para Qualidade da Energia Elétrica (SIQEE). Dentre os objetivos específicos podemos citar: • definir padrões de análise, que permitam aos projetistas de um determinado domínio de aplicação modelar fenômenos de Qualidade de Energia Elétrica e seus relacionamentos. • Disponibilização de dados de projeto de banco de dados na Web em um formato padrão(XML) de forma que possam ser mapeados para diversos fornecedores de banco de dados; • Definir uma arquitetura para um ambiente de definição de um banco de dados para QEE que facilite o trabalho de pessoas experientes e não experientes no desenvolvimento de banco de dados. Uma das características desta pesquisa é a busca por uma solução que possa ser utilizada, não só por especialistas em projetos computacionais mas, pelos próprios usuários de SIQEE. Este é o papel do ambiente ADEBDQEE, onde faremos o uso de técnicas de engenharia de software, associada ao conhecimento e correta conceituação das questões envolvendo a qualidade da energia elétrica, a fim de atender a requisitos de eficiência e qualidade em ambas as áreas. Como o objetivo principal deste trabalho é propor um Framework Conceitual de Dados para SIQEE, não iremos tratar da fase de pós-processamento de dados, uma vez que essa fase pode ser implementada de acordo com as necessidades específicas de cada sistema para QEE. 16 1.3 Metodologia A metodologia desse trabalho consistiu em um estudo bibliográfico, seguido da elaboração de uma proposta de um Framework Conceitual de Dados e Padrões de Análise para a definição de um banco de dados para QEE descritos em UML. Inicialmente, o trabalho envolveu um levantamento bibliográfico em artigos de instituições, publicações especializadas, documentações técnicas e normas ou recomendações relativas ao gerenciamento da qualidade da energia elétrica, bem como a utilização de banco de dados. A seguir, foi necessário o levantamento bibliográfico sobre Frameworks, Padrões de Projeto e Análise na literatura existente sobre Engenharia de Software. Esse levantamento foi importante para caracterizar os Frameworks e Padrões de Análise como instrumentos apropriados à reutilização. A terceira etapa consistiu em um levantamento bibliográfico indicando os aspectos relacionados a Engenharia Elétrica, mais especificamente a QEE e a Ciência de Computação, considerando a Engenharia de Software. Esse levantamento foi importante para caracterizar a existência a computação, apoiando as atividades ligadas a QEE, dentre esses aspectos foi observado a utilização de técnicas de reuso. A seguir, a pesquisa bibliográfica se concentrou no estudo da linguagem UML. Para tanto, utilizou-se principalmente o material da OMG (Object Management Group) e a literatura produzida pelos três criadores da UML (Booch, Jacobson e Rumbaugh). Como a primeira etapa destacou-se o uso de uma técnica de orientação a objetos (Framework e Padrões de Análise), essa etapa enfatizou uma linguagem de modelagem orientada a objetos (UML) que serviu como apoio a essas técnicas. A próxima etapa, preocupou-se em integrar o Framework Conceitual e os Padrões de Análise identificados. Como resultado produziu-se um diagrama de classes segundo a UML que representa o Sistema em questão. 17 A próxima etapa consistiu na preocupação da disponibilização dos dados na Web, a fim de prover o intercâmbio de informações entre usuários interessados em projeto de banco de dados para QEE. Neste caso foi necessária a escolha de uma linguagem que melhor representasse o projeto de um banco de dados, o qual escolhemos XML. Após a definição da linguagem para intercâmbio de dados foi feito o mapeamento do diagrama de classes gerado do sistema para DTD. Estando o diagrama representado desta forma, acontece a conversão do DTD para um SGBD específico de acordo com as necessidades do usuário. Finalmente para fins de verificação experimental, é proposto o estudo de dois sistemas relacionados a QEE. A parte da inclusão da Teoria do Domínio foi programado considerando os requisitos necessários para um sistema de QEE, o mapeamento do diagrama de classes para DTD foi utilizada a própria ferramenta de modelagem ( Rational Rose), e a conversão da DTD para um banco de dados relacional foi usada a ferramenta XMLSPY 2004. A última etapa consistiu na compilação do material produzido, na confecção final e revisão da dissertação. 1.4 Organização da Dissertação Essa dissertação está organizada em sete capítulos. O segundo capítulo abrange a revisão da literatura, destacando-se a conceituação de Frameworks, Pradrões de Projeto e Análise. Também é feita a apresentação das linguagens de marcação, destacando-se a XML com intercâmbio de informações na Web. No capítulo 3 é apresentado a modelagem conceitual de dados para sistemas de informação para qualidade da energia elétrica. São definidos os requisitos de modelagem, e a definição dos padrões de análise específicos para QEE. Também é apresentada a metodologia de desenvolvimento de Frameworks, sendo ainda neste capítulo apresentada a proposta do Framework específica para QEE (QEE_Frame). 18 No capítulo 4 é apresentada a idéia dos Ambientes de Desenvolvimento de Software, que são amplamente utilizados para edição da Teoria do Domínio. Esses ambientes possuem características semelhantes ao ambiente (ADEBDQEE) proposto pelo trabalho. No capítulo 5, utilizando as definições anteriores, é proposto um ambiente de apoio a definição de um banco de dados para QEE, utilizando os conceitos de reuso através de Frameworks e padrões de análise, e a definição da Teoria do Domínio. No capítulo 6 é proposto à verificação experimental através de dois casos exemplo relacionados a qualidade da energia elétrica, utilizando os conceitos de Teoria do Domínio, Frameworks e Padrões de Análise. No capítulo 7 são apresentas as conclusões dessa dissertação, suas contribuições e propostas de trabalhos futuros. No Apêndice – A é apresentado a documentação do projeto do banco de dados usado no Ambiente de Definição de um Banco de Dados para QEE. No Apêndice – B é apresentado as interfaces adicionais que compõe o Ambiente de Definição de um Banco de Dados para QEE. No Apêndice – C é apresentado o arquivo .DTD para o Caso exemplo: Sistema de Gerenciamento da Qualidade da Energia Elétrica. No Apêndice – D é apresentado a conversão do diagrama de classes para DTD para o Caso exemplo : Caracterização da Sensibilidade de Processos Industriais frente a Afundamentos de Tensão. No Apêndice – E é apresentado o mapeamento da DTD para um SGBD relacional para o Caso exemplo : Caracterização da Sensibilidade de Processos Industriais frente a Afundamentos de Tensão. 19 2 2.1 Revisão da Literatura A Qualidade da Energia Elétrica A energia elétrica é considerada como um bem básico para a integração do ser humano ao desenvolvimento. A economia de qualquer região não pode se desenvolver completamente se não possuir fonte de energia garantida e de custo aceitável. O acesso à energia elétrica é a porta de acesso aos serviços essenciais e ao aumento da qualidade de vida [ALD01]. Analisando-se o sistema de energia elétrica como um todo, desde a geração até ao consumidor, verifica-se o processo está sujeito a diversos fatores que podem afetar sua qualidade. Dentre estes fatores, destacam-se as falhas provocadas por condições climáticas (descarga atmosférica, vento, inundações, etc.). A própria operação normal do sistema gera interferências de natureza elétrica como um subproduto capaz de degradar a energia elétrica. Conceituar Qualidade da Energia Elétrica é uma tarefa abrangente, pois o termo engloba aspectos bem diversos, como a tecnologia usada, a satisfação dos clientes, custo do produto, etc. Podemos dizer que o conceito de qualidade de energia elétrica está relacionado a um conjunto de alterações que podem ocorrer no sistema elétrico. A Qualidade da Energia Elétrica pode ser definida como a ausência relativa de variações de tenção provocadas pelo sistema da concessionária, particularmente a ausência de desligamentos, flutuações de tensão, transientes e harmônicos, medidos no ponto de entrega de energia. Esta é uma definição vista sob o enfoque da identificação de qual é o nível de qualidade de energia fornecida pela concessionária [FERN99]. Do ponto de vista do consumidor, a qualidade da energia elétrica pode ser definida como sendo a ausência de variações manifestadas na tensão, corrente ou freqüência que resultem em falhas ou má operação de seus equipamentos [DUG96]. 20 Segundo [ALD01] o conceito de qualidade na energia elétrica significa a busca por desenvolvimento de meios para erradicar ou minimizar problemas em dispositivos alimentados por fontes de energia. Distúrbios de energia ocorrem no sistema elétrico de potência desde o início de seu funcionamento. Porém, ao longo dos anos, as cargas passaram a ser mais sensíveis a estes distúrbios e, conseqüentemente a exigir uma energia elétrica de maior qualidade. Logo, diante de um mercado globalizado crescentemente competitivo, a qualidade da energia elétrica passa a ser de interesse tanto para as concessionárias quanto para os consumidores. Uma boa base de informação sobre qualidade da energia elétrica permite às concessionárias prover aos consumidores um atendimento pré-ativo, proporcionando uma nova oportunidade de negócio, além de subsidiar a discussão das questões contratuais de natureza técnica, as quais tendem a ganhar especial atenção nessa nova estruturação do setor elétrico. O IEEE ( Institute of Electrical and Electronics Engineers), vem através do comitê (IEE SCC22), juntamente com outras entidades internacionais (IEC – International Eletrotechnical Commission, CICRE – Conference Internatioanledes Gands Réseux Eletriques à Haute Tesion), coordenando normalizações junto à chamada comunidade de qualidade de energia elétrica [DUG96]. A terminologia, bem como a classificação, basicamente definida pela amplitude e duração dos fenômenos eletromagnéticos são apresentadas em [IEEE95]. A seguir serão apresentados os distúrbios eletromagnéticos que serão considerados neste trabalho. 2.1.1 Distúrbios Eletromagnéticos Existem diversas categorias de fenômenos eletromagnéticos descritos segundo a recomendação do IEEE, que pode ser visto em [IEEE95]. Neste trabalho estaremos tratando três categorias: transientes, variações de tensão e os harmônicos. Segundo [FER99] o estudo dessas categorias abrange uma grande parte dos problemas de qualidade da energia elétrica (Figura 2.1). 21 Figura 2.1: Distúrbios de tensão típicos, idealizados [FER99]. Segundo a classificação do IEEE [IEEE95], as variações de tensão e os componentes harmônicos são fenômenos conduzidos de baixa freqüência, os transientes impulsivos são fenômenos irradiados de alta freqüência e os transientes oscilatórios são fenômenos conduzidos de alta freqüência. A ocorrência de distúrbios eletromagnéticos está relacionada a uma série de fatores identificados da operação normal de determinadas cargas ou dispositivos em um sistema elétrico ou da ocorrência de fenômenos naturais que afetam o sistema elétrico, como demonstrado na tabela a seguir. 22 Tabela - Principais Causas dos Fenômenos Eletromagnéticos Conforme Recomendação IEE 1159 - 1995 Categorias Principais Causas Transientes Impulsivos Descargas atmosféricas. Oscilatórios Energização de banco de capacitores. Variações de Curta Duração Afundamentos de Tensão Faltas, chaveamento de cargas pesadas, partida de grandes motores. Salto de Tensão Faltas - Curto circuito fase-terra provocando elevação na fase sem falta. Interrupção Faltas, falhas em equipamentos, disfunção de controle. Variação de Longa Duração Interrupção Sustentada Falhas de natureza permanente e que necessitam de intervenção manual para sua restauração. Subtensões Ligação de cargas, desligamento de banco de capacitores. Sobretensões Desligamento de cargas, anomalias em banco de capacitores. Distorção de Forma de Onda Nível de CC Distúrbios geomagnéticos, retificação de meia onda. Harmônicas Características não lineares de cargas e dispositivos. Interharmônicas Conversores estáticos de freqüência, ciclo conversores, motores de indução e dispositivos a arco. Cortes Operação normal de dispositivos de eletrônica de potência. Ruído Dispositivos eletrônicos, circuitos de controle, equipamentos a arco, retificadores de estado sólido, fontes chaveadas. Flutuações de Tensão Fornos a arco. Variações de Freqüência Saída de grande bloco de cargas ou perda de um grande gerador. 2.1.1.1 Transientes Os transientes são classificados como impulsivos ou oscilatórios. Transientes impulsivos são repentinas variações, unidirecionais em polaridade, nas condições de regime permanente de tensão, corrente, ou ambas. Eles são caracterizados por seus tempos de subida e decaimento, pelo conteúdo espectral e pela máxima amplitude alcançada, e são classificadas em três categorias de acordo com seu tempo de subida. Transientes 23 impulsivos podem excitar circuitos ressonantes do sistema elétrico produzindo os transientes oscilatórios, que consistem em tensões ou correntes que têm polaridade de seus valores instantâneos mudada rapidamente. Estes são caracterizados pelo conteúdo espectral de sua freqüência predominante, e pela duração da oscilação. Os transientes oscilatórios ocorrem, também, devido a operações de comutação e chaveamento de circuitos elétricos [FER99]. 2.1.1.2 Variações de Tensão Variações de tensão são alterações no valor médio quadrático de uma tensão. Estas variações são classificadas conforme sua duração e amplitude. Elas são divididas em variações de curta duração e variações de longa duração [IEEE95] [ONS00]. a)Variações de Tensão de Curta Duração Entende-se por Variação de Tensão de Curta Duração um desvio significativo da amplitude da tensão por curto intervalo de tempo. A amplitude da Variação de Tensão de Curta Duração é definida pelo valor extremo do valor eficaz (média quadrática) da tensão em relação à tensão de referência do sistema no ponto considerado, enquanto perdurar o evento[ONS00]. A duração da Variação de Tensão de Curta Duração é definida pelo intervalo de tempo decorrido entre o instante em que o valor eficaz da tensão em relação à tensão de referência do sistema no ponto considerado ultrapassa determinado limite e o instante em que a mesma variável volta a cruzar este limite [ONS00]. A partir da duração e amplitude, as Variações de Tensão de Curta Duração são classificadas como descrito na tabela a seguir: 24 Tabela – Denominação das Variações de Tensão de Curta Duração Classificação Variação Momentânea de Tensão Denominação Duração da Variação Interrupção Momentânea de Tensão Afundamento Momentâneo de Tensão Inferior ou igual a três segundos Elevação Momentânea de Tensão Interrupção de Tensão Variação Temporária de Tensão Afundamento Temporário de Tensão Elevação Temporária de Tensão Superior ou igual a um ciclo e inferior ou igual a três segundos Superior ou igual a um ciclo e inferior ou igual a três segundos Superior a três segundos e inferior ou igual a um minuto Superior a três segundos e inferior ou igual a um minuto Superior a três segundos e inferior ou igual a um minuto Amplitude da tensão (Valor Eficaz) em relação à tensão nominal Inferior a 0,1 pu Superior ou igual a 0,1 e inferior a 0,9 pu Superior a 1,1 pu Inferior a 0,1 pu Superior ou igual a 0,1 e inferior a 0,9 pu Superior a 1,1 pu 2.1.1.3 Harmônicos Harmônicos são correntes ou tensões senoidais de freqüências múltiplas da freqüência que o sistema é designado a operar. Os componentes harmônicos, combinados com a tensão ou correntes fundamentais, produzem alterações na forma de onda. A distorção harmônica existe devido a características não lineares de dispositivos e cargas do sistema elétrico. A distorção de tensão resulta da queda de tensão provocada pela passagem de corrente pela impedância do sistema [FER99]. O indicador para avaliar o desempenho global quanto a harmônicos nos barramentos da Rede Básica corresponde à distorção de tensão harmônica. Entende-se por Distorção de Tensão Harmônica Total (DTHT) a raiz quadrada do somatório quadrático 25 das tensões harmônicas de ordens 2 a 50. Esse conceito procura quantificar o conteúdo harmônico total existente em um determinado barramento [ONS00]. 2.1.2 Parâmetros de Referência para Análise da Qualidade da Energia Elétrica A análise da informação da qualidade da energia elétrica, monitorada durante um determinado período de tempo, deve ser feita por comparações, seja com valores normalizados, valores contratuais, ou mesmo com informações auferidas em outras monitorizações. Entidades nacionais e internacionais como ANEEL/ONS, IEEE, ANSI e IEC estão envolvidas na emissão de normas aplicáveis à qualidade de energia elétrica, produzindo documentos que são mundialmente utilizados como referência [RIB98]. A seguir é apresentado uma lista de normas e entidades: • EN50160: é uma nova norma que cobre flicker, interharmônicas, desvios/variações de tensão e muito mais. • ONS - Padrões de Desempenho da Rede Básica – Submódulo 2.2, documento aprovado pela resolução da ANEEL n° 79/02, de 24/12/2002: tem como objetivo definir os padrões de desempenho da Rede Básica do sistema elétrico brasileiro. • IEC 61000-4-15: é uma norma de medição de flicker que inclui especificações para medidores. • IEC 61000-4-7: descreve uma técnica de medição padrão para harmônicas. • IEEE 519 (1992): é uma prática recomendada pela IEEE, utilizada principalmente por concessionárias de energia nos EUA. Descreve níveis aceitáveis de harmônicas para o ponto de entrega de energia pela concessionária. • IEEE 1159 (1995): é uma prática recomendada pela IEE para monitoração e interpretação apropriada dos fenômenos que causam problemas de qualidade de energia. • CBEMA: Computer and Business Equipament Manufacturers Association. A CBEMA virou ITI em 1994. A curva CBEMA define os níveis de 26 suportabilidade de equipamentos (originalmente desenvolvida para copmputadores tipo “main-frame”), em função da magnitude da tensão e da duração do distúrbio. • ITI: Information Technology Industry Council. Grupo que trabalha para defender os interesses da indústria de informática. A curva ITIC de suportabilidade para equipamentos da área coberta pela tecnologia da informação, substituiu a curva CBEMA. 2.1.3 Sistema de Informação para Qualidade da Energia Elétrica Segundo [TON03] os sistemas de informação podem ser considerados como um conjunto de elementos interdependentes, ou um todo organizado, ou partes que interagem formando um todo unitário e complexo. Ainda pode-se dizer que sistemas de informação são subsistemas das organizações e são agentes de otimização dos processos da empresa. Logo sistemas de informação na sua grande maioria provê informações no sentido de servir como apoio a tomada de decisões ou até mesmo tomar decisões. Para [REZ02] um sistema de informação pode ser definido como o processo de transformação de dados em informações que são utilizadas na estrutura decisória da empresa e que proporcionam a sustentação administrativa visando à otimização dos resultados esperados. Dessa forma, os sistemas de informação devem ser analisados e/ou desenvolvidos dentro da perspectiva sociotécnica, em que tecnologia e organização devem ser ajustadas entre si até que se obtenha uma harmonização perfeita entre os dois domínios, gerando um terceiro estado organizacional conjunto [REZ02]. Em [PPGEE00] é apresentado um projeto que propõe um Sistema de Gerenciamento da Qualidade da Energia Elétrica (SGQEE), que consiste basicamente, de um sistema de monitoramento e transmissão remota de informações relativas a QEE, associado a um banco de dados relacional, apoiado por um conjunto de programas complementares, que permite o pré e pós-processamento de dados, bem como o cálculo estocástico de afundamentos de tensão e a análise da informação com base em técnicas de Inteligência Artificial (IA). 27 O sistema apresentado em [PPGEE00] propõe um sistema considerando objetivos específicos. Por outro lado, podemos definir um SGQEE de forma mais abrangente como um Sistema Informação para Qualidade da Energia Elétrica (SIQEE). Um SIQEE é um conjunto de algoritmos, equipamentos, metodologias, dados e pessoas (usuário), perfeitamente integrados, de forma a tornar possível a coleta, o armazenamento, o processamento e a análise de dados relativos a QEE, bem como a produção de informação derivada de sua aplicação. 2.2 Instrumentos de Reutilização A proposta de reutilização é inerente ao desenvolvimento de sistemas computacionais. Durante as décadas de 60 e 70, a idéia de reutilização centrava-se na idéia de reutilização de códigos de programas. Bibliotecas de funções, escritas em diversas linguagens de programação, foram criadas e disponibilizadas para que pudessem ser reutilizadas. A busca por mecanismos voltados a facilitar a reutilização de software teve como resultado uma série de eventos científicos dedicados ao tema. Em 1983 ocorreu o primeiro grande congresso na área, o Workshop on Reusability in Programming (Perlis, 1983 Apud [NEI94]). Com o objetivo de aumentar a produtividade dos programadores e a qualidade nos sistemas desenvolvidos, a idéia de reutilização sempre esteve associada à criação de mecanismos que possibilitem a administração da complexidade dos sistemas. Com a evolução da engenharia de software, surgem normas que tratam da qualidade dos produtos de software, essas normas de modo geral é composta por um conjunto de características e subcaracterísticas que devem ser avaliadas e previstas no projeto do software. Dentre elas podemos citar manutenibilidade, modificabilidade, escalabilidade. A manutenibilidade trata da facilidade de manutenção, modificabilidade trata da facilidade de modificação e adaptação, e escalabilidade trata do risco quando se faz alterações. 28 Diante desta nova realidade a reutilização de software é um fator que pode levar ao aumento da qualidade e da produtividade na atividade de desenvolvimento de software. Isso é possível graças a essa nova perspectiva que esse conceito oferece, uma vez que estamos reutilizando o que já foi desenvolvido e testado, conseqüentemente teremos um produto de maior qualidade entregue em tempo menor e com um custo de manutenção reduzido. Considerando os benefícios que a reutilização proporciona, os projetistas avançados sabem que não devem resolver cada problema a partir de princípios elementares ou zero. Ao invés disso, eles reutilizam soluções que funcionaram no passado. Logo quando encontram uma boa solução, eles a utilizam repetidamente. O conceito de Tipo Abstrato de Dados (TAD) foi desenvolvido para possibilitar que estruturas de dados pudessem ser reutilizadas [EMB87]. Para usar um TAD, o desenvolvedor necessita conhecer apenas a interface e a funcionalidade de cada um dos subprogramas disponíveis. Outro instrumento que utiliza os conceitos de reutilização é o paradigma de orientação a objetos que tem, como um de seus princípios fundamentais, possibilitar a reutilização de classes existentes através de mecanismos como especialização e polimorfismo. Atualmente na área de Engenharia de Software, pesquisas sobre reutilização exploram conceitos como Framework e Padrões [GAM95]. Os benefícios do reuso em projetos de banco de dados, está relacionado a projeto de sistema orientado a objeto onde o usuário do sistema é capaz de modificar o uso que faz de seu banco de dados [MUL99]. Para ele o projeto de banco de dados deve formulado visando sempre a reutilização, pois talvez novas estruturas de banco de dados, conexões com outros bancos de dados ou novos sistemas precisem utilizar seu banco de dados. Potencial de reutilização pode ser compreendido como o grau em que um usuário de sistema é capaz de reutilizar o banco de dados numa determinada situação. O potencial de reutilização mede a capacidade de reutilização inerente ao sistema, a capacidade de reutilização em um domínio específico e a capacidade de reutilização do sistema em uma organização [MUL99] 29 Este trabalho trata o uso de Frameworks e Padrões como instrumentos de reutilização para projeto de banco de dados de QEE. 2.2.1 Reutilização de Especificações de Requisitos Segundo [NEI94], no processo de desenvolvimento de software quanto mais cedo forem identificados e criados recursos reutilizáveis, maior será o impacto da reutilização nas fases posteriores. Portanto, a reutilização de modelos durante a especificação de requisitos é o primeiro momento em que o projetista pode empregar algum tipo de recurso reutilizável, isto é, qualquer recurso existente que possa ser útil na construção de um sistema computacional. Para [EDE94], o uso de abordagens de reutilização durante a fase de especificação de requisitos apresenta as seguintes vantagens: • redução do custo do desenvolvimento da especificação; • redução do custo de verificação e validação da especificação; • aumento da produtividade no desenvolvimento de especificações; • aumento da qualidade das especificações; • padronização das especificações; • facilidade de comunicação entre equipes que utilizam a mesma biblioteca. Como descrito anteriormente a reutilização é apresentada considerando o ciclo de vida de um projeto de sistemas. A reutilização proposta neste trabalho está centrada na reutilização de projeto para banco de dados o que apresenta as mesmas vantagens, pesquisas sobre reutilização em Engenharia de software apresentam resultados satisfatórios com relação ao uso de reutilização na fase de projeto. 30 2.2.2 Padrões A abordagem de Padrões2 cada vez mais se torna um assunto disseminado no campo da Ciência da Computação. Mas ainda existem várias definições para o termo Padrão. Segundo [GAM95], o uso de padrões esta diretamente relacionado com a idéia de reuso em Engenharia de Software e teve origem no trabalho do arquiteto Chistopher Alexander que afirma: “cada padrão descreve um problema no nosso ambiente e o núcleo da solução, de tal forma que você possa usar esta solução mais de um milhão de vezes, sem nunca fazê-lo da mesma maneira”. Apesar desta definição está descrita considerando os padrões em construções e cidades, ela é aplicada a padrões de projeto orientados a objeto. Segundo [GAM95] padrões de projeto tornam mais fácil reutilizar projeto e arquiteturas bem sucedidas. Os padrões de projeto ajudam a escolher alternativas de projeto que tornam um sistema reutilizável e evitar alternativas que comprometam a reutilização, um padrão identifica um problema e apresenta uma solução para ele. Segundo [DAN02] um padrão pode ser pensado como a reutilização da essência de uma solução para determinados problemas similares, pode-se dizer ainda que um padrão resolve um problema recorrente, em um determinado contexto, fornecendo uma solução que comprovadamente funcione, além de informar resultados e compromissos da sua aplicação, e subsídios para que seja possível adaptar esta solução a uma variante do problema. Em [GER99] os padrões são considerados como resultado da abstração de problemas semelhantes das soluções utilizadas. Já [ALU01] define os padrões como uma referência à comunicação de problemas e soluções. Em outras palavras, os padrões permitem documentar um problema conhecido recorrente e sua solução em um contexto específico e comunicar esse conhecimento para outras pessoas. [LAR99] considera padrões 2 Do inglês Patterns 31 como fórmulas nomeadas de soluções de problemas que codificam princípios de projetos exemplares Como mostrado na Figure 2.1 temos o processo de identificação de um padrão que pode ocorrer considerando diferentes contextos, essa identificação pode ocorrer nas diversas etapas do desenvolvimento de software. Projeto 1 Projeto 2 Projeto 3 Figure 2.1: Identificação de um padrão. Existem muitas definições para um padrão, mas todas elas têm um comum a informação relacionada à recorrência de um par problemas-soluções em um contexto específico. Em [ALU01] é apresentado um conjunto de características comuns dos padrões: • Os padrões são observados através da experiência. • Os padrões normalmente são escritos em um formato estruturado. • Os padrões evitam a reinvenção da roda. • Existem padrões em diferentes níveis de abstração. • Os padrões suportam melhorias contínuas. • Os padrões são artefatos reutilizáveis. • Os padrões comunicam designs e melhores práticas. • Os padrões podem ser utilizados em conjunto para solucionar problemas maiores. Padrões de software abrangem diferentes níveis de abstração, podendo portanto ser classificado em diversas categorias de modo a facilitar sua recuperação e uso, é importante salientar que é possível haver um padrão que se encaixe em mais do que uma categoria. Várias categorias já foram sugeridas para classificar padrões de software e algumas mais comuns são: • padrões de projeto: definem soluções para problemas de projeto de software; 32 • padrões arquiteturais: expressam o esquema ou organização estrutural fundamental de sistemas de software e hardware; • padrões de análise: descrevem soluções para problemas de análise de sistemas, embutindo conhecimento sobre o domínio de aplicação específico; Um padrão é uma combinação recorrente de elementos de modelagem que ocorrem em algum contexto [LIS02]. Considerando que padrões podem ser aplicados nas diversas etapas de desenvolvimento de software. Em [LIS00] é apresentado três categorias de padrões: padrões de arquitetura, padrões de projeto, e idiomas. As duas primeiras categorias incluem os padrões relacionados com a fase de projeto do sistema, mas são aplicadas em problemas de diferentes escalas. Os padrões de projeto são mais abstratos do que os padrões de arquitetura, enquanto que idiomas são padrões escritos em alguma linguagem de programação, esse tipo de padrão é também conhecido como padrões de implementação. Uma outra categoria de padrões foi introduzida por [FOW97] inclui os padrões de análise. Este tipo de padrão é utilizado para descrever soluções empregadas durante as fases de análise de requisitos e modelagem conceitual dos dados. Os padrões de análise refletem estruturas conceituais representativas do domínio da aplicação e não soluções computacionais. Fowler em [FOW97] define um padrão de análise como: “uma idéia que se provou útil em um contexto prático e que, provavelmente, será útil em outras situações similares”. A maioria dos padrões de análise publicados foram projetados, com o intuito de resolver problemas de aplicações comerciais [FOW97]. No entanto, a idéia de padrões de análise pode ser usada para aumentar a qualidade e a produtividade no desenvolvimento de aplicações não-convencionais. Em [LIS00] é apresentado o uso de padrões de análise para aplicações de Sistemas de Informação Geográfica (SIG). Em [LIS00] é apresentado o uso de padrões de análise, de projeto e idiomas. Em [LIS00] padrões de análise podem ser usados para documentar como os projetistas de um determinado domínio de aplicação modelam fenômenos geográficos e seus relacionamentos. Padrões de projeto são utilizados para documentar como os dados 33 sobre o relevo de uma região são representados através de modelo numérico de terreno, e idiomas podem definir como um modelo numérico de terreno deve ser implementado em cada software de Sistema de Informação Geográfica. 2.2.3 Padrões de Projeto Em Engenharia de software o ciclo de desenvolvimento de software é acontece em espiral, portanto temos atividades que são desenvolvidas durante as fases de análise e de projeto do processo, podemos associar essa dificuldade em definir em qual instante acontece as atividades, a dificuldade em estabelecer a diferença exata entre padrões de projeto e de análise. Em [LIS00] é apresentado as principais diferenças entre um padrão de projeto e um padrão de análise. São elas: • Em um padrão de análise sua forma é descrita através de termos e conceitos pertencentes ao domínio da aplicação. Já, a forma de um padrão de projeto é descrita através de construtores genéricos de projeto de software; • Padrões de análise não são escritos para servirem a um propósito geral. É importante encontrar o equilíbrio entre obter um padrão muito abstrato e um padrão muito especializado. • Ao contrário dos padrões de análise, os padrões de projeto existentes são apresentados de forma bem estruturada e organizados separadamente em catálogos. [GAM95] e outros propõem padrões de projeto como um novo mecanismo para expressar experiências na elaboração de projetos orientados a objetos. Ensinam os novos projetistas a trabalharem bem e padronizarem a maneira de desenvolvimento. Esses padrões fornecem um vocabulário comum, reduzem a complexidade do sistema usando abstrações, constituem uma base de experiência para o desenvolvimento de software reusáveis e comportam-se como blocos de construção para serem empregados em sistemas mais complexos. 34 Os padrões de projeto apresentados por [GAM95] são organizados considerando quatro elementos essenciais: Nome do padrão, o problema, a solução e as conseqüências. No entanto outros itens de descrição podem ser adicionados como motivação, participantes, sinônimos e outros padrões relacionados. A seguir é apresentado os quatro elementos essenciais de um padrão segundo [GAM95]: • O nome do padrão: é uma referência que podemos usar para descrever um problema de projeto, suas soluções e conseqüências em uma ou duas palavras. • O problema: descreve quando aplicar o padrão. Ele explica o problema e seu contexto. Pode descrever problemas de projetos específicos, tais como representar algoritmos como objetos. • A solução: descreve os elementos que compõem o projeto, seus relacionamentos, suas responsabilidades e colaborações. • As conseqüências: são os resultados e análises das vantagens e desvantagens da aplicação do padrão. Embora as conseqüências sejam raramente mencionadas quando descrevemos decisões de projeto, elas são críticas para a avaliação de alternativas de projetos e para a compreensão dos custos e benefícios da aplicação do padrão. Um exemplo de padrão de projeto é descrito na Figura 2.2 (Padrão Composite). A intenção do Padrão Composite é compor objetos em estruturas de árvore para representarem hierarquias partes-todo. Esse padrão permite aos clientes tratarem de maneira uniforme objetos individuais e composição de objetos. Figura 2.2: Ilustra o diagrama de classes do padrão de projeto Composite [GAM95] 35 O padrão Composite pode ser usado em várias aplicações tais como: aplicações gráficas, como editores de desenhos e sistemas de captura esquemática, que permitem aos usuários construir diagramas complexos a partir de componentes simples. O usuário pode agrupar componentes para formar componentes maiores, os quais, por sua vez, podem ser agrupados para formar componentes ainda maiores. Uma implementação simples poderia definir classes que funcionam como recipientes (containers) para estas primitivas. O padrão Composite deve ser usado quando: • Você quiser apresentar hierarquias partes-todo de objetos; • Você quiser que os clientes sejam capazes de ignorar a diferença entre composições de objetos e objetos individuais. Os clientes tratarão todos os objetos na estrutura composta de maneira uniforme. Logo o padrão Composite define hierarquias de classe que consistem de objetos primitivos e objetos compostos. Os objetos primitivos podem compor objetos mais complexos, os quais, por sua vez, também podem compor outros objetos, e assim por diante, recursivamente. Sempre que o código do cliente espera um objeto primitivo ele também pode aceitar um objeto composto [GAM95]. O padrão Composite também torna o cliente simples, uma vez que, podem tratar estruturas compostas e objetos individuais de maneira uniforme, facilidade na inserção de novas espécies de componentes, novas subclasses. Portanto os clientes não precisam ser mudados para tratar novas classes. Sistemas orientados a objetos geralmente usam o padrão Composite como por exemplo o Framework Compilador RTL Smaltalk. Outro padrão de projeto também citado em [GAM95] é o padrão Strategy cuja intenção é definir uma família de algoritmos, encapsular cada uma delas e torna-las intercambiáveis. Strategy permite que o algoritmo varie independentemente dos clientes que utilizam [GAM95]. Existem muitos algoritmos para quebrar um stream de texto em linhas. Codificar de maneira fixa e rígida tais algoritmos nas classes que os necessitam não é desejável, por várias razões tais como [GAM95]: 36 • Quando os clientes necessitam quebras de linhas se tornam mais complexos se incluírem o código de quebra de linhas. Isso os torna maiores e mais difíceis de manter, especialmente se suportam múltiplos algoritmos de quebra de linhas. • Quando diferentes algoritmos serão apropriados em diferentes situações. Não queremos suportar múltiplos algoritmos de quebra de linhas se não usamos todos eles. • Quando é difícil novos algoritmos e variar os existentes quando a quebra de linha é parte integrante de um cliente. Em várias situações o uso do padrão Strategy será interessante, dentre eles podemos citar: • Quando muitas classes relacionadas diferem somente no seu comportamento. As estratégias fornecem uma maneira de configurar uma classe com um, dentre muitos componentes; • Quando você necessita de variantes de um algoritmo. Por exemplo, pode definir algoritmos que refletem diferentes soluções de compromisso entre espaço/tempo. • Quando um algoritmo usa dados de que os clientes não deveriam ter conhecimento. O padrão Strategy deve ser usado para evitar exposição das estruturas de dados complexas, específicas do algoritmo; • Quando uma classe define muitos comportamentos, e estes aparecem em suas operações como múltiplos comandos condicionais da linguagem. Em vez de usar muitos comandos condicionais, mova os ramos condicionais relacionados para a sua própria classe Strategy. Podemos citar como exemplo o ET++ como InterViews que usam estratégias para encapsular diferentes algoritmos de quebras de linhas. 37 2.2.4 Padrões de Análise Devido à abordagem de padrões ter sido introduzida na área de Engenharia de Software, por projetistas de sistemas orientados a objetos, a categoria de padrões mais conhecida atualmente é a dos padrões de projeto [LIS00]. Em [CUN03], [UCH], [DAN02], [GER99], [MON02] são usados padrões de projeto. Diversas pesquisas vem sendo realizadas com relação a padrões que auxiliem projetistas de banco de dados a reutilizar soluções para problemas de modelagem de dados [LIS00], [FOW97]. Os padrões que mais se adaptam a esse tipo de problemas são dos padrões de análise visto que eles descrevem soluções para problemas de análise de sistemas, embutindo conhecimento sobre o domínio de aplicação específico. Um padrão de análise descreve um conjunto de classes, possivelmente pertencentes a diferentes hierarquias de classes, e as associações existentes entre elas. Padrões de análise podem ser vistos, como uma forma de descrever subesquemas de projetos mais complexos, os quais ocorrem com freqüência durante o processo de modelagem de muitas aplicações [LIS00]. Um padrão de análise descreve, em um nível arbitrário de abstração, um conjunto de objetos do mundo real, seus relacionamentos e as regras que definem seu comportamento e estado [LIS00]. [FOW97] define um padrão de análise como uma idéia que se provou útil em um contexto prático e que, provavelmente, será útil em outras situações similares. Padrões de Análise têm sido desenvolvidos para possibilitar a reutilização de soluções de análise em diferentes sistemas. Quando identificamos os padrões, eles podem ser mais genéricos, ou menos genéricos. Quando estes padrões são mais genéricos eles podem ser reutilizados em aplicações de domínios diferentes, mas quando estes padrões são menos genéricos, estes podem ser reutilizados considerando aplicações de um mesmo domínio. 38 Mesmo evidenciando que a reutilização contribui para o aumento da produtividade entre dos projetistas, para que seja possível o uso de padrões, é necessário o cumprimento de algumas etapas, uma delas é a documentação dos padrões. Percebe-se que em [FOW97] e [HAY95] os padrões de análise eram descritos de forma narrativa, sem nenhum comprometimento com uma estrutura padronizada. Atualmente existe uma tendência a descrever padrões de análise de forma semelhante aos padrões de projeto como está descrito em [GAM95], essa tendência pode ser explicada visto ao grau de organização, padronização e ao crescente uso de padrões pelos projetistas. Em [FOW00] observa-se alto valor de um padrões de análise, visto que eles fornecem um começo melhor quando trabalha-se em um domínio novo. [FOW00] relata que começou a coletar padrões de análise porque estava frustrado com domínios novos, uma vez que tinha certeza que não era a primeira pessoa que os modelava. [FOW00] viveu uma experiência interessante, pois percebeu que os padrões de análise surgem em lugares pouco comuns, por exemplo quando começou a trabalhar em um projeto para fazer análise financeira corporativa, foi ajudado por um conjunto de padrões que ele havia descoberto na área de saúde. Um padrão é muito mais que um modelo. Um padrão deve incluir a razão pela qual ele é do modo que é. Freqüentemente se diz que um padrão é uma solução para um problema. Um padrão deve esclarecer o problema, explicar por que ele resolve o problema e também explicar em que circunstâncias ele funciona ou não [FOW00]. Padrões são importantes porque são o próximo estágio além da compreensão do básico de uma linguagem ou uma técnica de modelagem. Padrões lhe dão uma série de soluções e também lhe mostram o que faz um bom modelo e como você deve proceder para construir um modelo. Eles ensinam através de exemplos [FOW00]. [MES98] apresenta uma estrutura de documentação de padrões semelhante a [GAM95] porém mais simplificada, essa estrutura pode ser definida por quatro elementos: 39 • Problema: fornece uma declaração sucinta do problema que necessita ser resolvido. Normalmente colocado na forma de pergunta; • Contexto: descreve o contexto no qual o problema foi identificado e para o qual a solução foi proposta; • Forças: conjunto de restrições que foram consideradas quando da elaboração da solução do problema; • Solução: fornece um diagrama de classes com a solução proposta. A seguir é apresentado um exemplo de um padrão de análise considerando o domínio de QEE: Padrão: Local de Monitorização Problema: Como modelar dados referentes aos locais de monitorização a fim de obter informações de qualidade da energia elétrica? Contexto: A monitoração da qualidade da energia elétrica pode ser executada objetivando vários fins, uma vez determinado o escopo de um projeto de monitoração. Em função de um objetivo de monitoração, regiões ou zonas de um sistema elétrico, definidas pela seleção dos locais de monitoração, podem ser monitorizados a fim de obter informações necessárias ao gerenciamento da qualidade da energia elétrica. Forças: • Todo consumidor tem pelo menos um local de monitorização; • Um consumidor pode ter vários locais de monitorização; • Necessidade de obter dados do local de monitorização para QEE. Solução: A Figura 2.3 mostra o diagrama de classes que compõe o padrão. Em cada local de monitorização podemos ter um ou vários contatos associados, e o consumidor pode ter vários locais monitorados. 40 Padrão Local de Monitorização Local_Monitoracao Cod_Local Dat_Inicio_Monitoracao Nom_Local Des_Local Num_Frequencia_alimentacao_local Dat_Fim_Monitoracao Val_Tensao_Nominal_Local 1 0..n Local_Monit_Contato Cod_Contato Nom_Local_Contato Car_Contato Tel_Fax Tel_Voz Tel_Dados Obs_Contato 1..n 1 Monitoracao_Consumidor Cod_Consumidor Nom_Consumidor End_Consumidor Ufe_Consumidor Cep_Consumidor Pais_Consumidor Tel1_Consumidor Tel2_Consumidor Obs_Consumidor Nom_Cont_Consumidor Figura 2.3: Diagrama de Classes do Padrão Local de Monitorização Padrões de análise têm sido propostos como instrumentos para a reutilização de soluções durante as fases de análise de requisitos e modelagem conceitual do banco de dados [FER98], [FOW97], [HAY95], [ROB93], [LIS00], [LIS01] e [LIS02]. 2.2.5 Framework A orientação a objeto cada vez mais tem sido um instrumento interessante para o desenvolvimento de sistemas considerando os princípios propostos pela engenharia de software. Podemos dizer fundamentalmente que se deseja com a orientação a objeto é basicamente: reutilização e modularidade. No que tange a reutilização uma das propostas é a de usar Frameworks para domínios específicos. Segundo [PRE94], Framework constitui um avanço em termos de reutilização de software, uma vez que a reutilização ocorre não 41 apenas a partir de pequenos blocos de programas, mas sim de todo ou parte de um sistema, incluindo a reutilização de projeto. Segundo [FAY99], um Framework é uma técnica da orientação a objeto voltada para a reutilização que se beneficia de três características das linguagens de programação orientada a objeto: abstração de dados, polimorfismo e herança. Já [TAL97] considera um Framework como um conjunto de classes de software semi-prontas e relacionadas. Visa atender a solução de um determinado domínio de problema, de forma que as classes possam ser usadas, estendidas ou customizadas por desenvolvedores para soluções específicas. Como mostrado em [GAM95] um Framework é um conjunto de classes cooperantes que constroem um projeto reutilizável para uma específica classe de software. Por exemplo, um Framework pode ser orientado para a construção de editores gráficos para diferentes domínios, tais como: desenho artístico, composição musical e sistemas CAD para mecânica. [LAR99] diz que um Framework é um subsistema extensível para um conjunto de serviços relacionados, ou seja, um conjunto coeso de classes que colaboram para fornecer serviços para o núcleo invariante de um subsistema lógico. Já [SIL00] define um Framework como uma estrutura de classes inter-relacionadas, que corresponde a uma implementação incompleta para um conjunto de aplicações de um domínio. Enfim um framework é uma abstração de um domínio de aplicações, adequada a ser especializada em aplicações deste domínio. A principal característica buscada ao desenvolver um Framework, é a generalidade em relação a conceitos e funcionalidades do domínio tratado. Além disso, é fundamental que a estrutura produzida seja flexível, isto é, apresentar as características alterabilidade e extensibilidade [SIL00]: • alterabilidade a capacidade de alterar a funcionalidade presente, sem conseqüências imprevistas sobre o conjunto da estrutura, considerando os Frameworks essa característica reflete na capacidade de alterar suas responsabilidades em função da necessidade de uma aplicação específica, o que 42 é operacionalizado através de uma identificação adequada das partes da estrutura que diferem em aplicações distintas de um mesmo domínio. • Extensibilidade se refere a capacidade de ampliar a funcionalidade presente, sem conseqüências imprevistas sobre o conjunto da estrutura, essa característica em relação ao Framework se refere a manutenibilidade do Framewok. Um framework possui uma estrutura de classes mais complexa que a estrutura de uma aplicação do seu domínio, essa estrutura é construída iterativamente uma vez que a evolução de uma estrutura de um framework se estende por toda a sua vida útil, pois a medida em que é utilizado, novos recursos podem ser agregados. Existem diversas definições pra o termo Framework, em contrapartida podemos citar dois aspectos que caracterizam um Framework segundo [TAL97]: • Os Frameworks fornecem infraestrutura e projeto: Frameworks portam infraestrutura de projeto disponibilizada ao desenvolvedor da aplicação, que reduz a quantidade de código a ser desenvolvida, testada e depurada. • Os Frameworks “chamam”, não são “chamados”: um papel do framework é fornecer o fluxo de controle da aplicação. Assim em tempo de execução, as instâncias das classes desenvolvidas esperam ser chamadas pelas instâncias das classes do Framework. Para [SIL00] um Framework se destina a gerar diferentes aplicações para um domínio. Precisa, portanto, conter uma descrição dos conceitos deste domínio. Alguns usuários confundem Frameworks e a reutilização de classes de uma biblioteca. Segundo [SIL00] existe uma diferença fundamental, e que no caso de reutilização de classes de uma bilbioteca são usados artefatos de software isolados, cabendo ao desenvolvedor estabelecer sua interligação, e no caso do Framework, é procedia a reutilização de um conjunto de classes inter-relacionadas, esse interrelacionamento é estabelecido no projeto do framework. As Figuras Figura 2.4, Figura 2.5 e Figura 2.6 ilustram essa diferença, onde a parte sombreada representa classes e associações que são reutilizadas. 43 Figura 2.4: Aplicação desenvolvida totalmente [SIL00]. Figura 2.5: Aplicação desenvolvida reutilizando classes de biblioteca [SIL00]. Figura 2.6: Aplicação desenvolvida reutilizando um Framework [SIL00]. Em relação a reutilização, segundo [LIS00] um Framework não necessita estar implementado em uma linguagem de programação para fornecer a solução parcial a uma família de problemas. Logo é possível concluir que é uma vantagem o Framework estar parcialmente implementado, visto que a solução para uma nova implementação está mais próxima de ser alcançada. Segundo [LIS00] uma das principais características de um framework é que o fluxo de controle entre o Framework e a aplicação cliente, uma vez que no Framework os métodos desenvolvidos para a aplicação é que são chamados pelos métodos de framework. Isto evidencia que, além de reutilizar todo um conjunto de classes, o conhecimento sobre o projeto do software também é reutilizado. 44 Um dos primeiros Frameworks que pode ser encontrado na literatura é o ModelView-Controller (MVC), disponível em ambiente de desenvolvimento Smalltalk, para o desenvolvimento de interfaces para o usuário (GUI), podemos citar outros Frameworks relacionados a esta área: MacApp, para aplicações gráficas no ambiente Macintosh, ET++, Iterviews, Microsoft foundation Classes, Java AWT. Apesar dos Frameworks pioneiros estarem relacionados a criação de interfaces gráficas, atualmente existem Frameworks para diversos domínios. Algumas literaturas tentam classificar Frameworks em diferentes dimensões, caracterizando de acordo com seus propósitos. [FAY97] divide Frameworks em: • Frameworks de Infra-estrutura: são usados para dar suporte a diversos tipos de aplicação independente dos domínios endereçados por estas aplicações. Exemplos seriam Frameworks para sistemas operacionais, comunicação, redes e construção de interfaces. • Frameworks de Integração: normalmente são usados para integrar aplicações e componentes distribbuídos, como Frameworks CORBA ORB, DCOM, implementações do padrão ODMG. • Frameworks de Domínio de Aplicação: representam esqueletos de aplicações para domínios específicos, como telecomunicações, manufatura e engenharia financeira. Frameworks deste tipo capturam elementos invariantes de domínio, e deixam em abertos aspectos específicos de cada aplicação. Desta forma podemos destacar que os Frameworks de Infra-estrutura e Integração estão basicamente relacionados a problemas internos de desenvolvimento de software e são independente de domínio, já os Frameworks de Domínio de Aplicação têm o objetivo de apoiar o desenvolvimento de aplicações dirigidas ao usuário e produtos em domínios específicos. Outra forma de classificar os Frameworks é de acordo com a aplicabilidade, em horizontais ou verticais [FAY99] [TAL97]. Frameworks horizontais são voltados à implementações de aplicações relacionadas a infra-estruturas de comunicação de dados, de interface de usuários e de gerenciamento de dados. 45 Já os Frameworks verticais são voltados ao desenvolvimento com orientação para um domínio de aplicação específico. Procuram atender a características comuns do domínio e deixar as específicas para serem implementadas em aplicações construídas a partir deles. Os Frameworks de Domínio de Aplicação, ou verticais, são de maior interesse neste trabalho. Procura-se trabalhar com um determinado domínio de uma aplicação (engenharia elétrica – QEE) para, a partir dele facilitar desenvolvimento de novas aplicações . Além da aplicabilidade os Frameworks, podem ainda classificar-se, de acordo com sua visibilidade [BOS97]: • Frameworks do tipo caixa-branca: permitem ao usuário visualizar como foram implementados e a partir de classes já existentes, através de herança, criar novas classes adicionando funcionalidades particulares de sua aplicação. • Frameworks do tipo caixa-preta: apenas especificam, através de interfaces, os serviços que são por eles disponibilizados e requisitados. Facilitam ao usuário o seu uso, mas reduzem a flexibilidade. Um aspecto variável de um domínio de aplicação é chamado de “ponto de especialização”3. Diferentes aplicações dentro de um mesmo domínio são distinguidas por um ou mais Hot Spots, que representam as partes do framework de aplicação. Já os pontos fixos4 definem a arquitetura geral de um sistema de software (componentes básicos e os relacionamentos entre eles). Os frozen-spots ficam fixos em todas as instanciações do Framework de aplicação [SCH97]. A Figura 2.7 apresenta um Framework caixa branca com um único hot spot [SCH97]. Logo para a utilização do Framework é necessário fornecer a implementação referente a esse hot spot. 3 4 Em inglês “Hot Spot”. Em inglês “Frozen-spots”. 46 Hot Spot Figura 2.7: Framework Caixa Branca. A Figura 2.8 ilustra um Framework caixa preta, também com um único hot-spot. Nesse Framework existem duas alternativas de implementação. O usuário deve escolher uma delas ara obter sua aplicação específica. Note que na Figura 2.8 as implementações fazem parte do Framework, e são as únicas alternativas possíveis de implementação no hot-spot, já na Figura 2.7 a implementação não fazia parte do Framework, o que permite qualquer implementação para o hot-spot. Hot Spot Figura 2.8: Framework Caixa Preta Geralmente os Frameworks são desenvolvidos segundo as características de um Framework caixa-branca, isso acontece pois a medida que são utilizados, são sugeridas várias especializações. Logo, conforme vão alcançando um grau de maturidade, tornam-se cada vez mais parecidos com Frameworks do tipo caixa preta [PRE97]. Portanto a decisão em usar uma abordagem ou outra de um Framework para o desenvolvimento de uma aplicação, é uma característica de cada Framework, e que será definida na fase de projeto. De forma geral o projeto de um Framework é desenvolvido com uma generalização de um domínio de problema. Este, estabelece a flexibilidade necessária impondo restrições a serem consideradas pelos usuários [SIL00]. 2.2.5.1 Framework x Padrões de Projeto Os conceitos de padrões e Frameworks são às vezes confundidos, apesar de existir algumas diferenças fundamentais. É importante ressaltar que ambos são elementos de 47 projeto que contém microarquitetura de classes e objetos cooperante para resolver um problema recorrente de projeto orientado a objetos. Em [GAM95], são apresentados três diferenças entre padrões e Frameworks: • padrões de projeto são mais abstratos que Framewoks. Os Framewoks podem ser implementados, mas somente exemplos de padrões podem ser implementados. Um ponto forte dos Frameworks é que podem ser implementados em uma linguagem de programação, e não apenas estudados, mas executados e reutilizados diretamente. Já os padrões de projeto têm que ser implementados cada vez que forem reutilizados, eles explicam também as intenções, custos e benefícios e conseqüências de um projeto. • padrões de projeto são elementos de arquitetura menores que os Frameworks. Um Framework típico contém vários padrões de projeto, mas a recíproca não é verdadeira. • padrões de projeto são menos especializados que os Frameworks. Os Frameworks sempre têm um particular domínio de aplicação. Um Framework para um editor gráfico poderia ser usado na simulação de uma fábrica, mas ele não seria confundido com um Framework para simulação. Por outro lado, os padrões de projeto podem ser usados em praticamente qualquer tipo de aplicação. Apesar da existência de padrões de projeto mais específicos de um domínio, mesmo assim eles não ditam a arquitetura de uma aplicação da maneira como um Framework faz. Os Frameworks estão se tornando cada vez mais comuns e importantes. Eles são a maneira pela qual os sistemas orientados a objetos conseguem a maior reutilização. A tendência é que as aplicações orientadas a objetos terminarão por consistir-se em camadas de Frameworks que cooperam uns com os outros. A maioria dos trabalhos relacionados ao uso de Frameworks, estão ligados a aplicações, neste trabalho propõe uma abordagem relacionada ao uso de Frameworks em um projeto de banco de dados. Neste caso estamos propondo um Framework conceitual, segundo [LIS00] o objetivo de um Framework conceitual é o de fornecer um diagrama de classes que pode ser usado como base para a modelagem das classes do domínio da 48 aplicação. O termo Framework conceitual significa que o produto gerado a partir do uso do framework não é um software executável, mas sim, um esquema conceitual de dados que, posteriormente, deverá ser traduzido para um esquema de dados específico do domínio no qual será desenvolvida a aplicação. No caso deste trabalho o Framework está relacionado ao domínio de qualidade na energia elétrica. 2.3 Qualidade de Energia Elétrica e Apoio Computacional Os processos industriais modernos cada vez mais utilizam dispositivos de controle baseados em tecnologia microprocessada com o objetivo de atingir as metas gerenciais de produtividade e qualidade. Em conseqüência, suas cargas têm se tornado muito sensíveis aos fenômenos associados à qualidade da energia, trazendo grandes prejuízos devido às interrupções de seus processos, perdas de produção, perdas de insumos e custos associados à mão-de-obra e a reparos de equipamentos [MED03]. As concessionárias de energia elétrica por sua vez, estão sofrendo desgastes na sua imagem empresarial, além dos custos com pedidos de ressarcimento de prejuízos sofridos por consumidores, decorrentes da má qualidade da energia [MED03]. Várias pesquisas estão sendo desenvolvidas no que diz respeito a dados relativos a QEE, essas pesquisas em sua maioria são apoiadas por ferramentas computacionais. Portanto dispor de apoio computacional para tratar sistemas que visam QEE apresenta-se como uma alternativa crescentemente utilizada, como veremos a seguir. Para [MED03], [NET01] os recursos computacionais estão sendo usados pelas empresas de energia elétrica no sentido de implementar programas de diagnósticos e controle da qualidade da energia elétrica, já que a mesma está se transformando num fator de competitividade no mercado de energia elétrica. [MED03] apresenta um programa de monitoração com o objetivo de determinar indicadores que expressem a QEE nos pontos de conexão com a transmissora e em alguns pontos de entrega, de forma qualitativa e quantitativa, permitindo estabelecer relações de causa-efeito que venham subsidiar ações 49 de caráter preventivo ou corretivo para operações do sistema elétrico ou mesmo no planejamento da operação de expansão do sistema elétrico. Já [NET01] apresenta um algoritmo Neuro-DEA que através da medida da eficiência relativa identifica os valores das tensões que não causam prejuízos ao sistema bem como os pontos onde estas tensões prejudicariam o bom funcionamento dos equipamentos. [AGO00] mostra que as transformações ocorridas nos últimos anos na organização dos Sistemas de Energia Elétrica, com o estabelecimento de um ambiente competitivo, principalmente na geração e na comercialização, têm sinalizado para o aproveitamento máximo das capacidades das instalações. Ao mesmo tempo, novas metodologias e novos equipamentos (FACTS, por exemplo) são constantemente desenvolvidos, e precisam ser incorporados nas ferramentas de apoio ao setor elétrico de forma rápida e eficiente. Assim, um bom suporte computacional ao desenvolvimento dessas ferramentas torna-se imprescindível. Para [KAG03] as ferramentas computacionais destinadas a análises e diagnósticos de sistemas de distribuição integrados são muito procuradas atualmente, pois as regulamentações do setor têm exigido das concessionárias um melhor desempenho de seus sistemas elétricos com enfoque direto em qualidade de fornecimento. O trabalho proposto por [KAG03] apresenta uma metodologia de cálculo de índices técnicos descritivos, capazes de diagnosticar as redes de distribuição, além de descrever um modelo computacional para estimação de índices técnicos de qualidade de fornecimentos de energia das redes de média e baixa tensão. [ROM03] mostra o uso de programas computacionais que permitem ao usuário simular algumas situações no sistema elétrico, como por exemplo simular faltas deslizantes aplicadas ao longo das linhas e barramentos existentes dentro de uma área de influência pré-definida, e na monitoração das tensões na barra de interesse onde se deseja obter índices de qualidade. O trabalho proposto por [ROM03] apresenta uma ferramenta para essa simulação denominada “ANAQUALI”. 50 [PEL03] usa recursos computacionais para implementar um modelo de planejamento que estabelece as providências e obras prioritárias, em uma dada área geográfica da empresa que maximizem a relação benefício/custo. [PEL03] apresenta uma ferramenta denominada “SISQUALI” que permite tal funcionalidade. [CRU03] apresenta as características principais do sistema de monitoramento da qualidade da energia elétrica da Chesf e sua experiência na operação e manutenção de uma rede de instrumentos digitais de medição para fins da análise da qualidade da energia elétrica fornecida pela empresa, na administração de um sistema de coleta, armazenamento e distribuição de dados e nas atividades desenvolvidas em uma plataforma para teste e simulações. Neste trabalho é descrito a rede de monitoração de QEE da Chesf, bem como a administração do banco de dados e o sistema de distribuição de dados disponibilizados na Intranet da empresa. Para [DIA01], [ALV00], [FER99], [FER01] as informações relativas a QEE proporciona as concessionárias prover aos consumidores um atendimento pré-ativo, configurando uma nova oportunidade de negócio, e as ferramentas computacionais dão apoio no que diz respeito a monitoração, a aquisição, tratamento e disponibilização de dados relativos a QEE. [DIA01] discute o resultado adquirido no desenvolvimento do projeto [PPGEE00] onde foi implantado uma rede piloto de monitoração da QEE, essa discussão apresenta critérios utilizados no desenvolvimento de um sistema de aquisição de dados para gerenciamento da Qualidade da Energia Elétrica, baseado na instalação de uma rede de equipamentos de monitoramento da QEE em pontos chave do sistema, que permite avaliar uma série de fatores como: fenômenos eletromagnéticos a serem observados, metodologias e protocolos de medição, tratamento e disponibilização dos dados medidos. Com isso é possível definir requisitos de hardware, software, topologia da rede de monitoramento, arquitetura do sistema, transmissão dos dados e especificação de um equipamento monitor de QEE. [ALV00] fundamenta-se em um sistema de gerenciamento da QEE, desenvolvido a fim de permitir um eficiente tratamento da informação, tratando a grande quantidade de dados aquisitados, permitindo a extração de informações específicas, disponibilizando-as 51 na forma de relatórios formatados para atender aos objetivos estabelecidos em [FER99]. A partir da recuperação da informação contida no banco de dados uma série de outras informações pode ser levantada a fim de responder, à necessidade, ou o objetivo, da avaliação. Já [FER01] apresenta que uma rede de monitores instalada em pontos específicos do sistema elétrico, pode gerar uma grande quantidade de informações, sob diferentes formas de registro de variações na tensão ou corrente do sistema monitorado. Isto indica a necessidade de um sistema de gerenciamento que minimize a quantidade de dados armazenados e maximize a eficiência de sua análise, para isso foi desenvolvido um banco de dados relacional cujo objetivo global é a produção automatizada de relatórios que auxiliem no gerenciamento da qualidade da energia elétrica em um sistema elétrico. [VIV01] teve por objetivos especificar e desenvolver para a Companhia de Eletricidade do Rio de Janeiro – CERJ, um sistema que tivesse a característica de aquisitar anomalias relacionadas a sub-tensão, sobre tensão e harmônicos de tensão, transmitir esses dados até um Servidor de Comunicação e disponibiliza-los em um Servidor de Dados com programas visualizadores adequados para permitir a um especialista da área analisá-los e tomar decisões pertinentes. O sistema prevê também, a disponibilização do banco de dados para um Servidor Web para que as informações possam ser acessadas mediante uma autenticação, por consumidores ou agências reguladoras. Em [SAN02] tendo em vista a necessidade de competição neste novo mercado e vislumbrando as informações necessárias para o real conhecimento de seus clientes, a AES Eletropaulo está construindo uma base de dados de medição que permite o acompanhamento diário via Web do comportamento de seus clientes de Alta e Média Tensão, de suas subestações de transmissão e distribuição, o tratamento de clientes com várias plantas como uma mesma companhia, além do estudo e a análise de dados históricos. [FAV02] apresenta um projeto que trata a obtenção das informações com qualidade e prazos determinados, para a aquisição de dados das medições de fronteira, optou-se pela instalação de medidores de retaguarda, aproveitando-se os transformadores de instrumentos existentes. As informações são registradas em memória local dos medidores, 52 essas informações são coletadas pelo sistema de aquisição e armazenadas em um SGBD (Oracle), aplicativos acessam a base de dados para o cálculo da curva de carga e para a apresentação dos dados sob forma de tabelas e gráficos. Este trabalho apresenta a experiência da ELEKTRO na implantação de um sistema de aquisição e tratamento de dados das medições de fronteira. [OLI99] trata questões relativas a QEE e sua relação com a conservação de energia. Determina as principais medidas de conservação adotadas pelo PROCEL (Programa Nacional de Conservação de Energia Elétrica) dentro dos programas de GLD, quantificando física e economicamente os efeitos destas sobre a Qualidade. Objetivando por fim levantar argumentos para que os programas de conservação incluam em suas análises de viabilidade econômica as medidas de mitigação dos distúrbios gerados. [DAB95] apresenta um software para um sistema de gerenciamento da qualidade da energia elétrica. Os dados são adquiridos pelos monitores de QEE, tratados e inseridos no banco de dados, este trabalho usou o SGBD Microsoft Access, arquitetura Cliente/servidor e a Structures Query Language (SQL) para consulta aos dados. Analisando estas propostas, percebe-se que: • Existem propostas relativas a Qualidade da Energia Elétrica que usam algoritmos sem especificar uma base de dados, e outras que necessitam guardar informações, quando isso ocorre, geralmente usam um SGBD (relacional) para armazenamento. • Nas propostas que usam banco de dados, não é apresentado o projeto do banco de dados, vê-se que a definição dos requisitos para a definição do banco de dados está associada a experiência adquirida pelos profissionais que lidam com QEE. • Quando se deseja projetar um banco de dados, não existe o reuso das informações adquiridas por outros projetos/pesquisadores. • Os recursos de orientação a objetos são pouco utilizados. 53 2.4 UML - Linguagem de Modelagem Unificada A partir da década de 70, métodos orientados a objetos começaram a surgir, vislumbrando a mudança de paradigma. A programação orientada a objetos já estava amadurecendo, bastava portanto criar para ela uma metodologia, e começamos a conhecer a análise orientada a objetos. Tem-se comprovado que a orientação a objetos vem propiciar aos desenvolvedores aumento de produtividade, diminuição do custo de desenvolvimento e principalmente de manutenção, maior portabilidade e reutilização de código. A orientação a objetos baseia-se em vários conceitos como objetos, classes, encapsulamento, herança, polimorfismo e outros. Desde os primeiros conceitos de orientação a objetos, diversos métodos foram apresentados à comunidade, mas a maioria procuravam estender os métodos estruturados, logo tínhamos uma insatisfação por parte dos usuários que não conseguiam encontrar uma satisfação no que havia disponível. A partir de meados da década de 90 começava a surgir novas abordagens que procuravam trabalhar o novo paradigma. Vários pesquisadores através de suas publicações deram grandes contribuições à orientação a objetos: Ward Cunningham e Kent Beck, Sally Shlaer e Steve Mellor, Jim Odell e James Martin, Peter Coad e Ed Yourdon, James Rumbaugh (OMT – Object Modeling Technique), Grady Booch (Método Booch), Ivar Jacobson (OOSE – Object-Oriented Software Engineering). Os métodos que mais que mais cresciam no mercado eram: Booch’93, OMT-2 e OOSE, cada método apresentava pontos significativos. Resumidamente, o OOSE possuía seu foco em casos de uso (use case), provendo suporte à engenharia de negócios e análise de requisitos. O OMT-2 era expressivo na fase de análise dos sistemas de informação, já Booch’93 destacava-se na fase de projeto. Os esforços para a unificação desses métodos tiveram início com James Rumbaugh e Grady Booch na Rational Software, mais tarde juntou-se a essa equipe Jacobson com o 54 intuito de incorporar o método OOSE. O método unificado passou a se chamar UML – Unified Modeling Language. Durante o ano de 1996 a UML já era vista pelas organizações como uma estratégia de negócios. Um requerimento de proposta de padronização emitido pela OMG5 gerou uma união de forças a fim de produzir uma resposta a esse requerimento. Houve participação ativa da comunidade de engenharia de software, além de várias empresas de software que passaram a contribuir no intuito de fortalecer a UML. Assim consegui-se uma linguagem bem definida, expressiva, poderosa e genericamente aplicável. Para [BOO99] a UML é uma linguagem-padrão para a elaboração da estrutura de projetos de software, que poderá ser empregada para a visualização, especificação, construção e a documentação de artefatos que façam uso de sistemas complexos de software. Segundo [FOW00] a UML é chamada de linguagem de modelagem, não é um método. A maioria dos métodos consiste, pelo menos em princípio, de uma linguagem de modelagem e de um processo. A linguagem de modelagem é a notação utilizada por métodos para expressar projetos. O processo é a sugestão de quais passos a serem seguidos na elaboração de um projeto. Para o [OMG99], a UML consiste na especificação semi-formal de um metamodelo para representar a semântica de modelos de análise e projeto orientado a objeto, incluindo modelos estáticos, comportamentais, de uso e arquiteturais. Para [MEL02] a UML é uma linguagem para especificação, visualização, construção e documentação de artefatos6 de sistemas de software. Um fator importante no uso da UML é que ela é independente de linguagens de programação quanto de processos de desenvolvimento, logo ela pode ser utilizada para a 5 É uma organização internacional, que promove a teoria de prática da tecnologia orientada a objeto em desenvolvimento de sistemas. A patente da organização inclui o estabelecimento de normas industriais e especificações de gerenciamento de objetos para prover um padrão comum para desenvolvimento de aplicações. 6 Exemplos de artefatos: requisitos, arquitetura, projeto, código fonte, planos de projeto, testes, protótipos, versões, e etc. 55 modelagem de sistemas, não importa qual a linguagem de programação que será utilizada na implementação do sistema, ou qual a forma de desenvolvimento adotada. A UML é uma linguagem visual pra modelar sistemas orientados a objetos. Isso quer dizer que a UML é uma linguagem construída de elementos gráficos (visuais) utilizados na modelagem que permite representar os conceitos do paradigma de orientação a objetos. Através de elementos gráficos definidos nesta linguagem pode-se construir diagramas que representam diversas perspectivas de um sistema [ BEZ02]. O desenvolvimento de um sistema de software demanda múltiplas visões dos desenvolvedores, ou seja, eles devem ter a possibilidade de estudar esse sistema a partir de várias perspectivas. Segundo [BOO99] um sistema pode ser descrito por cinco visões interdependentes do sistema, as visões propostas são: • Visão de Casos de Uso: descreve o sistema de um ponto de vista externo como um conjunto de interações entre o sistema e os agentes externos ao sistema. • Visão de Projeto: enfatiza as características do sistema que dão suporte, tanto estrutural quanto comportamental, às funcionalidades externamente visíveis do sistema. • Visão de Implementação: corresponde à distribuição física dos sistemas em seus subsistemas e à conexão entre esses partes. • Visão de Processo: esta visão enfatiza as características de concorrência (paralelismo), sincronização e desempenho do sistema. É importante lembrar que dependendo das características e complexidades do sistema, nem todas as visões precisam ser construídas. Na terminologia da UML os documentos que são criados na modelagem são denominados artefatos de software ou artefatos, esses artefatos compõem as visões do sistema. Os artefatos gráficos produzidos durante o desenvolvimento de um sistema de software são definidos através dos diagramas da UML: 56 • Diagrama de classe: utilizado na construção do modelo de classes desde o nível de análise até o nível de especificação. • Diagrama de objetos: podem ser vistos como instâncias de diagramas de classes, da mesma forma que objetos são instâncias de classes7. • Diagrama de componentes: mostra os vários componentes de software de um sistema e suas dependências. • Diagrama de implantação: representa a topologia física do sistema e, opcionalmente, os componentes que são executados nessa topologia. • Diagrama de caso de uso: corresponde a uma visão externa do sistema e representa graficamente os atores, casos de uso e relacionamentos entre esses elementos, onde o objetivo é ilustrar em um nível alto de abstração quais elementos externos interagem com que funcionalidades do sistema. • Diagrama de seqüência: a ênfase está na ordem temporal das mensagens trocadas entre os objetos. • Diagrama de colaboração: enfatiza os relacionamentos que há entre os objetos que participam da realização de um cenário. • Diagrama de transição de estados: utilizado para realizar a análise das transições entre estados dos objetos de um sistema de software, podem prever todas as possíveis alterações realizadas, em função de um evento que pode ocorrer. • Diagrama de atividades: é um tipo especial de diagrama de estados, em que são representados os estados de uma atividade, em vez dos estados de um objeto, esse diagrama é orientado a fluxo de controle. Essa dissertação se concentra no diagrama de classes, pois esse é o diagrama central para descrever a estrutura dos Frameworks, e na descrição dos padrões de análise. Apenas alguns recursos da UML serão utilizados, os quais fazem parte do modelo de classes, cujos principais construtores são mostrados na Figura 2.9. Em relação ao SIQEE este apresenta características que indicam a viabilidade de disponibilização deste sistema na Web, logo o uso de linguagem padrão torna-se fator importante. 7 Diagramas de objetos também são chamados de diagramas de instâncias. 57 Pacote Multiplicidade Classe Classe Agregada atributo : domínio 1 Método() Generalização/ Especialização atributo : domínio 0..* Associação Método() Agregação Subclasse ClasseComponente atributo : domínio Suclasse atributo : domínio atribributo : domínio Método() Método() Instanciação Composição Método() objeto: classe Figura 2.9: Notação gráfica do diagrama de classes UML. Segundo [CON03] na Web Application Extension for UML (WAE), a notação UML é estendida com semântica e restrições adicionais para permitir a modelagem de elementos da arquitetura específica da Web como parte do modelo de sistema. Para aplicações Web significa que os modelos UML, precisam capturar a execução da lógica de negócios nas páginas Web, nos scripts do cliente e nos componentes Web. Tendo um único modelo central de toda a lógica de negócio em um sistema, conseguimos compreendê-lo melhor e, eventualmente, aperfeiçoá-lo em futuras versões. Segundo [JON01], os objetivos principais definidos pelos criadores da UML são os seguintes: • Prover aos usuários uma linguagem de modelagem visual expressiva e pronta para uso, de forma que eles possam desenvolver e compartilhar modelos significativos; • Prover mecanismos de extensibilidade e especialização para ampliar os conceitos centrais; • Ser independente de linguagens de programação e processos de desenvolvimento particulares; 58 • Prover uma base formal para entendimento da linguagem de modelagem; • Estimular o crescimento do mercado de ferramentas orientadas a objetos; • Suportar conceitos de desenvolvimento de nível mais alto, tais como colaborações, estruturas, modelos e componentes; • Integrar as melhores práticas. De acordo com [FUR98], a UML pode ser usada para as seguintes atividades ao longo de um processo de desenvolvimento de software: • Mostrar as fronteiras de um sistema e suas funções principais utilizando atores e casos de uso; • Ilustrar a realização de casos de uso com diagramas de interação; • Representar uma estrutura estática de um sistema utilizando diagramas de classe; • Modelar o comportamento de objetos com diagramas de transição de estado; • Revelar a arquitetura de implementação física com diagramas de componente e de implantação; • Estender sua funcionalidade através de estereótipos. Segundo [TON03] a UML tem como objetivo prover as necessidades de desenvolvedores de software com uma linguagem de modelagem visual completa, buscando atingir os seguintes aspectos: • disponibilizar de mecanismos de especificações que possam expressar os níveis conceituais; • independência de processos de desenvolvimento e linguagens de programação; • incentivo do crescimento das aplicações desenvolvidas no conceito da orientação a objetos; • Permissão de suporte a conceitos de desenvolvimento de alto nível, tais como Frameworks, padrões e componentes; Considerando os objetivos definidos por [JON01] essa dissertação está relacionada ao segundo e ao terceiro objetivo, em relação as atividades descritas por [FUR98] está relacionada a terceira e sexta, e em relação a [TON03] está relacionada a todos os itens. 59 2.5 Linguagens de Marcação As linguagens de marcação já existem a algum tempo de várias formas, cuja característica fundamental é a capacidade de descrever símbolos ou marcadores inseridos em um documento de texto para definir o significado que aqueles símbolos dão ao texto associado [CAR01]. Já [HOL01] define uma linguagem de marcação como uma referência à descrição do documento, ou seja, do modo como o conteúdo do documento deve ser interpretado. O objetivo principal de uma linguagem de marcação é fornecer uma descrição detalhada de como o documento dever ser estruturado independente de qual processador possa estar processando os dados, e a tarefa de formatação é deixada para as folhas de estilo que o desenvolvedor cria [PIT99]. A HTML(Hypertext Markup Language), linguagem de marcação de hipertexto popularizou o uso de linguagens de marcação, foi criada em 1990 como uma técnica para a criação e vinculação de documentos, e execução de links. Com o crescimento do uso da Web para disseminação das informações novas necessidades foram surgindo excedendo as capacidades da HTML. A XML (Extensible Markup Language), linguagem de marcação extensível, foi criada para superar essas limitações e capacitar uma nova geração de intercâmbio de informações. As figuras Figura 2.10 e Figura 2.11 apresentam um exemplo de uma página HTML e XML respectivamente. <HTML> <HEAD> <TITLE> Livro </TITLE> </HEAD> <BODY> <CENTER> <H1> Qualidade na Energia Elétrica Autor Ricardo Aldabó Editora Artliber </H1> </CENTER> Engenharia Elétrica </BODY> </HTML> Figura 2.10: Código de uma página em HTML. 60 <?xml version=”1.0” encoding=”utf-8”?> <LIVRO> <AREA> Engenharia Elétrica </AREA> <TITULO> Qualidade na Energia Elétrica </TITULO> <AUTOR> Ricardo Aldabó </AUTOR> <EDITORA> Artliber </EDITORA> </LIVRO> Figura 2.11: Código de uma página em XML. 2.5.1 Características da XML A XML, [W3C98] é um padrão aprovado pela W3C8 (Worls Wide Web Consortium) que deve se tornar um formato universal para a troca de informações na Web. A SGML (Standard Generalized Markup Language), linguagem de marcação generalizada padrão, é predecessora da XML, mas também devido a sua generalidade tornou-se complexa demais para o seu uso amplamente na Web. Contudo segundo [CAR01] como a XML é definida como um subconjunto de SGML, qualquer documento XML válido também é um documento SGML válido, mas o inverso não é verdadeiro. Em [PIM00], apresenta a XML como uma meta-linguagem, o que significa que XML provê recursos para a definição de gramáticas que caracterizam linguagens para classes de documentos específicos, com conjunto de elementos, atributos e regras de composição bem determinados. 8 Órgão que define os padrões para a Web. 61 Já [GRA02], diz que a XML é uma linguagem usada para representar dados como uma string que inclui uma “marcação” intercalada a fim de descrever as propriedades dos dados. O uso de marcação permite que o texto seja intercalado por informações relacionadas a seu conteúdo ou forma. Nas figuras Figura 2.10 e Figura 2.11 podemos observar as diferenças entre XML e HTML, segundo [ABT99] podemos citar os seguintes aspectos: • novas tags9 podem ser definidas à vontade; • estruturas podem ser aninhadas a profundidades arbitrárias; • um documento XML pode conter uma descrição opcional de sua gramática. Visto que as tags podem ser definidas de acordo com a necessidade do sistema, isso faz com que as tags deixam de ser fixas e se tornam mais auto-descritivas. Logo pode-se ainda atribuir nomes mais significativos ao conteúdo referenciado. Já a gramática descrita no terceiro aspecto pode ser usada pelas aplicações que usam XML e que necessitam validar a estrutura do documento. Esta descrição da gramática é chamada esquema, no qual existem as seguintes propostas: DTD e XML Schema. Diferente da HTML, XML exige que a todo elemento de abertura seja associado um elemento de fechamento, mesmo que nenhum dados esteja delimitado por tais elementos. De acordo do [PIT99] a XML é uma linguagem de marcação mais avançada do que o HTML, afirma ainda que a HTML é usado basicamente para apresentação de conteúdo e o XML para estruturar os dados, mesmo assim a XML não é uma substituta da HTML, e também não é uma HTML com marcas extras. Na Web a HTML é muito utilizada muito embora ela trate as informações de forma superficial, visto que descreve a disposição de textos, imagens e controles em uma página e não o seu conteúdo. Essa característica é o inverso da XML, uma que vez que ela descreve o conteúdo em vez da apresentação. 9 São marcas combinantes que são balanceadas devendo ser fechadas em ordem inversa à aquelas que foram abertas. O texto entre as marcas é o conteúdo.[ABT99] 62 Esta diferença agrega uma vantagem para XML em relação a HTML. Segundo [SUC98], a XML permite que a troca eletrônica de dados na Web seja legível para o computador, o que não acontece na HTML, uma vez que a troca de documentos é legivel apenas para o homem. Com a XML há um ganho semântico pois os programas passam a entender a estrutura dos documentos disponíveis na Web, possibilitando assim pesquisas inteligentes das informações armazenadas. Para [PIT99] a XML é na realidade uma maneira de solucionas determinados problemas que são encontrados ao usarmos a HTML. Com a XML temos: • Melhor controle em relação ao layout; • Menos esforço no servidor Web devida à capacidade de acessar informações do lado do cliente; • O uso de vários tipos de links; • A capacidade de publicar qualquer tipo de informação tanto na Internet quanto em Intranets. • 2.5.2 Um número menor de problemas para exibir páginas longas. XML como intercâmbio de Informações Com a evolução da Internet, a World Wide Web (Web) se tornou um vasto repositório de dados dos mais variados domínios. A XML vem sendo usada para a representação e intercâmbio de dados na Web. Segundo [CH98], um software precisaria ser apenas capaz de exportar e importar os dados utilizados no formato XML para que conseguisse operar com outras ferramentas compatíveis com XML. A [OMG99b] especifica os quatros seguintes cenários onde o XML pode ser útil: • Combinação de ferramentas em um ambiente heterogêneo; • Cooperação através de definições comuns de metamodelos; • Troca de experiências em um ambiente distribuído com facilidade de publicação e captura de informações; • Promoção de padrões de projeto e reutilização. 63 Neste trabalho estaremos utilizando XML para disponibilização de um esquema para um banco de dados independente do SGBD. A Figura 2.12 representa a estrutura de disponibilização de dados na Web utilizando XML, o que facilitaria da troca de informações entre grupos de pesquisas de QEE, pois os dados estariam em formato padrão, fazendo com que cada grupo tenha apenas uma ferramenta para capturar dados em formato XML e armazenar em seu banco de dados de acordo com a tecnologia usada. Em [MAG01] é apresentado uma possível solução para o problema de dados semiestruturados é extraí-los de páginas Web e armazená-los em banco de dados relacional para posterior manipulação. Neste sentido, diversas abordagens têm sido propostas para a extração e estruturação de dados na Web. Banco de Dados QEE Disponibilização de dados Web em formato XML Ferramenta de Extração de Dados na Web Oracle DB2 Outros Figura 2.12: Estrutura de disponibilização de dados na Web 2.6 Modelo de Dados A modelagem de dados teve seu início sob o enfoque da abordagem Entidade- Relacionamento proposto por Peter P. Chen na década de 70, mas tem evoluído com o passar dos anos, para enfoques que a tornam mais próxima ao conceito de orientação a objeto o qual é foco deste trabalho. 64 Para [COU97] é importante entender o conceito de modelo antes de entender a modelagem de dados, para ele o modelo é representação abstrata e simplificada de um sistema real, com a qual se pode explicar ou testar o seu comportamento, em seu todo ou em partes. Um modelo de Dados é uma coleção de conceitos que podem ser usados para descrever um conjunto de dados e operações para manipular esses dados [BAT92], já [NAV00] diz que um modelo de dados é uma coletânea de conceitos que podem ser utilizados para descrever a estrutura de um banco de dados, fornecendo meios necessários para alcançar essa abstração. Segundo [KOR99] um modelo de dados é um conjunto de ferramentas conceituais usadas para a descrição de dados, relacionamentos entre dados, semântica de dados e regras de consistência. A modelagem de dados ajuda a organizar sua forma de pensar sobre os dados, esclarecendo o significado e a aplicação prática deles. Ajuda não somente a comunicar as necessidades, mas também a comunicar de que forma pretende atendê-las. Provê uma plataforma a partir da qual pode utilizar para projetar e construir com um certo grau de segurança quanto ao sucesso [MUL99]. A modelagem de dados é a primeira etapa em um projeto de banco de dados. Ela estabelece o vínculo entre as necessidades dos usuários e a solução de software que as atende, é a abstração inicial que encobre a complexidade do sistema [MUL99]. Com relação a dimensão dos modelos de dados segundo [NAV00], eles podem ser classificados em duas dimensões: em função da etapa de desenvolvimento do projeto de banco de dados em que o modelo é utilizado, um exemplo seria o projeto conceitual, lógico e físico, a outra dimensão seria em função da flexibilidade e poder de expressão. A etapa de projetar um banco de dados está relacionada com o ciclo de vida de desenvolvimento de software, onde a cada etapa, novas informações e detalhes são acrescidos ao projeto de software [PRE01]. Durante o projeto de banco de dados, as 65 informações que compõe o banco de dados são especificadas utilizando-se modelos de dados em diferentes níveis de abstração, iniciando por modelos de alto nível de abstração. Com relação a dimensão de flexibilidade e expressividade, o termo flexibilidade está relacionado, neste contexto à facilidade com a qual o modelo pode tratar com aplicações complexas, enquanto que a expressividade refere-se à habilidade de gerar diferentes abstrações em uma aplicação [NAV00]. Segundo este aspecto os modelos são classificados como: primitivos (ou de arquivos), modelos de dados clássicos (relacional, hierárquico, redes), modelos semânticos de propósito especial (CAD/CAM e SIG) e modelos orientado a objetos. Considerando essas duas classificações este trabalho estará considerando o nível de abstração empregados nos modelos conceituais e modelos orientado a objetos. 2.6.1 Modelagem Conceitual de Banco de Dados Segundo [NAV00], o projeto de banco de dados envolve três fases: projeto conceitual, projeto lógico e projeto físico. Este trabalho tem enfoque no projeto conceitual. Uma das etapas de um processo de desenvolvimento de um projeto de banco de dados é criar um esquema conceitual para o banco de dados, utilizando um modelo conceitual de alto nível, essa etapa é chamada de projeto conceitual. Segundo [NAV00] o esquema conceitual é uma descrição concisa dos requisitos de dados feitos pelos usuários, devido a esses conceitos não incluírem detalhes sobre implementação, são geralmente mais fáceis de serem compreendidos e podem ser utilizados para a comunicação de usuários não-técnicos. [MUL99] diz que um modelo conceitual representa as informações no banco de dados. Esse esquema representa as estruturas, operações e as restrições do modelo de dados que você está utilizando. Já [COU97] define um modelo conceitual como aquele em que os objetos, suas características e relacionamentos têm representação fiel ao ambiente 66 observado, independente das limitações quaisquer impostas por tecnologias, técnicas de implementação ou dispositivos físicos. Em [HEU01] define-se um modelo conceitual como uma descrição do banco de dados de forma independente de implementação em um SGBD. O modelo conceitual registra que dados podem aparecer no banco de dados, mas não registra como estes dados estão armazenados considerando o SGBD. A modelagem conceitual é feita com base em algum formalismo conceitual, como por exemplo Entidade-Relacionamento ou Orientação a Objetos. Esse formalismo provê um conjunto de conceitos, elementos e regras que são usados no processo de modelagem da realidade, enquanto que a linguagem de descrição fornece uma gramática para a apresentação do esquema conceitual resultante da modelagem. Logo esse diferencial é o mais importante para o contexto deste trabalho, uma vez que podemos derivar diferentes estruturas de implementação a partir de um mesmo modelo conceitual. Assim, a partir deste modelo conceitual poderemos a qualquer instante, derivar um modelo para implementação de um SGDB relacional. Se futuramente a necessidade não for mais um modelo relacional, descartamos o modelo derivado, voltaremos ao modelo conceitual, aplicaremos as regras de derivação e poderemos ter um outro tipo de modelo. 67 3 Modelagem Conceitual de Dados para Sistemas de Informação da Qualidade da Energia Elétrica Esse capítulo apresenta os modelos conceituais de banco de dados para aplicações para SIQEE, bem como a proposta de um modelo conceitual para um banco de dados para QEE considerando o paradigma de orientação a objetos. Pesquisas vêm sendo desenvolvidas com o objetivo de se encontrar um projeto ideal para um banco de dados de QEE que atenda as necessidades dos usuários. Geralmente os projetos desses bancos de dados têm como base a experiência dos seus projetistas em conjunto com os usuários ligados a área de engenharia elétrica. Em geral, as publicações que apresentam resultados de trabalhos que usam um SGBD não apresentam um projeto conceitual adequado para o banco de dados para QEE, como pode ser visto em [DAB95], [FERN99], [VIV001], [FAV02], [SAN02], [CRU03],[ROM03], [MED03]. Apesar de não apresentar um modelo conceitual é possível notar que tais trabalhos usam um SGBD relacional. Os trabalhos [DIA01], [FER01] e [PPGEE00] também não apresentam um modelo conceitual, mas foi desenvolvido um modelo lógico considerando um SGBD relacional específico. Podemos observar que tais bancos de dados para QEE não aproveitam as experiências adquiridas em outros projetos, ou seja, eles sempre começam do zero. Isto acontece devido a falta de maturidade no desenvolvimento destes tipos de aplicações e de ferramental e métodos adequados de trabalho. Isto normalmente leva a ineficiência, a geração de erros e perda de tempo. Por outro lado a engenharia de software tem proposto metodologias e técnicas de reuso baseadas em orientação a objetos, que, utilizadas de forma apropriada, podem levar a grandes ganhos de eficiência e qualidade no gerenciamento da informação sobre a QEE. Como foi apresentado no item 2.2 existem vários instrumentos de reutilização que apóiam um projeto de sistemas, e que podem ser usados no projeto de um banco de dados, a fim de garantir qualidade, rapidez e sucesso no processo de desenvolvimento. Neste trabalho estaremos utilizando Padrões de Análise e um Framework Conceitual (QEE_Frame), aplicáveis as etapas de requisitos e modelagem conceitual de 68 banco de dados para QEE visando facilitar o desenvolvimento de novos bancos de dados. O objetivo é apresentar um modelo conceitual de um banco de dados (framework de dados), que através de uma ferramenta de software permitirá a qualquer usuário não especialista editar o modelo e montar o seu banco de dados para QEE. O Framework Conceitual chamado QEE_Frame, utiliza a linguagem de modelagem unificada UML acrescida de alguns esteriótipos (um mecanismo de extensão fornecido pela UML ) para identificar pontos de variabilidade. 3.1 Requisitos de Modelagem Conceitual para SIQEE A Figura 3.1 apresenta uma arquitetura de um Sistema de Informação para a Qualidade da Energia Elétrica. A definição desta arquitetura foi possível considerando vários aspectos: a definição de sistemas de informação, o conceito de QEE, e da análise dos trabalhos relacionados [DAB95], [FERN99], [VIV001], [FAV02], [SAN02], [CRU03],[ROM03], [MED03]. Analisando essa arquitetura para um SIQEE percebe-se que esse tipo de sistema provê um conjunto de atividades, incluindo: • Medição de diversos fenômenos eletromagnéticos através de equipamentos específicos (medidores) localizados nos locais onde se quer monitorar; • Armazenamento destas medidas, normalmente através de um banco de dados digital; • Pesquisas sobre estas representações para produzir novas medidas e descobrir novos relacionamentos através da integração de fontes diversas; 69 Local de Monitoração Rede Local Usuários Medidor Servidor Usuários Medidor Meio de Comunicação Disponibilização da Informação Usuários Medidor Dados de QEE Figura 3.1: Arquitetura de um Sistema de Informação para Qualidade da Energia Elétrica. Na Figura 3.1 observamos que em geral temos equipamentos monitores de QEE localizados nos locais os quais desejamos monitorar, esses locais podendo estar relacionados a um mesmo consumidor, ou a consumidores diferentes. Dados correspondentes aos fenômenos eletromagnéticos em investigação são localmente detectados, transmitidos e processados. Pode-se optar por várias formas de transmissão de dados, as mais usadas são através de redes locais ou remotamente para consumidores localizados em pontos geograficamente distantes. Os dados são transmitidos para um servidor de dados que será responsável em armazenar toda a informação do sistema. Esse servidor de dados geralmente utiliza um SGBD onde os dados podem ser processados e armazenados. Para a disponibilização da informação há uma comunicação entre o servidor de dados e os clientes, essa comunicação podendo ser via rede local ou remotamente. Os clientes têm acesso a base de dados com consultas pré-definidas que servem para análise de dados relativos a QEE. Com base nessas atividades é possível definir os requisitos para modelagem conceitual de um SIQEE: 70 • Requisitos de dados convencionais cadastrais para os locais de monitorização e consumidores; • Tipos de equipamentos e ajustes necessários; • Os parâmetros que caracterizam os fenômenos eletromagnéticos medidos ou simulados; 3.2 • Valores de referência para QEE, tais como limites, curvas estabelecidas e etc; • Características de ocorrências de Campo; Padrões de Análise de QEE Uma das técnicas que vem crescendo em termos de utilização pelos projetistas de sistemas orientados a objetos é o emprego de instrumentos que possibilitem a reutilização de componentes de software através da definição de padrões. Estes padrões podem ser de análise, projeto, implementação entre outros. Consideraremos aqui os padrões de análise. Um padrão de análise é um mecanismo de reutilização que permite aos projetistas menos experientes reutilizarem o conhecimento de outros especialistas durante a fase de análise. Para [FOW97] a contribuição mais significativa não é o modelo fornecido como solução, mas sim, o raciocínio que está por trás desta solução. O processo de reconhecimento ou captura de um novo padrão de análise requer do projetista, habilidade e experiência suficientes para perceber analogias existentes entre partes de um projeto, de um sistema em estudo, que possam ser recorrentes em outros sistemas. Segundo [FER98], o processo de criação de padrões é feito através da identificação de partes de um projeto que são possíveis candidatas à reutilização. Em seguida, esse diagrama deve ser abstraído, suas especificidades devem ser eliminadas e o padrão deve ser documentado de acordo com uma linguagem de descrição de padrões. Para [ROB93] para que um analista consiga identificar um novo padrão de análise é necessário que ele possua a habilidade de abstração. O processo de descoberta de padrões 71 reutilizáveis é uma tarefa mais difícil que utilizá-los, isso justifica-se pois esses padrões devem desconsiderar aspectos característicos do sistema ou da organização ao qual o sistema está sendo desenvolvido. Em [LIS00] é apresentado um processo de captura de padrões, como está apresentado na Figura 3.2, onde é apresentado o processo de criação e uso de padrões onde a aplicação de padrões requer a percepção de uma analogia entre um problema atual e os padrões disponíveis, com a conseqüente adaptação no projeto, do padrão identificado. Padrão Abstrato Sistema A Sistema B Abstração P1 Especialização Analogia P2 Figura 3.2: Processo de captura e aplicação de padrões. O uso do processo apresentado na Figura 3.2 apresentou um resultado satisfatório em [LIS00], porém para a definição de padrões de análise para QEE, foi necessário propor uma extensão a esse processo, uma vez que tais padrões apresentam especificidades que não foram consideradas por [LIS00]. Para gerar padrões para QEE, ou seja, aspectos comuns entre diversas aplicações, propomos um novo processo baseado em comparação de aplicações desenvolvidas, com análise de domínio do problema e com abordagem de padrões conhecidos. Comparação de diversas aplicações foi feita por meio de revisão de literatura. Análise de domínio foi conseguida através da experiência de especialistas, verificando-se as normas e relatórios técnicos especializados. Por fim tinha-se a experiência de construir um sistema de qualidade em energia elétrica. A proposta sugerida na Figura 3.3 pode ser adaptada para qualquer domínio desde que apresente um conjunto consistente de informações como os relatórios técnicos 72 especializados, normas relativas ao domínio (se existirem), e experiência de projetistas/usuários de um determinado domínio. Relatórios Técnicos Especializados Normas Experiência no domínio Padrão Abstrato Sistema A Sistema B Abstração P1 Especialização Analogia P2 Figura 3.3: Processo de captura e aplicação de padrões de QEE. A próxima etapa após o reconhecimento dos padrões é definir a linguagem que irá descrever o padrão de análise. É importante que seja uma linguagem de amplo conhecimento e fácil de ser entendida pelos usuários, que seja extensível a fim de atender as especificidades que possam a vir a existir para aplicação. De acordo com as características apresentadas no item 2.4, a UML atende a todos esses requisitos. Assim para apresentar os padrões de análises propostos será utilizado a notação gráfica do diagrama de classes da linguagem UML. A seguir serão apresentados exemplos dos padrões de análise para QEE, baseado na estrutura de definição de padrões apresentado no item 2.2.4. 3.2.1 Padrão Local de Monitorização Problema: Como modelar dados referentes aos locais de monitorização a fim de obter informações de qualidade da energia elétrica? 73 Contexto: A monitoração da qualidade da energia elétrica pode ser executada objetivando vários fins, uma vez determinado o escopo de um projeto de monitoração. Em função de um objetivo de monitoração, regiões ou zonas de um sistema elétrico, definidas pelas seleções dos locais de monitorização, podem ser monitorados a fim de se obter informações necessárias ao gerenciamento da qualidade da energia elétrica. Forças: • Todo consumidor tem pelo menos um local de monitorização; • Um consumidor pode ter vários locais de monitorização; • Necessidade de obter dados do local de monitorização para QEE. Solução: A Figura 3.4 mostra o diagrama de classes que compõe o padrão. Em cada local de monitorização podemos ter um ou vários contatos associados, e o consumidor que está sendo pesquisado pode ter vários locais monitorados. Padrão Local de Monitorização Local_Monitoracao Cod_Local Dat_Inicio_Monitoracao Nom_Local Des_Local Num_Frequencia_alimentacao_local Dat_Fim_Monitoracao Val_Tensao_Nominal_Local 1 0..n Local_Monit_Contato Cod_Contato Nom_Local_Contato Car_Contato Tel_Fax Tel_Voz Tel_Dados Obs_Contato 1..n 1 Monitoracao_Consumidor Cod_Consumidor Nom_Consumidor End_Consumidor Ufe_Consumidor Cep_Consumidor Pais_Consumidor Tel1_Consumidor Tel2_Consumidor Obs_Consumidor Nom_Cont_Consumidor Figura 3.4: Diagrama de Classes do Padrão Local de Monitorização 74 3.2.2 Padrão Equipamento de QEE Problema: Como modelar dados referentes aos equipamentos (medidores) de QEE? Contexto: Os monitores de qualidade da energia elétrica são equipamentos com capacidade para identificar informações de fenômenos eletromagnéticos diversos, em diversas faixas de freqüências. Eles também possuem memória de dados, e são dotados de dispositivos de transmissão de dados, tratamento de dados, entre outras características. Forças: • Existem diversos equipamentos para medição/monitoração da QEE disponíveis no mercado, cada qual com seus critérios de aquisição e pré-tratamento de dados, e diferentes formatos de registro de dados. • Necessidade de se atender a diferentes formas de caracterização dos fenômenos eletromagnéticos relativos a QEE, em decorrência do fato de ser ainda incipiente a normatização relativa ao assunto . Solução: A Figura 3.5 mostra o diagrama de classes que compõe o padrão. Um equipamento de QEE pode ter vários canais. Cada canal pode ter uma grandeza associada a um rótulo. Ao longo do tempo, esse equipamento pode estar monitorando locais diferentes. Padrão Equipamento de QEE Canal_Equipamento Cod_Canal_Equipamento Num_Canal Raz_Transf_De Raz_Transf_Para * Uni_Grandeza Canal 1 Cod_Canal Nom_Grandeza Ind_Grandeza Rot_Grandeza * Equipamento Cod_Equipamento Num_Serie Nom_Fabricante Nom_Modelo Ver_Software Str_Inic_Pc Str-Inic_Equipamento Obs_Equipamento Figura 3.5: Diagrama de Classes do Padrão Equipamentos de QEE 75 3.2.3 Padrão Ajuste dos Equipamentos de QEE Problema: Como modelar parâmetros de ajustes para os equipamentos de monitoração de QEE? Contexto: Os dados coletados pelos equipamentos monitores de QEE são entregues sob a forma de pacotes de dados com uma formatação sugerida pelo fabricante. Este formato de dados carrega toda a informação de identificação dos dados, de ajuste do equipamento e dos eventos propriamente ditos. Forças: • Para um equipamento podemos ter vários ajustes a fim de monitorar a QEE. • Necessidade de armazenar as informações dos ajustes para apoiar a análise relativa aos dados coletados. • Os ajustes influenciam nos dados referentes aos distúrbios elétricos. Solução: A Figura 3.6 mostra o diagrama de classes que compõe o padrão. Um equipamento de QEE pode ter vários ajustes. Cada parâmetro de ajuste tem um tipo associado. Em função do ajuste feito no equipamento teremos diferentes quantidades de dados. Padrão Ajuste Equipamentos QEE Parametro_Aguste Cod_Param_ajustavel Dat_Ajuste Val_Ajuste * Tipos_Ajustes Cod_Ajuste Des_Ajuste Uni_Ajuste 1 Idc_Ajuste Figura 3.6: Diagrama de Classes do Equipamento de QEE. 76 3.2.4 Padrão Eventos em um Sistema Elétrico Problema: Como caracterizar distúrbios em um sistema elétrico? Contexto: Os eventos são rótulos de identificação dos fenômenos eletromagnéticos monitorados ou simulados. Eles estão relacionados com um conjunto de dados referentes aos distúrbios. Distúrbios são informações que, após um tratamento formam pacotes de informações que são identificados por um evento. Cada evento está relacionado a um local de monitorização. Forças: • Os distúrbios têm a característica de possuírem um tamanho e formato que variam em função dos ajustes do equipamento monitor de QEE. • Necessidade de caracterização de diferentes fenômenos eletromagnéticos (afundamentos, harmônicos,etc.). Solução: A Figura 3.7 mostra o diagrama de classes que compõe o padrão. Eventos são informações sobre distúrbios eletromagnéticos que são medidos pelos monitores de QEE. Essa solução permite através do esteriótipo <<incomplete>>, mostrar que podem existir outros distúrbios monitorados de acordo com a necessidade do projeto de banco de dados . Padrão Eventos em um Sistema Elétrico Tratamento_Eventos Cod_Tratamento_Eventos Tam_Janela_Eventos Tip_Janela_Eventos * Des_Janela_Eventos <<Incomplete>> Eventos_Tendencia_Vef Cod_Tend_Rms Val_Maximo Val_Medio Val_Minimo Eventos_Estampa 1 Cod_Evento Idc_Tipo_Evento Dat_Inicio_Evento <<Incomplete>> Eventos_Harmonicos Ord_Harmonico Mod_harmonico Ang_Harmonico <<Incomplete>> Eventos_Vtcd Cod_Vtcd Des_Max_Amp Media_Amp Dur_Vtcd Des_Padrao_Amp Med_Amp Per_Tensao Per_Energia Idc_Tipo_Vtcd Figura 3.7: Diagrama de Classes do Padrão Eventos em um Sistema Elétrico. 77 3.2.5 Padrão Normas e Organizações Problema: Como modelar alguns valores de referência de QEE, considerando a legislação atual ou futura, considerando os padrões brasileiros ou internacionais? Contexto: Os valores de referência para a análise dos dados coletados, são aqueles valores utilizados como referência para a comparação com os dados de distúrbios. A Europa é a região mais avançada em relação a normas de QEE, uma vez que a norma EN50160 foi oficialmente adotada por vários países. Nos EUA, muitas concessionárias têm usado normas como a IEEE 519 apenas como referência. No Brasil, a ANEEL adotou para a rede básica do sistema interligado brasileiro os critérios e limites para QEE definidos no documento Padrões de Desempenho da Rede Básica. Com o crescimento de mercados competitivos a possibilidade da inclusão de cláusulas referentes a QEE pode ser tornar comum no futuro. Forças: • Necessidade de ter vários valores comparativos a fim de diagnóstico de QEE. • Possibilidade de surgimento de novas normas ou ampliação das existentes. Solução: A Figura 3.8 mostra o diagrama de classes que compõe o padrão. São valores de referência para a análise dos dados coletados, são aqueles valores utilizados como referência para a comparação com os objetos de dados de eventos. Esses valores são limites normalizados ou não, tais como: EM 50160, IEC 61000-4-15, IEC 519, IEC 1159, CBEMA, ITIC, valores propostos de curvas de suportabilidade de equipamentos, limites estabelecidos por normas (IEE/ANSI, IEC, ABNT), e sumários de outras pesquisas. 78 Padrão Normas e Organizações Norma_Instituto Cod_Norma Nom_Norma Nom_Intituto Dat_Norma <<Incomplete>> Harm_Ind_Tensao Cod_Cit Ref_Cit Num_Cit Lim_Perc_Cit Niv_Tensao_Inf_Cit Niv_Tensao_Sup_Cit <<Incomplete>> Tipo_Curva Cod_Curva Nom_Curva Tip_Interpolacao Des_Curva <<Incomplete>> Harm_ind_Corrente Cod_Cic Ref_Cic Num_Cic Iscil Lim_Perc_Cic Comp_Harm_Dht Cod_Dht Ref_Dht Val_Dht Tip_Dht Niv_Tensao_Inf_Dht Niv_Tensao_Sup_Dht Dado_Curva * Cod_Par_Ordenado Num_Tensao Num_Amplitude Figura 3.8: Diagrama de Classes do Padrão Normas e Organizações. 3.2.6 Padrão Ocorrências de Campo Problema: Como modelar as ocorrências de campo considerando as várias possibilidades observadas? Contexto: As ocorrências de campo são informações diversas de registro de falhas ocorridas junto ao local de monitoração, ou seja, fatos ocorridos no ambiente monitorado. Os seus registros contêm informações de ocorrências de falhas em equipamentos instalados no sistema elétrico monitorizado. Forças: • As informações de ocorrências de campo auxiliam no diagnóstico na relação entre as falhas ocorridas e os eventos registrados pelo equipamento de monitoração de QEE. • Um local pode ter várias ocorrências e com uma certa freqüência. • Um local pode ter várias ocorrências aleatoriamente. 79 Solução: A Figura 3.9 mostra o diagrama de classes que compõe o padrão. Ocorrências de campo são informações diversas de registros de falhas ocorridas junto a um local de monitoração. Os registros devem conter informações de ocorrências de falhas em equipamentos instalados no sistema elétrico monitorizado, para que se encontrem associações entre estas falhas e os eventos registrados pelo instrumento monitor de qualidade de energia. Estes registros são provenientes de informações dos usuários do sistema elétrico. Padrão Ocorrências de Campo Ocorrencia Cod_Ocorrencia Dat_Ocorrencia Hor_Ocorrencia Dur_Ocorrencia Obs_Ocorrencia Falhas * Cod_Falhas Des_Falhas 1 * * Tipo_Falha 1 Periodicidade Cod_Idc_Falha Des_IdcTipo_Falha Cod_Periodicidade Des_Periodicidade Figura 3.9: Diagrama de Classes do Padrão Ocorrências de Campo. 3.3 Metodologia de Desenvolvimento de Frameworks Existem algumas propostas de metodologias de desenvolvimento de Frameworks. Essas metodologias consistem na captura de informações do domínio, a construção e o teste da estrutura de Frameworks. Podemos citar três metodologias de desenvolvimento de Frameworks: Projeto Dirigido por Exemplo (Example-Driven Design) [JOH93], Projeto Dirigido por Hot Spot (Hot Spot Driven Design) [PRE95] e a metodologia de projeto da empresa Taligent [TAL95]. Estas metodologias se caracterizam por estabelecer linhas gerais, sem se ater à definição de técnicas de modelagem ou detalhar o processo. Resumidamente no Projeto Dirigido por Exemplo estabelece que o desenvolvimento de um Framework para um domínio de aplicação é decorrente de um processo de aprendizado a respeito deste domínio, que se processa concretamente a partir de desenvolvimento de aplicações ou do estudo de aplicações desenvolvidas 80 O processo de generalização ocorre a partir da busca de elementos que recebem nomes diferentes, mas representam a mesma coisa, recorrendo a parametrização para eliminar diferenças, particionando elementos para tentar obter elementos similares, agrupando elementos similares em classes. Analisar o domínio de aplicações (aplicações existentes) Projetar estrutura de classes (o framework) Testar sobre exemplos Figura 3.10: As Etapas do Projeto Dirigido por Exemplo para o Desenvolvimento de um Framework. Segundo [JOH93] o processo de desenvolvimento do Projeto Dirigido por Exemplo (Figura 3.10), atravessa as etapas de análise, projeto e teste. A forma para desenvolver um Framework é: a) Análise do domínio: • assinalar as abstrações já conhecidas; • coletar exemplos de programas que poderiam ser desenvolvidos a partir do Framework; • avaliar a adequação de cada exemplo; b) Projetar uma hierarquia de classes que possam ser especializada para abranger os exemplos (um Framework) – nesta etapa o autor recomenda a utilização de design patterns. c) Testar o framework usando-o para desenvolver os exemplos (implementar, testar e avaliar cada exemplo usado na primeira etapa, utilizando para isto o Framework desenvolvido). O Projeto Dirigido por Exemplo carece de um conjunto de técnicas de modelagem e de um processo de desenvolvimento detalhado. Isto sugere que a metodologia poderia ser 81 complementada por subsídios de metodologia OOAD - Object Oriented Analysis and Design (Análise e Projeto Orientados a Objetos). Já o Projeto Dirigido por Hot Spot [PRE95] a essência desta metodologia é identificar os Hot Spots na estrutura de classes de um domínio, e, a partir disto, construir o Framework. Um Framework possui partes propositalmente indefinidas – o que lhe dá a capacidade de ser flexível e se moldar a diferentes aplicações. Podem ser definidas as seguintes etapas (Figura 3.11): • Na primeira etapa o desenvolvedor do Framework, a partir de informações de especialistas do domínio, define uma estrutura de classes. • Na segunda etapa, também com o auxílio de especialistas do domínio , são identificados os Hot Spots. Deve-se definir o grau de flexibilidade que deve ser mantido em cada caso. • Na terceira etapa, faz-se o projeto do Framework (ou reelaboração do projeto). Consiste em modificar a estrutura de classes inicialmente definida, de modo a comportar a flexibilidade requerida • A quarta etapa, consiste num refinamento da estrutura do Framework a partir de novas intervenções de especialistas do domínio. Se após isto o Framework avaliado como satisfatório, está concluída uma versão do Framework. Identificação de classes (Metodologia OOAD) Identificação de Hot Spots (Re)projeto do Framework Design Patterns Adaptação do Framework Não Hot Spots Satisfazem? Sim: Framework concluído Figura 3.11: Etapas do Projeto Dirigido por Hot Spot para o desenvolvimento de um Framework. 82 Segundo [PRE95] a etapa de projeto do desenvolvimento do Framework é centrado em design patterns, cuja aplicação é fundamental para garantir flexibilidade ao Framework Por outro lado a metodologia proposta pela empresa Taligent [TAL95] difere das anteriores pelo conjunto de princípios que norteia o desenvolvimento de Frameworks. A visão de desenvolver um Framework cubra as características e necessidades de um domínio é substituída pela visão de produzir um conjunto de Frameworks estruturalmente menores e mais simples, que usados conjuntamente, darão origem às aplicações. Isso justifica-se porque pequenos Frameworks são mais flexíveis e podem ser reutilizados mais frenquentemente. Assim, a ênfase passa a ser o desenvolvimento de Frameworks pequenos e direcionados a aspectos específicos do domínio. Essa metodologia apresenta os passos a seguir: • identificar e caracterizar o domínio do problema; • definir a arquitetura e o projeto; • implementar o Framework; • desdobrar o Framework. Em [SIL00] é apresentado uma análise comparativa dessas metodologias, ressaltando que nenhuma das metodologias estabelece técnicas de modelagem capazes de conter a descrição de projeto de Frameworks ou detalha o processo de desenvolvimento. Sugerindo a necessidade de buscar subsídios em outras áreas, como as metodologias OOAD, para a definição de um procedimento concreto de desenvolvimento. Essas metodologias não atendem completamente ao desenvolvimento de um Framework Conceitual para projeto de banco de dados que estamos visualizando, devido às características destes ambientes de energia elétrica e ao conhecimento e experiência que dispúnhamos para montar este framework. Isto levou esse trabalho a definir os passos que inclui características da metodologia do Projeto Dirigido por Exemplo e do Projeto Dirigido por Hot Spot, como pode ser visto a seguir: • Na primeira etapa, com o auxílio de especialistas do domínio (engenheiros, projetistas, etc), normas técnicas, relatórios especializados, aplicações 83 consultadas na literatura, e aplicação desenvolvida foram analisados e identificadas as classes comuns que irão compor os Framework. • A segunda etapa consiste em modificar a estrutura de classes inicialmente definida, de modo a comportar a flexibilidade requerida. Nesta fase são usados os padrões de análise que irão garantir a flexibilidade requerida, ou seja, genérico o suficiente para ser utilizado em qualquer banco de dados para QEE. • Na terceira etapa, são feitas as modificações no Framework procurando otimizar o projeto final do Framework. 3.4 Framework QEE_Frame O QEE_Frame é um Framework conceitual que fornece um diagrama de classes básico para auxiliar o projetista nos primeiros passos na modelagem conceitual de dados de QEE, a partir do qual serão incluídos os padrões de análise necessários ao banco de dados para QEE, que o projetista deseja construir. O QEE_Frame é definido de acordo com as regras do formalismo da orientação a objetos, utilizando a notação gráfica do diagrama de classes da linguagem UML (Figura 3.14). O processo de desenvolvimento de um Framework pode seguir a linha do processo unificado interativo e incremental, apesar desta linha está associada a uma aplicação convencional, ela pode ser adaptada a fim de atender o desenvolvimento de um Framework. O ciclo de vida de um Framework pode ser associado em parte ao ciclo de vida de uma aplicação convencional. Eles se diferem porque o Framework nunca é um artefato de software isolado mas sua existência está sempre relacionada a existência de outros artefatos, originados do Framework, a partir dele ou que exercem alguma influência na definição da estrutura de classes do Framework. 84 Em [SIL00] ( Figura 3.12 ) é apresentado um demonstrativo do ciclo de vida de um Framework, onde é apresentado várias fontes de informação que influem na definição da estrutura de um Framework: artefatos de software existentes, artefatos de software produzidos a partir do Framework e o conhecimento do desenvolvedor do Framework ( ou da equipe de desenvolvimento). As setas representam o fluxo de informações que levam à produção da estrutura de classes do Framework, bem como de aplicações sob o Framework. Figura 3.12: Ciclo de vida de Framewoks [SIL00]. É importante ressaltar a importância do papel do desenvolvedor. Ele responsável por decidir que classes comporão a estrutura do Framework, suas responsabilidades e a flexibilidade provida aos usuários do Framework. O desenvolvedor atua na construção e manutenção do Framework. No caso do QEE_Frame esse ciclo de vida sofre algumas alterações devido as especificidades que esse framework requer, na Figura 3.13 é apresentado o ciclo de vida para um Framework Conceitual para QEE. Na Figura 3.13 é possível observar que as fontes de informação que influem na estrutura da Framework aumentaram, uma vez que além das aplicações analisadas, é necessário a interação com o usuário de QEE (engenheiro, projetista, etc), deve-se avaliar os relatório técnicos especializados apresentados em vários trabalhos referentes a QEE, e 85 principalmente as normas existentes em relação a transmissão e distribuição da energia elétrica referentes a índices de qualidade de QEE. Geração do framework Usuário Normas Geração/ Alteração do framework Relatórios Aplicações framework Aplicação Alteração do framework Alteração do framework Geração Esquema Lógico Modelo Lógico da nova aplicação Figura 3.13: Ciclo de vida do Framework QEE-Frame. O QEE_Frame será definido de acordo com as regras do formalismo da orientação a objetos, utilizando a notação gráfica do diagrama de classes da linguagem UML. A Figura 3.14 mostra o diagrama de classes do QEE_Frame. Pesquisa Consumidor 1 * Local Monitoração 1 * Des_pesquisa * * Objeto Convencional * Evento Objeto QEE/Distúrbio Figura 3.14: Diagrama de classes do QEE_Frame. 86 Pesquisa e Consumidor As classes Pesquisa e Consumidor formam a base de qualquer aplicação de QEE. Toda aplicação que trata QEE tem como objetivo o gerenciamento e a manipulação de um conjunto de dados para um determinado consumidor que estará associado a uma pesquisa, estando ainda relacionado a um sistema de distribuição/transmissão específico. A idéia de Pesquisa visa agregar todas as informações referentes a um estudo de QEE, sejam estas informações dos consumidores ou mesmo de pontos do sistema da concessionária. Caso a pesquisa de QEE seja feita em um consumidor, informações como o segmento de atuação, tipo de processo, entre outras são aqui reunidas. A vantagem que se percebeu em usar essa definição no esquema conceitual é que esse mecanismo funciona de forma a reduzir a complexidade dos sistemas que venham a se tornar grandes. Sempre teremos um consumidor, ou seja quem faz o uso da energia elétrica que está relacionado a um ou mais locais de monitorização, esses apresentam características físicas, localização geográfica e características elétricas. O registro de locais de monitorização deve ser composto por informações que descrevam ou caracterizem o local de monitorização. Desta forma, permite-se o relacionamento dos locais com variáveis do sistema elétrico (níveis de tensão, tamanho de alimentadores, existência de bancos de capacitores e etc.) Objeto Convencional Normalmente num banco de dados relacionado a QEE, além dos dados referentes a eventos/distúrbios elétricos (harmônicos, afundamentos de tensão e etc), existem também objetos convencionais presentes em qualquer sistema de informação, como por exemplo dados cadastrais do local onde aconteceram os distúrbios. Evento e ObjetoQEE/Distúrbio Eventos são rótulos de identificação dos eventos monitorados ou simulados. Estes eventos possuem um aspecto temporal uma vez que estarão associados a uma data e hora. Embora tenha sido adotado o nome “eventos”, essa classe representa a todos os dados registrados pelo equipamento monitor de QEE, inclusive o dados de registro contínuo, independente de sua ocorrência ser ou não eventual. 87 ObjetoQEE/Distúrbio é uma generalização de todas as classes do domínio. Neste caso são incluídas aquelas classes que representam fenômenos relativos a QEE (Exemplo: harmônicos, VTCD, valor eficaz, etc). Através do Framework QEE_Frame é possível gerar um esquema conceitual elaborado a partir da especialização das suas classes com a inclusão dos padrões de análise. Nada impede o uso de padrões de projeto em conjunto com os padrões de análise. 88 4 Ambiente de Desenvolvimento de Software (ADS) Este capítulo apresenta as principais características de Ambiente de Desenvolvimento de Software no que se refere a conceituação, bem como a utilização de um Ambiente de Desenvolvimento de Software Orientado a Domínio, o qual será proposto um ambiente de definição para um banco de dados para QEE. A qualidade e produtividade de software podem ser melhoradas pelo uso de Ambientes de Desenvolvimento de Software (ADS). Um ADS é um sistema computacional que provê suporte para o desenvolvimento, reparo e melhorias em software e para o gerenciamento e controle destas atividades; contendo uma base de dados central e um conjunto de ferramentas de apoio [OLI99a]. A base central atua como um repositório para todas as informações relacionadas ao projeto ao longo do seu ciclo de vida e as ferramentas oferecem apoio para as várias atividades técnicas e gerenciais passíveis de automação que devem ser realizadas no projeto [MOU92]. 4.1 Teoria do Domínio A análise de domínio é definida para procurar organizar informações de domínio de forma a torná-las reutilizáveis. Existem várias pesquisas dedicadas a engenharia de software [OLI99a],[MIL95],[SIL00a]. Em [MIL95] foram identificados cinco níveis de reutilização de informações de desenvolvimento de software: • conhecimento ambiental: refere-se ao conhecimento sobre transferência de tecnologias e sobre os sistemas em uso; • conhecimento externo: refere-se ao conhecimento do processo de desenvolvimento utilizado e sobre o domínio ou área de aplicação para o qual os sistemas são desenvolvidos; • arquiteturas funcionais: referem-se à especificação de funções e objetos de dados; • estruturas lógicas: consistem de processos e arquiteturas de dados e os fragmentos de código. 89 • Essa classificação serviu de guia para a definição e estruturação de informações nos diferentes trabalhos de orientação a domínio, que procuram organizar as informações do domínio em um conjunto de itens que pudessem ser reutilizados ao se descrever e construir um software. Para [OLI99a] o trabalho de análise de domínio baseia-se nas seguintes crenças: • a necessidade de uma especificação para um domínio de informações reutilizáveis, que refere-se à identificação, aquisição e representação das informações dentro de um domínio; • o nível de coesão dos problemas do domínio, que torna possível a captura do conhecimento necessário para a solução de diversos problemas, sob a forma de um conjunto finito e pequeno de descrições reutilizáveis; • a estabilidade dos problemas de domínio, que torna possível diminuir o custo da captura e representação da informação através da reutilização durante longos períodos e em diversas situações e lugares. O ambiente ADEBDQEE considera as especificações apresentadas anteriormente por [OLI99a]. Este ambiente considera o uso de Frameworks e padrões de análise, neste sentido [FAV97] afirma que a engenharia do domínio foi dificultada durante alguns anos pela falta de tecnologias adequadas para registrar os resultados da análise de domínio, o que foi conseguido com o surgimento e uso dos Frameworks orientados a objetos e os padrões de modelagem. A Teoria do Domínio é o modelo é o modelo de conhecimento do domínio a ser utilizado para assistir o desenvolvimento ao longo do desenvolvimento de software[OLI]. A definição da teoria do domínio consiste em definir uma ontologia do domínio. Ontologia é uma especificação explícita de uma conceituação, ou seja, uma especificação explicita dos objetos, conceitos e outras entidades que assumimos existir em um área de interesse, além das relações entre estes conceitos e restrições expressas através de axioma [GRU95]. Para [VAN97] uma ontologia do domínio expressa uma conceituação para um domínio particular, definindo restrições na estrutura e conteúdo do conhecimento desse domínio. 90 Devido a grande quantidade de informações de um domínio a definição de uma ontologia de domínio pode se tornar um processo muito longo. Portanto em [OLI] é definese que a teoria do domínio deve ser dividida em subteorias. Cada subteoria considera os conceitos do domínio e relação entre esses conceitos que estão semanticamente mais relacionados e em um mesmo nível de abstração. Para compor a teoria do domínio como um todo são criadas também relações entre as subteorias. Cada subteoria pode se vista como uma ontologia sobre uma parte do domínio específica. 4.2 Ontologia O termo ontologia vem da filosofia significando uma explicação sistemática da existência, ou seja, o que significa “existir”. O termo vem sendo amplamente utilizado em diversas áreas, o que proporciona diferentes propostas para definir para o termo ontologia: • Ontologia é uma especificação explícita de uma conceituação [GRU95]. • Ontologia é uma descrição parcial e explicita de uma conceituação [GUA95]. • Ontologia é uma teoria sobre o domínio que especifica um vocabulário de entidades, classes, propriedades, predicados e funções e um conjunto de relações que necessariamente amarram esses vocabulários [FIK99]. Portanto percebe-se que existem várias visões e definições de ontologia na literatura, mas qualquer definição resultará em um vocabulário, que representará o entendimento consensual de um grupo de pessoas que atuam sobre um mesmo domínio. A conceituação apresentada por [FIK99] é a que será usada neste trabalho. Segundo [FOU02] as ontologias de aplicação descrevem conceitos dependentes do domínio e da tarefa particulares e são especializações de ambas as ontologias, de domínio e de tarefa. Estes conceitos freqüentemente correspondem a papéis desempenhados por entidades do domínio quando da realização de uma certa atividade. Uma ontologia pode ser utilizada com muitos objetivos que podem proporcionar muitos benefícios [FOU02], um deles é tornar viável o entendimento comum, bem como possibilitar a interoperabilidade de sistemas. 91 A utilização de ontologias tem um forte impacto na aquisição do conhecimento, pois o conhecimento geral do domínio é capturado, organizado e especificado na forma de um modelo de conhecimento [FAL98]. Além disso, ontologias possibilitam o compartilhamento e o reuso do conhecimento por diferentes aplicações [FOU02]. Para representar um domínio é necessário focar em um número limitado de conceitos que são suficientes e pertinentes para se criar uma abstração dele. Assim, um aspecto central de qualquer atividade de modelagem consiste em desenvolver uma conceituação: um conjunto de regras informais que restringem a estrutura de um pedaço de realidade que um agente usa para isolar e organizar conceitos e relações pertinentes [MIA02]. Portanto ontologias têm sido usadas para construir um ADSOD, isso deve-se a necessidade de definir um modelo que torne explícita a conceituação básica do domínio em questão, logo ontologias podem ser muito úteis para apoiar a orientação a domínio em um ADS. Segundo [MIA02] a idéia básica do uso de ontologias como especificações é conduzir ao reuso de software em níveis de abstração mais altos. Se um ADSOD incorpora uma ontologia de domínio, aplicações neste domínio podem ser desenvolvidas com base em uma especificação compartilhada. Também, componentes de domínio, tais como Frameworks e padrões de análise, que foram desenvolvidos com base em ontologias podem ser usados em outras atividades do processo de software. Um dos benefícios do uso de ontologias no desenvolvimento de software é a reutilização de especificações de domínio na fase de especificações de requisitos. Portanto para cada nova aplicação ao invés de definir uma conceituação nova, usa-se uma abordagem baseada em ontologias, e elicitação e a modelagem de requisitos podem ser realizadas em duas fases. Primeiro, o conhecimento de domínio geral deve ser extraído e especificado na forma de ontologias. Estas ontologias são usadas para guiar a segunda fase da análise de requisitos, quando são consideradas as particularidades de uma aplicação especificações, diminuindo os custos da primeira fase e permitindo o compartilhamento e reuso do conhecimento [MIA02]. 92 Neste sentido este trabalho apresenta no ambiente ADEBDQEE que uso ontologias para conduzir o reuso no que diz respeito a especificações do domínio na fase de especificações de requisitos utilizando Frameworks e padrões de análise. 4.3 Ontologia e Base de Conhecimento Na literatura percebe-se uma certa confusão quando define-se a ontologia e base de conhecimento uma vez que às vezes são referenciadas como tendo o mesmo significando, isso pode ser justificado uma vez que ambos capturam conceitos e suas relações dentro de um domínio. Para [GOM95] A generalidade da informação é a diferença mais importante entre ontologias e base de conhecimento. As definições de ontologias são mais gerais do que o conhecimento de uma base de conhecimento, de forma que estas podem ser compartilhadas entre diferentes sistemas devendo ser independentes do sistema que irá compartilhar ou reutilizar. Segundo [GUA97] a diferença entre ontologia e base de conhecimento está relacionada ao propósito de uma ontologia que é uma base de conhecimento particular descrevendo fatos assumidos sempre como verdade por uma comunidade de usuários em virtude de um significado em comum acordo sobre o vocabulário utilizado. Portanto, uma ontologia provê um conjunto de conceitos e termos para descrever algum domínio enquanto a base de conhecimento usa estes termos para representar o que verdadeiro sobre o mundo real ou hipotético [SWA99]. Segundo [MUS98] uma base de conhecimento pode ser vista como uma instanciação de uma ontologia, que significa preencher as decisões dos conceitos da ontologia detalhado a aplicação que estiver sendo construída. Um dos objetivos deste trabalho é apoiar o entendimento do domínio disponibilizando conhecimento do domínio. Esse conhecimento dever representar as características do domínio, suas restrições e organização. Além disso esse conhecimento 93 deve ser útil na construção de ferramentas de desenvolvimento de software. Dessa forma, optamos por utilizar ontologias para modelagem do domínio. Essa escolha se deve a várias razões: o não comprometimento da modelagem do conhecimento do domínio com qualquer aspecto que não seja as características do próprio domínio, a possibilidade de trabalhar com o conhecimento que seja processável e que possa ser utilizado em assistentes para apoio ao desenvolvimento no domínio, a boa e clara definição de como esse conhecimento deve ser explicitado, estruturado e representado [OLI99a]. 4.4 Ambientes de Desenvolvimento de Software Orientado a Domínio (ADSOD) Existem várias propostas para Ambiente de Desenvolvimento de Software Orientado a Domínio. Estes ambientes tornam disponível o conhecimento sobre o domínio numa representação simbólica utilizando ontologias do domínio e a identificação de possíveis tarefas realizadas no domínio em questão. Segundo [OLI99a] um Ambiente de Desenvolvimento de Software Orientado a Domínio (ADSOD) são ADS que apóiam o desenvolvimento de software em domínios específicos através do uso do conhecimento deste domínio durante todo o processo de desenvolvimento para auxiliar o desenvolvedor no entendimento do problema. O domínio é uma área de aplicação, no que se refere a essa dissertação o domínio é QEE. A concepção desses ambientes está baseada na premissa de que uma das principais dificuldades no desenvolvimento de sistemas é o fato dos desenvolvedores de software não conhecem, ou não estarem familiarizados com o domínio para o qual devem desenvolver um determinado sistema. A idéia principal dos ADSOD é o uso do conhecimento do domínio no ADS. Segundo [OLI99a] as principais questões para a definição de um ADSOD referem-se a: • Qual o conhecimento que deve estar disponível no ambiente. • Como este conhecimento deve estar organizado e representado. • Quando e como utilizar este conhecimento definido durante o desenvolvimento. 94 Para definir o conhecimento que deve estar disponível no ambiente e como este conhecimento deve estar armazenado foi definida a Teoria do Domínio, que deve conter o conhecimento do domínio a ser utilizado no ambiente. A Teoria do Domínio considera descrições de tarefas relacionadas aos conceitos para facilitar o entendimento do domínio[OLI99a]. Com relação a quando e como utilizar o conhecimento definido durante o desenvolvimento, deve-se considerar o estudo e investigação do domínio nas diferentes atividades do processo de software apoiando suas realizações [SIL00a]. Os elementos teoria do domínio, descrição de processo e processo de software são incorporados ao ADSOD através de ferramentas de definição e são utilizados ao longo do desenvolvimento de um sistema específico através de ferramentas de desenvolvimento. A Teoria do Domínio é um modelo de conhecimento do domínio a ser utilizado para assistir o desenvolvedor ao longo do desenvolvimento de software. 95 5 Ambiente de Definição de um Banco de Dados para Qualidade de Energia Elétrica A existência do Framework Conceitual bem como a definição dos padrões de análise não é suficiente para proporcionar os engenheiros eletricistas, projetistas, profissionais ligados a QEE o uso apropriado destes conceitos a fim de apoiar o desenvolvimento de um banco de dados para QEE. Isso justifica-se pelos seguintes fatores: • Existência de pessoas ligadas a área de QEE mas que não dominam os conceitos relacionados a engenharia de software; • Existência de pessoas ligadas a área de engenharia de software, mas que não conhecem plenamente o domínio pesquisado (QEE); • A possibilidade da rotatividade de pessoas trabalhando em um projeto, o que implica em explicar os conceitos básicos relacionado as duas áreas (QEE, engenharia de software)a este novo membro . Portanto, é necessária a existência de um Ambiente de Definição de um Banco de Dados para Qualidade de Energia Elétrica (ADEBDQEE) com recursos que auxiliem nas diversas atividades de desenvolvimento de um banco de dados. Este é um ambiente que apresenta características de um Ambiente de Desenvolvimento de Software Orientado a Domínio, justamente por propor um conjunto de ferramentas para o desenvolvimento (análise, projeto e implementação), mas também a representação do conhecimento do domínio, encurtando o tempo de aprendizado como um todo, tanto para a equipe no início do projeto, quanto para novos integrantes que chegam à equipe durante o desenvolvimento. A Figura 5.1 apresenta uma arquitetura para o Ambiente de Definição de um Banco de Dados para Qualidade de Energia Elétrica, a qual é composta por três módulos. O módulo gráfico fornece ao projetista uma interface que permite ao mesmo definir as informações do domínio, e permite a recuperação e definição das informações de um Framework conceitual, bem como dos padrões de análise. O modulo dicionário de dados gera o esquema conceitual de um banco de dados para QEE considerando o Framework conceitual, os padrões de análise e as extensões 96 necessárias definidas utilizando o módulo gráfico. Esse esquema conceitual estará em formato XML a fim de proporcionar intercâmbio de informações na Web. O módulo geração automática ficará responsável em ler o arquivo XML com o esquema desejado e mapear para o SGBD específico para a aplicação em questão. Por exemplo se estivermos tratando de um banco de dados relacional, este módulo será responsável em ler o arquivo XML e mapear para tabelas. 97 Módulo Gráfico Framework Conceitual Ferramenta Case Informações Domínio Editor de Domínio Repositório Padrões Análise Editor de Padrões Linguagem Programação Módulo Dicionário de Dados Esquema Conceitual QEE XML Módulo Geração Automática Regras de Transformação Oracle Ms. Access Interbase Outros Formatos Figura 5.1: Arquitetura do Ambiente de Definição de um Banco de Dados para Qualidade de Energia Elétrica. 5.1 Módulo Gráfico Ambiente de Definição de um Banco de Dados para Qualidade de Energia Elétrica (ADEBDQEE) apresenta um módulo gráfico que faz uso de uma ferramenta CASE10 como apoio a modelagem de dados. Foram analisadas duas ferramentas o Rational Rose e o Microsoft Visio Professional. Inicialmente optou-se pelo uso da ferramenta Rational Rose 10 Computer-aided software engineering (engenharia de software com o auxílio do computador. Ele se refere a uma gama de diferentes tipos de programas utilizados para apoiar as atividades de processo de software, como a análise de requisitos, modelagem de sistemas, a depuração e os testes [PRE01]. 98 por apresentar uma facilidade em apoiar o processo de desenvolvimento de software e por apresentar uma facilidade de exportação de diagramas para várias ferramentas disponíveis no mercado. O módulo gráfico apresenta também um editor de domínio que permite fazer a edição da Teoria do Domínio, a linguagem usada para desse editor foi o Microsoft Visual Basic, foram analisadas algumas linguagens tais como Pascal e Java. A escolha foi definida devido a plataforma de apoio apresentada no projeto [PPGEE00], que será o projeto instanciado e que poderia ser adicionado ao Sistema de Gerenciamento da Qualidade da Energia Elétrica (SGQEE) como um módulo adicional. Mas nada impede o desenvolvimento deste módulo utilizando outras linguagens. Desta forma, esse módulo apresenta como saída um esquema conceitual para um banco de dados definido em um formato de diagrama de classes da UML. Nesse módulo também teremos armazenado toda a teoria do domínio, o que facilitará a evolução ou criação de um Framework proporcionando o reuso de análise e projeto, e a recuperação do conhecimento para novos membros que venham a participar do projeto. No módulo gráfico temos a primeira etapa que é a edição da teoria do domínio. Esse módulo foi construído considerando as características da Teoria do Domínio apresentado no item 4.1, ou seja, um modelo que utiliza ontologias do domínio e relaciona conceitos do domínio com tarefas pertinentes aquele domínio. Neste caso teremos subteorias, conceitos, características desses conceitos e suas relações, o que implicou na definição de um modelo que considerasse essas características. Na Figura 5.2 apresenta o modelo que representa a definição do domínio e a descrição dos conceitos. No Apêndice A, é apresentado a descrição do modelo, definição das entidades, atributos e relacionamentos. 99 Teoria_Dominio CodTeoria NomTeoria DesTeoria I A80 A255 Framework_Conceitual T eoria_Framework CodFramework NomArqFramework I A80 T eoria_Subteoria Padrao_Analise Sub_TeoriaDominio Bibliografia CodBibliografia AutorBibliografia DescBibliografia EditEveBibliografia InfoBibliografia I A80 A200 A100 A255 CodSubTeoria NomSubTeoria DesSubTeoria I A80 A255 Subt eoria_PadraoAnali se CodPadrao NomPadrao DesProblema ContextoPadrao ForcasPadrao ArquivoPadrao SolucaoPadrao I A80 A100 A255 A255 A100 OLE SubT eoriaConceito Subteoria_Conceito Subt eoria_Concei to_Bi bl io CodConceito SinConceito DesConceito NomConceito I A80 A255 A100 Figura 5.2: Modelo para edição da Teoria do Domínio. As principais funções do módulo gráfico são: - Permitir a entrada de informações de domínio: a partir de uma interface amigável, o ambiente permite a inserção de todas as informações sobre o domínio desejado; - Permitir o acesso ao framework conceitual para QEE: a partir da interface gráfica, o ambiente permite a visualização do Framework conceitual que irá ajudar os usuários na definição do seu banco de dados para QEE. - Permitir o acesso aos padrões de análise para QEE: a partir da interface gráfica, o ambiente permite a visualização dos padrões de análise para QEE. Na Figura 5.3 é a fase onde é permitida a edição da Teoria do Domínio (ApêndiceB é apresentado um demonstrativo da possibilidade de seleção das teorias existentes), cada uma das subteorias (Figura 5.4), seus conceitos (Figura 5.7). Figura 5.3: Inclusão da Teoria do Domínio. 100 Figura 5.4: Inclusão da subteoria No Apêndice-B é apresentada a possibilidade de seleção das subteorias. No ambiente ADEBDQEE podemos inserir padrões de análise como é mostrado na Figura 5.5, a edição é feita através da ferramenta Rational Rose. Figura 5.5: Inserir Padrão de Análise. Para o Domínio de QEE foi necessário incluir a idéia de referências bibliográficas, para que o usuário quiser ter mais informações sobre determinado conceito, tenha esses dados no ambiente como é mostrado na Figura 5.6. 101 Figura 5.6: Inserir Referências Bibliográficas. Outra funcionalidade do ambiente ADEBDQEE é a possibilidade do desenvolvedor ao longo do projeto identificar e relacionar quais conceitos da Teoria do Domínio serão utilizados em um determinado projeto, neste momento teremos a informação das referências estão associadas a cada conceito, como é possível verificar na Figura 5.7. Figura 5.7: Inserir Conceito. 102 Uma Teoria do Domínio pode ter várias sub-teorias associadas, que por sua vez pode ter vários conceitos, essas determinações podem ser vistas nas Figuras Figura 5.8 e Figura 5.9. Figura 5.8: Inserir Associação entre Teoria do Domínio e Sub-teoria. Figura 5.9: Inserir Associação entre Sub-teoria e Conceito. 103 Cada Subteoria pode ter padrões associados que ajudaram no processo de definição do banco de dados para QEE, essa associação pode ser vista na Figura 5.10. Figura 5.10: Inserir Associação entre Subteoria e Padrões de Análise. A inserção do Framework Conceitual pode ser feita como pode ser visto na Figura 5.11, sua edição é feita pela ferramenta Rational Rose. Figura 5.11:Inserir O Framework Conceitual de acordo com a Teoria do Domínio. 104 O usuário pode visualizar cada padrão de análise associado a cada subteoria, isso facilita o reuso dos padrões (Figura 5.12). Figura 5.12: Visualização das Subteorias e a relação com os Padrões de Análise. Durante a construção da ontologia para dados de QEE, foi possível notar que essa Teoria do Domínio apresentava detalhes que não se adequavam ao modelo proposto por [OLI99a] e [SIL00], portanto foi necessário apresentar mudanças no modelo para edição da Teoria do Domínio. Desta forma essas modificações acarretaram mudanças também na interface. Após a definição da Teoria do Domínio, o usuário será capaz de apresentar um Framework Conceitual para um banco de dados para QEE, através de uma interface gráfica que permite incluir o Framework, e editá-lo através da ferramenta Rational Rose. Também é possível fazer uma associação das subteorias identificadas com os padrões de análise, esses são editáveis através da ferramenta Rational Rose. 5.2 Módulo Dicionário de Dados 105 Nesta etapa teremos um diagrama de classes que representará um banco de dados para QEE de acordo com a Teoria do Domínio, o Framework e os padrões de análise selecionados. A ferramenta utilizada para modelagem (Rational Rose) do banco de dados oferece a funcionalidade de conversão do diagramas de classes para o formato XML (Figura 5.13), porém essa ferramenta faz o mapeamento do diagrama de classes para a DTD e os coloca em arquivos separados, essa característica nos levou a usar uma ferramenta intermediária que gerasse a DTD em um só arquivo. Essa forma de geração é importante visto que podemos ter desenvolvedores interessados em desenvolver suas próprias ferramentas de extração de dados, facilitando desta forma a leitura dos dados. Existem várias ferramentas de modelagem que podem ser utilizadas para o mesmo propósito tais como: Together, PowerDesigner entre outras. Neste trabalho estaremos utilizando as ferramentas Rational Rose e a PowerDesigner, para modelagem dos dados e mapeamento para XML. Figura 5.13: Demonstrativo do uso da ferramenta Rational Rose para Conversão de Dados. 5.3 Módulo Geração Automática 106 Este módulo é mais específico, ou seja, dependente do SGBD o qual deseja-se utilizar. O módulo dicionário de dados faz a leitura dos dados no formato XML, e converte para o modelo lógico do SGBD considerado. No caso, os dados são convertidos para um SGBD relacional. Como a XML é um formato padrão, basta que o usuário conheça tal formato e faça a conversão para o SGBD que deseja utilizar. Todo processo é auxiliado por ferramentas específicas de mapeamento. Neste caso estaremos utilizando a ferramenta XMLSPY-2004 que será utilizada para a conversão dos dados em formato XML para tabelas para um banco de dados específico. A ferramenta XMLSPY foi desenvolvida pela empresa Altova, a escolha desta ferramenta foi por dispor de um ambiente integrado que pode facilitar a troca de informações entre várias ferramentas, e por apresentar um pacote de desenvolvimento de documentos XML e de todos os documentos relacionados ( folhas de estilo, schemas, etc) [ALT04]. 107 6 Aplicação: Casos Exemplo O estudo de caso tem o objetivo de avaliar o desempenho da metodologia de uso de Frameworks e padrões de análise para projeto de banco de dados, verificando a possibilidade de intercâmbio de informações na Web. Conforme mencionado na introdução desta dissertação, foge ao escopo do trabalho a fase de pós-tratamento de dados. Os casos estudados a seguir têm diferentes objetivos de monitorização, ou seja, são diferentes situações em que o foco de interesse na qualidade da energia elétrica varia. O primeiro caso é o Sistema de Gerenciamento da Qualidade da Energia Elétrica [PPGEE00], já o segundo caso é a Caracterização da Sensibilidade de Processos Industriais Frente a Afundamentos de Tensão [LEB03]. 6.1 A Teoria do Domínio A Teoria do Domínio para QEE foi definida segundo as normas relativas a QEE, a partir de especialistas em QEE do grupo de pesquisa GERQUALI [PPGEE00] além de consulta a trabalhos tais como: [PPGEE00], [FER99], [FERN99], [FER01], [ALV00], [DIA01], [SAN02], entre outros. É importante salientar que não é o objetivo desse trabalho explorar em todas os detalhes o domínio de QEE. A Teoria do Domínio, apresentada a seguir, foi particularizada para atender as necessidades do domínio em QEE, o que não impede a sua evolução considerando as especificidades de novas teorias de domínio. Nosso objetivo foi utilizar essa teoria para mostrar a sua aplicabilidades no ADEBDQEE. A seguir serão apresentados cada um dos passos realizados para a definição da Teoria do Domínio. 6.1.1 Identificação do Propósito 108 A definição de uma Teoria do Domínio para QEE, tem como objetivo apoiar o desenvolvimento de um banco de dados para QEE. Dessa forma, é estabelecido um vocabulário comum que possa facilitar a comunicação entre os diferentes participantes no desenvolvimento de projeto de banco de dados, ou seja, desenvolvedores, engenheiros de conhecimento, especialistas (engenheiros eletricistas) e usuários em geral. A Teoria do Domínio para QEE, visa definir, hierarquizar e organizar conceitos no que se refere a informações relativas a QEE. 6.1.2 Definição Para definição da Teoria do Domínio vários ciclos de captura e especificação foram realizados. Inicialmente foram analisados o conhecimento de especialistas em QEE, procurando registrar os conceitos a medida em que iam surgindo. Com isso foi identificado um conjunto de conceitos importantes da área de QEE que englobam informações de diferentes níveis de abstração. Também foi necessário a análise de normas relativas a QEE, e os trabalhos relacionados na área. Com a junção desses conceitos, foi possível perceber que desenvolver sistemas nesta área pode requerer qualquer uma dessas informações o que leva a necessidade de definição de diferentes conjuntos de conceitos que irão compor diferentes sub-teorias para o domínio. A partir desses aspectos, identificaram-se as seguintes questões de competência gerais: a) Como estão organizados os dados relativos a locais de monitorização? b) Que informações de equipamentos de monitorização são necessárias? c) Como caracterizar os diferentes distúrbios eletromagnéticos monitorados? d) Quais informações de ocorrência de campo devem ser armazenadas? e) Como podemos analisar dados de QEE, utilizando valores de referência? Para a identificação das sub-teorias foram definidas, inicialmente, questões de competência gerais com base no objetivo definido para a Teoria do Domínio, ou seja, o que seria importante e útil para o desenvolvimento de um banco de dados para QEE, e que, portanto a Teoria do Domínio deveria contemplar. Foram identificados Grupos Principais. 109 6.2 Caso 1- Sistema de Gerenciamento da Qualidade da Energia Elétrica. O primeiro caso estudado é o Sistema de Gerenciamento da Qualidade da Energia Elétrica – SGQEE [PPGEE00], projeto cujo objetivo, consiste de um sistema de monitoramento e transmissão remota de informações sobre QEE, associado a um banco de dados relacional, apoiado por m conjunto de programas complementares, que permitem o pré e pós-processamento de dados, bem como o cálculo estocástico de afundamentos de tensão e análise da informação com base em técnicas de Inteligência Artificial. O sistema é estruturado com base em objetivos específicos, capazes de fornecer de forma simples e automatizada, relatórios que atendam a estes objetivos. Considerando a arquitetura definida de acordo com a Figura 5.1 foi definido o ambiente para o SGQEE. 6.2.1 Edição da Teoria do Domínio A Teoria do Domínio, trata do sistema que desejamos pesquisar, descrevendo as informações sobre o domínio em questão, neste caso estaremos pesquisando o domínio do sistema SGQEE, como pode ser visto na Figura 5.3, onde temos: • Teoria: Sistema de Gerenciamento da Qualidade da Energia Elétrica. • Descrição da Teoria: O Sistema de Gerenciamento da Qualidade da Energia Elétrica gerencia informações sobre QEE, sejam estas provenientes de monitoração ou de simulações computacionais, bem como o pós-processamento de dados para análise. 6.2.2 Edição da Sub-teoria Para identificação das Sub-teorias foram definidas, inicialmente, questões de competência gerais com base no objetivo definido para a Teoria do Domínio, como foi visto no item 6.1.2 . A partir dessas questões gerais foi possível chegar às sub-teorias a seguir: 110 • Local de Monitorização: para responder a questão a), essa sub-teoria caracteriza os dados cadastrais dos locais que desejamos monitorar. • Informações de Equipamentos: para responder a questão b), essa sub-teoria caracteriza as informações cadastrais dos equipamentos, bem como dos ajustes. • Informações de Medição: para responder a questão c), essa sub-teoria caracteriza os fenômenos relacionados a QEE que estão sujeitos a monitorização de locais específicos. • Ocorrências de Campo: para responder a questão d), as ocorrências de campo são informações diversas de registro de falhas ocorridas junto a um local de monitoração. Os registros devem conter informações de ocorrências de falhas em equipamentos instalados no sistema elétrico monitorizado, para que encontrem relacionamentos entre estas falhas e os eventos registrados pelo instrumento monitor de qualidade de energia. Esses registros são provenientes de informações dos usuários do sistema elétrico e são , inicialmente, coletadas a partir de um formulário que, contendo informações também sobre o sistema elétrico, pode vir a fornecer informações para diagnóstico da ocorrência. • Valores Comparativos: para responder a questão e), os valores de referência para a análise dos dados coletados, são aqueles valores utilizados como referência para a comparação com os objetos de dados de eventos. Neste caso estaremos considerando as normas relativas a afundamentos de tensão. 6.2.3 Edição de Conceitos A partir das informações coletadas como descrito no item 6.1.2, é necessário definir os conceitos relacionados a cada sub-teoria. A inclusão pode ser feita como pode ser vista na Figura 5.7, os conceitos identificados são listados a seguir: • Sub-teoria Local de Monitorização o Informações do Consumidor: Informações gerais do consumidor monitorado; o Informações do Contato do Local de Monitorização: Informações do responsável pelo local de monitorização. • Sub-teoria Informações de Equipamentos 111 o Informações gerais do equipamento; o Informações dos canais do equipamento; o Informações relativas aos ajustes do equipamento. • Sub-teoria Informações de Medição o Informações de Harmônicos; o Informações de Variação de Tensão de Curta Duração; o Informações de Valor Eficaz. • Ocorrências de Campo o Tipo de Falha do Sistema: Identificação de falhas que podem ocorrer como software e hardware, evidências físicas; o Periodicidade: Freqüência que o ocorre a falha. • Valores Comparativos o Curvas: Curvas usadas como referência, por exemplo CBEMA; o Valores propostos de curvas de suportabilidade de equipamentos; o Limites específicos estabelecidos por normas (IEEE/ANSI. IEC, ABNT); o Sumários de outras pesquisas. 6.2.4 Integração do Framework Conceitual com os Padrões de Análise Para gerar um esquema para um banco de dados para QEE, considerando o SGQEE, utilizamos o Framework Conceitual e os padrões de análise identificados no item 3.2. Na Figura 6.1 é apresentada uma instância do QEE_Frame onde podemos verificar o uso dos padrões de análise. Após fazer a integração do Framework Conceitual com os padrões de análise identificados, teremos um diagrama de classes que irá representar o banco de dados para QEE, que então poderá ser mapeado para qualquer SGBD específico. Na Figura 6.1 foram omitidos os atributos das classes com o objetivo de simplificação do diagrama. 112 Pesquisa n Padrão Ajuste Equipamentos QEE 1 Padrão Ocorrências de Campo Tipo_Falha 1 Padrão Local de Monitoração * Local_Monit_Contato Local_Monitoracao n 1 0..n 1..n Ocorrencia Periodicidade 1 1 n * Falhas n Tipos_Ajustes Parametro_Aguste * * 1 Monitoracao_Consumidor 1 n 1 Padrão Equipamento de QEE 1 Equipamento Canal Padrão Eventos em um Sistema Elétrico Tratamento_Eventos Eventos_Estampa n n n Canal_Equipamento 1 * 1 Padrão Normas e Organizações <<Incomplete>> Eventos_Tendencia_Vef 1 <<Incomplete>> Eventos_Harmonicos <<Incomplete>> Norma_Instituto Eventos_Vtcd <<Incomplete>> Harm_Ind_Tensao <<Incomplete>> <<Incomplete>> Harm_ind_Corrente Tipo_Curva Comp_Harm_Dht Dado_Curva n Figura 6.1: Integração do Framework Conceitual – QEE_Frame e Padrões de Análise para o Caso 1. 6.2.5 Conversão do Diagrama de Classes em DTD A etapa de conversão está relacionada com a Figura 5.1, ou seja, com o módulo dicionário de dados, devido as especificidades das ferramentas foi feita a importação do diagrama de classes da ferramenta Rational Rose para a PowerDesigner como pode ser visto da figura . Para fins de visualização consideramos parte do diagrama de classes apresentado na Figura 6.1. Consideramos a parte do diagrama reverente aos locais de monitorização. Na ferramenta PowerDesigner define-se a linguagem para conversão (XML-DTD) que será utilizada como pode ser visto na Figura 6.2 113 Figura 6.2: Interface para definição da Linguagem de conversão do diagrama. Após a definição da linguagem é feita a geração do arquivo como pode ser visto na Figura 6.3. Figura 6.3:Interface para geração do arquivo de dados no formato DTD Temos então o arquivo .DTD gerado como pode ser visto no Apêndice C. 6.2.6 Mapeamento da DTD para um SGBD relacional A etapa de mapeamento está relacionada ao módulo de geração automática, neste caso utilizaremos a ferramenta XMLSPY, como pode ser visto na Figura 6.4. 114 Figura 6.4: Visualização da ferramenta XMLSPY. Com essa ferramenta é possível fazer o mapeamento da DTD gerado para um SGBD relacional, para tal, temos que criar um projeto e incluir os arquivos .DTD. Como pode ser visto na Figura 6.5. Figura 6.5:Inclusão dos arquivos gerados. O próximo passo é a conversão para DTD/ Shema, formato W3C Shema.(Figura 6.6) 115 Figura 6.6:Conversão DTD/Shema. Na figura a seguir podemos verificar o mapeamento de cada classe. Figura 6.7:Demonstrativo das classes mapeadas. Após o mapeamento é necessário fazer algumas alterações manuais para os atributos em relação aos tipos, e definições de chave primária(Figura 6.8) 116 Figura 6.8:Interface para alterações de tipos de dados. Como a conversão será feita para o Microsoft Access a Figura 6.9 mostra o resultado alcançado. O script também pode ser armazenado em arquivo .sql (Figura 6.10). Figura 6.9:Demonstrativo das tabelas que serão criadas no Microsoft Access. 117 Figura 6.10: Demonstrativo do Script em SQL. Finalmente na fase final é feita a conversão do Shema para um banco de dados relacional (Microsoft Access) como pode ser visto na Figura 6.11, define-se o banco para o qual deseja realizar a conversão, e automaticamente as tabelas são criadas( Figura 6.12). Figura 6.11:Seleção o SGBD que será utilizado. 118 Figura 6.12:Tabelas criadas no Microsoft Access. 6.3 Caso 2- Caracterização da Sensibilidade de Processos Industriais Frente a Afundamentos de Tensão O segundo caso estudado é o trabalho de Caracterização da Sensibilidade de Processos Industriais Frente a Afundamentos de Tensão [LEB03], onde o objetivo deste projeto propor uma metodologia para caracterização da sensibilidade das cargas e processos incorporados a assimetria, o desequilíbrio, e outras características dos afundamentos de tensão, tais como salto de ângulo de fase, ponto de início, e métodos de caracterização a um parâmetro. Os estudos envolvendo afundamentos de tensão são conduzidos a partir da monitoração das tensões do sistema elétrico ou através da utilização de metodologias de predição [LEB03]. 6.3.1 Edição da Teoria do Domínio A seguir é apresentada a definição da Teoria do Domínio: 119 • Teoria: Caracterização da Sensibilidade de Processos Industriais Frente a Afundamentos de Tensão. • Descrição da Teoria: Caracterização da sensibilidade das cargas e processos incorporando a assimetria, o desequilíbrio, e outras características dos afundamentos de tensão, tais como salto de ângulo de fase, ponto início, e métodos de caracterização de um parâmetro. Apresentando formas alternativas para caracterizar o distúrbio, levando em conta a assimetria e o desequilíbrio dos fasores de tensão, além de classificação dos eventos e os indicadores utilizados para avaliar uma determinada barra do sistema. 6.3.2 Edição da Sub-teoria Para identificação das Sub-teorias também foram definidas, inicialmente, questões de competência gerais com base no objetivo definido para a Teoria do Domínio como foi visto no item 6.1.2 . A partir dessas questões gerais foi possível chegar a sub-teorias a seguir, que são editadas no ambiente de acordo com a Figura 5.3: • Local de Monitorização: para responder a questão a), essa sub-teoria caracteriza os dados cadastrais dos locais de desejamos monitorar. • Informações de Equipamentos: para responder a questão b), essa sub-teoria caracteriza as informações cadastrais dos equipamentos, bem como dos ajustes. • Informações de Medição: para responder a questão c), essa sub-teoria caracteriza os fenômenos relacionados a QEE que estão sujeitos a monitorização de locais específicos. Destacamos que para esse estudo de caso aconteceu o reuso de conhecimento definido pelo estudo de caso do item 6.2. 6.3.3 Edição de Conceitos A partir das informações coletadas como descrito no item 6.1.2, também foi definido os conceitos relacionados a cada sub-teoria. A inclusão pode ser feita como pode 120 ser vista na Figura 5.7. Essa interface permite a associação entre os conceitos e as bibliografias existentes. Caso a bibliografia desejada não exista é possível incluir uma nova como é mostrado na Figura 5.6. Os conceitos identificados são listados a seguir: • Sub-teoria Local de Monitorização o Informações do Consumidor: Informações gerais do consumidor monitorado; o Informações do Contato do Local de Monitorização: Informações do responsável pelo local de monitorização. • Sub-teoria Informações de Equipamentos o Informações gerais do equipamento; o Informações dos canais do equipamento; o Informações relativas aos ajustes do equipamento. • Sub-teoria Informações de Medição o Informações de Variação de Tensão de Curta Duração; Nesta definição aconteceu o reuso total dos conceitos ligados as sub-teorias: Local de Monitorização e Informações de Equipamentos, já o conceito relacionado a Informações de Medição sofreu alterações de forma a atender este novo caso. Por outro lado alguns conceitos não foram utilizados. 6.3.4 Integração do Framework Conceitual com os Padrões de Análise Para gerar um esquema para um banco de dados para QEE, considerando Caracterização da Sensibilidade de Processos Industriais Frente a Afundamentos de Tensão, utilizamos o Framework Conceitual e os padrões de análise identificados no item 3.2, alguns serão reusados sem requerer mudanças, outros sofreram adaptações antes de integração, e outros não serão utilizados. Os padrões de análise que não forem utilizados podem ser facilmente incorporados quanto necessários. Na Figura 6.13 é apresentada uma instância do QEE_Frame onde podemos verificar o uso dos padrões de análise. Após fazer a integração do Framework Conceitual com os padrões de análise identificados, teremos um diagrama de classes que irá representar o banco de dados para QEE, que então poderá ser mapeado para qualquer SGBD específico. 121 Na Figura 6.13 foram omitidos os atributos das classes com o objetivo de simplificação do diagrama. n Pesquisa Padrão Ajuste Equipamentos QEE n Padrão Local de Monitoração Local_Monitoracao 1..n * 1 Tipos_Ajustes Parametro_Aguste 1 1 * Local_Monit_Contato 0..n * 1 1 Padrão Equipamento de QEE Monitoracao_Consumidor 1 Equipamento Canal Padrão Eventos em um Sistema Elétrico Tratamento_Eventos Eventos_Estampa n n n Canal_Equipamento 1 1 * 1 <<Incomplete>> Eventos_Vtcd Figura 6.13 : Integração do Framework Conceitual – QEE_Frame e Padrões de Análise para o Caso 2. 6.3.5 Conversão do Diagrama de Classes em DTD Nesta etapa foram utilizados os mesmos critérios que no estudo de caso anterior onde os resultados podem ser verificados no Apêndice D. 6.3.6 Mapeamento da DTD para um SGBD relacional Nesta etapa também foram adotados os mesmos critérios dos itens anteriores os quais podem ser verificados no Apêndice E. 122 7 Conclusões Esta dissertação apresentou instrumentos que podem ser utilizados a fim de apoiar a modelagem conceitual de um banco de dados para QEE. Esses instrumentos utilizam o paradigma de orientação a objetos, empregando conceitos de reutilização baseada em padrões de análise. A partir da constatação que a maioria das aplicações de SIQEE são projetadas e desenvolvidas pelos próprios usuários, houve uma preocupação em possibilitar uma solução que possa ser utilizada na prática tanto por especialistas em computação quanto por usuários sem experiência nesta área. Inicialmente foram identificados e descritos alguns padrões de análise em aplicações para QEE, com base em várias de informação como foi descrito no item 3.2 . Padrões de análise são fáceis de serem utilizados porém difíceis de serem identificados, requer do projetista uma habilidade de perceber sub-esquemas recorrentes, abstrair os elementos essenciais de forma a torná-lo independente da aplicação, e depois documentar esses padrões usando alguma linguagem de descrição de padrões. Foi então implementado um ambiente de apoio a definição de um banco de dados para QEE, considerando a teoria do domínio, padrões de análise e o Framework Conceitual. Uma das grades vantagens do uso da UML foi a possibilidade de adotar uma solução simples, utilizando os próprios recursos da linguagem. Assim alcançou-se uma notação gráfica compacta de fácil aprendizado e entendimento por parte de usuários e projetistas não especialistas em modelagem conceitual. A solução UML/ QEE_Frame é independente de plataforma, essa característica é uma vantagem proposta pela solução uma vez que habilita o usuário a utilizar qualquer ferramenta CASE para UML existente no mercado. Com os estudos de caso, foi possível fazer a verificação da arquitetura proposta (arquitetura para definição de um banco de dados para QEE). Uma vez que no primeiro estudo de caso o resultado alcançado foi coerente ao projeto [PPGEE00], e com o segundo 123 estudo de caso criou-se um novo banco de dados de acordo com a suas especificidades de forma satisfatória. 7.1 Contribuições da dissertação Utilização do paradigma de orientação a objetos para banco de dados para QEE, o que não foi encontrado na literatura consultada. A definição de requisitos para modelagem conceitual de um SIQEE. O instrumento principal da abordagem de reutilização proposta na dissertação é o Framework Conceitual QEE_Frame, ele fornece um entendimento básico dos elementos presentes em qualquer banco de dados para QEE, servindo como ponto de partida para a modelagem conceitual de banco de dados para QEE. Também foi possível definir uma metodologia para a definição deste Framework. Não foi identificado na literatura consultada nenhum padrão de análise para aplicações relacionadas a QEE, bem como a utilização de um Framework Conceitual para apoiar o projeto de um banco de dados para QEE. Outra contribuição é a descrição de um conjunto de padrões de análise para QEE, bem como uma proposta que representa a captura e a aplicação de padrões de QEE. Esses padrões estão documentados utilizando uma linguagem universal que é a UML, o que facilita a troca de informações entre grupos de pesquisa. Com a definição do Framework QEE-Frame e um conjunto de padrões de análise, foi possível estabelecer a possibilidade integração com aplicações SIG (Sistema de Informação Geográfica). Essa nova possibilidade ser torna interessante uma vez que os projetos orientados a objetos utilizando o conceito de reutilização, Frameworks e padrões de análise, apresentados para SIG estão evoluídos e apresentam resultados satisfatórios. Essa integração é uma oportunidade interessante visto que aplicações relativas a QEE apresentam dados com características geográficas, o que apresentaria apoio a análise dos dados relativos a QEE. 124 Uma contribuição importante é a definição de um ambiente para apoiar os projetistas de banco de dados para QEE, que proporciona trabalhar com reutilização em um nível mais alto de abstração que é a reutilização do conhecimento. Além de possibilitar a integração das áreas de Engenharia Elétrica e Engenharia de Software, a fim de prover uma melhor utilização dos dados para QEE. 7.2 Trabalhos Futuros O resultado de processo de modelagem conceitual é um esquema conceitual de dados. Após validado e aprovado, o esquema conceitual tem de ser transformado em um esquema lógico, o qual é dependente do software a ser utilizado. Como não existe um modelo lógico de SIQEE único não existe uma regra única para a transformação de um esquema conceitual para um esquema lógico. Portanto pode-se desenvolver ferramentas para a transformação de um esquema conceitual em um esquema lógico de SIQEE. Essa primeira versão do ambiente ADEBDQEE não está na Web, mas foi projetado de forma a facilitar a migração para a Web, isso seria uma vantagem para o ambiente uma vez que teríamos a possibilidade de usuários localizados no consumidor pudessem interagir diretamente com a adição de Teorias de Domínio. Com relação ao módulo geração automática também teríamos uma vantagem, visto que o módulo dicionário de dados disponibiliza os dados em formato XML, esse formato é compatível com a Web como foi visto no item 2.5, o que facilita os grupos de pesquisas em QEE a criarem um módulo de geração automática a fim de atender a necessidades de suas aplicações específicas para QEE. O desenvolvimento de uma ferramenta CASE específica para o ambiente ADEBDQEE a fim de integrar a edição dos padrões de análise e do Framework Conceitual. Um dos pontos importantes e críticos de um SIQEE é o armazenamento de dados e sua disponibilização. Com relação ao armazenamento, observa-se que teremos dados referenciados ao longo do tempo, portanto temos uma grade massa de dados que serão analisados após um certo período. Neste caso temos um alto custo para armazenamento e 125 uma grande quantidade de informações, o que torna interessante a troca de dados entre as diversas instituições que se preocupam com a QEE, hoje na maioria dos casos a troca de informação acontece através de instituições que trabalham em parceria, ou através de grupos de pesquisas. Com relação a disponibilização dos dados, as informações relativas a QEE são de interesse das concessionárias, consumidores e grupos de pesquisa em QEE, mas hoje somente os grupos de pesquisas e as concessionárias têm acesso a esse tipo de informação de modo limitado, através de consultas pré-definidas. Atualmente o processo de disponibilização de dados de QEE na Web é pouco utilizado, uma forma interessante seria a disponibilização de dados utilizando o padrão XML descrito nesta dissertação de forma a prover dados padronizados facilitando a troca de informações na Web. A disponibilização de consultas na Web apresenta grandes benefícios uma vez que teremos medições distribuídas ao longo de áreas geográficas extensas. Desta forma teremos usuários espalhados geograficamente tendo acesso aos dados. Esses dados além de serem visualizados podem ser tratados e inseridos em um novo banco de dados, uma forma de permitir essa funcionalidade, é fazendo o uso de XML (Extensible Markup Language). A XML [W3C98] é um padrão aprovado pela W3C (World Wide Web Consortium) que deve se tornar um formato universal para a troca de informações na Web. 126 8 Referências Bibliográficas [ABT99] ABTEBOUL, S. et al. Data on the Web: From Relations to Semistructured Data and XML. Morgan Kaufmann, 1999. [AGO00] AGOSTINI, M.. N. et al. Desenvolvimento e Implementação de uma Base Computacional Orientada a Objetos para Aplicações em Sistemas de Energia Elétrica. Anais do XIII Congresso Brasileiro de Automática – CBA2000. Setembro, 2000. Florianópolis. [ALD01] ALDABO, R. Qualidade na Energia Elétrica. São Paulo, Artliber, 2001. [ALU01] ALUR, D. et al. Core J2EE Patterns: Best Practices and Design Strategies. Prentice Hall, 1ª. Edição, 2001. [ALT04] XML SPY 4.0 . Tutoriais Altova Inc. & Altova GmbH, 2003. Disponível com o software shareware em http://www.xmlspy.com [ALV00] ALVES, M. F. et al. Um Sistema para o Gerenciamento da Qualidade da Energia Elétrica. XIII Congresso Brasileiro de Automática - CBA 2000, Setembro 2000, Florianópolis. [BEZ02] BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML. Editora Campus, Rio de Janeiro, 2002. [BAT92] BATINI, C. et al. Conceptual Database Design: Na Entity-Relationship Approach. Redwood: Benjamin/Cummings, 1992. [BOO99] BOCH, G., et al. The Unified Modeling Language User Guide. Addison-Wesley, 1999. [BOS97] BOSCH, J. Adapting Object-oriented Components. In: Workshop Component-oriented programming WCOP ´97, Jyvaskylä; Finland, 1997. Disponível em: http://www5.bth.se/cgibin/MsmGo.exe?grab_id=60675328&EXTRA_ARG=&CFGNAME=MssFind%2Ecfg&host_id=4&page_id =5409&query=Adapting+objectoriented+componentes&hiword=ADAPTING+OBJECTORIENTED+COM PONENTES+COMPONENT+COMPONENTS+ADAPTATION+ADAPT+ADAPTED+ADAPTERS+ADA PTER+ADAPTS+OBJECTORIENTATION+ADAPTION+ADAPTOR+ADAPTORS+COMPONENTY+A DAPTIONS+COMPONENTI+ Acesso em (13/01/2004) [CAR01] CARLSON, D. Modeling XML Applications with UML Practical e-Business Applications. Addison Wesley, 2001. [CHE02] CHEN, S.; F.Y.Lu. Web-Based Simulation of Power Systems. IEEE Computer Applications in Power, Vol. 15, n° 1, janeiro/2002. [CUN03] CUNHA, G. E., et al. Proposta de Padrões de Software para Reutilização Sistemática em Sistemas de Software Orientados a Objetos. 2003 [CON03] CONALLEN, J. Building Web Applications with UML. Addison Wesley 2003. [COU97] COUGO, P. S. Modelagem Conceitual e Projeto de Banco de Dados. Campus, Rio de Janeiro, 1997 [CRU03] CRUZ, J. C. A. O. et al. Administração de uma Rede de Aquisição e Distribuição de Dados para Avaliação da Qualidade da Energia Elétrica. V SBQEE-Seminário Brasileiro sobre Qualidade da Energia Elétrica, Agosto 2003, Aracaju. 127 [DAB95] DABBS, B. et al. The Power Quality Database: A Software Toll for Utility Engineers to Solve Problems. IEEE Computer Applications in Power, p 72-79. [DAN02] DANTAS, A., et al. Suporte a Padrões no Projeto de Software. XVI SBES – Simpósio Brasileiro de Engenharia de Software, Outubro 2002, Gramado. [DIA01] DIAS V. C. et al. Um Sistema de Aquisição de Dados para o Gerenciamento da Qualidade da Energia Elétrica. IV SBQEE –Seminário Brasileiro sobre Qualidade da Energia Elétrica, Agosto 2001, Porto Alegre. [DUG96] DUGAN, R. C.; Mcgranahan, M. F., et al. Eletrical Power Systems Quality. McGraw-Hill, 1996. [ECL04] Plataforma Eclipse. Disponível em http://www.eclipse.org. Acesso (15/01/2004) [EDE94] EDELWEISS, N., Sistemas de Informação de Escritórios: um Modelo para Especificações Temporais. Porto Alegre: CPGCC da UFRGS, 1994. Tese Doutorado. [EMB87] EMBLEY, D. W., WOODFIELD, S. N., A knowledge structure for reusing abstracr data types. In: International Conference on Software Engineering, 1987, Monterey. New York: IEEE Computer Socity Press, 1987. [FAL98] FALBO, R., Integração de Conhecimento em um Ambiente de Desenvolvimento de Software. COPPE/UFRJ, Rio de Janeiro, RJ, 1998. Tese de Doutorado. [FAV97] FAVARO, J. Standardizing Production of Domain Components. Standard View, vol 5, no. 2, 1997. [FAV02] FAVARIN, S. et al. Sistema de Telemedição e Supervisão de Qualidade de Energia Elétrica. Seminário Internacional sobre Automação e Redes de Distribuição de Energia Elétrica e Centros de Controle, Setembro 2002, São Paulo. [FAY97]FAYAD,M., et al. Object-Oriented Communications of the ACM, New Yok, v. 40, n. 10, 1997. Application Frameworks. [FAY99] FAYAD, M. et al. Building Applications Frameworks. Editora John Willey e Songs, 1999. [FER98] FERNANDEZ, E. B. Building Systems Using Analysis Patterns. Procs. of Int. software Architecture Workshop – ISAW3, 1998. [FER99] FERNANDES, D. E. B., et al. Development of na Automated Power Quality Management System. IEEE – Transmission and Distribution Conference, 1999, New Orleans. [FERN99] FERNANDES, D. E. B., Uma Metodologia de Gerenciamento da Qualidade da Energia Elétrica. PUC-Minas, Belo Horizonte, PPGEE, 1999. Dissertação de Mestrado. [FER01] FERNANDES, D. E. B., et al. Um Banco de Dados Relacional para o Gerenciamento da Qualidade da Energia Elétrica. IV SBQEE –Seminário Brasileiro sobre Qualidade da Energia Elétrica, Agosto 2001, Porto Alegre. [FIK99] FIKES, R. et al. Distributed Repositories of Highly Expressive Reusable Ontologies”. IEEE Intelligent Systems & Their Applications, vol 14, no. 2, 1999. [FOU02] FOURO, A. M. M. Apoio à Construção de Base de Dados de Pesquisa em Ambientes de Desenvolvimento de Software Orientados a Domínio. COPPE/UFRJ, Rio de Janeiro, 2002. Dissertação de Mestrado. [FON99] FONSECA, V. R. C. Cálculo Estocástico do Afundamento de Tensão. PUC-Minas, Belo Horizonte, PPGEE, 1999. Dissertação de Mestrado. [FOW97] FOWLER, M., Analysis Patterns: Reusable Object Models, Addison Wesley, 1997. 128 [FOW00] FOWLER, M., et al. UML Distilled – A Brief Guide to the Standard Object Modeling Language. Addison Wesley, 2000. [FRA02] FRANCO, C. S. et al. Sistema de Geração de Base de Dados. Seminário Internacional sobre Automação e Redes de Distribuição de Energia Elétrica e Centros de Controle, Setembro 2002, São Paulo. [FUR98] FURLAN, J. D. Modelagem de Objetos através da UML. Makron Books, São Paulo, 1998. [GAM95] GAMMA, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley, 1995. [GER99] GERBER, L. D. Uma Linguagem de Padrões para o Desenvolvimento de Sistemas de Apoio à Decisão Baseado em Frameworks. Porto Alegre, PUCRS, 1999. Dissertação Mestrado. [GOM95] GÓMEZ-PÉREZ, A. Some Ideas and Examples to Evaluate Ontologies. In Proceedings of 11th Coference in Artificial Intelligence for Applications, Los Angeles, 1995. [GRA02] GRAVES, M. Designing XML Databases. Prenctice Hall, 2002. [GRU95] GRUBER, T. R. Towards Principles for the Design of Ontologies used for Knowledge Sharing. International Journal Human-Computer Studies, no. 43, 1995 [GUA95] GUARINO, N., et al. “Ontologies and Knowledge Bases – Towards a Terminological Clarification”. In: Mars, N. J., Towards Very Large Knowledge Bases: Knowledge Building and Knowledge Sharing, IOS Press, Amsterdan, 1995. [GUA97] GUARINO, N. Semantic Matching: Formal Ontological Distinctions for Information Organization, Extraction and Integration. In: Information Extraction: a Multidisciplinary Approach to na Emerging Information Tecnhology, 1997. [HAY95] HAY, D. C. Data Model Patterns: Conventions of Thought. Dorset House Publishing, 1995. [HEU01] HEUSER, C. A. Projeto de Banco de Dados. Sagra Luzzatto, edição 4, número 4, 2001. [HOL01] HOLZNER, S. Inside XML. New Riders Press, 2001. [IEEE95] IEEE STANDARS BOARD, IEE Std 1159 – 1995 – Recommended pratice for Monitoring Electric Power Quality, USA, 1995. [JOH93] JOHNSON, R. E. How to Design Frameworks, OOPSLA, 1993. Disponível para ftp em: st.cs.uiuc.edu. Conectar como anonymous. Pasta: /pub/papers/framework [JON01] JONES, M. P. Fundamentos de Desenho Orientado a Objeto com UML. São Paulo, Makron Books, 2001 [KAG03] KAGAN, N., et al. Desenvolvimento de Ferramenta Automatizada para Estimação da Qualidade de Fornecimento das Redes de Distribuição. V SBQEE-Seminário Brasileiro sobre Qualidade da Energia Elétrica, Agosto 2003, Aracaju. [KOR99] KORTH, H. F. et al. Sistemas de Banco de Dados. Makron Books, edição 3, 1999. [LAR99] LARMAN, C. Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design. Prentice-Hall, 1999. [LEB03] LEBORGHE R. C. Uma Contribuição à Caracterização da Sensibilidade de Processos Industriais Frente a Afundamentos de Tensão. Itajubá, Universidade Federal de Itajubá, 2003. Dissertação de Mestrado 129 [LIS00] LISBOA, J. F., Projeto Conceitual de Banco de Dados Geográficos através da Reutilização de Esquemas, utilizando Padrões de Análise e um Framework Conceitual, Porto Alegre, UFRGS, PPGC, 2000. Tese de Doutorado. [LIS01] LISBOA J. F. et al. Padrões de Análise para Aplicações de Gestão Urbana em Sistemas de Informação Geográfica. In: Latin American conference on Pattern Languages of Programming, 2001. [LIS02] LISBOA J. F., et al. Reutilização de Esquemas de Banco de Dados em Aplicações de Gestão Urbana. Revista IP-Informática Pública, Belo Horizonte, V.4, n1, 2002. [MAG01] MAGALHÃES, K. V. et al. Uma Abordagem de Dados Semi-Estruturados em Banco de Dados Relacionais. XVI Simpósio Brasileiro de Banco de Dados, Rio de Janeiro, 2001. [MED03] MEDEIROS, M. O. M. et al. Monitoração da Qualidade de Energia de um Sistema de Distribuição. V SBQEE- Seminário Brasileiro sobre Qualidade da Energia Elétrica, Agosto 2003, Aracaju. [MEL02] MELO, A . C. Desenvolvendo Aplicações com UML. Brasport, Rio de Janeiro, 2002. [MES98] MESZAROS, G., et al. A Pattern Language for Pattern Writing. Disponível em: http://webclass.cqu.edu.au/Patterns/Resources/writers/language/patterns.html#1.0 ou http://hillside.net/patterns/writing/patterns.htm#1.0 [MIA02] MIAN, P. G. et al. Orientação a Domínio em ODE. Universidade Federal do Espírito Santo. In: InfoUYClei, Montevideo, Uruguay, 2002. [MIL95] MILI, H., et al. Reusing Software: Issues and Research Directions. IEEE Transactions on Software Engineering, Vol. 21,no. 26, 1995. [MON02] MONTEIRO, O. L. D. Aplicações de Padrões de Projeto no Desenvolvimento de Frameworks – Um estudo de Caso. Florianópolis, UFSC, PPGCC, 2002. Dissertação Mestrado. [MOU92] MOURA, L. M. et al. Ambientes de Desenvolvimento de Software, COPPE/UFRJ, Rio de Janeiro, 1992. Documento Técnico. [MUL99] MULLER, R. J. Database Designer for Smarties using UML for Data Modeling. Academic Press, 1999. [MUS98] MUSEN, M. A . Modern Architectures for Intelligent Systems: Reusable Ontologies and Problem Solving Methods. JAMIA, Journal of the American Medical Informatics Association, 1998. [NAV00] NAVATHE, S. B., et al. Fundamentals of Database Systems. Addison Wesley, 3rd Edition, 2000. [NEI94] NEIGHBORS, J. M. An assessment of reuse technology after ten years. In: International Conference on Software Reuse, 3., 1994, Rio de Janeiro. Proceedings... Los Alamitos, Califórnia: IEEE Computer Socity Press, 1994. [NET01] NETO, L. B., et al. DEA: Uma Aplicação no Controle da Qualidade da Energia Elétrica. Simpósio Brasileiro de Pesquisa Operacional, Novembro 2001, Campos do Jordão. [OLI99] OLIVEIRA, A. et al. Conservação de Energia e sua Relação com a Qualidade da Energia Elétrica. XV SNPTEE –Seminário Nacional de Produção e Transmissão de Energia Elétrica, Outubro 1999, Foz do Iguaçu. [OLI99a] OLIVEIRA, K. M. Modelo para a Construção de Desenvolvimento de Software Orientados a Domínio. Universidade Federal do Rio de Janeiro,COPPE, 1999. Tese de Doutorado. [OLI] OLIVEIRA, K. M. et al. O Uso da Teoria do Domínio no Processo de Desenvolvimento de Software. 130 [OMG99] OMG, Unified Modeling Language Specification. Versão 1.3, 1999. Disponível em: http://www.rational.com.br/uml Acesso em: (13/01/2004) [ONS00] Operador Nacional do Sistema Elétrico-NOS/ANEEL. Padrões de Desempenho da Rede Básica. 2000. Disponível em : http:://www.ons.org.br. [PEL03] PELEGRINI, M. A.et al.SISQUALI: Uma Ferramenta de Planejamento de Redes de Distribuição Utilizando Parâmetros de Qualidade. V SBQEE- Seminário Brasileiro sobre Qualidade da Energia Elétrica, Agosto 2003, Aracaju. [PIM00] PIMENTEL, M. G. C., et al. XML: Explorando suas Aplicações na Web. XX Congresso Nacional da Sociedade Brasileira de Computação , XIX Jornada de Atualização em Informática, Julho 2000, Curitiba. [PIT99] PITTS-MOULTIS, N. XML Black Book. Coriolis Groups, 1999. [PPGEE00] PUC-MG/No. PPGEE-65/2000. Projeto de Pesquisa: Gerenciamento da Qualidade da Energia Elétrica; financiamento CEMIG/PUC-FIP, abril 2000. [PRE94] PREE, W. Meta Patterns – a means for capturing essencial of reusable object-oriented design. In European Conference on Object-Oriented Programming. [PRE95] PREE, W. Design Patterns of Object-Oriented software Development. Addison Wesley, 1995. [PRE97] PREE, W., Essencial Framework Design Patterns. New York, 1997. Disponível em: Acesso em: [PRE01] PRESSMAN, R. S. Software Engineering: A Practitioner’s Approach. Edição 5, McGraw-Hill, 2001. [REZ02] REZENDE, D. A . Engenharia de Software e Sistemas de Informação. Edição 2, Brasport, Rio de Janeiro, 2002. [RIB98] RIBEIRO, T. N. Uma Discussão dos Critérios e Normas Relativos à Qualidade da Energia Elétrica. PUC-MG, Agosto, 1998. Dissertação de Mestrado. [ROB93] ROBERTSON, S. et al. Reusing the Products of Analysis. Procs. of Int. Workshop on Software Reusability. Lucca, Italy, 1993. Disponível em: http://www.atlsysguild.com/GuildSite/SQR/reusingAnalysis.html Acesso em (13/01/2004) [ROM03] ROMERO, S. P., et al. Um Programa para Simulação de Afundamentos Momentâneos de Tensão. Seminário Brasileiro sobre Qualidade da Energia Elétrica, Agosto 2003, Aracaju. [SAN02] SANTOS, N. A . M. et al. Construção de Base de Dados de Medição Utilizando de Ferramentas de Telemetria, Agregação e Análise via Web. Seminário Internacional sobre Automação e Redes de Distribuição de Energia Elétrica e Centros de Controle, Setembro 2002, São Paulo. [SIL00] SILVA, R. P. Suporte ao Desenvolvimento e uso de Frameworks e Componentes. Porto Alegre, UFRGS, PPGC, 2000. Tese de Doutorado. [SIL00a] SILVA C. G. M. Neturno: Um Ambiente de Desenvolvimento de Software Orientados ao Domínio de Acústica Submarina. COPPE/UFRJ, 2000. Dissertação de Mestrado. [SCH97] SCHMIDT, H. A .Systematic Framework Design by Generalization. Communications of the ACM, vol 40, no.10, 1997. [SUC98] SUCIU, D. Semistructured Data and XML. The 5th Internacional Conference of Foundations of Data Organization - FODO’98, Kobe, Japan, Novembro, 1998. 131 [SWA99] SWARTOUT, W., et al. Ontologies – Guest Editors Introduction. IEEE Intelligent Systems & Their Applications, vol 14, no. 1, 1999. [TAL97] TALIGENT, Inc. Building Object-Oriented Frameworks. 1997. Disponível em: http://lhcbcomp.web.cern.ch/lhcb-comp/Components/postscript/buildingoo.pdf Acesso em: (09/01/2004) [TON03] TONSING,S. L. Engenharia de Software. Futura, São Paulo, 2003 [UCH] UCHÔA, E. M. A ., et al. Integração de Sistemas de Dados Heterogêneos usando Frameworks. [VAN97] VAN, H. G. et al. Using Explicit Ontologies in KBS Development. International Journal of Human-Computer Studies, val. 45, no. 2/3, 1997. [VIV01] VIVEKANANDA, R. et al. Monitoração e Apresentação dos Indicadores de Qualidade da Rede de Distribuição da CERJ, via Site dedicado na Internet, baseado em Medições de Harmônicos e Afundamentos de Tensão. Seminário Internacional sobre Automação e Redes de Distribuição de Energia Elétrica e Centros de Controle, Outubro 2001, Puerto Iguazu, Argentina. [W3C98] The World Wide Web Consortium. Extensible Markup Language (XML) 1.0, February 1998. http://www.w3.org/TR/REC-xml 132 9 Apêndices No Apêndice – A é apresentado o projeto do banco de dados usado no Ambiente de Definição de um Banco de Dados para QEE. No Apêndice – B é apresentado as interfaces adicionais que compõe o Ambiente de Definição de um Banco de Dados para QEE. No Apêndice – C é apresentado o arquivo .DTD para o Caso exemplo: Sistema de Gerenciamento da Qualidade da Energia Elétrica. No Apêndice – D é apresentado a conversão do diagrama de classes para DTD para o Caso exemplo : Caracterização da Sensibilidade de Processos Industriais frente a Afundamentos de Tensão. No Apêndice – E é apresentado o mapeamento da DTD para um SGBD relacional para o Caso exemplo : Caracterização da Sensibilidade de Processos Industriais frente a Afundamentos de Tensão. 133 Conceptual Data Model Proj_ADEBDQEE Apêndice - A Standard CDM report PowerDesigner 28/9/2005 Page 134 Conceptual Data Model Proj_ADEBDQEE Table of Contents The 'Table of contents' field needs to be updated! CDM GraphsCDM GraphsCDM Graphs Global model GraphGlobal model GraphGlobal model Graph Teoria_Dominio CodTeoria I NomTeoria A80 DesTeoria A255 Teoria_Framework Framework_Conceitual CodFramework I NomArqFramework A80 Teoria_Subteoria Padrao_Analise Sub_TeoriaDominio Bibliografia CodBibliografia AutorBibliografia DescBibliografia EditEveBibliografia InfoBibliografia I A80 A200 A100 A255 CodSubTeoria NomSubTeoria DesSubTeoria I A80 A255 Subteoria_PadraoAnalise CodPadrao NomPadrao DesProblema ContextoPadrao ForcasPadrao ArquivoPadrao SolucaoPadrao I A80 A100 A255 A255 A100 OLE SubTeoriaConceito Subteoria_Conceito CodConceito I SinConceito A80 DesConceito A255 NomConceito A100 Subteoria_Conceito_Biblio Lists of objectsLists of objectsLists of objects Data Item ListData Item ListData Item List Name ArquivoPadrao AutorBibliografia CodBibliografia CodConceito CodFramework CodPadrao CodSubTeoria CodTeoria ContextoPadrao DescBibliografia DesConceito DesProblema DesSubTeoria DesTeoria EditEveBibliografia FigFramework ForcasPadrao InfoBibliografia NomArqFramework NomConceito NomPadrao NomSubTeoria NomTeoria SinConceito Code ARQUIVOPADRAO AUTORBIBLIOGRAFIA CODBIBLIOGRAFIA CODCONCEITO CODFRAMEWORK CODPADRAO CODSUBTEORIA CODTEORIA CONTEXTOPADRAO PERIODICOBIBLIOGRAFIA DESCONCEITO DESPROBLEMA DESSUBTEORIA DESTEORIA EDITEVEBIBLIOGRAFIA FIGFRAMEWORK FORCASPADRAO INFOBIBLIOGRAFIA NOMARQFRAMEWORK NOMCONCEITO NOMPADRAO NOMSUBTEORIA NOMTEORIA SINCONCEITO PowerDesigner 28/9/2005 Type A100 A80 I I I I I I A255 A200 A255 A100 A255 A255 A100 PIC A255 A255 A80 A100 A80 A80 A80 A80 Page 135 Conceptual Data Model Proj_ADEBDQEE Name Code SOLUCAOPADRAO SolucaoPadrao Type OLE Entity ListEntity ListEntity List Name Bibliografia Framework_Conceitual Padrao_Analise Sub_TeoriaDominio Subteoria_Conceito Teoria_Dominio Code BIBLIOGRAFIA FRAMEWORK_CONCEITUAL PADRAO_ANALISE SUB_TEORIADOMINIO SUBTEORIA_CONCEITO TEORIA_DOMINIO Relationship ListRelationship ListRelationship List Name Subteoria_Conceito_Biblio Subteoria_PadraoAnalise SubTeoriaConceito Teoria_Framework Teoria_Subteoria Code SUBTEORIA_CONCEITO_BIBLIO SUBTEORIA_PADRAOANALISE SUBTEORIACONCEITO TEORIA_FRAMEWORK TEORIA_SUBTEORIA Entity InformationEntity InformationEntity Information Entity BibliografiaEntity BibliografiaEntity Bibliografia Name: Code: Label: Number: Bibliografia BIBLIOGRAFIA Generate Table: Yes Description Informações sobre referencias bilbiográficas onde possa ser encontrado informações adicionais a respeito do Conceito. Attribute List Name CodBibliografia AutorBibliografia DescBibliografia EditEveBibliografia InfoBibliografia Code CODBIBLIOGRAFIA AUTORBIBLIOGRAFIA PERIODICOBIBLIOGRAFIA EDITEVEBIBLIOGRAFIA INFOBIBLIOGRAFIA Type I A80 A200 A100 A255 I Yes No No No No M Yes No No No No Data Item CodBibliografia Description Código identificador da Bibliografia Data Item AutorBibliografia Description PowerDesigner 28/9/2005 Page 136 Conceptual Data Model Proj_ADEBDQEE Autor da Bibliografia relacionada. Data Item DescBibliografia Description Nome do livro, artigo, etc. da Bibliografia relacionada. Data Item EditEveBibliografia Description Editora / Evento: Congresso Bibliografia relacionada. Data Item InfoBibliografia Description Informações adicionais. Reference List Entity Card Subteoria_Conceito(SUBTEORIA_CONC 1,n EITO) Dep. Relationship No Subteoria_Conceito_Biblio(SUBTEORIA _CONCEITO_BIBLIO) Entity Framework_ConceitualEntity Framework_ConceitualEntity Framework_Conceitual Name: Code: Label: Number: Framework_Conceitual FRAMEWORK_CONCEITUAL Generate Table: Yes Description Informações sobre os frameworks existentes. Que pertecem a alguma Teoria de Domínio Attribute List Name CodFramework NomArqFramework Code CODFRAMEWORK NOMARQFRAMEWORK Type I A80 I Yes No M Yes Yes Data Item CodFramework Description Código idenficador do Framework Conceitual. Data Item NomArqFramework Description Nome do Arquivo que idenfica o Framework. PowerDesigner 28/9/2005 Page 137 Conceptual Data Model Proj_ADEBDQEE Annotation Arquivos de idenficação: .mdl Reference List Entity Teoria_Dominio(TEORIA_DOMINIO) Card 1,1 Dep. Relationship No Teoria_Framework(TEORIA_FRAMEW ORK) Entity Padrao_AnaliseEntity Padrao_AnaliseEntity Padrao_Analise Name: Code: Label: Number: Padrao_Analise PADRAO_ANALISE Generate Table: Yes Description Infomações de Padrões de Análise para QEE, de acordo com a Teoria do Domínio. Attribute List Name CodPadrao NomPadrao DesProblema ContextoPadrao ForcasPadrao ArquivoPadrao SolucaoPadrao Code CODPADRAO NOMPADRAO DESPROBLEMA CONTEXTOPADRAO FORCASPADRAO ARQUIVOPADRAO SOLUCAOPADRAO Type I A80 A100 A255 A255 A100 OLE I Yes No No No No No No M Yes Yes Yes Yes Yes Yes No Data Item CodPadrao Description Identifica o padrão de análise. Data Item NomPadrao Description Nome do Padrão de Análise. Data Item DesProblema Description Fornece uma declaração sucinta do problema que necessita ser resolvido. Annotation Normalmente colocado na forma de pergunta. Data Item ContextoPadrao PowerDesigner 28/9/2005 Page 138 Conceptual Data Model Proj_ADEBDQEE Description Contexto: descreve o contexto no qual o problema foi identificado e para o qual a solução foi proposta. Data Item ForcasPadrao Description Forças: Conjunto de restrições que foram consideradas quando da elaboração da solução do problema. Data Item ArquivoPadrao Description Arquivo .mdl que identifica o padrão. Data Item SolucaoPadrao Description Solução: Fornece um diagrama de classes com a solução proposta. Reference List Entity Sub_TeoriaDominio(SUB_TEORIADOMI NIO) Card 1,n Dep. Relationship No Subteoria_PadraoAnalise(SUBTEORIA_ PADRAOANALISE) Entity Sub_TeoriaDominioEntity Sub_TeoriaDominioEntity Sub_TeoriaDominio Name: Code: Label: Number: Sub_TeoriaDominio SUB_TEORIADOMINIO Generate Table: Yes Attribute List Name CodSubTeoria NomSubTeoria DesSubTeoria Code CODSUBTEORIA NOMSUBTEORIA DESSUBTEORIA Type I A80 A255 I Yes No No M Yes Yes Yes Data Item CodSubTeoria Description Código idenficador da subteoria do domínio. Data Item NomSubTeoria Description Nome da subteoria do domínio. Data Item DesSubTeoria PowerDesigner 28/9/2005 Page 139 Conceptual Data Model Proj_ADEBDQEE Description Descrição da Subteoria do Domínio. Reference List Entity Padrao_Analise(PADRAO_ANALISE) Card 1,n Subteoria_Conceito(SUBTEORIA_CONC 1,n EITO) Teoria_Dominio(TEORIA_DOMINIO) 1,n Dep. Relationship No Subteoria_PadraoAnalise(SUBTEORIA_ PADRAOANALISE) No SubTeoriaConceito(SUBTEORIACONC EITO) No Teoria_Subteoria(TEORIA_SUBTEORIA ) Entity Subteoria_ConceitoEntity Subteoria_ConceitoEntity Subteoria_Conceito Name: Code: Label: Number: Subteoria_Conceito SUBTEORIA_CONCEITO Generate Table: Yes Description Definição dos Conceitos para as Subteorias. Attribute List Name CodConceito SinConceito DesConceito NomConceito Code CODCONCEITO SINCONCEITO DESCONCEITO NOMCONCEITO Type I A80 A255 A100 I Yes No No No M Yes No No No Data Item CodConceito Description Código identificador do Conceito. Data Item SinConceito Description Sinônimo do Conceito. Data Item DesConceito Description Descrição do Conceito. Data Item NomConceito Description Nome que identifica o conceito. PowerDesigner 28/9/2005 Page 140 Conceptual Data Model Proj_ADEBDQEE Reference List Entity Bibliografia(BIBLIOGRAFIA) Card 1,n Sub_TeoriaDominio(SUB_TEORIADOMI NIO) 1,n Dep. Relationship No Subteoria_Conceito_Biblio(SUBTEORIA _CONCEITO_BIBLIO) No SubTeoriaConceito(SUBTEORIACONC EITO) Entity Teoria_DominioEntity Teoria_DominioEntity Teoria_Dominio Name: Code: Label: Number: Teoria_Dominio TEORIA_DOMINIO Generate Table: Yes Description Responsável pela Definição da Teoria do Domínio Annotation Exemplo: Domínio Sistema Gerenciador para Qualidade da Energia Elétrico, Sistema de Monitoração da Qualidade da Energia Elétrica. Attribute List Name CodTeoria NomTeoria DesTeoria Code CODTEORIA NOMTEORIA DESTEORIA Type I A80 A255 I Yes No No M Yes Yes Yes Data Item CodTeoria Description Código que idenfica a Teoria do Domínio. Data Item NomTeoria Description Nome da Teoria da Domínio Data Item DesTeoria Description Descrição da Teoria do Domínio Reference List Entity Framework_Conceitual(FRAMEWORK_ CONCEITUAL) Sub_TeoriaDominio(SUB_TEORIADOMI NIO) PowerDesigner Card 1,n 1,n 28/9/2005 Dep. Relationship No Teoria_Framework(TEORIA_FRAMEW ORK) No Teoria_Subteoria(TEORIA_SUBTEORIA ) Page 141 Conceptual Data Model Proj_ADEBDQEE Relationships InformationRelationships InformationRelationships Information Relationship Subteoria_Conceito_BiblioRelationship Subteoria_Conceito_BiblioRelationship Subteoria_Conceito_Biblio Name: Subteoria_Conceito_Biblio Code: SUBTEORIA_CONCEITO_BIBLIO Label: Entity 1: Bibliografia Entity 2: Subteoria_Conceito Cardinality: Many to Many Entity 2 dependent of Entity 1: No Entity 1 --> Entity 2: Role: Mandatory: Yes Dominant: No Min, Max: 1, n Entity 2 --> Entity 1: Role: Mandatory: Yes Dominant: No Min, Max: 1, n Relationship Subteoria_PadraoAnaliseRelationship Subteoria_PadraoAnaliseRelationship Subteoria_PadraoAnalise Name: Subteoria_PadraoAnalise Code: SUBTEORIA_PADRAOANALISE Label: Entity 1: Sub_TeoriaDominio Entity 2: Padrao_Analise Cardinality: Many to Many Entity 2 dependent of Entity 1: No Entity 1 --> Entity 2: Role: Mandatory: Yes Dominant: No Min, Max: 1, n Entity 2 --> Entity 1: Role: Mandatory: Yes Dominant: No Min, Max: 1, n Relationship SubTeoriaConceitoRelationship SubTeoriaConceitoRelationship SubTeoriaConceito Name: Code: Label: PowerDesigner SubTeoriaConceito SUBTEORIACONCEITO 28/9/2005 Page 142 Conceptual Data Model Proj_ADEBDQEE Entity 1: Sub_TeoriaDominio Entity 2: Subteoria_Conceito Cardinality: Many to Many Entity 2 dependent of Entity 1: No Entity 1 --> Entity 2: Role: Mandatory: Yes Dominant: No Min, Max: 1, n Entity 2 --> Entity 1: Role: Mandatory: Yes Dominant: No Min, Max: 1, n Relationship Teoria_FrameworkRelationship Teoria_FrameworkRelationship Teoria_Framework Name: Teoria_Framework Code: TEORIA_FRAMEWORK Label: Entity 1: Teoria_Dominio Entity 2: Framework_Conceitual Cardinality: One to Many Entity 2 dependent of Entity 1: No Entity 1 --> Entity 2: Role: Mandatory: Yes Dominant: No Min, Max: 1, n Entity 2 --> Entity 1: Role: Mandatory: Yes Dominant: No Min, Max: 1, 1 Relationship Teoria_SubteoriaRelationship Teoria_SubteoriaRelationship Teoria_Subteoria Name: Teoria_Subteoria Code: TEORIA_SUBTEORIA Label: Entity 1: Teoria_Dominio Entity 2: Sub_TeoriaDominio Cardinality: Many to Many Entity 2 dependent of Entity 1: No Entity 1 --> Entity 2: Role: Mandatory: Yes Dominant: No PowerDesigner 28/9/2005 Page 143 Conceptual Data Model Min, Max: Proj_ADEBDQEE 1, n Entity 2 --> Entity 1: Role: Mandatory: Yes Dominant: No Min, Max: 1, n PowerDesigner 28/9/2005 Page 144 Apêndice – B Esse apêndice apresenta a possibilidade de recuperação e alteração das Teorias do Domínio e Subteorias, Figuras Figura 9.1e Figura 9.2. Figura 9.1: Seleção da Teoria do Domínio. Figura 9.2: Seleção da Subteoria. 145 Apêndice – C Demonstrativo da geração do documento .DTD gerado para o Caso 1: Sistema de Gerenciamento da Qualidade da Energia Elétrica. (Parte) <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT Local_Monitoracao (Cod_Local,Dat_Inicio_Monitoracao,Nom_Local,Des_Local,Num_Fre quencia_alimentacao_local,Dat_Fim_Monitoracao,Val_Tensao_Nomi nal_Local)> <!ELEMENT Local_Monit_Contato (Cod_Contato,Nom_Local_Contato,Car_Contato,Tel_Fax,Tel_Voz,Te l_Dados,Obs_Contato,Local_Monitoracao+)> <!ELEMENT Monitoracao_Consumidor (Cod_Consumidor,Nom_Consumidor,End_Consumidor,Ufe_Consumidor, Cep_Consumidor,Pais_Consumidor,Tel1_Consumidor,Tel2_Consumido r,Obs_Consumidor,Nom_Cont_Consumidor,Local_Monitoracao)> <!ELEMENT Cod_Local (#PCDATA)> <!ELEMENT Dat_Inicio_Monitoracao (#PCDATA)> <!ELEMENT Nom_Local (#PCDATA)> <!ELEMENT Des_Local (#PCDATA)> <!ELEMENT Num_Frequencia_alimentacao_local (#PCDATA)> <!ELEMENT Dat_Fim_Monitoracao (#PCDATA)> <!ELEMENT Val_Tensao_Nominal_Local (#PCDATA)> <!ELEMENT Cod_Contato (#PCDATA)> <!ELEMENT Nom_Local_Contato (#PCDATA)> <!ELEMENT Car_Contato (#PCDATA)> <!ELEMENT Tel_Fax (#PCDATA)> <!ELEMENT Tel_Voz (#PCDATA)> <!ELEMENT Tel_Dados (#PCDATA)> <!ELEMENT Obs_Contato (#PCDATA)> <!ELEMENT Cod_Consumidor (#PCDATA)> <!ELEMENT Nom_Consumidor (#PCDATA)> <!ELEMENT End_Consumidor (#PCDATA)> <!ELEMENT Ufe_Consumidor (#PCDATA)> <!ELEMENT Cep_Consumidor (#PCDATA)> <!ELEMENT Pais_Consumidor (#PCDATA)> <!ELEMENT Tel1_Consumidor (#PCDATA)> <!ELEMENT Tel2_Consumidor (#PCDATA)> <!ELEMENT Obs_Consumidor (#PCDATA)> <!ELEMENT Nom_Cont_Consumidor (#PCDATA)> 146 Apêndice – D Conversão do Diagrama de Classes do Caso 2: Caracterização da Sensibilidade de Processos Industriais frente a Afundamentos de Tensão para DTD. A seguir são descritas as etapas para a conversão do diagrama de classes: 1- Definição da linguagem: Figura 9.3: Interface para definição da Linguagem XML - DTD 2- Interface para geração do documento: Figura 9.4: Geração do documento .DTD 147 3- Documento gerado <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT Pesquisa (Cod_pesquisa,Des_pesquisa)> <!ELEMENT Local_Monit_Contato (Cod_Contato,Nom_Local_Contato,Car_Contato,Tel_Fax,Tel_Voz,Te l_Dados,Obs_Contato,Local_Monitoracao+)> <!ELEMENT Local_Monitoracao (Cod_Local,Dat_Inicio_Monitoracao,Nom_Local,Des_Local,Num_Fre quencia_alimentacao_local,Dat_Fim_Monitoracao,Val_Tensao_Nomi nal_Local,Monitoracao_Consumidor+,Equipamento+,Pesquisa+)> <!ELEMENT Monitoracao_Consumidor (Cod_Consumidor,Nom_Consumidor,End_Consumidor,Ufe_Consumidor, Cep_Consumidor,Pais_Consumidor,Tel1_Consumidor,Tel2_Consumido r,Obs_Consumidor,Nom_Cont_Consumidor)> <!ELEMENT Canal (Cod_Canal,Nom_Grandeza,Ind_Grandeza,Rot_Grandeza,Canal_Equip amento*)> <!ELEMENT Canal_Equipamento (Cod_Canal_Equipamento,Name,Num_Canal,Raz_Transf_De,Raz_Trans f_Para,Uni_Grandeza,Equipamento+)> <!ELEMENT Equipamento (Cod_Equipamento,Num_Serie,Nom_Fabricante,Nom_Modelo,Ver_Soft ware,Str_Inic_Pc,StrInic_Equipamento,Obs_Equipamento,Parametro_Aguste*)> <!ELEMENT Tipos_Ajustes (Cod_Ajuste,Des_Ajuste,Uni_Ajuste,Idc_Ajuste,Parametro_Aguste *)> <!ELEMENT Parametro_Aguste (Cod_Param_ajustavel,Dat_Ajuste,Val_Ajuste)> <!ELEMENT Eventos_Vtcd (Cod_Vtcd,Des_Max_Amp,Media_Amp,Dur_Vtcd,Des_Padrao_Amp,Med_A mp,Per_Tensao,Per_Energia,Idc_Tipo_Vtcd)> <!ELEMENT Eventos_Estampa (Cod_Evento,Idc_Tipo_Evento,Dat_Inicio_Evento,Tratamento_Even tos*,Canal_Equipamento*)> <!ELEMENT Tratamento_Eventos (Cod_Tratamento_Eventos,Tam_Janela_Eventos,Tip_Janela_Eventos ,Des_Janela_Eventos)> <!ELEMENT Cod_pesquisa (#PCDATA)> <!ELEMENT Des_pesquisa (#PCDATA)> <!ELEMENT Cod_Contato (#PCDATA)> <!ELEMENT Nom_Local_Contato (#PCDATA)> <!ELEMENT Car_Contato (#PCDATA)> <!ELEMENT Tel_Fax (#PCDATA)> <!ELEMENT Tel_Voz (#PCDATA)> <!ELEMENT Tel_Dados (#PCDATA)> <!ELEMENT Obs_Contato (#PCDATA)> <!ELEMENT Cod_Local (#PCDATA)> <!ELEMENT Dat_Inicio_Monitoracao (#PCDATA)> <!ELEMENT Nom_Local (#PCDATA)> 148 <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Des_Local (#PCDATA)> Num_Frequencia_alimentacao_local (#PCDATA)> Dat_Fim_Monitoracao (#PCDATA)> Val_Tensao_Nominal_Local (#PCDATA)> Cod_Consumidor (#PCDATA)> Nom_Consumidor (#PCDATA)> End_Consumidor (#PCDATA)> Ufe_Consumidor (#PCDATA)> Cep_Consumidor (#PCDATA)> Pais_Consumidor (#PCDATA)> Tel1_Consumidor (#PCDATA)> Tel2_Consumidor (#PCDATA)> Obs_Consumidor (#PCDATA)> Nom_Cont_Consumidor (#PCDATA)> Cod_Canal (#PCDATA)> Nom_Grandeza (#PCDATA)> Ind_Grandeza (#PCDATA)> Rot_Grandeza (#PCDATA)> Cod_Canal_Equipamento (#PCDATA)> Name (#PCDATA)> Num_Canal (#PCDATA)> Raz_Transf_De (#PCDATA)> Raz_Transf_Para (#PCDATA)> Uni_Grandeza (#PCDATA)> Cod_Equipamento (#PCDATA)> Num_Serie (#PCDATA)> Nom_Fabricante (#PCDATA)> Nom_Modelo (#PCDATA)> Ver_Software (#PCDATA)> Str_Inic_Pc (#PCDATA)> Str-Inic_Equipamento (#PCDATA)> Obs_Equipamento (#PCDATA)> Cod_Ajuste (#PCDATA)> Des_Ajuste (#PCDATA)> Uni_Ajuste (#PCDATA)> Idc_Ajuste (#PCDATA)> Cod_Param_ajustavel (#PCDATA)> Dat_Ajuste (#PCDATA)> Val_Ajuste (#PCDATA)> Cod_Vtcd (#PCDATA)> Des_Max_Amp (#PCDATA)> Media_Amp (#PCDATA)> Dur_Vtcd (#PCDATA)> Des_Padrao_Amp (#PCDATA)> Med_Amp (#PCDATA)> Per_Tensao (#PCDATA)> Per_Energia (#PCDATA)> Idc_Tipo_Vtcd (#PCDATA)> Cod_Evento (#PCDATA)> Idc_Tipo_Evento (#PCDATA)> Dat_Inicio_Evento (#PCDATA)> 149 <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT Cod_Tratamento_Eventos (#PCDATA)> Tam_Janela_Eventos (#PCDATA)> Tip_Janela_Eventos (#PCDATA)> Des_Janela_Eventos (#PCDATA)> 150 Apêndice – E Mapeamento do documento .DTD gerado para um SGBD relacional (ferramenta XMLSPY ). Para tal estamos considerando o Caso 2: Caracterização da Sensibilidade de Processos Industriais frente a Afundamentos de Tensão. A seguir são descritas as etapas para chegar ao objetivo final: 1- Criação projeto na ferramenta XMLSPY, e importação do arquivo .DTD gerado na fase anterior (Figura 9.5): Figura 9.5: Demonstrativo da Criação do Projeto e Inclusão do Arquivo .DTD 151 2- Conversão do DTD/Shema no formato W3C Shema (Figura 9.6), e ajuste dos tipos de dados (Figura 9.7): Figura 9.6: Demonstrativo do resultado da conversão para DTD/Shema. Figura 9.7: Demonstrativo do ajuste nos tipos dos dados. 152 3- Criar o Banco de Dados (considerando o SGBD a ser utilizado – Figura 9.8) de acordo com o Shema gerado: Figura 9.8: Interface para a escolha do SGBD utilizado. 4- Definição dos atributos que são chave primária (Figura 9.9): Figura 9.9: Definição das Chaves Primárias. 5- Visualização das tabelas que serão geradas (Figura 9.10): Figura 9.10: Visualização das Tabelas que serão Criadas. 153 6- Resultado das tabelas criadas no Microsoft Access. Figura 9.11: Banco de Dados Criado com suas respectivas Tabelas. 154