Equipe de Desenvolvimento

Tamanho: px
Começar a partir da página:

Download "Equipe de Desenvolvimento"

Transcrição

1 UNIVERSIDADE FEDERAL DO PARÁ CENTRO DE CIÊNCIAS EXATAS E NATURAIS DEPARTAMENTO DE INFORMÁTICA LABORATÓRIO DE ENGENHARIA DE SOFTWARE - LABES Documentação de Referência do Sistema WebAPSEE.0 (beta) Belém 2006

2 Equipe de Desenvolvimento Coordenação Carla A. Lima Reis (Informática/UFPA) Rodrigo Quites Reis (Informática/UFPA) Arquitetura Adailton Lima (CBCC/UFPA) Heribert Schlebbe (Universität Stuttgart) Mecanismo de Execução Breno França (CBCC/UFPA) Heribert Schlebbe (Universität Stuttgart) Registro de Eventos Luciana Nascimento (PPGEE/UFPA) Carla Paxiúba (PPGEE/UFPA) Banco de Dados (Persistência de Objetos) Marcelo Almeida Silva (CBCC/UFPA) Políticas e Condições Lógicas Laudemira Farias (CBCC/UFPA) Marcelo Almeida Silva (CBCC/UFPA) Agenda Antonio Lobato (PPGCC/UFPA) Marcelo Pereira (CBCC/UFPA) Editor para Modelagem de Processos Manager Console Versão 0: Ernani Sales (CBCC/UFPA) Daniel Henriques Moreira (CBCC/UFPA) Joseane Viana (CBCC/UFPA) Versão : Adailton Lima (CBCC/UFPA) Breno França (CBCC/UFPA) Heribert Schlebbe (Universität Stuttgart) Jadielly Oliveira Marcelo Pereira (CBCC/UFPA) Instalador: Adailton Lima (CBCC/UFPA) Murilo Sales (CBCC/UFPA) Manual: Marcelo Pereira (CBCC/UFPA) Murilo Sales (CBCC/UFPA) Documentação: Adailton Lima (CBCC/UFPA) Jadielly Fernandes (PPGCC/UFPA) Vanderlene Covre (PPGEE/UFPA) 2

3 Sumário INTRODUÇÃO Objetivos do Projeto WebAPSEE Histórico Organização do Texto VISÃO GERAL DAS FUNCIONALIDADES DO WEBAPSEE Manager Console Task Agenda ARQUITETURA DO SISTEMA Distribuição Física dos Componentes Camada Servidora Camada Cliente Clientes Básicos Clientes Completos Arquitetura do Cliente Camada de Distribuição Serviços Disponíveis Facade Factory Camada de integração (Fachadas) Fachadas Acesso BD Execução Segurança Instanciação Classes de Negócio Camada de Persistência Camada de Mapeamento Camada de Banco de dados Mapeamento Objeto-Relacional do Modelo de Dados Mapeamento do modelo de classes (Herança) Exemplo de mapeamento Mapeamento Objeto-Relacional MODELO DE DADOS PRINCIPAL DO WEBAPSEE Descrição dos pacotes Pacote Types Pacote Log Pacote SoftwareProcesses Modelos de Processos Atividades de um Processo

4 Atividades Simples Normais e Automáticas Conexões entre Atividades Pacote Organization Pacote Resources Recursos de Uso Exclusivo (Exclusive Resources) Recursos Compartilháveis (Shareable Resources) Recursos Consumíveis (Consumable Resources) Pacote Agent Agentes Cargos Habilidades Grupos Pacote TaskAgenda Pacote Artifacts Pacote Tools Pacote ProcessKnowledge Métricas Estimativas Pacote OrganizationPolicies Pacote Policies Pacote StaticPolicies Pacote InstantiationPolicies Pacote Planner_Info Pacote Exceptions ARQUITETURA DAS APLICAÇÕES CLIENTE Arquitetura da Agenda do Desenvolvedor Modelo de Dados da WebAPSEE Agenda (AgendaModel) Interface com o Usuário Arquitetura do Manager Console Editor Gráfico de Processos Troca de Mensagens para um Caso de Uso MÁQUINA DE EXECUÇÃO DE PROCESSOS DE SOFTWARE Gramática de Grafos A Linguagem Visual de Modelagem de Processo O Grafo-Tipo Regras para a Execução de Processos Implementação das funcionalidades principais Enactment Engine Interface Dynamic Modeling Interface

5 REFERÊNCIAS ANEXO (ARQUIVO DE MAPEAMENTO OBJETO-RELACIONAL)

6 Lista de Figuras Figura Diagrama de Casos de Uso do Manager Console... 0 Figura 2 Extensão do Diagrama de Casos de Uso do Manager Console... 0 Figura 3 Diagrama de Casos de Uso da Agenda... Figura 4 - Camadas que compõem a Arquitetura do ambiente WebAPSEE... 2 Figura 5 Implantação física dos componentes principais... 3 Figura 6 - Visão da Arquitetura com o Fluxo de Controle... 4 Figura 7 - Arquitetura do Cliente... 7 Figura 8 - Fragmento do modelo de dados da ferramenta WebAPSEE Figura 9 - Mapeamento Objeto Relacional. (a) classes; (b) modelo relacional Figura 0 - Meta-modelo WebAPSEE (diagrama de Pacotes UML) Figura - Pacote Types - Hierarquia de tipos do WebAPSEE Figura 2 - Pacote Log Figura 3 - Pacote SoftwareProcesses Figura 4 - Pacote ProcessModels Descrição de Processos de Software Figura 5 - Pacote Activities Atividades de Processos de software Figura 6 - Pacote PlainActivities Figura 7 - Pacote SoftwareProcesses.Connections Figura 8 - Pacote Organization Aspectos da Estrutura Organizacional Figura 9 - Pacote Resources - Informações sobre os recursos da organização Figura 20 - Pacote Agent Informações Sobre Agentes Figura 2 - Pacote TaskAgenda Figura 22 - Pacote Artifacts Artefatos de Processos de Software Figura 23 - Pacote Tools Figura 24 - Pacote ProcessKnowledge...47 Figura 25 Pacote Organization.OrganizationPolicies Figura 26 Políticas da Organização... 5 Figura 27 Políticas Estáticas Figura 28 Políticas de Instanciação Figura 29 Visão em camadas da associação de políticas a processos e recursos Figura 30 Pacote Planner Info (Instanciação de Processo) Figura 3 Pacote de Exceções do WebAPSEE Figura 32 Diagrama de Pacotes para a Arquitetura da WebAPSEE Agenda... 6 Figura 33 Diagrama de Classes do Pacote Model Figura 34 Operações suportadas pela AgendaModelInterface Figura 35 Classes da Interface Gráfica com o Usuário Figura 36 Visão em camadas Figura 37 Diagrama de Classes Geral (visão simplificada sem atributos e operações) Figura 38 Diagrama de Classes da Camada de Nós Figura 39 Diagrama de Classes da Camada de Seleção Figura 40 Diagrama de Classes da Camada de Arestas Figura 4 Diagrama de Classes da Aresta Figura 42 Diagrama de seqüência para o caso de uso Inserir Atividade Normal Figura 43 - Representação gráfica para as principais construções da Linguagem de Modelagem de Processo do WebAPSEE... 7 Figura 44 - Principal regra para o início da execução de processos Figura 45 -Módulos EnactmentEngineInterface e DynamicModelingInterface Figura 46 - Diagrama de transição de estados de uma Atividade Figura 47. Rule G.. Adicionando uma nova atividade Figura 48 Rule G3.2. Adicionando Uma nova conexão simples

