ATENAS: Um Sistema Gerenciador de Regras de Negócio



Documentos relacionados
ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

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

GBD PROF. ANDREZA S. AREÃO

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

Aula 5 UML: Casos de Uso

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

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

Unidade II MODELAGEM DE PROCESSOS

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

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

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

REQUISITOS DE SISTEMAS

BANCO DE DADOS. Isac Aguiar isacaguiar.com.br

Orientação a Objetos I

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

2 Engenharia de Software

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

Desenvolvimento estruturado versus orientado a objetos.

Micro Mídia Informática Fevereiro/2009

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

SISTEMAS DE INFORMAÇÃO GERENCIAIS

Gerenciamento da Integração (PMBoK 5ª ed.)

Gerenciamento do ciclo de vida de um documento Simone de Abreu

Banco de Dados. Profª. Ana Leda

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Ferramenta para Geração de Código a partir da Especialização do Diagrama de Classes

UML: Casos de Uso. Projeto de Sistemas de Software

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

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

INE 5613 Banco de Dados I

Gerenciamento de Requisitos Gerenciamento de Requisitos

Modelagem de Processos. Prof.: Fernando Ascani

Gerenciamento de Projetos Modulo IX Qualidade

Desenvolvendo um Ambiente de Aprendizagem a Distância Utilizando Software Livre

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

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

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

Ciência da Computação ENGENHARIA DE SOFTWARE. UML-Unified Modeling Language Linguagem de Modelagem Unificada

Planejamento da disciplina: Modelagem de processos de negócio

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

Integração de livros fiscais com o Microsoft Dynamics AX 2009

TechProf Documento de Arquitetura

Treinamento BPMS Activiti + Elementos de NFR e Contexto. Bruno Figueiredo

2. Conceitos e Arquitetura de Bancos de Dados

Mapa Mental de Engenharia de Software - Diagramas UML

Notas de Aula 04: Casos de uso de um sistema

Diretrizes de Qualidade de Projetos

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

PROVA DISCURSIVA (P )

Desenvolvimento de uma Etapa

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Disciplina Técnicas de Modelagem

NORMA TÉCNICA E PROCEDIMENTOS GERAIS PARA ADMINISTRAÇÃO DO BANCO DE DADOS CORPORATIVO

REPRESENTAÇÃO DE REQUISITOS VARIÁVEIS COM UML, SEGUINDO O MÉTODO ICONIX

CEFET.PHB - PI. Plano de Ensino. Banco de Dados. Plano de Ensino. Plano de Ensino. Plano de Ensino - Conteúdo. Plano de Ensino - Conteúdo

Porque estudar Gestão de Projetos?

Programação Orientada a Objeto

FAZEMOS MONOGRAFIA PARA TODO BRASIL, QUALQUER TEMA! ENTRE EM CONTATO CONOSCO!

4- PROJETO DE BANCO DE DADOS

Gerenciamento de Requisitos

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

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

CAPÍTULO I INTRODUÇÃO

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

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

2 Gerenciamento de Log 2.1 Definições básicas

Uma Abordagem para Tratamento de Regras de Negócio nas Fases Iniciais do Desenvolvimento

Análise e Projeto de Software

IMPLEMENTAÇÃO DE UM PROTÓTIPO PARA INFORMATIZAÇÃO DE PROCESSO DE ADEQUAÇÃO DE FÉRIAS

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

Linguagens de. Aula 01. Profa Cristiane Koehler

UML Unified Modeling Language. Professor: André Gustavo Bastos Lima

Banco de Dados Conceito de Arquitetura

Persistência e Banco de Dados em Jogos Digitais

Trabalho Prático 1 Tipos Abstratos de Dados

3. Fase de Planejamento dos Ciclos de Construção do Software

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

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

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

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

OCL: Object Constraint Language

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

GladiusSimpleReport. Este manual, visa mostrar, como utilizar o GladiusSimpleReport atravéz de exemplos.

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

Versão Setembro/2013. Manual de Processos. Módulo Protocolo

Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade.

DESENVOLVENDO O SISTEMA

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

Especificação Operacional.

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

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

ITIL v3 - Operação de Serviço - Parte 1

A construção de um manual sobre a utilização dos modelos também poderá alavancar o uso das representações. Este conteria a explicação detalhada da

