AGENTES AUXILIANDO AMBIENTES DE ENGENHARIA DE SOFTWARE CENTRADO EM PROCESSOS

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

Download "AGENTES AUXILIANDO AMBIENTES DE ENGENHARIA DE SOFTWARE CENTRADO EM PROCESSOS"

Transcrição

1 INPE TDI/1364 AGENTES AUXILIANDO AMBIENTES DE ENGENHARIA DE SOFTWARE CENTRADO EM PROCESSOS Bruno Hideo Casillo Dissertação de Mestrado do Curso de Pós-Graduação em Computação Aplicada, orientada pelos Drs. Nilson Sant Anna e Solon Venâncio de Carvalho, aprovada em 26 de junho de Registro do documento original: < INPE São José dos Campos 2008

2 PUBLICADO POR: Instituto Nacional de Pesquisas Espaciais - INPE Gabinete do Diretor (GB) Serviço de Informação e Documentação (SID) Caixa Postal CEP São José dos Campos - SP - Brasil Tel.:(012) /6923 Fax: (012) pubtc@sid.inpe.br CONSELHO DE EDITORAÇÃO: Presidente: Dr. Gerald Jean Francis Banon - Coordenação Observação da Terra (OBT) Membros: Dr a Maria do Carmo de Andrade Nono - Conselho de Pós-Graduação Dr. Haroldo Fraga de Campos Velho - Centro de Tecnologias Especiais (CTE) Dr a Inez Staciarini Batista - Coordenação Ciências Espaciais e Atmosféricas (CEA) Marciana Leite Ribeiro - Serviço de Informação e Documentação (SID) Dr. Ralf Gielow - Centro de Previsão de Tempo e Estudos Climáticos (CPT) Dr. Wilson Yamaguti - Coordenação Engenharia e Tecnologia Espacial (ETE) BIBLIOTECA DIGITAL: Dr. Gerald Jean Francis Banon - Coordenação de Observação da Terra (OBT) Marciana Leite Ribeiro - Serviço de Informação e Documentação (SID) Jefferson Andrade Ancelmo - Serviço de Informação e Documentação (SID) Simone A. Del-Ducca Barbedo - Serviço de Informação e Documentação (SID) REVISÃO E NORMALIZAÇÃO DOCUMENTÁRIA: Marciana Leite Ribeiro - Serviço de Informação e Documentação (SID) Marilúcia Santos Melo Cid - Serviço de Informação e Documentação (SID) Yolanda Ribeiro da Silva e Souza - Serviço de Informação e Documentação (SID) EDITORAÇÃO ELETRÔNICA: Viveca Sant Ana Lemos - Serviço de Informação e Documentação (SID)

3 INPE TDI/1364 AGENTES AUXILIANDO AMBIENTES DE ENGENHARIA DE SOFTWARE CENTRADO EM PROCESSOS Bruno Hideo Casillo Dissertação de Mestrado do Curso de Pós-Graduação em Computação Aplicada, orientada pelos Drs. Nilson Sant Anna e Solon Venâncio de Carvalho, aprovada em 26 de junho de Registro do documento original: < INPE São José dos Campos 2008

4 Dados Internacionais de Catalogação na Publicação (CIP) C269a Casillo, Bruno Hideo. Agentes auxiliando ambientes de engenharia de software centrado em processos/ Bruno Hideo Casillo. São José dos Campos: INPE, p. ; (INPE TDI/1364) 1. Engenharia de software. 2. Agentes de software. 3. Ambientes de engenharia de software centrado em processos. 4. Modelagem de processos. 5. Automatização de processos. I. Título. CDU Copyright c 2008 do MCT/INPE. Nenhuma parte desta publicação pode ser reproduzida, armazenada em um sistema de recuperação, ou transmitida sob qualquer forma ou por qualquer meio, eletrônico, mecánico, fotográfico, microfílmico, reprográfico ou outros, sem a permissão escrita da Editora, com exceção de qualquer material fornecido especificamente no propósito de ser entrado e executado num sistema computacional, para o uso exclusivo do leitor da obra. Copyright c 2008 by MCT/INPE. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, eletronic, mechanical, photocopying, microfilming, recording or otherwise, without written permission from the Publisher, with the exception of any material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use of the reader of the work.

5

6

7 A meus pais, Pedro Luiz Casillo e Elisa Nishikawa Casillo.

8

9 AGRADECIMENTOS Agradeço a todas as pessoas que me ajudaram a vencer mais esta etapa da vida. A meus pais pelo aporte financeiro durante esses anos de estudo. Ao Instituto Nacional de Pesquisas Espaciais INPE, pela oportunidade de estudos e utilização de suas instalações. Ao Laboratório de Matemática e Computação Aplicada LAC, pela oportunidade de estudos e utilização de suas instalações. A SESIS pelo conhecimento profissional adquirido e pela ajuda no desenvolvimento do trabalho Aos professores do INPE pelo conhecimento compartilhado. Ao meu orientador Prof. Dr. Nilson Sant Anna, pelo conhecimento passado, e pela orientação e apoio na realização deste trabalho. Ao meu segundo orientador Prof. Dr. Solon Venâncio de Carvalho, pela ajuda na realização deste trabalho. Ao Prof. Dr. Tatuo Nakanishi, pelo apoio na construção do trabalho e pela experiência passada. Aos meus amigos do INPE. À minha noiva Patrícia, pelo amor e compreensão, mesmo nos tempos de difícil compreensão. A meus pais novamente por sempre acreditarem na importância do estudo e sempre acreditarem em mim.

10

11 RESUMO Organizações desenvolvedoras de software estão cada vez mais preocupadas com a qualidade de seus produtos, por isso a abordagem de processos de software está sendo cada vez mais utilizada. Criados para facilitar a utilização de processos de software, ambientes de engenharia de software centrado em processos, disponibilizam ferramentas para apoio a execução de processos em um ambiente voltado para o auxílio ao trabalho colaborativo, um exemplo deste tipo de ambiente é o e-webproject, um ambiente de engenharia de software centrado que conta com ferramentas de suporte ao desenvolvimento e processos implementados com interface através do ambiente. Para cada novo processo inserido ou modificado neste ambiente, uma aplicação específica para a utilização do processo deve ser construída, utilizando recursos nem sempre disponíveis nos projetos da empresa. Visando à rápida introdução de novos processos ao ambiente e à facilidade na melhoria de processos já existentes, a automatização do serviço de criação, e uso dos processos pelo ambiente foi implementada. A aplicação desenvolvida necessita que as tarefas executadas para a implementação do processo no ambiente sejam executadas de forma autônoma, visando criar instâncias de processos dentro do ambiente. A tecnologia de agentes vem de encontro a essa necessidade, possibilitando a criação de agentes que executam as tarefas para instanciação e monitoramento dos processos.

12

13 AGENTS ASSISTING PROCESS-CENTERED SOFTWARE ENGINEERING ENVIROMENTS ABSTRACT Software development organizations are each time more worried about the quality of its products, therefore the boarding of software processes is being more used. Created to facilitate the use of software processes, processcentered software engineering environments, presents tools for support the execution of processes in an environment directed toward to assist the collaborative work, an example of this environment are e-webproject, a process-centered software engineering environment that have support tools to the development of software and processes implemented into the environment. For each new process inserted, or modified in this environment, an specific application for the management of the process must be constructed, using available resources nor always available to the projects of the company. Aiming at the fast introduction of new processes to the environment and the facility in processes improvement, the automatization of creation, and use of the processes into the environment was implemented. The developed application needs that tasks which are executed, aiming to create instances of processes inside the environment in a autonomous way. The technology of agents can be used to solve this necessity, making possible the creation of agents who execute the instanciation and monitoring tasks of the processes.