7 Introdução Grande investimento vem sendo feito pela Academia e Indústria na construção de ferramentas que auxiliem o gerenciamento do processo de desenvolvimento de software, constituindo uma área de pesquisa denominada Tecnologia de Processo de Software. A Tecnologia de Processo de Software ganhou maior atenção a partir da ênfase dada ao uso de modelos como o Capability Maturity Model - usado para avaliação da qualidade de software a partir da maturidade dos processos organizacionais adotados pelos desenvolvedores. Assim, com o uso de ambientes para automação do processo de software (genericamente denominados como Process-Centered Software Engineering Environments - PSEEs), é possível coordenar atividades de equipes dispersas geograficamente, acompanhar os prazos e consumo de recursos, além de facilitar a reutilização de boas práticas gerenciais por diferentes projetos adotados. As soluções desenvolvidas nesta área devem levar em consideração elementos específicos do contexto de processos de software, tais como: o caráter criativo do processo, a grande tendência a mudanças, a impossibilidade de se reutilizar imediatamente processos executados e a falta de visibilidade do produto resultante. Atualmente, não existem PSEEs que sejam amplamente difundidos nas comunidades de desenvolvimento de software. A indústria tem fornecido apenas soluções para documentar processos (como Rational Method Composer), que pouco oferecem além das tradicionais ferramentas de diagramação, constituindo o estado da prática no setor. Este texto trata, portanto, da descrição técnica de um ambiente denominado WebAPSEE com objetivo principal de fornecer um nível maior de automação para a gestão de processos de software. As sub-seções a seguir descrevem e contextualizam os objetivos do ambiente servindo como referência técnica para subsidiar trabalhos futuros relacionados.. Objetivos do Projeto WebAPSEE Ambientes de desenvolvimento de Software Centrados em Processos (também conhecidos como PSEEs - Process-Centered Software Engineering Environments) relacionam-se com o problema de como sistemas computadorizados podem ser utilizados no desenvolvimento de software, ou seja, software para ajudar a construir software. Sua finalidade principal é atender a requisitos organizacionais para auxiliar na coordenação das atividades relacionadas com o desenvolvimento de software. A crescente exigência das organizações de desenvolvimento de software e o mercado consumidor influenciam decisivamente no gerenciamento de projetos. Assim, o desenvolvimento de PSEEs atuais requer a integração de diversas ferramentas voltadas para os seguintes domínios: auxílio à modelagem de processos segundo múltiplas perspectivas diferentes, auxílio na alocação de pessoas e recursos a processos, auxílio à monitoração da execução de processos (por exemplo, monitoração por eventos e visualização adequada do estado do processo), distribuição de informações para suporte às novas estruturas de terceirização do mercado, e também para integração do ambiente com outras ferramentas de apoio ao desenvolvimento de software. O objetivo geral do projeto é disponibilizar a funcionalidade de Gerência de Processos de Software baseados em Software Livre. Isto ocorre em resposta à demanda por soluções que integrem diferentes serviços necessários para desenvolvimento de software em 7

8 prol de uma Sociedade de Serviços livres, que permita sua utilização independente da linguagem de programação ou plataformas adotadas. Destaca-se ainda a necessidade de se propor uma solução escalável, isto é, que demonstre na prática a viabilidade tanto na condução de pequenos projetos quanto na coordenação de atividades envolvendo grande quantidade de profissionais dispersos geograficamente..2 Histórico O projeto do ambiente WebApsee vem de uma experiência no desenvolvimento de um PSEE de nova geração isto é, baseada em padrões da Web e em Software Livre - que adota soluções inovadoras para problemas críticos relacionados com a gerência e execução automatizada de processos de software. Assim, questões relativas à flexibilidade na alteração dinâmica em processos em execução, e apoio automatizado para seleção de desenvolvedores e reutilização de processos estão disponíveis no ambiente APSEE - desenvolvido desde 998 em cooperação entre a UFPA, UFRGS e Universität Stuttgart (Alemanha). Com o surgimento de tecnologias baseadas em Web Services houve uma evolução significativa no desenvolvimento de software baseado na Internet, ao facilitar a intercomunicação de sistemas através de um middleware aberto, multiplataforma, e baseado em padrões da Web. Havia, então, uma oportunidade de se desenvolver um novo PSEE baseado na noção de uma arquitetura flexível que acomode novos componentes, seja multiplataforma, e disponível para evolução contínua através da comunidade de Software Livre. A integração das idéias e modelos gerados com o projeto APSEE com Web Services resultou no projeto Web Process Services. O principal resultado concreto obtido pelo projeto é um produto de software funcional, mas ainda em evolução, denominado WebAPSEE. Convém ressaltar que a versão atual (versão ) do WebAPSEE está implementada tendo por base apenas o protocolo RMI (Remote Method Invocation) fornecido pela Sun na linguagem Java. Entretanto, a arquitetura do ambiente foi projetada de forma que a alteração para uso de Web Services seja trivial, podendo ser facilmente realizada pelo usuário-final..3 Organização do Texto Este texto apresenta um detalhamento sobre a construção do ambiente WebApsee. O texto foi organizado da seguinte forma: A seção 2 apresenta uma visão geral das funcionalidades do ambiente. A seção 3 apresenta a arquitetura do sistema. A seção 4 apresenta o modelo de dados principal do ambiente. A seção 5 apresenta a arquitetura interna das ferramentas que são clientes e a seção 6 apresenta o funcionamento da máquina de execução de processos. 8

9 2 Visão Geral das Funcionalidades do WebAPSEE Este capítulo apresenta uma visão geral das funcionalidades fornecidas pelo ambiente WebAPSEE na forma de suas duas ferramentas principais: o Manager Console (descrito na seção 2.) e a Task Agenda (seção 2.2). 2. Manager Console A modelagem de processos de desenvolvimento de software requer formalismos de alto nível para descrever aspectos de coordenação das atividades e relacionamento com a organização. Estes formalismos devem ser convenientes não somente para representação, mas também para execução. Com base nisso é proposto um formalismo de modelagem para o WebAPSEE que permite representação gráfica de processos. A linguagem de modelagem de processos de software do WebAPSEE (denominada WebAPSEE-PML 2 ) é baseada em redes de atividades que podem ser decompostas. Neste formalismo, um modelo de processo pode ser construído a partir de símbolos gráficos conectados e o detalhamento do relacionamento com os outros componentes do modelo (como por exemplo, as informações organizacionais e descrição dos artefatos, entre outros) é feito através de formulários específicos que apóiam essa tarefa. O WebAPSEE permite a integração de vários serviços de gerência de processos, incluindo modelagem, execução, visualização, instanciação e resposta a eventos da execução. Através do Manager Console o Gerente do Processo de Desenvolvimento de software pode Modelar Processos, Gerenciar Execução de Processos, Visualizar Relatórios do Processo e Gerenciar informações da Organização, como artefatos, pessoas e recursos, através de um Editor Gráfico. Na Figura é apresentado o Diagrama de Casos de Uso do Manager Console. O Caso de Uso Gerenciar informações da Organização inclui algumas funcionalidades que devem ser especificadas, para isso foi gerado um Diagrama com a extensão do Caso de Uso em questão, conforme ilustrado na Figura 2. O Manager Console oferece suporte ao cadastro e gerência de projetos, recursos, artefatos, gerência de políticas através das políticas de processos, o que for considerado exceção no modelo de processo (atrasado demasiado, não há pessoa alocada na tarefa, entre outras) pode ser modelado Adição, remoção e modificação de atividades e pessoas, gerência de métricas/estimativas de maneira sistemática (as métricas podem ser cadastradas pelo gerente). Admitindo-se como objetivo um nível maior de automação. 2 PML: Process Modelling Language (Linguagem de Modelagem de Processo). 9

