1.1. Definição do Problema



Documentos relacionados
Processo de Desenvolvimento de Software

LINHAS MESTRAS; FASES; DISCIPLINAS; PRINCÍPIOS E MELHORES PRÁTICAS.

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Agenda. O que é Testar? Por que testar? Quando testar? Processo de teste Níveis de teste Tipos de teste Classificação dos testes.

de rede são comumente utilizadas nos dias de hoje. Um dos grandes desafios para a tecnologia de redes sem fio no momento é o handoff vertical, onde

Programação de Computadores - I. Profª Beatriz Profº Israel

UTILIZAÇÃO DE ARQUITETURA EM CAMADAS BASEADA NO MODEL VIEW CONTROLLER, EM APLICAÇÕES WEB

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads

Gerenciamento de projetos (Project Management).

Requisitos de Software

Avaliação da Satisfação do Cliente de Informática

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Unidade II Atividades em PDS: Testes. Unidade III Suporte e Manutenção. Processo Desenvolvimento Software

SUMÁRIO PARTE I. Princípios de Projeto, a Linguagem de Modelagem Unificada (Unified Modeling Language, ou UML) e Projeto em Nível de Código

4 Um processo para a elaboração de perguntas de questionários para a elicitação de requisitos de software

SIG. USANDO A TECNOLOGIA COMO SUPORTE Tecnologias de Apoio

3 Informações para Coordenação da Execução de Testes

Título : B1 INTRODUÇÃO. Conteúdo : INTRODUÇÃO

SISTEMA DE CONTROLE DE MOVIMENTAÇÃO DE COLABORADORES

e ao Introdução ao BPM Guia BPM CBOK Instrutor: Eduardo Oliveira Slide XII Semana de Administração Orçamentária, Financeira e de Contratações Públicas

Modelo CMMI em Fábrica de Software

Aplicando Composição e Orquestração de Serviços na Organização de Sistemas

Como o VIOS Jurídico pode otimizar os processos em um escritório de advocacia? Indicado para: médios e grandes escritórios de advocacia.

Aula 07. Comércio Eletrônico. Tipos de Sistemas de Informação 10/10/2012

PROGRAMAÇÃO ORIENTADA A OBJETOS -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

Glossário Versão 1.0 Desenvolvimento do Sistema de Gestão de Documentos Doc Manager Histórico de Revisão

Motivação Este trabalho apresenta o desenvolvimento do controle da interatividade num sistema para a área de computação gráfica, mais especificamente

AUTOMAÇÃO COMERCIAL UNIDADE VI

Curso Técnico Concomitante em Informática MATRIZ CURRICULAR. Módulo/Semestre 1 Carga horária total: 400h. Módulo/Semestre 2 Carga horária total: 400h

Interoperabilidade: quebrando paradigmas

Documento de Requisitos do Sistema SISFOTO Sistema de gerenciamento de eventos fotográficos Versão 1.0

Gerenciamento de Integração. Prof. Anderson Valadares

Metodologias de alinhamento PETI. Prof. Marlon Marcon

Termos de Referência para Serviços especializados de consultoria Individual na área de Arquitetura de Sistemas

Administração de Sistemas de Informação

PROJETO DE REDES Prof. José Maurício S. Pinheiro UniFOA

TEORIA DAS FILAS COMO TÉCNICA MATEMÁTICA PARA REPRESENTAR O COMPORTAMENTO DE UMA SOLUÇÃO DE INTEGRAÇÃO EMPRESARIAL 1

Prova de Valor (SIB)

Engenharia de Software

Administração Central Unidade de Ensino Médio e Técnico - CETEC. Plano de Trabalho Docente 2012

Gerenciamento de Informática 5ºSemestre

Marcio E. S. Corpes Nicole Dominique Oliva Vanessa Lermen Corpes

O Processo de Design de Interação

Guia para Modelagem de Casos de Uso Metodologia CELEPAR

Engenharia de Software. Ciclos de Vida do Software. 1. Sistemas