14

15 SUMÁRIO Pág. LISTA DE FIGURAS... LISTA DE SIGLAS E ABREVIATURAS... 1 INTRODUÇÃO Objetivo do Trabalho Estrutura do trabalho AMBIENTES DE ENGENHARIA DE SOFTWARE Ambientes de Engenharia de Software Centrado em Processos e-webproject AGENTES Agentes Categoria de Agentes Framework de Agentes Jade Agentes Auxiliando Processos de Engenharia de Software SERVIÇO DE MODELAGEM E INSTÂNCIA DE PROCESSOS Modelagem de processos Instância do processo Coordenação de Processos INTEGRAÇÃO ENTRE AMBIENTE DE AGENTES E AMBIENTE DE ENGENHARIA DE SOFTWARE Agentes no e-webproject IMPLANTAÇÃO DO SERVIÇO DE MODELAGEM E INSTÂNCIA DE PROCESSOS APOIADO POR AGENTES DE SOFTWARE Modelagem de processos Instância do processo Agente Instanciador Agente Coordenador Agente Escalonador Coordenação do Processo Agente Monitor CONSIDERAÇÕES FINAIS Contribuições Trabalhos Futuros...89 REFERÊNCIAS BIBLIOGRÁFICAS...91 APÊNDICE A A.1 - Código fonte Servlet...100

16 A.2 - Código Fonte Agente A.3 - Código Fonte Interação A.4 - Código Fonte Sincronizador A.5 - Código Fonte Gerenciador de Comportamentos A.6 - Código Fonte Comportamento Resposta Servlet A.7 - Código Fonte Comportamento Banco A.8 - Código Fonte Busca de Agentes...120

17 LISTA DE FIGURAS Componentes e Camada Conceitual do Ambiente. FONTE: (Sant Anna 2000) Modelo Padrão de Plataforma de Agentes definido pela FIPA. Adaptado de JADE (2005) Ciclo de Vida dos Agentes como definido pela FIPA.Retirado de JADE(2005) Modelagem dos Comportamentos dos Agentes FONTE: (JADE, 2005) Diagrama de Contexto da Modelagem de Processos Diagrama de Contexto Acompanhamento de Processos Diagrama de Contexto Tarefas do Usuário Diagrama de Contexto Coordenação de Processos Atividades da Arquitetura Criada Seqüência de Interações da Arquitetura Modelos de Processos Existentes Definição de um Modelo de Processo Modelo da Persistência do Modelo de Processo Definição de um Modelo de Tarefa Definição das Restrições de Tarefa do Modelo de Tarefa Alocação de um Papel para Execução do Modelo de Tarefa Modelo de Persistência do Modelo de Tarefas Definição de Estado liberado para o Modelo de Processo Diagrama de Caso de Uso da Instância do Processo Atividades do Agente Instanciador Diagrama de Seqüências do Agente Instanciador Modelo de Persistência do Processo Instanciado Modelo de Persistência do Repositório Dinâmico de Tarefas Diagrama de Casos de Uso da Instância da Tarefa Atividades do Agente Coordenador na Colaboração Incluir Tarefas no Repositório Dinâmico Atividades do Agente Coordenador na Colaboração Criar Instância de Tarefas Modelo de Persistência da Tarefa Instanciada Diagrama de Caso de Uso Alocar Pessoa Atividades para Alocar Pessoa para a Tarefa Diagrama de Caso de Uso Acompanhar Evolução das Tarefas Atividades do Agente Monitor...84

18

19 LISTA DE SIGLAS E ABREVIATURAS ACL Agent Communication Language API Bibliotecas da linguagem Java CMMI Capability Maturity Model Integration DF Diretório Facilitador PSEE - Process-Centered Software Engineering Enviroment SPICE - Software Process Improvement and Capability Determination

20

21 INTRODUÇÃO As organizações reconhecem a importância de gerenciar o processo de desenvolvimento de software visando melhoria da qualidade de seus produtos. Pensando na melhoria constante de produtos e processos, cada vez mais a utilização de modelos de maturidade e capacitação são adotados no processo de desenvolvimento de software (PETERS E PEDRYCZ, 2001) (THUNEM, 1997). Modelos como CMMI (CMMI, 2005) e SPICE (SPICE, 1995) auxiliam no processo de desenvolvimento de software definindo diretrizes a serem seguidas por processos existentes dentro do processo de desenvolvimento. São exemplos de processos internos ao processo de desenvolvimento de software: a engenharia de requisitos, gestão de configuração e versão, garantia da qualidade, planejamento e acompanhamento de projetos, melhoria de processos dentre outros. O aumento do grau de maturidade da organização oriundo da implementação de processos, possibilita definir com maiores níveis de confiança características como prazos e custos de desenvolvimento (PAULA FILHO, 2003; SOMMERVILLE, 2003). Apesar da importância do uso de processos, as organizações têm dificuldade em sua implantação dentro do processo de desenvolvimento de software. Esta dificuldade tem como principais causas a falta de cultura relacionada ao gerenciamento dos processos, a dificuldade na definição das responsabilidades no processo e a quantidade de recursos que precisam estar disponíveis para a definição e implementação dos processos. Mesmo depois de implementados, os processos podem necessitar de melhorias na sua concepção, e mais uma vez, para modificar o processo, responsabilidades devem ser definidas e recursos devem ser disponibilizados, recursos estes nem sempre disponíveis para o projeto, como por exemplo: recursos humanos, financeiros ou de tempo (MAIA ET AL, 2004; ATKINSON, NOLL, 2003). 19