10 Figura Diagrama de Casos de Uso do Manager Console 2.2 Task Agenda Figura 2 Extensão do Diagrama de Casos de Uso do Manager Console Através da Agenda o desenvolvedor visualiza os processos de software em execução nos quais está inserido como uma lista de tarefas a serem realizadas. Assim, o desenvolvedor interage com a agenda fornecendo feedback sobre o andamento dessas tarefas. O WebAPSEE possui um mecanismo de execução que tem como um dos principais objetivos manter a consistência entre o estado de execução do processo e o estado real da realização das tarefas. Para isso é necessário que os desenvolvedores forneçam 0

11 feedback sobre o estado real das tarefas e este feedback é fornecido utilizando a WebAPSEE Task Agenda. O usuário desenvolvedor visualiza o andamento de um processo de software através de uma lista de tarefas. A WebAPSEE Task Agenda fornece essa visão através do gerenciamento dos dados sobre os processos e tarefas que o usuário está inserido. O usuário escolhe um processo o qual participe e então a agenda mostra uma lista de tarefas para este usuário relacionadas a este processo. Os desenvolvedores podem delegar tarefas aos seus subordinados, e cada desenvolvedor gerencia os Artefatos das suas próprias tarefas. A Figura 3 ilustra o Diagrama de Casos de Uso das Funcionalidades fornecidas pela Agenda. Figura 3 Diagrama de Casos de Uso da Agenda

12 3 Arquitetura do Sistema Para prover todos os serviços necessários que um PSEE necessita fornecer aos seus usuários, como por exemplo, a visualização macro das atividades para o gerente, o envio de instruções ao desenvolvedor de como proceder em suas tarefas, entre outras [9], foi desenvolvida uma arquitetura orientada a serviços. A localização distribuída de agentes (desenvolvedores) e gerentes de processo exige uma arquitetura que provenha serviços distribuídos através de uma rede (Intranets e Internet), utilizando para tal algum protocolo de distribuição. Podem ser utilizados protocolos de distribuição tanto enquadrados nos protocolos de desenvolvimento para a WWW [8] quantos protocolos proprietários de distribuição dos dados, dependendo dos requisitos de interatividade do sistema. O sistema WebAPSEE utiliza uma abordagem voltada para padrões Web, para interoperabilidade com ferramentas externas através do uso dos web services [7] e distribuição de objetos através da linguagem Java [5], dependendo da configuração mais apropriada para o ambiente do usuário do sistema. Conforme demonstrado na Figura 4, a arquitetura do sistema WebAPSEE se divide em 3 camadas principais: A) Camada Servidora, que provê serviços de persistência, verificação de consistência para modelagem, controle e armazenamento de artefatos e execução de modelos de processos de software; B) Camada Cliente, que basicamente oferece uma infra-estrutura para acesso aos serviços da camada servidora; C) Camada de ferramentas clientes, que possui as ferramentas que interagem diretamente com GUI 3 para entrada de dados, modelagem de modelos de processos (através de sua PML - Process Modeling Language) e visualizações de informações obtidas do servidor. Figura 4 - Camadas que compõem a Arquitetura do ambiente WebAPSEE O ambiente WebAPSEE provê suporte a requisitos considerados essenciais para modelagem e execução de processos de software, podendo citar gerência de recursos, modelagem de processos, execução de modelos de processos e permitir modificações dinâmicas em processos em execução, mantendo a consistência do mesmo a partir do uso de regras ECA 4 implementadas no sistema [0]. 3 GUI - Graphical User Interface 4 Evento Condição-Ação 2

13 3. Distribuição Física dos Componentes Os componentes principais do WebAPSEE são: o servidor (WebAPSEE Server, o qual não é interativo), o Manager Console (software executado pelo Gerente, com interface gráfica), e a Agenda de Tarefas (executado pelo desenvolvedor). Tais componentes estão descritos nas seções a seguir. A Figura 5 apresenta a disposição física típica para os nós de hardware rotulados como Cliente (divididos em Developer Workstation e Manager Workstation), e Servidor (Server). Algumas variações podem acontecer nesta configuração: por exemplo, uma organização pode agregar as funcionalidades da Manager Workstation e WebAPSEE Server em um único nó, se o interesse for criar uma configuração de teste ou de pequena escala do sistema. Figura 5 Implantação física dos componentes principais 3.2 Camada Servidora A camada servidora provê serviços de persistência, verificação de consistência para modelagem, controle e armazenamento de artefatos e execução de modelos de processos de software. Esta pode ser dividida da seguinte maneira: A Camada de Distribuição, onde são definidas as tecnologias necessárias para os serviços que estão disponíveis; a Camada de Integração, onde são utilizadas as classes Fachadas para integrar os serviços; as Classes de Negócio; e, finalmente, a Camada de Persistência, onde é feito o mapeamento e armazenamento das informações do sistema. Na Figura 6 é mostrada uma visão da arquitetura da camada servidora com o Fluxo de Controle entre seus componentes. 3

14 Figura 6 - Visão da Arquitetura com o Fluxo de Controle 3.3 Camada Cliente A seguir é feita uma descrição dos componentes que formam a Camada Cliente do sistema. A descrição é feita levando-se em consideração as questões tratadas desde o início do desenvolvimento do sistema Clientes Básicos ) O que é? Consistem em clientes que proporcionem o acesso a funcionalidades básicas do sistema WebAPSEE. Estes clientes fornecem acesso a uma agenda simplificada para desenvolvedor e gerente, para que estes possam ter acesso básico ao sistema sem ser necessário desenvolver um cliente específico para o sistema. 4