Introdução ao RUP Rational Unified Process. por Denize Terra Pimenta Outubro/2004

Transcrição:

1. Introdução ATENAS: Um Sistema Gerenciador de Regras de Negócio Geraldo Zimbrão da Silva (IM/UFRJ) Victor Teixeira de Almeida (COPPE/UFRJ) Jano Moreira de Souza (COPPE/UFRJ) Francisco Gonçalves Pereira Neto (DAbM/Marinha) {zimbrao,valmeida,jano}@cos.ufrj.br COPPE /UFRJ e Marinha do Brasil. A separação das regras de negócio nos sistemas de informação apresenta uma série de vantagens amplamente aceitas na comunidade de sistemas de informação [R97, R98, D00]. No entanto, ferramentas que suportem este tipo de abordagem ainda se encontram em sua fase embrionária, apresentando uma série de limitações que comprometem o seu uso em sistemas reais, em particular em sistemas que já estejam em produção e manutenção. Este artigo apresenta uma ferramenta, a Atenas, que está sendo desenvolvida pela COPPE em conjunto com a Diretoria de Abastecimento da Marinha do Brasil. O propósito inicial desta ferramenta é representar, utilizando uma base de conhecimento formal, as regras de negócio do SINGRA Sistema de Informações Gerenciais de Abastecimento o sistema que controla o abastecimento da Marinha. Segundo [G97] uma regra de negócio pode ser definida segundo duas perspectivas: a perspectiva do negócio e a perspectiva dos sistemas de informação (SI). Segundo a perspectiva do negócio, uma regra de negócio é uma diretiva destinada a influenciar ou guiar o comportamento do negócio, como suporte à política de negócio que é formulada em resposta a uma oportunidade. Segundo a perspectiva dos sistemas de informação, uma regra de negócio é uma sentença que define ou restringe algum aspecto do negócio. Pretende-se garantir a estrutura do negócio ou controlar a influência do comportamento do mesmo. Ainda, segundo [D00], as regras de negócio são a solução para o problema da necessidade de se escrever código de forma procedural, podendo-se especificar sistemas apenas de forma declarativa. As regras de negócio, segundo ele, nos permitem automatizar o processamento de negócios. 2. Motivação Como dito em [G97] os métodos tradicionais de análise de sistemas por muito tempo tenderam a negligenciar regras de negócio inerentes aos empreendimentos, preocupavam-se principalmente em modelar a estruturação dos dados utilizados e os processos executados pelos empreendimentos. Os métodos mais modernos de modelagem de sistemas, principalmente os que dão enfoque a orientação a objetos, já tentam lidar e resolver tais problemas. Isto pode ser visto na proposta de extensão a UML[BRJ97] chamada OCL (Object Constraint Language) em [OCL97] para dar suporte a restrições. Date em [D00] vai mais além dizendo que poderíamos até eliminar o processo de codificação de software simplesmente utilizando uma modelagem de sistemas baseado em regras de negócio com sua frase de impacto declarative is better the procedural que significa que é melhor que se defina sistemas apenas de forma declarativa e não procedural como é feito hoje em dia. Uma forma de se conseguir, ao menos em parte, este objetivo, é a formalização das regras de negócio em uma base de conhecimento. Uma dificuldade na administração das regras de negócios está no fato de que as bases de conhecimento não devem conter incongruências lógicas. Formalizar as regras de negócio utilizando-se uma linguagem declarativa permite que as mesmas sejam convertidas para uma representação em lógica de primeira ordem, o que irá facilmente permitir que tais incongruências sejam identificadas. Mais do que isso, ao se modificar uma regra, ou acrescentar uma nova, a consistência da base poderá ser testada para a verificação de incongruências, de modo listar as regras conflitantes auxiliando a equipe no trabalho de resolver tais problemas. Além disso, a formalização de parte do conhecimento obtido durante a fase de análise é um grande passo na direção de se gerar código automaticamente.