22 Uma alternativa para diminuir a dificuldade na implantação desses processos é a utilização de um ambiente que possua características de apoio a utilização de processos, tais como ferramentas de apoio ao trabalho colaborativo (CONRADI, BELKHATIR, 1995; SANT`ANNA, 2000; MUEHLEN, 2001). Um ambiente que disponibiliza estes recursos é o e-webproject, Os processos dentro do ambiente, apesar de existentes, devem ser construidos em sua totalidade de forma manual, ou seja, depois de definidos, devem ser implementados por uma equipe de desenvolvimento. A necessidade de automatização da implementação e do uso dos processos de software que podem ser agregados pelo ambiente, motiva o desenvolvimento de uma ferramenta que, de forma autônoma, execute as tarefas desempenhadas pela equipe de desenvolvimento. O e-webproject (SANT ANNA et al., 2002) é um ambiente de engenharia de software comercial implementado a partir do trabalho de pesquisa Um Ambiente Integrado para o Apoio ao Desenvolvimento e Gestão de Projetos de Software para Sistemas de Controle de Satélite - AMBGES (SANT ANNA, 2000) desenvolvido no Instituto Nacional de Pesquisas Espaciais INPE. Este ambiente visa auxiliar o desenvolvimento de software disponibilizando ferramentas de apoio à execução de processos e ao trabalho colaborativo. Como o ambiente foi definido para a utilização de processos, outros trabalhos de pesquisas foram realizados utilizando a estrutura disponível pelo e- WebProject. Estes trabalhos contribuem para a definição e criação de processos de software, tais como gerenciamento de projetos (BORREGO FILHO, 2003), gerenciamento de requisitos (GENVIGIR, 2004), garantia da qualidade (Lahoz, 2004), gerenciamento de modificações e configuração (ABDALA, 2004), e modelagem de processos (CEREJA JUNIOR, 2004). Apesar de definidos, apenas o processo de gerenciamento de projetos dentre os acima citados foi implementado completamente como ferramenta dentro do ambiente de engenharia de software, devido a fatores como tempo e custo. 20

23 1.1 Objetivo do Trabalho O ambiente de engenharia de software e-webproject, possui ferramentas para apoiar o desenvolvimento de software, como mostra a camada de serviços exemplificada na Figura 1.1, o ambiente possui também processos definidos e implementados que são utilizados no processo de desenvolvimento de software. Porém para cada novo processo definido, é necessária a alocação de pessoas tanto para a definição quanto para a implementação do processo, devido à inexistência de uma aplicação que possibilite a gestão deles pelo ambiente. A abordagem adotada até então pelo ambiente dificulta a utilização de diversos processos, tais como gerência de configuração, garantia da qualidade, resolução de problemas entre outros, o que faz com o que o processo de desenvolvimento de software possa ser prejudicado pela não existência de ferramentas necessárias à gestão. FIGURA Componentes e Camada Conceitual do Ambiente. FONTE: Sant Anna (2000). O objetivo deste trabalho é desenvolver uma ferramenta de gestão de processos para o ambiente de engenharia de software e-webproject. Esta 21

24 ferramenta tem como objetivo fornecer um serviço de gestão de processos. Através dele novos processos podem ser definidos e utilizados através do ambiente. Para a implementação da modelagem do processo, foi seguida a arquitetura do ambiente, utilizando linguagem Java e suas API s para execução em ambiente WEB. Para automatizar a criação de processos no ambiente, foi utilizada a tecnologia de agentes, devido à sua autonomia para execução de tarefas, portanto a implementação da instância do processo no ambiente foi realizada utilizando a tecnologia de agentes escritos em linguagem Java. Para facilitar a criação dos agentes, um framework de agentes que disponibiliza recursos para a rápida criação e manutenção dos agentes foi utilizado. Apesar de desenvolvidos sobre a plataforma Java, o ambiente de engenharia de software e o framework de agentes não possuem interação, pois utilizam de diferentes tecnologias e possuem diferentes objetivos, sendo o primeiro um sistema de execução em ambiente WEB e o segundo uma aplicação clienteservidor. Para tornar possível a interação dos agentes com as informações do ambiente e-webproject e facilitar o gerenciamento destes, foi construída uma arquitetura para que os agentes possam ser controlados pelo próprio ambiente de engenharia de software. 1.2 Estrutura do trabalho O trabalho está organizado em mais 6 capítulos e um apêndice, conforme descritos a seguir: Capítulo 2 Ambientes de Engenharia de Software Este Capitulo aborda os conceitos de processo de software, ambientes que suportem esses processos, denominados ambientes de engenharia de software, apresentando um ambiente chamado e-webproject. Capítulo 4 Serviço de Modelagem e Instância de Processos Capítulo 3 Agentes 22

25 Este capítulo abrange conceitos sobre agentes, suas categorias e características de um framework de agentes, caracterizados pelo framework JADE. Mostra também como os agentes podem auxiliar processos de engenharia de software que são suportados pelos ambientes de engenharia de software Capítulo 4 - Serviço de modelagem e Instância de Processos O Capítulo 4 apresenta a especificação de um serviço definido para a modelagem e instância de processos, ou seja, define quais elementos um processo deve possuir, como a definição de tarefas para o processo, define também o fluxo de trabalho dessas tarefas, fornecendo informações para que o processo possa ser implementado em um ambiente de engenharia de software centrado em processos. Capítulo 5 Integração entre Ambiente de Agentes e Ambiente de Engenharia de Software Uma arquitetura construída para que os agentes que são executados no framework JADE possam ter seu ciclo de vida controlados através de interfaces do e-webproject, utilizando a plataforma WEB/Internet, é apresentada neste Capítulo. Capítulo 6 Implantação do processo de modelagem e instância de processos apoiado por agentes de software No Capítulo 6 é apresentada a forma como foi realizada a implementação do serviço que torna possível a modelagem e instância de novos processos dentro do e-webproject. A modelagem do processo foi implementada utilizando a tecnologia Java com Java servlet e interfaces JSP e a instância do processo foi implementada utilizando a tecnologia de agentes em Java persistindo no framework JADE. 23

26 Capítulo 7 Considerações Finais Este Capítulo apresenta os resultados e conclusões obtidos pelo estudo e a definição de trabalhos futuros. Apêndice A Código fonte da arquitetura de integração do framework de agentes JADE com o e-webproject. No apêndice A são anexados os códigos fonte do agente instanciador, representando a estrutura criada para que o e-webproject seja integrado ao JADE. É apresentado também o código fonte da busca de agentes de serviço no repositório de agentes do framework, representando o controle dos agentes através da interface do ambiente de engenharia de software. 24

27 CAPÍTULO 2 AMBIENTES DE ENGENHARIA DE SOFTWARE 2.1 Ambientes de Engenharia de Software Centrado em Processos Ambientes de engenharia de software centrado em processos, ou processcentered software engineering enviroments PSEEs, são ambientes que têm como objetivo suportar as atividades do desenvolvimento de software (CUGOLA, GHEZZI, 1998). Estes ambientes exploram uma representação explícita do processo, chamado modelo de processo, que especifica como conduzir as atividades do processo, os papéis e tarefas dos desenvolvedores de software e como usar e controlar as ferramentas de desenvolvimento de software (AMBRIOLA et al, 1997; SOUZA, 2001). PSEEs podem integrar diversas ferramentas de desenvolvimento em um único ambiente para suportar o desenvolvimento do processo (KNEUPER, 2001). No desenvolvimento de sistemas de software, tarefas como planejamento, execução, gerenciamento, controle e melhoria das atividades relacionadas à construção do software devem ser consideradas. Essas tarefas podem ser organizadas na forma de um processo de software (SPICE, 1995; FUGGETA et al, 1997; PRESSMAN, 1997; BARTHELMESS, 2002; EMAN, 2001). Nos primeiros anos da Engenharia de Software, o termo processo de software era utilizado para denotar o processo de desenvolvimento de software como um todo. Porém, com o passar do tempo, outros termos foram surgindo, como processo de gerenciamento, processo de garantia da qualidade, processo de planejamento de projetos, etc. Esses termos também foram apresentados como responsáveis pelo produto final da construção do software (SANT`ANNA, 2000). 25