15 2) Tecnologias utilizadas No desenvolvimento destes clientes básicos são utilizadas tecnologias para desenvolvimento de uma interface amigável que facilite a navegação pelo sistema. 3) Papel na arquitetura Estes clientes fornecem acesso básico ao sistema e têm papel fundamental no momento dos testes de produção que são realizados para verificar a consistência do funcionamento do sistema. 4) Relacionamentos Estes clientes se relacionam diretamente com a camada de distribuição do sistema WebAPSEE, podendo ser desenvolvidos clientes com web services, RMI, CORBA ou outro protocolo de distribuição, dependendo da implementação do Servidor. Isto decorre em função desta camada ser externa ao sistema, pois apenas são acessados os serviços que estão disponíveis em sua interface de distribuição. 5) Risco de implementação Baixo, pois utiliza tecnologias web já bastante difundidas e conhecidas para construir a sua interface Clientes Completos ) O que é? Consistem em clientes que provêem acesso completo ao sistema, com interfaces gráficas mais elaboradas e robustas, com acesso ao sistema WebAPSEE através dos protocolos de distribuição. 2) Tecnologias utilizadas Para desenvolvimento destes clientes, são utilizados recursos avançados de interfaces gráficas. O cliente poderá ter acesso a sua agenda de desenvolvimento e o gerente poderá ter acesso aos processos do sistema e modelar o processo que coordena através de recursos gráficos e visuais, assim como são providos pela agenda do sistema APSEE Manager, ferramenta do sistema APSEE em sua versão implementada na plataforma PROSOFT 5. 3) Papel na arquitetura Estes clientes formam o Front-End do sistema WebAPSEE com os clientes que têm acesso à ferramenta. O desenvolvimento destes clientes não impede que 5 PROSOFTPROSOFT é a plataforma de desenvolvimento na qual o sistema APSEE foi originalmente desenvolvido, o qual é mantido e desenvolvido no Instituto de Informática da Universidade Federal do Rio Grande do Sul ( 5

16 outros clientes possam ser desenvolvidos para acessar alguma funcionalidade específica do sistema WebAPSEE de alguma forma mais particular. Estes clientes desenvolvidos não impedem que extensões possam ser desenvolvidas posteriormente para acesso ao sistema, como ferramentas integradas a algum ambiente integrado de desenvolvimento de software (IDE Integrated Development Environment) ou a integração a algum outro sistema existente. 4) Relacionamentos Assim como os cientes básicos supracitados, estes clientes se relacionam diretamente com a camada de distribuição do sistema WebAPSEE, podendo ser desenvolvidos clientes para os web services, RMI, ou outro protocolo de distribuição, dependendo da implementação do Servidor. Por critério de segurança e portabilidade, recomenda-se sempre se desenvolver clientes para o acesso direto à camada de web services, pois isso permite que clientes possam desenvolvidos nas mais diversas linguagens de programação e plataformas. 5) Risco de implementação Alto, não devido ao uso da tecnologia utilizada, mas em maior risco atribuído à complexidade de se construir uma ferramenta de modelagem gráfica que atenda a todos os requisitos definidos pelo atual linguagem gráfica, implementada no ambiente PROSOFT Arquitetura do Cliente A Figura 7 apresenta uma visão geral da arquitetura dos clientes do sistema WebAPSEE, baseando-se numa visão de pacotes. A disposição dos pacotes representa as mesmas funcionalidades descritas na Figura 6 (camada inferior é composta pelo pacote mais à direita e camada superior é composta pelos pacotes mais à esquerda). Os pacotes gui, editor e reports representam o front-end do ambiente com o usuário, tendo as seguintes funcionalidades, respectivamente: disponibilizar componentes de interação e acesso aos dados internos do sistema (formulários, árvores, entre outros elementos gráficos manipulados pelo usuário); fornecer um editor visual de modelos de processos de software, com suporte para múltiplas visualizações do modelo; suporte para geração de relatórios gerenciais no sistema. 6

17 editor model i8n exceptions datarepository datatransform gui dataexport reports Figura 7 - Arquitetura do Cliente 3.4 Camada de Distribuição 3.4. Serviços Disponíveis ArtifactMngFacade Serviço de gerência dos artefatos do sistema. Os artefatos são armazenados e gerenciados por alguma implementação de sistema de controle de versões, para manter a consistência dos dados modificados durante a execução do modelo de processos. DataSourceFacade Serviço de gerência de objetos do sistema, que é responsável pelas operações de recuperação e persistência dos dados manipulados pelos clientes. 7

18 DynamicModelingFacade Serviço responsável pelas operações de manipulação de modelos de processos de software no momento de modelagem. Cada operação é validada a partir de uma série de regras que são checadas, para que se evitem ciclos e inconsistências do modelo de processos gerado. EnactFacade Serviço responsável pelas operações de execução de um modelo de processos de software. Estas operações obedecem regras definidas para a execução e o modelo de processos que foi definido em tempo de modelagem. Conforme o processo evolui na sua execução, atividades são delegadas, artefatos liberados para uso e recursos são consumidos Facade Factory ) O que é? Camada de ligação estática entre as camadas de integração e camada de distribuição. 2) Tecnologias adotadas Esta camada não utiliza nenhuma tecnologia extra, além da definição estática de classes e padrões de projetos. 3) Papel na arquitetura A definição estática serve para que os EJB, que são entidades instanciadas dinamicamente, possam ter como localizar em tempo de execução as referências para as classes fachadas da camada de integração. Os padrões de projetos utilizados são: Singleton e Abstract Factory. 4) Relacionamentos Relaciona-se com a camada de distribuição, mais diretamente com os EJB's, e com a camada de integração, ou mais especificamente com as fachadas do subsistema interno. O uso do padrão de projeto Singleton se justifica pelo fato de ser necessário manter o controle de apenas uma instancia da classe de fábrica abstrata (no padrão Abstract Factory), que será a classe que irá retornar as instâncias das fachadas correspondentes na camada de integração. Desta forma, esta camada relaciona a camada de distribuição com a camada de integração. 5) Risco de implementação Baixo, pois esta camada é apenas a implementação de padrões de projetos bem definidos e conhecidos. Sua implementação é necessária para manter uma 8

19 separação de papéis no momento de diferenciar as interfaces dos EJB s com as interfaces dos serviços providos pelas fachadas do sistema interno. 3.5 Camada de integração (Fachadas) 3.5. Fachadas ) O que é? É uma camada de interface composta por classes Java tradicionais, que seguem o padrão de projeto Façade. 2) Tecnologias adotadas Somente classes Java tradicionais aplicadas ao padrão de projeto Façade. 3) Papel na arquitetura As classes Fachadas têm como papel oferecer serviços bem definidos e modularizados (classificados por funcionalidade) entre duas camadas do sistema: as Classes de negócio e Facade Factory. 4) Relacionamentos Relaciona-se com as Classes de Negócio e a Facade Factory. 5) Risco de Implementação Baixo, pois se trata apenas de separar as funcionalidades do sistema que serão requisitadas pelos usuários em suas respectivas fachadas e não re-implementar algum método Acesso BD Fachada responsável por tratar transações com o Banco de Dados. Inserções, remoções, alterações e consultas realizadas diretamente pelo usuário, deverão passar por essa fachada Execução Fachada responsável por executar os processos modelados pelo gerente do processo. A classe Java que implementa essa funcionalidade é a classe EnactmentEngine que possui métodos para a execução propriamente dita Segurança Fachada responsável por tratar a segurança do sistema. O Controle de Acesso é tratado nesta fachada Instanciação Fachada responsável por instanciar processos. Atribuição de agentes e recursos a uma atividade é tratada nesta fachada. 9

20 3.6 Classes de Negócio ) O que é? São classes Java convencionais responsáveis pela gerência da informação e execução dos processos, ou seja, a Máquina de Execução está entre essas classes e seus métodos. 2) Tecnologias adotadas Classes Java tradicionais com tags (em forma de comentário) do framework Hibernate embutidas em seus códigos. 3) Papel na arquitetura Realização das tarefas de negócio, ou seja, gerenciam a informação e executam os processos. 4) Relacionamentos Relacionam-se com as classes Fachadas e com o framework Hibernate. 5) Risco de Implementação Alto, pois se trata das classes que possuem os métodos não convencionais (get e set) como os métodos da execução, por exemplo. 3.7 Camada de Persistência 3.7. Camada de Mapeamento ) O que é? São tags do framework Hibernate embutidos nas classes Java de negócio que devem ser persistentes, juntamente com seus arquivos de configuração e arquivos gerados para o mapeamento objeto-relacional. 2) Tecnologias adotadas Framework Hibernate para o Mapeamento Objeto-Reacional. 3) Papel na arquitetura Prover uma forma automatizada do mapeamento para armazenar os objetos (simples e compostos) em um banco de dados relacional. 4) Relacionamentos Relaciona-se com as classes Java de negócio e com o SGBD Relacional MySQL. 20