3. Funcionalidades Especificadas A idéia básica da ferramenta é servir como uma base formal para a documentação das regras de negócio de um sistema de informação. Cada regra de negócio é estabelecida em uma linguagem formal, seguindo o modelo apresentado em [G97]. No entanto, a ferramenta está sendo desenvolvida de forma a poder ser introduzida gradualmente em um sistema em desenvolvimento ou mesmo já em produção, como é o caso do SINGRA. Para tanto, a especificação de uma regra de negócio poderá ser feita utilizando-se uma linguagem formal (OCL, Pascal, PL/SQL), ou de maneira informal, através de um texto. As regras de negócio estão divididas em três grupos: regras extraídas automaticamente do esquema do banco de dados, regras cadastradas manualmente pelos usuários e regras inferidas automaticamente a partir das outras duas. A ferramenta possui funcionalidade para lidar com estes três tipos de regras. Segundo o propósito original da ferramenta, que é gerenciar uma base de conhecimento sobre regras de negócio de um sistema atualmente em produção, as seguintes funcionalidades são oferecidas: Validar o Sistema uma vez que todas as regras de negócio estejam estabelecidas em uma linguagem formal, é possível gerar a lista de eventos de sistema (inserções, alterações etc) onde as mesmas devem ser avaliadas. De posse destas informações, é possível inspecionar o código para verificar se as regras de negócio estão realmente sendo avaliadas, e se o estão da forma correta. Validar os dados legados uma tarefa árdua quando um sistema é implantado em substituição a outro é a importação dos dados legados pelo sistema antigo. Mais do que colocar a base sob um novo formato, é imprescindível também assegurar a integridade dos dados, ou seja, a qualidade e acurácia da base legada. Porém, quando uma base de dados legados está para ser migrada nem sempre é viável entrar os dados simulando o uso normal do novo sistema. Em geral, será feita uma carga massiva de dados, e somente então as regras de negócio serão avaliadas. Note que esta abordagem, conquanto funcione bem para as regras simples, como as restrições de integridade, nem sempre irá funcionar para as regras de negócio mais complexas, em particular as regras que envolvem memórias de cálculos ou estados passados que não eram mantidos pelo sistema anterior. Portanto, se as regras de negócio não estiverem formalizadas, esta tarefa irá demandar a codificação de procedimentos especiais para verificar a validade das regras de negócio, e que serão utilizados apenas para a importação dos dados e descartados após isto. Com a abordagem proposta pela nossa ferramenta, será possível gerar estes procedimentos automaticamente para todas as regras que estejam formalmente estabelecidas. Auxílio para a Extração das Regras de Negócio segundo [R97, R98], em um sistema que estruture as regras de negócio de forma independente, as mensagens de erro são as próprias regras de negócio. Esta afirmação tem uma consequência importante para a extração das regras de negócio de um sistema já desenvolvido: os lugares do sistema onde mensagens de erro são geradas certamente contém algum tipo de regra de negócio. Certamente esta abordagem não irá revelar todas as regras de negócio, pois nem todas as regras geram mensagens de erro em particular, regras que são derivações usualmente geram apenas resultados. No entanto, boa parte das regras de restrição podem ser obtidas desta forma algumas até automaticamente, como é o caso dos restrições de integridade codificadas no banco de dados. Dessa forma, o esquema do banco de dados é uma fonte importante que pode ser utilizada para a extração automática de regras de negócio já formalizadas. Outra fonte importante é a documentação informal estabelecida durante a fase de análise. Manutenção do Sistema a ferramenta permite analisar o impacto de mudanças em regras de negócio, através do relatório de impacto de uma mudança em alguma regra de negócio. Cada alteração proposta de uma regra (introdução, remoção ou alteração) irá gerar uma lista de eventos, mapeados para trechos de código, que devem ser inspecionados de forma a garantir que as alterações necessárias sejam realizadas. Isto pode ser visto no diagrama da figura 1. Além disso, para cada regra será mantida uma informação de grande utilidade para a manutenção do sistema: os trechos do código fonte onde a regra está sendo avaliada.