28 Um processo de software composto de um conjunto de processos capazes de conduzir a organização envolvida com a construção de produtos de software com qualidade e custos preditíveis, de forma eficiente, gerenciada e com possibilidade de melhoria constante pode ser chamado de processo de engenharia de software. Ambiente de Engenharia de software pode ser caracterizado como um conjunto de ferramentas de desenvolvimento de software, para serem utilizadas pelos projetos de uma organização, suportando o processo de engenharia de software de forma consistente (SPICE, 1995). Esses ambientes devem apoiar a execução de um processo de engenharia de software que deve ser moldado para se adequar às características da organização que o emprega, isto é, estabelecer quais processos o compõe, levando em consideração a ordem em que são executados e os responsáveis pela execução de cada um (ELLMER, 1996; SANT`ANNA, 2000; CEREJA JUNIOR, 2003). O processo de software, conforme definido anteriormente, deve ser bem estabelecido, permitindo a utilização de ferramentas, métodos e a participação de pessoas nas tarefas do desenvolvimento de software.(fuggeta et al, 1997) Um processo bem definido pode ser utilizado para evitar eventualidades catastróficas ao projeto e como mecanismo de aprendizado (melhoria na cultura das pessoas). À medida que o projeto é desenvolvido, os métodos utilizados são melhorados para atender as necessidades que vão surgindo, estas melhorias são incorporadas à cultura das organizações (BORGES, PAULA FILHO, 2003; BRIAND et al, 2002). Para que um ambiente de engenharia de software seja efetivo em seu objetivo principal, deve ter recursos flexíveis e abrangentes, dando suporte eficiente e de forma integrada ao processo de engenharia de software. Recursos como interoperabilidade, extensibilidade, melhoria aos passos, flexibilidade, rapidez, eficiência, capacidade de suportar uma grande quantidade de usuários e de 26

29 classes diferentes, facilidade de utilização, capacidade de apoiar a visibilidade dos produtos e dos processos, capacidade de apoiar o gerenciamento de forma efetiva e capacidade de apoiar o trabalho cooperativo, podem ser considerados.(sant`anna, 2000; AMBRIOLA, GERVASI, 2001) Existem diversas abordagens de ambientes de desenvolvimento de software com ênfase em processos de software (ARBAOUI et al, 2002), como por exemplo: SPADE (BANDINELLI et al, 1994), ADELE-TEMPO (BELKHATIR et al, 1994), Memphis (VASCONCELOS, WERNER, 1998), ProSoft (REIS, REIS, 1999), HyperCode (PERRY et al, 1996), A.I.P.M Fusion (SANTANDER et al, 1997), CAGIS (WANG, HANSSEN, 2001), EPOS (JACCHERI et al., 1992) (NGUYEN et al, 1997), Merlin (JUNKERMANN et al, 1994), APEL (DAMI et al, 1998) e e-webproject (SANT`ANNA et al, 2002). 2.2 e-webproject O e-webproject (SANT ANNA et al., 2002) é um ambiente de engenharia de software comercial desenvolvido pela SESIS Sistemas de Engenharia de Software, a partir do trabalho de pesquisa Um Ambiente Integrado para o Apoio ao Desenvolvimento e Gestão de Projetos de Software para Sistemas de Controle de Satélite - AMBGES (SANT ANNA, 2000) desenvolvido no Instituto Nacional de Pesquisas Espaciais INPE. O e-webproject é um PSEE que tem como principal função prover ferramentas e um ambiente que possibilite à execução de processos de software. O ambiente tem como principais características: o apoio ao trabalho cooperativo, a gestão de projetos, a execução de processos, a gestão do conhecimento organizacional e apoio à infra-estrutura organizacional (SANT`ANNA, 2002) (BORREGO FILHO et al, 2002) (CEREJA JUNIOR et al, 2002). O ambiente e-webproject propõe um modelo de processo de desenvolvimento, levando em consideração principalmente o ciclo de vida do produto e os grupos participantes. O ambiente apresenta características evolutivas (CEREJA JUNIOR, 2003) e permite a configuração baseada nas necessidades 27

30 organizacionais. Este ambiente utiliza a abordagem de processo do Software Process Improvement and Capability Determination (SPICE, 1995), integrando seus processos de forma adequada à visão de objetos e organizado em áreas de negócio, de maneira a proporcionar apoio eficiente à gerência de projetos. Entre as características do ambiente, pode-se destacar o uso do trabalho cooperativo centrado no processo e o conceito de ambiente ativo ou capacidade de forçar o fluxo de trabalho, o chamado Workflow (GENVIGIR, 2004; CEREJA JUNIOR, 2002; SANT`ANNA, 2000; SILVA et al, 2006). A integração das equipes de trabalho, a utilização de tecnologia para controle dos processos envolvidos e a utilização pelos participantes de um conjunto de serviços oferecidos pela internet são alguns dos benefícios obtidos com utilização do ambiente, os quais podem trazem ganhos de produtividade. Do mesmo modo, os produtos gerados pelo processo de construção de software tendem a atender melhor os aspectos relacionados à qualidade e confiabilidade devido à utilização de modelos de maturidade de software, que inclusive, poderão ser ajustados às necessidades organizacionais (ELLMER, 1996). 28

31 CAPÍTULO 3 AGENTES 3.1 Agentes Definir agentes com um conceito único ou padrão é muito difícil, pois existem varias abordagens e ponto de vista de diferentes autores. Além disso, devido às suas mais diversas aplicações uma definição precisa torna-se cada vez mais complicada e variada (GREEN et al, 1997). Um agente humano é uma pessoa que age por ou no lugar de outra, segundo autoridade por ela outorgada é um representante da pessoa. Estes, geralmente, realizam tarefas determinadas, são especialistas naquilo que fazem, possuem capacidades que outras pessoas não têm, têm acesso a informações relevantes para sua tarefa e as realizam a um custo bem menor do que se pessoas comuns tentassem realizar. Exemplos não faltam como: agentes de seguro, agentes bancários, agentes de viagens e etc. No caso de agentes artificiais, ou agentes de software, as características acima citadas são também aplicáveis apesar de não haver uma definição universalmente aceita. No entanto, o que se tem visto é um consenso no fato de que agentes são entidades que se adaptam a um meio, reagem a ele e provocam mudanças neste meio (SILVA, 2003). A FIPA, Foundation for Intelligent Physical Agents (FIPA, 2005), define agente como uma entidade que reside em um ambiente, interpreta dados através de sensores os quais refletem eventos no ambiente e executam ações que modificam o ambiente. Um agente pode ser software ou hardware puro. Alguns pesquisadores, adotaram duas definições gerais: noção fraca e noção forte de agentes. Na definição de noção fraca de agentes, eles conceituam como sistemas computacionais, sendo hardware ou software, com certas 29

32 propriedades tais como autonomia, habilidade social, reatividade e próatividade. Na noção forte de agentes, mais adotada pelos pesquisadores ligados a área de Inteligência Artificial, possui, além das propriedades acima citadas, noções relacionadas ao comportamento humano tais como o conhecimento, a crença, a intenção e a obrigação. Agente também pode ser categorizado como entidade física ou virtual. Física, seria o software visto sob a perspectiva de sua composição, como conjunto ordenado de instruções de código; virtual seria o software visto sob a perspectiva de execução, ele é uma entidade ativa capaz de provocar eventos. A visão ativa da execução do software para realizar um serviço de processamento pode ser definida como componentes de softwares, que é o objeto deste estudo. No geral, agentes seriam componentes de software autônomos que atuam em determinado ambiente de forma a interagir com este e também com outros agentes (CASILLO, SANT`ANNA, 2004; SILVA, 2003), além de produzir ações e percepções sem requerer intervenções humanas constantes. Numa abordagem mais aplicada à Inteligência Artificial, um agente ideal teria que ser capaz de funcionar continuamente e adquirir experiências e conhecimentos acerca do ambiente que está interagindo. Ou seja, ser capaz de aprender e tomar decisões a partir de situações diferentes. Pode-se dizer algumas propriedades que são essenciais para uma melhor caracterização de agente. Uma delas é a autonomia, que o agente deve ter de tomar decisões e ações importantes para a conclusão de uma tarefa ou objetivo sem a necessidade da interferência do ser humano ou qualquer outra entidade, isto é, ser capaz de agir independentemente com seu ambiente através de seus próprios sensores ou com as suas próprias percepções com o objetivo de realizar alguma tarefa seja ela externa ou gerada por ele próprio; operam sem a intervenção humana e tem algum tipo de controle sobre suas ações e seu estado interno. Associado à autonomia está a pró-atividade, que nada mais é do que a capacidade que o agente deve ter de tomar iniciativas. Eles não respondem simplesmente de 30