21 5) Risco de Implementação Médio, pois se trata de um script que lê as tags do Hibernate e gera o esquema especificado automaticamente, porém, é uma tecnologia nova Camada de Banco de dados ) O que é? É a camada que trata do armazenamento físico das classes persistentes em um SGBD relacional. 2) Tecnologias adotadas SGBD Relacional MySQL. 3) Papel na arquitetura Manter consistente as informações do Sistema. 4) Relacionamentos Relaciona-se com o framework Hibernate. 5) Risco de Implementação Baixo, pois o armazenamento é feito pelo framework Hibernate. 3.8 Mapeamento Objeto-Relacional do Modelo de Dados Os Sistemas Gerenciadores de Banco de Dados Relacionais (SGBDR) correspondem à tecnologia mais utilizada atualmente no que se refere à persistência de dados. Todavia esta tecnologia apresenta diversas limitações quando utilizada em conjunto com o paradigma de orientação a objetos [6]. Como uma tentativa de solucionar este problema, é desenvolvida a técnica de Mapeamento Objeto-Relacional (Object-Relational Mapping), que corresponde ao processo de integração entre o modelo de classe e o modelo relacional, bem como entre os sistemas que suportam essas abordagens [6]. Inserido nesse contexto, esta seção objetiva descrever de que forma o mecanismo de ORM foi utilizado no ambiente WebAPSEE [9] para mapear para o modelo relacional as classes do modelo de negócio do referido ambiente Mapeamento do modelo de classes (Herança) Herança representa uma importante incompatibilidade entre os paradigmas objeto e relacional. Enquanto que o modelo orientado a objetos provê suporte à modelagem tanto de relacionamentos é uma (herança) como de relacionamentos em uma (associação), o modelo relacional suporta apenas esse último tipo de relacionamento tem uma [3]. 2

22 Conforme [3], podemos identificar três técnicas principais para representar uma hierarquia de herança entre classes: Tabela por classe concreta: consiste em descartar o polimorfismo e as relações de herança completamente do modelo relacional; Tabela por hierarquia de classe: habilita o polimorfismo através da quebra do padrão de modelagem relacional, a informação de tipo é expressa através de uma coluna discriminadora de tipo; Tabela por subclasse: emula relacionamentos de herança a partir de relacionamentos de chave estrangeira. Foi escolhida a opção de tabela por subclasse para mapear o modelo do ambiente WebAPSEE. Essa técnica será explicada a partir de um exemplo de mapeamento de hierarquia de classes do modelo em questão Exemplo de mapeamento Todo o modelo de classes do WebAPSEE foi mapeado para o mecanismo de persistência. Porém nesse texto restringimos a apresentação do mapeamento para uma parte do modelo, considerando que o restante do mapeamento pode ser feito de forma análoga. Foi escolhido o conjunto de classes que representam as atividades que podem ser tratadas no ambiente WebAPSEE, conforme pode ser visualizado na Figura 8, mostrada a seguir: Figura 8 - Fragmento do modelo de dados da ferramenta WebAPSEE Maiores informações sobre a semântica do modelo mostrado na Figura 8 podem ser encontradas em [0] Mapeamento Objeto-Relacional Conforme citado anteriormente, dentre as opções de mapeamento possíveis, foi escolhida a opção de mapeamento de tabela por sub-classe, a qual consiste em representar os 22

23 relacionamentos de herança como associações de chaves estrangeiras relacionais. Dessa forma, toda subclasse (inclusive classes abstratas) que declara pelo menos uma propriedade persistente, possui sua própria tabela. A principal vantagem desta técnica é que o modelo relacional é completamente normalizado. Uma associação polimórfica para uma subclasse particular pode ser representada como uma chave estrangeira apontando para a tabela da subclasse correspondente, bem como a evolução de esquema e a definição de restrição de integridade são imediatas. Todas estas funcionalidades representam requisitos essenciais para um PSEE, conforme identificado em [6]. A seguir será descrito de que forma a estratégia supracitada foi aplicada para mapear o fragmento do modelo de dados representado na Figura 8 para o modelo relacional. Como cada classe da hierarquia é mapeada para uma tabela correspondente na base de dados, cada tabela contém somente as colunas para cada propriedade non-inherited (não herdada) da classe correspondente. Além dessas colunas, cada tabela possui ainda uma chave primária que também é uma chave estrangeira da tabela da superclasse. Esta estratégia é mostrada na Figura 9. Para auxiliar a gerência de persistência dos objetos do WebAPSEE, utilizou-se o Hibernate, um framework de mapeamento O-R (Objeto-Relacional) Livre e atualmente sendo amplamente utilizado na gerência de persistência em ambientes orientados a objetos desenvolvidos na plataforma Java. Figura 9 - Mapeamento Objeto Relacional. (a) classes; (b) modelo relacional Compreendendo um projeto de pesquisa amplamente difundido na comunidade, o Hibernate tem como proposta prover o mapeamento objeto-relacional de forma transparente ao desenvolvedor. Dessa forma esses últimos passam a se preocupar somente com a camada de negócio do software, sempre no nível do modelo de classes. Além dessa característica, ao se utilizar esse framework, a portabilidade do sistema entre SGBD s é amplamente favorecida, visto que o Hibernate pode ser configurado através de arquivos XML, não sendo necessário re-compilar o software na necessidade de migração entre SGBDs. 23

24 Está disponível no Anexo, o gabarito de arquivo XML referente ao mapeamento da hierarquia de classes para as tabelas correspondentes, informações relacionadas à sintaxe e semântica do arquivo podem ser encontradas em [3]. 24

25 4 Modelo de Dados Principal do WebAPSEE Esta seção apresenta o modelo conceitual do WebAPSEE e explica os pacotes existentes, suas classes e associações. 4. Descrição dos pacotes A Figura 0 mostra o diagrama de pacotes do meta-modelo WebAPSEE ilustrando os componentes a serem detalhados e seus relacionamentos de dependência. Alguns componentes do meta-modelo são refinados em novos pacotes. SoftwareProcesses APSEETypes Artifacts Tools Organization ProcessKnowledge Policies Figura 0 - Meta-modelo WebAPSEE (diagrama de Pacotes UML) 4.2 Pacote Types Os principais componentes da arquitetura WebAPSEE são tipados, ou seja, são classificados através de tipos predefinidos. O pacote Types contém as hierarquias de tipos para os componentes do WebAPSEE. Neste caso, são propostas as hierarquias de tipos principais, fornecidas juntamente com o modelo, mas o usuário do ambiente poderá criar novas hierarquias de tipos e instâncias para hierarquias existentes de acordo com as necessidades da organização ou do processo. 25