Regra OCL Esquema Compilador Lista de Eventos Código em SQL ou Formal: Triggers Informal: Updates Figura 1: Esquema de avaliação do impacto de alterações na base de dados. Além disso, a ferramenta oferece suporte para o desenvolvimento de sistemas utilizando especificações formais declarativas, e não procedurais, obtendo desta forma as vantagens apontadas em [D00]. Um compilador de OCL permite que as regras de negócio formuladas em OCL sejam automaticamente convertidas para um código SQL equivalente que teste a validade da regra ou produza o seu efeito. Eventualmente, regras por demais complexas não poderão ser totalmente expressas em OCL, ou mesmo que o sejam, pode não ser possível gerar automaticamente código SQL eficiente para validá-las. Para poder lidar com esta situação, está previsto estender a ferramenta para gerar código procedural também, que poderá inclusive contar com o auxílio de programadores para ser feito de forma eficiente para os casos mais críticos. 4. Apresentação da Ferramenta No cenário atual, a ferramenta será utilizada para extrair e separar do sistema de informação as regras de negócio gradualmente. No entanto, a ferramenta poderá ser utilizada no início do desenvolvimento de novos sistemas para que as regras de negócio sejam formalizadas já na fase de análise, o que irá certamente aumentar a produtividade da equipe de desenvolvimento bem como a qualidade do sistema gerado. A ferramenta foi implementada para uso em ambiente Windows implementada em Delphi com suporte a banco de dados ORACLE. Uma proposta de generalização para qualquer banco de dados está sendo preparada. A arquitetura do Sistema Atenas pode ser vista na figura 2 abaixo. Segue ainda uma descrição mais detalhada de cada módulo bem como seus estágios de implementação. Interface com Usuários Código Documentação Base de Regras e Fatos Editor de Regras Importador de Regras e Fatos Base de Dados Verificador de consistência Compilador OCL/SQL Figura 2: Arquitetura do Sistema Atenas de Regras de Negócio

4.1 Módulos implementados ou em testes: 1) Base de Regras e Fatos: o modelo da base de dados para o armazenamento das regras e fatos pode ser visto na figura 3. 2) Extrator automático de regras: extrai do esquema da base de dados informações sobre regras de negócio já formalizadas em SQL, tais como restrições de integridade, relacionamentos etc. Atualmente implementada. 3) Editor de regras de negócio: oferece suporte para a entrada de regras de negócio pela equipe de analistas. As regras podem ser representadas formalmente, em diversas linguagens, ou informalmente. Atualmente, para as regras representadas formalmente, apenas um subconjunto das linguagem OCL é utilizado para gerar automaticamente a lista de eventos relevantes. Para as regras representadas informalmente, os eventos relevantes devem ser estabelecidos manualmente. Gradualmente, todas as regras devem ser formalizadas em OCL. Além disso, o editor de regras permite que as regras sejam agrupadas por assunto, e permite também a criação de referências para o código fonte que avalia a regra em questão. 4) Gerador da lista de Eventos X Regras: este módulo relaciona todos os eventos em que determinada regra deve ser avaliada, gerando o código SQL (a partir da especificação da regra em OCL) para tanto. Este módulo está sofrendo melhorias para eventualmente gerar código procedural (em PL/SQL), permitindo um desempenho melhor para regras mais complexas. 5) Verificador de Consistência (em fase de especificação): irá validar a base de regras para identificar e Modelo de dados - Regras de Negócio Assunto Nome 0.. Agrupa 1 Regra de Negocio Origina Codigo Fonte Arquivo Linha Referencia Regra Formal OCL Ancora Dependencias Termo Nome Nome Oracle 0.. Sujeito Objeto Fato Verbo Chave Estrangeira Chave Primaria 1.. 1.. 1 FatoRelacionamento Constraint_name FatoSubtipo FatoAtributo reportar incongruências lógicas. Figura 3: Modelo da Base de Regras e Fatos. 4.2 Módulos em implementação: 6) Gerador de Regras para a validação de Dados Legados. 7) Analisador de Impacto de Mudanças: irá reportar os eventos, e com isto os trechos do código, que devem ser alterados para refletir mudanças nas regras de negócio.

Bibliografia [D00] Date, C. What not How, The Business Rules Approach to Application Development, Addison- Wesley, Reading Massachussets, 2000. [R97] Ross, R. The Business Rules Book: Classifying, Defining, and Modeling Rules 2 nd edition, Business Rule Solutions Inc., Houston Texas, 1997. [R98] Ross, R. Business Rules Concepts, The New Mechanics of Business Information Systems, Business Rule Solutions Inc., Houston Texas, 1998. [G97] GUIDE Business Rules Project: Final Report, revision 1.2, October 1997. [BRJ97] Booch, G.; Rumbaugh, J.; Jacobson, I,; The Unified Modeling Language for Object-Oriented Development, Documentation Set Version, janeiro, 1997. [OCL97] Object Management Group, Object Constraint Language Specification, 1 September 1997.