33 acordo com o meio, mas podem até mesmo alterá-los. Têm a capacidade de exibir comportamentos baseados em objetivos. O agente pode apresentar também características como reatividade que é a capacidade de reagir rapidamente a alterações no ambiente, ou seja, percebe o meio e responde de modo oportuno e robusto, para ser capaz de tomar decisões baseando-se em informações incompletas ou escassas, lidar com erros e ter uma capacidade de adaptação ou aprendizagem através da experiência. Deve ser também capaz de se comunicar com repositórios de informações, como por exemplo outro agente ou o próprio ambiente, a fim de alcançar seus objetivos. Outra característica importante que o agente pode possuir é o raciocínio, talvez o aspecto mais importante para distinguir um agente inteligente dos outros agentes. Afirmar que um agente tem raciocínio significar dizer que ele tem a capacidade de analisar e inferir baseando-se no seu conhecimento atual e nas suas experiências. Esse raciocínio pode ser: Baseado em regras - onde eles usam um conjunto de condições prévias para avaliar as condições no ambiente externo. Baseado em conhecimento - onde eles têm à disposição grandes conjuntos de dados sobre cenários anteriores e ações resultantes, dos quais eles deduzem seus movimentos futuros. Por fim, deve haver uma capacidade de cooperação: agentes podem, e devem, trabalhar junto para mútuo benefício na execução de uma tarefa complexa e um comportamento adaptativo, no qual possa examinar o meio externo e adaptar suas ações para aumentar a probabilidade de ser bem sucedido em suas metas (JENNINGS et al, 1996; JENNINGS, 2000). Para garantir uma maior segurança e confiança ao usuário de que o agente vai representar fielmente seu papel com precisão é fundamental também um alto grau de confiabilidade por parte do agente. 31

34 Contudo, um agente não precisa ter todas essas características ao mesmo tempo. Existem agentes que possuem algumas, outros que possuem todas, o certo é que atualmente existe pouca concordância sobre a importância dessas propriedades e se é necessária sua obrigatoriedade para a caracterização de um agente. O consenso é que essas características tornam um agente muito diferente de simples programas e objetos. 3.2 Categoria de Agentes Para uma melhor compreensão da aplicabilidade da tecnologia de agentes, é interessante falar sobre os diversos tipos de agentes (Wang e Dongming, 2001) (Jennings, 1995) e suas mais variadas diferenças para que se tenha uma melhor noção de utilidade no emprego dos mesmos. É possível fazer uma classificação de agentes de acordo com vários aspectos como quanto à mobilidade, quanto ao relacionamento entre agentes e quanto à capacidade de raciocínio. Agentes Móveis: são agentes que tem a mobilidade como característica principal. Isto é, uma capacidade de mover-se seja por uma rede interna local (intranet) ou até mesmo pela Web, transportando-se pelas plataformas levando dados e códigos. Seu uso tem crescido devido alguns fatos como uma heterogeneidade cada vez maior das redes e seu grande auxílio em tomadas de decisões baseadas em grandes quantidades de informação. Agentes Situados ou Estacionários: são aqueles opostos aos móveis. Isto é, são fixo em um mesmo ambiente e ou plataforma. Não se movimentam em uma rede e muito menos na Web. Agentes Competitivos: são agentes que competem entre si para a realização de seus objetivos ou tarefas. Ou seja, não há colaboração entre os agentes. 32

35 Agentes Coordenados ou Colaborativos: agentes com a finalidade de alcançar um objetivo maior, realizam tarefas específicas, porém coordenando-as entre si de forma que suas atividades se completem. Agentes Reativos: agentes que reagem a estímulos sem ter memória do que já foi realizado no passado e nem previsão da ação a ser tomada no futuro. Não tem representação do seu ambiente ou de outros agentes e são incapazes de prever e antecipar ações. Geralmente atuam em sociedades como uma colônia de formiga, por exemplo. Baseiam-se muito também na teoria do caos na qual se afirma que até mesmo no caos existe uma certa organização. No caso da formiga, por exemplo, uma única não apresenta muita inteligência mas, quando age no grupo todo, ele se comporta como uma entidade com certa inteligência. Ou seja, a força de um agente reativo vem da capacidade de formar um grupo e construir colônias capazes de adaptar-se a um ambiente. Agentes Cognitivos: esses, ao contrário dos agentes reativos, podem raciocinar sobre as ações tomadas no passado e planejar ações a serem tomadas no futuro. Um agente cognitivo é capaz de resolver problemas por ele mesmo. Ele tem objetivos e planos explícitos os quais permitem atingir seu objetivo final. Para que isso se concretize, cada agente deve ter uma base de conhecimento disponível, que compreende todos os dados e todo o know-how para realizar suas tarefas e interagir com outros agentes e com o próprio ambiente. Sua representação interna e seus mecanismos de inferência o permitem atuar independentemente dos outros agentes e lhe dão uma grande flexibilidade na forma de expressão de seu comportamento. Além disso, devido à sua capacidade de raciocínio baseado nas representações do mundo, são capazes de ao mesmo tempo memorizar situações, analisá-las e prever possíveis reações para suas ações. Devido à quantidade de características e o grau de dificuldade de implementação que um agente pode ter, foram criados arquiteturas que 33

36 possibilitam o desenvolvimento e gestão de agentes, a fim de minimizar esforços para a criação de agentes de software. 3.3 Framework de Agentes Frameworks de agentes são ambientes para desenvolvimento de aplicações baseada em agentes conforme as especificações da FIPA (FIPA, 2005), para auxiliar na interoperabilidade de sistemas de agentes. O principal benefício é simplificar e facilitar o desenvolvimento de sistemas de agentes, garantindo um padrão de interoperabilidade entre eles, através de um abrangente conjunto de agentes de serviços de sistema os quais tanto facilitam como possibilitam a sua comunicação. Segundo a FIPA, os serviços que devem existir são os serviços de nomes (naming service) e páginas amarelas (yellow-page service), transporte de mensagens, serviços de codificação e decodificação de mensagens e uma biblioteca de protocolos de interação pronta para ser usada. Aspectos que não fazem parte do agente em si e que são independentes das aplicações tais como transporte de mensagens, codificação e interpretação de mensagens e ciclo de vida dos agentes, também devem fazer parte do framework. O modelo de plataforma representado pela Figura 3.1 possibilita a criação e controle de agentes de software. A partir dele pode-se pensar em como agentes de software podem existir e interagir entre si, para auxiliar a resolver um problema ou extrair uma informação desejada de um determinado sistema ou ambiente. 34