26 As hierarquias de tipos apresentadas na Figura são: recursos, cargos, grupos, habilidades, métricas, atividades, conexões, políticas, artefatos, ferramentas e eventos. O pacote Types exerce um papel importante na descrição do modelo, visto que a maioria dos componentes do meta-modelo WebAPSEE estão associados a um tipo (Type) que deve existir na hierarquia correspondente. As hierarquias de tipos relacionadas aos componentes do WebAPSEE permitem que sejam descritos processos abstratos que podem ser refinados conforme necessário para execução ou usados para reutilização e ainda apóiam a descrição de mecanismos que lidam com elementos genéricos de processos. Essa estrutura de tipos aumenta a flexibilidade do modelo facilitando o processo de extensão do mesmo. É importante observar que a hierarquia de tipos ActivityType serve para designar tanto os tipos de atividades quanto os de processos de software pois atividades podem ser decompostas em processos. +supertype 0.. Type id : String description : String userdefined : boolean +subtype Type() ArtifactType ActivityType RoleType ResourceType EventType PolicyType ArtifactType() ActivityType() RoleType() ResourceType() EventType() PolicyType() ToolType GroupType AbilityType MetricType ConnectionType ToolType() GroupType() AbilityType() MetricType() ConnectionType() Figura - Pacote Types - Hierarquia de tipos do WebAPSEE 4.3 Pacote Log O principal elemento do modelo de gerência de eventos proposto é o pacote Log, queconsiste de um conjunto de classes e regras para registro de eventos. Esta seção é responsável por apresentar a estrutura de dados principal para armazenar informações acerca de ocorrência de eventos. Como mostra a Figura 2, o pacote Log compreende todos os eventos do APSEE. Seu objetivo é armazenar informação sobre o que aconteceu (atributo What), quando aconteceu (atributo When), quem foi o responsável, neste caso pode ser o mecanismo de execução (atributo isapsee indica se o responsável é o APSEE Manager), o agente ou a atividade (atributo Who indica o responsável), e a razão da ocorrência do evento (atributo Why). O valor do atributo What está relacionado com uma instância específica do catalógo de eventos (classe EventsCatalog) ou pode armazenar a identificação da regra que foi responsável pela ocorrência. 26

27 Figura 2 - Pacote Log 27

28 Cada processo de software no ambiente APSEE tem um log (ou seja, uma instância da classe Log), que é composta por eventos (classe Event). Eventos estão relacionados aos seguintes componentes do APSEE: recursos, modelos de processos, atividades (visão global, visão do desenvolvedor e eventos de modelagem), conexões entre atividades, e o próprio processo de software. 4.4 Pacote SoftwareProcesses O pacote SoftwareProcesses (ver Figura 3) foi dividido em sub-pacotes. Seus componentes são os modelos de processos de software (ProcessModels), atividades (Activities), Atividades simples (PlainActivities) e conexões (Connections). O pacote ProcessModels, mostrado na seção a seguir, é o componente principal do pacote SoftwareProcesses e tem como objetivo descrever as características de um processo de software e seu relacionamento com os outros componentes do meta-modelo. Figura 3 - Pacote SoftwareProcesses 4.4. Modelos de Processos O pacote SoftwareProcesses.ProcessModels (Figura 4) contém o modelo para descrever processos de software em diferentes estados de modelagem e de execução. Um processo da classe Process possui um identificador, um tipo na hierarquia de tipos de atividades, um estado e um modelo de processo. O estado do processo (p_state) pode ser: Not_Started, (o processo não foi iniciado), Enacting (o processo está em execução) ou Finished (o processo foi concluído). A distinção entre processo e modelo de processo (ProcessModel) se faz necessária para determinar a situação geral do nodo raiz da rede de atividades, pois modelos de processo são definidos de forma recursiva (são compostos de atividades que podem ser decompostas em novos modelos de processo). 28

29 Agent (from Agent) id : String name : String String description : String GraphicalDescriptor oid : Integer name : String typedescription : String des criptorfile : java.s ql.blob costhour : Float ProcessModelEvent password : String (from Log) +thegraphicaldescriptor photo : java.sql.blob why : String staticok : boolean V describes ProcessModelEvent() Agent() +registers +ismanagedby +theprocessmodeldescribed ProcessModel manages <<ordered>> pmstate : String +isregistered registers requirements : String +manages +hasprocessmodel staticok : boolean Process +belongsto ProcessModel() +composes id : String enable pstate : String +policyenabled Process() <<Abstract>> Policy +theprocess (from InstantiationPolicies) +iscomposedby hastype ident : String name : String Connection (from Connections) description : text Connection() +hastype Policy() ActivityType (from APSEETypes) +policyenabled enable +hastype ActivityType() Activity +theactivity (from Activities) hastype id : String name : String staticok : boolean Activity() Figura 4 - Pacote ProcessModels Descrição de Processos de Software O modelo de processo (ProcessModel) é composto basicamente de atividades e conexões entre atividades. O estado do modelo de processo (pm_state) é determinado dinamicamente em função de seu conteúdo e pode receber os seguintes valores: Requirements: o modelo de processo não possui nenhuma atividade, apenas uma descrição textual de seus requisitos (atributo requirements), ou ainda, possui somente atividades decompostas que estão no estado requirements; Abstract: o modelo de processo possui atividades que não estão relacionadas ao contexto da organização, ou seja, são genéricas. Neste estado as atividades indicam apenas os cargos necessários, os tipos de recurso e tipos de artefato; Instantiated: neste estado o modelo de processo já possui atividades instanciadas e pode ser executado; 29

30 Enacting: pelo menos uma das atividades do modelo de processo está sendo executada; Finished: todas as atividades do modelo de processo foram concluídas; Failed: todas as atividades do modelo de processo falharam. Esta situação é possível através da solicitação de um gerente. As conseqüências da falha são tratadas pelo mecanismo de execução; Cancelled: o modelo de processo foi cancelado e todas as atividades estão canceladas. Também é necessária a solicitação de um gerente para que o processo assuma este estado. A diferença com relação à falha é que somente processos não iniciados podem ser cancelados; Mixed: este estado é caracterizado quando os componentes do processo estão em diferentes estados sem caracterizar nenhum dos estados anteriores. Por exemplo, um processo que possui uma atividade falhada, outra concluída e uma outra atividade decomposta no estado requirements está no estado Mixed Atividades de um Processo As atividades de um processo de software estão descritas nos pacotes Activities e PlainActivities (apresentado na próxima seção). O diagrama de classes do pacote Activities é apresentado na Figura 5. Uma atividade pode ser simples (Plain) ou decomposta (Decomposed). Se a atividade for decomposta, então é definida por um novo modelo de processo e seu conteúdo é representado pela classe ProcessModel mostrada na seção anterior. Caso contrário trata-se de uma atividade simples (ou folha) na decomposição do modelo de processo. Como característica comum a todas as atividades, temos o controle das versões da atividade (associação has_versions) Atividades Simples Normais e Automáticas O diagrama de classes do pacote PlainActivities é mostrado na Figura 6 e detalha a definição de atividades simples (Plain) como normais ou automáticas. Atividades automáticas (classe Automatic) não consomem recursos nem tempo e são realizadas através de chamadas a operações de ferramentas integradas no ambiente (por exemplo, compilar código). Já as atividades normais (classe Normal) necessitam de recursos, agentes e envolvem artefatos de entrada e saída, os quais são descritos de forma abstrata (tipos) e instanciada (identificadores dos componentes). Além disso, indicam condições que devem ser avaliadas antes e depois da execução da atividade (pré e pós-condição, respectivamente). Ambos os tipos de atividade possuem uma descrição de sua execução (classe EnactionDescription) que indica o estado da atividade, suas datas de início e fim e o registro de eventos ocorridos (classe Event). A idéia de armazenar os tipos necessários na descrição da atividade serve para aumentar a flexibilidade da definição do processo. O projetista de processo pode, durante a modelagem, definir apenas o tipo de recurso necessário e decidir qual recurso vai ser efetivamente utilizado no início da execução da atividade. Além disso, a descrição do processo através dos tipos necessários permite que um modelo de processo possa ser reutilizado em outro contexto, ou mesmo em outra organização. Atividades normais possuem cronograma abstrato com duração em dias (how long), datas de início e fim planejadas (planned_begin e planned_end), o script com os objetivos da atividade; e pré e pós-condições para a sua execução. Enquanto atividades automáticas podem ser executadas a partir de um script de sistema operacional definido pelo usuário (classe 30

31 Script) ou uma chamada a método de uma ferramenta integrada no ambiente (classe ClassMethodCall). O projetista de processos pode indicar quais os parâmetros (classe Parameters) a serem utilizados na chamada automática e qual o artefato de saída a ser gerado ou modificado (classe Artifact). O pacote Tools, a ser apresentado na seção 4.7, apresenta com mais detalhes a definição de chamadas automáticas. O estado da atividade (state) na classe EnactionDescription é o atributo que armazena a situação de cada atividade e serve de referência para a transição de estados de todo o processo de software. Os possíveis estados de uma atividade simples são descritos a seguir: Waiting: as dependências da atividade ainda não estão satisfeitas; Ready: pronta para começar; Active: a atividade está sendo realizada pelos agentes responsáveis (pelo menos um agente está trabalhando na atividade); Paused: todos os agentes solicitaram pausa da atividade; Finished: a atividade foi concluída. Se a atividade for cooperativa, significa que todos os agentes concluíram; Cancelled: a atividade foi cancelada antes de iniciar; Failed: a atividade falhou após o início por decisão dos agentes ou do gerente. 3