Escola Superior de Redes

Padrões de Projeto. Factory Method

Título do Slide Máximo de 2 linhas

BANCO DE DADOS I AULA 2. Willamys Araújo willamysaraujo7@gmail.com

CE03 TIPOS DE COMÉRCIO ELETRÔNICO

DEVF IT Solutions. Gerenciador de Log. Documento Visão. Versão 2.0. Projeto Integrador 2015/2 Engenharia de Software

Desenvolvimento Organizacional

RESPOSTAS AOS QUESTIONAMENTOS ESCLARECIMENTOS EMPRESA B

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Segurança para Serviços Web no Ambiente pipes-br

Ref: Observatório Nacional de Clima e Saúde Projeto Observatorium.

BABok 2.0, O Guia de Referência de Análise de Negócio

PROVA DISCURSIVA. CESPE CEBRASPE TRT8 Aplicação: 2016

ESTADO DO RIO GRANDE DO SUL ASSEMBLEIA LEGISLATIVA Gabinete de Consultoria Legislativa

BANCO DE DADOS. Professor: André Dutton

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Algoritmos e Programação II

PROGRAMAÇÃO ORIENTADA A OBJETO INTRODUÇÃO

Optativas Comércio Eletrônico Comunicação Oral e Escrita Customização de Sistemas Integrados Desenvolvimento Avançado de Software

Modelos de Ciclo de Vida de Software

Elaboração do Plano de Gestão de Logística Sustentável do Senado Federal - PGLS

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

UMA ABORDAGEM SOBRE A EVOLUÇÃO DAS LINGUAGENS DE PROGRAMAÇÃO COM ÊNFASE EM ORIENTAÇÃO A OBJETO E ORIENTAÇÃO A ASPECTO

Qualidade de Software Normatização

Modernização da Gestão 22-Apr-2013

PREGÃO ELETRÔNICO AA 15/2016 DILIGÊNCIA DOCUMENTAÇÃO DE PROPOSTA LOGIKS CONSULTORIA E SERVICOS EM TECNOLOGIA DA INFORMACAO LTDA.

Sistemas de Informação para Bibliotecas

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO REDE DE COMPUTADORES II Prof. Dr. Adenauer C.

INTRODUÇÃO A CONTABILIDADE

ARQUITETURAS PARA APLICAÇÕES MÓVEIS

PROGRAMA da Certificação Internacional em Integração Sensorial

Componente Curricular: ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO PLANO DE CURSO

Projeto Integrador Gestão em TI II Gestão em Pessoas. Organograma DIRETOR DEPARTAMENTO DE T.I ANALISTA TÉCNICO

INE 5323 Banco de Dados I

Documento de Processo

SUAS E AS DESIGUALDADES REGIONAIS: GESTÃO E FINANCIAMENTO REGIÃO CENTRO-OESTE. RIO VERDE, 03 e 04 de abril de 2013

5.1 Processo de Avaliação de Organizações Prestadoras de Serviços Hospitalares O processo de avaliação e visita deve ser orientado pela aplicação do

SIMULADO A - COBIT 5 PORTUGUES

Ementa 22/08/2012. Teoria Geral de Sistemas. TADS 2. Semestre Prof. André Luís. Aula 01. Apresentação da Disciplina Conceito de Sistemas

TREINAMENTO PARA OS COLABORADORES DA ÁREA DE TI RESPONSÁVEIS PELO DESENVOLVIMENTO DO SERVIDOR WEB

Introdução a Banco de Dados. INTRODUÇÃO

Business intelligence para empresas de segurança. Como uma instituição pode gerar recursos e errar menos com ajuda da informação

Aura Media Comunicação Digital 1

CRM: Mais que Tecnologia

Plano de Trabalho Docente Ensino Técnico

Interpretações de Qualidade de Software. Interpretações de Qualidade de Software. Aspectos Importantes das Definições de Qualidade