37 FIGURA Modelo Padrão de Plataforma de Agentes definido pela FIPA. FONTE: Adaptado de JADE (2005). 3.4 Jade Jade, Java Agent DEvelopment framework (JADE, 2005), é um ambiente para desenvolvimento de aplicações baseada em agentes que segue as especificações da FIPA. Foi desenvolvido pelo CSELT da Universidade de Parma na Itália. O Jade tem como objetivo simplificar e facilitar o desenvolvimento de sistemas com agentes, garantindo um padrão de interoperabilidade entre eles através de um abrangente conjunto de agentes de serviços de sistema, de acordo com as especificações da FIPA tais como: serviço de nomes (naming service) e páginas amarelas (yellow-page service). De acordo com (BELLIFEMINE, 2003), Jade foi escrito em Java devido a características particulares da linguagem particularmente pela programação orientada a objeto. Foram desenvolvidos tanto pacotes Java com funcionalidades prontas pra uso, quanto interfaces abstratas para se adaptar de acordo com a funcionalidade da aplicação de agentes. FIPA nada especifica sobre as estruturas internas dos agentes, fato que foi uma escolha explícita em conformidade com a opinião de que a interoperabilidade pode ser garantida apenas especificando os comportamentos externos dos agentes (Ex: ACL, protocolos, linguagens de conteúdo e etc.) (FIPA, 2005). 35

38 Para o Jade, um agente é autônomo e independente de processo, tem uma identidade e requer comunicação com outras agentes, seja ela por colaboração ou por competição, para executar totalmente seus objetivos (JADE, 2003). Em outras palavras, pode-se concluir que o Jade é absolutamente neutro no que diz respeito à definição de um agente, ou seja, ele não limita ou especifica que tipo de agente pode ser construído pela plataforma. Em termos mais técnicos um agente em Jade funciona como uma thread que emprega múltiplas tarefas ou comportamentos e conversações simultâneas. Esse agente Jade é implementado como uma classe Java chamada Agent que está dentro do pacote jade.core. Essa classe Agent atua como uma super classe para a criação de agentes de software definidos por usuários. Ela provê métodos para executar tarefas básicas de agentes, tais como: Passagens de mensagens usando objetos ACLMessage (seja direta ou multicast); Suporte completo ao ciclo de vida dos agentes, incluindo iniciar ou carregar, suspender e matar (killing) um agente; Escalonamento e execução de múltiplas atividades concorrentes; Interação simplificada com sistemas de agentes FIPA para a automação de tarefas comuns de agentes (registro no DF, etc). Do ponto de vista do programador, um agente JADE é simplesmente uma instância da classe Agent, no qual os programadores ou desenvolvedores deverão escrever seus próprios agentes como subclasses de Agent, adicionando comportamentos específicos de acordo com a necessidade e objetivo da aplicação, através de um conjunto básico de métodos, e utilizando as capacidades herdadas que a classe Agent dispõe tais como mecanismos básicos de interação com a plataforma de agentes. O modelo computacional de um agente em JADE é multitarefa, onde as tarefas (ou comportamentos) são executadas concorrentemente. Cada funcionalidade ou serviço provido por um 36

39 agente deve ser implementado como um ou mais comportamentos. Esses comportamentos podem ser vários, uma vez que o JADE permite uma variedade de comportamentos em um mesmo agente. Cada agente possui a autonomia implementada pela possibilidade de controlar completamente sua thread de execução. O gerenciador de ciclo de vida é o meio que os agentes utilizam para determinar seu estado atual (ativo, suspenso, etc). FIGURA 3.2 Ciclo de Vida dos Agentes como definido pela FIPA. FONTE: Adaptado de JADE (2005). Um agente JADE pode está em um dos vários estados de acordo com ciclo de vida (Agent Platform Life Cycle) das especificações FIPA, representado pela Figura 3.2. Esses estados são representados em JADE como constantes estáticas da classe Agent. São eles: AP_INIATED: o objeto da classe Agent foi instanciado, mas ainda não se registrou no AMS, não tem nome ou endereço e não pode comunicar com outros agentes. 37

40 AP_ACTIVE: o objeto da classe Agent está registrado no AMS, tem nome formal e endereço e tem acesso a todas as funcionalidades do JADE. AP_SUSPENDED: o objeto da classe Agent está no momento interrompido. Sua thread interna está suspensa e nenhum comportamento está sendo executado. AP_WAITING: o objeto da classe Agent está bloqueado, esperando por alguma coisa. Sua thread interna está dormindo (sleeping) sob um monitor Java e irá acordar quando alguma condição ocorrer (geralmente quando uma mensagem chega). AP_DELETED: o agente está definitivamente apagado ou encerrado. Sua thread interna terminou sua execução, e o agente não está mais registrado no AMS. AP_TRANSIT: um agente móvel entra nesse estado enquanto estiver migrando para uma nova localização. O sistema continua a armazenar mensagens em um buffer que serão enviadas para essa nova localização. AP_COPY: esse estado é usado internamente pelo JADE para agentes que foram clonados. AP_GONE: esse estado é usando internamente pelo JADE quando um agente móvel migrou para outra localização e encontra-se em um estado estável. As ações ou comportamentos que um agente desempenha dentro de um sistema são fundamentais para que o objetivo final da aplicação seja alcançado. No JADE, o desenvolvedor que pretende implementar um agente deve obrigatoriamente herdar a classe Agent e implementar tarefas para o agente escrevendo um ou mais subclasses Behaviour, instanciando-as e adicionando-as ao agente. O framework JADE possui comportamentos prédefinidos para a maioria das tarefas comuns na programação de agentes, tais 38

41 como envio e recebimento de mensagens e até construção de tarefas mais complexas. A estrutura de comportamentos do JADE dá-se através de um escalonador, interno à super classe Agent, que gerencia automaticamente o escalonamento dos comportamentos (behaviours). No escalonamento é utilizada a política de round-robin não preemptivo, em todos os comportamentos disponíveis na fila (BELLIFEMINE, 2003). No escalonamento round-robin cada comportamento adicionado ao agente é colocado em uma fila. Quando esse comportamento passa para o estado de execução, ou seja, o processo passa para a CPU, existe um tempo limite para a sua utilização. Quando esse tempo denominado time-slice ou quantum, expira, sem que antes o processador seja liberado pelo processo, este volta ao estado de pronto, dando a vez para outro processo. Isso permite a execução da classe de um comportamento completo, ou seja, se a tarefa ou comportamento cede sem o controle ter sido completado, ela será re-escalonada no próximo ciclo. Ela poderá não ser re-escalonada, caso esteja bloqueada (um behaviour pode se bloquear no instante em que espera mensagens para evitar desperdício de tempo de CPU e evitar uma espera ocupada). Em outras palavras, um comportamento é executado por vez por um determinado tempo (quantum). Quando acaba esse tempo, o comportamento pode voltar para o fim da fila, caso não tenha acabado de executar sua tarefa. O fato de ser não preemptivo significa dizer que não existe prioridade entre os comportamentos, ou seja, cada comportamento adicionado deve ir para o fim da fila e todos têm a mesma fatia de tempo. O comportamento de um agente é definido pela classe Behaviour que é uma classe abstrata do JADE, disponível no pacote jade.core.behaviours. Uma classe abstrata é uma classe que possui alguns métodos implementados e outros não, e não pode ser instanciada diretamente. O principal método da classe Behaviour é o action (). É nele que serão implementadas as tarefas ou 39