32 hasversions +isversion Plain requirements : Text Plain() <<ordered>> +hasversions Activity id : String name : String staticok : boolean Activity() Decomposed Decomposed() <<ordered>> +registers registers +isregistered +hasactivities +defines enable 0.. definedby ModelingActivityEvent (from Log) ModelingActivityEvent() +policyenabled +belongsto +definedby <<Abstract>> Policy (from InstantiationPolicies) ident : String name : String description : text Policy() +isreferredbymodelingactivityevent enable ProcessModel (from ProcessModels) pmstate : String requirements : String staticok : boolean ProcessModel() +policyenabled who Agent id : String name : String String description : String costhour : Float password : String photo : java.sql.blob staticok : boolean Agent() (from Agent) +refersto Figura 5 - Pacote Activities Atividades de Processos de software 32

33 0.. EnactionDescription actualbegin : Date actualend : Date state : String Plain GlobalActivityEvent <<ordered>> (f rom Activ ities) (f rom Log) requirem ents : Text registers why : String execute 0.. Subroutine (f rom Tools) PrimitiveParam Autom atic Parameters description : String result ArtifactParam refersto Normal howlong : int plannedbegin : date plannedend : date s cript : Text in Artifact (f rom Artif acts) id : String description : String name : String path : String staticok : boolean Artifact() pos out InvolvedArtifacts type 0.. ArtifactType (f rom APSEETy pes) involves 0.. pre 0.. requires Condition description : Text requires requires GroupType (f rom APSEETy pes) RequiredResource amountneeded : real ResourceType (f rom APSEETy pes) requires RequiredPeople uses 0.. Resource (from Resources) id : String name : String description : String mtbftime : Real mtbfunittime : String cost : Real staticok : boolean Role (f rom Agent) requires ReqGroup ReqAgent ReqAgentRequiresAbility responsible responsible degree : integer Agent Group (f rom Agent) (f rom Agent) Ability (f rom Agent) Ability() Figura 6 - Pacote PlainActivities 33

34 Conexões entre Atividades As conexões servem para interligar atividades representando o fluxo de controle e de dados do processo. O modelo leva em consideração a necessidade de modelagem de processos utilizando fluxos de controle de alto nível que possam ser refinados durante a execução e que expressem vários tipos de precedência entre atividades. Portanto, são propostos os fluxos de controle de seqüência, de feedback (retorno a uma atividade anterior) e envolvendo várias atividades (branch e join). Esses fluxos de controle e de dados são representados no modelo através de conexões que são chamadas de: conexões simples, conexões múltiplas e conexões de artefato. As conexões simples podem ser de seqüência ou de feedback, enquanto que as conexões múltiplas são branch e join combinados com operadores lógicos. As conexões simples e múltiplas também possuem um tipo de dependência (end-start, start-start, end-end) que influencia diretamente na execução das atividades e pode representar diferentes dependências encontradas em processos reais. As conexões de artefato não influenciam no fluxo de controle do processo, servindo para descrever o fluxo de informações entre atividades, mas podendo ser ligadas a conexões múltiplas. O diagrama de classes do pacote Connections é mostrado na Figura 7 e seus componentes representam as conexões tendo como elemento central atividades (classe Activity). Os tipos de conexão e dependências são detalhados a seguir. Conexão Simples (SimpleCon): Define o fluxo de controle entre duas atividades (origem e destino). Este fluxo pode ser de seqüência ou de feedback. Conexão simples de seqüência: o fluxo de seqüência indica que a atividade destino depende da atividade origem. Os tipos de dependência entre atividades podem ser: o End-Start: a atividade destino somente pode iniciar quando a origem terminar; o Start-Start: a atividade destino pode iniciar somente após o início da origem; o End-End: a atividade destino somente pode terminar quando a origem terminar; Conexão simples de Feedback: O fluxo de feedback é utilizado para indicar o retorno a uma atividade já realizada desde que uma condição seja satisfeita. Nesta conexão a atividade destino (alvo) é uma atividade anterior à origem e a sintaxe define que deve haver um fluxo de execução entre a atividade destino (alvo) e a origem do feedback; Conexão Múltipla (MultipleCon): Também define o fluxo de controle, porém pode envolver várias atividades e conexões múltiplas. Existem dois tipos de conexão múltipla, ambos subdivididos pela aplicação de operadores lógicos (AND, EX-OR, In- OR) e tipos de dependência (end-start, start-start, end-end): Branch: possui uma atividade ou conexão múltipla origem e várias atividades ou conexões múltiplas destino. Um exemplo de aplicação é que a partir do término da atividade origem, todas as atividades destino podem começar (Branch AND end-start). A semântica da conexão depende do operador lógico associado (And - todas, XOR somente uma ou OR um subconjunto de), da condição lógica associada a atividade destino, quando o operador for OR ou XOR e do tipo de dependência utilizado (endstart, start-start ou end-end); 34

! Tecnologia de Processos de Software. ! Visao Geral. ! WebAPSEE-PML. ! Definição. ! Atividades. ! Conexões. ! Artefatos. ! Recursos. !

! Tecnologia de Processos de Software. ! Visao Geral. ! WebAPSEE-PML. ! Definição. ! Atividades. ! Conexões. ! Artefatos. ! Recursos. ! Modelagem de Processos no ambiente WebAPSEE Visão Geral da WebAPSEE-PML Adailton M. Lima Agenda! Tecnologia de Processos de Software! Visao Geral! WebAPSEE-PML! Definição!! Conexões! Artefatos! Recursos!

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

SISTEMA GERENCIADOR DE BANCO DE DADOS

SISTEMA GERENCIADOR DE BANCO DE DADOS BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br SISTEMA GERENCIADOR

Leia mais

WebAPSEE: Um Ambiente Livre e Flexível Para Gerência de Processos de Software 1