Banco de Dados. Banco de Dados. Conceitos Básicos. Banco de Dados SGBD SGBD. Fundamentos. Fernando Fonseca Ana Carolina.

Linguagens e Técnicas de Programação II

Interdisciplinar II Módulo CST: GESCOM

Diagramas de Componentes e Diagramas de Deployment

Transcrição:

13 1 Introdução Uma das principais preocupações de área de engenharia de software diz respeito à reutilização [1]. Isso porque a reutilização no contexto de desenvolvimetno de software pode contribuir significativamente para aumentar a qualidade do software assim como reduzir o esforço no seu desenvolvimento. Uma das técnicas de maior impacto de reuso de projeto e código em larga escala que foi proposta nos últimos anos é o desenvolvimetno e codificação de Frameworks Orientados a Objetos (OO) [3, 4]. Frameworks OO possibilitam o desenvolvimento com reuso, de família de aplicações [8], criadas a partir de uma estrutura que captura os conceitos mais gerais das aplicações. Eles permitem gerar famílias de aplicações de um mesmo domínio, através da definição da implementação de um núcleo que lida com os requisitos comuns dessas aplicações, e definem um conjunto de pontos de extensão na forma de classes abstratas ou interfaces, que são estendidas para concretizar a funcionalidade específica de aplicações concretas da família. Apesar dos benefícios trazidos pela tecnologia de frameworks OO, diversos problemas foram identificados a partir da experiência do uso de tal tecnologia na construção de sistemas OO, tais como: (i) dificuldade para configuração e customização do framework para atender diferentes cenários de reuso; e (ii) dificuldade para compor o framework de forma transversal a outros frameworks existentes. A partir da identificação de tais problemas, pesquisadores têm proposto a implementação de frameworks usando de forma complementar técnicas OO e técnicas de Desenvolvimento de Software Orientado a Aspectos. Desenvolvimento de software orientado a aspectos (DSOA) [5, 6] é uma abordagem que busca a modularização dos chamados interesses transversais, os quais os paradigmas atuais (ex: orientação a objetos) não são capazes de capturar explicitamente. Interesses transversais são aqueles que entrecortam 1 diversos módulos em um dado sistema de software. DSOA propõe o uso de técnicas e

14 linguagens de programação que permitam a especificação de software complexo com uma separação clara entre a funcionalidade básica do sistema e seus interesses transversais. A abstração usada para modularizar os interesses transversais é chamada de Aspecto. A utilização de forma complementar, dos paradigmas de orientação a aspectos (OA) e orientação a objetos (OO), tem demonstrado benefícios para o desenvolvimento de softwares. A modularização de determinadas propriedades sistêmicas ou requisitos não funcionais transversais, tais como, rastreamento, segurança, demarcação de transações, e auditoria, são notadamente beneficiados com o uso de técnicas de programação orientada a aspectos. De forma geral, a utilização do paradigma de orientação a aspectos, visa melhorar a diminuição do acoplamento e aumentar a modularidade entre os componentes de um sistema de software. 1.1. Definição do Problema Com o crescimento dos sistemas de informação baseados na internet, empresas que mantêm seus negócios eletrônicos baseados em sites web necessitam acompanhar o andamento das atividades dos seus negócios, através do monitoramento das requisições web que chegam aos seus sistemas. Atualmente, a maioria do monitoramento que ocorre em sistemas de informação web, objetiva a implementação ou suporte a um ou mais de seus requisitos não-funcionais, tais como: Disponibilidade: realiza o monitoramento de requisições feitas para o servidor web e verifica se ocorre uma resposta do servidor. Esse tipo de serviço é usado tipicamente para verificar se um site web está fora do ar; Desempenho/Carga: tem como objetivo monitorar a capacidade e carga do sistema web, para analisar o quão escalável é o mesmo para aceitar outros usuários simultaneamente, além de questões como tempo de resposta de uma requisição do usuário; 1 Do inglês: Crosscutting