42 ações que este comportamento irá tomar. Outro importante método é o done (), que é usado para informar ao escalonar do agente se o comportamento foi terminado ou não. Ele retorna true caso o comportamento tenha terminado e assim este é removido da fila de comportamentos, e retorna false quando o comportamento não tenha terminado obrigando o método action () a ser executado novamente. Outros importantes atributos e métodos da classe Behaviour são: protected Agent myagent este atributo retorna o agente a qual esse comportamento pertence. void block () Bloqueia esse comportamento. Pode ser passado como parâmetro um o tempo de bloqueio em milisegundos: void block (long tempo). void restart () Reinicia um comportamento bloqueado. void reset () Restaura o estado inicial do comportamento. boolean isrunnable () Retorna se o comportamento está bloqueado ou não. O JADE possui várias classes de comportamentos prontas para uso pelo desenvolvedor, adequando-as de acordo com a necessidade específica do agente. Hierarquicamente, elas estão estruturadas da seguinte forma: Classe jade.core.behaviours.behaviour Classe jade.core.behaviours.compositebehaviour Classe jade.core.behaviours.fsmbehaviour Classe jade.core.behaviours.parallelbehaviour Classe jade.core.behaviours.sequentialbehaviour Classe jade.core.behaviours.receiverbehaviour 40

43 Classe jade.core.behaviours.simplebehaviour Classe jade.core.behaviours.cyclicbehaviour Classe jade.core.behaviours.oneshotbehaviour Classe jade.core.behaviours.senderbehaviour Classe jade.core.behaviours.tickerbehaviour Classe jade.core.behaviours.wakerbehaviour Como classes mais gerais temos a CompositeBehaviour, ReceiverBehaviour e a SimpleBehaviour; Sendo que algumas destas são subdividas em outras classes para tornar mais específicas suas finalidades. O diagrama representado na Figura 3.3 apresenta as classes CompositeBehaviour e SimpleBehavior, as quais são derivadas da classe Behaviour, a classe ReceiverBehaviour foi omitida do diagrama por não conter classes filhas. 41

44 FIGURA 3.3 Modelagem dos Comportamentos dos Agentes. FONTE: (JADE, 2005). A classe ReceiverBehaviour implementa um comportamento para recebimento de mensagens ACL. Ela encapsula o método receive () como uma operação atômica, ou seja, realiza inteiramente sem nenhuma interrupção, tendo o comportamento encerrado quando uma mensagem ACL é recebida. Possui o método getmessage () que permite receber a mensagem. Já a classe CompositeBehaviour é uma classe abstrata para comportamentos, como o próprio nome diz, compostos por diferentes partes. Ela controla internamente comportamentos filhos dividindo seu quantum de execução, de acordo com alguma política de escalonamento. Possui três classes herdadas disponibilizadas pelo JADE. São elas: FSMBehaviour Comportamento composto baseado no escalonamento por máquina de estados finitos (Finite State Machine). O FSMBehaviour executa cada comportamento filho de acordo com uma máquina de estados finitos 42

45 definido pelo usuário. Mais especificamente cada comportamento-filho representa um estado na máquina de estados finitos. Ela fornece métodos para registrar estados (sub-comportamentos) e transições que definem como se dará o escalonamento desses comportamentos-filho. ParallelBehaviour - Comportamento composto com escalonamento concorrente dos comportamentos filhos. ParallelBehaviour executa seus comportamentos filhos concorrentemente e finaliza quando uma condição particular em seus sub-comportamentos é atingida. Por exemplo, quando um número X de comportamentos-filho terminarem ou um comportamento-filho qualquer terminar ou quando todos os comportamentos filho terminarem. SequentialBehaviour - Comportamento composto com escalonamento seqüencial de comportamentos-filho. Ou seja, os comportamentos-filho são executados numa ordem seqüencial e só é encerrado quando o ultimo comportamento-filho é finalizado. Por último, temos a classe abstrata SimpleBehaviour. Ela é um comportamento atômico. Isto é, modela comportamentos que são feitos para serem únicos, monolíticos e que não podem ser interrompidos. Possui quatro classes herdadas disponibilizadas pelo JADE. São elas: CyclicBehaviour Comportamento atômico que deve ser executado sempre. Essa classe abstrata pode ser herdada para criação de comportamentos que se manterão executando continuamente. No caso, o método done () herdado da super classe Behaviour, sempre retorna false, o que faz com que o comportamento se repita como se estivesse em uma repetição infinita. TickerBehaviour Comportamento executa periodicamente tarefas específicas. Ou seja, é uma classe abstrata que implementa um comportamento que executa periodicamente um pedaço de código definido pelo usuário em uma determinada freqüência de repetições. No caso, o desenvolvedor redefine o método ontick () e inclui o trecho de código que deve ser executado 43