WebAPSEE: Um Ambiente Livre e Flexível Para Gerência de Processos de Software 1 WebAPSEE: Um Ambiente Livre e Flexível Para Gerência de Processos de Software 1 Adailton Lima #, Breno França #, Heribert Schlebbe * Marcelo Silva #, Rodrigo Quites Reis #, Carla Lima Reis # # Laboratório

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE] 1/6 Banco de Dados O que é um Banco de Dados? Uma coleção de dados relacionados [ELMASRI/NAVATHE] Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica [HEUSER] Um conjunto

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE EM APLICAÇÃO JAVA WEB HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este

Leia mais

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

! Introdução.  Motivação para Processos de Software. ! Processo Unificado (USDP)  Definições  RUP x USDP  Características do Processo Unificado Agenda! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados! Conclusões 2 Processo

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

Guia de Especificação de Caso de Uso Metodologia CELEPAR

Guia de Especificação de Caso de Uso Metodologia CELEPAR Guia de Especificação de Caso de Uso Metodologia CELEPAR Agosto 2009 Sumário de Informações do Documento Documento: guiaespecificacaocasouso.odt Número de páginas: 10 Versão Data Mudanças Autor 1.0 09/10/2007

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti.

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http://www.edilms.eti. TI Aplicada Aula 02 Áreas e Profissionais de TI Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com http:// Papéis... Um papel é uma definição abstrata de um conjunto de atividades executadas e dos

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 03 Profissões de TI Prof. MSc. Edilberto Silva edilms@yahoo.com http:// Papéis... Um papel é uma definição abstrata de um conjunto de atividades executadas e dos respectivos

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Modelo para Documento de. Especificação de Requisitos de Software

Modelo para Documento de. Especificação de Requisitos de Software Modelo para Documento de Especificação de Requisitos de Software Prof. Dr. Juliano Lopes de Oliveira (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications)

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação. ANEXO 11 O MATRIZ Para o desenvolvimento de sites, objeto deste edital, a empresa contratada obrigatoriamente utilizará o framework MATRIZ desenvolvido pela PROCERGS e disponibilizado no início do trabalho.

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

O modelo unificado de processo. O Rational Unified Process, RUP.

O modelo unificado de processo. O Rational Unified Process, RUP. Cursos: Sistemas de Informação Disciplina: Administração ADM Prof. Jarbas Avaliação: Prova B1, 5º/6º semestres Data: 27/09/2010 Nome: Gabarito RA: Assinatura: Turma: 1) Segundo as afirmações a seguir,

Leia mais

Arquitetura de Banco de Dados

Arquitetura de Banco de Dados Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group

Leia mais

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

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Fábrica de Software 29/04/2015

Fábrica de Software 29/04/2015 Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

PROJETO DE FÁBRICA DE SOFTWARE

PROJETO DE FÁBRICA DE SOFTWARE FACULDADE SETE DE SETEMBRO FASETE Departamento de Sistemas de Informação PROJETO DE FÁBRICA DE SOFTWARE Denise Xavier Fortes Paulo Afonso BA Agosto/2015 Sumário 1. INTRODUÇÃO... 3 2. PERFIS FUNCIONAIS...

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

Engenharia de Software I: Análise e Projeto de Software Usando UML

Engenharia de Software I: Análise e Projeto de Software Usando UML Engenharia de Software I: Análise e Projeto de Software Usando UML Capítulo 1 Processo de Desenvolvimento de Software Metodologia de Desenvolvimento de Software Uma metodologia é um conjunto de métodos,

Leia mais

Universidade Paulista

Universidade Paulista Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen

Leia mais

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD Introdução 1. CONCEITOS BÁSICOS DE BD, SBD E SGBD A importância da informação para a tomada de decisões nas organizações tem impulsionado o desenvolvimento dos sistemas de processamento de informações.

Leia mais

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como: Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena Trabalho Experimental Sistema de Gestão Hoteleira 1. Objetivo Este trabalho tem o objetivo de consolidar o conhecimento sobre UML e

Leia mais

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

Leia mais

Processos de gerenciamento de projetos em um projeto

Processos de gerenciamento de projetos em um projeto Processos de gerenciamento de projetos em um projeto O gerenciamento de projetos é a aplicação de conhecimentos, habilidades, ferramentas e técnicas às atividades do projeto a fim de cumprir seus requisitos.

Leia mais

Metodologia de Gerenciamento de Projetos da Justiça Federal

Metodologia de Gerenciamento de Projetos da Justiça Federal Metodologia de Gerenciamento de Projetos da Justiça Federal Histórico de Revisões Data Versão Descrição 30/04/2010 1.0 Versão Inicial 2 Sumário 1. Introdução... 5 2. Público-alvo... 5 3. Conceitos básicos...

Leia mais

Diretrizes Complementares para Aplicação da Análise de Pontos de Função no PAD

Diretrizes Complementares para Aplicação da Análise de Pontos de Função no PAD Diretrizes Complementares para Aplicação da Análise de Pontos de Função no PAD Ricardo Gaspar (21) 2172-8078 ricardo.gaspar@bndes.gov.br 10 de Junho de 2013 Agenda Contextualização Diretrizes de Contagem

Leia mais

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

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. 1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para

Leia mais

Módulo 4: Gerenciamento de Dados

Módulo 4: Gerenciamento de Dados Módulo 4: Gerenciamento de Dados 1 1. CONCEITOS Os dados são um recurso organizacional decisivo que precisa ser administrado como outros importantes ativos das empresas. A maioria das organizações não

Leia mais

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

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 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 Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Sistemas de Informação Arquitetura de Software Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Introdução à Arquitetura de Software (continuação)

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas Gerenciamento de Gerenciamento de Configuração Novas versões de sistemas de software são criadas quando eles: Mudam para máquinas/os diferentes; Oferecem funcionalidade diferente; São configurados para

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Diretrizes Propostas para Aplicação da APF em Programa Envolvendo Tecnologias Recentes Tais como Barramento, BPMS e Portal

Diretrizes Propostas para Aplicação da APF em Programa Envolvendo Tecnologias Recentes Tais como Barramento, BPMS e Portal Diretrizes Propostas para Aplicação da APF em Programa Envolvendo Tecnologias Recentes Tais como Barramento, BPMS e Portal Ricardo Gaspar, CFPS (21) 2172-8078 ricardo.gaspar@bndes.gov.br 29 de Novembro

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Processo de Desenvolvimento Unificado

Processo de Desenvolvimento Unificado Processo de Desenvolvimento Unificado Processo de Desenvolvimento de Software? Conjunto de atividades bem definidas; com responsáveis; com artefatos de entrada e saída; com dependências entre as mesmas

Leia mais

2.0. Uma Nova Geração de Ferramentas para Gestão de Processos de Software. Coordenação Carla Alessandra Lima Reis Rodrigo Quites Reis

2.0. Uma Nova Geração de Ferramentas para Gestão de Processos de Software. Coordenação Carla Alessandra Lima Reis Rodrigo Quites Reis 2.0 Uma Nova Geração de Ferramentas para Gestão de Processos de Software Coordenação Carla Alessandra Lima Reis Rodrigo Quites Reis U n iv e r s id a d e F e d e r a l d o P a r á Q R C o n s u lto r ia

Leia mais

Plano de Gerenciamento do Projeto

Plano de Gerenciamento do Projeto Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

Leia mais

Histórico de Revisão Data Versão Descrição Autor

Histórico de Revisão Data Versão Descrição Autor H6Projetos Documento de Requisitos Versão 1.3 Histórico de Revisão Data Versão Descrição Autor 05/09/2013 1.0 Preenchimento do Capítulo 2 Requisitos Funcionais Evilson Montenegro 26/09/2013 1.1 Preenchimento

Leia mais