15 Segurança: visa monitorar ataques ou acessos indevidos ao sistema web. Outra forma de monitoramento de sistemas web consiste em utilizar a mineração de dados em arquivos de log de dados 2 dos servidores web, tais como, o Servidor Web Apache 3. Dessa forma, é possível verificar e obter informações de acesso ao sistema, tais como: número de acessos ao site web, quantidade de dados transferidos, etc. Porém, as abordagens utilizadas para o monitoramento não tratam questões de mais alto nível, referentes ao monitoramento dos processos de negócio que ocorrem em sistemas web. O monitoramento das atividades executadas por usuários de um site web é de grande utilidade para auxiliar as organizações em suas tomadas de decisões, possibilitando o contínuo aumento na qualidade dos serviços oferecidos para seus usuários. A funcionalidade de monitoramento de processos de negócio de sistemas web não faz, em geral, parte dos seus requisitos essenciais. Além disso, este monitoramento pode ser caracterizado como sendo transversal às demais funcionalidades definidas para o sistema web. Já que para ser implementado, necessita acompanhar e coletar informações a respeito das requisições web que são feitas ao sistema. Devido a tais características, a implementação do serviço de monitoramento de processos de negócio em um sistema web acaba inevitavelmente sendo invasivo, demandando a inserção de linhas de código em diversos trechos das classes principais do sistema. 1.2. Solução Proposta Neste contexto, essa dissertação propõe a definição de um framework para monitorar os processos de negócio que ocorrem em sistemas de informação web. Os objetivos principais de tal framework são: (i) permitir a implementação da funcionalidade de monitoramento de processos de negócio, de forma independente do código que implementa a funcionalidade principal do sistema 2 Arquivo que descreve o processo de registro de eventos relevantes em um sistema computacional 3 http://www.apache.org

16 web; e (ii) possibilitar a customização do framework para ser integrado com diferentes implementações de sistemas web. O projeto e implementação do framework de monitoramento de processos de negócios explora a integração de técnicas de orientação a objetos (OO) e orientação a aspectos (OA) [2]. Padrões de projeto OO [33] são utilizados na implementação do núcleo do framework que oferece a funcionalidade básica para armazenamento e consulta aos processos de negócio capturados para um sistema web, assim como dos pontos flexíveis que permitem definir as estratégias de monitoramento, de processamento concorrente e de comunicação entre os monitores de sistemas web e o núcleo do framework. Técnicas de programação orientada a aspectos [2] são usadas com o intuito de monitorar classes específicas do sistema, para capturar informações relevantes sobre os processos de negócio em execução no sistema. O framework foi implementado usando as linguagens de programação Java [24] e AspectJ [12]. O uso de técnicas OA permite uma composição transversal entre: (i) a aplicação web cujos processos de negócio serão analisados; e (ii) o núcleo de nosso framework OA que implementará as funcionalidades de análise e caracterização dos processos de negócio ocorrendo na aplicação web. Para validar o projeto e implementação de nosso framework, ele foi instanciado para dois diferentes estudos de caso: estudos de caso: (1) uma aplicação web tradicional em camadas; e (2) uma aplicação web corporativa implementada com J2EE. 1.3. Organização do Texto Esta dissertação está organizada da seguinte forma. No capítulo 2, serão apresentados alguns conceitos básicos relevantes para o entendimento deste trabalho, assim como alguns trabalhos de pesquisa da comunidade que combinam o uso de programação orientada a aspectos e frameworks. O capítulo 3 apresenta a contribuição principal dessa dissertação, um framework orientado a aspectos para monitoramento e análise de processos de negócio em sistemas de informação web, apresentando uma visão geral de sua arquitetura. No capitulo 4 detalhamos o framework proposto neste trabalho, abordando o projeto detalhado de cada um dos componentes envolvidos na sua implementação. Dois estudos de caso

17 instanciados do framework são apresentados no capitulo 5. Por fim, o capítulo 6 apresenta as conclusões e contribuições da dissertação, assim como uma lista de trabalhos futuros.