46 periodicamente. O período de ticks é definido no construtor da classe em milisegundos. WakerBehaviour - Comportamento que é executado depois de determinado tempo expirado. Em outras palavras, é uma classe abstrata que uma tarefa OneShot que é executada apenas depois que determinado tempo é expirado. No caso, a tarefa é inserida no método handleelapsedtimeout () o qual é chamado sempre que o intervalo de tempo é transcorrido. OneShotBehaviour Comportamento atômico que é executado uma única vez. Essa classe abstrata pode ser herdada para a criação de comportamentos para tarefas que precisam ser executadas em apenas uma única vez. 3.5 Agentes Auxiliando Processos de Engenharia de Software Como ferramenta de apoio aos processos existentes dentro de um ambiente, é útil o uso de agentes de software para a realização de tarefas específicas a cada processo (WOOLDRIDGE, CIANCARINI, 1999; SANT`ANNA, 2000; MURTA, 2000). Novas tecnologias vêm sendo desenvolvidas, onde plataformas de criação e manipulação de agentes de software podem ser utilizadas para suprir as necessidades do ambiente. A principal contribuição dessas plataformas é que elas propõem uma infra-estrutura de suporte e desenvolvimento de sistemas multiagentes, tornando a implementação mais simples e robusta. Ambientes que suportam processos de engenharia de software podem apresentar problemas no planejamento, execução e controle das atividades dos processos. Para tentar sanar eventuais problemas, propõem-se as seguintes características para os agentes: autonomia, reatividade, próatividade e habilidades de interação, podendo assim, os agentes exercerem as atividades planejadas respondendo a mudanças no ambiente por qualquer atividade do processo (PETRIE, 2000; WOOLDRIDGE, 2000; TOMBROS, GEPPERT, 1995). 44

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo

Leia mais

Gerenciamento de Incidentes

Gerenciamento de Incidentes Gerenciamento de Incidentes Os usuários do negócio ou os usuários finais solicitam os serviços de Tecnologia da Informação para melhorar a eficiência dos seus próprios processos de negócio, de forma que

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

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

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

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

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

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

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma

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

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Gerenciamento de Problemas

Gerenciamento de Problemas Gerenciamento de Problemas O processo de Gerenciamento de Problemas se concentra em encontrar os erros conhecidos da infra-estrutura de TI. Tudo que é realizado neste processo está voltado a: Encontrar

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.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

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

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

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

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

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

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

Universidade de Brasília Faculdade de Economia, Administração, Contabilidade e Ciência da Informação e Documentação Departamento de Ciência da

Universidade de Brasília Faculdade de Economia, Administração, Contabilidade e Ciência da Informação e Documentação Departamento de Ciência da Universidade de Brasília Faculdade de Economia, Administração, Contabilidade e Ciência da Informação e Documentação Departamento de Ciência da Informação e Documentação Disciplina: Planejamento e Gestão

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial DAS6607 - Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial Aluno: André Faria Ruaro Professores: Jomi F. Hubner e Ricardo J. Rabelo 29/11/2013 1. Introdução e Motivação 2.

Leia mais

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr. A Chave para o Sucesso Empresarial José Renato Sátiro Santiago Jr. Capítulo 1 O Novo Cenário Corporativo O cenário organizacional, sem dúvida alguma, sofreu muitas alterações nos últimos anos. Estas mudanças

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

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

ü Curso - Bacharelado em Sistemas de Informação

ü Curso - Bacharelado em Sistemas de Informação Curso - Bacharelado em Sistemas de Informação Nome e titulação do Coordenador: Coordenador: Prof. Wender A. Silva - Mestrado em Engenharia Elétrica (Ênfase em Processamento da Informação). Universidade

Leia mais

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC Configurador Automático e Coletor de Informações Computacionais GOVERNO FEDERAL SOFTWARE PÚBLICO software livre desenvolvido pela Dataprev Sistema de Administração

Leia mais

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br SINOP MT 2015-1 COMO SÃO DESENVOLVIDOS OS SISTEMAS DE INFORMAÇÃO? São desenvolvimento como uma estrutura

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

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

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

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.

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

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

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

Módulo 15 Resumo. Módulo I Cultura da Informação

Módulo 15 Resumo. Módulo I Cultura da Informação Módulo 15 Resumo Neste módulo vamos dar uma explanação geral sobre os pontos que foram trabalhados ao longo desta disciplina. Os pontos abordados nesta disciplina foram: Fundamentos teóricos de sistemas

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

Trilhas Técnicas SBSI - 2014

Trilhas Técnicas SBSI - 2014 brunoronha@gmail.com, germanofenner@gmail.com, albertosampaio@ufc.br Brito (2012), os escritórios de gerenciamento de projetos são importantes para o fomento de mudanças, bem como para a melhoria da eficiência

Leia mais

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 3º PERÍODO - 5º MÓDULO AVALIAÇÃO A4 DATA 23/04/2009 ENGENHARIA DE SOFTWARE Dados de identificação do Acadêmico: Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA

Leia mais

15 Computador, projeto e manufatura

15 Computador, projeto e manufatura A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as

Leia mais

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

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Sistemas Operacionais Processos e Threads

Sistemas Operacionais Processos e Threads Sistemas Operacionais Processos e Threads Prof. Marcos Monteiro, MBA http://www.marcosmonteiro.com.br contato@marcosmonteiro.com.br 1 Estrutura de um Sistema Operacional 2 GERÊNCIA DE PROCESSOS Um processo

Leia mais

Prof. Marcelo Henrique dos Santos

Prof. Marcelo Henrique dos Santos ORIENTAÇÃO A OBJETOS COM PROTOTIPAÇÃO CAPÍTULO 02 CONCEITOS FUNDAMENTAIS OBJETIVOS Definiremos alguns conceitos fundamentais de forma a não deixar dúvidas básicas ou interpretações que nos coloquem em

Leia mais

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

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW Ciclo de Vida Aula 2 Revisão 1 Processo de Desenvolvimento de Software 1 O Processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto

Leia mais

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

Leia mais

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL E-MAIL: PEDROHOLI@GMAIL.COM CMM E CMMI

PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL E-MAIL: PEDROHOLI@GMAIL.COM CMM E CMMI PEDRO HENRIQUE DE OLIVEIRA E SILVA MESTRE EM MODELAGEM MATEMÁTICA E COMPUTACIONAL E-MAIL: PEDROHOLI@GMAIL.COM CMM E CMMI INTRODUÇÃO Aumento da Importância do Software Software está em tudo: Elemento crítico

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2 Renan J. Borges 1, Késsia R. C. Marchi 1 1 Universidade Paranaense (UNIPAR) Paranavaí, PR Brasil renanjborges@gmail.com, kessia@unipar.br

Leia mais

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Pós-Graduação em Gerenciamento de Projetos práticas do PMI Pós-Graduação em Gerenciamento de Projetos práticas do PMI Planejamento do Gerenciamento das Comunicações (10) e das Partes Interessadas (13) PLANEJAMENTO 2 PLANEJAMENTO Sem 1 Sem 2 Sem 3 Sem 4 Sem 5 ABRIL

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais GERÊNCIA DO PROCESSADOR MACHADO/MAIA: CAPÍTULO 08 Prof. Pedro Luís Antonelli Anhanguera Educacional Gerenciamento do Processador A gerência do processador pode ser considerada a atividade

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

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

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

Projeto de Sistemas I

Projeto de Sistemas I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo Projeto de Sistemas I Professora: Kelly de Paula Cunha E-mail:kellypcsoares@ifsp.edu.br Requisitos: base para todo projeto, definindo o

Leia mais

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP Planejamento - 7 Planejamento do Gerenciamento do Risco Identificação dos riscos 1 O que é risco? Evento que representa uma ameaça ou uma oportunidade em potencial Plano de gerenciamento do risco Especifica

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

Exame de Fundamentos da ITIL

Exame de Fundamentos da ITIL Exame de Fundamentos da ITIL Simulado A, versão 5.1 Múltipla escolha Instruções 1. Todas as 40 perguntas devem ser respondidas. 2. Todas as respostas devem ser assinaladas na grade de respostas fornecida.

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES CELG DISTRIBUIÇÃO S.A EDITAL N. 1/2014 CONCURSO PÚBLICO ANALISTA DE GESTÃO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI RESPOSTAS ESPERADAS PRELIMINARES O Centro de Seleção da Universidade Federal de Goiás

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

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

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

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

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

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 QUALIDADE DE SOFTWARE Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1 Objetivos Apresentar o processo de gerenciamento de qualidade e as atividades centrais da garantia de

Leia mais

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES Implementação MPS.BR 26 de maio de 2008 4 horas de duração e-mail: (DEIXAR EM BRANCO) RESULTADO: Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Nota INSTRUÇÕES Para a maioria das questões você tem mais de uma opção e

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Centro de Informática - Universidade Federal de Pernambuco Kiev Gama kiev@cin.ufpe.br Slides originais elaborados por Ian Sommerville e adaptado pelos professores Márcio Cornélio,

Leia mais

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

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

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 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

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

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

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 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: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI Profa. Gislaine Stachissini Unidade III GOVERNANÇA DE TI Information Technology Infrastructure Library ITIL Criado pelo governo do Reino Unido, tem como objetivo a criação de um guia com as melhores práticas

Leia mais

Engenharia de Sistemas Computacionais

Engenharia de Sistemas Computacionais Engenharia de Sistemas Detalhes no planejamento UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Introdução Na aplicação de um sistema

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Apresentar os conceitos de requisitos de usuário e de sistema Descrever requisitos funcionais

Leia mais