Um Modelo de Interoperabilidade para Softwares de Gestão de
Transcrição
Um Modelo de Interoperabilidade para Softwares de Gestão de
Tese apresentada à Divisão de Pós-Graduação do Instituto Tecnológico de Aeronáutica como parte dos requisitos para obtenção do título de Mestre em Ciência no Curso de Pós-Graduação em Engenharia Eletrônica e Computação na Área de Informática. Osvandre Alves Martins Um Modelo de Interoperabilidade para Softwares de Gestão de Projetos Volume 1 Tese aprovada em sua versão final pelos abaixo assinados. Prof. Dr. Celso Massaki Hirata Orientador Prof. Dr. Homero Santiago Maciel Chefe da Divisão de Pós-Graduação Campo Montenegro São José dos Campos, SP - Brasil 2003 Um Modelo de Interoperabilidade para Softwares de Gestão de Projetos Osvandre Alves Martins Composição da Banca Examinadora: Prof. Dr. Edgar Toshiro Yano Prof. Dr. Celso Massaki Hirata Prof. Dr. Clovis Torres Fernandes Prof. Dr. José Henrique de Sousa Damiani Prof. Dr. Jorge Luis Risco Becerra Presidente – ITA Orientador – ITA Membro – ITA Membro – ITA Membro Externo – USP-Poli ITA i Dedico este trabalho à memória de minha avó Geralda e de meu tio Antônio, que em vida, sempre me agraciaram com seu afeto. ii Agradecimentos A Deus, que diversas vezes iluminou meu caminho e me deu forças para transpor os obstáculos encontrados durante esta jornada. A meu orientador, Prof. Celso Massaki Hirata, por ter depositado sua confiança em minha pessoa, disponibilizado recursos e me conduzido na realização deste trabalho. Aos Profs. Adilson Cunha, Carlos Henrique, Clovis Fernandes, Damiani, Edgar Yano e Ney Soma que contribuíram para minha formação por meio das matérias que me ministraram. Aos amigos que conheci no ITA, tanto da graduação quanto da pós-graduação, que estudaram ou trabalharam comigo, me acompanhando nesta jornada. À minha amiga, Marisa Atsuko Nitto, que me incentivou a iniciar este programa de mestrado, que agora concluo. À minha noiva Fabiana, pelo carinho e paciência nos momentos em que não pude lhe dar a devida e merecida atenção. Aos meus pais Maria e Vanderlan e meus irmãos Evandro, Rodolfo e Vanderlan Filho, pelo carinho que sempre me dispensaram. iii Resumo Está se tornando comum que o desenvolvimento de produtos ou serviços seja realizado conjuntamente por empresas parceiras ou contratadas, que podem estar situadas em diferentes partes do mundo. Em geral, para entregar o produto ou serviço especificado dentro do prazo e com o custo planejado, a disciplina de gerência de projetos tem sido empregada. Esta disciplina consiste de grupos de processos para o inicio, planejamento, controle, execução e o encerramento de atividades. Geralmente as empresas utilizam ferramentas computacionais para a realização do trabalho de gerenciamento e é comum encontrar parceiras de projeto e contratadas utilizando ferramentas distintas que possuem pouco ou nenhum recurso de integração. Isto resulta em dificuldades na gestão integrada do projeto e de seus subprojetos, contribuindo para um controle ineficiente, altos custos e descumprimento de prazos. Este trabalho endereça os aspectos de interoperabilidade entre softwares de gestão de projetos, envolvendo um levantamento dos requisitos de comunicação e integração, com base na metodologia de gestão proposta pelo PMBOK, para propor um modelo de solução em que estes softwares exponham funcionalidades que possam ser invocadas remotamente, para a realização de processamentos e troca de dados entre empresas parceiras de projeto. A tecnologia de serviços Web foi investigada como alternativa para a implementação da solução proposta devido ao fato de ser baseada em padrões abertos e tecnologias WWW disponíveis. A especificação de requisitos foi realizada com base nos conceitos do PMBOK e em entrevistas com a equipe de gerenciamento de projetos do Programa EMBRAER 170/190. Estes projetos são desenvolvidos em parceria com várias empresas, e cada uma delas é responsável pelo desenvolvimento de uma ou mais partes, que compõem os produtos desses projetos. O modelo de solução e a tecnologia de serviços Web foram testados e validados por meio da implementação de dois protótipos de software de gestão de projetos, concebidos a partir das tecnologias Java e .NET. Eles representam softwares de gestão de projetos de fabricantes diferentes que trocam dados, propiciando a aplicação da técnica Análise de Valor Agregado em projetos relacionados. iv Abstract Nowadays the development of products or services, performed jointly by partnerships or hired companies which are located in different parts of the world, is becoming common. In order to deliver the specified product service on time and within the planned cost , the discipline of the project management has been widely employed. This discipline consists of many group processes to start, plan, control, execute and conclude the activities. Computational tools have been used as an aid to manage these activities and it is common to find project partners which use distinct tools with a few or no integration resources. It results in difficulties related to the integrated management of the project contributing to an inefficient control, high costs and deadline delay. This dissertation addresses the aspects of the interoperability between the management software of projects, involving a survey of the communication requirements based on PMBOK methodology to propose a model of solution in which this software exposes the functionality that can be remotely invoked to perform computing and data exchange among the project partners. The web service technology was investigated as an alternative to implement the solution proposed because it is based on open standards and WWW technology already available. The requirements specification was made based on PMBOK concepts and on interviews with the project management team from EMBRAER 170/190 Program. This program is a set of projects that involves many enterprises, and each one is responsible for the development of the components that will be integrated to the final product. The model of solution and Web service technology were tested and validated by implementing two software prototypes using Java and .NET technologies. They represent the project management software from different manufacturers that interchange data allowing the Earned Value Analyses technique application on related projects. v Sumário – Volume 1 Agradecimentos........................................................................................................................................ ii Resumo ................................................................................................................................................... iii Abstract ................................................................................................................................................... iv Lista de Ilustrações ............................................................................................................................... viii Lista de Tabelas .......................................................................................................................................x Lista de Abreviaturas e Siglas................................................................................................................. xi Capítulo I ....................................................................................................................1 Introdução................................................................................................................................................ 1 1.1 Motivação.............................................................................................................................................. 1 1.2 Objetivos ............................................................................................................................................... 2 1.3 Escopo do Trabalho ............................................................................................................................... 2 1.4 Resumo dos Próximos Capítulos ........................................................................................................... 3 Capítulo II ...................................................................................................................5 A Gestão de Projetos e Projetos de Larga Escala Envolvendo Empresas Parceiras ............................ 5 2.1 Definições e Conceitos da Gestão de Projetos....................................................................................... 5 2.1.1 Processos e Grupos de Processos de Projetos ............................................................................. 6 2.1.2 Envolvidos e Interessados no Projeto ......................................................................................... 8 2.1.3 As Áreas de Conhecimento do Gerenciamento de Projetos........................................................ 8 2.1.4 Estrutura Analítica de Projeto................................................................................................... 11 2.1.5 Relato do Desempenho de Projetos .......................................................................................... 12 2.2 Projetos de Larga Escala Envolvendo Empresas Parceiras ................................................................. 21 2.3 Um exemplo de Projeto de Larga Escala que Envolve Parceiros ........................................................ 23 2.4 Ferramentas Computacionais de Apoio à Gestão de Projetos ............................................................. 27 2.4.1 Ferramentas de Apoio à Especificação, Análise e Controle de Requisitos............................... 28 2.4.2 Ferramentas de Apoio ao Planejamento e Monitoramento de Projetos .................................... 29 2.4.3 Ferramentas de Apoio à Comunicação e ao Trabalho Cooperativo .......................................... 32 2.4.4 Ferramentas de Apoio à Gestão Empresarial ............................................................................ 34 2.4.5 Ferramentas de Apoio ao Controle de Versões e Gerência de Configuração ........................... 35 2.5 Resumo do Capítulo e Alguns Comentários........................................................................................ 36 Capítulo III ................................................................................................................37 O Software como Serviço...................................................................................................................... 37 3.1 Sistemas Distribuídos e os Serviços Web............................................................................................ 37 3.2 Conceituação de Serviços Web ........................................................................................................... 40 3.3 Tecnologias de Suporte aos Serviços Web .......................................................................................... 43 3.3.1 A Linguagem de Marcação Estendida - XML .......................................................................... 45 3.3.2 O Protocolo de Comunicação SOAP ........................................................................................ 48 3.3.3 A Linguagem de Descrição de Serviços Web – WSDL............................................................ 51 3.3.4 O Serviço de Publicação de Serviços Web – UDDI ................................................................ 57 vi 3.4 Arquiteturas de Aplicativos e Interação de Serviços Web................................................................... 61 3.5 A Arquitetura Global para Serviços Web em XML – GXA................................................................ 66 3.5.1 Segurança em Serviços Web..................................................................................................... 68 3.5.2 Transações em Serviços Web ................................................................................................... 69 3.5.3 Coordenação de Processos de Serviços Web ............................................................................ 69 3.5.4 Mensagens Confiáveis entre Serviços Web .............................................................................. 70 3.5.5 Roteamento e Referência de Serviços Web .............................................................................. 70 3.5.6 Anexos em Mensagens de Serviços Web.................................................................................. 71 3.6 Desempenho de Serviços Web ............................................................................................................ 72 3.7 Conceitos no Desenvolvimento de Serviços Web ............................................................................... 74 3.7.1 Fases do Ciclo de Desenvolvimento de Serviços Web ............................................................. 74 3.7.2 Abordagens para o Desenvolvimento de Serviços Web ........................................................... 76 3.8 Plataformas de Desenvolvimento de Serviços Web ............................................................................ 78 3.9 Serviços Web na Plataforma J2EE ...................................................................................................... 79 3.9.1 O Padrão ebXML...................................................................................................................... 81 3.9.2 Servlets ..................................................................................................................................... 82 3.9.3 Java Server Pages...................................................................................................................... 82 3.9.4 Java Beans e Enterprise Java Beans.......................................................................................... 83 3.9.5 Conectores J2EE ....................................................................................................................... 85 3.10 Serviços Web na Plataforma Microsoft .NET ..................................................................................... 86 3.11 Resumo do Capítulo e Resultados Obtidos.......................................................................................... 88 Capítulo IV................................................................................................................90 Uma Proposta de Solução de Interoperabilidade para a Gestão de Projetos de Larga Escala Envolvendo Empresas Parceiras .......................................................................................................... 90 4.1 Utilização de um Processo de Desenvolvimento de Software ............................................................. 90 4.2 Uma Visão do Problema e o Modelo de Solução Proposto ................................................................. 96 4.3 Um Plano para o Gerenciamento de Requisitos ................................................................................ 100 4.4 Especificação de Requisitos Funcionais ............................................................................................ 101 4.5 Especificação de Requisitos Não Funcionais .................................................................................... 105 4.6 Resumo do Capítulo e Resultados Obtidos........................................................................................ 105 Capítulo V...............................................................................................................107 Protótipos de Software de Gestão de Projetos Interoperáveis ........................................................... 107 5.1 Finalidade e Escopo dos Protótipos................................................................................................... 107 5.2 Principais Interfaces de Usuário ........................................................................................................ 110 5.3 Detalhes da Arquitetura ..................................................................................................................... 120 5.3.1 A Camada de Acesso a Dados (persistence) ........................................................................... 123 5.3.2 A Camada de Entidades de Negócio (business)...................................................................... 126 5.3.3 A Camada de Controle de Fluxos de Casos de Uso (control) ................................................. 129 5.3.4 A Camada de Serviços (services)............................................................................................ 131 5.3.5 A Camada de Apresentação (presentation) ............................................................................. 134 vii 5.4 Detalhes da Implementação do Serviço Web .................................................................................... 136 5.4.1 O Serviço Web de Relato de Desempenho ............................................................................. 137 5.4.2 Consumidores do Serviço Web de Relato de Desempenho .................................................... 139 5.5 Cenário de Testes .............................................................................................................................. 141 5.6 Resumo do Capítulo e Resultados Obtidos........................................................................................ 149 Capítulo VI..............................................................................................................151 Conclusões, Contribuições e Sugestões de Trabalhos Futuros ......................................................... 151 6.1 Conclusões......................................................................................................................................... 151 6.2 Contribuições..................................................................................................................................... 152 6.3 Sugestões de Trabalhos Futuros ........................................................................................................ 152 Referências Bibliográficas ...................................................................................154 Glossário................................................................................................................158 Sumário – Volume 2 Apêndice 1 Visão (Conforme Modelo do RUP)...................................................................................................... 165 Apêndice 2 Glossário (Conforme Modelo do RUP) ............................................................................................... 176 Apêndice 3 Plano de Gerenciamento de Requisitos (Conforme Modelo do RUP)................................................ 183 Apêndice 4 Considerações e Requisitos de Serviços Web para Projetos de Larga Escala Envolvendo Empresas Parceiras ............................................................................................................................................. 193 Apêndice 5 Especificações Suplementares (Conforme Modelo do RUP) ............................................................. 221 Apêndice 6 Relação Analítica de Requisitos.......................................................................................................... 227 viii Lista de Ilustrações Figura 1: Grupos de Processos da Gestão de Projetos............................................................................................. 7 Figura 2 : Exemplo de Estrutura Analítica de Projeto ........................................................................................... 12 Figura 3: Estabelecimento da Linha de Base do Projeto. ...................................................................................... 13 Figura 4: Monitoramento de Índices de Desempenho ........................................................................................... 15 Figura 5: Gráfico com Elementos da Análise de Valor Agregado. ....................................................................... 18 Figura 6: Relacionamento entre Empresas Parceiras e Contratadas. ..................................................................... 22 Figura 7: EMBRAER 170/190 - Parceiros do Programa....................................................................................... 24 Figura 8: EMBRAER 170/190 - Intranet para Comunicação com Parceiros do Programa. .................................. 25 Figura 9: Escritório do Projeto e Time do Projeto................................................................................................. 26 Figura 10: Exemplo de Sistema Distribuído.......................................................................................................... 38 Figura 11: Papéis e Operações no Contexto dos Serviço Web.............................................................................. 42 Figura 12: Estrutura Básica dos Serviços Web...................................................................................................... 44 Figura 13: Exemplo de um Documento XML Evidenciando sua Estrutura Básica............................................... 45 Figura 14: Exemplo de um Documento DTD........................................................................................................ 46 Figura 15: Exemplo de Documento XSD.............................................................................................................. 47 Figura 16: Estrutura Básica de uma Mensagem SOAP. ........................................................................................ 49 Figura 17: Exemplo de Definição de uma Mensagem SOAP para Requisição de um Serviço Web..................... 50 Figura 18: Exemplo de Definição de uma Mensagem SOAP em Resposta à Solicitação de um Serviço Web..... 50 Figura 19: Estrutura de um Documento WSDL. ................................................................................................... 54 Figura 20: Estrutura da Dados de um Registro UDDI de uma businesEntity........................................................ 59 Figura 21: Exemplo Abstrato de um Registro UDDI de Serviço de Negócio (businessService). ........................ 59 Figura 22: Exemplo Abstrato de um Registro UDDI tModel............................................................................... 60 Figura 23: Proposta de Arquitetura para Aplicativos Orientados a Serviço. ......................................................... 62 Figura 24: Integração de Aplicativos Construídos em Arquiteturas Orientadas a Serviço.................................... 63 Figura 25: Interação Síncrona de Serviço Web ..................................................................................................... 65 Figura 26: A Arquitetura Global de Serviços Web em XML (GXA).................................................................. 67 Figura 27: Fases do Ciclo de Desenvolvimento de Serviços Web. ....................................................................... 76 Figura 28: Ambiente de Execução de Serviços Web Baseado em J2EE ............................................................... 80 Figura 29: Ambiente de Execução de Serviços Web Baseado na Arquitetura .NET............................................. 87 Figura 30: Visão Geral do Processo Unificado Rational....................................................................................... 94 Figura 31: O Modelo de Interoperabilidade para Softwares de Gestão de Projetos. ............................................. 97 Figura 32: WS4PM – Serviços Web para a Gestão de Projetos. ........................................................................... 98 Figura 33: Estratégia Utilizada para Especificação de Requisitos dos WS4PM. .................................................. 99 Figura 34: Rastreabilidade de Requisitos dos WS4PM. ...................................................................................... 101 Figura 35 : Exemplo de Ficha Contendo Considerações e Levantamento Inicial de Requisitos........................ 104 Figura 36: JavaPMSWeb - Diagrama de Casos de Uso....................................................................................... 109 Figura 37: JavaPMSWeb - Interface de Usuário Principal.................................................................................. 111 Figura 38: JavaPMSWeb - Edição de Dados de Empresas Parceiras. ................................................................. 112 Figura 39: JavaPMSWeb - Manutenção de Registros de Empresas Parceiras..................................................... 113 Figura 40: JavaPMSWeb - Acesso à Definição ou Manutenção de Projetos. ..................................................... 113 Figura 41: JavaPMSWeb - Definição de Projeto................................................................................................. 114 Figura 42: JavaPMSWeb - Definição da WBS de Projeto. ................................................................................. 115 Figura 43: JavaPMSWeb - Planejamento e Relatos de Desempenho.................................................................. 117 Figura 44: JavaPMSWeb - Gráfico da Análise de Valor Agregado. ................................................................... 118 Figura 45: JavaPMSWeb - Análise de Valor Agregado - Valores Correntes e Acumulados. ............................. 118 ix Figura 46: JavaPMSWeb - Análise de Valor Agregado - Variações e Índices de Desempenho. ........................ 119 Figura 47: JavaPMSWeb - Análise de Valor Agregado – Estimativas para Conclusão. ..................................... 119 Figura 48: JPMSClient - Interface do Software que Interopera com o JavaPMSWeb. ....................................... 120 Figura 49: JavaPMSWeb - Camadas do Software............................................................................................... 122 Figura 50: JavaPMSWeb - Diagrama de Classes da Camada de Acesso a Dados. ............................................. 124 Figura 51: JavaPMSWeb - Elemento Raiz do Arquivo XML de Configuração do Software. ............................ 124 Figura 52: JavaPMSWeb - Elemento Raiz da Porção de Configuração de Acesso a Dados............................... 125 Figura 53: JavaPMSWeb - Elemento de Configuração de um SGBDR Específico. ........................................... 125 Figura 54: JavaPMSWeb - Elemento de Configuração de Mapeamento de Códigos de Erro............................. 126 Figura 55: JavaPMSWeb - Diagrama de Classes da Camada de Entidades de Negócio. .................................... 127 Figura 56: JavaPMSWeb - Classes da Camada de Controle de Fluxo de Casos de Uso. .................................... 131 Figura 57: JavaPMSWeb - Diagrama de Classes Envolvendo a Classe Exposta como WS4PM........................ 132 Figura 58: JavaPMSWeb - Diagrama de Classes Envolvendo Classes Consumidoras do WS4PM Implementado. ................................................................................................................................................................... 133 Figura 59: JavaPMSWeb - Estrutura de Diretórios Referente à Camada de Apresentação e o Contêiner do Servidor de Aplicações .............................................................................................................................. 134 Figura 60: JavaPMSWeb - Diagrama de Instalação. ........................................................................................... 136 Figura 61: Registro UDDI do WS4PM Implementado. ...................................................................................... 139 Figura 62: A Classe Consumidora (Proxy) do WS4PM Implementado. ............................................................. 140 Figura 63: Cenário de Testes dos Protótipos de Software Desenvolvidos. ......................................................... 142 Figura 64: Interface da Ferramenta "TCP Monitor". ........................................................................................... 144 Figura 65 : Mensagem SOAP de Invocação do WS4PM Implementado. ........................................................... 145 Figura 66: Mensagem SOAP de Resposta à Invocação do WS4PM Implementado. .......................................... 146 Figura 67: JavaPMSWeb - Diagrama de Seqüência da Invocação de WS4PM de Relato de Desempenho....... 147 Figura 68: JavaPMSWeb - Diagrama de Seqüência de Processamento da Invocação do WS4PM de Relato de Desempenho............................................................................................................................................... 148 x Lista de Tabelas Tabela 1: Mapeamento de Processos em Grupos e Áreas de Conhecimento. ....................................................... 10 Tabela 2: Variáveis da Análise de Valor Agregado. ............................................................................................. 17 Tabela 3: Exemplos de Groupware. ...................................................................................................................... 33 Tabela 4: Modelos de Serviços Web ..................................................................................................................... 64 Tabela 5: Abordagens para Desenvolvimento de Serviços Web. .......................................................................... 76 Tabela 6: Tecnologias .NET e J2EE para Serviços Web....................................................................................... 79 Tabela 7: Abrangência das Considerações e Requisitos de Interoperabilidade entre Parceiros de Projetos. ...... 103 xi Lista de Abreviaturas e Siglas API - Application Programming Interface: Interface de Programação de Aplicação. B2B – Business To Business: Negócio a Negócio. B2Bi – Business To Business Integration: Integração de sistemas Negócio a Negócio. B2C – Business To Consumer: Negócio a Consumidor. B2Ci – Business To Consumer Integration: Integração Negócio a Consumidor. CORBA - Common Object Request Broker Architecture. CLR – Common Language Runtime: Ambiente comum de execução de linguagens. DCOM – Distributed Component Object Model: Modelo de Componentes de Objetos Distribuídos. EAI - Enterprise Application Integration: Integração de Aplicações Empresariais. EAP – Estrutura Analítica do Projeto: Veja WBS. ebXML – electronic business eXtensible Markup Language: Linguagem de marcação estendida para comércio eletrônico. ERP – Enterprise Resource Planning: Planejamento de Recurso Empresarial (Sistema). GXA – Global XML Architecture: Arquitetura Global para XML. HTTP – Hipertext Transfer Protocol: Protocolo de Transporte de Hipertexto. HTTPS - Hipertext Transfer Protocol Secure: Protocolo de Transporte Seguro de Hipertexto. IDL – Interface Definition Language: Linguagem de Definição da Interface. IIOP – Internet Inter-ORB Protocol: Protocolo Inter-ORB de Internet. J2EE – Java To Enterprise Edition: Edição Empresarial do Java. JMS – Java Messaging Service: Serviço de Mensagens Java. JNDI – Java Naming and Directory Interface: Interface de Diretórios e Nomes Java. JTA – Java Transaction API: Interface de Programação de Aplicação para Transação Java. JTS – Java Transaction Service: Serviço de Transação Java. JVM – Java Virtual Machine: Máquina Virtual Java. JDK – Java Development Kit: Kit de Desenvolvimento em Java. LSP - Large Scale Projects – LSP: Projetos de Larga Escala – PLE. MIME - Multipurpose Internet Mail Extension: Extensão de correio de Internet de propósito múltiplo. ORB – Object Request Broker: Corretor de Pedido de Objeto. PLE – Projetos de Larga Escala: Large Scale Projects – LSP. PMI – Project Management Institute: Instituto de Gerenciamento de Projeto. PMBOK – Project Management Body Of Knowledge: Corpo de Conhecimento de Gerenciamento de Projeto. xii QoS – Quality of Service: Qualidade de Serviço. RMI – Remote Method Invocation: Invocação Remota de Método. RUP – Rational Unified Process: Processo Unificado Rational. SOAP – Simple Object Access Protocol: Protocolo simples de acesso a objetos. SGP – Software de Gestão de Projetos. tModel – Unidade de registro de um serviço Web em um serviço de registro UDDI. UDDI – Universal Description, Discover and Integration: Descrição, Descoberta e Integração Universal. UML - Unified Modeling Language: Linguagem de Modelagem Unificada. URI – Uniform Resource Identifier: Identificador de Recurso Uniforme. URL – Uniform Resource Locator: Localizador de Recurso Uniforme. WBS – Work Breakdown Structure: Estrutura Analítica do Projeto – EAP, também referenciada como Estrutura de Decomposição do Trabalho - EDT. WS4PM – Web Services For Project Management: Serviços Web para a Gestão de Projetos. WSDL – Web Service Description Language: Linguagem de Descrição de Serviço Web. WWW – World Wide Web: Rede mundial de computadores XML – eXtensible Markup Language: Linguagem de Marcação Estendida. 1 1 Capítulo I Introdução 1.1 Motivação No mundo globalizado, o desenvolvimento de projeto de um novo produto ou serviço mais complexo geralmente conta com a colaboração de diversos parceiros. Pode-se tomar como exemplos, as montadoras de automóveis, as quais, para o desenvolvimento de um novo modelo, várias empresas fornecedoras são envolvidas e, a partir de especificações de projeto, produzem peças que comporão o referido produto. Além das montadoras de automóveis, podem-se citar várias outras indústrias, dos mais diversos segmentos, que trabalham de maneira análoga, tais como, por exemplo, as indústrias de aeronáutica, de computadores, e de eletrodomésticos. Os processos da gestão de projetos dependem, por exemplo, de reuniões periódicas para definições de prazos e tarefas, avaliações, resolução de conflitos e negociação. Na grande maioria das vezes, o escopo geográfico dos parceiros envolvidos é global. Com isso, tempo e custo para realizar projetos desse tipo tornam-se críticos. Para esse fim, sistemas de comércio eletrônico como os do tipo B2B (Business To Business) têm tentado trazer algum suporte. Várias ferramentas informatizadas de apoio à gestão de projetos estão disponíveis no mercado, permitindo a realização de diversas operações sobre a Internet, inclusive suporte ao trabalho cooperativo. Em geral, as finalidades desses sistemas são, por exemplo, a diminuição de custos de operações e redução de tempo de execução de tarefas relacionadas com o design do produto e gestão de projeto. Contudo, a grande diversidade de fornecedores de ferramentas desse tipo traz como conseqüência uma certa dificuldade de integração entre os parceiros de projeto, que nem sempre utilizam a mesma solução informatizada. Desta forma, deparam-se com 2 problemas relacionados com a necessidade de controlar internamente seus processos e, simultaneamente, ter que compartilhar informações pertinentes com os demais interessados. Cada fornecedor de software e soluções B2B, destinados a auxiliar as empresas nesse tipo de aplicação, utiliza-se de tecnologias específicas e, na maioria das vezes distintas, apresentando particularidades de implementação e utilização. Nesses sistemas, aspectos de segurança, como autenticação, integridade, autorização e confidencialidade, são relevantes no sentido de que cada parceiro geralmente limita as informações que podem transpor as fronteiras de sua organização. 1.2 Objetivos Este trabalho tem, basicamente, dois objetivos. O primeiro deles é investigar a gestão de projetos na perspectiva de projetos de larga escala envolvendo empresas parceiras, para especificar um conjunto de requisitos de comunicação e integração para propiciar o desenvolvimento integrado de projetos relacionados. O segundo objetivo, decorrente do primeiro, refere-se à investigação da tecnologia de serviços Web (Web Services) como alternativa para a implementação de uma solução que atenda a estes requisitos e possa vir a ser implementada em softwares de gestão de projetos. 1.3 Escopo do Trabalho Este trabalho envolve a investigação de conceitos de gerenciamento de projetos necessários à conceituação da gestão de projetos de larga escala envolvendo parceiros e ao embasamento para desenvolvimento do modelo de solução proposto e de um estudo de caso que valida este modelo. A tecnologia de serviços Web é descrita de forma a propiciar o entendimento dos conceitos, tecnologias correlatas, aspectos de implementação, arquitetura, instalação, publicação, descoberta e utilização de serviços de software, sem entrar em detalhes de programação em linguagens específicas. Os requisitos de interoperabilidade, relacionados com a gestão de projetos que envolvem empresas parceiras, foram especificados com base em necessidades apontadas por profissionais da equipe de projetos do Programa EMBRAER 170/190, especificações 3 relacionadas a serviços Web e conceitos de gerenciamento de projetos constantes no PMBOK (PMI, 2000). Desta forma, estão sendo considerados, neste trabalho, apenas a metodologia de gestão de projetos proposta pelo PMBOK e a interoperabilidade entre softwares de gestão de projetos que implementam funcionalidades relacionadas a esta metodologia. Vale ressaltar que os requisitos especificados estão sujeitos a revisões, refinamentos e detalhamentos quando tratados em tempo de design, implementação e testes da solução proposta. Dois protótipos de software de gestão de projetos são implementados com a finalidade de desenvolver um Estudo de Caso que mostre a viabilidade tanto do modelo de solução proposto neste trabalho, quanto da tecnologia em investigação, que é a dos serviços Web. Sendo assim, não são implementadas funcionalidades relacionadas com aspectos de segurança, autenticação, políticas de autorização e controle de transações, sendo estas, deixadas como sugestões para tratamento em trabalhos específicos que podem ser desenvolvidos futuramente. 1.4 Resumo dos Próximos Capítulos O Capítulo II faz uma breve referência aos conceitos básicos da gestão de projetos apresentando as principais definições. Além disso, são apresentados aspectos da gestão de projetos de larga escala envolvendo empresas parceiras, fornecendo inclusive, um exemplo desse tipo de projeto. Um conjunto de ferramentas computacionais, que são utilizadas no auxílio ao desenvolvimento das atividades de gerência de projetos, também é apresentado e comentado, mostrando a finalidade e utilização de cada uma neste contexto. No Capítulo III, a tecnologia de serviços Web é conceituada de forma que suas principais características, tecnologias correlatas, arquiteturas e padrões são apresentados e comentados. Além disso, os principais conceitos relacionados com o desenvolvimento de serviços Web são apresentados, descrevendo-se as formas principais empregadas na construção, instalação, execução e gerenciamento de unidades de software que implementam estes serviços. A implementação de serviços Web é apresentada com base nas duas principais plataformas de desenvolvimento de software que suportam seu desenvolvimento. Detalhes sobre estas plataformas são apresentados possibilitando uma comparação entre elas. O conteúdo do Capítulo IV é norteado pelo processo de desenvolvimento de software adotado. Nele, uma visão mais detalhada do objetivo principal deste trabalho é apresentada, juntamente com uma proposta de solução. Além disso, é proposto um plano para 4 gerenciamento dos requisitos funcionais e não funcionais da solução, que foram especificados e validados por meio de entrevistas realizadas com profissionais da Empresa Brasileira de Aeronáutica S/A – EMBRAER. No Capítulo V são apresentados os detalhes da implementação dos protótipos de software desenvolvidos para testar e validar a solução tecnológica proposta. Dentre esses detalhes estão as principais interfaces de usuário, a arquitetura de software projetada, detalhes da implementação de serviços Web, o cenário de testes e as principais tecnologias utilizadas. O Capítulo VI apresenta as conclusões deste trabalho, ressaltando as contribuições mais importantes e sugestões para trabalhos futuros. O Apêndice 1 é o documento Visão. Ele é o artefato proposto pelo processo de desenvolvimento de software utilizado, que define o problema endereçado num projeto de software, apresenta os principais envolvidos e interessados, suas principais necessidades, e uma proposta de solução. O Apêndice 2 é um exemplo de artefato intitulado Glossário que é utilizado em projetos de desenvolvimento de software para estabelecimento de um vocabulário comum e familiarização da equipe de projeto com termos relacionados com o domínio da aplicação. O Apêndice 3 representa a proposta de um plano para o gerenciamento dos requisitos especificados. Este plano é necessário para se estabelecer a forma como os requisitos serão gerenciados num projeto de desenvolvimento de software. O Apêndice 4 é o documento intitulado “Considerações e Requisitos de Serviço Web para Projetos de Larga Escala Envolvendo Empresas Parceiras”. Ele foi desenvolvido no intuito de se especificar requisitos funcionais para a solução proposta. O Apêndice 5 é o artefato que possui a finalidade de registrar requisitos não funcionais, também conhecidos como Especificações Suplementares para a solução proposta. O Apêndice 6 é um relatório, emitido a partir da ferramenta de apoio à gerência de requisitos utilizada, que apresenta uma análise de todos os requisitos especificados para a solução proposta. Nele, os requisitos funcionais, oriundos do Apêndice 4, e os requisitos não funcionais, oriundos do Apêndice 5, são apresentados conforme definições contidas no Apêndice 3, que propõe uma forma de gerenciar esses requisitos com base em tipos de requisitos, atributos desses tipos, e itens de rastreabilidade que permitem conhecer a origem e o impacto dos requisitos na solução proposta. 5 2 Capítulo II A Gestão de Projetos e Projetos de Larga Escala Envolvendo Empresas Parceiras Neste capítulo são apresentados, de maneira sucinta, as principais definições e conceitos relacionados com o gerenciamento de projetos. São também apresentadas considerações e um exemplo de projeto de larga escala que envolve parceiros, propiciando a fundamentação e conceituação necessárias para o entendimento do contexto em que se insere esse trabalho. Além disso, algumas ferramentas computacionais, atualmente utilizadas no auxílio a profissionais da área, são descritas e comentadas. 2.1 Definições e Conceitos da Gestão de Projetos O PMBOK (PMI, 2000) define projeto como um empreendimento temporário com o objetivo de criar um produto ou serviço único. É temporário porque tem um começo, meio e fimz bem determinados. Único porque o produto ou serviço produzido é, de alguma forma, diferente de todos os outros produtos ou serviços produzidos anteriormente. De forma um pouco mais técnica, Kerzner (1997) define projeto como “um conjunto de tarefas e atividades executadas de forma coordenada, em que são alocados os insumos necessários para, num dado prazo, atingir um objetivo. Este objetivo geralmente é especificado em termos de custos, tempo e desempenho”. Para que se tenha um melhor controle, pode-se dividir os projetos em fases, constituindo o chamado ciclo de vida do projeto. Cada fase do projeto é definida pela conclusão de um ou mais produtos da fase, conhecidos como deliverables. Um deliverable é um produto tangível e verificável resultante de um trabalho, como por exemplo, um estudo de viabilidade, um projeto lógico detalhado ou um protótipo (PMI, 2000). 6 A conclusão de uma fase do projeto é caracterizada pela revisão dos trabalhos e dos padrões de desempenho, para determinar se o projeto terá continuidade e detectar e corrigir desvios. Os produtos oriundos de uma fase normalmente são aprovados antes do início da próxima fase. Entretanto, quando os riscos são considerados aceitáveis, a fase subseqüente pode iniciar antes da aprovação destes. Esta prática de sobreposição é conhecida como fast tracking (PMI, 2000). Nas próximas subseções apresentam-se os principais conceitos e elementos da gestão de projetos, relacionados com os objetivos deste trabalho. 2.1.1 Processos e Grupos de Processos de Projetos O PMBOK (PMI, 2000) define processo como uma série de ações, executadas por pessoas, que geram resultados. Os projetos são geridos e realizados por estes processos, que geralmente se enquadram em duas categorias: • Processos da gerência de projetos – São aqueles que se relacionam com a descrição, a organização e a conclusão do trabalho do projeto; e • Processos orientados a produto – São aqueles que se relacionam com a especificação e a criação do produto do projeto. Durante todo o desenvolvimento do projeto os processos destas duas categorias se interagem e se sobrepõem. Um exemplo está no fato de que o escopo do projeto não pode ser definido sem algum conhecimento básico de como o produto deve ser criado. O PMBOK (PMI, 2000) sugere o agrupamento dos processos da Gestão de Projetos em cinco grupos distintos. A Figura 1 ilustra esses grupos bem como o relacionamento entre eles. As setas entre as caixas que representam os grupos de processos indicam o fluxo das informações que estabelecem o relacionamento entre eles. Os grupos de processos apresentados são os seguintes: • Processos de iniciação – Determinam o início do projeto ou de uma fase; • Processos de planejamento - Planejam e se organizam o trabalho para cumprir as necessidades do projeto ou da fase; 7 • Processos de execução – Referem-se à realização dos trabalhos; • Processos de controle - Têm por objetivo ajustar o realizado, durante a execução, com o planejado; e • Processos de encerramento – Relacionam-se à aprovação formal da fase ou do projeto, na qual se encerram as atividades, realocando-se os recursos. Figura 1: Grupos de Processos da Gestão de Projetos. Cada um dos processos pode ser descrito em termos de suas entradas, ferramentas e técnicas e, saídas. Definem-se como entradas, os documentos ou itens documentáveis que influenciarão o processo. As ferramentas e técnicas são aplicados às entradas no intuito de se obter as saídas desejadas, que são documentos ou itens documentáveis resultantes do processo. Com isso tem-se a interação entre os processos em que as saídas de um podem ser utilizadas como entradas em outros (PMI, 2000). Os recursos de software devem apoiar a integração entre os processos da gestão de projetos utilizados pelas diversas parceiras. A Tabela 1 lista os processos e aloca-os em seus respectivos grupos. Detalhes sobre os processos podem ser obtidos no PMBOK (PMI, 2000). 8 2.1.2 Envolvidos e Interessados no Projeto Em um projeto, as pessoas ou organizações envolvidas diretamente, ou aquelas cujos interesses podem ser afetados de maneira positiva ou negativa com o resultado de sua execução, são conhecidas como stakeholders. A equipe de gerenciamento do projeto deve identificar os stakeholders, determinar quais são suas expectativas e necessidades e então gerenciar e influenciar estas expectativas para se alcançar o sucesso do projeto (PMI, 2000). Normalmente o processo de identificação dos stakeholders é difícil, mas alguns elementos podem ser levados em consideração para a execução desta tarefa. Aqui estão alguns dos prováveis candidatos à condição de stakeholder do projeto: • Gerente do projeto - Indivíduo responsável pelo gerenciamento do projeto. • Cliente - Pessoa ou organização que irá utilizar o produto resultante do projeto. • Patrocinador - Pessoa ou grupo de dentro da organização ou não, que provê os recursos financeiros para a execução do projeto. Podem existir diferentes nomes e categorias de stakeholders – internos ou externos, proprietários ou fundadores, fornecedores ou contratantes, membros da equipe e seus familiares, agências governamentais ou meios externos, indivíduos, organizações temporárias ou permanentes e a sociedade de um modo genérico. Os papéis e responsabilidades atribuídos a stakeholders podem se sobrepor em muitos casos, como por exemplo, quando uma empresa de desenvolvimento de sistemas proporciona os recursos financeiros para um sistema de informação que ela própria está desenvolvendo (PMI, 2000). 2.1.3 As Áreas de Conhecimento do Gerenciamento de Projetos Segundo o PMBOK (PMI, 2000), as áreas de conhecimento do gerenciamento de projetos descrevem os conhecimentos e práticas em termos dos processos que as compõem. Foram definidas as seguintes 9 (nove) áreas de conhecimento: 9 • Gestão de Integração – Inclui os processos necessários para assegurar que os elementos do projeto estejam coordenados apropriadamente; • Gestão do Escopo - Inclui todos os processos necessários para garantir que o projeto contenha todo o trabalho necessário, e somente o trabalho necessário, para completá-lo com sucesso; • Gestão do Tempo - Inclui os processos necessários para assegurar a conclusão dos trabalhos no prazo planejado; • Gestão de Custo - Inclui os processos necessários para assegurar que o projeto será completado com as metas de custo e orçamento planejados; • Gestão da Qualidade - Contém os processos necessários para assegurar e satisfazer as necessidades empreendidas no projeto; • Gestão de Recursos Humanos - Inclui processos que visam otimizar a utilização dos recursos humanos envolvidos no projeto; • Gestão de Comunicação – Envolve os processos necessários para assegurar a geração, coleta, disseminação, armazenamento e disponibilização das informações no tempo certo, de forma adequada e atualizada; • Gestão de Riscos - Inclui os processos para identificar, analisar e responder pelo risco do projeto; e • Gestão de Aquisições - Inclui os processos para aquisição de recursos e serviços de terceiros. A Tabela 1, extraída de (PMI, 2000), apresenta um mapeamento dos processos em grupos e área de conhecimento. São ao todo 39 (trinta e nove) processos, sendo que a maioria se enquadra no grupo de processos de planejamento. 10 Tabela 1: Mapeamento de Processos em Grupos e Áreas de Conhecimento. Grupos de Processos Iniciação Planejamento Execução Controle 1-Desenvolvimento do Plano do Projeto 1-Execução do Plano do Projeto 1-Controle Integrado de Mudanças Encerramento Áreas de Conhecimento Gestão da Integração Gestão do Escopo Gestão do Tempo 1-Iniciação 1-Planejamento do Escopo 1-Verificação do Escopo 2-Definição do Escopo 2-Controle de Mudanças 1-Definição das Atividades 1-Controle do Cronograma 2-Sequenciamento das Atividades 3-Estimativa de Duração das Atividades 4-Desenvolvimento do Cronograma Gestão do Custo 1-Planejamento dos Recursos 1-Controle de custos 2-Estimativa dos custos 3-Orçamento dos custos Gestão da Qualidade 1-Planejamento da qualidade 1-Garantia da qualidade Gestão de Recursos Humanos 1-Planejamento organizacional 1Desenvolvimento da equipe 2-Montagem da equipe 1-Planejamento da gestão de riscos 1-Controle da qualidade 1-Controle e monitoração dos riscos 2-Identificação dos riscos 3-Análise qualitativa dos riscos Gestão de Riscos 4-Análise quantitativa dos riscos 5-Planejamento de resposta aos riscos Gestão da Comunicação Gestão de Aquisições 1-Planejamento das comunicações 1-Distribuição das informações 1-Planejamento das aquisições 1-Pedido de propostas 2-Preparação das aquisições 2-Seleção de fornecedores 3-Administração dos contratos 1-Relato de desempenho 1-Encerramento administrativo 1-Encerramento dos contratos 11 2.1.4 Estrutura Analítica de Projeto A Estrutura Analítica de um Projeto – EAP, referenciada em inglês como WBS (Work Breakdown Structure), é definida pelo PMBOK (PMI, 2000) como sendo o agrupamento de componentes do projeto (orientado para a elaboração de subprodutos) que organiza e define seu escopo. Segundo o PMBOK (PMI, 2000), o trabalho que não consta na WBS está fora do escopo do projeto e a principal função desta estrutura é criar ou ratificar o entendimento comum desse escopo. Ela é produto do processo de Definição do Escopo da Área de Gestão de Escopo. Valeriano (1998) traduz WBS como EDT (Estrutura de Decomposição do Trabalho) e diz que ela consiste numa criteriosa decomposição tanto do produto como dos processos para obtê-lo, bem como das tarefas administrativas e gerenciais necessárias. Pode ser apresentada de duas maneiras: • Sob a forma de um organograma, também conhecida como árvore de decomposição do projeto; ou • Como uma relação ou tabela. As duas formas são equivalentes e, em geral, são usadas simultaneamente num mesmo projeto. A Figura 2 exibe um exemplo do que seria parte da WBS de um projeto de desenvolvimento de uma aeronave. As linhas tracejadas indicam a existência de mais elementos e mais níveis nessa WBS. O estudo de caso, apresentado no Capítulo V, utiliza a WBS de projetos como base para os experimentos realizados neste trabalho. Maiores detalhes sobre WBS podem ser obtidos em (PMI, 2001) que, além de tratar especificamente deste assunto, apresenta uma série de exemplos referentes a tipos de projetos distintos. Outra fonte que pode ser consultada é Flemming e Koppelman (2000). 12 Figura 2 : Exemplo de Estrutura Analítica de Projeto 2.1.5 Relato do Desempenho de Projetos A técnica Análise de Valor Agregado (Earned Value Analysis), é uma das principais ferramentas da gerência de projetos, utilizadas pelo gerente, para se determinar o desempenho de um determinado projeto. O conceito da análise de valor agregado foca-se na análise do custo real frente ao esperado para o trabalho efetivamente realizado. Por meio dela pode-se apurar se o projeto está dentro ou fora do orçamento e cronograma previstos. Em resumo, a técnica consta de um pequeno conjunto de variáveis, obtidas do planejamento (linha de base) e controle do projeto (valores de controle, obtidos periodicamente), e da realização de algumas operações matemáticas básicas realizadas sobre essas variáveis, permitindo a confecção de relatórios de desempenho. O estabelecimento da linha de base do projeto na fase de planejamento é essencial, e a Figura 3 ilustra os passos necessários para obtê-la. Nota-se que, em primeira instância, devese definir o trabalho a ser realizado elaborando-se a WBS, num segundo passo agendam-se as atividades, alocam-se os recursos necessários, e por fim, constitui-se a referência para o 13 projeto por meio da soma dos custos orçados para as atividades. Tem-se então, a linha de base para acompanhamento do projeto em termos de custo e prazo. Figura 3: Estabelecimento da Linha de Base do Projeto. Segundo Flemming e Koppelman (2000), o PMI define a linha de base de um projeto, em inglês PMB (Performance Measurement Baseline), como sendo a soma de vários CAPs (Control Account Plans), que são um conjunto de informações atribuídas a determinados elementos da WBS, servindo de ponto de controle e gerenciamento. A PMB é a referência para a Análise de Valor Agregado. Cada CAP deve conter, pelo menos, os seguintes elementos discretos: • Um escopo específico para o trabalho (breve descrição do escopo); • Um espaço de tempo para execução (datas de início e fim para cada atividade); e • Um orçamento aprovado para o trabalho (expresso em valor monetário, horas ou unidades). Alguns atributos adicionais podem ser definidos, como por exemplo, os seguintes: • Nome da pessoa responsável pelo CAP, ou seja, o Control Account Manager; 14 • Responsável pelo departamento; • Tipo do esforço: não recorrente ou recorrente; • Divisão de pacotes de trabalho discretos (Discrete Work Packages); e • Método utilizado para mensurar o desempenho. Por exemplo, fórmula e percentual de completeza. A técnica Análise de Valor Agregado se baseia num conjunto de variáveis. Destas variáveis, 3 (três) são consideradas básicas e representam as entradas que devem ser fornecidas pela equipe de gerenciamento em determinadas datas do projeto, propiciando a execução da análise: • PV (Planned Value) é o custo orçado para o trabalho planejado que indica o valor referente à parcela do orçamento que deveria ser gasto, considerando o custo de linha de base; • EV (Earned Value) é o valor agregado. Flemming e Koppelmam (2000) apresentam 8 (oito) métodos a partir dos quais pode-se obter o valor agregado, um deles, por exemplo, consiste em estimar o percentual do trabalho realizado até a data de controle e multiplicá-lo pelo valor planejado para esta mesma data; e • AC (Actual Cost) mostra o custo real incidente para o trabalho já realizado por um recurso para uma atividade, até a data de controle do projeto. Os valores de PV, EV e AC são acumulados ao longo do tempo. Um par de variáveis é calculado a partir dos valores das variáveis básicas, propiciando a análise de variações. São elas: • SV (Schedule Variance) é a diferença, em termos de custo, entre o valor agregado (EV) e o valor planejado (PV). Se SV for positiva, o projeto está adiantado, em termos de custo, caso contrário, está atrasado; e • CV (Cost Variance) é a diferença entre o valor agregado (EV) e o custo real (AC), até a data de controle do projeto. Se CV for positiva, o custo está aquém do valor planejado, caso contrário, o custo do projeto ultrapassa o orçamento. 15 A técnica Análise de Valor Agregado propicia o monitoramento de índices de desempenho do projeto ao longo do tempo. Com base nas variações citadas anteriormente, pode-se obter os índices de desempenho para os valores do projeto na data de controle em questão, a saber: • SPI (Schedule Performance Index) é a divisão entre o valor agregado (EV) e o valor planejado na linha de base (PV). Se SPI for menor que 1 indica que o projeto está sendo realizado com um progresso menor que o planejado; e • CPI (Cost Performance Index) é a divisão entre o valor agregado (EV) e o custo real do projeto (AC) até a data de controle. Se CPI for menor que 1, indica que o projeto está custando mais do que o previsto. O gráfico da Figura 4, obtido e adaptado a partir de Flemming e Koppelman (2000), ilustra as interpretações possíveis para os valores das variáveis SPI e CPI. Datas de Controle + Bom e melhorando 1.00 De acordo com o plano Ruim e piorando - Tempo Figura 4: Monitoramento de Índices de Desempenho Olhando para a Figura 4 percebe-se que se uma variável de índice de desempenho apresentar um valor superior a 1.00, indica um resultado positivo, além do esperado para o projeto. Se for exatamente 1.00 indica que o andamento do projeto está ocorrendo conforme o programado, e se for inferior a 1.00 indica um resultado negativo, aquém do esperado para o projeto. 16 A partir dos elementos descritos até então, é possível realizar previsões para o projeto com base em informações referentes à data de controle, extraindo informações como as seguintes: • BAC (Budget At Completion) é orçamento total para o projeto com base no que foi planejado (PV), podendo ser revisado no decorrer do gerenciamento; • WR (Work Remaining) é o valor orçado para o trabalho ainda não realizado na data de controle; • EAC (Estimates Costs at Completion) é o valor financeiro que representa o custo final estimado para o projeto, quando concluído. É obtido a partir dos custos reais incorridos (AC), dos fundos restantes estimados (WR) e de um fator de desempenho (fd) específico. • FR (Funds Remaining) é a diferença entre o valor orçado para o término do projeto (que pode ser o original, BAC, ou um novo valor negociado que pode ser o EAC) e o custo real do projeto até a data de controle (AC); e • TCPI (To Complete Performance Index) é usado para determinar o fator de desempenho, que se deve ter em termos de custo, para se completar o trabalho restante, a partir da última data de controle do projeto. A Tabela 2 apresenta as variáveis comentadas anteriormente, cujos valores são obtidos de forma direta ou calculada e na Figura 5 apresenta-se um gráfico mostrando as principais variáveis da Análise de Valor Agregado. Várias inferências adicionais podem ser feitas com base nos valores das variáveis apresentadas anteriormente, permitindo a realização de diversas análises sobre o desempenho do projeto. A técnica Análise de Valor Agregado pode ser aplicada num determinado elemento da WBS e, por meio de consolidações, pode-se obter os resultados para o projeto como um todo. 17 Tabela 2: Variáveis da Análise de Valor Agregado. Variável PV EV Descrição Forma de Obtenção “Planned Value” Direto do Planejamento do Projeto Valor Planejado “Earned Value” Direto do Acompanhamento do Valor Agregado Projeto, com base no trabalho realizado “Actual Cost” AC Custo Real “Schedule Variance” SV Índice de Desempenho da Programação “Cost Performance Index” CPI Índice de desempenho do custo “Budget At Completion” BAC Orçamento para Conclusão “Work Remaining” WR CV = EV – AC Variação do Custo “Schedule Performance Index” SPI SV = EV – PV Variação da Programação “Cost Variance” CV Direto Depto./Sistema Financeiro SPI = EV PV CPI = EV AC BAC = ∑ PV WR = BAC – EV Trabalho Restante “Estimate At Completion” EAC Custo Estimado para Conclusão Alternativas de fatores de desempenho: 1) – “Mathematical” onde fd = 1; 2) – “Low End Cumulative CPI EAC” onde fd = CPI (acumulado); e EAC = AC + WR fd 3) – “High End Cumulative CPI times SPI EAC” onde fd = CPI X SPI (acumulados). Obs: Segundo Flemming e Koppelman (2000) a alternativa 2 é a mais utilizada. “Funds Remaining” FR Fundos Restantes “To Complete Performance Index” TCPI FR = (BAC ou EAC) – AC Índice de desempenho exigido para conclusão TCPI = WR FR 18 Figura 5: Gráfico com Elementos da Análise de Valor Agregado. Para ilustrar a aplicação da técnica Análise de Valor Agregado, bem como explicar o gráfico da Figura 5, suponha o seguinte exemplo: no projeto da Aeronave XYZ, da Figura 2, foi realizado um planejamento no qual foi programado o desenvolvimento do motor num prazo total de 10 meses e orçados em 100.000 unidades monetárias, que chamaremos de “umos”. Suponha que os custos planejados mensais são constantes e iguais a 10.000 umos e os relatos de desempenho ocorrem mensalmente. Ao final do primeiro mês, observou-se que apenas 80% (oitenta por cento) do trabalho planejado foi realizado. A equipe funcional, responsável pelo gerenciamento financeiro da organização, comunicou ao gerente do projeto que os gastos reais no primeiro mês em relação ao projeto e concepção do motor foram de 11.000 umos. Tem-se então, os 19 valores das três variáveis básicas (PV, EV e AC) para a data de controle referente ao primeiro mês do projeto e concepção do motor: • PV = 10.000 umos • EV = 80% de PV = 8.000 umos • AC = 11.000 umos De posse das variáveis básicas pode-se aplicar as fórmulas da técnica para realizar a análise. Sendo assim, calcula-se as variações (CV e SV) e os índices de desempenho (CPI e SPI): • CV = EV – AC = 8.000 – 11.000 = -3.000 umos • SV = EV – PV = 8.000 – 10.000 = -2.000 umos • CPI = • EV 8.000 SPI = SV = = 0,80 10.000 EV 8.000 = = 0,72 AC 11.000 Observando o resultado dos cálculos anteriores, como os valores de CV e SV são negativos, chega-se à conclusão que, na data de controle referente ao primeiro mês, o projeto está atrasado e consumindo mais recursos do que o esperado. Confirmando isso, nota-se que as variáveis de índice de desempenho possuem valores menores que 1. O BAC (orçamento para a conclusão) é obtido diretamente, pois está se analisando apenas um elemento da WBS. Se fosse feita a análise do projeto como um todo seria necessário realizar consolidações e analisá-las. O BAC está relatado no enunciado e possui o valor de 100.000 umos. O trabalho restante (WR), ou seja, o valor orçado para o trabalho ainda não realizado, é o seguinte: • WR = BAC – EV = 100.000 – 8.000 = 92.000 umos O custo estimado para conclusão do projeto e concepção do motor pode ser calculado com base em três técnicas, como citado anteriormente: • “Mathematical EAC” = AC + WR = 11.000 + 92.000 = 103.000 umos 1 20 • “Low End Cumulative CPI EAC” = AC + • 92.000 WR = 11.000 + = 138.777 umos CPI (acumulado) 0,72 “High End Cumulative CPI times SPI EAC” = AC + 92.000 WR = 11.000 + = CPI (acumulado) xSPI (acumulado) 0,576 170.722 umos Os fundos restantes (FR) podem ser obtidos a partir de qualquer um dos orçamentos para conclusão, BAC ou EAC, subtraindo o custo real do projeto (AC) até a data de controle: • FR = BAC – AC = 100.000 – 11.000 = 89.000 umos; ou • FR = EAC – AC = 138.777 – 11.000 = 127.777 umos (utilizando a técnica “Low End Cumaltive CPI EAC”). Finalmente, pode-se calcular o índice de desempenho exigido para a conclusão do projeto e concepção do motor: • TCPI = WR 92.000 = = 1,03 (com FR a partir do BAC); ou 89.000 FR • TCPI = WR 92.000 = = 0,72 (com FR a partir do EAC). FR 127.777 O TCPI obtido com FR a partir do BAC indica que o projeto precisa ter um SPI de 1,03 nos nove meses restantes enquanto que se houver aporte adicional de 27.777 umos (conforme o obtido com FR a partir do EAC), pode-se manter o SPI pobre de 0,72. A técnica Análise de Valor Agregado envolvendo projetos relacionados, foi o tema selecionado para o desenvolvimento do estudo de caso apresentado no Capítulo V. Nele um determinado projeto de uma empresa pode ser associado ao elemento da WBS de um projeto 21 maior, liderado por uma empresa parceira, e os relatos de desempenho, registrados para esse projeto menor, refletem no relato de desempenho do projeto da empresa líder. 2.2 Projetos de Larga Escala Envolvendo Empresas Parceiras e Contratadas Em Projetos de Larga Escala - PLE (Large-Scale Projects – LSP) geralmente existe um grande número de envolvidos e interessados (stakeholders), tais como: parceiras, patrocinadores, contratantes, contratadas, consultores e fornecedores. Em geral, empresas parceiras e contratadas são todas parte de um esforço único no qual cada uma é responsável pelo desenvolvimento e produção de um dado subsistema, subproduto ou componente que se integra aos demais, no sentido de se obter o produto do projeto como um todo. PLEs geralmente são projetos com duração superior a 12 (doze) meses, envolvem milhares de participantes e possuem um orçamento na ordem de dezenas de milhões de dólares. Exemplos desse tipo de projeto incluem missões espaciais, aeronaves, e automóveis. O envolvimento de várias empresas causa dependências em termos de informação e sincronização, e essas dependências eventualmente podem afetar o prazo, o custo e o escopo do projeto. Dois tipos de relacionamentos entre as empresas participantes de PLEs são observados, a saber, contratação e parceira. Para caracterizar e diferenciar esses relacionamentos, considere o exemplo de um projeto de produto composto de componentes, realizado por várias empresas. No relacionamento de contratação, geralmente a empresa líder do projeto especifica o componente que é fabricado pela empresa contratada. Existe um contrato que rege as obrigações de fornecedor pela contratada e as obrigações de solicitante pela empresa proprietária, ou lider, do projeto. Já no relacionamento de parceria, a empresa parceira não apenas fabrica o componente como participa ativamente do seu design, ou seja, a empresa líder do projeto delega grande parte do design do componente à empresa parceira. Neste caso, relacionamento é mais próximo, e de certa forma, ocorre uma interação maior entre as empresas. A utilização de parcerias e contratações em projetos é vista pelas empresas líderes de projetos como uma forma de se dividir os riscos, reduzir custos de engenharia e produção, bem como reduzir o tempo de lançamento do produto no mercado (time-to-market). No caso das empresas parceiras das líderes de projetos, o interesse pela participação nestes, se dá 22 principalmente pelo fato de que elas passam a ter participação nas vendas do produto que está sendo concebido. Os projetos de larga escala geralmente contemplam os dois relacionamentos ao mesmo tempo. Um exemplo ilustrativo é apresentado na Figura 6, que na seqüência, é devidamente comentada. C1.1 P2.1 P2 C1 P1.1 E C2.1 C2 P1 Figura 6: Relacionamento entre Empresas Parceiras e Contratadas. Suponha uma empresa (E) que representa, por exemplo, uma montadora de aeronaves que possui um projeto de lançamento, construção e produção de um novo modelo de aeronave. Para tanto, ela pode contar com empresas parceiras (P) e contratadas (C) que desenvolvem componentes que se integram a esse novo modelo. Neste cenário, a empresa (E) divide os riscos de projeto, produção e, conseqüentemente, os lucros referentes às futuras vendas do produto, com as parceiras (P1), (P2), e indiretamente, com a empresa (P2.1). Por outro lado, ela contrata os serviços das empresas (C1) e (C2) para o desenvolvimento de outros componentes. Observando a posição da contratada (C1), suponha que um contrato de fornecimento foi firmado com ela. Esta por sua vez divide a responsabilidade com a empresa (P1.1), sua parceira, e contrata os serviços de uma outra empresa (C1.1) para atender à encomenda. Nota-se que o projeto da empresa (E) está na dependência de outros projetos que são da responsabilidade de terceiros. Os projetos das empresas situadas nas extremidades da rede podem influenciar o cronograma e o custo do projeto da empresa (E). O mesmo ocorre com a contratada (C1) que desenvolve parte do produto e depende de outras duas empresas (C1.1 e P1.1) para atender seu cliente (E). Em projetos desse tipo, algumas áreas de conhecimento da gestão de projetos definidas pelo PMBOK (PMI, 2000) são evidenciadas, uma vez que este tipo de projeto 23 geralmente transpõe as barreiras da organização. Nesse caso destacam-se os processos relativos à Gestão de Riscos, Gestão de Aquisições, Gestão de Integração e Gestão da Comunicação. 2.3 Um exemplo de Projeto de Larga Escala Envolvendo Empresas Parceiras A Empresa Brasileira de Aeronáutica S.A. – EMBRAER, segundo informações constantes em (EMBRAER, 2002b), atualmente é a quarta maior fabricante de aeronaves comerciais do mundo. Posição alcançada graças a excelência de seus produtos e à tecnologia de ponta utilizada por ela no segmento aeronáutico. Fundada em 1969, ela possui mais de 30 anos de experiência em projeto, fabricação, comercialização e pós-venda, e até 2002, já entregou cerca de 5.500 aviões, que estão em operação nos diversos pontos do globo terrestre. Ela possui uma base global de clientes e importantes parceiros de renome mundial, o que resulta numa significativa participação no mercado. A variedade de modelos de aeronaves para aplicações distintas, proposto por ela atualmente, faz com que vários programas, envolvendo vários projetos, sejam desenvolvidos ao mesmo tempo. O grande número de componentes a serem projetados, desenvolvidos e integrados num modelo de aeronave, caracteriza os projetos da EMBRAER como Projetos de Larga Escala. Atualmente a EMBRAER conduz, dentre outros, o programa denominado EMBRAER-170/190 que envolve projetos de engenharia para o lançamento de quatro modelos de aeronaves. Para o desenvolvimento desse programa, ela conta com a participação de vários parceiros, contratados e fornecedores espalhados pelo mundo. Alguns dos principais parceiros são: a Kawasaki (Japão) - responsável por segmentos estruturais; a Hamilton Sundstrand (EUA) – responsável por parte de sistemas; a Honeywell (EUA) – responsável por parte de sistemas; a Parker Hannifin (EUA) – responsável por parte de sistemas; a C&D Aerospace (EUA) – responsável pelos interiores; a General Electric (EUA) – responsável pelos motores; e outras como a Sonaca (Bélgica), a Latécoère (França) e a Gamesa (Espanha). Como pode ser observado, cada um deles é responsável pelo projeto e elaboração de um ou mais componentes que se integram a esses modelos conforme os requisitos especificados pela 24 EMBRAER. A Figura 7 (EMBRAER, 2002), ilustra a divisão de responsabilidades desse projeto, bem como os principais parceiros envolvidos. Figura 7: EMBRAER 170/190 - Parceiros do Programa. O relacionamento com os parceiros é de certa forma, muito próximo, apesar da distância geográfica que os separa. Nesses casos, quando há a necessidade de uma interação mais intensa, equipes de técnicos e engenheiros dos parceiros se deslocam para as instalações da EMBRAER, para desenvolver atividades de projeto e especificação dos componentes que lhes foram atribuídos, visando facilitar a integração deste componente ao produto do projeto. A comunicação de informações de projeto entre a EMBRAER e seus parceiros é realizada por meio de um portal, acessível a partir de uma rede privada denominada “Sita Network”. Esse portal disponibiliza formulários e armazena essas informações num repositório central situado na sede da EMBRAER, permitindo o acompanhamento e o controle do andamento dos projetos dos diversos componentes que se integram ao modelo de aeronave que está sendo desenvolvido. A Figura 8 (EMBRAER, 2002) ilustra a “Sita Network” e os principais pontos espalhados pelo mundo, que acessam o referido portal. 25 Figura 8: EMBRAER 170/190 - Intranet para Comunicação com Parceiros do Programa. O Programa EMBRAER-170/190 conta com equipes responsáveis pela gestão dos projetos e com equipes funcionais, alocadas a cada um deles. Estas equipes compõem escritórios de gestão de programas (Program Management Offices), e como um programa é constituído de projetos, é definido então, um escritório para o gerenciamento de cada projeto (Project Management Office). Tratando-se de escritórios de gestão projetos, Kerzner (1997) aponta as seguintes responsabilidades para um: • Atuar como o ponto focal para a obtenção de informações a respeito do projeto, seja por membros internos ou externos à organização; • Controlar prazos, custos e desempenho visando atender a requisitos de contratos; • Garantir que todo o trabalho requerido é documentado e distribuído às pessoas chave; e • Garantir que todo o trabalho executado está autorizado e fundamentado por documentações contratuais. A maior responsabilidade do gerente do projeto e do pessoal do escritório de gestão do projeto é a integração do trabalho por meio das linhas funcionais da organização. Unidades funcionais como engenharia, pesquisa e desenvolvimento, e manufatura, junto com parceiros e contratados, devem seguir as mesmas especificações, desenhos e objetivos. Sendo 26 assim, existem, nas dependências da EMBRAER, equipes de projeto e engenharia das empresas parceiras atuando . Das responsabilidades dos escritórios de gestão de projetos apresentadas, derivam as quatro maiores atividades desempenhadas por eles, que necessitam de pessoal devidamente treinado e capacitado para a sua execução. São elas: • Integração de atividades funcionais e do projeto; • Comunicação interna e externa; • Planejamento e controle de riscos e incertezas; e • Controle efetivo do Projeto. A Figura 9, construída com base em Kerzner (1997), ilustra as definições apresentadas. Nota-se que ela exibe o gerente do projeto, e seus assistentes como integrantes do escritório de gestão do projeto. Esses assistentes representam o restante dos profissionais que atuam nesse escritório. Da integração de atividades funcionais e do projeto, decorre a participação de gerentes e equipes funcionais da organização, que junto com o pessoal do escritório de gestão do projeto compõem o time do projeto. Assistentes do Gerente do Projeto Gerentes Funcionais Gerente do Projeto Equipes Funcionais Escritório de Gestão do Projeto Time do Projeto Figura 9: Escritório do Projeto e Time do Projeto. Maiores detalhes sobre escritórios de gestão de projetos e programas podem ser obtidos em Kerzner (1997) e Nicholas (1990). 27 2.4 Ferramentas Computacionais de Apoio à Gestão de Projetos Segundo Kerzner (1997), o gerenciamento eficiente de um projeto requer mais do que um bom planejamento, ele requer que informações relevantes sejam obtidas, analisadas e revistas em tempo hábil. Com isso, problemas podem ser previstos, identificados e analisados antecipadamente, assim como o impacto de alterações feitas no planejamento de atividades do projeto. Tais necessidades demandam a utilização de ferramentas computacionais que auxiliam o processo de desenvolvimento de projetos, ajudando os profissionais, por exemplo, no planejamento e controle de atividades e custos do projeto, na especificação e gerência de requisitos, no controle de versões de documentos e deliverables, na análise do impacto de alterações, no suporte à comunicação e ao trabalho cooperativo e, na obtenção de informações sobre os custos reais do projeto. Essas ferramentas podem ser agrupadas nas seguintes categorias: Ferramentas destinadas à especificação, análise e gerência de requisitos; Ferramentas para auxílio ao planejamento e controle de projetos – Softwares de Gestão de Projetos - SGP; Ferramentas de apoio à comunicação e ao trabalho cooperativo; Ferramentas para controle de versões e alteração de configuração (Version Control Management and Change Configuration Management); e Ferramentas de apoio à gestão empresarial (Enterprise Resource Planning – ERP). O universo coberto por essas ferramentas é consideravelmente amplo, daí talvez, o motivo pelo qual a integração entre elas ainda é, de certa forma, fraca e em muitos casos inexistente. Um possível motivo disto talvez seja o fato das empresas fornecedoras desses aplicativos possuírem focos distintos, nos quais uma é especialista em SGP, a outra em softwares de gerência de requisitos, e assim por diante. Nas subseção a seguir apresenta-se um detalhamento sucinto das categorias de ferramentas computacionais citadas anteriormente. 28 2.4.1 Ferramentas de Apoio à Especificação, Análise e Controle de Requisitos A satisfação dos requisitos, sem dúvida é uma das chaves para o sucesso de um projeto. Os requisitos representam as expectativas e necessidades do cliente em relação a um produto ou serviço, ou seja, o que o produto/serviço e seus componentes devem ter/fazer para satisfazê-las. Diante disso, há a necessidade de se captar e comunicar os requisitos a todos os envolvidos no respectivo projeto. E uma das formas para garantir o sucesso do empreendimento, é que os documentos de requisitos devem controlar o processo de desenvolvimento do projeto, sendo também utilizados para se verificar e validar os resultados parciais e finais. Nota-se então, a importância da gestão de requisitos no desenvolvimento de projetos, uma vez que eles são peças-chave na definição do escopo, produtos e subprodutos de um projeto. Philip Crosby (LIVEWARE, 2001) define “qualidade” como sendo a conformidade com os requisitos, ou seja, atendendo aos requisitos, automaticamente, garantese a qualidade do produto ou serviço proposto ao cliente. Para a Telelogic (2001), um “bom” requisito possui características como: corretude, completeza, consistência, ausência de ambigüidade, possibilidade de ser verificado (testado), e possibilidade de ser acompanhado. Tais características tornam a gestão de requisitos uma tarefa árdua no sentido de se verificar e validar todas elas para o conjunto de requisitos de projetos. O uso de ferramentas computacionais de apoio à gestão de requisitos pode aliviar essa carga dos profissionais envolvidos nesse processo. Wiegers (WIEGERS,1999) analisa algumas dessas ferramentas e apresenta os principais motivos para se fazer uso das mesmas: • Controle de versões e alterações – Os requisitos de um projeto podem, e geralmente, sofrem alterações no decorrer de seu desenvolvimento. As ferramentas de auxílio à gestão de requisitos apresentam recursos de armazenamento de históricos de alterações e versões anteriores dos documentos de requisitos que podem ser recuperados com facilidade. • Registro de atributos dos requisitos – Este recurso possibilita a atribuição de informações a respeito de um requisito como: identificador único, responsável, prioridade, custo, dificuldade, estabilidade, risco e número de versão. 29 • Ligações entre requisitos e outros elementos - Este recurso permite estabelecer a “rastreabilidade” de requisitos, permitindo conhecer a origem e o impacto de um determinado requisito num produto ou solução. • Acompanhamento de status - Tal recurso fornece respostas aos gerentes de projetos sobre o percentual de atendimento dos requisitos até a data atual. • Visualização de subconjuntos de requisitos – Podem ser realizadas ordenações, filtragens ou consultas ao banco de dados para visualizar subconjuntos de requisitos com base nos valores de seus atributos. • Controle de acesso – Conjuntos de permissões de acessos podem ser configuradas e atribuídas a grupos ou a usuários individuais. Acessos podem ser feitos por meio da Internet permitindo o compartilhamento de informações de requisitos a todos os membros da equipe do projeto, mesmo que estes estejam geograficamente distantes. • Comunicação com stakeholders – Alguns recursos de comunicação provêm mecanismos para a discussão entre os membros da equipe e envio de mensagens eletrônicas. Além desses recursos pode-se destacar também, a capacidade de integração com outras ferramentas como, por exemplo, editores de texto, softwares de gestão de projetos e ferramentas de modelagem visual de sistemas. Pode-se citar como exemplos dessas ferramentas, softwares como: Telelogic DOORS/ERS, Rational Requisite Pro e Caliber-RM. 2.4.2 Ferramentas de Apoio ao Planejamento e Monitoramento de Projetos Planejar, acompanhar e controlar projetos exige a utilização de uma série de técnicas e ferramentas. Tal necessidade deu origem a um nicho de mercado de software que atualmente oferece um grande conjunto de ferramentas computacionais destinadas ao auxílio dos gerentes na difícil tarefa de planejamento, acompanhamento e controle de projetos. Algumas características e recursos desses softwares são apresentados por Kerzner (1997) e se aplicam à maioria dos pacotes de software de gestão de projetos – SGP. São elas: 30 • Planejamento, acompanhamento e monitoramento de atividades, recursos e custos. A formatação dos dados, para descrição do projeto no sistema, geralmente é baseado em topologias de rede padrão como Critical Path Method – CPM, Program Evaluation and Review Technique – PERT, ou Precedence Diagram Method – PDM. Os elementos da WBS são catalogados com suas datas estimadas de início e término, os recursos associados a eles, e dados referentes ao seu custo atual, podendo a qualquer momento ser atualizado, propiciando o acompanhamento do progresso do projeto a partir de vários tipos de consultas e relatórios, atendendo às especificações e requisitos de ferramentas e técnicas expostas pelo PMBOK (PMI, 2000) nas diversas áreas da gestão de projetos, principalmente às áreas de gestão e prazo e custos. • Relatórios diversos, tanto textuais como gráficos, podem ser gerados e customizados complementando as funcionalidades expostas no item anterior. Como exemplos de relatórios possíveis, pode-se destacar os seguintes: o Relatório de custos orçados para o trabalho planejado (Planned Value - PV); o Relatório de custos orçados para o trabalho executado (Earned Value - EV); o Relatório de comparação entre gastos planejados e reais; o Análise de Valor Agregado (Earned Value Analysis); o Índices de desempenho de programação e custos; o Relatórios de fluxo de caixa; o Análise de Caminho Crítico; e o Relatórios baseados em padrões governamentais (DoD, DoE, NASA), formatados para sistemas de monitoramento de desempenho (Performance Monitoring Systems – PMS). • Calendário do Projeto, que possibilita ao usuário estabelecer, por exemplo, trabalhos semanais baseados em dias de trabalho reais. Dessa forma, pode especificar períodos de folga, não aplicáveis ao 31 desenvolvimento das atividades, como: finais de semana, feriados e períodos de férias. • Análise What-if, que permite ao usuário alterar dados do projeto em bases de dados duplicadas e executar análises comparativas, tabulares ou gráficas, de forma simplificada, entre o que foi efetivamente planejado e o que se está simulando. • Análise Multiprojetos, que é uma característica de softwares de gestão de projeto mais sofisticados, que oferecem uma estrutura de banco de dados que possibilita a análise e geração de relatórios cruzando informações de projetos. Custos e módulos de programação são compartilhados em bases de dados comuns aos projetos permitindo integração entre eles e minimizando problemas de inconsistência e redundância de dados. Kerzner (1997) apresenta também, que a maioria dos SGPs oferecem recursos extensíveis para o monitoramento e controle de projetos, incluindo o seguinte: • Capacidade do sistema no suporte ao número de atividades e sub-redes; • Esquemas de rede que envolvem diagramas de atividade e precedência de relacionamento; • Calendários de datas com diversas variações e opções de algoritmos; • Gráficos de Gantt ou de barras em escalas de tempo customizáveis; • Gerador de relatórios flexível; • Atualizações automáticas do projeto como um todo, em virtude de alterações; • Controle de Custos incluindo planejamento e acompanhamento; • Datas programadas para início e término de atividades. Os cálculos utilizam essas datas como regras; • Ordenação da lista de atividades conforme especificado pelo usuário; • Alocação de recursos de forma opcional utilizando algoritmos heurísticos; • Possibilidade de plotagem dos diagramas de rede; e • Exigência mínima de memória de hardware para a execução do software. 32 O advento da Internet aliado à necessidade de comunicação entre as equipes do projeto fez com que os fabricantes dessas ferramentas disponibilizassem recursos que possibilitam, por exemplo, o seguinte: • A geração de relatórios que podem ser publicados na Internet; • O acesso remoto a repositórios de informações do projeto por meio da Internet; • A manutenção de informações do projeto por meio de interfaces implementadas para execução em navegadores Web; e • O envio automático de mensagens eletrônicas a membros específicos da equipe de projetos. São exemplos dessas ferramentas, os seguintes softwares: Primavera, Microsoft Project e Project Server. 2.4.3 Ferramentas de Apoio à Comunicação e ao Trabalho Cooperativo As equipes e demais stakeholders de projetos nem sempre se encontram geograficamente próximos. Dependendo do tamanho a empresa, mesmo que o projeto não ultrapasse suas barreiras, existem dificuldades que norteiam a comunicação e o trabalho em grupo. Nicholas (1990), afirma que o sucesso do projeto é caracterizado pela boa comunicação e alta qualidade das informações compartilhadas e trocadas. Durante o desenvolvimento de um projeto ocorrem várias reuniões para revisão e intercâmbio de informações e instruções sobre os objetivos do projeto, status e alterações. Quando o projeto envolve equipes grandes e que estejam geograficamente distribuídos, a realização dessas reuniões é dispendiosa e representa elevados custos para o projeto. Os ambientes de trabalho cooperativo informatizado, conhecidos como sistemas de groupware, oferecem recursos que agilizam o processo de comunicação de projetos, viabilizando o trabalho cooperativo à distância, no qual documentos eletrônicos podem ser intercambiados, reuniões e conferências eletrônicas podem ser realizadas. Yano (1998), citando Ellis, define groupware como sistemas baseados em computadores que suportam grupos de pessoas engajadas numa tarefa ou objetivo comum e provêem uma interface para um ambiente compartilhado. 33 Os usuários desses sistemas podem interagir de duas formas: • Síncrona, na qual existe uma noção de simultaneidade no tempo, pois os eventos gerados por um usuário são imediatamente notificados para outros usuários; e • Assíncrona, cuja interação ocorre por meio de recipientes de eventos. Aqui, os eventos são introduzidos num recipiente, e estes somente são notificados a outros usuários se esses fizerem um acesso ao recipiente. Com relação à localização espacial dos usuários classificam-se as aplicações em remotas ou locais. A diferença básica é que nas aplicações locais ocorre, além da interação por meio do sistema, a interação face a face. A partir de Yano (1998) pode-se montar a Tabela 3 que exibe exemplos de tipos de groupware e também algumas de suas características. Tabela 3: Exemplos de Groupware. Sistema Modo de Interação Mensagens Assíncrono Localização espacial dos usuários Local/Remoto Exemplo específico ou aplicação Conferências Assíncrono Local/Remoto Lista de discussão informatizada Síncrono Remoto Sistemas de geração de idéias cujas Sistemas de envio automático de E-mail por computador Conferência em tempo real mensagens apresentadas precisam imediatamente ser exibidas a todos os membros Co-autoria Assíncrono Local/Remoto Suporta a cooperação entre co-autores de um documento em produção Argumentação Assíncrono Local/Remoto Suporta o desenvolvimento estruturado de negociações e argumentações entre vários participantes Salas de reunião eletrônica Síncrono Local Suporte a sistemas de tomadas de decisão em grupo. Ex. CoLab da XeroxParc 34 Os exemplos de sistemas contidos na Tabela 3, nem sempre se resumem a soluções de software apenas. No caso das salas de reunião eletrônica, equipamentos de vídeo e som específicos são utilizados. Algumas soluções de pacotes de software que podem ser citados como exemplos de groupware são os seguintes: Lotus Notes, ICQ e Microsoft NetMeeting. Algumas empresas desenvolvem suas próprias soluções, como por exemplo, a EMBRAER (Empresa Brasileira de Aeronáutica S.A.), que desenvolveu um portal contendo diversas ferramentas que possibilitam o trabalho cooperativo com seus parceiros de projetos. Maiores detalhes sobre esse portal são fornecidos na Seção 2.3. Como pode ser visto, ferramentas para trabalho cooperativo podem ser utilizadas tanto na gestão como no design de projetos . 2.4.4 Ferramentas de Apoio à Gestão Empresarial A importância dessas ferramentas para o processo de gestão de projetos está relacionada ao fato de que elas podem ser fortes aliadas dos gerentes na obtenção de informações referentes, principalmente, aos custos realizados no projeto até uma determinada data. Essa categoria de software, também conhecida como ERP (Enterprise Resource Planning), implementa funcionalidades que visam auxiliar empresas na execução de suas tarefas diárias, como por exemplo: vendas, estoque, faturamento, contas a pagar e a receber, contabilidade e controle bancário. Esses sistemas, em geral, são caros e exigem grandes mudanças na empresa. A plataforma de negócio é largamente afetada pois os requisitos em termos de processamento e armazenamento aumentam de forma considerável. Esses sistemas em geral são parametrizados (configurados) para uma empresa específica. Além disso, para operacionalizar as transações e garantir sua consistência, uma grande quantidade de dados é demandada. Isso acarreta em uma explosão de necessidade em termos de tabelas utilizadas para essas configurações e realização de transações. Esses sistemas tentam eliminar os chamados “feudos departamentais” e substituir por uma visão mais integrada, única e racional da empresa. Para isso, uma instalação e uma plataforma técnica servindo todos os processos e níveis são requeridos. Ilhas de automatização são conectadas em sistemas de alcance geral que servem todas as funções. 35 Existe uma única cultura, focada no desempenho de negócio, medido nos padrões de desempenho como retorno sobre o patrimônio, preço de estoque, crescimento e fatia de mercado. Essa cultura dá origem a uma nova linhagem de software: business intelligence. No tocante à gestão de projetos, dados podem ser obtidos dos módulos financeiros, mais especificamente, o de contas a pagar e contabilidade, e serem registrados nos sistemas de gestão de projetos visando o levantamento dos custos reais do projeto. Laudon (2000) apresenta maiores informações a respeitos dessas ferramentas. Como exemplos desses pacotes de softwares, pode-se citar os seguintes: SAP/R3, Oracle Financial, Datasul e Microsiga. 2.4.5 Ferramentas de Apoio ao Controle de Versões e Gerência de Configuração Esse conjunto de ferramentas é aplicável ao processo de gestão de projetos em dois âmbitos: o controle efetivo de versões dos diversos documentos eletrônicos gerados nos processos de planejamento e controle de projetos e análise antecipada do impacto de mudanças feitas em elementos do projeto. As ferramentas destinadas ao controle de versões de documentos geralmente permitem a criação de repositórios centrais que abrigam e controlam a utilização dos documentos catalogados com base nas permissões atribuídas aos usuários. Quando alguém deseja fazer uma alteração num documento, ele deve possuir direitos de acesso a esse documento e solicitar à ferramenta o direito de escrita (check out) no mesmo. Ao término da edição, a transação deve ser concluída com um comando de “devolução” do documento ao repositório (check in). Neste instante o usuário pode registrar um breve relato das alterações que foram feitas complementando o registro de histórico de alterações do documento em questão. Análises comparativas podem ser feitas entre versões diferentes de um mesmo documento, de tal forma que são apresentados, em destaque, os trechos que foram alterados. Ferramentas destinadas ao controle de configuração, de certa forma estendem, as de controle de versão comentadas anteriormente provendo mecanismos de auxílio aos membros da equipe e stakeholders do projeto quanto à colaboração na análise de propostas e aprovação de mudanças. Existem recursos que possibilitam o trabalho por meio da Internet possibilitando a colaboração de membros e stakeholders que por ventura encontram-se geograficamente distantes. Segundo a Rational (RATIONAL, 2002a), com ferramentas desse 36 tipo, as equipes e stakeholders do projeto podem avaliar requisitos, determinar seu impacto no projeto e, quando aplicável, validar as alterações. Alguns exemplos dessas ferramentas incluem softwares como os seguintes: Rational ClearCase, Rational ClearQuest e Telelogic CM Synergy. 2.5 Resumo do Capítulo e Alguns Comentários Neste capítulo foram expostos os principais conceitos da gestão de projetos, definidos pelo PMBOK (PMI, 2000) e por outros autores. A gestão de projetos de larga escala envolvendo parceiras é discutida apresentando o exemplo da EMBRAER, uma empresa do setor aeronáutico que possui, dentre outros, o Programa EMBRAER 170/190 que envolve projetos para o lançamento de quatro aeronaves comerciais, e para isso, conta com o apoio de vários parceiros espalhados pelo mundo. Frente à necessidade de viabilizar o desenvolvimento de projetos de forma integrada com os parceiros, a EMBRAER concebeu uma solução baseada num Portal Web, dotado de algumas funcionalidades de ambiente cooperativo, que é acessado pelos parceiros a partir de uma rede privada de computadores. Uma desvantagem dessa solução é a exigência de retrabalho, principalmente por parte dos parceiros, que controlam internamente o projeto dos componentes que lhes foram delegados e necessitam redigitar informações para que a EMBRAER faça a consolidação das mesmas e consiga realizar a gestão dos projetos de forma eficaz. Além disso, foram citadas e comentadas, as características básicas das diversas ferramentas computacionais utilizadas pelos profissionais da área de gestão de projetos no auxilio ao desenvolvimento de suas atividades. Como principal resultado das investigações que propiciaram os relatos presentes nesse capítulo cita-se a obtenção do embasamento necessário para realizar a especificação de requisitos a serem contemplados no modelo de interoperabilidade computacional para a gestão de projetos em parceria. Este capítulo abordou o domínio do problema endereçado neste trabalho. O próximo capítulo apresenta a tecnologia de serviços Web que foi investigada como alternativa para a implementação da solução proposta, que é detalhada no Capítulo IV. 37 3 Capítulo III O Software Como Serviço Este capítulo apresenta conceitos relacionados com sistemas distribuídos, padrões e tecnologias utilizadas na construção de unidades de programas capazes de serem acessadas remotamente por meio de uma rede de computadores. Essas unidades de programas são conhecidas como “serviços Web” e provêem uma forma eficiente de possibilitar o acesso remoto a funcionalidades de software, propiciando a interoperabilidade de sistemas concebidos a partir de plataformas distintas. São apresentadas as tecnologias de suporte a serviços Web, uma proposta de arquitetura de software orientada a serviços, especificações existentes e em desenvolvimento, detalhes sobre desempenho e conceitos relacionados com a implementação desses serviços. 3.1 Sistemas Distribuídos e os Serviços Web Segundo McCart e Cassady-Dorion (1998), um sistema distribuído é composto de nós que executam computações. Ou seja, são unidades de computação como microcomputadores, mainframe ou dispositivos portáteis capazes de conectarem à rede e processar informações. No termo “sistemas de objetos distribuídos” a palavra “distribuídos” conota separação ou dispersão geográfica e a palavra “objetos” representa unidades de software que encapsulam dados e comportamento. Objetos situados fora do sistema local são conhecidos como objetos remotos. Sistemas que apresentam tais características são denominados sistemas de objetos distribuídos, constituindo o resultado do casamento de duas tecnologias: redes e programação orientada a objetos. Nas fronteiras lógicas dos nós de um sistema distribuído encontram-se as interfaces. Elas são as partes da arquitetura do sistema que estão expostas na rede e é a partir delas que os nós interagem. É claro que para que essa interação aconteça é necessário definir 38 padrões. Interfaces padronizadas promovem interoperabilidade que é a habilidade de componentes de software trabalharem juntos. Atualmente, várias organizações estão empenhadas na definição de padrões que visam viabilizar a integração de sistemas. A Figura 10 ilustra a estrutura física de um sistema distribuído de fraco acoplamento na Internet. Pode-se citar, como exemplo, o cenário de uma multinacional com um mainframe em sua sede e com microcomputadores, laptops e PDAs espalhados pelas regiões onde possui filiais, no caso Brasil, Estados Unidos e Alemanha. Os nós desse sistema utilizam tanto conexões privadas quanto conexões seguras por meio da Internet, para a realização de eventuais processamentos que dependam de informações residentes nos demais nós e/ou que atualizem informações nestes. O termo “fraco acoplamento” indica que não existe uma dependência total das partes que compõem o sistema, ou seja, elas são capazes de processar e armezar informações localmente e, apenas quando necessário, elas comunicam entre sí trocando dados e realizando processamentos. Figura 10: Exemplo de Sistema Distribuído 39 As tecnologias de objetos distribuídos visam a “transparência de localização” tornando mais fácil o acesso e utilização de objetos num nó remoto, como se este estivesse no nó local. A transparência de localização envolve as seguintes funções: • Localização e carga de classes de objetos remotos; • Localização e referência a objetos remotos; • Invocação remota de métodos incluindo passagem de objetos como parâmetros e o retorno de valores; e • Notificação de falhas de rede e outros problemas. Como exemplos de tecnologias de objetos distribuídos pode-se citar: o Java Remote Method Invocation (RMI) da Sun; o Distributed Component Object Model (DCOM) da Microsoft; a Common Object Request Broker Architecture (CORBA) da Object Management Group – OMG; e o Voyager da ObjectSpace, que é um pacote de classes capaz de criar e controlar agentes de software (objetos móveis) baseados em Java. Maiores detalhes sobre essas tecnologias podem ser obtidos em (McCARTY, 1998). Vawter e Ronam (2001) classificam os serviços Web como a nova geração da computação distribuída. Eles representam uma forma, diga-se “mais fácil” de implementar a interoperabilidade em sistemas de objetos distribuídos, baseada principalmente em tecnologias como XML (eXtensible Markup Language) e HTTP (Hipertext Transfer Protocol). Myron et all (2000), citando o IEEE (Institute of Electrical and Electronic Engineers), apresenta o termo interoperabilidade, sob a perspectiva tecnológica, como sendo a habilidade de dois ou mais sistemas trocarem informações, e mutuamente utilizarem as informações que foram trocadas. Outras definições apresentadas por Myron et al, citando o NIST (National Institute of Standards and Technology), o Arm Science Board e o DoD (US Department of Defense), são semelhantes. Costa (2002), diz que as tecnologias apontadas anteriormente (RMI, DCOM e CORBA) tiveram a mesma intenção funcional, isto é, propiciar o desenvolvimento de software de tal forma que utilizem componentes remotos como se estivessem acessíveis localmente. Além de problemas de tratamento de parâmetros e atributos, tecnologias como CORBA e DCOM, por exemplo, possuem uma série de limitações, apresentam certa complexidade, ambigüidade semântica e exigem um considerável esforço de desenvolvimento. Como os serviços Web são baseados em XML e esta, por sua vez, é 40 baseada em texto e é uma linguagem-padrão, a arquitetura de serviços Web pode ser considerada de RPC (Remote Procedure Call) nos mesmos moldes de DCOM, CORBA e RMI, porém com melhorias significativas em interoperabilidade e facilidade de desenvolvimento. Uma das vantagens de serviços Web sobre CORBA é que eles não exigem a utilização explícita de um ORB (Object Request Broker). Conceitualmente, existe uma espécie de ORB para os serviços Web, porém, este já vem incorporado nas versões mais recentes dos servidores de aplicação que suportam serviços Web como, por exemplo, o WebSphere 5.0 da IBM, o BES da Borland e o WebLogic da BEA. Costa (2002) afirma também, que a tecnologia de serviços Web não substitui as tecnologias de objetos distribuídos existentes. Se usadas corretamente, essas tecnologias se complementam e não competem entre si, pois têm paradigmas diferentes. Serviços Web não são objetos no sentido formal e clássico de orientação a objetos, o que não significa que não seja possível mapear objetos distribuídos neles. O modelo de sistemas de objetos distribuídos deve ser construído tendo em mente que alguns dos objetos distribuídos serão serviços Web chamados de Objetos de Serviço, que delegarão suas funções a outros objetos que os sustentam. A idéia fundamental deve ser a de que os objetos distribuídos são os blocos essenciais de construção de serviços escaláveis e de alta disponibilidade numa empresa, e que serviços Web são os pontos de acesso à utilização desses serviços, que permitem seu compartilhamento com sistemas internos de outras empresas. 3.2 Conceituação de Serviços Web “Serviços Web são componentes de software com baixo fator de acoplamento, utilizados por meio de padrões de tecnologia da Internet. Um serviço Web representa uma função de negócio ou um serviço que pode ser acessado por uma outra aplicação, sobre redes públicas e, geralmente, disponibilizado por protocolos conhecidos” (COSTA, 2002). Num aspecto mais técnico, os serviços Web expõem a funcionalidade do negócio por meio da rede, incluindo a Internet (IONA, 2002a). Pode-se expandir essa definição a partir de dois pontos: • Exposição dos serviços do negócio, que envolve: o A identificação ou definição dos valores das funções ou processos comerciais; 41 o A definição de interfaces baseada em serviços para tais processos; e o A descrição daquelas interfaces num formato adequado para a Web. • Disponibilizar os serviços de negócio por meio de uma rede de computadores, envolvendo o seguinte: o A publicação da interface de serviços a fim de que ela possa ser descoberta e utilizada por clientes e parceiros; o A aceitação de solicitações e envio de respostas, utilizando-se os padrões e mensagens XML; e o Estabelecimento da ligação entre as solicitações externas (basicamente de fora da “linha guarda-fogo” (firewall), utilizandose protocolos da Web) e a implementação das funções comerciais (dentro da ”linha guarda-fogo” (firewall), utilizando-se protocolos padrões e de propriedade da empresa). Costa (2002) apresenta dois grandes casos que devem ser considerados quando da utilização das tecnologias de serviços Web: serviços Web intraWebs (protegidos por um firewall) e serviços Web interWebs (acessíveis via Internet). Segundo a IONA Technologies (2002b), dentro do contexto de serviços Web, as empresas precisam ser capazes de realizar o seguinte: • Publicar a descrição de seus serviços e dados comerciais, do mesmo modo que atualmente publicam as páginas HTML, de forma que as outras empresas possam encontrar e usá-las; • Buscar e encontrar as descrições dos serviços, publicadas por outras empresas, sejam parceiras ou aquelas com as quais elas desejariam se comunicar; e • Interagir com os serviços publicados e implementados por outras empresas, e permitir que estas interajam com seus serviços, conforme acordos comerciais e parcerias. A Figura 11 ilustra os papéis, operações básicas e os principais elementos pertencentes ao contexto dos serviços Web. 42 Figura 11: Papéis e Operações no Contexto dos Serviço Web. O provedor expõe funcionalidades de seus sistemas, na forma de serviços Web, publicando descrições dos mesmos internamente e/ou num divulgador. O Consumidor realiza uma busca pelas descrições desses serviços e ao obtê-las, ele consegue implementar unidades de sofware capazes de interagir com os sistemas do provedor. O papel de divulgador geralmente é exercido por organizações que disponibilizam repositórios e portais que permitem aos provedores registrarem informações sobre seus negócios e seus serviços Web, e aos consumidores, consultarem e obterem tais informações. Como exemplos de divulgadores pode-se citar: a IBM, e a Microsoft. Os serviços Web representam uma forma consideravelmente simples e eficiente de se promover a integração de sistemas, seja entre sistemas existentes dentro das fronteiras da organização, seja entre sistemas existentes em organizações distintas. Uma série de empresas como Microsoft, IBM, IONA, BEA e Oracle oferecem soluções para implementação de serviços Web e em alguns casos, se unem para definir padrões, uma exigência da integração de sistemas. Essas empresas apóiam seus produtos em duas plataformas de desenvolvimento de software. De um lado, e sozinha, a Microsoft que aposta na .NET, e do outro, as demais, que baseiam sua solução na plataforma J2EE (Java To Enterprise Edition) da Sun Microsystems. 43 Detalhes sobre o desenvolvimento de serviços Web nessas duas plataformas são abordados nas Seções 3.8, 3.9 e 3.10. 3.3 Tecnologias de Suporte aos Serviços Web Pela própria proposta dos serviços Web, percebe-se que seu desenvolvimento exige a utilização de diversas tecnologias no sentido de se implementar mecanismos que possibilitem as operações de publicação e procura, bem como a interação de sistemas por meio deles. Porém, as principais tecnologias diretamente relacionadas com serviços Web são as seguintes: • XML, incluindo esquemas (schemas), analisadores gramaticais e ferramentas de transformação XML (parsers); • Protocolo SOAP (Simple Object Access Protocol), que é a utilização específica do XML como um protocolo de comunicação aplicação-paraaplicação; • Linguagem WSDL (Web Service Description Language), um formato específico do Esquema XML para descrever as mensagens dos serviços Web, operações e mapeamentos de protocolo; e • UDDI (Universal Description, Discovery and Integration), padrão utilizado para implementar repositórios para arquivamento e busca de descrições dos serviços Web. A Figura 12 exibe a estrutura básica de serviços Web, exemplificando a alocação dessas tecnologias nos elementos mostrados na Figura 11. Vale salientar que XML não aparece explicitamente, pois ela é utilizada para implementar outras, como a WSDL e o SOAP, por exemplo. Outros elementos como ebXML, BizTalk e o contêiner dos serviços Web são devidamente comentados em seções específicas deste trabalho. 44 Figura 12: Estrutura Básica dos Serviços Web. A tecnologia dos serviços Web utiliza o padrão XML e outros para expor funcionalidades, implementadas em softwares, na Web. Os serviços Web são descritos em documentos WSDL, que são referenciados e/ou armazenados em repositórios UDDI geralmente providos por empresas que desempenham o papel de divulgadores. Nada impede que documentos WSDL possam ser obtidos diretamente de provedores, pois a função dos divulgadores é simplesmente facilitar a descoberta do serviço. Quando um consumidor descobre o serviço Web, ele implementa a porção consumidora que é capaz de invocá-lo por meio da rede, enviando mensagens SOAP sobre o protocolo HTTP ou HTTPS (a forma segura do protocolo HTTP). Essas mensagens combinam com a descrição WSDL, geralmente obtida a partir do servidor UDDI de um divulgador, ou diretamente do provedor. A utilização dos protocolos HTTP ou HTTPS, para transporte, permite às invocações das aplicações consumidoras transporem dispositivos de segurança de redes conhecidos como Firewalls. As principais tecnologias relacionadas com serviços Web são detalhadas nas subseções a seguir. 45 3.3.1 A Linguagem de Marcação Estendida - XML XML é uma linguagem de marcação extensível, similar a HTML. A principal diferença entre elas é que enquanto HTML se aplica à apresentação das informações, a XML se aplica à definição delas, sendo então utilizada para descrever estruturas de dados. Enquanto a HTML possui tags prédefinidas, a XML não, permitindo ao desenvolvedor definir suas próprias tags que especificam elementos de dados. A estrutura básica de um documento XML é composta por elementos, atributos e valores associados a esses atributos e elementos. Na Figura 13 apresenta-se um exemplo de documento XML que, na parte superior exibe o documento e na parte inferior detalha este mesmo documento evidenciando os componentes de sua estrutura básica que é formada por elementos, valores de elementos, atributos de elementos e valores de atributos de elementos. Figura 13: Exemplo de um Documento XML Evidenciando sua Estrutura Básica. 46 Este documento pode, por exemplo, ser aplicado na integração de sistemas de gestão de projetos, uma vez que sua estrutura foi definida de forma a propiciar a comunicação do desempenho de um elemento da WBS definido pela empresa líder do projeto, cuja execução foi delegada a uma empresa parceira do projeto. A XML foi apresentada pela primeira vez pelo W3C (World Wide Web Consortium) em 1998 e tem sido largamente adotada como formato independente de representação de dados, o que representa uma boa alternativa para criação de arquivos de configuração, intercâmbio de dados, transações B2B incluindo a representação de chamadas para objetos distribuídos por meio do SOAP, que é uma aplicação de XML. Dentre as vantagens da XML pode-se destacar que ela é de fácil leitura, fácil transformação, extensível e adaptável. Além disso, pode ser definida uma gramática por meio de um DTD (Document Type Definition) ou de um XSD (XML Schema Definition) para forçar o uso de uma sintaxe específica. Tais características transformam a XML numa das principais tecnologias utilizadas para a construção de serviços Web. Algo importante sobre a XML é que ela não é usada somente como formato de mensagens, mas também, como o modo pelo qual as próprias mensagens são definidas. Sendo assim, é importante saber um pouco sobre ela, especialmente dentro do contexto dos serviços Web. Documentos DTD e XSD são conhecidos como modelos de conteúdo (content models) que podem ser associados a documentos XML para restringir ou confinar um determinado uso da XML para um fim específico. O XSD é mais flexível e completo que o DTD tendendo a substituí-lo com o tempo. A Figura 14 e a Figura 15, ilustram exemplos de documentos de cada um desses dois modelos. Figura 14: Exemplo de um Documento DTD. 47 Figura 15: Exemplo de Documento XSD. Nota-se nos exemplos de DTD e XSD, apresentados na Figura 14 e na Figura 15, que eles descrevem o documento XML apresentado na Figura 13. Nota-se também que o XSD é mais completo especificando inclusive, o tipo do valor associado a um atributo ou elemento. A XML não produz aplicativos executáveis. Ela é, simplesmente, uma linguagem bastante flexível para representar entidades. Serviços Web são desenvolvidos a partir de componentes de software, como EJB (Enterprise Java Beans), por exemplo, que são mapeados para documentos XML. As chamadas e respostas a esses serviços também são feitas com base em XML. Plataformas de desenvolvimento de software como J2EE e .NET possuem um conjunto de classes que implementam parsers. Os parsers são API’s (Application Program Interface) prontas para o desenvolvimento de programas capazes de transformar documentos XML em objetos e vice-versa. Os principais parsers são o SAX (Simple API for XML Parsing) e o DOM (Document Object Model), cada um apresenta uma forma específica de lidar com os documentos XML mapeando-os para objetos. A flexibilidade de uso da XML “dá asas à imaginação” de vários desenvolvedores, que constantemente estão criando tecnologias baseadas nela. Isso vem exigindo a definição de padrões para que seu uso seja mais eficiente. Um exemplo de inconveniência gerado por essa flexibilidade é, por exemplo, o conflito de nomes de elementos e atributos. Para solucionar isto, foram definidos os XML Namespaces que permitem a qualificação de elementos e 48 atributos por meio do uso de prefixos nos nomes ou de um atributo pré-definido, chamado xmlns. Esse recurso é de grande importância na implementação de serviços Web para se qualificar os elementos e atributos que são mapeados de/para objetos. Uma boa referência à XML e às tecnologias que a cercam, pode ser encontrada em (AHMED,2001 et al) e no sítio Web http://www.w3.org . 3.3.2 O Protocolo de Comunicação SOAP O protocolo SOAP (Simple Object Access Protocol) é uma estrutura de mensagem baseada em XML, projetada especificamente para a troca de dados formatados por meio da Internet (IONA 2002b). Ele provê um protocolo de comunicação abstrato, independente, capaz de conectar dois ou mais portais de empresas ou sistemas remotos. Usando SOAP, empresas podem interagir usando serviços (ou interfaces) que trocam mensagens XML autodescritas. A especificação do SOAP está disponível a partir do sítio Web do W3C (http://www.w3c.org). Ela foi proposta conjuntamente pela Microsoft, IBM e Userland Software em maio de 2000 e basicamente suporta dois formatos de mensagem XML: • Autodescritivo, para troca de documentos no estilo EAI (Enterprise Application Integration) e EDI (Electronic Data Interchange); e • Interações no estilo RPC (Remote Procedure Call), que modelam os métodos de objetos e seus parâmetros. Este protocolo descreve como os tipos de dados, definidos em esquemas XML associados, podem ser serializados, ou enfileirados sobre transmissões HTTP ou outra. As mensagens SOAP consistem de três partes primárias: o envelope, o cabeçalho e o corpo da mensagem. A Figura 16 ilustra essa estrutura que é descrita a seguir. O envelope, identificado pelo elemento envelope, define um pacote para descrever o que contém uma mensagem e como processá-la. Ele basicamente marca o início e o fim da mensagem SOAP, embora as mensagens possam ter links para objetos fora dele. Como pode ser observado na Figura 16, o envelope pode conter um cabeçalho e necessariamente, um corpo. Ele também permite a especificação de um conjunto de regras de codificação em que tanto o provedor quanto o consumidor de serviços Web podem concordar com elas, normalmente por meio do download do mesmo esquema XML que as define. 49 O cabeçalho, identificado pelo elemento header, é opcional e pode ser usado para incluir informações sobre o estilo de interação RPC, se necessário, ou para carregar informações gerais sobre a mensagem, como informação de segurança, endereços para envio da mensagem, se houver, e parâmetros de negociação, como por exemplo, códigos de pagamento. Uma mensagem SOAP pode incluir nenhum ou qualquer número de cabeçalhos. Eles incluem um mecanismo chamado “must understand” (“deve-se entender”), que permite aos provedores e consumidores negociarem acordos ao suporte de um dado cabeçalho ou conjunto de cabeçalhos. Trata-se de um atributo do tipo booleano que aceita os valores true, false, 0 ou 1, e se ele tiver valor true, o receptor da mensagem deve dar suporte ao que foi definido (uma transação por exemplo), caso contrário, a recepção dessa mensagem gerará um erro. O corpo, identificado pelo elemento body, carrega os dados da mensagem ou documento enviado. Ele contém dados formatados como uma estrutura simples, amplamente autodescritiva ou uma interface estilo RPC com nomes de métodos e parâmetros. Elementos da mensagem SOAP são definidos usando-se esquemas e namespaces XML qualificados. Figura 16: Estrutura Básica de uma Mensagem SOAP. A Figura 17 e a Figura 18, mostram um exemplo da definição de mensagens SOAP referentes a um pedido (request) e uma resposta (response) à invocação de um Serviço Web. Nota-se que existe uma diferença entre a estrutura do corpo da mensagem apresentada tanto na Figura 17 quanto na Figura 18, em relação à estrutura do documento exibido na 50 Figura 13. Isto ilustra a flexibilidade da XML para definição de dados, na qual determinados dados, como partnerId, por exemplo, são representados na Figura 13 por atributos de elementos e na Figura 17 e na Figura 18, quando as mensagem estiverem montadas, este dado será representado por um elemento. Figura 17: Exemplo de Definição de uma Mensagem SOAP para Requisição de um Serviço Web. Figura 18: Exemplo de Definição de uma Mensagem SOAP em Resposta à Solicitação de um Serviço Web. 51 Quando a mensagem é montada pelo servidor SOAP, os textos contendo tipos de dados (string, dateTime,decimal) são substituídos por valores efetivos. 3.3.3 A Linguagem de Descrição de Serviços Web – WSDL Em computação distribuída, o problema de como descrever uma interface de um componente em particular e expô-la para que desenvolvedores remotos possam escrever códigos que as acessam persiste, mesmo que em menor escala, desde o início dessa modalidade de computação. O OMG (Object Management Group) solucionou esse problema para a arquitetura de componentes distribuídos, no caso de CORBA, com a definição da IDL (Interface Definition Language) que provê uma linguagem neutra para descrever assinaturas de métodos de um componente, incluindo informações sobre: que parâmetros esses métodos aceitam, que tipo de dados eles retornam e que exceções eles lançam. “A WSDL (Web Service Description Language) é a IDL dos serviços Web” (AHMED, 2001b). Trata-se de uma forma particular de um esquema XML, desenvolvido pela Microsoft e a IBM, que permite descrever serviços Web, incluindo a descrição de como os consumidores podem interagir com eles. Segundo o W3C (WORLD, 2002a) um esquema WSDL cria definições de serviços Web baseadas em seis componentes descritivos que expressam “como” e “onde” uma funcionalidade é ofertada. Os componentes descritivos de um esquema WSDL são os seguintes: • Componente de descrição de tipos (Types); • Componente de descrição de mensagens (Messages); • Componente de descrição de tipos de portas (portTypes); • Componente de descrição de tipos de serviços (serviceTypes); • Componente de descrição de ligações (bindings); e • Componente de descrição de serviços (services). Todo componente de descrição, com exceção do componente de descrição Type exige a definição da propriedade name. O valor dessa propriedade combinado com o valor da propriedade targetNamespace forma um nome qualificado (Qualified Name- QName) que identifica de forma única o componente de descrição dentre os demais, da mesma espécie. Os seis componentes descritivos são descritos a seguir. 52 O componente de descrição de tipos (types) descreve os tipos de dados com os quais o serviço opera. O W3C sugere que utilize sempre os tipos de dados definidos no XML Schema: DataType, uma padronização de nomes de tipos de dados para esquemas XML definida em (WORLD, 2002b), no intuito de aumentar a interoperabilidade entre sistemas que utilizam XML para troca de dados. Um WSDL deve ter no máximo um elemento types. O componente de descrição de mensagens (message) descreve quais mensagens o serviço entende ou pode enviar a outros serviços Web. Um elemento message define logicamente um “tipo” de mensagem que pode ser usado para definir uma mensagem de entrada, saída ou falha associada a uma operação (elemento operation na WSDL) de um componente de descrição portType. Um documento WSDL pode conter zero ou mais elementos de descrição de mensagens. O componente de descrição de tipos de portas (portType) contém uma ou mais descrições de operações (operation) oferecidas pelo serviço. Cada elemento operation deve ser identificado de forma única no documento por meio do atributo name. Opcionalmente, pode-se definir a propriedade documentation de cada operation fornecendo maiores detalhes a respeito da operação que se está definindo. Além disso, um elemento operation pode ter associado uma mensagem de entrada (elemento input), uma mensagem de saída (elemento output) e zero ou mais mensagens de falha (elemento fault), definidas no componente de descrição de mensagens. Existem combinações de mensagens de entrada e saída de operações que geram quatro comportamentos de operações: Input-Output Operations, Input-Only Operations, Output-Input Operations e Output-Only Operations. Parâmetros de entrada e saída podem ser especificados por meio do elemento Part, e o que define se eles são de entrada ou saída é o tipo de mensagem à qual eles estão associados, input ou output. O componente de descrição de tipos de serviços (serviceType) define o agrupamento de um conjunto de elementos portType. Um componente de descrição de serviço (service) refere-se a uma descrição serviceType para indicar a funcionalidade abstrata oferecida pelo serviço. Um componente de descrição serviceType identifica um ou mais componentes de descrição portType por meio de seu atributo QName. O componente de descrição de ligações (binding) provê um framework para tratar detalhes de ligações. Eles são utilizados para indicar como as mensagens devem ser formatadas, quando são enviadas ou recebidas de serviços. Além disso, eles também são utilizados para indicar o protocolo de transporte a ser utilizado na comunicação, que não pode 53 ser mais do que um. Um componente de descrição binding requer que a propriedade type seja preenchida com o QName de um componente de descrição portType. Outro detalhe é que ele contém uma ou mais propriedades ligação que são aplicáveis às operações (operation), definidas no componente portType. O componente de descrição de serviços (service) define um serviço Web como sendo uma coleção de portas. Uma porta se restringe a um portType, incluindo a especificação de endereços (end-points) a partir do qual o serviço está disponível. Além da propriedade name, requerida para se constituir o nome qualificado (QName) do serviço, é requerida especificação do QName de um componente de descrição serviceType. Um componente service contém um ou mais componentes de descrição de porta (port) que requer o seguinte: • Identificação única dentre o grupo de descrições; • Associação de um componente de descrição de ligação (binding) que indica como as mensagens enviadas de/para essa porta devem ser formatadas; e • Especificação de um endereço (end-point) pelo qual as mensagens devem ser enviadas para alcançar operações de um componente portType referenciado num componente binding. Opcionalmente, pode-se atribuir valor à propriedade documentation para se fornecer detalhes a respeito da porta. Um componente service pode conter uma ou mais propriedades de ligação adicionais às propriedades das portas. Conhecidos os componentes do documento WSDL pode-se entender a estrutura completa de um serviço Web. A Figura 19 apresenta um exemplo abstrato de um documento WSDL completo. Antes, porém, as seguintes definições são necessárias: • Os caracteres que sucedem elementos e atributos “?”, “*” e “+” representam a quantidade possível de ocorrências do elemento no documento, sendo respectivamente: “zero ou um”, “zero ou mais” e “um ou mais”; e • Elementos terminando com reticências (“...”) indica que os demais atributos são irrelevantes no contexto do exemplo. 54 Figura 19: Estrutura de um Documento WSDL. 55 Dada a complexidade dos documentos WSDL, em função de seu tamanho e ligação de informação entre os componentes descritivos, os desenvolvedores geralmente utilizam ferramentas para gerá-los a partir dos códigos-fonte produzidos. Ambientes de desenvolvimento de software como o WSAD – WebSphere Application Developer da IBM, o JBuilder Web Service Kit da Borland e o Microsoft Visual Studio .NET possuem esse tipo de ferramenta. Na listagem abaixo apresenta-se o documento WSDL gerado por meio do Microsoft Visual Studio .NET, para o exemplo do serviço Web PerformanceReportWS, que vem sido citado. Nota-se que existe uma diferença na definição dos elementos em relação ao exemplo de documento apresentado na Figura 19, no qual o prefixo wsdl:, constante no modelo, não é apresentado ou foi substituído por s:. Isso é uma questão de namespace, o que não impede o processamento correto do documento. Alguns elementos foram colocados em negrito apenas para destacá-los. <?xml version="1.0" encoding="utf-8" ?> <definitions xmlns:http=http://schemas.xmlsoap.org/wsdl/http/ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/"> <s:element name="getPerformanceInfo"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="partnerID_" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="projectID_" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="wbsItemID_" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="getPerformanceInfoResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="getPerformanceInfoResult" type="s0:PerformanceInfo" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="PerformanceInfo"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="PartnerID" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="ProjectID" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="WBSItemID" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="WBSItemDescr" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="BaseLine" type="s:dateTime" /> <s:element minOccurs="1" maxOccurs="1" name="PlannedValue" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="EarnedValue" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="ActualCost" type="s:decimal" /> </s:sequence> </s:complexType> <s:element name="PerformanceInfo" nillable="true" type="s0:PerformanceInfo" /> </s:schema> </types> 56 <message name="getPerformanceInfoSoapIn"> <part name="parameters" element="s0:getPerformanceInfo" /> </message> <message name="getPerformanceInfoSoapOut"> <part name="parameters" element="s0:getPerformanceInfoResponse" /> </message> <message name="getPerformanceInfoHttpGetIn"> <part name="partnerID_" type="s:string" /> <part name="projectID_" type="s:string" /> <part name="wbsItemID_" type="s:string" /> </message> <message name="getPerformanceInfoHttpGetOut"> <part name="Body" element="s0:PerformanceInfo" /> </message> <message name="getPerformanceInfoHttpPostIn"> <part name="partnerID_" type="s:string" /> <part name="projectID_" type="s:string" /> <part name="wbsItemID_" type="s:string" /> </message> <message name="getPerformanceInfoHttpPostOut"> <part name="Body" element="s0:PerformanceInfo" /> </message> <portType name="PerformanceReportWSSoap"> <operation name="getPerformanceInfo"> <input message="s0:getPerformanceInfoSoapIn" /> <output message="s0:getPerformanceInfoSoapOut" /> </operation> </portType> <portType name="PerformanceReportWSHttpGet"> <operation name="getPerformanceInfo"> <input message="s0:getPerformanceInfoHttpGetIn" /> <output message="s0:getPerformanceInfoHttpGetOut" /> </operation> </portType> <portType name="PerformanceReportWSHttpPost"> <operation name="getPerformanceInfo"> <input message="s0:getPerformanceInfoHttpPostIn" /> <output message="s0:getPerformanceInfoHttpPostOut" /> </operation> </portType> <binding name="PerformanceReportWSSoap" type="s0:PerformanceReportWSSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <operation name="getPerformanceInfo"> <soap:operation soapAction="http://tempuri.org/getPerformanceInfo" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <binding name="PerformanceReportWSHttpGet" type="s0:PerformanceReportWSHttpGet"> <http:binding verb="GET" /> <operation name="getPerformanceInfo"> <http:operation location="/getPerformanceInfo" /> <input> <http:urlEncoded /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> </binding> <binding name="PerformanceReportWSHttpPost" type="s0:PerformanceReportWSHttpPost"> <http:binding verb="POST" /> <operation name="getPerformanceInfo"> <http:operation location="/getPerformanceInfo" /> 57 <input> <mime:content type="application/x-www-form-urlencoded" /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> </binding> <service name="PerformanceReportWS"> <port name="PerformanceReportWSSoap" binding="s0:PerformanceReportWSSoap"> <soap:address location="http://localhost/eProject/PerformanceReportWS.asmx" /> </port> <port name="PerformanceReportWSHttpGet" binding="s0:PerformanceReportWSHttpGet"> <http:address location="http://localhost/eProject/PerformanceReportWS.asmx" /> </port> <port name="PerformanceReportWSHttpPost" binding="s0:PerformanceReportWSHttpPost"> <http:address location="http://localhost/eProject/PerformanceReportWS.asmx" /> </port> </service> </definitions> 3.3.4 O Serviço de Publicação de Serviços Web – UDDI Curbera et al. (2002) citam que a especificação UDDI (Universal Description, Discovery and Integration) provê uma forma independente de plataforma, pois é baseada em XML, de descrever serviços, descobrir negócios e integrar serviços de negócio usando a Internet. Ela é uma iniciativa que foi desenhada para permitir que as organizações realizem transações entre si de maneira mais rápida, fácil e dinâmica, ou seja, que se encontrem e se comuniquem. A UDDI é uma iniciativa das empresas Microsoft, IBM e Ariba cuja especificação completa se encontra no sítio Web http://www.uddi.org. WSDL e UDDI se complementam no sentido que a primeira provê um padrão para descrição de interfaces abstratas e protocolos de ligação (binding protocols) de serviços de rede arbitrários, e a segunda, possibilita a localização dessas descrições e informações a respeito da empresa que as disponibiliza. Costa (2002) aponta que registros UDDI incluem dados com: contatos da empresa, como se comunicar com eles, uma lista de serviços disponíveis e como utilizá-lo por meio de algum tipo de programação. Sendo assim, um serviço de UDDI é um grande catálogo, e em teoria, um desenvolvedor pode procurar nele um serviço Web, descobrir como se conectar a ele e utilizá-lo em sua aplicação. 58 UDDI define serviços em termos de um provedor que é descrito como uma entidade de negócio (businessEntity) que oferece serviços de negócio (businessService) que por sua vez são uma coleção de serviços Web, agrupados para prover um grupo de serviços lógico, como “compras” ou “serviços de informação”, por exemplo. Uma entidade pode oferecer qualquer número de serviços. Os serviços Web são localizados e descritos por meio de modelos de ligação (bindingTemplate) que descrevem onde ele está localizado, e provê informações de como acessá-lo. Informações descritivas sobre todos os tipos de dados chaves do UDDI, como por exemplo, qual o ramo de negócio de uma empresa, que tipo de serviço ela oferece e que interface deveria ser usada para ativar um serviço, são armazenados em objetos meta-dados chamados de Technical Model (tModel), e quando são criados, recebem chaves de identificação únicas. Pode-se afirmar que UDDI é um serviço prestado pelas empresas que o definiram e outras que estão aderindo à idéia. Os provedores de serviços Web devem registrar várias informações cadastrais para serem uma entidade de negócio (business entity) capaz de publicar seus serviços (business services). Isso disponibiliza aos provedores de registro UDDI uma grande base de informações sobre essas empresas, uma vez que esses dados estão hospedados em seus servidores. Várias informações a respeito de UDDI podem ser obtidas a partir dos seguintes sites, que também permitem o acesso e utilização desse serviço: • http://uddi.microsoft.com; • http://www.ibm.com/services/uddi/; e • http://uddi.ariba.com/. A Figura 20 (CURBERA, 2002) ilustra a estrutura de dados referente ao registro UDDI de uma business entity, e os detalhes de como e onde o serviço é acessado e provido por uma ou mais estruturas binding template. Um bindingTemplate especifica um endereço de acesso numa rede (no elemento accessPoint) e um conjunto de tModels que descrevem o serviço. O apontamento para um registro tModel é feito por meio de um atributo chamado tModelKey. 59 Figura 20: Estrutura da Dados de um Registro UDDI de uma businesEntity. A Figura 21 e a Figura 22 mostram um exemplo abstrato de um registro de businessService contendo bindingTemplates que referenciam registros tModel. Figura 21: Exemplo Abstrato de um Registro UDDI de Serviço de Negócio (businessService). Um elemento bindingTemplate é criado para cada ponto de acesso de serviço. O endereço de rede do ponto de acesso é especificado no elemento accessPoint. 60 Um elemento tModelInstanceInfo é criado dentro do elemento bindingTemplate para cada tModel. Figura 22: Exemplo Abstrato de um Registro UDDI tModel A Microsoft criou uma tecnologia denominada DISCO que também possibilita a publicação e descoberta de serviços Web, porém de forma mais simples e limitada que o serviço UDDI. Trata-se de um arquivo XML com a extensão .disco que é alojado num servidor web que também hospeda os serviços Web, nesse caso, o servidor Web IIS da Microsoft. Esta solução tem sido utilizada para serviços Web desenvolvidos na plataforma Microsoft .NET, geralmente, de uso interno nas organizações. Detalhes sobre o DISCO podem ser obtidos em Skonnard (2002) e no sítio Web http://www.msdn.microsoft.com. Segundo Costa (2002), várias questões de qualidade, confiabilidade e dependência não estão formalmente definidas em relação a UDDI. Como exemplo, as seguintes questões permanecem: • Qual a veracidade da informação do registro? • Qual a escalabilidade do serviço? • Quem garante sua qualidade? • Qual o processo de atualização do serviço? • Como é o controle e a comunicação de novas versões para um serviço? • Quem garante a manutenção de versões anteriores? • Como comparar serviços? 61 Atualmente, a utilização de UDDI é definida apenas como um mecanismo de comunicação e só poderá ser um repositório em larga escala, entre as organizações quando essas questões forem resolvidas. Dentro de uma empresa, porém, já é possível usar esse modelo de UDDI como um repositório central para publicar os serviços que estão sendo desenvolvidos. Assim como os documentos WSDL, os documentos de registro de UDDI também podem ser gerados com o auxílio de ferramentas. 3.4 Arquiteturas de Aplicativos e Interação de Serviços Web Em Costa (2002) é apresentada uma proposta de arquitetura para aplicativos orientados a serviço e uma forma de interação entre eles. A arquitetura de aplicações em três camadas representa uma das formas mais lógicas de se organizar componentes. Ela é constituída de uma camada de apresentação ou interface com usuários, uma camada de aplicação ou regras de negócio que implementa os processos referentes ao negócio da organização e por sua vez interagem com a camada de apresentação e com a camada de dados, que é a terceira camada, responsável pela persistência e recuperação de dados de objetos. Numa arquitetura orientada a serviços, nem todos os objetos de negócio são candidatos naturais a se tornarem serviços Web. Sendo assim, é necessário definir quais objetos terão interfaces que serão publicadas como serviços e quais comporão as partes necessárias para prover toda a funcionalidade da aplicação em si. Com base nisso, foi definido um modelo básico em seis camadas, considerado apropriado ao desenvolvimento de aplicativos que visem prover serviços Web. Em alguns casos, o número de camadas pode ser reduzido a quatro. A Figura 23, baseada em Costa (2002), ilustra as duas arquiteturas de aplicativos citadas e o mapeamento de uma para a outra. Os elementos da arquitetura proposta são descritos a seguir. 62 Figura 23: Proposta de Arquitetura para Aplicativos Orientados a Serviço. A Camada de Serviços de Apresentação contempla os diversos componentes diretamente relacionados com as interfaces de usuário. É dependente de dispositivo, uma vez que contém os elementos finais de apresentação. A Camada de Lógicas de Apresentação manipula a apresentação dos elementos visuais que compõem a aplicação, considerando fatores como a ordem desses elementos e a validação das informações pelas regras de negócio (por meio de consulta à camada que contém as regras de negócio). Aqui, são preparadas as informações a serem exibidas de acordo com o dispositivo, como computador pessoal, palm e telefone celular. A Camada de Serviços de Aplicação é uma camada lógica que mantém e disponibiliza o negócio para os usuários. É nela que são alojados os componentes desenvolvidos seguindo os conceitos de serviços Web. Esses componentes podem ser publicados num serviço de UDDI, permitindo sua utilização por outros sistemas. A Camada de Lógicas de Negócio compreende, basicamente, o tratamento das regras de negócio pertinentes à aplicação. Ela representa o núcleo da aplicação, onde as diversas considerações e regras estarão protegidas da intervenção das demais camadas. 63 A Camada de Acesso a Banco de Dados propõe a abstração do acesso aos dados armazenados na camada SGBD pela camada imediatamente superior a essa: a de lógica de negócio. Por fim, a Camada de SGBD refere-se à base de dados em termos físicos, ou seja, é o SGBD (Sistema Gerenciador de Banco de Dados) que armazena os dados que dizem respeito à aplicação. Considerando que os novos aplicativos sejam concebidos com essa arquitetura, cria-se, automaticamente, um conjunto real de possibilidades de integração funcional entre aplicativos que podem ou não estar dentro de uma mesma organização. A Figura 24, também desenvolvida com base em Costa (2002), apresenta como, conceitualmente, dois aplicativos desenvolvidos numa arquitetura orientada a serviços poderiam se comunicar e criar uma interação entre seus processos. Figura 24: Integração de Aplicativos Construídos em Arquiteturas Orientadas a Serviço Com relação à interação de serviços Web, a Sun Microsystems em (SUN, 2002b) classifica os serviços Web em dois tipos: os serviços Web Orientados a Chamada de Procedimento Remoto (RPC) e os serviços Web Orientados a Documentos. Esses dois tipos apresentam modelos de interação e processamento distintos. O Modelo de Interação refere-se 64 à forma como os consumidores geralmente invocam serviços hospedados num servidor, e o Modelo de Processamento de serviços Web refere-se à forma como esses servidores geralmente processam essas solicitações. Esses dois modelos utilizam Tipos de Interação distintas, classificadas em síncronas e assíncronas. A Tabela 4, extraída de (SUN, 2002b) ilustra melhor esses modelos. Tabela 4: Modelos de Serviços Web Serviço Web Orientado a RPC Orientado a Documentos Mensagens (ou Modelo de Interação RPC RPC com XML atachado) (Negócios) Modelo de Centrado em Processamento Objetos Tipo de Interação Síncrona Centrado em documentos Assíncrona A ausência de linha divisória vertical, entre os elementos da Tabela 4, indica que a divisão entre os modelos e tipos de interação, em função do tipo de orientação do serviço Web não é rígida. Ou seja, existem serviços Web classificados como orientados a RPC que utilizam mensagens como modelo de interação, modelo de processamento centrado em documento e tipo de interação assíncrona. O inverso também é possível. Dessa forma, a Tabela 4 refere-se à maioria dos casos. Os serviços Web centrados em objetos de negócio são caracterizados por uma série de chamadas de métodos. Elas aplicam lógicas de negócio do serviço a um conjunto de objetos de negócio que contêm informações requeridas para se processar a requisição. Um bom exemplo de serviço Web centrado em objetos de negócio seria um serviço Web desenvolvido para a autorização de cartão de crédito. Uma vez que este pode estar fazendo uma chamada remota a um método que processa essa autorização com base nos detalhes do cartão recebidos como parâmetro. O método invocado poderia ter a seguinte assinatura: authorizeCreditCard(CreditCard cardDetails). Percebe-se que esta interação é mais bem implementada com o modelo de interação por RPC e que o tipo de interação deve ser síncrono, uma vez que o operador do sistema, com certeza está aguardando a resposta do sistema remoto contendo a autorização ou rejeição do cartão. O Diagrama de Seqüência da 65 UML (Unified Modeling Language), mostrado na Figura 25 (SUN, 2002b) ilustra essa interação. Figura 25: Interação Síncrona de Serviço Web No caso dos serviços Web centrados em documentos, a lógica do negócio se encontra separada do conteúdo do documento. O serviço recebe um documento XML contendo apenas dados, não explicitando uma ligação com regras de negócio diretamente. Em outras palavras, métodos específicos não são invocados no serviço. Contudo, o serviço Web aplica regras de negócio sobre o documento recebido e o conteúdo desse documento determina o fluxo de processamento. Um serviço Web para agência de viagens é um bom exemplo de serviço Web centrado em documento no qual o serviço recebe um documento XML contendo detalhes de um itinerário de viagem desejado por um cliente (datas, lugares a visitar acomodações preferidas, etc) e processa a requisição de acordo com o conteúdo do documento. Neste caso, cabe a implementação do serviço Web com base no modelo de interação por mensagens, cujo tipo de interação é assíncrono, pois o cliente da agência sabe que sua solicitação ainda será analisada e que seu retorno virá mais tarde, por exemplo, por email. 66 3.5 A Arquitetura Global para Serviços Web em XML – GXA Segundo DeMichilie (2002), em Abril de 2001 a Microsoft e a IBM submeteram um artigo para um workshop sobre serviços Web organizado pelo W3C. Este trabalho, intitulado “Web Service Framework”, define funções específicas que devem ser endereçadas à construção de serviços Web destinados a suportar a integração aplicação-para-aplicação entre organizações com diferentes infra-estruturas e relações de domínios confiáveis. Alguns dos blocos de construção identificados pelo artigo incluem o seguinte: • Segurança – A habilidade de prover certas garantias sobre a origem e o conteúdo de mensagens; • Transações – A habilidade de garantir a integridade de informações em bancos de dados quando estas são acessadas por múltiplos serviços Web; • Coordenação – A habilidade de descrever e definir o fluxo de dados entre múltiplos serviços Web; • Mensagem confiável – A habilidade de garantir que uma mensagem seja recebida por seu recipiente de destino; • Roteamento e referência – A habilidade de especificar a rota de uma mensagem; e • Anexos – A habilidade de incluir dados binários, em adição ao texto de mensagens. Desde que este artigo foi publicado, a Microsoft tem desenvolvido protocolos para endereçar algumas áreas funcionais de serviços Web, algumas vezes com parceiros como a IBM, a BEA e outras organizações que trabalham de forma independente. Assim nasceu a GXA (Global XML Web Services Architecture) que é um conjunto de especificações construídas sobre XML, que representam blocos de construção para a implementação de serviços Web dotados das habilidades mencionadas anteriormente. A arquitetura GXA passa pelas especificações do SOAP, WSDL e UDDI e está dividida em três camadas conceituais comentadas a seguir: • Especificações Básicas de Serviços Web – Camada que envolve as especificações SOAP, WSDL e UDDI de serviços Web; • Módulos SOAP – Conjunto de blocos de construção provido de maneira que é inserido na pilha SOAP de forma a fornecer capacidade de integração em baixo nível entre todos os consumidores do serviço Web. Esses blocos 67 podem ser utilizados individualmente ou em conjunto, garantindo a uniformidade e consistência entre serviços Web; e • Infra-estrutura de protocolos – Trata-se de uma camada que provê funcionalidade fim-a-fim. Esta camada é sensível à definição do hardware que está executando. É esta camada que garante a serialização transacional dos diferentes serviços Web. A GXA apresenta a característica de ser modular, em que, por se tratar de uma extensão da especificação SOAP, ela é capaz de prover funcionalidades monolíticas uniformes fim-a-fim, que combinadas podem fornecer um conjunto de capacidades padronizadas e reutilizáveis entre todos os serviços Web. Várias especificações estão sendo propostas e dentre elas pode-se destacar: a WS-Coordination, a WS-Referral, a WS-Routing, a WS-Security e a WS-Transaction. Essas especificações aliadas às especificações de base aplicáveis a serviços Web constituem a referida arquitetura. A Figura 26, baseada em Demichillie (2002), ilustra a disposição dessas especificações na GXA. Figura 26: A Arquitetura Global de Serviços Web em XML (GXA). O elemento “...”, no grupo de especificações referentes a Módulos SOAP, indica que novas especificações podem surgir. As duas especificações indicadas como “futuro”, na camada de infra-estrutura de protocolos, encontram-se em fase de conclusão. 68 Esta arquitetura é de propósito geral, provendo infra-estrutura para múltiplos propósitos como: B2B, B2C, soluções ponto-a-ponto, dentre outras, não requerendo servidores centralizados ou a administração centralizada de processos. No presente momento, a GXA é mais uma idéia do que uma realidade sobre a qual companhias podem construir sistemas. Para torná-la realidade, a Microsoft e outros parceiros terão de completar as especificações, adaptá-las a padrões e incorporá-las em seus produtos. Nas próximas seções, são descritos os blocos de construção da GXA, apresentados nesta seção. 3.5.1 Segurança em Serviços Web O bloco de construção para prover segurança foi então definido como sendo a WS- Security que inclui os seguintes aspectos: • Criptografia – Prevenindo que mensagens sejam lidas por partes não autorizadas; • Autenticação – garantindo que a identificação de um remetente de mensagens possa ser verificada; e • Assinatura digital – garantindo a integridade de uma mensagem desde o tempo de seu envio até seu recebimento. A WS-Security é uma especificação desenvolvida pela Microsoft, IBM e VeriSign, que descreve como esses conceitos-chave de segurança podem ser implementados em serviços Web e está disponível no pré-lançamento de um produto chamado WSDK (Web Service Development Kit) lançado recentemente pela Microsoft que é um Add-on aplicável ao Microsoft Visual Studio .NET que facilita a implementação de segurança em serviços Web. Esta especificação descreve como tokens de segurança (credenciais de autenticação e informações sobre um membro de um grupo de remetentes) são associados com uma mensagem. Embora a WS-Security não requeira qualquer especificação de tipo de token, ela descreve como codificar dois tipos de credenciais de segurança comuns: certificados X.509 (o tipo de certificado digital usado para assinaturas digitais e criptografia por autoridades de certificação pública como a VeriSign) e bilhetes Kerberos (usados para autenticação no Windows e vários outros sistemas operacionais). 69 Além disso, para anexar credenciais, usuários de serviços Web necessitam de um meio de criptografar o conteúdo de uma mensagem e assiná-la digitalmente para prevenir interferências. Essas funções são descritas por duas especificações do W3C: XML-Encrypt e XML-Signature respectivamente. WS-Security descreve como aplicar essas funções de criptografia e assinatura digital em mensagens SOAP. 3.5.2 Transações em Serviços Web Uma transação é um método de coordenar um conjunto de operações em bancos de dados visando garantir a integridade e consistência dos dados manipulados. O processamento de uma venda, por exemplo, pode disparar processos interdependentes de alteração de banco de dados como: registrar a venda, baixar estoque do produto e debitar valor da venda do crédito do cliente. Este é um exemplo típico de transação em que ou todas ou nenhuma operação deve ser processada a fim de se evitar inconsistências e garantir a integridade do banco de dados. A especificação que se dispõe a criar mecanismos que permitam a implementação do conceito de transações em serviços Web, é a WS-Transaction, que foi desenvolvida pela Microsoft, IBM e BEA e descreve como os serviços Web trabalham juntos para executar transações. 3.5.3 Coordenação de Processos de Serviços Web Linguagens de coordenação permitem a desenvolvedores descrever processos complexos que envolvem coordenação de múltiplos serviços Web e define o fluxo de dados entre eles. A Microsoft e a IBM definiram, cada uma, suas linguagens para coordenação: XLANG e WSFL (Web Service Flow Language) respectivamente. Essas duas companhias, juntamente com a BEA têm desenvolvido uma especificação unificada denominada BPEL4WS (Business Process Execution Language for Web Services) que é a base para a especificação WS-Coordination. 70 A WS-Coordination descreve um framework estensível para prover protocolos que coordenam as ações de operações distribuídas. O framework definido nesta especificação permite a um serviço de aplicação criar um contexto necessário para propagar uma atividade para outros serviços e registrar protocolos de coordenação que operam em ambientes heterogêneos. Enquanto a Microsoft e a IBM suportam BPEL4WS, que ainda não é suportada por outras empresas com diferentes abordagens, a Sun Microsystems, em parceria com a SAP, desenvolveram a WSCI (Web Service Choreography Interface), e a Oracle tem consultado o W3C para iniciar no desenvolvimento de seus padrões. 3.5.4 Mensagens Confiáveis entre Serviços Web Muitos cenários de aplicações requerem algumas garantias de que uma mensagem será entregue, mesmo se uma porção da comunicação estiver temporariamente indisponível. Muitas corporações de tecnologia da informação já planejam utilizar produtos de fila como o MSMQ (Microsoft Message Queuing) ou o IBM MQ Series para implementar essas capacidades em suas aplicações internas. Mas esses produtos não interoperam através de plataformas ou através de firewalls (sem configurações especializadas), não são padronizados, e não são independentes de transporte. Enquanto a IBM e a Microsoft reconhecem que necessitam endereçar mensagens confiáveis, especificações ainda não foram disponibilizadas. Contudo, a Microsoft tem desenvolvido um protocolo de mensagem confiável com base no SOAP, o SOAP Reliable Message Protocol, na última versão do MSMQ. 3.5.5 Roteamento e Referência de Serviços Web Os conceitos de roteamento e referência referem-se a como uma mensagem é enviada de um local para outro, possivelmente através de um ou mais intermediários. A WS-Routing é uma especificação desenvolvida pela Microsoft que descreve como uma mensagem pode especificar que rota irá tomar. Outra especificação, a WS-Referral 71 foi construída sobre a WS-Routing e define um caminho para servidores para descobrir dinamicamente quais intermediários estão presentes e que rotas estão disponíveis entre eles. Além disso, a WS-Referral também pode ser usada para permitir a roteadores de serviços Web executarem balanceamento de carga por meio da alternação entre servidores, dependendo de quais têm recentemente enviado a referência de uma rota, indicando que eles estão disponíveis. Ambas as especificações, WS-Routing e WS-Referral são suportados pela ferramenta WSDK, recentemente disponibilizada pela Microsoft. 3.5.6 Anexos em Mensagens de Serviços Web Os serviços Web, por serem baseados em SOAP e XML, são fundamentalmente baseados em tecnologias de texto. Enquanto a maioria dos dados que os usuários desejam enviar (nomes de clientes, endereços, informações de compras, informações de projetos, etc) são facilmente representadas em texto, algumas informações como imagens, áudio e vídeo, são representadas na forma binária e devem ser transformadas para um formato texto, por meio de um processo conhecido como “codificação Base64”, antes de serem enviadas via SOAP. Ao chegar em seu destino, o texto é convertido novamente para apresentação binária pelo processo inverso. Esta transformação aumenta o tempo de processamento para se enviar e receber mensagens, bem como aumenta o tamanho da respectiva mensagem SOAP. Se for possível anexar dados binários a mensagens SOAP, o processamento adicional poderia ser evitado e o tamanho da mensagem seria reduzido significativamente. A Microsoft desenvolveu o DIME (Direct Internet Message Encapsulation) e a especificação WS-Attachment que descreve como encapsular dados binários numa mensagem e como anexar essas mensagens binárias a uma mensagem SOAP, respectivamente. Em demonstrações, a Microsoft mostrou que com DIME e WS-Attachments mais do dobro do número de imagens, por segundo, podem ser transmitidas via serviços Web (DEMICHILLIE, 2002). Embora DIME e WS-Attachment estão suportados no WSDK da Microsoft e têm sido submetidos ao IETF (Internet Engineering Task Force) para possível padronização, eles foram desenvolvidos pela Microsoft isoladamente. Outras organizações, como a IBM e OASIS (Organization for Advancement of Structured Information Standard), não aderiram ao suporte a DIME e WS-Attachment e estão perseguindo abordagens alternativas. 72 3.6 Desempenho de Serviços Web Desempenho é um problema que ronda o universo dos sistemas distribuídos, e conseqüentemente, dos serviços Web. O número de tecnologias e barreiras existentes entre os provedores e consumidores, aliados às transformações e serializações das informações existentes na execução de um serviço Web requer alguns cuidados e exige alguns esforços dos desenvolvedores na construção de alguns mecanismos que visam amenizar o problema. Foi encontrado em (SHIRAZI, 2003) uma lista interessante, contendo dicas e boas práticas quanto à implementação de serviços Web. Esta lista foi elaborada com base em vários documentos de diversos autores que afirmam que as melhores práticas no desenvolvimento de serviços Web são principalmente as mesmas do desenvolvimento de sistemas distribuídos. Requisitos de qualidade de serviços para serviços Web são, principalmente, os seguintes: • Disponibilidade - Estar sempre pronto para ser invocado; • Acessibilidade - Poder executá-lo “agora”; • Integridade/Confiabilidade – Poder executar sem falhar; • Throughput – Taxa de execução por unidade de tempo; • Latência - Tempo de resposta a uma invocação; • Regularidade – A conformidade com padrões; e • Segurança – Aspectos envolvendo confidencialidade e autenticação. O desempenho de serviços Web é diretamente afetado pelo seguintes fatores: • O tempo de resposta do servidor web e sua disponibilidade; • O tempo de execução de aplicações web (EJB/Servlets em servidores de aplicação web, por exemplo); • O desempenho de Sistemas de Gerenciamento de Bancos de Dados e de Sistemas Legados; • O desempenho da rede; e • O tipo de interação definido para o serviço Web (síncrona ou assíncrona). No caso de serviços Web com modelo de interação baseado em RPC, o uso de comunicações síncronas por meio de uma rede gera uma grande sobrecarga, indiferente do protocolo que se está utilizando. 73 Com base nos fatores apresentados anteriormente, podem ser feitas algumas considerações que visam amenizar o problema de latência dos serviços Web que geralmente é mensurada em segundos. Uma forma de medir o desempenho de serviços Web é por meio da adição de código, que registre o tempo transcorrido na execução do serviço. Quando o transporte apresentar características como lentidão e/ou ausência de garantias, ou o processamento for complexo e/ou demorado, é interessante considerar um modelo assíncrono de mensagens, o que geralmente, conduz a serviços Web mais eficientes. Na análise do desempenho dos serviços Web, é indicado considerar o desempenho global do sistema. Não é recomendável realizar otimizações até conhecer onde estão os gargalos do sistema, ou seja, não assuma que XMLs “inchados” ou limitações de HTTP são um problema até que eles sejam demonstrados na prática. Dependendo da freqüência e características comuns entre as mensagens, a replicação de informações pode apresentar um ganho de desempenho considerável. As repetidas chamadas de clientes SOAP, para acessar servidores, podem sufocar uma rede e degradar o desempenho destes. O uso de cache de dados nos clientes, para evitar chamadas ao servidor, pode amenizar o problema. Porém, é necessário garantir que as informações em cache estejam atualizadas. Vários esquemas de cache podem ser implementados, tanto no cliente quanto no servidor, envolvendo cache de WSDL, resultados de chamadas já realizadas a serviços Web e esquemas de definição, visando o aumento da escalabilidade. No caso de chamadas SOAP transacionais é necessário realizar o cache do estado das sessões dos clientes. A sobrecarga de SOAP inclui, principalmente, a extração do envelope SOAP e a transformação da informação contida em XML. Muitos transformadores XML existentes suportam verificação e conversão de tipos, verificação de boa formação, ou resolução de ambigüidades, tornando-os mais lentos que ótimos. Nesse caso, sugere-se o uso de transformadores XML mais simples, que executam somente as transformações essenciais. Transformadores baseados em DOM (Document Object Model) são mais lentos que aqueles baseados em SAX (Simple API for XML). As solicitações deveriam ter balanceamento de carga, priorizada de acordo com o valor do negócio que elas representam. Cuidados extremos dever ser tomados para garantir que recursos não sejam travados por longos períodos de tempo, causando sérios problemas de escalabilidade. Na implementação de serviços, é recomendável utilizar tipos de dados simples no SOAP como, por exemplo, string, int e float. Cada novo tipo de dado utilizado introduz um 74 serializador para converter o valor XML num valor da plataforma de desenvolvimento e viceversa, o que pode causar problemas de desempenho. A utilização de equipamento de hardware melhores, maiores e mais rápidos, principalmente nos provedores, é também uma forma de aumentar o desempenho dos serviços Web. Mas existe um limite para a escalabilidade de um servidor. A maioria do desempenho de aplicações não é escalável linearmente, com o aumento da capacidade do hardware. Maiores detalhes sobre o desempenho de serviços Web podem ser obtidos a partir de (SHIRAZI, 2003). 3.7 Conceitos no Desenvolvimento de Serviços Web Como mencionado, a arquitetura básica de serviços Web, conta com três componentes básicos: o divulgador de serviços, o provedor de serviços e o consumidor de serviços. Segundo Brittenhan (2001), cada um desses componentes básicos desempenha atividades específicas para cada fase do ciclo de desenvolvimento de serviços Web que são quatro: construção, instalação, execução e gerência. Nas próximas seções são feitas considerações direcionadas apenas aos provedores e consumidores de serviços Web. No caso dos divulgadores, não são feitas considerações devido à sua atuação no processo de desenvolvimento de serviços Web ser passiva. 3.7.1 Fases do Ciclo de Desenvolvimento de Serviços Web Como dito na seção anterior, o ciclo de vida de desenvolvimento de serviços Web possui quatro fases distintas que são ilustradas na Figura 27, construída a partir de Snell (2002a) e Brittenhan (2001). Essas fases são descritas a seguir. Construção (Build) – Esta fase envolve o desenvolvimento e testes da implementação dos serviços, a definição da descrição de suas interfaces e a definição da 75 descrição de sua implementação. A implementação de serviços Web pode envolver o seguinte: • A criação de um novo serviço Web e uma nova aplicação, o que envolve o uso de linguagens de programação e modelos apropriados ao ambiente do provedor do serviço; • A criação de um novo serviço Web a partir de uma aplicação existente, o que envolve a geração de interfaces e empacotadores (wrappers) para expor as funcionalidades desejadas; ou • A composição de um novo serviço Web a partir de outros serviços Web e aplicações já existentes, o que envolve o sequenciamento e arranjo do fluxo de mensagens entre programas de forma direta ou por meio de tecnologias específicas. Os serviços Web utilizados na composição podem existir dentro e fora da empresa e são conhecidos como serviços de fluxo (service flows). Instalação (Deploy) – As atividades associadas a essa fase incluem a publicação das interfaces e definição da implementação do serviço, instalação do código executável do serviço e a eventual integração com sistemas legados. Para serviços Web implementados para aplicações existentes, a instalação pode incluir apenas o wrapper pois a aplicação já está instalada. Para serviços de fluxo, a instalação inclui a customização do gerente de fluxo de trabalho e a execução e monitoramento de novos fluxos por parte do gerente de processos de negócio. Integrações administrativas adicionais no ambiente de execução devem ser executadas para a definição de operações baseadas em autorização e credenciais de serviço e integração com sistemas legados. Execução (Run) – Nesta fase, o serviço Web está totalmente instalado e operando, sendo assim, os consumidores podem encontrar a definição desse serviço e invocar suas operações. Funções de execução incluem ligações estáticas e dinâmicas, serviços de interação como uma função de mensagens SOAP e interações com sistemas legados. Gerenciamento (Management) – Esta fase envolve o gerenciamento e administração de aplicações compostas de serviços Web. Aspectos como segurança, disponibilidade, desempenho e qualidade do serviço (QoS) devem ser todos endereçados aqui. 76 Figura 27: Fases do Ciclo de Desenvolvimento de Serviços Web. 3.7.2 Abordagens para o Desenvolvimento de Serviços Web Esta seção descreve as abordagens utilizadas no ciclo de desenvolvimento de serviços Web para os papéis de provedor e consumidor de serviços. Assume-se que o divulgador já foi desenvolvido e se encontra disponível e operante, portanto não são abordados aspectos de desenvolvimento referentes a este papel. A Tabela 5 fornece uma visão geral dessas abordagens que consideram as fases de desenvolvimento comentadas anteriormente, mais especificamente, as três primeiras: construção, instalação e execução. Tabela 5: Abordagens para Desenvolvimento de Serviços Web. Papel Abordagem de Desenvolvimento Divulgador Nenhuma Provedor Green Field Top Down Bottom Up Meet in the Middle Consumidor Static Binding Build-time Dynamic Binding Runtime Dynamic Binding 77 Segue uma descrição sumária para cada uma das abordagens (cenários) de desenvolvimento de serviços Web, presentes na tabela anterior. Maiores detalhes podem ser obtidos em Snell (2002a) e Brittenhan (2001). Green Field – Neste cenário o desenvolvedor cria, não somente o serviço Web, mas também a funcionalidade, em forma de aplicação, que será exposta como serviço na Web. Bottom Up – Esta abordagem segue a mesma linha da Green Field com a exceção de que a funcionalidade a ser exposta pelo serviço Web já existe. Este é o cenário comum de organizações cujos desenvolvedores estão trabalhando para migrar suas aplicações existentes para a arquitetura de serviços Web. Top Down – Esta abordagem é um pouco diferente. Ela inicia com a descrição de interfaces de serviços Web existentes e trabalha para criar as funcionalidades de aplicação capazes de implementar essas interfaces. Meet in the middle – Este cenário é uma combinação dos cenários Bottom Up e Top Down. Aqui, pode-se ter ambos, uma interface de serviço Web existente (WSDL abstrata) e um código de aplicação existente (classe Java ou objeto COM, por exemplo), e necessita-se utilizar ambos para se criar um serviço Web. Problemas podem surgir, contudo, quando a interface abstrata existente não mapeia claramente várias operações expostas pelo código de implementação. Neste caso deve-se criar uma ponte entre os dois. Static Binding - A ligação estática é feita em tempo de construção para localizar a definição da implementação de um serviço Web que será usado por um consumidor. A definição de implementação do serviço contém uma referência para sua interface, que será usada para gerar o código do service proxy. O service proxy contém uma implementação completa da aplicação cliente que pode ser usada pelo consumidor para invocar operações do serviço Web. Buildtime Dynamic Binding - Esse tipo de ligação é usado quando um consumidor de serviço deseja utilizar um tipo específico de Serviço Web, mas a implementação não é conhecida até sua execução ou ele pode ser alterado em tempo de execução. Runtime Dynamic Binding - Esse tipo de ligação é similar à ligação dinâmica em tempo de construção. Uma interface de serviço é usada para gerar uma interface de service proxy geral que pode ser usada para invocar qualquer implementação de interface de serviço. Esse tipo de ligação é diferente uma vez que a interface do serviço é encontrada em tempo de execução. Tendo encontrado a interface do serviço, o código Proxy é gerado, compilado e então executado. Este tipo de ligação deveria ser, tipicamente, utilizada com uma interface de 78 usuário, porque não é possível para uma interação máquina-a-máquina ser realmente dinâmica. 3.8 Plataformas de Desenvolvimento de Serviços Web Atualmente, as duas principais plataformas de desenvolvimento de software que dão suporte à implementação de serviços Web são a J2EE da Sun Microsystems e a .NET da Microsoft. Elas provêm pacotes e recursos que viabilizam a implementação desse tipo de aplicação e permitem a uma série de empresas desenvolverem ferramentas de auxílio aos desenvolvedores. Empresas como Sun, IBM, Microsoft, Bea, Oracle e Iona estão desenvolvendo e aperfeiçoando seus produtos, apostando no mercado de desenvolvimento de serviços Web. Como dito, de um lado está a Microsoft com o Microsoft Visual Studio .NET, e do outro se encontram as demais, que constroem ferramentas para suporte ao desenvolvimento em J2EE como o WSAD – WebSphere Studio Application Developer da IBM, o XMLBus da Iona e o JBuilder da Borland. Ferramentas desse tipo simplificam, consideravelmente, a implementação de serviços Web. Elas apresentam uma série de assistentes que facilitam a realização de várias atividades do processo de desenvolvimento de serviços Web, expostas anteriormente. O Microsoft .NET Framework apresenta um pacote denominado Services que junto com outros de tratamento de documentos em XML compõem uma API para o desenvolvimento de serviços Web. No caso da plataforma J2EE da Sun, podem ser encontradas bibliotecas equivalentes no Java WSDP – Java Web Service Develop Pack. Mas o suporte à criação de serviços Web vai além dessas tecnologias envolvendo outras como servidores Web, servidores de aplicação e servidores SOAP. A Tabela 6, construída com base em (VAWTER, 2001), apresenta de forma sucinta, as principais tecnologias relacionadas às principais plataformas de desenvolvimento de software que suportam a implementação serviços Web, no caso, Microsoft .NET e J2EE da Sun. 79 Tabela 6: Tecnologias .NET e J2EE para Serviços Web Item .NET J2EE Plataforma Operacional Windows Windows, Unix, Linux, e outras Linguagem de Programação C#, VB.NET, C++ .NET Java CLR – Common Language Interpretador JVM – Java Virtual Machine Runtime Páginas HTML Dinâmicas ASP.NET Servlets/JSP – Java Server Pages Integração Host Integration Server J2EE Connector – J2EE Connector com Sistemas Legados Architecture Componentes .NET Managed Components EJB – Enterprise Java Beans Serviços Web SOAP, WSDL, UDDI SOAP, WSDL, UDDI Acesso a Bancos de Dados ADO.NET JDBC – Java Data Base Connection Vendedores de Middleware Microsoft Vários, aproximadamente 30. 3.9 Serviços Web na Plataforma J2EE Implementar serviços Web em J2EE pode se tornar uma tarefa árdua, dependendo da maneira como se aborda o desenvolvimento e principalmente, das ferramentas que se utiliza. Isso é muito comum no desenvolvimento em Java, em que o desenvolvedor às vezes não conhece todo o framework nem as ferramentas que podem lhe auxiliar, e acaba desenvolvendo, às vezes de forma manual, funcionalidades que já foram implementadas e estão prontas para serem utilizadas. Diante disso, é interessante analisar ferramentas de auxílio à programação e selecionar aquela que melhor se adequa às necessidades do desenvolvedor. O número de tecnologias envolvidas na construção, instalação, execução e gerenciamento de serviços Web é consideravelmente grande e cada uma delas apresenta suas características e dificuldades de uso individuais. As várias tecnologias citadas nesta seção são descritas nas seções posteriores. Um serviço Web em Java pode ter sua implementação baseada numa classe simples (Java Bean) ou até mesmo num EJB (Enterprise Java Beans). Em ambos os casos, o desenvolvedor deverá se preocupar com detalhes de instalação da aplicação num contêiner 80 Web, provido por Servidores de Aplicação que ofereçam suporte a mensagens SOAP, como o WebSphere da IBM, o Web Logic da Bea, o BES (Borland Enterprise Server) da Borland, e soluções gratuitas como o Apache Tomcat em conjunto com o Servidor J2EE da Sun ou JBOSS, por exemplo. A Sun (SUN, 2002a) disponibiliza gratuitamente um pacote de ferramentas intitulado JWSDP (Java Web Service Develop Pack) que é um conjunto de tecnologias que visam simplificar e suportar o desenvolvimento e execução de serviços Web na plataforma J2EE. Várias empresas fornecedoras de servidores de aplicação Web e ferramentas de programação em Java estendem seus produtos, disponibilizando aos desenvolvedores de software, uma série de assistentes que facilitam a utilização do JWSDP para o desenvolvimento de serviços Web. A Figura 28, reproduzida a partir de Vawter e Ronam (2001), ilustra as tecnologias que constituem um ambiente de execução de serviços Web baseado em J2EE. A “camada cliente” refere-se à porção consumidora e o “contêiner de serviços Web” mais os “sistemas back-end” representam a porção provedora. Posteriormente, alguns desses elementos são comentados nas subseções de 3.9.1 a 3.9.5. Camada Cliente Parceiro de Negócios ou outro sistema Applets Tecnologias de Web Services (SOAP, UDDI, WSDL, ebXML) IIOP HTTP HTTP Firewall Servlets Java Server Pages Java Beans/EJB Conectores Contêiner de serviços Web Protocolo Proprietário Repositório de Contexto Sistemas “Back-end” SQL Repositório de Banco Contexto de Dados Protocolo Proprietário Sistemas Existentes Sistemas Legados ERP Tecnologias de Web Services (SOAP, UDDI, WSDL, ebXML) Parceiros de Negócios ou outro sistema Figura 28: Ambiente de Execução de Serviços Web Baseado em J2EE 81 O “contêiner de serviços Web” representa, na verdade, os dois componentes principais de um servidor de aplicações J2EE: o contêiner Web e contêiner EJB. O contêiner Web suporta tecnologias como Java Beans, Servlets e Java Server Pages, enquanto o contêiner EJB suporta componentes Enterprise Java Beans. 3.9.1 O Padrão ebXML Hendricks et al. (2002), citam o ebXML como um padrão de indústria alternativo ao UDDI. Porém, ambos apresentam diferenças quanto a seus escopos. O ebXML é uma iniciativa cujo objetivo consiste em definir um escopo de padrões que indicam como o comércio eletrônico é feito. O UDDI, entretanto, foi inicialmente criado por pessoas que desejavam implementar registros de XML, mas que estavam insatisfeitas com o andamento das atividades do ebXML. O escopo do UDDI não consegue definir todos os protocolos de comércio eletrônico globais, ele se atém, pelo contrário, apenas aos registros XML. Os registros XML baseados em UDDI são projetados para armazenar informações básicas sobre o negócio e um índice de seus serviços Web. Os registros ebXML são projetados para armazenar estas e outras informações adicionais relacionadas aos detalhes comerciais, legais e logísticos de uma empresa. Portanto, o UDDI se destina a expor os serviços Web oferecidos por uma empresa e como eles são usados, o ebXML se destina a descrever o quadro geral: quem, o que, onde, porque e quando uma empresa resolve investir em comércio eletrônico. Aparentemente, os padrões ebXML e UDDI coexistirão durante algum tempo. Os usuários de UDDI dizem que as empresas devem armazenar informações no UDDI Business Registry Central e, em seguida, fazer referência a outra entrada num registro ebXML, caso haja necessidade. Isso permite a interoperabilidade entre os dois padrões. Porém, esses padrões estão sujeitos a constantes alterações, e o UDDI pode crescer em escopo e ser uma alternativa para todos os provedores de ebXML. O ebXML pode superar o suporte existente para UDDI e tornar-se o padrão dominante. 82 3.9.2 Servlets Servlets são utilizadas para estender as capacidades de servidores que hospedam aplicações acessadas via um modelo de programação solicitação-resposta (request-response). Para tais aplicações a tecnologia Java Servlet define classes ServletHTTP específicas. Os pacotes da linguagem Java, javax.servlet e javax.servlet.http, provêem interfaces e classes para a implementação de servlets. Toda servlet deve implementar a interface Servlet que define métodos do ciclo de vida desse tipo de classe. Quando se implementa um serviço genérico, pode-se usar ou estender a classe GenericServlet, provida pela interface de programação de aplicações Java Servlet. A classe HttpServlet provê métodos como doGet e doPost para serviços HTTP específicos. Estes métodos podem ser implementados para atender a solicitações ao servidor Web conforme o método de requisição especificado na página HTML que invoca a Servlet, ou seja, GET ou POST. Caso o desenvolvedor não especifique o método de requisição, o método GET é executado. Uma Servlet é uma classe Java que pode ser invocada a partir de um navegador Web. Dessa forma, ela pode instanciar objetos de outras classes Java hospedadas num servidor e gerar, como saída, conteúdos dinâmicos em HTML. No contexto de serviços Web, os Servlets podem ser utilizados para a implementação de interfaces que podem ser acessadas pelos consumidores para testar o serviço ou utilizá-lo efetivamente. Maiores detalhes sobre essa tecnologia podem ser obtidos em Sun (2002a) e em Hall (2001). 3.9.3 Java Server Pages A tecnologia JSP - Java Server Pages também possibilita a criação de conteúdos Web com componentes estáticos e dinâmicos. O desenvolvedor Web compõe documentos baseados em texto contendo tags HTML, que correspondem à parte estática do documento que será apresentada ao usuário da aplicação, e tags JSP que podem conter trechos de código em Java, representando a porção dinâmica. As tags JSP podem ser estendidas pelos desenvolvedores que podem implementar tags customizadas a partir da tecnologia JSTL (JSP Standard Tag Library). 83 Pode-se dizer que a tecnologia JSP foi desenvolvida para tornar mais fácil e produtiva a produção de Servlets, abstraindo do desenvolvedor Web algumas complexidades dessa tecnologia. O uso da JSTL permite que os documentos desenvolvidos tenham um número bastante reduzido de código Java, restringido-os à implementação das tags customizadas. O servidor Web que suporta JSP, processa o documento, que é um arquivo de extensão “.jsp”, e o converte internamente numa Servlet, em que a porção HTML do documento, mais as tags customizadas são transcritas para código Java e a porção com código Java é mantida. Mais detalhes sobre as tecnologias JSP e JSTL podem ser obtidos em Sun (2002a) e em Hall (2001). 3.9.4 Java Beans e Enterprise Java Beans Como dito, na implementação de serviços Web, as regras de negócio podem ser implementadas a partir de classes Java simples (Java Beans) ou de EJB (Enterprise Java Beans). Java Bean é uma classe de objetos que constitui um aplicativo Java e se este for um aplicativo Web, essa classe é hospedada num contêiner Web, podendo ser instanciada a partir de interfaces desenvolvidas em JSP. Um EJB é, essencialmente, um componente que é criado com base num framework de J2EE. Ele é controlado, e destruído num contêiner EJB que o hospeda. Esse contêiner controla o número de componentes EJB existentes e os recursos que eles utilizam como memória, conexões com bancos de dados e controle de transações, abstraindo do desenvolvedor uma série de aspectos de implementação. Um contêiner EJB é provido por um servidor de aplicações como o WebSphere Application Server da IBM, o WebLogic da BEA, o BES da Borland, e o JBOSS da JBOSS Group. Ele mantém um conjunto de instâncias de EJBs que estão prontas para serem associadas a um cliente. Dessa forma, seu propósito primário é controlar e prover serviços para os EJBs que ele mantém. Os principais serviços oferecidos por um contêiner EJB são os seguintes: 84 • Distribuição via proxies – O contêiner irá gerar um stub no lado cliente e um skeleton no lado servidor, para o EJB. O stub e o skeleton irão utilizar RMI sobre IIOP para comunicarem entre sí; • Gerenciamento do ciclo de vida do EJB – Criação do EJB, gerenciamento de estados e destruição são controlados pelo contêiner, tudo o que o desenvolvedor deve fazer é implementar os métodos apropriados; • Nomes e registro – O contêiner EJB e o servidor irão prover o EJB com acesso a serviços de nomes. Esses serviços são utilizados por clientes locais e remotos para encontrar o EJB e pelo próprio EJB para localizar recursos que ele eventualmente necessite; • Gerenciamento de Transações – O contêiner EJB pode realizar o controle de transações entre objetos permitindo operações de commit e rollback; • Segurança e Controle de Acesso – Diretivas de segurança provêem uma forma do desenvolvedor facilmente delegar a aplicação de segurança no contêiner; • Persistência – Caso seja do interesse do desenvolvedor, EJBs de entidade podem ser gerenciados por mecanismos de persistência do contêiner. Estados podem ser salvos e restaurados sem que o desenvolvedor edite uma única linha de código. Existem três tipos diferentes de EJBs que possuem finalidades distintas, a saber: • EJB de Sessão (Session Bean) – É utilizado para mapear fluxos de processos de negócios. Existem dois sub-tipos de EJB de sessão: stateless e statefull. O subtipo stateless trata cada invocação do cliente a um EJB como uma conexão, já o statefull retém a conexão entre interações sucessivas do cliente; • EJB de Entidade (Entity Bean) – Esse tipo de EJB encapsula persistência de dados num banco de dados, tipicamente uma linha parcial ou completa de informação presente numa tabela de banco de dados. Ele provê serviços automáticos que garantem que a visão orientada a objetos de um dado persistente se mantenha sincronizada a todo instante, com o dado real residente no banco de dados. Como exemplo pode-se citar uma tabela de banco de dados com informações de clientes na qual cada registro mapeia para uma instância de EJB de entidade; 85 • EJB Dirigido a Mensagem (Message-Driven Bean) – São projetados para uso em aplicações com requisitos de comunicação assíncrona consumidoras de mensagens JMS (Java Messaging Services). Ao contrário de Sessions Beans e Entity Beans eles não possuem interfaces publicadas, operando anonimamente no modo stateless. Pode-se afirmar que EJB é comumente utilizado no seguinte: • Em aplicações corporativas e Web, provendo a lógica de negócios que está por trás da camada de apresentação, ou de interface do usuário implementada com o uso de tecnologias como Servlets, JSP ou Java Swing (Interface gráfica no padrão Windows). O uso de EJB nesse tipo de aplicação permite um alto nível de escalabilidade e manutenibilidade; • Aplicações de comércio eletrônico do tipo business-to-business (B2B) possibilitando a integração de sistemas; e • Aplicações de integração corporativa (EAI – Enterprise Application Integration) em que diferentes sistemas existentes numa empresa podem ser integrados. O uso de EJB pode propiciar, principalmente, a abstração de detalhes complexos de implementação bem como a separação das regras de negócio das interfaces com usuários e acesso a dados. Isso se deve ao fato de seu projeto implementar um padrão de projeto de software (Design Pattern) conhecido como MVC (Model View Controller). Detalhes sobre EJBs, incluindo outras tecnologias J2EE, podem ser obtidos em Bond (2002) e em Ahmed (2002). 3.9.5 Conectores J2EE Conectores J2EE representam uma arquitetura que possibilita aos componentes EJB interagirem com sistemas de informação corporativa (EIS -Enterprise Information System) que incluem vários tipos de sistemas: ERP, processamento de transações em mainframes e bancos de dados não relacionais. 86 A arquitetura J2EE Connector visa simplificar a integração de diversos EIS, principalmente com aplicações legadas, não escritas em Java. Ela provê uma solução Java para o problema de conectividade entre vários servidores de aplicação e EIS existentes. Segundo a Sun, pelo uso da arquitetura J2EE Connector, desenvolvedores de EIS não necessitam customizar seus produtos para cada Servidor de Aplicação, e fornecedores de servidores que suportam conectores J2EE não necessitam adicionar códigos customizados para adicionar conectividade para um novo EIS. Detalhes sobre J2EE Connector podem ser obtidos a partir de Sun (2002c, 2002d). 3.10 Serviços Web na Plataforma Microsoft .NET O principal objetivo dos serviços Web é prover a interoperabilidade entre softwares desenvolvidos em tecnologias distintas, podendo estes, estarem dentro de uma mesma organização ou em organizações diferentes. Dessa forma, as tecnologias e padronizações de serviços Web oferecem uma série de mecanismos que possibilitam sistemas heterogêneos trabalharem juntos. Contudo, sempre existem divergências entre as companhias fornecedoras dessas tecnologias, pois cada uma, eventualmente aposta em produtos diferentes para atender às especificações, chegando até mesmo a utilizar padrões alternativos. Newcomer (2002) afirma que as diferenças entre as plataformas .NET e J2EE são mais significativas do que as diferenças de suas abordagens para serviços Web. A filosofia fundamental das plataformas permanece: se o desenvolvedor definiu que sua plataforma é Windows e ele deseja se beneficiar das “facilidades” de uso e produtividade que as ferramentas Microsoft oferecem, a melhor alternativa de tecnologia para desenvolvimento de serviços Web com certeza é a .NET; mas se ele deseja, acima de tudo, independência de plataforma operacional, ele deve considerar o uso de J2EE. De um lado J2EE oferece a independência de plataforma operacional e do outro, a .NET oferece a independência de linguagem, permitindo ao desenvolvedor utilizar linguagens de programação diferentes dentro de um mesmo ambiente de desenvolvimento visual, que é o Microsoft Visual Studio .NET. Pode-se afirmar que desenvolver serviços Web em .NET é consideravelmente mais simples do que em J2EE, pois a ferramenta Microsoft Visual Studio .NET esconde uma série de detalhes e oferece um conjunto muito eficiente de assistentes. Por outro lado, o controle do desenvolvedor sobre o que foi implementado é bem menor. Os ambientes de auxílio ao 87 desenvolvimento de software em J2EE estão melhorando a cada dia, porém, ainda requerem maior conhecimento técnico. A Figura 29, reproduzida a partir de Vawter e Ronam (2001), ilustra as tecnologias e padrões utilizados pela Microsoft para viabilizar serviços Web, e permite inclusive, fazer uma comparação com o ambiente de execução de serviços Web baseado em J2EE, apresentado na Figura 28. Na seqüência, são tecidos alguns comentários, sobre os detalhes mais relevantes desse ambiente. Camada Cliente Parceiro de Negócios ou outro sistema Tecnologias de Web Services (SOAP, UDDI, WSDL, BizTalk) Aplicações Windows Forms HTTP HTTP Firewall ASP .NET .NET Managed Components Host Integration server 2000 Conteiner de Serviços Web Tecnologias de Web Services (SOAP, UDDI, WSDL, BizTalk) Passport .NET SQL Repositório SQLdeServer Contexto 2000 Protocolo Proprietário Tecnologias de Web Services (SOAP, UDDI, WSDL, BizTalk) Sistemas Mainframe Parceiros de Negócios ou outro sistema Sistemas “Back-end” Figura 29: Ambiente de Execução de Serviços Web Baseado na Arquitetura .NET No caso da Microsoft, o contêiner de serviços Web é provido pelo IIS (Internet Information Service), que desempenha o papel de servidor de aplicações Web. Nota-se, na Figura 29, em relação à Figura 28, que dentro do contêiner de serviços Web existem também, três camadas de tecnologias que se destinam, respectivamente, a prover interfaces para o usuário, gerenciar componentes que implementam regras de negócio e possibilitar a integração com sistemas legados e outras tecnologias. ASP.NET é a alternativa Microsoft utilizada para a implementação de interfaces de usuário em aplicações Web, concorrendo com Servlets e JSP da arquitetura J2EE. Os 88 Componentes Gerenciados .NET (.NET Managed Components) “corresponde” aos EJBs e a tecnologia Host Integration Server 2000 se encarrega de fornecer meios de integrar a aplicação, que se está desenvolvendo, a sistemas legados, sendo assim, “correspondente” ao J2EE Connector. A tecnologia Windows Forms representa a alternativa Microsoft às Applets e Aplicações Swing Java, permitindo o desenvolvimento de softwares que podem ser executados fora do ambiente Web. Com relação à tecnologia de banco de dados, soluções baseadas em Microsoft possuem facilidades de conexão ao SQL Server, porém, outros SGBDR podem ser utilizados. O elemento “Passport .NET”, presente na camada de sistemas back-end, é no caso, um serviço de autenticação, residente nos servidores da Microsoft, que pertencente ao produto que ela batizou de Hailstorm. Trata-se de um conjunto de serviços Web, com propósitos específicos, que podem ser utilizados como blocos de construção para a implementação de aplicações, mediante sua contratação. O BizTalk é uma iniciativa da Microsoft que oferece infra-estrutura e recursos para troca de documentos de negócio, baseados em XML, por meio da Web. Ele também propicia a integração de sistemas corporativos como por exemplo: ERPs, e-commerce, e sistemas legados. Maiores detalhes sobre o BizTalk podem ser obtidos em Microsoft (2003a). O HIS (Host Integration Server) 2000 é um produto da Microsoft que visa facilitar a integração de sistemas desenvolvidos em plataformas diferentes incluindo tecnologias relacionadas a sistemas legados hospedados em mainframes. Ele se dispõe a prover integração em três níveis: aplicação; dados e rede. Informações mais detalhadas podem ser obtidas em Microsoft (2003b). Vawter e Ronam (2001) e Newcomer (2002) apresentam maiores detalhes, sob o aspecto comparativo, do desenvolvimento de serviços Web utilizando J2EE e .NET. 3.11 Resumo do Capítulo e Resultados Obtidos Neste capítulo foram apresentados os conceitos básicos e uma descrição das especificações e tecnologias utilizadas na implementação, instalação, descoberta e invocação de serviços Web. 89 Uma proposta de arquitetura de aplicativos orientados a serviço é mostrada em detalhes seguida de algumas questões que representam desafios para o desenvolvimento de serviços Web eficientes, como aspectos de transações, segurança e desempenho. Foram apresentadas as abordagens e cenários, sobre os quais se desenvolve serviços Web, mostrando aos desenvolvedores situados tanto na porção provedora quanto consumidora, os diferentes pontos de partida para a criação, disponibilização e consumo desses serviços. Esses pontos de partida são definidos em função da existência ou não, tanto do serviço Web, quanto de sua implementação, por exemplo, um serviço Web pode ser criado a partir de uma aplicação existente na organização, ou os dois podem ser concebidos juntos. Para cada abordagem apresentada existe um conjunto de passos a serem seguidos, envolvendo: a implementação da aplicação; a definição da interface do serviço; sua publicação num servidor de registros; dentre outras. Atualmente, as duas plataformas de desenvolvimento de software mais utilizadas na implementação de serviços Web são J2EE (Java to Enterprise Edition) e Microsoft .NET. Embora os princípios de serviços Web sejam aplicados da mesma forma nas duas, elas se apóiam em ambientes de execução suportados por produtos distintos. As informações sobre a tecnologia de serviços Web apresentadas neste capítulo propiciam o entendimento de suas capacidades e algumas limitações, fornecendo também, uma visão geral das tecnologias correlatas. Como pôde ser observado, a investigação de serviços Web envolveu a pesquisa de diversos padrões e tecnologias relacionadas, como por exemplo: Internet, Servidores de Aplicações Web, J2EE, .NET Framework, XML e SOAP. Com base nisso, pode-se afirmar que os serviços Web são mais uma conseqüência da existência de uma série de tecnologias do que algo totalmente inédito. Uma questão importante está na utilização de XML e SOAP que propicia o acoplamento de componentes de aplicações por meio da Internet. Devido ao fato da tecnologia de serviços Web ser algo recente, pelo menos durante a fase que foi dedicada à sua investigação, não se pôde obter um conjunto de literatura satisfatório que oferecesse o suporte adequado. Disso decorreu o grande volume de obtenção de informações oriundas da Internet e de artigos técnicos de empresas. No próximo capítulo, os detalhes de uma proposta de solução para a interoperabilidade de SGPs, são apresentados, bem como informações a respeito do processo de desenvolvimento de software que foi utilizado para produzir, de forma sistemática, um conjunto de artefatos que documentam essa solução. 90 4 Capítulo IV Uma Proposta de Solução de Interoperabilidade para a Gestão de Projetos de Larga Escala Envolvendo Empresas Parceiras Este capítulo apresenta o processo de desenvolvimento de software utilizado para se analisar o problema de interoperabilidade na gestão de projetos de larga escala envolvendo empresas parceiras, especificar requisitos e propor um modelo de solução baseado na interoperabilidade de software e uma proposta de solução baseada neste modelo e na tecnologia de serviços Web. Os resultados da aplicação do processo de desenvolvimento de software são apresentados relatando a concepção de documentos que envolvem o seguinte: uma visão do problema endereçado, dos envolvidos ou interessados, e de uma proposta de solução para o mesmo; um plano de gerenciamento de requisitos dessa solução; e as estratégias e ferramentas utilizadas para se especificar requisitos funcionais e não funcionais a serem contemplados na solução e que se aplicam ao modelo de interoperabilidade proposto. 4.1 Utilização de um Processo de Desenvolvimento de Software O modelo de interoperabilidade para softwares de gestão de projetos é descrito na Seção 4.2, porém, com o intuito de formalizar a concepção de uma proposta de solução baseada neste modelo, principalmente em termos de documentação, fornecendo meios para a deste trabalho em iniciativas futuras, foi selecionado e aplicado, um processo de desenvolvimento de software. Com base nas informações constantes em Kruchten (2000) e Quatrani (2000), pode-se afirmar que o Processo Unificado Rational, em inglês, RUP (Rational Unified 91 Process), é um processo de desenvolvimento de software cuja finalidade é viabilizar o sucesso de grandes projetos de software, reduzindo o impacto dos problemas comumente encontrados. Ele possui em sua essência o resultado do trabalho de três metodologistas: Grady Booch, Ivar Jacobson e James Rumbaugh. Como produto, ele é apresentado na forma de um material de referência, no formato HTML, dotado de um mecanismo de busca e um vasto conjunto de modelos de documentos (artefatos) que podem ser utilizados com editores de texto, editores de páginas da Web, e softwares de gestão de projeto. Além desses modelos de documentos existem também modelos de projetos e tutoriais de ferramentas que podem ser utilizadas para auxiliar a execução do processo de desenvolvimento de software. Fazem parte desse conjunto: ferramentas de apoio à gerência de requisitos, modelagem visual e gerência de configuração e mudanças. A aplicação do RUP independe da utilização específica das ferramentas citadas anteriormente, ou seja, pode-se utilizar ferramentas de outros fornecedores para auxiliar a execução das atividades sugeridas pelo processo. Como citado por Kruchten (2000), o RUP implementa o que a Rational chama de “As melhores práticas no desenvolvimento de software”, são as 6 (seis) seguintes: • Desenvolvimento Iterativo e Incremental – Refere-se à análise, projeto e implementação incremental de subconjuntos do sistema no ciclo de vida do projeto de software. A cada iteração, um conjunto de funcionalidades do sistema é planejado, desenvolvido e testado, priorizando os pontos de maior risco. • Gerenciamento de Requisitos – Assegura que se resolva o problema certo construindo o sistema correto por meio de uma abordagem sistemática para extrair, documentar e gerenciar os requisitos. • Uso de Arquiteturas Baseadas em Componentes – Visa a reusabilidade, manutenibilidade e extensibilidade dos diversos elementos que compõem o sistema. Um componente combina dados e funções para atender a um propósito específico, podendo ser desenvolvido ou adquirido de terceiros. • Modelagem Visual utilizando a UML – Auxilia no gerenciamento da complexidade do projeto de software provendo visualizações gráficas da arquitetura do sistema. Serve também como mecanismo de comunicação 92 entre o cliente e a equipe de desenvolvimento do sistema e entre a própria equipe de desenvolvimento. • Verificação Contínua da Qualidade - Visa garantir que os requisitos sejam atendidos, à medida que se desenvolve iterativamente. Aliada ao desenvolvimento iterativo, ela permite eliminar, antecipadamente, inconsistências entre requisitos, projeto e implementação. • Controle e Gerenciamento de Mudanças – Provê espaços de trabalho seguros para cada desenvolvedor, integração automatizada, desenvolvimento paralelo e gerenciamento de construção (build) do produto de software. Possui seu foco em três pontos principais: a coordenação de atividades e artefatos; a coordenação de iterações e releases; e o controle de mudanças no software. Quatrani (2000) e Kruchten (2000) apontam a estruturação do RUP ao longo de 2 (duas) dimensões, a saber: • Tempo – Divisão do ciclo de vida do projeto de desenvolvimento de software em fases e iterações; e • Componentes do processo – produção de um conjunto específico de artefatos pela execução de atividades bem definidas. A estruturação do processo ao longo do tempo envolve a divisão do projeto de software nas 4 (quatro) seguintes fases: • Iniciação – foco na especificação da visão do projeto; • Elaboração – foco no planejamento das atividades e recursos necessários, especificando as características e projetando a arquitetura do software; • Construção – foco na implementação (codificação) dos elementos definidos na arquitetura; e • Transição – foco na entrega e disponibilização do produto de software ao cliente, envolvendo aspectos como implantação e treinamento. A estruturação ao longo da dimensão de componentes do processo inclui as seguintes 6 (seis) macro-atividades, conhecidas como disciplinas: 93 • Modelagem de Negócios – Representa um conjunto de atividades voltadas para o entendimento dos processos de negócio do cliente referentes ao contexto em que se insere o produto do projeto de software para a identificação das capacidades do sistema e necessidades dos usuários; • Requisitos – Representa um conjunto de atividades voltadas para a elaboração da visão do produto do projeto de software juntamente com um conjunto de requisitos funcionais e não funcionais do produto de software a ser desenvolvido; • Análise e Design – Representa um conjunto de atividades voltadas para a definição de uma descrição de “como” será realizada a implementação do produto de software do projeto; • Implementação – Representa um conjunto de atividades voltadas para a produção de códigos-fonte que resultarão num sistema executável; • Teste – Representa um conjunto de atividades voltadas para verificar se o produto do projeto de software possui a qualidade esperada e atende aos requisitos especificados; e • Implantação – Representa um conjunto de atividades voltadas para a entrega e disponibilização do produto do projeto de software ao cliente. As 6 (seis) disciplinas apresentadas anteriormente visam a produção do produto do projeto de software. Mais três disciplinas são definidas oferecendo suporte a essa produção. São elas: • Gerência de Configuração e Mudança – Representa um conjunto de atividades voltadas ao gerenciamento de versão dos artefatos (documentos, modelos e códigos-fonte, por exemplo), produzidos na execução das disciplinas de produção, bem como ao gerenciamento do ambiente de trabalho da equipe de desenvolvimento; • Gerência de Projeto – Representa um conjunto de atividades voltadas para a gestão do projeto de software, tendo como base os conceitos descritos no PMBOK (PMI, 2000); e • Ambiente – Representa um conjunto de atividades voltadas para a personalização do RUP, definindo e aprimorando o processo de desenvolvimento de software da organização que está desenvolvendo o 94 projeto de software, e a preparação do ambiente da mesma para suportar as atividades que serão executadas numa determinada fase. A Figura 30, extraída de Rational (2002b), oferece uma visão geral do processo, mostrando também, a concentração de esforço relativo às disciplinas, que é variável, em cada fase. Nota-se que nas primeiras iterações o foco é mais voltado para requisitos e nas iterações finais a concentração se dá mais na implementação do produto de software. Figura 30: Visão Geral do Processo Unificado Rational O RUP foi desenvolvido para suportar grandes projetos de software, mas existe uma versão para projetos pequenos que pode ser encontrada em sua documentação. Segundo a Rational (2002b), quando se pretende utilizar o RUP, pela primeira vez, não é aconselhável aplicá-lo diretamente a um projeto de software sem antes atentar para atividades da disciplina de ambiente que sugerem a realização de personalizações necessárias, adequando-o à realidade de quem o adota. Maiores detalhes sobre este processo de desenvolvimento de software podem ser obtidos no próprio produto (RATIONAL, 2002b) ou em Kruchten (2000) e Quatrani (2000). Pode-se afirmar que, na elaboração deste trabalho, foi executada uma iteração referente à fase de iniciação, tendo como maior foco, a disciplina de requisitos que, por definição do processo, possui por finalidade: 95 • Estabelecer e manter a concordância com os clientes e outros envolvidos sobre o que o sistema, a ser desenvolvido, deverá fazer; • Oferecer aos desenvolvedores do sistema uma compreensão melhor dos requisitos a serem atendidos; • Delimitar o sistema a ser desenvolvido; • Fornecer uma base para planejar o conteúdo técnico das iterações; • Fornecer uma base para se estimar o custo e o tempo de desenvolvimento do sistema; e • Definir uma interface de usuário para o sistema a ser desenvolvido, focando nas necessidades e metas dos usuários. A execução das atividades da referida disciplina propiciou a produção dos seguintes artefatos: • Documento de Visão que apresenta o problema endereçado, os stakeholders, suas solicitações e a solução tecnológica proposta (Apêndice 1); • Glossário de termos técnicos utilizados na especificação dos requisitos (Apêndice 2); • Plano proposto para o Gerenciamento dos Requisitos (Apêndice 3); • Documento contendo considerações e um levantamento preliminar de requisitos funcionais (Casos de Uso) de serviços Web aplicáveis à gestão de projetos envolvendo empresas parceiras (Apêndice 4); • Documento de Especificações Suplementares que representam um conjunto de requisitos não funcionais para a solução, tais como desempenho e usabilidade (Apêndice 5); e • Relação Analítica de Requisitos, emitida a partir da ferramenta utilizada para o gerenciamento de requisitos (Rational RequisitePro), contendo todos requisitos especificados para a solução tecnológica proposta, agrupados por tipo de requisitos e acompanhados de seus atributos (Apêndice 6). As próximas seções deste capítulo apresentam os resultados obtidos da aplicação do RUP para a análise do problema endereçado neste trabalho e a proposta de uma solução. 96 4.2 Uma Visão do Problema e o Modelo de Solução Proposto Como foi citado no Capítulo II, o estabelecimento de parcerias para o desenvolvimento de produtos ou serviços tem se tornado cada vez mais comum, principalmente quando os riscos e os investimentos para o empreendimento são considerados altos pelos envolvidos. Com relação à gestão de projetos, quando duas ou mais empresas se juntam num esforço comum, e cada uma é responsável por parte deste empreendimento, surge a necessidade de integração dos processos e ferramentas de gestão, de forma a propiciar o planejamento e o acompanhamento integrado do projeto como um todo. As alternativas de software de gestão de projetos disponíveis crescem a cada dia e até então, tem-se constatado que as soluções existentes se proõem a resolver o problema primando pela centralização, como por exemplo, a solução implementada pela EMBRAER, comentada na Seção 2.3. A alternativa de solução proposta neste trabalho prima pela distribuição do processamento e interoperabilidade dos softwares de gestão de projetos utilizados pelas partes envolvidas, sejam eles cópias do mesmo produto ou produtos distintos. Em primeira instância pensa-se na interoperabilide de softwares baseados na mesma metodologia de gestão de projetos, porém, não se descarta a possibilidade de definição, em trabalhos futuros, de uma estensão deste modelo que propicie a interoperabilidade de softwares baseados em metodologias de gestão distintas. O modelo de solução baseado em interoperabilidade parte do princípio de definição e implementação, em softwares de gestão de projetos, de um conjunto componentes e interfaces de software padronizadas que atendam aos requisitos funcionais, em sua maioria referentes a funcionalidades da área de gestão de projetos, e não funcionais, geralmente relacionados a aspectos como segurança, usabilidade e desempenho, que são mais relacionados à implementação. Requisitos funcionais e não funcionais são apresentados nas Seções 4.4 e 4.5. A Figura 31 ilustra o modelo proposto no qual a idéia básica é que essas interfaces possam ser acessadas remotamente para a troca e processamento de dados. Tais operações são controladas pelos componentes que implementam estas interfaces, no caso os “Provedores de Funcionalidades”. Além de prover interfaces e implementar mecanismos que controlam sua utilização, sugere-se a implementação de componentes de acesso a estas mesmas interfaces, 97 no caso pelos componentes intitulados “Consumidores de Funcionalidades”, desta forma, um determinado software de gestão de projetos pode interoperar com outra cópia ou outro software desta mesma categoria, instalado em um local remoto, hora provendo, hora consumindo funcionalidades. Software de Gestão de Projetos Software de Gestão de Projetos B <<comunica> Provedores de Funcionalidades Consumidores de Funcionalidades Interfaces Funcionalidades de Gestão de Projetos Consumidores de Funcionalidades Funciona li dades de Gestão de Projetos <<comunica> Provedores de Funcionalidades Interfaces Figura 31: O Modelo de Interoperabilidade para Softwares de Gestão de Projetos. A ativação da interoperabilidade pode ser realizada por meio de parâmetros de configuração e por meio de dados de elementos de gerenciamento registrados nos softwares, por exemplo, se ao definir elementos de um projeto o usuário associar empresas parceiras e para estas existirem informações associadas que permitam o estabelecimento de comunicação entre os softwares, estes estarão aptos a interoperar. A tecnologia de serviços Web, descrita no Capítulo III, é uma alternativa para implementação de uma solução baseada no modelo proposto. Diante disto, foi elaborada uma instância de solução que a utiliza. Esta proposta de solução é descrita a seguir. O documento de Visão (Apêndice 1) é proposto pelo RUP como um modelo para se definir o problema, os stakeholders e uma proposta de solução. Nele, a definição do problema é apresentada por meio do quadro abaixo: 98 O problema ausência da interoperabilidade de softwares de gestão de projetos, concebidos a partir de tecnologias distintas. Afeta empresas e organizações que desenvolvem projetos de larga escala envolvendo empresas parceiras e contratadas. O seu impacto é existe um grande volume de retrabalho na execução das atividades dos processos de gestão desses projetos, reduzindo sua eficiência. Uma boa solução seria dotar os softwares de gestão de projetos de um conjunto de serviços Web que os permita interoperar por meio da Internet ou de uma intranet, trocando dados e realizando processamentos. Estes serviços Web são aplicações que residirão nas fronteiras das organizações, propiciando a interoperabilidade de softwares concebidos a partir de tecnologias distintas e que se encontram hospedados em locais remotos. A Figura 32 fornece uma visão geral da solução proposta, nomeada como “Serviços Web para a Gestão de Projetos” (Web Services for Project Management - WS4PM). A idéia básica é que SGPs, dotados de porções provedoras e consumidoras de WS4PM, representem potenciais nós de um sistema distribuído de fraco acoplamento que propicie o gerenciamento de projetos relacionados, de forma integrada. Figura 32: WS4PM – Serviços Web para a Gestão de Projetos. A Figura 32 ilustra um cenário em que um determinado usuário do “Software de Gestão de Projetos B”, instalado numa Empresa Parceira de Projeto, ao registrar uma dada informação, dispara uma “aplicação consumidora” que acessa remotamente um serviço Web 99 provido pelo “Software de Gestão de Projetos A”, instalado na Empresa Líder do Projeto. Esse serviço processa as informações, e se for o caso, retorna resultados à Empresa Parceira do Projeto. O inverso pode ocorrer para alguns casos, em que o “Software de Gestão de Projetos A” consume serviços providos pelo “Software de Gestão de Projetos B”. Como citado na Seção 4.1, atividades da disciplina de requisitos do RUP foram executadas para especificar requisitos da solução proposta. A Figura 33 exibe a estratégia utilizada para a especificação dos requisitos funcionais e não funcionais referentes aos WS4PM. Figura 33: Estratégia Utilizada para Especificação de Requisitos dos WS4PM. No Apêndice 6 constam vários requisitos, porém merecem destaque 74 (setenta e quatro), sendo 54 (cinqüenta e quatro) funcionais (identificados com o prefixo UC) e 20 (vinte) não funcionais (identificados com o prefixo SS). Eles são o resultado do detalhamento de requisitos mais abstratos, como os identificados com os prefixos STRQ e FEAT, e representam, respectivamente, o quê a solução tecnológica deve propiciar aos usuários e algumas características desejáveis. A especificação dos requisitos funcionais é comentada na Seção 4.4 e a especificação dos requisitos não funcionais é comentada na Seção 4.5. Um dos requisitos funcionais foi selecionado, e para este, foram executadas as atividades pertencentes às disciplinas de análise e design, implementação e testes obtendo como resultado os protótipos de software de gestão de projetos que são comentados e detalhados no Capítulo V. 100 4.3 Um Plano para o Gerenciamento de Requisitos Segundo o RUP (RATIONAL, 2002), o Plano de Gerenciamento de Requisitos é um artefato da disciplina de requisitos que é desenvolvido pelo analista de sistemas na fase de Iniciação e atualizado nas fases subseqüentes. Sua finalidade é descrever como serão configurados os documentos de requisitos, os tipos de requisitos e seus respectivos atributos e rastreabilidade. Esses quatro elementos formam a base de sustentação da referida disciplina considerando o seguinte: • os documentos de requisitos são definidos para se conhecer quais documentos terão em seu conteúdo textos contendo requisitos; • os tipos de requisitos ajudam na organização e classificação dos requisitos, os atributos auxiliam na qualificação, quantificação, controle e gerenciamento dos requisitos; e • a rastreabilidade auxilia o entendimento da origem dos requisitos e o impacto dos mesmos no sistema em desenvolvimento. Além disso, esse plano descreve a organização (empresa que está desenvolvendo o projeto de software), as responsabilidades e interfaces externas, as ferramentas a serem utilizadas, o ambiente e a infra-estrutura necessária para se realizar a gerência de requisitos. Com base nas informações contidas nesse plano configura-se a ferramenta que será utilizada para auxiliar a gerência de requisitos definindo os elementos básicos citados anteriormente. Para o gerenciamento dos requisitos de WS4PM desenvolveu-se um plano desse tipo, como mostra o Apêndice 3, que pode ser reaproveitado em trabalhos futuros. A Figura 34 ilustra a rastreabilidade de requisitos da solução WS4PM, presente nesse plano, envolvendo os seguintes tipos de requisitos: • STRQ (Stakeholder Request) – solicitações dos stakeholders; • FEAT (Feature) – características ou recursos da solução; • UC (Use Case) – casos de uso (requisitos funcionais); e • SS (Supplementary Specification) – especificações suplementares (requisitos não funcionais). 101 Figura 34: Rastreabilidade de Requisitos dos WS4PM. As solicitações dos envolvidos e interessados (STRQ) são descritas em alto nível, e representam, de forma bastante resumida, o que deve ser endereçado pelos WS4PM a fim de atender as expectativas dos stakeholders. Elas foram definidas a partir do documento de Visão e são rastreadas para as características (FEAT). As características (FEAT) são definidas a partir do detalhamento de itens de solicitações de envolvidos e interessados (STRQ) e a partir de outros requisitos, alguns deles constantes no documento de Visão. Esses recursos são rastreados para casos de uso (UC) e para especificações suplementares (SS). Uma característica (FEAT) pode ser rastreada a partir de zero ou mais casos de uso (UC), ou a partir de zero ou mais especificações suplementares (SS). Os casos de uso (UC) são os requisitos da solução que possivelmente serão implementados e representam algo de valor observável aos usuários. As especificações suplementares (SS) são os requisitos não funcionais dos WS4PM que deverão ser observados e atendidos no ato da implementação. 4.4 Especificação de Requisitos Funcionais Os WS4PM devem ser implementados de forma a atender requisitos funcionais de interoperabilidade para a gestão de projetos que envolvem empresas parceiras. Partindo desse princípio, entrevistas e uma pesquisa de campo, foi realizada na Empresa Brasileira de Aeronáutica S/A. – EMBRAER, possibilitando a elaboração de um documento contendo considerações e um levantamento preliminar de requisitos de interoperabilidade entre parceiros de projeto, representando as solicitações dos principais envolvidos. 102 Foram apontados pela gerência do programa EMBRAER-170/190, seis pontos críticos na gestão dos projetos, explicitando a necessidade da integração dos processos de planejamento e controle envolvendo gestão de requisitos, gestão de configuração e mudanças, gestão de riscos, gestão de custos e gestão da comunicação. Essas premissas e os conhecimentos contidos no PMBOK (PMI, 2000) conduziram a elaboração do referido documento. Foi elaborado um conjunto de fichas que reúnem considerações e um levantamento preliminar de requisitos de serviços que visam a interoperabilidade entre parceiros de projetos. Esses requisitos foram validados pelo Program Officer da EMBRAER e posteriormente analisados e classificados. As fichas elaboradas possuem a seguinte estrutura: • Um identificador; • O nome do processo da gestão de projetos; • A área de conhecimento, da gestão de projetos, a que ele se relaciona (entre parênteses); • Uma breve descrição do processo; • Uma lista dos processos de seu grupo, sobre os quais sua execução interfere diretamente; e • As eventuais considerações e requisitos identificados. Às considerações e requisitos foram atribuídos identificadores, no intuito de facilitar análises posteriores. A Tabela 7, além de propiciar uma visão da abrangência das considerações e requisitos de interoperabilidade especificados, exibe a ordem de apresentação e os identificadores atribuídos aos processos. Os identificadores nas fichas apresentam uma sintaxe baseada na Tabela 7, por exemplo: Ca1.1 é um identificador que representa uma Consideração apontada no grupo de processos “a” (Iniciação), processo “1” (Iniciação) cujo contador é 1. Um exemplo de requisito é Rb1.3 que representa um requisito identificado no grupo de processos “b” (Planejamento), no processo “1” (Definição das Atividades), cujo contador é 3. Na Figura 35 apresenta-se uma das fichas elaboradas, para exemplificar o que foi explicado anteriormente. 103 Tabela 7: Abrangência das Considerações e Requisitos de Interoperabilidade entre Parceiros de Projetos. ID a a1 b b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20 b21 c c1 c2 c3 c4 c5 c6 c7 d d1 d2 d3 d4 d5 d6 d7 d8 e e1 e2 Processo da Gestão de Projeto Processos de Iniciação Processo de Iniciação Processos de Planejamento Planejamento do Escopo Detalhamento do Escopo Definição das Atividades Sequenciamento das Atividades Estimativa de Duração das Atividades Desenvolvimento do Cronograma Planejamento da Gestão de Riscos Planejamento dos Recursos Estimativa dos Custos Orçamentação dos Custos Desenvolvimento do Plano do Projeto Planejamento da Qualidade Planejamento Organizacional Montagem da Equipe Planejamento da Comunicação Identificação dos Riscos Análise Qualitativa dos Riscos Análise Quantitativa dos Riscos Planejamento de Resposta a Riscos Planejamento de Aquisições Preparação das Aquisições Processos de Execução Execução do Plano do Projeto Garantia da Qualidade Desenvolvimento da Equipe Distribuição das Informações Pedido de Propostas Seleção de Fornecedores Administração de Contratos Processos de Controle Relato de Desempenho Controle Integrado de Mudanças Verificação do Escopo Controle de Mudanças do Escopo Controle do Cronograma Controle dos Custos Controle da Qualidade Controle e Monitoração de Riscos Processos de Encerramento Encerramento de Contratos Encerramento Administrativo Área de Conhecimento Gestão do Escopo Gestão de Escopo Gestão de Escopo Gestão de Prazo Gestão de Prazo Gestão de Prazo Gestão de Prazo Gestão de Riscos Gestão de Custos Gestão de Custos Gestão de Custos Gestão da Integração Gestão da Qualidade Gestão de RH Gestão de RH Gestão da Comunicação Gestão de Riscos Gestão de Riscos Gestão de Riscos Gestão de Riscos Gestão de Aquisição Gestão de Aquisição Gestão da Integração Gestão da Qualidade Gestão de RH Gestão da Comunicação Gestão de Aquisição Gestão de Aquisição Gestão de Aquisição Gestão da Comunicação Gestão da Integração Gestão de Escopo Gestão de Escopo Gestão de Prazo Gestão de Custos Gestão da Qualidade Gestão de Riscos Gestão de Aquisição Gestão da Comunicação 104 d1) Relato de desempenho (Gestão da Comunicação) É a coleta e divulgação de informações de desempenho do projeto incluindo relatórios de status, medidas de progresso, e novas estimativas do projeto. Processos do seu grupo sobre os quais interfere diretamente: d2. Cd1.1 – Relatórios de situação (posição com relação ao cronograma e ao orçamento), progresso (percentual de atividades realizadas, em andamento versus completadas) e previsões (predizem o futuro do projeto em termos de situação e andamento) podem ser enviadas de forma automática. Cd1.2 – O valor das variáveis utilizadas nas análises de variação, tendências e valor agregado podem ser encaminhados das Empresas Parceiras para a Empresa Líder do Projeto, para que esta consolide as informações e consiga fazer a Análise de Valor Agregado para projeto como um todo. Rd1.1 – Podem ser necessários serviços que permitam à Empresa Líder do Projeto obter dados de relatórios de situação, progresso e previsões gerados pelas Empresas Parceiras. Rd1.2 – Podem ser necessários serviços que automaticamente, ou não, enviem dados referentes a análises de tendência, variação e valor agregado, das Empresas Parceiras para a Líder do Projeto. Rd1.3 – Podem ser necessários serviços que permitam o registro de requisições de mudanças, mediante a análise de desempenho do projeto. Figura 35 : Exemplo de Ficha Contendo Considerações e Levantamento Inicial de Requisitos. O documento, contendo as fichas citadas anteriormente, foi importado para a ferramenta de auxílio à gerência de requisitos, Rational RequisitePro, que foi configurada conforme informações constantes no Apêndice 3 (Plano de Gerenciamento de Requisitos). Ferramentas como o RequisitePro geralmente implementam uma forma de gerenciamento de requisitos baseada em tipos de documentos, tipos de requisitos e atributos, permitindo a execução de consultas e emissão de relatórios, como o apresentado no Apêndice 6 (Relação Analítica de Requisitos). 105 4.5 Especificação de Requisitos Não Funcionais Os requisitos não funcionais são aqueles referentes a métricas de software, como por exemplo: usabilidade, confiabilidade, desempenho, suportabilidade, restrições de projeto (design) e padrões aplicáveis. Detalhes sobre essas métricas podem ser obtidos em (GRADY, 1992). Além dessas métricas, algumas funcionalidades comuns a vários casos de uso são incluídas nesse conjunto. Pode-se citar como exemplos de requisitos não funcionais a necessidade de se implementar um controle de transações e a especificação de um tempo limite de resposta para um determinado processamento, ou seja, requisitos que não agregam valor direto ao negócio do usuário e que são oriundos de necessidades como segurança, observação a padrões e qualidade do software como produto e como processo. Os requisitos funcionais somados aos requisitos não funcionais formam o conjunto completo de requisitos que um determinado software deve atender. O RUP prevê um artefato para coletar os requisitos não funcionais, também conhecidos como Especificações Suplementares. Foram especificados alguns requisitos não funcionais para os WS4PM que constam no Apêndice 5 (Especificações Suplementares) e, por conseqüência da execução de atividades da disciplina de requisitos do RUP, no Apêndice 6 (Relação Analítica de Requisitos). Esses requisitos foram coletados a partir de entrevistas com os stakeholders e a partir de algumas especificações oriundas, principalmente, do W3C e do WS-I que são consórcios formados por empresas e profissionais que atuam na definição de padrões aplicáveis ao desenvolvimento de serviços Web. Vale salientar que esta especificação apresenta alguns valores para determinados requisitos, como por exemplo, os de desempenho, que ainda necessitam de validações. 4.6 Resumo do Capítulo e Resultados Obtidos Este capítulo apresentou detalhes sobre as atividades realizadas para a análise e proposta de uma solução para a interoperabilidade entre softwares de gestão de projetos utilizados no gerenciamento de projetos de larga escala envolvendo empresas parceiras. A solução proposta sugere a implementação de serviços Web em softwares de gestão de projetos de forma que cada empresa possa publicar aqueles que lhe convém, permitindo que seu software de gestão de projetos interopere com os softwares de gestão de 106 projetos de suas empresas parceiras, independente da tecnologia a partir da qual eles foram concebidos e da distância geográfica existente entre elas. A utilização do RUP, como processo para desenvolvimento de software, formalizou e estruturou a concepção da solução tecnológica, por meio da execução de atividades e utilização de modelos de artefatos pré-definidos. Por meio de investigações sobre definições dos processos de gestão de projetos contidas no PMBOK (PMI, 2000), e de entrevistas realizadas com a equipe do Programa EMBRAER 170/190, que desenvolve projetos de aeronaves contando com a participação de vários parceiros, foi possível especificar e validar um conjunto de requisitos funcionais que representam funcionalidades a serem expostas como serviços Web, auxiliando a gestão de projetos desse tipo. Investigações sobre organizações que desenvolvem especificações para serviços Web, como a W3C e a WS-I, permitiram o levantamento de algumas especificações suplementares para os WS4PM, que representam requisitos não funcionais referentes a aspectos de qualidade de software como usabilidade, confiabilidade e desempenho. A especificação de requisitos funcionais, apresentada na Seção 4.4, tentando abranger as nove áreas de conhecimento da gestão de projetos é, de certa forma volumosa, pois o número de processos e conseqüentemente, de funcionalidades inerentes, é grande. Porém, acredita-se ter especificado um conjunto inicial de requisitos de interoperabilidade para a gestão de projetos de larga escala envolvendo empresas parceiras, que pode ser refinado e estendido. O plano de gerenciamento de requisitos elaborado define a forma como os requisitos da solução proposta podem ser especificados e gerenciados ao longo de todo o processo de seu desenvolvimento. Este plano foi utilizado para configurar a ferramenta auxílio ao gerenciamento de requisitos RequisitePro, propiciando a qualificação e quantificação dos requisitos especificados, bem como a emissão de uma Relação Analítica de Requisitos que se encontra no Apêndice 6. No próximo capítulo apresenta-se os detalhes da implementação de dois protótipos de SGP dotados de WS4PM, desenvolvendo um estudo de caso que propicia a verificação, validação e teste tanto da solução proposta quanto da tecnologia de serviços Web, apresentada no Capítulo III. 107 5 Capítulo V Protótipos de Software de Gestão de Projetos Interoperáveis Neste capítulo apresenta-se a finalidade, as características, os principais detalhes da implementação, o cenário de testes e as tecnologias utilizadas na construção de dois protótipos de software de gestão de projetos que representam produtos de fabricantes distintos, dotados de WS4PM. Estes softwares interoperam, trocando e processando dados de gerenciamento de projetos relacionados, propiciando a verificação, teste e validação do modelo de solução e da tecnologia proposta neste trabalho. Inicialmente são apresentadas a finalidade e as características dos protótipos incluindo os casos de uso implementados. Na seqüência, são apresentadas e comentadas as interfaces de usuário, os detalhes da arquitetura de software, projetada de forma a suportar a exposição de funcionalidades como serviços Web, os detalhes da implementação de programas que representam os serviços e seus consumidores, e por fim, o cenário de testes que propiciou desenvolver um estudo de caso referente à análise de valor agregado envolvendo projetos relacionados, por meio da interoperabilidade de softwares de gestão de projetos. 5.1 Finalidade e Características dos Protótipos Um dos requisitos funcionais (casos de uso), resultantes do trabalho relatado no Capítulo IV, foi selecionado e dois protótipos de software de gestão de projetos foram desenvolvidos a partir de tecnologias distintas para testar e validar a proposta de interoperabilidade entre softwares de gestão de projetos e a viabilidade da utilização da tecnologia de serviços Web como alternativa para sua implementação. Sendo assim, um dos protótipos foi desenvolvido na plataforma J2EE e o outro na plataforma .NET permitindo o 108 desenvolvimento de um estudo de caso que envolve o planejamento e acompanhamento integrado de projetos relacionados, utilizando a técnica de Análise de Valor Agregado. O software desenvolvido na plataforma J2EE é um Aplicativo Web, ou seja, ele é instalado num servidor e suas interfaces de usuário são acessadas via Internet ou intranet com o uso de navegadores Web, como o Internet Explorer e o Netscape. Este aplicativo foi batizado com o nome JavaPMSWeb e está dotado de serviços Web que propiciam a interoperabilidade com outras cópias suas e com outros softwares desenvolvidos a partir de outras tecnologias. Dentre as funcionalidades implementadas no JavaPMSWeb, destacam-se as seguintes: • O cadastro de empresas parceiras de projetos da empresa usuária do software, que podem representar para ela, tanto líderes de projetos quanto parceiras de projeto; • A definição de projetos, em termos de Project Charter, permitindo sua eventual associação a projetos de uma empresa parceira. Neste caso, o projeto em questão refere-se ao projeto de um componente do produto de um projeto de larga escala cuja empresa parceira especificada é a líder; • A definição do escopo de projetos, por meio de WBS, permitindo a eventual associação de seus elementos a projetos de empresas parceiras. Neste caso, o projeto em questão refere-se a um projeto de larga escala cuja empresa usuária do software é a líder e delega o elemento de WBS a uma empresa parceira de projeto; • A definição de um conjunto de datas de status nas quais ocorrem relatos de desempenho para os elementos da WBS do projeto; • O lançamento de valores, possibilitando o planejamento e acompanhamento do desempenho de elementos da WBS e, conseqüentemente, de projetos como um todo; e • A visualização de relatórios que propiciam a Análise de Valor Agregado de elementos da WBS e, conseqüentemente, do projeto como um todo. A Rational (2002b) sugere que o comportamento de um sistema em desenvolvimento seja documentado num “Modelo de Caso de Uso” que ilustra suas 109 funcionalidades (casos de uso), aquilo que o cerca (atores) e os relacionamentos entre os casos de uso e os atores (diagramas de casos de uso). Em Quatrani (2000) define-se caso de uso como uma seqüência de transações executadas por um sistema que resulta em algo de valor observável para um ator. Um ator, por sua vez, é alguém (usuário) ou alguma coisa (dispositivo ou outro sistema, por exemplo) que interage com o sistema. A Figura 36 exibe um Diagrama de Casos de Uso da UML, que exibe as principais funcionalidades implementadas no protótipo JavaPMSWeb e os eventuais atores que podem interagir com ele. A UML sugere a representação de casos de uso por meio de figuras em forma de elipse e atores por meio de figuras em forma de boneco. Manter Dados de Parceira Equipe de Gestão de Aquisições Associar Projeto a WBS de Projeto de Parceira <<usa>> <<comunica>> Definir Projeto <<usa>> Equipe de Gestão de Escopo Definir WBS Associar Elemento de WBS a Projeto de Parceira <<comunica>> Software de Gestão de Projeto de Parceira <<comunica>> Análise de Valor Obtido Equipe de Gestão de Prazos Equipe de Gestão de Custos Planejar e Relatar Desempenho de Projeto Equipe Funcional Figura 36: JavaPMSWeb - Diagrama de Casos de Uso. O caso de uso Planejar e Relatar Desempenho de Projeto, em destaque no diagrama da Figura 36, é implementado no protótipo JavaPMSWeb contemplando o caso de uso UC49, da solução WS4PM, especificado no Apêndice 6. 110 Para representar um software baseado em tecnologia distinta, foi desenvolvido na plataforma Microsoft .NET, o JPMSClient. Trata-se de uma Aplicação de Formulário Windows (Windows Form Application), diferente do JavaPMSWeb, que não pode ser acessada por meio da Internet ou de uma intranet utilizando navegadores Web. No caso deste protótipo, foi implementado um formulário simples que permite a manutenção de registros de relato de desempenho por meio da invocação do respectivo serviço Web implementado no JavaPMSWeb. Como a principal finalidade dos protótipos é mostrar a viabilidade da interoperabilidade entre softwares de gestão de projetos distintos ou não, por meio da tecnologia de serviços Web, eles foram desenvolvidos com as seguintes limitações: • Não foram implementadas funcionalidades relacionadas à autenticação de usuários e políticas de autorização; • Não foram implementados aspectos de segurança na comunicação como criptografia e chaves de segurança; • Na invocação de serviços Web não foram implementados mecanismos de controle de transação distribuída; e • O JPMSClient, desenvolvido na plataforma Microsoft .NET, é uma aplicação do tipo Windows Form que apenas consume serviços Web do JavaPMSWeb, exemplificando a independência de plataforma propiciada pela utilização dessa tecnologia. Vale lembrar que, embora os protótipos tenham sido implementados com as limitações citadas acima, a tecnologia de serviços Web dispõe de recursos que permitem sua implementação sem essas limitações, como visto no Capítulo III. 5.2 Principais Interfaces de Usuário Esta seção apresenta, de forma sucinta, as principais interfaces de usuário implementadas nos protótipos de software de gestão de projetos. Como dito, o JavaPMSWeb é um aplicativo Web que pode ser acessado na Internet ou numa intranet utilizando-se navegadores Web. Dessa forma, não é exigida a instalação da aplicação nas máquinas clientes, pois as interfaces são construídas dinamicamente em HTML e servidas ao usuário por meio de um servidor de aplicações Web. 111 A interface de usuário mostrada na Figura 37 representa a tela inicial do aplicativo contendo um menu com as opções Home, Basics e Projects que permitem, respectivamente, voltar a esta tela inicial, executar rotinas de cadastros básicos para o sistema (dados da empresa usuária do sistema e de suas parceiras de projetos) e executar a manutenção de projetos (planejamento e controle). Figura 37: JavaPMSWeb - Interface de Usuário Principal. Com relação aos cadastros básicos do sistema, o mais relevante é o Cadastro de Parcerias, a partir do qual a empresa usuária do sistema pode efetuar a manutenção de informações sobre suas empresas parceiras de projetos e dos WS4PM que elas dispõem. A interface que provê esta funcionalidade pode ser acessada selecionando a opção Basics e em seguida Partnerships. Ela é dividida em duas partes: uma contendo um formulário para edição de dados, ilustrada na Figura 38, e outra contendo uma lista das parcerias cadastradas, permitindo a manutenção de informações, conforme ilustrado pela Figura 39. O formulário de edição de dados permite, por padrão, a inserção de registros de parceiras. Os campos em destaque na Figura 38 representam um conjunto mínimo de informações para acesso aos WS4PM da empresa parceira e validação do consumidor desses serviços. O campo Service URL é onde se registra o ponto de acesso (endereço Web) aos 112 WS4PM da parceira, Service URI é o campo onde se informa o qualificador desses serviços e Our ID in that Company é o campo que propicia o registro de um código de identificação da empresa usuária do sistema junto à empresa parceira de projetos. Figura 38: JavaPMSWeb - Edição de Dados de Empresas Parceiras. Selecionando a opção Projects e em seguida Maintenance, o JavaPMSWeb exibe uma interface que permite ao usuário definir ou efetuar manutenção em dados de projetos, conforme ilustrado na Figura 40. No caso da manutenção, o usuário deve selecionar, a partir de uma lista de projetos existentes, aquele que ele pretende efetuar a manutenção, podendo editar sua definição ou realizar seu planejamento e controle. Uma vez selecionada a opção de criação de um novo projeto ( descrição de um projeto existente ( ) ou edição da ), a interface ilustrada na Figura 41 é exibida e o usuário pode proceder com a digitação dos dados. Vale salientar que o conjunto de campos em destaque, identificados como Link Elements to Other Eventual Project representam um conjunto mínimo de informações necessárias para se estabelecer o relacionamento do projeto em questão com outro projeto existente numa empresa parceira. Nesse caso, o projeto que se está definindo refere-se ao projeto de um componente do produto de um projeto de larga escala cuja empresa parceira, selecionada no campo Project Owner, é a mandatária. Os 113 projetos que não possuem um Project Owner especificado apresentam o conteúdo padrão (This Enterprise) indicando que a empresa mandatária é a empresa usuária do sistema. Figura 39: JavaPMSWeb - Manutenção de Registros de Empresas Parceiras. Figura 40: JavaPMSWeb - Acesso à Definição ou Manutenção de Projetos. 114 Caso seja atribuído um Project Owner para um projeto, os campos Parent Project ID, Parent WBS Item ID, Parent WBS Item Start e Parent WBS Item Duration requerem, respectivamente, a digitação, do código de identificação do Projeto de Larga Escala da empresa parceira, do código de identificação do elemento da WBS desse projeto, da unidade de tempo em que se iniciam as atividades referentes ao elemento da WBS especificado e a duração total, em unidades de tempo, das atividades referentes a este mesmo elemento da WBS. Tais informações são necessárias para se estabelecer o relacionamento entre os projetos. A partir desse relacionamento, todas as informações de relato de desempenho registradas para os elementos da WBS do projeto em questão são atualizadas, via WS4PM, no elemento da WBS do projeto relacionado. Figura 41: JavaPMSWeb - Definição de Projeto. Caso o usuário selecione a opção de planejamento e controle de um determinado projeto, da interface mostrada na Figura 40 ( ), o JavaPMSWeb exibe a interface ilustrada 115 na Figura 42, permitindo a definição/visualização de sua WBS. Quando um elemento é selecionado na árvore que representa a WBS, suas informações são exibidas no formulário à direita e as operações de edição ( o elemento selecionado ( ), exclusão ( ), definição de novo elemento filho para ), e informação de Relatos de Desempenho ( ) podem ser executadas. Foram implementadas algumas regras que definem quais operações podem ser executadas em quais circunstâncias, por exemplo, não se pode definir elementos filhos para um elemento da WBS que foi delegado a uma empresa parceira de projeto. Para delegar um elemento da WBS a uma empresa parceira basta selecionar uma na caixa de seleção Assigned to e digitar, na caixa de texto Related Project ID on the Partner, o código de identificação do projeto da parceira que se refere ao item em questão. Caso o elemento da WBS seja de responsabilidade da empresa usuária do sistema apenas a caixa a seleção Assigned to é exibida contendo a informação (This Enterprise). Figura 42: JavaPMSWeb - Definição da WBS de Projeto. Quando o usuário seleciona a opção Performance, ele pode informar relatos de desempenho, para o elemento da WBS selecionado à esquerda, a partir do formulário ilustrado na Figura 43. Este formulário apresenta uma caixa de seleção contendo as datas de 116 status, em unidades de tempo definidas para o projeto, que exigem a informação de Planejamento (PV – Planned Value) e de relatos de desempenho (EV – Earned Value e AC – Actual Cost). Nesse caso, são exibidas apenas as datas de status que incidem dentro do período de execução das atividades referentes ao elemento da WBS selecionado e que ainda não possuem registro de planejamento ou de relato de desempenho informado. Ao registrar uma informação para uma data de controle selecionada, esta é exibida na listagem constante na parte inferior do formulário. A unidade monetária definida para o projeto também é exibida. A partir da listagem de planejamento e de relatos de desempenho existentes, o usuário pode editar ( ) ou excluir ( ) um registro. Caso o elemento da WBS selecionado seja um elemento delegado a uma empresa parceira de projeto, as operações de manutenção de registros não são permitidas, pois ficam a cargo da empresa parceira, que por meio de seu software de gestão de projetos invocará o WS4PM de relato de desempenho que fará a manutenção de informações necessárias. Quando um relato de desempenho é registrado para um elemento da WBS, seu valor incide indiretamente no desempenho de seus elementos pai e, conseqüentemente, no projeto como um todo. O valor a ser informado no campo EarnedValue, apresentado na Figura 43, refere-se ao resultado da aplicação de qualquer um dos métodos de obtenção do valor agregado existentes, como por exemplo, aqueles propostos por Flemming e Koppelman (2000). O gráfico localizado à direita da interface (Earned Value Analisys), entre o formulário de edição de dados e a listagem de relatos de desempenho existentes, conforme ilustrado na Figura 43, permite a visualização da Análise de Valor Agregado para o elemento da WBS selecionado. Ao solicitar a visualização da Análise de Valor Agregado, para o elemento da WBS selecionado, o sistema exibe a interface ilustrada na Figura 44, mostrando um gráfico com os elementos básicos da referida técnica (PV – Valor Planejado, EV - Valor Agregado e AC - Custo Real). Logo abaixo do gráfico plotado são exibidas as respectivas informações textuais e outras variáveis da técnica, agrupadas em três tabelas: • Uma contendo os valores informados pelo usuário (Current Values) e acumulados (Cumulative Values) em cada data de controle; 117 • Uma contendo as variações (Variance) e os índices de desempenho (Performance Index) calculados com base nos valores acumulados; e • Uma última contendo as variáveis de estimativas para conclusão (To Complete). A Figura 45, a Figura 46 e a Figura 47 ilustram, juntas, o restante dessa interface. Informações sobre a técnica de Análise de Valor Agregado, bem como sobre suas variáveis, podem ser obtidas na Seção 2.1.5. Figura 43: JavaPMSWeb - Planejamento e Relatos de Desempenho. 118 Figura 44: JavaPMSWeb - Gráfico da Análise de Valor Agregado. Figura 45: JavaPMSWeb - Análise de Valor Agregado - Valores Correntes e Acumulados. 119 Figura 46: JavaPMSWeb - Análise de Valor Agregado - Variações e Índices de Desempenho. Figura 47: JavaPMSWeb - Análise de Valor Agregado – Estimativas para Conclusão. Além do JavaPMSWeb foi desenvolvido um outro protótipo com a tecnologia Microsoft .NET que foi batizado com o nome JPMSClient. Trata-se apenas de uma interface de usuário que consome o WS4PM de relato de desempenho, provido pelo JavaPMSWeb. A 120 Figura 48 exibe essa interface que permite a digitação de parâmetros necessários à invocação do referido serviço Web. Ela é subdividida em três partes as quais uma solicita a digitação de informações que são utilizadas na validação da transação (Link Elements to Project Owner), outra solicita a digitação dos valores que são reportados (Performance Report) e uma última (Action) contendo botões para a invocação de métodos (rotinas) do referido WS4PM. O valor de retorno deste serviço Web é uma mensagem texto que é exibida na caixa de texto intitulada “Result from Performance Report Web Service on JavaPMSWeb Application”. Alguns campos não são requeridos para operações de exclusão e estes são devidamente identificados com o rótulo “(Not Required for Delete Operation)”. Figura 48: JPMSClient - Interface do Software que Interopera com o JavaPMSWeb. 5.3 Detalhes da Arquitetura O protótipo JavaPMSWeb teve sua arquitetura projetada com base nas orientações presentes em Costa (2002) e em Quatrani (2000). A Figura 49 ilustra, num alto nível de abstração, a arquitetura do JavaPMSWeb, que é constituída de 5 (cinco) camadas, as quais cada uma desempenha um papel específico. 121 Essas camadas são representadas pelos pacotes com a identificação (estereótipo) “<<layer>>”. São elas: • persistence – É a camada de acesso a dados. Ela abriga implementações que visam facilitar a leitura e gravação de informações em arquivos XML e em SGBDR (Sistema de Gerenciamento de Banco de Dados Relacional). Essas implementações se apóiam em middlewares fornecidos por terceiros; • business – É a camada de entidades de negócio. Nela estão as implementações que representam as entidades relacionadas ao contexto do software; • control – É a camada de controle de fluxos de casos de uso. Nela estão as implementações dos requisitos funcionais do software (casos de uso) que são acessadas por meio das interfaces de usuário; • services – É a camada de serviços de software. Nela estão as implementações de serviços que são expostos como serviços Web, propiciando a interoperabilidade com outros softwares; e • presentation – É a camada de apresentação do software. Nela estão as implementações de interfaces que propiciam sua interação de usuários com o software. Os usuários do sistema conseguem acessar apenas os elementos das camadas presentation e services. Os elementos dessas duas camadas acessam elementos da camada control que implementa as funcionalidades do software acessando, devidamente, elementos da camada business que, quando necessitam efetuar operações de leitura e gravação de dados, acessam elementos da camada persistence. O pacote util é o único que não possui o estereótipo <<layer>>. Ele abriga algumas classes utilitárias que são instanciadas nas diversas camadas do software. Dentre essas classes, a mais significativa é uma classe denominada ExceptionControl que implementa uma estratégia de controle de exceções do software (erros de execução), na qual a codificação para tratamento de erros de processamento, nas camadas superiores, é simplificada. Em determinados casos, as mensagens de erro com conteúdo muito técnico são gravadas num arquivo (jmpserror.log) e são traduzidas para as camadas superiores ocultando detalhes técnicos. Dessa forma, o usuário final recebe mensagens mais inteligíveis em seu nível. 122 <<layer>> presentation <<layer>> services <<layer>> control <<layer>> business util <<layer>> persistence Figura 49: JavaPMSWeb - Camadas do Software. Cada camada do JavaPMSWeb é brevemente comentada nas próximas seções, apresentando também, diagramas da UML. São utilizadas 5 (cinco) formas de notação da UML para classes de software que auxiliam na visualização da arquitetura do sistema. São elas: • Classe de Fronteira ( ) – Notação para classe que implementa interfaces de usuário; • Classe de Controle ( ) – Notação para classe que implementa os fluxos de eventos de casos de uso e controle de visualizações; • Classe de Entidade ( de negócio; )– Notação para classe que implementa entidades 123 • Classe de Serviço ( ) – Notação para classes que implementa Serviço de Software; e • 5.3.1 Classe Padrão ( ) – Notação padrão para outras finalidades. A Camada de Acesso a Dados (persistence) O pacote persistence representa a camada de acesso a banco de dados do JavaPMSWeb, abrigando classes responsáveis pela leitura e gravação de informações em tecnologias de armazenamento de dados, como arquivos XML e SGBDR. Apenas três seguintes classes pertencem a ele: • DataAccess – Classe de objetos que utiliza o middleware JDBC da Sun, implementando funcionalidades responsáveis pela leitura e gravação de informações em SGBDRs. Métodos dessa classe recebem sentenças SQL montadas na camada de entidades de negócio e as processa. • ConnectionPool - Classe de objeto que implementa um “arcabouço” de conexões de usuários com o banco de dados, propiciando o reaproveitamento de conexões já estabelecidas e conseqüentemente, contribuindo para o aumento do desempenho do software. Instâncias dessa classe são criadas, sempre que necessário, e armazenadas no servidor da aplicação de forma que os objetos DataAccess, sempre que precisam acessar a base de dados, obtêm uma dessas instâncias, a utiliza e devolve ao servidor. Se devido a uma eventual concorrência de usuários do software, não existir uma conexão disponível, uma nova é criada e disponibilizada. Componentes como este podem ser obtidos de terceiros e reutilizados, além disso, alguns servidores de aplicação, como o Apache Tomcat, possuem esse serviço que pode simplesmente ser utilizado; e • XMLReader – Classe de objetos que efetuam a leitura de um arquivo, no formato XML, que contém dados de configuração do software, como por exemplo, dados para a conexão do JavaPMSWeb com SGBDRs. A Figura 50 apresenta um Diagrama de Classes da UML, mostrando as três classes definidas e o relacionamento entre elas. 124 DataAccess XMLReader -connectionPool Connecti onPool Figura 50: JavaPMSWeb - Diagrama de Classes da Camada de Acesso a Dados. A estratégia de utilização de um arquivo de configuração em XML (jpmsconf.xml), aliada à arquitetura em camadas, provê uma certa independência de SGBDR ao JavaPMSWeb permitindo a utilização de qualquer Banco de Dados Relacional, suportado pela tecnologia JDBC (Java Data Base Conection), para persistir as informações. O JavaPMSWeb foi testado com os SGBDRs MySQL, SQLServer e Oracle, e a troca de SGBDR exigiu apenas a edição do arquivo de configuração. Além disso, vale salientar que o baixo acoplamento mencionado, só foi possível, pois além do arquivo de configuração, utilizou-se a linguagem de acesso a banco de dados SQL (Structured Query Language) em sua forma padrão, conhecida como ANSI, e não foram utilizados recursos internos desses produtos como gatilhos (triggers) e procedimentos armazenados (stored procedures). O referido arquivo de configuração possui a seguinte estrutura, ilustrada, seqüencialmente, da Figura 51 à Figura 54. Figura 51: JavaPMSWeb - Elemento Raiz do Arquivo XML de Configuração do Software. O elemento raiz denominado CONFIGURATION possui um elemento filho denominado DATABASE. Além desse elemento podem ser definidos vários outros, que por ventura, se fizerem necessários. 125 Figura 52: JavaPMSWeb - Elemento Raiz da Porção de Configuração de Acesso a Dados. O elemento DATABASE possui elementos referentes a cada SGBDR suportado pelo software desenvolvido (Oracle, SQLServer, MySQL, outros). Figura 53: JavaPMSWeb - Elemento de Configuração de um SGBDR Específico. 126 Para cada elemento referente a um SGBDR, são definidos elementos que representam itens de configuração. Como cada SGBDR eventualmente retorna códigos de erro distintos para, por exemplo, operações ilegais e erros de dispositivo, o elemento ERRORMAP envolve um conjunto de elementos ERROR que fazem o mapeamento de códigos de erro retornados pelo SGBDR (DBCODE) para códigos de erro definidos na implementação do JavaPMSWeb (SYSTEMCODE). Figura 54: JavaPMSWeb - Elemento de Configuração de Mapeamento de Códigos de Erro. 5.3.2 A Camada de Entidades de Negócio (business) O pacote business representa a camada de entidades de negócio envolvendo classes que implementam entidades pertencentes ao contexto do software. Esta camada agrupa as seguintes classes que são mapeadas para tabelas de bancos de dados: • Enterprise – Representa a empresa usuária do software; • Partner – Representa empresas parceiras de projetos da empresa usuária do software; • Project – Representa projetos da empresa usuária do software; • WBSItem – Representa elementos da WBS de projetos da empresa usuária do software; • Performance – Representa relatos de desempenho para elementos da WBS de projetos da empresa usuária do software; • LinkToWBS – Classe de objetos que propiciam o relacionamento de projetos, que estão sendo desenvolvidos pela empresa usuária do software, com elementos da WBS de projetos de empresas parceiras; e 127 • LinkToProject – Classe de objetos que propiciam o relacionamento de elementos da WBS de projetos, que estão sendo desenvolvidos pela empresa usuária do software, com projetos de empresas parceiras. A Figura 55 exibe um Diagrama de Classes dessa camada do JavaPMSWeb. Apenas os atributos das classes Partner, LinkToWBS e LinkToProject são apresentados, pois são os mais relevantes no contexto do protótipo desenvolvido, sendo os responsáveis pelo relacionamento entre projetos de empresas parceiras. Os atributos sSQL e isLoaded são utilizados, respectivamente, para montagem de sentenças SQL e para verificar se os valores dos atributos da classe foram carregados da respectiva tabela do SGBDR. -linkToWBS 1 1 Project Enterpris e LinkToWBS 1 -project Performance 0..n parentPrjId parentWbiId parentWbiStart parentWbiDuration sSQL isLoaded 1 -projectOwner -perform ance -partner 0..n -WBSItem 1 1 -WBS 1..n 1 0..n -childs WBSItem 0..1 -parent -linkToProject 1 0..n Partner id name details responsible serviceURL serviceURI ourIdThere sSQL isLoaded LinkToProject partnerPrjId sSQL isLoaded Figura 55: JavaPMSWeb - Diagrama de Classes da Camada de Entidades de Negócio. 128 Objetos da classe Project possuem um conjunto (agregação) de itens (WBSItem) que constituem sua WBS. Caso uma instância de Project se relacione com um projeto de larga escala de uma empresa parceira de projeto, o atributo linkToWBS, dessa classe, é um objeto não nulo que possui as seguintes informações: • parentPrjId - Identificador do Projeto de Larga Escala registrado no software utilizado pela empresa mandatária do projeto (Project Owner); • parentWbiId - Identificador do elemento da WBS do projeto referenciado no atributo anterior; • parentWbiStart – Data, em unidades de tempo (dia, semana ou mês), de início das atividades, registrada no software utilizado pela Project Owner, para o elemento da WBS identificado no atributo anterior; • parentWbiDuration – Duração total das atividades, em unidades de tempo (dia, semana ou mês), registrada no software utilizado pela Project Owner, para o elemento da WBS identificado no atributo parentWbiId; • projectOwner – Este atributo é resultado do relacionamento da classe LinkToWBS com a classe Partner permitindo conhecer a empresa parceira de projeto que é mandatária do projeto identificado em parentPrjId. Caso um determinado elemento da WBS seja delegado a uma empresa parceira de projeto, o atributo linkToProject, da classe WBSItem, é um objeto não nulo que possui informações mínimas para relacionar o referido elemento ao projeto da parceira. Essas informações são as seguintes: • partnerPrjId - Identificador do projeto registrado no software utilizado pela empresa parceira de projeto; e • partner – Este atributo é resultado do relacionamento da classe LinkToProject com a classe Partner permitindo conhecer a empresa parceira de projeto responsável pelo desenvolvimento do elemento em questão. Tais informações poderiam ser obtidas por meio da invocação de serviços WS4PM específicos, providos pela Project Owner e pela Project Partner. No caso da classe Partner os atributos definidos para propiciar a interoperabilidade são as seguintes: 129 • serviceURL – Refere-se à URL do Servidor de Aplicações Web de empresas parceiras de projetos a partir do qual é possível invocar os WS4PM. Um exemplo desse endereço http://www.mypartner.com/services/servlet/rpcrouter. A seria palavra rpcrouter representa uma Servlet que se encarrega de receber as invocações de serviços Web, instanciar a classe de software que o implementa e executar a funcionalidade desejada. • serviceURI – URI de identificação dos WS4PM, providos pelas empresas parceiras de projetos da empresa usuária do software, propiciando identificadores únicos para esses serviços; • OurIdThere – Utilizado para implementar um mecanismo simples de autenticação. Refere-se ao identificador da empresa usuária do software junto às suas empresas parceiras de projetos. Objetos da classe WBSItem podem conter um conjunto de objetos da classe Performance, e cada um deles, representa um relato de desempenho para um determinado elemento da WBS do projeto. Um objeto WBSItem possui um atributo denominado parent, que é uma referência a outro objeto WBSItem, permitindo conhecer o elemento pai de um determinado item da WBS. Por outro lado, existe também um atributo denominado childs que é uma referência para um conjunto de elementos filhos. 5.3.3 A Camada de Controle de Fluxos de Casos de Uso (control) Segundo o RUP (RATIONAL, 2002b), na especificação de requisitos de um sistema a ser desenvolvido, os casos de uso são descritos detalhando seus fluxos de eventos básicos, fluxos de eventos alternativos, pontos de extensão, pré e pós-condições para sua execução. Esta camada do software envolve as implementações desses fluxos levando em consideração seus pontos de extensão e suas pré e pós-condições. Dessa forma, são definidas unidades de programas (classes) para implementar cada caso de uso constante no diagrama da Figura 36. 130 A estratégia consiste em prover as funcionalidades do software a partir dessas classes, ou seja, toda interação deve ser propiciada por interfaces que acessam apenas os elementos dessa camada. Estes por sua vez, se encarregam de acessar, “devidamente”, os elementos da camada de entidades de negócio, que quando necessário, contam com o auxílio de elementos da camada de acesso a dados para efetuar operações de leitura e escrita de informações. Um dos resultados da definição dessa camada é a possíbilidade de se implementar vários tipos de interfaces de usuário (gráficas ou baseadas em texto, por exemplo) para prover acesso a uma mesma funcionalidade do software. A Figura 56 apresenta um Diagrama de Classes da UML que utiliza uma notação específica para classes de controle. O intuito deste diagrama é apenas apresentar as classes que implementam os casos de uso especificados. Em tempo de análise e design pode ser elaborado um Diagrama de Classes para cada caso de uso ilustrando o relacionamento da classe de controle, que o implementa, com as classes de entidades de negócio. As classes de controle constantes no diagrama da Figura 56 são: • MaintainPartnershipControl – Classe que implementa o caso de uso Manter Dados de Parceira; • ProjectDefinitionControl – Classe que implementa o caso de uso Definir Projeto; • LinkProjectToWBSControl – Classe que implementa o caso de uso Associar Projeto a WBS de Projeto de Parceira; • WBSDefinitionControl – Classe que implementa o caso de uso Definir WBS; • LinkWBSToProjectControl – Classe que implementa o caso de uso Associar Elemento de WBS a Projeto de Parceira; • PerformanceReportControl – Classe que implementa o caso de uso Planejar e Relatar Desempenho de Projeto; e • EarnedValueAnalisysControl – classe que implementa o caso de uso Análise de Valor Agregado. 131 MaintainPartnershipControl <<instancia>> ProjectDefinitionControl LinkProjectToWBSControl <<instancia>> WBSDefinitionControl PerformanceReportControl LinkWBSToProjectControl EarnedValueAnalisysControl Figura 56: JavaPMSWeb - Classes da Camada de Controle de Fluxo de Casos de Uso. 5.3.4 A Camada de Serviços (services) O pacote services representa a camada de serviços de software que interagem com os objetos da camada de controle de fluxos de casos de uso expondo funcionalidades como serviços Web. Ele é dividido em dois pacotes denominados provider e consumer abrigando, respectivamente, as classes que implementam as funcionalidades expostas como WS4PM e as classes que implementam seus consumidores. Um software que possui funcionalidades expostas como serviços Web não precisa implementar consumidores para eles. Isso foi uma decisão tomada exclusivamente em relação o JavaPMSWeb. No pacote provider reside uma classe denominada PerformanceReport que implementa uma funcionalidade que foi exposta como um serviço Web denominado 132 PerformanceReportService. Esse serviço permite o relato do desempenho entre projetos relacionados. Já no pacote consumer reside, uma classe denominada PerformanceReportProxy, que foi implementada a partir do documento WSDL, do serviço Web comentado anteriormente, permitindo que o software atue também como consumidor desse serviço. Uma classe denominada PerformanceReportServiceInvoker foi desenvolvida para instanciar, devidamente, essa classe consumidora. A Figura 57 exibe um Diagrama de Classes que ilustra o relacionamento entre a classe que implementa o WS4PM de relato de desempenho e a classe PerformanceReportControl da camada controle de fluxos de caso de uso. Três métodos podem ser invocados remotamente: inserPerformance, updatePerformance e deletePerformance, possibilitando, respectivamente, o registro, a alteração e a exclusão de relatos de desempenho de projetos relacionados. Estes métodos inicialmente invocam o método isValidated que realiza uma validação dos parâmetros recebidos. Caso os parâmetros estejam consistentes a transação é processada. Caso seja verificada alguma inconsistência nos parâmetros recebidos, o método writeErrorLog registra num arquivo, informações referentes à falha de processamento. Ao finalizar a operação, o WS4PM implementado retorna uma mensagem indicando o sucesso ou a eventual falha. A partir de elementos dessa mensagem, o consumidor pode verificar se a transação foi devidamente processada ou não. PerformanceReport -prc PerformanceReportControl insertPerformance() updatePerformance() deletePerformance() isValidated() writeErrorLog() (from control) Figura 57: JavaPMSWeb - Diagrama de Classes Envolvendo a Classe Exposta como WS4PM. A Figura 58 exibe um Diagrama de Classes que ilustra o relacionamento entre as classes PerformanceReportServiceInvoker e PerformanceReportProxy com a classe PerformanceReportControl da camada de controle de fluxos de casos de uso. Neste caso, a classe PerformanceReportControl instancia a classe da camada de entidades de negócio 133 denominada Performance ao executar uma operação de inclusão, alteração ou exclusão de relato de desempenho para um determinado elemento da WBS de um projeto. Nesse momento ela verifica se existe um projeto relacionado com este, e se for o caso, instancia um objeto da classe PerformanceReportServiceInvoker que instancia devidamente a classe PerformanceReportProxy e executa o método correspondente à operação realizada (inserção, alteração ou exclusão de relato de desempenho). Ao invocar o WS4PM PerformanceReportService, provido pela eventual empresa parceira de projeto, é obtida uma mensagem de retorno indicando o sucesso ou falha da operação. PerformanceReportProxy PerformanceReportProxy() insertPerformance() updatePerformance() deletePerformance() createCall() getEndPoint() setEndPoint() setURL() getURL() -srvc -prsi PerformanceReportServiceInvoker PerformanceReportServiceInvoker() invokeService() PerformanceReportControl (from control) Figura 58: JavaPMSWeb - Diagrama de Classes Envolvendo Classes Consumidoras do WS4PM Implementado. Maiores detalhes sobre a classe PerformanceReportProxy são fornecidos na Seção 5.4. 134 5.3.5 A Camada de Apresentação (presentation) A camada denominada presentation refere-se à camada de apresentação do JavaPMSWeb. Ela contém as interfaces de usuário comentadas na seção 5.2 que são instaladas num Servidor de Aplicações Web a partir de uma pasta que é configurada como “raiz de contexto da aplicação”. O contêiner do Servidor de Aplicações Web hospeda os diversos arquivos de código que implementam as interfaces de usuário e os demais componentes do software desenvolvido. A Figura 59 exibe a estrutura de diretórios da pasta Web Content que representa o contêiner Web para o JavaPMSWeb, ou seja, o local no servidor a partir do qual se pode acessar seus recursos. Figura 59: JavaPMSWeb - Estrutura de Diretórios Referente à Camada de Apresentação e o Contêiner do Servidor de Aplicações Para acessar uma determinada interface do software, a partir do Navegador Web, é necessário informar seu endereço de localização no servidor, que também é conhecido como URL. Este endereço é devidamente traduzido pelo servidor Web que acessa o recurso 135 solicitado e o disponibiliza ao usuário. Segue abaixo, uma breve descrição dos subdiretórios apresentados na Figura 59: • admin – Hospeda as interfaces de gerenciamento dos serviços Web no servidor de aplicações. Trata-se de uma aplicação Web denominada XML SOAP Admin que está disponível em alguns servidores web que suportam serviços Web em Java; • basics – Hospeda as interfaces desenvolvidas em JSP (Java Server Pages) que permitem acesso às funcionalidades de manutenção de cadastros básicos do JavaPMSWeb como o cadastro de dados da empresa usuária e o cadastro de dados de empresas parceiras de projetos; • images – Hospeda arquivos de imagens utlizadas na implementação das interfaces de usuário; • javascripts – Hospeda arquivos contendo códigos em JavaScript que implementam algumas funcionalidades nas interfaces, como por exemplo, validação e controle de edição de campos em formulários, implementação de menus de navegação e implementação da árvore de navegação que possibilita o acesso a elementos da WBS de um projeto; • menu – Hospeda interfaces que implementam o menu principal do software; • META-INF – Diretório padrão do Servidor Aplicações Web que hospeda arquivos de configuração do software em relação a ele; • projects – Hospeda as interfaces desenvolvidas em JSP que permitem aos usuários realizarem a definição, planejamento e controle de projetos; • services – Hospeda os arquivos referentes às descrições dos WS4PM (documentos em WSDL) implementados no software; • theme – Hospeda arquivos de configuração de estilos de visualização em HTML que são utilizados na codificação das interfaces; • WEB-INF – Diretório padrão do Servidor de Aplicações Web que hospeda as classes compiladas das demais camadas do software e as bibliotecas (componentes de software de terceiros) exigidas pelo mesmo. A Figura 60 exibe um diagrama da UML, denominado Diagrama de Instalação, que fornece uma visão dos componentes de instalação que suportam a execução do protótipo JavaPMSWeb, bem como as aplicações clientes, que interagem com ele. As funções de 136 suporte ao software podem ser desempenhadas por um único servidor ou distribuídas entre vários, de forma que se tenha servidores com funcionalidades específicas. Sistema de Gerenciamento de Banco de Dados Relacional Navegador Web. Suporte às tecnologias: - HTML; - JavaScript; e - Java Server Pages. Servidor de Aplicações Web Cliente Web <<Rede TCP/IP>> Contêiner Web JPMSClient Aplicativo Windows desenvolvido em .NET SGBDR <<Rede TCP/IP>> Contêiner Web com suporte a: - Páginas Web; - Aplicativos Java; - Servlets e Java Server Pages; - Mensagens SOAP/XML; e - Documentos WSDL. Figura 60: JavaPMSWeb - Diagrama de Instalação. 5.4 Detalhes da Implementação do Serviço Web O desenvolvimento de serviços Web exige um considerável esforço de programação tanto em sua implementação quanto em sua descrição e instalação num Servidor de Aplicações Web. Esse desenvolvimento atualmente é viabilizado por ferramentas de auxílio à programação de software, conhecidas como ferramentas RAD (Rapid Application Developer), que já possuem mecanismos de auxílio à produção e disponibilização de serviços Web. 137 Esta seção apresenta alguns detalhes da implementação tanto do WS4PM que permite o relato de desempenho entre projetos relacionados, quanto de aplicações consumidoras. 5.4.1 O Serviço Web de Relato de Desempenho Para implementar o WS4PM de relato de desempenho no JavaPMSWeb, desenvolveu-se a classe denominada PerformanceReport que se preocupa apenas em expor a funcionalidade de relato de desempenho utilizando a classe PerformanceReportControl, que lida com classes da camada de entidades de negócio invocando devidamente seus métodos. De posse dessa classe utilizou-se uma funcionalidade provida pela ferramenta RAD utilizada, que, a partir de algumas informações que vão sendo solicitadas num procedimento “passo a passo”, produz todo o código necessário para expô-la como um serviço Web. Num próximo passo foi necessário registrar a classe, que implementa o serviço num servidor de aplicações Web que oferece suporte a mensagens SOAP. Além disso, foram implementados alguns arquivos, conforme a especificação WSDL, que descrevem o serviço e permitem a implementação de softwares consumidores. O conteúdo desses arquivos pode estar contido em um ou em vários arquivos WSDL, criados conforme as principais seções de um documento desse tipo. No caso da descrição estar distribuída em vários arquivos, estes possuem cláusulas de importação de conteúdo de uns nos outros. Esses arquivos são documentos em XML que também são publicados no servidor de aplicações Web, podendo ser acessados por meio da Internet e visualizados em Navegadores Web. No caso do WS4PM implementado, a descrição foi concebida em 3 (três) arquivos WSDL, conforme sugerido pela ferramenta RAD utilizada. A finalidade de cada um dos três arquivos é a seguinte: • PerformanceReporService.wsdl – Documento que descreve o serviço Web como um todo. Este PerformanceReportBinding.wsdl; arquivo importa o arquivo 138 • PerformanceReportBinding.wsdl – Documento que descreve as ligações do serviço Web. Este arquivo importa o arquivo PerformanceReport.wsdl; e • PerformanceReport.wsdl – Documento que descreve as interfaces do serviço Web. Detalhes sobre documentos WSDL podem ser obtidos na Seção 3.3.3. O WS4PM implementado é um serviço Web orientado a RPC cujo modelo de processamento é centrado em objetos. Esta estrutura faz com que a interação entre provedores e consumidores seja realizada de forma síncrona. A escolha desse modelo de implementação não que dizer que este seja o mais apropriado para o serviço Web em questão. O WS4PM de relato de desempenho foi registrado num servidor UDDI, no caso, o da IBM que está disponível no endereço http://uddi.ibm.com. Ferramentas RAD, como o WSAD por exemplo, possuem interfaces que propiciam o acesso a esses servidores, facilitando o teste e a manutenção de registros UDDI tanto de informações sobre a empresa quanto dos serviços Web que ela dispõe. Ao registrar um serviço Web num servidor UDDI é solicitada a URL do arquivo WSDL que o descreve. Quando uma URL válida é informada, o servidor UDDI acessa o referido arquivo WSDL e obtém as informações necessárias como, por exemplo, a localização do provedor. A Figura 61 exibe a interface do serviço UDDI, provido pela IBM, onde foi publicado o serviço Web implementado. Nota-se que os campos Businesses, Services e Technical Model registram, respectivamente, informações sobre um negócio, um serviço Web e um tModel do serviço Web em questão, podendo ser adicionados outros. Maiores detalhes sobre os elementos de registros UDDI podem ser obtidos na Seção 3.3.4. 139 Figura 61: Registro UDDI do WS4PM Implementado. 5.4.2 Consumidores do Serviço Web de Relato de Desempenho Assim como na implementação de um serviço Web, algumas ferramentas RAD, oferecem ferramentas que facilitam também a criação de programas consumidores desses serviços, bastando para isso, fornecer o arquivo WSDL que o descreve. No caso do WS4PM de relato de desempenho, que como já foi dito, é orientado a RPC, o desenvolvimento de um consumidor requer a implementação de uma classe conhecida como Proxy. Ela contém a codificação necessária para estabelecer a conexão com o provedor do serviço Web e efetuar a chamada de procedimento remoto utilizando o protocolo HTTP para transportar envelopes SOAP. Foram desenvolvidos dois consumidores: um baseado na tecnologia Java e outro baseado na tecnologia Microsoft .NET. 140 O consumidor baseado na tecnologia Java é uma classe denominada PerformanceReportProxy que reside no pacote consumer da camada services. Ela possui a seguinte estrutura básica: • Um método construtor da classe, que invoca um método que cria uma conexão HTTP, para comunicação, via SOAP, com o provedor do serviço Web; • Um método correspondente a cada método exposto no serviço Web. Cada um desses métodos define os valores dos parâmetros e invoca os procedimentos remotos por meio de um objeto denominado call; • Um método que cria uma conexão HTTP com o provedor do serviço para propiciar a comunicação via protocolo SOAP; e • Um conjunto de métodos que permite definir uma propriedade, em tempo de execução, referente ao endereço URL do ponto de acesso do serviço Web. A Figura 62, que é uma das formas de representação de classes na UML, ilustra a estrutura da PerformanceReportProxy. Figura 62: A Classe Consumidora (Proxy) do WS4PM Implementado. 141 O consumidor do WS4PM implementado com base na tecnologia .NET foi desenvolvido utilizando-se a linguagem C# e recebeu o nome JPMSClient. Este software interopera com o JavaPMSWeb inserindo, alterando e excluindo relatos de desempenho. Para sua implementação, foi utilizado o Microsoft Visual Studio .NET, que é uma ferramenta RAD para desenvolvimento de software na plataforma .NET da Microsoft. Esta ferramenta também disponibiliza funcionalidades de auxílio ao desenvolvimento, tanto da porção provedora quanto da porção consumidora de serviços de software. A implementação de serviços Web na plataforma .NET também requer que o software, que implementa a funcionalidade, seja hospedado num contêiner de um servidor de aplicações Web, que nesse caso é representado pelo IIS (Internet Information Service). Outro detalhe é que os métodos de classes de software que serão publicados como serviços Web devem possuir antes de sua assinatura (definição) o comando-chave [WebMethod]. A presença desse comando indica ao compilador e ao instalador, presentes no Visual Studio, que o método em questão é uma operação que pode ser invocada remotamente via SOAP. 5.5 Cenário de Testes No JavaPMSWeb, determinados elementos da WBS de projetos, da empresa usuária do software, podem ser associados a empresas parceiras de projeto delegando seu desenvolvimento a elas. O inverso também é possível, ou seja, um dado projeto da empresa usuária do software pode ser relacionado com o elemento da WBS de um determinado projeto de uma empresa parceira, que nesse caso figura como líder (Project Owner) de um projeto de larga escala envolvendo empresas parceiras. A Figura 63 ilustra o cenário de testes utilizado. Foram instaladas duas cópias do JavaPMSWeb em servidores diferentes, simulando a situação em que duas empresas parceiras utilizam o mesmo software de gestão de projetos. Uma cópia do JPMSClient foi instalada em outra estação simulando uma terceira empresa, que também é parceira das duas primeiras, mas utiliza um software desenvolvido com uma tecnologia distinta. Independente das tecnologias que suportam esses produtos, eles interoperam utilizando a tecnologia de serviços Web por meio de uma intranet ou da Internet permitindo o relato de desempenho entre projetos relacionados. 142 Consome WS4PM Provê WS4PM Figura 63: Cenário de Testes dos Protótipos de Software Desenvolvidos. Para descrever melhor o cenário apresentado na figura acima, considere que a empresa situada no Brasil pretende lançar um novo produto no mercado. Porém, este produto é de alta tecnologia e de grande magnitude, o que permite qualificar o projeto para sua concepção e lançamento como sendo um projeto de larga escala. A empresa brasileira não detém toda a tecnologia e recursos suficientes para concebê-lo sozinha e então ela propõe uma parceria a duas outras empresas, uma americana e a outra alemã. 143 Por coincidência, a empresa americana utiliza o mesmo software de gestão de projetos que a empresa brasileira, nesse caso o JavaPMSWeb. Mas o mesmo não ocorre em relação à empresa alemã que possui outro fornecedor desse mesmo tipo de ferramenta e, portanto, utiliza um produto distinto, o JPMSClient. Partindo do pressuposto que estes softwares estão dotados de um WS4PM que permita o relato de desempenho entre projetos relacionados, a empresa brasileira define o projeto do produto, como um todo, no JavaPMSWeb e delega um elemento da WBS à empresa americana e outro à empresa alemã. Dessa forma, todas as informações de relato de desempenho para esses componentes ficam a cargo das referidas empresas parceiras. A empresa americana e a empresa alemã definem internamente, um projeto para conceber o componente que lhes foi delegado e relacionam seus projetos ao projeto de larga escala que foi definido no software da empresa brasileira. Conforme algumas regras implementadas no JavaPMSWeb, a empresa brasileira consegue efetuar o lançamento de valores referentes ao planejamento e controle apenas dos elementos da WBS que não foram delegados a nenhuma empresa parceira. Essas por sua vez, efetuam o lançamento de valores referentes ao planejamento e controle de seus projetos, sem se preocupar em reportar esses valores à empresa líder do projeto de larga escala relacionado, pois os softwares de gestão de projetos interoperam permitindo o planejamento e controle destes, de forma integrada. A verificação da troca de mensagens SOAP entre o consumidor e o provedor de um serviço Web, pode ser realizada com o auxílio de uma ferramenta intitulada TCP Monitor que é configurada (colocada) entre eles, mais especificamente, no lado do provedor. Todas as requisições feitas pelo consumidor são endereçadas à porta de comunicação configurada na ferramenta que por sua vez retransmite a requisição para o servidor de aplicações que hospeda o serviço Web. A resposta do servidor de aplicações é encaminhada para a referida ferramenta que a retransmite para o consumidor. Tudo isso é feito sem interferir no conteúdo das mensagens trocadas. A Figura 64 apresenta a interface do TCPMonitor que pode ser obtido junto com um kit de ferramentas para desenvolvimento disponibilizado, gratuitamente, pela IBM, o WSDK (Web Services Development Kit). O conteúdo em XML, da Figura 65, representa a mensagem SOAP de invocação do WS4PM implementado, e é justamente, o conteúdo apresentado na caixa de texto superior da interface apresentada na Figura 64. Nota-se, no código da Figura 65, que o serviço Web é devidamente identificado e uma série de parâmetros são recebidos (partnerId, projectId, etc). Ao processar a requisição 144 do consumidor do WS4PM, o servidor de aplicações do provedor retorna a mensagem SOAP, como a ilustrada na Figura 66, contendo o resultado da transação. A mensagem de resposta à invocação do serviço Web é apresentada na caixa de texto inferior da interface ilustrada na Figura 64. Como o JavaPMSWeb foi concebido de forma que ele pode interoperar com outras cópias instaladas em servidores conectados a uma rede, pode ser desenvolvido um estudo de caso envolvendo vários níveis de parceria de projeto. Figura 64: Interface da Ferramenta "TCP Monitor". 145 A Figura 67 e a Figura 68 apresentam dois Diagramas de Seqüência. Esse tipo de diagrama, proposto pela UML, é elaborado nas primeiras iterações e refinado ao longo do processo de desenvolvimento do sofware no intuito de se especificar como o sistema em desenvolvimento irá implementar uma dada funcionalidade (caso de uso). Os elementos PerformanceReportProxy e Service:PerformanceReport representam, respectivamente, um componente “Consumidor de Funcionalidade” e um componente “Provedor de Funcionalidade”, citados na Seção 4.2. POST /JavaPMSWeb/servlet/rpcrouter HTTP/1.0 Host: fcmf23646.fcmf.ita.br Content-Type: text/xml; charset=utf-8 Content-Length: 913 SOAPAction: "" <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <ns1:updatePerformance xmlns:ns1="http://tempuri.org/edu.oam.javapms.services.provider.PerformanceReport" SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <partnerId xsi:type="xsd:string">GE</partnerId> <projectId xsi:type="xsd:string">ERJ-135</projectId> <wbsItemId xsi:type="xsd:string">3</wbsItemId> <partnerProjectId xsi:type="xsd:string">AV-ERJ</partnerProjectId> <statusDate xsi:type="xsd:int">2</statusDate> <plannedValue xsi:type="xsd:double">1000.0</plannedValue> <earnedValue xsi:type="xsd:double">1000.0</earnedValue> <actualCost xsi:type="xsd:double">1000.0</actualCost> </ns1:updatePerformance> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Figura 65 : Mensagem SOAP de Invocação do WS4PM Implementado. 146 HTTP/1.1 200 OK Server: WebSphere Application Server/5.0 Set-Cookie: JSESSIONID=0000ILJYOWCICHRYYQOH1OWSWCY:-1;Path=/ Cache-Control: no-cache="set-cookie,set-cookie2" Expires: Thu, 01 Dec 1994 16:00:00 GMT Content-Type: text/xml; charset=utf-8 Content-Length: 603 Content-Language: pt-BR Connection: close <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <ns1:updatePerformanceResponse xmlns:ns1="http://tempuri.org/edu.oam.javapms.services.provider.PerformanceReport" SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:string">Op:Update - Project Id: Ok - WBS Item Id: Ok Final Result: Success!</return> </ns1:updatePerformanceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Figura 66: Mensagem SOAP de Resposta à Invocação do WS4PM Implementado. A operação representada nos referidos diagramas é a de alteração de relato de desempenho (updatePerformance), que é parte do caso de uso Planejar e Relatar Desempenho de Projeto. Por meio desses diagramas é possível visualizar, em certo nível de abstração, a troca de mensagens entre objetos do JavaPMSWeb quando da invocação do serviço de relato de desempenho, por parte de uma empresa parceira de projeto, e também, quando do processamento dessa invocação por parte da empresa líder do projeto. Nota-se que, caso o projeto da empresa líder esteja relacionado com o de um terceiro, é possível uma nova invocação ao WS4PM eventualmente provido pela terceira empresa. 147 : Equipe de Gestão : PerformanceReportForm : de Custos PerformanceReportCo... : WBSItem : Project : Performance : LinkToProject : Partner : DataAccess : PerformanceReportServiceInvoker : PerformanceReportProxy : Software de Gestão de Projeto de Parceira //updatePerformance //updatePerformance //getDBInfo //readData //getProject //getDBInfo //readData //getLinkToProject //getDBInfo //readData //getPartner //getDBInfo //readData //dbInsert //writeData //invokeService("update") //setURL //setURI //createCall //updatePerformance //showAllPerformance Figura 67: JavaPMSWeb - Diagrama de Seqüência da Invocação de WS4PM de Relato de Desempenho. 148 : Sof tware de Gestão de Proj... : DataAccess Serv ice : Perf ormanceReport : Perf ormanceReportCo... //updatePerf ormance : Perf ormanceReportServ iceInv oker : Perf ormanceReportProxy : WBSItem : Project : Perf ormance : LinkToProject : Partner : Software de Gestão de Projeto de Parceira //isValidated //updatePerf ormance //getDBInf o //readData //getProject //getDBInf o //readData //getLinkToProject //getDBInf o //readData //getPartner //getDBInf o //readData //dbInsert //writeData //inv okeServ ice("update") //setURL //setURI //createCall //updatePerf ormance Figura 68: JavaPMSWeb - Diagrama de Seqüência de Processamento da Invocação do WS4PM de Relato de Desempenho. 149 5.6 Resumo do Capítulo e Resultados Obtidos Este capítulo apresentou alguns detalhes da implementação dos dois protótipos de software de gestão de projetos, que foram concebidos em tecnologias distintas para testar e validar tanto a solução, baseada na interoperabilidade de software, quanto a tecnologia de serviços Web, que a propicia. A utilização de um serviço UDDI, disponível na Internet, também é descrita no intuito de mostrar a viabilidade desse componente da arquitetura de serviços Web, que permite aos novos parceiros de projetos obterem, por meio da Web, informações sobre os negócios uns dos outros e sobre os WS4PM que estes possuem implementados em seus softwares de gestão de projetos. Um caso de testes foi desenvolvido, apresentando o cenário no qual empresas parceiras podem gerenciar projetos relacionados de forma integrada, mesmo utilizando softwares distintos e estando separadas geograficamente. O desenvolvimento dos protótipos, principalmente do JavaPMSWeb, em camadas propiciou facilidades na implementação do WS4PM de relato de desempenho, uma vez que a classe que implementa o serviço (PerformanceReport) simplesmente instancia a classe PerformanceReportControl, da camada de controle de fluxos de casos de uso, valida os parâmetros recebidos e invoca métodos que tratam e processam as informações como se a invocação estivesse sido realizada localmente. Alguns detalhes da implementação do protótipo JavaPMSWeb, como por exemplo, a modelagem de determinados atributos e classes que permitem o relacionamento de projetos, controle de transações, segurança, e outros requisitos não funcionais de sistemas distribuídos, mostram que a implementação dos WS4PM em softwares já existentes requer algumas adaptações nos mesmos, de forma a conformar com esses requisitos. Por meio da implementação do estudo de caso referente à Análise de Valor Agregado pôde-se constatar a viabilidade tanto da solução, quanto da tecnologia proposta. As funcionalidades de relato de desempenho implementadas nos protótipos sempre verificam se o projeto em questão está relacionado com outro e, caso afirmativo, invocam o respectivo WS4PM provido pelos eventuais parceiros, replicando a operação nos sistemas destes. A implementação realizada permite o planejamento e controle de projetos envolvendo vários níveis de parcerias. 150 O desenvolvimento de serviços Web, se for realizado manualmente, é algo consideravelmente trabalhoso, principalmente no tocante à composição dos códigos de descrição (WSDL), scripts de instalação exigidos pelos Servidores de Aplicações Web e interpretação de documentos WSDL para a implementação de consumidores. Porém, as ferramentas RAD como o WSAD, Jbuilder e o Visual Studio .NET, estão dotadas de mecanismos que auxiliam o desenvolvedor nessas tarefas, permitindo a este, abstrair uma série de detalhes. O conjunto de informações apresentadas nesse capítulo, bem como sua estrutura, permite afirmar que este é uma espécie de Documento de Arquitetura do protótipo JavaPMSWeb, outro artefato sugerido pelo RUP (RATIONAL, 2002b), pois são apresentadas pelo menos três visões relacionadas ao referido software: uma visão de casos de uso, uma visão lógica (descrição das camadas) e uma visão de instalação. Seguem, no próximo capítulo, as conclusões, contribuições e recomendações de trabalhos futuros referentes aos WS4PM. 151 6 Capítulo VI Conclusões, Contribuições e Sugestões de Trabalhos Futuros 6.1 Conclusões A produtividade e qualidade do trabalho referentes à gestão de projetos de larga escala envolvendo empresas parceiras são afetadas por fatores como a dispersão geográfica dos envolvidos e a grande diversidade de tecnologias de apoio à gestão de projetos adotadas de forma independente por eles. Disso decorre um grande volume de retrabalho, principalmente no tocante ao registro de informações que fazem parte de relatórios da gestão de projetos e que tramitam entre as empresas parceiras e a empresa lider. Pode-se então concluir que os WS4PM representam uma forma de prover a interoperabilidade entre softwares de gestão de projetos, tendo como base a tecnologia de serviços Web, que, como pode ser observado, principalmente nos detalhes de implementação dos protótipos apresentados no Capítulo V, é uma alternativa válida para isso. Para o sucesso de um projeto com parceiros, um dos fatores chaves é dispor de processos de negócios dos envolvidos integrados e otimizados para o projeto. Durante o levantamento de requisitos, percebeu-se que vários processos nem sempre oferecem boa integração e otimização, dificultando o trabalho de gestão de projetos e levantamento de requisitos. Dessa forma, acredita-se que é importante uma investigação sobre a modelagem de processos, nesse tipo de projeto, visando a realização da integração de forma eficiente. Para finalizar, acredita-se que a alternativa de solução WS4PM, considerando os processos de negócio devidamente integrados, venha a contribuir muito para a gestão de projetos de larga escala envolvendo empresas parceiras, aumentando a sinergia entre elas. 152 6.2 Contribuições No tocante a contribuições específicas, pode-se citar o seguinte: a) A especificação de requisitos de interoperabilidade pertinentes à gestão de projetos de larga escala envolvendo empresas parceiras; e b) A especificação de um modelo computacional que pode vir a ser aproveitado por desenvolvedores de softwares de gestão de projetos no intuito de prover a interoperabilidade de seu produto com outros existentes no mercado. Podem ser consideradas contribuições secundárias, o seguinte: a) A investigação dos conceitos de gestão de projetos focando projetos de larga escala envolvendo empresas parceiras; e b) Um conjunto de artefatos que podem ser utilizados como ponto de partida para o desenvolvimento de trabalhos futuros. Um resumo deste trabalho e de suas principais contribuições, encontra-se no artigo intitulado “A Interoperabilidade de Software no Auxílio à Gestão de Projetos de Larga Escala que Envolvem Parceiros”, que foi apresentado no IV Congresso Ibero-Americano de Gerenciamento de Projetos, promovido pelos capítulos ibero-americanos do PMI nas cidades de São Paulo e Rio de Janeiro de 17 a 21 de Novembro de 2003. 6.3 Sugestões de Trabalhos Futuros Este trabalho apresenta um modelo de solução para a interoperabilidade de softwares de gestão de projetos que implementam funcionalidades relacionadas com a metodologia de gestão de projetos proposta pelo PMBOK (PMI, 2000). Podem ser desenvolvidos trabalhos nesta mesma linha que tenham como base outras metodologias. Os requisitos dos WS4PM foram especificados num nível de abstração consideravelmente alto, e como apenas um caso de uso foi tratado neste trabalho, o referente a relato de desempenho entre projetos relacionados, não foi executada a modelagem de casos de uso, uma das atividades previstas pelo RUP, para se entender as interações dos atores (usuários e outros sistemas) com o sistema proposto e estruturar a solução como um todo. Sendo assim, sugere-se a execução desta atividade em trabalhos futuros. 153 Trabalhos específicos podem ser desenvolvidos com o objetivo de especificar o modelo de interação (RPC ou Mensagens), o tipo de processamento (Centrado em Objetos ou Centrado em Documentos) e o tipo de interação (síncrona ou assíncrona) mais adequado a cada um dos WS4PM especificados. Podem ser desenvolvidos trabalhos específicos focando os requisitos não funcionais especificados para os WS4PM. Esses trabalhos podem tratar de forma isolada, componentes da GXA, especificando, por exemplo, modelos de segurança, transação, roteamento, coordenação e anexos. Como consta no escopo deste trabalho, não foi tratada aqui, a interoperabilidade entre softwares de gestão de projetos com outras ferramentas computacionais utilizadas no auxílio à gestão de projetos. Fica como sugestão para trabalhos futuros a especificação de uma solução que propicie também a integração dos softwares de gestão de projetos com os demais softwares utilizados nos processos, como por exemplo, os ERPs. 154 7 Referências Bibliográficas AHMED, K. Z.; UMRYSH, C. E. Developing enterprise Java applications with J2EE. Boston: Addison-Wesley, 2001. 368 p. AHMED, Kall et al. Professional JAVA XML. Birmingham: Wrox Press, 2001. 1159 p. BOND, Martin et al. Sams teach yourself J2EE in 21 days. Indianapolis: SAMS, 2002. 1100 p. BRITTENHAN, Peter. Web services development concepts: WSDC 1.0. IBM, 2001. Disponível em <http://www-4.ibm.com/software/solutions/webservices/pdf/WSDC.pdf > Acesso em: 05 mai. 2001. COSTA, Geraldo. O modelo de Web services: como desenvolver aplicações em uma nova arquitetura de software. São Paulo: Publicação Técnica Promon Tecnologia. 2002. 12p. (Business et Technology Review Series, ano 2, n. 4) CURBERA, Francisco et. al. Using WSDL in a UDDI registry, version 1.07 – UDDI best practice. 2001. Disponível em <http://www.uddi.org/pubs/wsdlbestpractices-V1.07-Open20020521.pdf> Acesso em: 05 mai. 2001. DEMICHILLIE, Greg. Global XML web services architecture (GXA). 2002. Disponível em:<http://www.directionsonmicrosoft.com/sample/DOMIS/update/2002/10oct/1002gdffws.h tm>Acesso em 31 out. 2002. EMBRAER. Equipe de Gestão do Programa EMBRAER 170/190. Slides de apresentação do modelo de gestão do programa EMBRAER 170/190. São José dos Campos: Embraer, 2002. EMBRAER. Perfil da empresa. Disponível em <www.embraer.com.br >. Acesso em 10 Ago. 2002. FLEMMING, Q. W.; KOPPELMAN, Joel M. Earned value project management. 2. Ed. [S.l.]: Project Management Institute, 2000. 155 GRADY, Robert. Practical software metrics for project management and process improvement. [S.l.]: Prentice-Hall, 1992. 270p. HALL, Marty; BROWN, Larry. Core WEB programming: the sun microsystem press JAVA series. 2.Ed. [S.l.]: Sun Microsystem, 2001. 1398 p. HENDRICKS, Marck et al. Professional Java web services. [S.l.]:Wrox Press, 2002. IBM. Web service security (ws-security). Ver. 1.0. 2002. Disponível em <http://www106.ibm.com/developerworks/library/ws-jsr109-proposed> Acesso em: 01 abr. 2002. IONA Technologies. Desenvolvendo uma estratégia em web services. In: SEMINÁRIO LIVEWARE: A REALIDADE DOS WEB SERVICES, 2002, São Paulo. Anais... São Paulo, 2002. IONA Technologies. Web services: realidade IONA. In: SEMINÁRIO LIVEWARE: A REALIDADE DOS WEB SERVICES, 2002, São Paulo. Anais... São Paulo, 2002. KERZNER, Harold. Project management: a system approach to planning scheduling and controlling. New York: VNR, 1997. 912 p. KRUCHTEN, Philippe. The rational unified process – An introduction – 2nd ed. USA:Addison-Wesley, 2000. 298p. LAUDON, K.C. Management information systems: organization and technology in the networked enterprise. [S.l.]: Prentice Hall, 2000. 588p. MCCARTY, Bill; CASSADY-DORION, Luke. JAVA distributed objects: the authoritative solution. [S.l.]: SAMS Publishing, 1998. MICROSOFT Corp. Microsoft biztalk server homepage. Disponível em <http://www.microsoft.com/biztalk> Acesso em: 20 jan. 2003. Microsoft Corp. Microsoft host integration server homepage. Disponível em <http://www.microsoft.com/brasil/hiserver/default.stm> Acesso em: 25 jan. 2003. MYRON, Hura et al. Interoperability: A Continuing Challenge in Coalition Air Operations. [s.l.]: RAND Research Publications, 2000, 235p. Cap. 2. Versão digital disponível em <http://www.rand.org/publications/MR/MR1235> Acesso em: 25 mar. 2002. NEWCOMER, Eric. Decide between J2EE and .NET web services. Disponível em <http://www.fawcette.com/dotnetmag/2002_10/magazine/columns/webservices/defaultpf.asp > Acesso em: 01 out. 2002. 156 NICHOLAS, John M.. Managing business and engineering projects: concepts and implementation. [S.l.]: Prentice Hall. 496p. 1990; PMI – Project Management Institute. PMBOK 2000 - a guide to the project management body of knowledge. [S.l.]: PMI, 2000. PMI – Project Management Institute. Project Management Institute practice standard for work breakdown structures. Newtown Square, Pennsylvania, USA, 2001. 82p. QUATRANI, Terry. Visual modeling with Rational Rose 2000 and UML.USA:AddisonWesley, 2000. 256p. RATIONAL Software Corp. Rational suite introduction – version 2002.05.00: documentação do produto. [S.l.], 2002. RATIONAL Software Corp. Rational unified process – version 2002.05.00: processo de desenvolvimento de software. [S.l.], 2002. SEMINÁRIO SOBRE GERÊNCIA DE REQUISITOS. 2001, Campinas. Anais... Campinas: LIVEWARE Tecnologia a Serviço, 2001. SHIRAZI, Jack. Web Service performance tips. Disponível em <http://www.javaperformancetuning.com/tips/webservice.shtml> Acesso em: 15 mar. 2003. SKONNARD, Aaron. Publishing and discovering web services with DISCO and UDDI. Disponível em <http://www.msdn.microsoft.com> Acesso em: 25 out. 2002. SNELL, James. Implementing web services – part 1. Disponível em <http://www106.ibm.com/developerworks> Acesso em: 14 mai. 2002. SNELL, James. Implementing web services – part 2. Disponível em <http://www106.ibm.com/developerworks> Acesso em: 5 mai. 2002. SUN Microsystems. The Java web services tutorial. [S.l.]: SUN Microsystems, 2002. Disponível em <http://java.sun.com> Acesso em: 25 mar. 2002. SUN Microsystems. Using web services effectively. Disponível em <http://Java.sun.com/blueprints/webservices/using/webservbp.html> Acesso em: 01 out. 2002. SUN Microsystems. The J2EE tutorial - a beginner's guide to developing enterprise applications on the JavaTM 2 platform, enterprise edition SDK version 1.3. Disponível em <http://Java.sun.com/j2ee/tutorial/1_3-fcs/index.html> Acesso em: 22 dez. 02. 157 SUN Microsystems. J2EE connector architecture. Disponível em <http://Java.sun.com/j2ee/connector/> Acesso em: 22 dez. 02. TELELOGIC North America Inc. Get it right the first time: writing better requirements: telelogic DOORS/ERS manuals. [S.l.], 2001. VALERIANO, Dalton L. Gerência em Projetos – Pesquisa, Desenvolvimento e Engenharia. São Paulo:Makron Books, 1998. Cap. 7, p.191-213. VAWTER, Chad; RONAM, Ed. J2EE vs. Microsoft .NET: a comparision of building XML-based web services. Disponível em <www.theserverside.com/resources/pdf/J2EE-vsDotNET.pdf> Acesso em: 01 out. 2002. WIEGERS, Karl E. Automating requirements management. Disponível em <www.processimpact.com/articles/rm_tools.html> Acesso em: 17 ago. 2002. WORLD Wide Web Consortium. Web service description language. Ver. 1.2. W3C, 2002. Disponível em <http://www.w3.org/2002/ws/> Acesso em: 21 out. 2002. WORLD Wide Web Consortium.XML schema part 2: datatypes - W3C recommendation: W3C, 2001. Disponível em <http://www.w3.org/TR/xmlschema-2/> Acesso em: 21 out. 2002. YANO, E. T. GroupPlaces: uma arquitetura de groupware para a WWW. 141f. 1998. Tese (Doutorado em Informática) – Instituto Tecnológico de Aeronáutica, São José dos Campos. 158 8 Glossário API - Application Programming Interface: interface de programação provida por sistemas de software para viabilizar o desenvolvimento de aplicações. As aplicações desenvolvidas fazem uso do sistema de software por meio de chamadas de procedimentos, comandos e respostas específicas numa interface bem definida. B2B – Business To Business: negociação entre empresas fornecedoras e consumidoras, auxiliada por recursos da Internet, estreitando o relacionamento entre elas e agilizando processos de negociação para oferecer produtos e serviços. B2Bi – Business To Business Integration: modalidade de integração, por meio da Web, de sistemas heterogêneos ou não, realizada entre organizações distintas no intuito de estreitar relacionamentos de parceria comercial. B2C – Business To Consumer: negociação entre empresa e consumidor final, auxiliada por recursos da Internet, estreitando o relacionamento entre eles e agilizando processos de negociação. B2Ci – Business to Consumer Integration: modalidade de integração, por meio da Web, de sistemas heterogêneos ou não, realizada entre organizações distintas no intuito de estreitar relacionamentos do tipo cliente/fornecedor. Back-end: Em sistemas de software, ao contrário de front-end, refere-se à porção tecnológica que geralmente não é percebida pelo usuário final, mas que suporta a aplicação, por exemplo, Sistemas de Gerenciamento de Bancos de Dados. Binding: ligação, conexão entre dois pontos remotos. Bottom-Up: Na abordagem para desenvolvimento de serviços Web, utilizada pelo Provedor, refere-se ao desenvolvimento de um serviço Web a partir de uma aplicação existente. Bytecode: código gerado pelo compilador Java e executado pelo interpretador Java, independente do hardware ou sistema operacional. 159 CORBA - Common Object Request Broker Architecture: arquitetura para a distribuição de objetos em ambientes distribuídos independente do sistema operacional em uso. CLR – Common Language Runtime: máquina computacional abstrata responsável pela independência da plataforma Microsoft .NET quanto à linguagem de programação utilizada no desenvolvimento de software. DCOM – Distributed Component Object Model: arquitetura semelhante a CORBA utilizada na distribuição de objetos em Ambientes Distribuídos Microsoft, apenas. Deliverable: produto tangível e verificável, resultante de um trabalho, como por exemplo, um estudo de viabilidade, um projeto lógico detalhado ou um protótipo. Download: ação de obter um determinado arquivo a partir de um servidor conectado à Internet, gravando-o na estação de trabalho local. EAI - Enterprise Application Integration: modalidade de integração de sistemas computacionais heterogêneos, existentes dentro das fronteiras de uma organização. EAP – Estrutura Analítica do Projeto: Vide WBS. ebXML – electronic business eXtensible Markup Language: padrão de indústria semelhante ao UDDI, porém com escopo diferente, desenvolvido para possibilitar o registro de informações de empresas interessadas em realizar comércio eletrônico. EJB – Enterprise Java Bean: elemento da plataforma de desenvolvimento de software J2EE que pode ser estendido e reutilizado para implementar componentes de um aplicativo suportado por um servidor de aplicações. ERP – Enterprise Resource Planning: Sistema de Gestão de Empresarial integrado, que visa integrar os processos funcionais de uma empresa. Firewall: tecnologia utilizada para evitar que usuários não autorizados acessem recursos disponíveis em servidores conectados à Internet. Front-end: Em sistemas de software, ao contrário de back-end, refere-se à porção que geralmente é percebida pelo usuário, pois é por meio dela que ele interage com ela, por exemplo, as interfaces gráficas ou textuais. 160 Green Field: abordagem para desenvolvimento de serviços Web, utilizada pelo Provedor, cuja aplicação e o serviço Web inicialmente, não existem. A aplicação é implementada e na seqüência é disponibilizada como um serviço Web gerando e publicando sua interface. Groupware: Sistemas computacionais que visam suportar e assistir o trabalho em grupo. GXA – Global XML Architecture: Arquitetura Global de XML. É um conjunto de especificações construídas sobre XML, que são blocos de construção para a implementação de serviços Web dotados das habilidades como segurança, controle de transações, mensagem confiável, dentre outras. HTTP – Hipertext Transfer Protocol: protocolo de transporte utilizado para acesso a certos recursos na Internet, geralmente, públicos. HTTPS - Hipertext Transfer Protocol Secure: extensão do HTTP que provê segurança das informações quando de seu transporte, permitindo comunicação segura entre dois pontos da Web. IDL – Interface Definition Language: linguagem de definição de interface de objeto independente da linguagem usada na implementação do mesmo. IIOP – Internet Inter-ORB Protocol: protocolo de comunicação que permite o acesso de recursos WWW a partir de aplicações CORBA e vice-versa. Integração: combinar partes de forma que elas trabalhem juntas ou formem um todo. Interoperabilidade: capacidade de sistemas comunicarem uns com os outros, trocando e usando informações que incluem conteúdos, formatos e semânticas. J2EE – Java to Enterprise Edition: plataforma de desenvolvimento de aplicações empresariais, baseada na linguagem de programação Java da Sun Microsystems. J2EE Connector: tecnologia desenvolvida pela Sun Microsystem, pertencente à plataforma J2EE, que permite a integração de sistemas desenvolvidos em Java com sistemas legados, ERPs e bancos de dados não relacionais. 161 JMS – Java Messaging Service: Serviço de Mensagens Java que possibilita a troca de mensagens em Sistemas Distribuídos. Pode ser utilizado diretamente numa aplicação corporativa ou por meio de um tipo de EJB chamado Message-Driven-Bean. JNDI – Java Naming and Directory Interface: interfaces de aplicação Java para acesso a Serviços de Nomes e Diretórios. JTA – Java Transaction API: interface de programação de aplicações que possibilita a implementação de controles de transações, que se resume no agrupamento de múltiplas operações numa simples operação atômica, em que ou todas, ou nenhuma operação é realizada. Essa tecnologia é utilizada para o desenvolvimento de sistemas distribuídos. JTS – Java Transaction Service: é um serviço de gerenciamento de transações que suporta JTA e faz uso de IIOP para a comunicação entre instâncias remotas de um serviço. Como JTA, também é utilizado para o desenvolvimento de sistemas distribuídos. JVM – Java Virtual Machine: é uma máquina computacional abstrata responsável pela execução de softwares desenvolvidos em Java, propiciando independência de hardware e Sistema Operacional. JDK – Java Development Kit: ambiente de desenvolvimento de software para a criação de aplicativos escritos na linguagem de programação Java. Meet-in-the-Middle: abordagem para desenvolvimento de serviços Web, utilizada pelo Provedor, cuja aplicação e o serviço Web já existem, realizando a integração de ambos. Middleware: Produto de software que funciona como uma "camada" (layer) de conversão ou tradução. Geralmente é fornecido por terceiros e reutilizado na implementação de outros softwares, sendo o responsável por conectar tecnologias. MIME - Multipurpose Internet Mail Extension: protocolo da Internet utilizado para transporte de arquivos binários (imagens, sons ou vídeos, por exemplo) atachados em mensagens. Namespace: artifício que representa uma forma de ser resolver conflitos de nomes de elementos e atributos em documentos baseados em XML. 162 ORB – Object Request Broker: barramento de objetos que permite a comunicação entre objetos por meio da chamada de métodos e recebimento de respostas, de forma transparente e independente da localização dos objetos (local ou remota). Parser: São interfaces de programação de aplicativos usadas para criação de unidades de programas capazes de converter documentos XML em objetos e vice-versa. QoS – Quality of Service: Conjunto mínimo de qualidade que se deseja garantir a um determinado serviço. RMI – Remote Method Invocation: protocolo de comunicação de objetos remotos Java. RUP – Rational Unified Process: processo de desenvolvimento de software proposto pela Rational Software Corporation que visa a redução de riscos no desenvolvimento de projetos de software. Service Proxy: unidade de programa que contém todo o código que é requerido para acessar e invocar um Serviço Web. Skeleton: objeto delegado, ativado do lado de um servidor num processo de chamada remota. O objeto skeleton faz um par com o objeto delegado stub. O skeleton recebe a solicitação de execução de um método e seus argumentos, ativa a implementação do objeto servidor, obtém a resposta e a retorna ao stub. SOAP – Simple Object Access Protocol: Protocolo simples de acesso a objetos baseado em XML que utiliza para transporte o protocolo HTTP ou outro, sendo utilizado na comunicação entre serviços Web. Socket: são interfaces que fazem as ligações entre as conexões originadas do sistema operacional e dos processos dos usuários. Stakeholders: são indivíduos ou organizações que estão ativamente envolvidos no projeto ou cujos interesses podem ser positiva ou negativamente afetados pelos resultados do projeto. Stub: é o objeto delegado do objeto servidor (skeleton) na máquina cliente. O stub obtém solicitações de execução de métodos e seus argumentos e os repassa ao objeto servidor. Token: ficha usada para controle de sincronização em sistemas distribuídos. 163 Top-Down: abordagem para desenvolvimento de serviços Web, utilizada pelo Provedor. Refere-se ao desenvolvimento de uma aplicação a partir de uma interface de serviço Web existente. tModel – Technical Model: Unidade de registro de um serviço Web num Serviço de Registros UDDI. UDDI – Universal Description, Discover and Integration: serviço de registro de entidades de negócios e serviços de negócio, oferecidos por essas entidades de negócio. Permite a descrição, descoberta e integração de serviços Web. UML - Unified Modeling Language: é uma linguagem para a Modelagem Visual de sistemas, composta de diversos diagramas que permitem visões diferenciadas do projeto de software, apresentando níveis de abstração diferentes. URI – Uniforme Resource Identifier: é uma string compacta usada para identificar um recurso abstrato ou físico na web: documentos, imagens, arquivos para download, serviços, e outros recursos. URL – Uniform Resource Locator: é um tipo de URI, uma sintaxe e semântica de informação formalizada para localização e acesso de recursos na Internet. WBS – Work Breakdown Structure: Estrutura Analítica do Projeto – EAP: refere-se a um agrupamento de componentes do projeto que organiza e define seu escopo total. É orientada para a elaboração de subprodutos denominados deliverables. Web: referenciada também como WWW (World Wide Web), é a rede mundial de computadores, ou Internet. Web browser- Navegador Web: software utilizado para navegação na Internet, sobre o qual são projetadas as interfaces entre o usuário e os diversos recursos disponibilizados na rede. Web Service: serviço disponibilizado na web na forma de interfaces de software, permitindo a interoperabilidade de sistemas. WSDL – Web Service Description Language: linguagem de descrição de serviços Web utilizada para fornecer detalhes sobre o serviço disponibilizado, permitindo a implementação de sistemas que interajam como o serviço. 164 WS4PM – Web Services For Project Management: Serviços Web para a gestão de projetos. Solução tecnológica baseada em serviços Web que visa a interoperabilidade de softwares de gestão de projetos, propiciando o gerenciamento integrado de projetos relacionados. XML – eXtensible Markup Language: linguagem de marcação extensível, baseada em texto, utilizada para representar estruturas de dados e instâncias de informação. FOLHA DE REGISTRO DO DOCUMENTO 1. CLASSIFICAÇÃO/TIPO TM 5. 2. DATA 3. DOCUMENTO N° 4. N° DE PÁGINAS 02 de março de 2004 CTA/ITA-IEC/TM-010/2004 295 TÍTULO E SUBTÍTULO: Um Modelo de Interoperabilidade para Softwares de Gestão de Projetos 6. AUTOR(ES): Osvandre Alves Martins 7. INSTITUIÇÃO(ÕES)/ÓRGÃO(S) INTERNO(S)/DIVISÃO(ÕES): Instituto Tecnológico de Aeronáutica / Divisão de Ciência da Computação – ITA/IEC 8. PALAVRAS-CHAVE SUGERIDAS PELO AUTOR: Interoperabilidade de Software, Serviços Web, Gestão de Projetos em Parceria, Projetos de Larga Escala 9.PALAVRAS-CHAVE RESULTANTES DE INDEXAÇÃO: Desenvolvimento de software; Gerenciamento de projetos; Administração de produção; Redes de comunicação; Internet; Relações de cooperação; Empresas; Computação; Administração. 10. APRESENTAÇÃO: X Nacional Internacional Instituto Tecnológico de Aeronáutica, ITA. São José dos Campos, 2003, 295 páginas 11. RESUMO: Está se tornando comum que o desenvolvimento de produtos ou serviços seja realizado conjuntamente por empresas parceiras ou contratadas, que podem estar situadas em diferentes partes do mundo. Em geral, para entregar o produto ou serviço especificado dentro do prazo e com o custo planejado, a disciplina de gerência de projetos tem sido empregada. Esta disciplina consiste de grupos de processos para o inicio, planejamento, controle, execução e o encerramento de atividades. Geralmente as empresas utilizam ferramentas computacionais para a realização do trabalho de gerenciamento e é comum encontrar parceiras de projeto e contratadas utilizando ferramentas distintas que possuem pouco ou nenhum recurso de integração. Isto resulta em dificuldades na gestão integrada do projeto e de seus subprojetos, contribuindo para um controle ineficiente, altos custos e descumprimento de prazos. Este trabalho endereça os aspectos de interoperabilidade entre softwares de gestão de projetos, envolvendo um levantamento dos requisitos de comunicação e integração, com base na metodologia de gestão proposta pelo PMBOK, para propor um modelo de solução em que estes softwares exponham funcionalidades que possam ser invocadas remotamente, para a realização de processamentos e troca de dados entre empresas parceiras de projeto. A tecnologia de serviços Web foi investigada como alternativa para a implementação da solução proposta devido ao fato de ser baseada em padrões abertos e tecnologias WWW disponíveis. A especificação de requisitos foi realizada com base nos conceitos do PMBOK e em entrevistas com a equipe de gerenciamento de projetos do Programa EMBRAER 170/190. Estes projetos são desenvolvidos em parceria com várias empresas, e cada uma delas é responsável pelo desenvolvimento de uma ou mais partes, que compõem os produtos desses projetos. O modelo de solução e a tecnologia de serviços Web foram testados e validados por meio da implementação de dois protótipos de software de gestão de projetos, concebidos a partir das tecnologias Java e .NET. Eles representam softwares de gestão de projetos de fabricantes diferentes que trocam dados, propiciando a aplicação da técnica Análise de Valor Agregado em projetos relacionados. 12. GRAU DE SIGILO: (X ) OSTENSIVO ( ) RESERVADO ( ) CONFIDENCIAL ( ) SECRETO Tese apresentada à Divisão de Pós-Graduação do Instituto Tecnológico de Aeronáutica como parte dos requisitos para obtenção do título de Mestre em Ciência no Curso de Pós-Graduação em Engenharia Eletrônica e Computação na Área de Informática. Osvandre Alves Martins Um Modelo de Interoperabilidade para Softwares de Gestão de Projetos Volume 2 Tese aprovada em sua versão final pelos abaixo assinados. Prof. Dr. Celso Massaki Hirata Orientador Prof. Dr. Homero Santiago Maciel Chefe da Divisão de Pós-Graduação Campo Montenegro São José dos Campos, SP - Brasil 2003 Um Modelo de Interoperabilidade para Softwares de Gestão de Projetos Osvandre Alves Martins Composição da Banca Examinadora: Prof. Dr. Edgar Toshiro Yano Prof. Dr. Celso Massaki Hirata Prof. Dr. Clovis Torres Fernandes Prof. Dr. José Henrique de Sousa Damiani Prof. Dr. Jorge Luis Risco Becerra Presidente – ITA Orientador – ITA Membro – ITA Membro – ITA Membro Externo – USP-Poli ITA Sumário – Volume 1 Agradecimentos........................................................................................................................................ ii Resumo ................................................................................................................................................... iii Abstract ................................................................................................................................................... iv Lista de Ilustrações ............................................................................................................................... viii Lista de Tabelas .......................................................................................................................................x Lista de Abreviaturas e Siglas................................................................................................................. xi Capítulo I ....................................................................................................................1 Introdução................................................................................................................................................ 1 1.1 Motivação.............................................................................................................................................. 1 1.2 Objetivos ............................................................................................................................................... 2 1.3 Escopo do Trabalho ............................................................................................................................... 2 1.4 Resumo dos Próximos Capítulos ........................................................................................................... 3 Capítulo II ...................................................................................................................5 A Gestão de Projetos e Projetos de Larga Escala Envolvendo Empresas Parceiras ............................ 5 2.1 Definições e Conceitos da Gestão de Projetos....................................................................................... 5 2.1.1 Processos e Grupos de Processos de Projetos ............................................................................. 6 2.1.2 Envolvidos e Interessados no Projeto ......................................................................................... 8 2.1.3 As Áreas de Conhecimento do Gerenciamento de Projetos........................................................ 8 2.1.4 Estrutura Analítica de Projeto................................................................................................... 11 2.1.5 Relato do Desempenho de Projetos .......................................................................................... 12 2.2 Projetos de Larga Escala Envolvendo Empresas Parceiras ................................................................. 21 2.3 Um exemplo de Projeto de Larga Escala que Envolve Parceiros ........................................................ 23 2.4 Ferramentas Computacionais de Apoio à Gestão de Projetos ............................................................. 27 2.4.1 Ferramentas de Apoio à Especificação, Análise e Controle de Requisitos............................... 28 2.4.2 Ferramentas de Apoio ao Planejamento e Monitoramento de Projetos .................................... 29 2.4.3 Ferramentas de Apoio à Comunicação e ao Trabalho Cooperativo .......................................... 32 2.4.4 Ferramentas de Apoio à Gestão Empresarial ............................................................................ 34 2.4.5 Ferramentas de Apoio ao Controle de Versões e Gerência de Configuração ........................... 35 2.5 Resumo do Capítulo e Alguns Comentários........................................................................................ 36 Capítulo III ................................................................................................................37 O Software como Serviço...................................................................................................................... 37 3.1 Sistemas Distribuídos e os Serviços Web............................................................................................ 37 3.2 Conceituação de Serviços Web ........................................................................................................... 40 3.3 Tecnologias de Suporte aos Serviços Web .......................................................................................... 43 3.3.1 A Linguagem de Marcação Estendida - XML .......................................................................... 45 3.3.2 O Protocolo de Comunicação SOAP ........................................................................................ 48 3.3.3 A Linguagem de Descrição de Serviços Web – WSDL............................................................ 51 3.3.4 O Serviço de Publicação de Serviços Web – UDDI ................................................................ 57 3.4 Arquiteturas de Aplicativos e Interação de Serviços Web................................................................... 61 3.5 A Arquitetura Global para Serviços Web em XML – GXA................................................................ 66 3.5.1 Segurança em Serviços Web..................................................................................................... 68 3.5.2 Transações em Serviços Web ................................................................................................... 69 3.5.3 Coordenação de Processos de Serviços Web ............................................................................ 69 3.5.4 Mensagens Confiáveis entre Serviços Web .............................................................................. 70 3.5.5 Roteamento e Referência de Serviços Web .............................................................................. 70 3.5.6 Anexos em Mensagens de Serviços Web.................................................................................. 71 3.6 Desempenho de Serviços Web ............................................................................................................ 72 3.7 Conceitos no Desenvolvimento de Serviços Web ............................................................................... 74 3.7.1 Fases do Ciclo de Desenvolvimento de Serviços Web ............................................................. 74 3.7.2 Abordagens para o Desenvolvimento de Serviços Web ........................................................... 76 3.8 Plataformas de Desenvolvimento de Serviços Web ............................................................................ 78 3.9 Serviços Web na Plataforma J2EE ...................................................................................................... 79 3.9.1 O Padrão ebXML...................................................................................................................... 81 3.9.2 Servlets ..................................................................................................................................... 82 3.9.3 Java Server Pages...................................................................................................................... 82 3.9.4 Java Beans e Enterprise Java Beans.......................................................................................... 83 3.9.5 Conectores J2EE ....................................................................................................................... 85 3.10 Serviços Web na Plataforma Microsoft .NET ..................................................................................... 86 3.11 Resumo do Capítulo e Resultados Obtidos.......................................................................................... 88 Capítulo IV................................................................................................................90 Uma Proposta de Solução de Interoperabilidade para a Gestão de Projetos de Larga Escala Envolvendo Empresas Parceiras .......................................................................................................... 90 4.1 Utilização de um Processo de Desenvolvimento de Software ............................................................. 90 4.2 Uma Visão do Problema e o Modelo de Solução Proposto ................................................................. 96 4.3 Um Plano para o Gerenciamento de Requisitos ................................................................................ 100 4.4 Especificação de Requisitos Funcionais ............................................................................................ 101 4.5 Especificação de Requisitos Não Funcionais .................................................................................... 105 4.6 Resumo do Capítulo e Resultados Obtidos........................................................................................ 105 Capítulo V...............................................................................................................107 Protótipos de Software de Gestão de Projetos Interoperáveis ........................................................... 107 5.1 Finalidade e Escopo dos Protótipos................................................................................................... 107 5.2 Principais Interfaces de Usuário ........................................................................................................ 110 5.3 Detalhes da Arquitetura ..................................................................................................................... 120 5.3.1 A Camada de Acesso a Dados (persistence) ........................................................................... 123 5.3.2 A Camada de Entidades de Negócio (business)...................................................................... 126 5.3.3 A Camada de Controle de Fluxos de Casos de Uso (control) ................................................. 129 5.3.4 A Camada de Serviços (services)............................................................................................ 131 5.3.5 A Camada de Apresentação (presentation) ............................................................................. 134 5.4 Detalhes da Implementação do Serviço Web .................................................................................... 136 5.4.1 O Serviço Web de Relato de Desempenho ............................................................................. 137 5.4.2 Consumidores do Serviço Web de Relato de Desempenho .................................................... 139 5.5 Cenário de Testes .............................................................................................................................. 141 5.6 Resumo do Capítulo e Resultados Obtidos........................................................................................ 149 Capítulo VI..............................................................................................................151 Conclusões, Contribuições e Sugestões de Trabalhos Futuros ......................................................... 151 6.1 Conclusões......................................................................................................................................... 151 6.2 Contribuições..................................................................................................................................... 152 6.3 Sugestões de Trabalhos Futuros ........................................................................................................ 152 Referências Bibliográficas ...................................................................................154 Glossário................................................................................................................158 Sumário – Volume 2 Apêndice 1 Visão (Conforme Modelo do RUP)...................................................................................................... 165 Apêndice 2 Glossário (Conforme Modelo do RUP) ............................................................................................... 176 Apêndice 3 Plano de Gerenciamento de Requisitos (Conforme Modelo do RUP)................................................ 183 Apêndice 4 Considerações e Requisitos de Serviços Web para Projetos de Larga Escala Envolvendo Empresas Parceiras ............................................................................................................................................. 193 Apêndice 5 Especificações Suplementares (Conforme Modelo do RUP) ............................................................. 221 Apêndice 6 Relação Analítica de Requisitos.......................................................................................................... 227 ITA - Instituto Tecnológico de Aeronáutica WS4PM - Serviços Web para Gestão de Projetos Visão Conforme Modelo do RUP Versão 1.2 Apêndice 1 WS4PM - Visão Versão Histórico da Revisão Descrição 13/02/2003 1.0 Versão Inicial do Documento de Visão Osvandre 21/03/2003 1.1 Revisão do Orientador Celso Hirata 25/09/2003 1.2 Versão final Osvandre Data Autor 166 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Visão Apêndice 1 Versão: 1.2 Data: 25/09/2003 Índice Analítico 1. Introdução 1.1 Referências 1.2 Siglas e Acrônimos 1.3 Visão Geral deste Documento 168 168 168 168 2. Posicionamento 2.1 Descrição do Problema 2.2 Sentença de Posição da Solução 169 169 169 3. Descrições dos Envolvidos e Interessados 3.1 Resumo dos Envolvidos e Interessados 3.2 Ambiente dos Usuários 3.3 Resumo das Principais Necessidades dos Envolvidos e Interessados 169 170 171 172 4. Visão Geral da Solução Tecnológica Proposta 4.1 Perspectiva 4.2 Suposições e Dependências 173 174 174 5. Recursos do Produto 5.1 Interoperabilidade de Softwares de Gestão de Projetos 5.2 Independência de Plataforma 5.3 Acessibilidade 5.4 Conformidade com Padrões 5.5 Facilidades para a Estabelecimento de Parcerias de Projetos. 5.6 Confiabilidade e Segurança 5.7 Suporte às Áreas de Conhecimento da Gestão de Projetos 5.8 Suporte aos Grupos de Processos da Gestão de Projetos 174 174 174 174 174 174 174 174 175 6. Outros Requisitos do Produto 175 IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 167 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Visão Apêndice 1 Versão: 1.2 Data: 25/09/2003 Visão 1. Introdução Este documento de Visão foi elaborado com base no Modelo de Documento de Visão proposto pelo Processo Unificado Rational – PUR (Rational Unified Process - RUP) [1] e é parte de um conjunto de artefatos gerados para a documentação do desenvolvimento de Serviços Web para a Gestão de Projetos (Web Services for Project Management – WS4PM). A finalidade deste documento é coletar, analisar e definir as necessidades e características gerais que devem ser endereçadas nos WS4PM. Ele enfoca os recursos que os envolvidos e interessados precisam e mostra porque essas necessidades existem. Os detalhes de como os WS4PM atendem a essas necessidades são descritos em Especificações Suplementares e de Caso de Uso. Os WS4PM visam a interoperabilidade entre Softwares de Gestão de Projetos de forma a atender a necessidades específicas do ambiente de projetos que envolvem parceiros. 1.1 Referências Os seguintes documentos são mencionados neste Documento de Visão e contribuíram para sua elaboração: [1] RUP – Rational Unified Process v2002.05.00, Copyright © Rational Software Corporation. [2] MARTINS, Osvandre Alves - Considerações e Requisitos de Serviços Web para Projetos de Larga Escala Envolvendo Empresas Parceiras – Documento desenvolvido com base no PMBOK e numa pesquisa de campo realizada na Empresa Brasileira de Aeronáutica – EMBRAER. [3] PMI – Project Management Institute – PMBOK 2000 - A Guide to the Project Management Body of Knowledge – PMBOK Guide, 2000. 1.2 Siglas e Acrônimos Vide documento Glossário. 1.3 Visão Geral deste Documento Este documento contém o posicionamento da Solução Tecnológica a ser gerada a partir da Especificação de Serviços Web para a Gestão de Projetos, os WS4PM, bem como uma análise dos envolvidos e interessados (stakeholders), e uma lista de características que eles deverão endereçar. Esses recursos foram definidos a partir de solicitações dos envolvidos e interessados na Gestão de Projetos de Larga Escala que Envolvem Parceiros. Os parágrafos que possuem os identificadores STRQ e FEAT indicam que estes foram rastreados para a ferramenta utilizada para auxiliar as atividades referentes à análise e gerenciamento de requisitos, o Rational RequisitePro. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 168 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Visão Apêndice 1 Versão: 1.2 Data: 25/09/2003 2. Posicionamento Esta seção apresenta um resumo do problema que está sendo resolvido e também uma sentença de posição da solução, comunicando o objetivo da mesma e sua importância para todo o pessoal envolvido. 2.1 Descrição do Problema O problema ausência da interoperabilidade de softwares de gestão de projetos, concebidos a partir de tecnologias distintas. Afeta empresas que desenvolvem projetos de larga escala envolvendo empresas parceiras e contratadas. O seu impacto é que existe um grande volume de retrabalho na execução das atividades dos Processos de Gestão desses projetos, reduzindo sua eficiência. Uma boa solução seria dotar os softwares de gestão de projetos de um conjunto de serviços Web que os permita interoperar por meio da Internet ou de uma intranet, trocando dados e realizando processamentos. 2.2 Sentença de Posição da Solução Para empresas que desenvolvem Projetos de Larga Escala que Envolvem Parceiros Quem Necessitar realizar a iniciação, o planejamento, o controle e o encerramento de seus projetos com parceiros, de forma integrada Os WS4PM (Web Services For Project Management) são um grupo de serviços Web Que Propiciam a interoperabilidade entre Softwares de Gestão de Projetos Diferente de O estado atual, onde a Gestão de Projetos de Larga Escala que Envolvem Parceiros ocorre de forma isolada entre as partes, exigindo retrabalho para a integração de informações pertinentes Os WS4PM Quando devidamente implementados em Softwares de Gestão de Projetos e publicados num servidor de registros (UDDI) representam uma economia de tempo e esforço na integração dos processos gerenciais de parceiros projetos. 3. Descrições dos Envolvidos e Interessados Para fornecer, de maneira eficiente, produtos e serviços que atendam às reais necessidades dos envolvidos e interessados (stakeholders), é necessário identificar e considerar todos eles como parte do processo de Modelagem de Requisitos. É necessário também identificar os usuários do sistema e assegurar que a comunidade de envolvidos os represente adequadamente. Esta seção fornece um perfil dos envolvidos e possíveis usuários dos WS4PM, e dos principais problemas que, de acordo com o ponto de vista deles, poderão ser abordados pela solução proposta. Na subsessão 3.3 são descritas as solicitações dos envolvidos e interessados. Geralmente elas são capturadas num artefato individual de solicitações dos envolvidos, mas neste caso, optou-se por especificá-las aqui. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 169 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Visão Apêndice 1 Versão: 1.2 Data: 25/09/2003 3.1 Resumo dos Envolvidos e Interessados Há uma série de envolvidos e interessados no desenvolvimento da interoperabilidade entre Softwares de Gestão de Projetos e nem todos eles são usuários finais. A lista a seguir é um resumo desses envolvidos e interessados que, de alguma forma, são afetados pelo desenvolvimento dos WS4PM. Nome Descrição Responsabilidades Executivos É a alta administração, tanto da Empresa Líder do Projeto, quanto das Empresas Parceiras do Projeto. Tomam decisões em alto nível, a partir de informações resumidas, do andamento dos projetos. Membros de Equipes Funcionais Refere-se ao corpo de profissionais que desempenham tarefas nas diversas áreas funcionais das organizações que se relacionam com a área de Gestão de Projetos. Realizam ações de suporte, em âmbito funcional, durante o andamento de projetos. Membros da Equipe de Gestão de Programas São profissionais que executam a gestão, em nível mais alto, de um conjunto de projetos, que representam um Programa. Coordenam, em alto nível, um conjunto de projetos Membros da Equipe de Gestão de Integração em Projetos Representam profissionais encarregados de garantir a integração dos processos da Gestão de Projetos. Desenvolvem Planos de Projetos, executam esses planos e realizam o Controle Integrado de Mudanças. Membros da Equipe de Escopo de Projetos Profissionais encarregados de realizar ações que definem e controlam o escopo de projetos. Autorizam o projeto, planejando, detalhando, verificando e controlando alterações no escopo visando assegurar que o projeto inclua todo o trabalho necessário e suficiente. Membros da Equipe de Gestão Prazo de Projetos Profissionais encarregados de realizar ações relacionadas ao prazo, em termos de tempo, necessário para a execução de projetos. Definem, sequenciam e estimam a duração das atividades. Com base nisso, Desenvolvem e controlam o cronograma de projetos. Membros da Equipe de Gestão de Custos de Projetos Profissionais que realizam ações que visam assegurar que o projeto será concluído dentro do orçamento aprovado. Planejam recursos, estimam e orçam e controlam os custos de projetos. Membros da Equipe de Gestão de Qualidade em Projetos Profissionais responsáveis pela Gestão da Qualidade em projetos. Executam o planejamento e controle da qualidade visando garanti-la ao longo de projetos. Membros da Equipe de Gestão de Recursos Humanos de Projetos Profissionais destinados à execução de processos que visam tornar mais efetivo o uso de recursos humanos envolvidos em projetos. Realizam o Planejamento Organizacional, a montagem e o desenvolvimento de equipes de projetos. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 170 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Visão Apêndice 1 Versão: 1.2 Data: 25/09/2003 Membros da Equipe de Gestão da Comunicação em Projetos Conjunto de profissionais que executam processos que visam garantir e regular a apropriada geração,coleta, disseminação, armazenamento e descarte de informações do projeto. Realizam o planejamento das comunicações, distribuição das informações, o relato de desempenho do projeto e o encerramento administrativo de projetos. Membros da Equipe de Gestão de Riscos em Projetos Grupo de profissionais voltados ao processo sistemático de identificar, analisar e responder a riscos em projetos. Realizam o planejamento da gerência de riscos, a identificação, a análise qualitativa e quantitativa de riscos, o planejamento de respostas, controle e monitoração de riscos. Membros da Equipe de Gestão de Aquisições em Projetos Grupo de profissionais que executam processos necessários à obtenção de bens e serviços externos à organização executora do projeto. Realizam o planejamento e preparação de aquisições, a obtenção de propostas , seleção de fornecedores, a administração e encerramento de contratos. Membro Equipe de Desenvolvimento de Softwares Pessoas diretamente envolvidas com o processo de desenvolvimento de software das organizações. Executam processos ligados à análise e desenvolvimento de sistemas de software para apoio às áreas funcionais e à área de Gestão de Projetos das empresas. 3.2 Ambiente dos Usuários O ambiente dos usuários de WS4PM é mesmo dos usuários de Software de Gestão de Projetos uma vez que as implementações desses serviços representam componentes que podem ser desenvolvidos e integrados a esses produtos. Como exemplo, pode-se citar os Escritórios de Programas e os Escritórios de Projetos de empresas que desenvolvem Projetos de Larga Escala e que contam com o envolvimento de empresas parceiras. Diversas plataformas de sistemas são utilizadas nesse ambiente, uma vez que os parceiros de projetos geralmente se encontram em localidades distintas com estruturas e ambientes distintos, não havendo padronizações. Alguns Softwares de Gestão de Projetos, com recursos de Ambientes Cooperativos através da Internet, já são uma realidade e oferecem uma série de ferramentas que resolvem, principalmente, o problema de dispersão geográfica entre as empresas parceiras. Além desses, são utilizados diversos outros, como: Softwares de Gestão Empresarial; Planilhas Eletrônicas; Editores de Texto; dentre outros. Esses softwares apoiam as Equipes Funcionais e de Gestão de Projetos no desempenho de suas funções. Os WS4PM não focam a interoperabilidade de softwares, que não sejam aqueles destinados à Gestão de Projetos e que são utilizados por empresas distintas, possibilitando a integração desses sistemas na modalidade B2Bi (Business To Business Integration). IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 171 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Visão Apêndice 1 Versão: 1.2 Data: 25/09/2003 3.3 Resumo das Principais Necessidades dos Envolvidos e Interessados Nesta seção são listados os principais problemas endereçados pelos envolvidos e interessados em relação à utilização de Softwares de Gestão de Projetos, tendo como base, os estudos e pesquisas realizadas. Problema Causas Solução Atual Soluções Propostas A pouca ou inexistente interoperabilidade entre os Softwares de Gestão de Projetos utilizados por parceiros. Grande número de Fornecedores de Softwares de Gestão de Projetos e pouca preocupação com a integração de seu produto a outros do mesmo seguimento. Construção de soluções proprietárias, como Sistemas de Mensagens, Ambientes Cooperativos que, em sua maioria, exigem retrabalho por parte das equipes de projeto. O desenvolvimento de serviços Web que permitam a interoperabilidade entre Softwares de Gestão de Projetos. A pouca ou inexistente integração de seus Softwares de Gestão de Projetos com as demais ferramentas que apoiam o processo. Produtos de software desenvolvidos ao longo do tempo para fins específicos, não levando em consideração aspectos de integração com outros sistemas. Utilização de recursos de importação e exportação de dados, e até redigitação de informações. Especificar um conjunto de serviços que permitam a Integração (EAI) de Softwares de Gestão de Projetos com outras ferramentas de software utilizadas em Áreas Funcionais da empresa. O alto volume de retrabalho quanto ao registro e processamento de informações dando margem a inconsistências e incompletezas. Diferentes ferramentas de software sendo utilizadas para auxílio à execução dos processos. Checagens de consistência manuais ou semiautomáticas. A implementação da interoperabilidade entre os sistemas com recursos de gatilhos que replicam informações e executam processamentos de forma automática. Dificuldades no processo de inicialização de parcerias, quanto à utilização de ferramentas, estabelecimento de padrões, documentos e técnicas. Grande diversidade de ferramentas disponíveis, ausência de padronização de processos, documentos e técnicas. Trabalho intenso e dirigido, geralmente com imposições de padrões feitas pela Empresa Líder do Projeto. O desenvolvimento da interoperabilidade entre os Softwares de Gestão de Projetos, contribuindo para a definição de padrões, em termos de comunicação de informações entre os envolvidos. É essencial entender a importância relativa atribuída pelo envolvido ou interessado à resolução de cada problema. Técnicas de ordenação e votação cumulativa indicam os problemas que devem ser resolvidos versus problemas que eles gostariam que fossem resolvidos. A tabela a seguir resume as principais necessidades dos envolvidos ou usuários que devem ser consideradas nos WS4PM. Elas foram definidas a partir do documento “Considerações e Requisitos de Serviços Web para Projetos de Larga Escala que Envolvem Parceiros” desenvolvido com base no PMBOK e numa pesquisa de campo realizada na Empresa Brasileira de Aeronáutica S/A - EMBRAER. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 172 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Visão Apêndice 1 Versão: 1.2 Data: 25/09/2003 Principais Necessidades dos Envolvidos e Interessados STRQ1 É necessário que se provenha interoperabilidade quanto a execução dos processos relacionados às 9 (nove) Áreas de Conhecimento da Gestão de Projetos, definidas pelo PMI , que são: 1 - STRQ1.1 Gestão da Integração ; 2 - STRQ1.2 Gestão do Escopo ; 3 - STRQ1.3 Gestão de Prazos ; 4 - STRQ1.4 Gestão de Custos ; 5 - STRQ1.5 Gestão de Qualidade ; 6 - STRQ1.6 Gestão de Recursos Humanos ; 7 - STRQ1.7 Gestão da Comunicação ; 8 – STRQ1.8 Gestão de Riscos ; e 9 – STRQ1.9 Gestão de Aquisições . STRQ2 É necessário que se provenha interoperabilidade na execução dos processos contantes nos 5 (cinco) Grupos de Processos da Gestão de Projetos, definidos pelo PMI , que são: 1 – STRQ2.1 Processos de Iniciação ; 2 – STRQ2.2 Processos de Planejamento ; 3 – STRQ2.3 Processos de Execução ; 4 – STRQ2.4 Processos de Controle ; e 5 – STRQ2.5 Processos de Encerramento . 4. Visão Geral da Solução Tecnológica Proposta Os WS4PM visam a interoperabilidade de produtos de Softwares de Gestão de Projetos. Esses serviços Web são aplicações que residem nas fronteiras das organizações, propiciando a interoperabilidade entre sistemas desenvolvidos e suportados por tecnologias distintas ou não, e que se encontram hospedados em locais remotos. A figura a seguir fornece uma visão geral da solução proposta. Empresa Líder do Projeto Software de Empresa Parceira do Projeto Provedor Consumidor WS4PM WS4PM Gestão de Projetos A Software de Gestão de Projetos Consumidor Provedor WS4PM WS4PM B Um determinado usuário do “Software de Gestão de Projetos B”, ao registrar uma dada informação, dispara uma “aplicação consumidora” que acessa remotamente um Serviço Web instalado na Empresa Líder do Projeto, esse serviço interage com o “Software de Gestão de Projetos A” processando as informações, e se for o caso, retornando resultados à Empresa Parceira do Projeto. O inverso pode ocorrer para alguns serviços, onde a Empresa Líder do Projeto é consumidora de serviços providos pela parceira. 173 IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Visão Apêndice 1 Versão: 1.2 Data: 25/09/2003 4.1 Perspectiva Acredita-se que os WS4PM, quando devidamente implementados, venham a contribuir muito para a Gestão de Projetos de Larga Escala que Envolvem Parceiros, aumentando a sinergia entre as Empresas Parceiras e a Líder do Projeto, simplificando a execução dos diversos processos que elas têm de executar para garantirem o retorno sobre seus investimentos em projetos. 4.2 Suposições e Dependências Uma vez que os WS4PM visam a interoperabilidade entre Softwares de Gestão de Projetos distintos ou não, e que estão instalados e executando em localidades remotas, para que esses serviços sejam eficientes e eficazes, cabe a cada fabricante de Software de Gestão de Projetos especificar detalhadamente e implementar seus WS4PM, verificando a melhor tecnologia, dentre aquelas que suportam a construção de serviços Web. Uma série de requisitos, como por exemplo, os relacionados a segurança de informação e controle de transações podem ser atendidos com o uso de especificações como a WS-Security e a WS-Transaction constantes na GXA (Global XML Architecture), porém pode-se afirmar que nesses aspectos existe uma dependência dessas especificações, por parte dos WS4PM. 5. Recursos do Produto Esta seção apresenta os principais recursos e características endereçados nos WS4PM. 5.1 Interoperabilidade de Softwares de Gestão de Projetos Os WS4PM propiciam a interoperabilidade de Softwares de Gestão de Projetos auxiliando equipes de gerenciamento de Projetos de Larga Escala que Envolvem Parceiros, no desempenho de suas funções. 5.2 Independência de Plataforma FEAT8 Os WS4PM, por se basearem na tecnologia de serviços Web, podem ser acessados por aplicações desenvolvidas em plataformas diferentes daquela que foi utilizada para implementá-los. 5.3 Acessibilidade FEAT9 O uso da tecnologia de serviços Web permite que os WS4PM sejam acessados através da rede mundial de computadores (Internet). 5.4 Conformidade com Padrões FEAT10 Os WS4PM são desenvolvidos conforme os padrões estabelecidos e propostos pela W3C (World Wide Web Consortium) e WS-I (Web Services Interoperability). 5.5 Facilidades para a Estabelecimento de Parcerias de Projetos. FEAT11 Os WS4PM de cada empresa podem ser registrados em Servidores UDDI públicos ou privados agilizando o processo de estabelecimento de parcerias de projetos, pois estas podem conhecer, mutuamente, informações sobre seus negócios e os WS4PM que cada uma disponibiliza. 5.6 Confiabilidade e Segurança FEAT12 Os WS4PM são desenvolvidos levando-se em consideração aspectos e confiabilidade e segurança no processamento de informações. 5.7 Suporte às Áreas de Conhecimento da Gestão de Projetos Os WS4PM endereçam funcionalidades referentes a todas as Áreas de Conhecimento da Gestão de Projetos, definidas no PMBOK. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 174 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Visão Apêndice 1 Versão: 1.2 Data: 25/09/2003 5.8 Suporte aos Grupos de Processos da Gestão de Projetos Decorrente do recurso anterior, os WS4PM suportam, praticamente, todos os Processos da Gestão de Projetos, definidos no PMBOK. 6. Outros Requisitos do Produto Devido ao contexto em que se inserem os WS4PM, pode-se citar como requisitos adicionais, principalmente, aqueles relacionados à disponibilidade, tolerância a falhas e usabilidade. Estes requisitos estão descritos no documento de “Especificações Suplementares”. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 175 ITA - Instituto Tecnológico de Aeronáutica WS4PM - Serviços Web para Gestão de Projetos Glossário Conforme Modelo do RUP Versão 1.2 Apêndice 2 Histórico da Revisão Data Versão Descrição Autor 03/03/2003 1.0 Rascunho inicial Osvandre 23/03/2003 1.1 Revisão do Orientador Celso Hirata/Osvandre 05/10/2003 1.2 Versão Final Osvandre 177 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Glossário Apêndice 2 Versão: 1.2 Data: 05/10/2003 Índice Analítico 1. Introdução 1.1 Finalidade 1.2 Escopo 1.3 Referências 1.4 Visão Geral 179 179 179 179 179 2. Definições 2.1 Termos Relacionados à Gestão de Projetos 2.1.1 Áreas de Conhecimento da Gestão de Projetos 2.1.2 Empresas Parceiras 2.1.3 Empresa Proprietária 2.1.4 Envolvidos e Interessados 2.1.5 Escritórios de Programas 2.1.6 Escritórios de Projetos 2.1.7 PMBOK – Project Management Body of Knowledge 2.1.8 PMI – Project Management Institute 2.1.9 WBS – Work Breakdown Structure 2.2 Termos Técnicos de Informática 2.2.1 Artefato 2.2.2 B2Bi - BusinessTo Business Integration 2.2.3 Controle de Transação 2.2.4 CORBA- Common Object Request Broker Architecture 2.2.5 DCOM - Distributed Component Object Model 2.2.6 Documento de Visão 2.2.7 EAI- Enterprise Application Integration 2.2.8 Firewall 2.2.9 GXA – Global XML Architecture 2.2.10 Item de Rastreabilidade 2.2.11 HTTP – Hipertext Transfer Protocol 2.2.12 HTTPS - Hipertext Transfer Protocol Secure 2.2.13 Kerberos 2.2.14 Rastreabilidade 2.2.15 RMI- Remote Method Invocation 2.2.16 RUP – Rational Unified Process® 2.2.17 Serviço Web (Web Service) 2.2.18 SOAP – Simple Object Access Protocol 2.2.19 UDDI- Universal Description, Discover and Integration 2.2.20 UML - Unified Modeling Language 2.2.21 X.509 (Certificados Digitais) 2.2.22 W3C – World Wide Web Consortium 2.2.23 WS-I – Web Services Interoperability 2.2.24 WSDL - Web Service Description Language 2.2.25 WS-Security 2.2.26 WS-Transaction 179 179 179 179 179 179 180 180 180 180 180 180 180 180 180 180 180 180 181 181 181 181 181 181 181 181 181 181 181 181 182 182 182 182 182 182 182 182 IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 178 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Glossário Apêndice 2 Versão: 1.2 Data: 05/10/2003 Glossário 1. Introdução Este documento de Glossário foi elaborado com base no Modelo de Glossário proposto pelo Processo Unificado Rational – PUR (Rational Unified Process - RUP) [1] e é parte de um conjunto de artefatos gerados para a documentação do desenvolvimento de Web Services para a Gestão de Projetos (Web Services for Project Management – WS4PM). 1.1 Finalidade A finalidade deste documento é definir a terminologia específica do domínio do problema endereçado, explicando termos, que poderão ser desconhecidos para o leitor, e que constam em outros artefatos gerados pela execução dos Processos de Engenharia de Software. Geralmente, este documento pode ser usado como um dicionário de dados informal, capturando definições de dados para que as descrições de casos de uso e outros documentos relacionados à construção dos WS4PM possam se concentrar no que o sistema deve fazer. Este documento teve seu início e é atualizado frequentemente (quando necessário) durante o progresso do projeto para desenvolvimento dos WS4PM. 1.2 Escopo Os termos que serão inclusos nesse glossário serão somente aqueles que são citados nos demais artefatos produzidos no levantamento e análise de requisitos para a implementação do WS4PM. 1.3 Referências [1] RUP – Rational Unified Process v2002.05.00, Copyright © Rational Software Corporation. [2] PMI – Project Management Institute – PMBOK 2000 - A Guide to the Project Management Body of Knowledge – PMBOK Guide, 2000. 1.4 Visão Geral Os termos estão organizados em ordem alfabética dentro de dois grupos distintos, um referente aos termos relacionados à Gestão de Projetos e outro que agrupa os termos relacionados à área de informática. 2. Definições 2.1 Termos Relacionados à Gestão de Projetos Esta seção contempla os termos citados nos documentos de especificação e gerência de requisitos relacionados à Área de Gestão de Projetos. 2.1.1 Áreas de Conhecimento da Gestão de Projetos Refere-se às nove áreas de conhecimento definidas pelo PMI, que agrupam funcionalidades com fins específicos que executam processos dentro gestão de projetos. 2.1.2 Empresas Parceiras Refere-se às empresas que possuem contratos de parceria e desenvolvem componentes que são integrados ao produto de um projeto iniciado por uma empresa proprietária. 2.1.3 Empresa Proprietária Refere-se à empresa mandatária de um projeto que conta com a participação de parceiros. 2.1.4 Envolvidos e Interessados São todos aqueles que são afetados de forma direta ou indireta pelos resultados do projetos. O termo IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 179 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Glossário Apêndice 2 Versão: 1.2 Data: 05/10/2003 em inglês que os define é stakeholders. 2.1.5 Escritórios de Programas Um conjunto de recursos materiais e humanos destinados à execução de processos relacionados à Gestão de Programas. Os programas, no contexto de projetos, se referem a um conjunto de projetos. 2.1.6 Escritórios de Projetos Um conjunto de recursos materiais e humanos destinados à gestão de Projetos específicos. 2.1.7 PMBOK – Project Management Body of Knowledge Publicação elaborada pelo PMI – Project Management Institute que reúne os principais conceitos e conhecimentos relacionados à Gestão de Projetos, obtidos através do consenso e da contribuição de diversos profissionais e organizações relacionadas. 2.1.8 PMI – Project Management Institute Organização não governamental dedicada à definição e divulgação as melhores práticas relacionadas à Gestão de Projetos. 2.1.9 WBS – Work Breakdown Structure A tradução desse termo para português é Estrutura Analítica do Projeto – EAP. Refere-se a um agrupamento de componentes do projeto que organiza e define seu escopo total. É orientada para a elaboração de subprodutos denominados deliverables. 2.2 Termos Técnicos de Informática Esta seção contempla os termos citados nos documentos de especificação e gerência de requisitos relacionados à Área de Informática. 2.2.1 Artefato Definidos pelo Processo Unicificado Rational (RUP), os artefatos são produtos de trabalho finais ou intermediários produzidos e usados durante os projetos de software. Os artefatos são usados para capturar e transmitir informações do projeto. 2.2.2 B2Bi - BusinessTo Business Integration Modalidade de integração, através da Web, de sistemas heterogêneos ou não, realizada entre organizações distintas no intuito de estreitar relacionamentos de parceria comercial. 2.2.3 Controle de Transação É um método de coordenar um conjunto de alterações em bancos de dados visando garantir a integridade e consistência dos dados manipulados. 2.2.4 CORBA- Common Object Request Broker Architecture Arquitetura/tecnologia para a distribuição de objetos em ambientes distribuídos independente do sistema operacional em uso. 2.2.5 DCOM - Distributed Component Object Model Arquitetura/tecnologia proposta pela Microsoft como concorrente da CORBA na distribuição de objetos em ambientes distribuídos Microsoft apenas. 2.2.6 Documento de Visão Artefato que define a visão que os envolvidos têm do produto a ser desenvolvido, em termos das necessidades e características mais importantes. Por conter uma descrição dos requisitos centrais IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 180 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Glossário Apêndice 2 Versão: 1.2 Data: 05/10/2003 pretendidos, ele proporciona a base contratual para requisitos técnicos mais detalhados. 2.2.7 EAI- Enterprise Application Integration Modalidade de integração de sistemas computacionais heterogêneos, existentes dentro das fronteiras de uma organização. 2.2.8 Firewall Tecnologia utilizada para evitar que usuários não autorizados acessem recursos disponíveis em servidores conectados à Internet. 2.2.9 GXA – Global XML Architecture Architetura Global de XML é um conjunto de especificações construídas sobre XML, que são blocos de construção para a implementação de Serviços Web dotados das habilidades como segurança, controle de transações, mensagem confiável, dentre outras. 2.2.10 Item de Rastreabilidade É qualquer elemento do projeto que necessite ser explicitamente rastreado a partir de outro item textual ou de modelo, a fim de manter um controle das dependências entre eles. 2.2.11 HTTP – Hipertext Transfer Protocol Protocolo de transporte utilizado para acesso a certos recursos na internet, geralmente públicos. 2.2.12 HTTPS - Hipertext Transfer Protocol Secure Extensão do HTTP que provê segurança das informações quando de seu transporte, permitindo a comunicação segura entre dois pontos da web. 2.2.13 Kerberos Kerberos é um serviço de autenticação distribuída desenvolvido no MIT (Massachusetts Institute of Technology) que permite um parceiro provar sua identidade perante um outro parceiro sem enviar dados confidenciais pela rede. Esse processo é realizado como um serviço de autenticação utilizando criptografia convencional; opcionalmente ele também fornece integridade e confidencialidade das mensagens intercambiadas. 2.2.14 Rastreabilidade É a capacidade de rastrear um elemento do projeto a outros elementos correlatos, especialmente aqueles relacionados a requisitos. 2.2.15 RMI- Remote Method Invocation Protocolo de comunicação de objetos remotos Java. 2.2.16 RUP – Rational Unified Process® O Processo Unificado Rational (também chamado de processo RUP®) é um processo de engenharia de software que oferece uma abordagem baseada em disciplinas para atribuir tarefas e responsabilidades dentro de uma organização de desenvolvimento. 2.2.17 Serviço Web (Web Service) Serviço disponibilizado na web na forma de interfaces de software, permitindo a interoperabilidade de sistemas. 2.2.18 SOAP – Simple Object Access Protocol Protocolo simples de acesso a objetos baseado em XML que utiliza para transporte o protocolo HTTP ou outro, sendo utilizado na comunicação entre Serviços Web. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 181 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Glossário Apêndice 2 Versão: 1.2 Data: 05/10/2003 2.2.19 UDDI- Universal Description, Discover and Integration Serviço de registro de entidades de negócios e serviços de negócio oferecidos por elas que permite a descrição, descoberta e integração de Serviços Web. 2.2.20 UML - Unified Modeling Language É uma linguagem de Modelagem que Visual de sistemas, composta de diversos diagramas que permitem visões diferenciadas do Projeto de Software, em níveis de abstração diferentes. 2.2.21 X.509 (Certificados Digitais) Modelo proposto pela ISO que possibilita a implementação de protocolos que autenticam e verificam chaves públicas em cadeia. 2.2.22 W3C – World Wide Web Consortium Organização internacional responsável pela padronização de tecnologias para a Web. 2.2.23 WS-I – Web Services Interoperability Consórcio formado por diversos fabricantes de software que visa acelerar o desenvolvimento e a implementação dos web services sobre diversas plataformas e aplicações, assim como linguagens de programação. 2.2.24 WSDL - Web Service Description Language Linguagem de descrição de Serviços Web utilizada para fornecer detalhes sobre o serviço disponibilizado, permitindo a implementação de sistemas que interajam com o serviço. 2.2.25 WS-Security E uma especificação que descreve como conceitos-chave de segurança como encriptação, autenticação, e assinatura digital, podem ser implementados em Serviços Web. 2.2.26 WS-Transaction É uma especificação que visa criar mecanismos que permitam a implementação do conceito de transações em Serviços Web. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 182 ITA – Instituto Tecnológico de Aeronáutica WS4PM - Serviços Web para Gestão de Projetos Plano de Gerenciamento de Requisitos Versão 1.2 Apêndice 3 WS4PM – Plano de Gerenciamento de Requisitos Histórico da Revisão Data Versão Descrição Autor 18/02/2003 1.0 Versão Inicial do Documento Osvandre 21/03/2003 1.1 Revisão do Orientador Celso Hirata 23/07/2003 1.2 Versão Final Osvandre 184 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Plano de Gerenciamento de Requisitos Apêndice 3 Versão: 1.2 Data: 23/07/2003 Índice Analítico 1. Introdução 1.1 Finalidade 1.2 Escopo 1.3 Definições, Acrônimos e Abreviações 1.4 Referências 186 186 186 186 186 2. Gerenciamento de Requisitos 2.1 Organização, Responsabilidades e Interfaces 2.2 Ferramentas, Ambiente e Infra-estrutura 187 187 187 3. O Programa de Gerenciamento de Requisitos 3.1 Identificação de Requisitos 3.2 Rastreabilidade 3.2.1 Critérios de Solicitações de Envolvidos e Interessados (STRQ) 3.2.2 Critérios de Características (FEAT) 3.2.3 Critérios de Casos de Uso (UC) 3.2.4 Critérios de Especificações Suplementares (SS) 3.3 Atributos 3.3.1 Definição dos Atributos 3.3.1 Utilização dos Atributos por Tipo de Requisito 3.4 Relatórios e Métricas 3.5 Gerenciamento de Mudanças de Requisitos 3.5.1 Processamento e Aprovação de Solicitações de Mudança 3.5.2 Comitê de Controle de Mudança (CCB) 3.5.3 Baselines do Projeto 3.6 Fluxos de Trabalho e Atividades 188 188 189 189 189 189 189 189 189 192 192 192 192 192 192 192 4. Marcos (milestones) 192 5. Treinamento e Recursos 192 IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 185 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Plano de Gerenciamento de Requisitos Apêndice 3 Versão: 1.2 Data: 23/07/2003 Plano de Gerenciamento de Requisitos 1. Introdução Este documento de Plano de Gerenciamento de Requisitos foi elaborado com base no Modelo de Plano de Gerenciamento de Requisitos proposto pelo Processo Unificado Rational – PUR (Rational Unified Process RUP) [1] e é parte de um conjunto de artefatos gerados para a documentação do desenvolvimento de Serviços Web para a Gestão de Projetos (Web Services for Project Management – WS4PM). 1.1 Finalidade Este documento descreve as regras utilizadas para se estabelecer os documentos de requisitos, tipos, atributos e a rastreabilidade a serem utilizados para gerenciar os requisitos para a especificação dos Serviços Web Aplicáveis à Gestão de Projetos, os WS4PM. Ele também serve como documento de configuração para a ferramenta selecionada para auxiliar o processo de análise e gerenciamento de requisitos. 1.2 Escopo Este Plano de Gerenciamento de Requisitos documenta a abordagem seguida para registrar, estruturar, e gerenciar requisitos para a especificação inicial dos WS4PM. 1.3 Definições, Acrônimos e Abreviações Vide o documento Glossário. 1.4 Referências [1] RUP – Rational Unified Process v2002.05.00, Copyright © Rational Software Corporation. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 186 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Plano de Gerenciamento de Requisitos Apêndice 3 Versão: 1.2 Data: 23/07/2003 2. Gerenciamento de Requisitos Esta seção apresenta a forma como a organização, que está desenvolvendo um projeto de software, está estruturada em termos de equipe, papéis, responsabilidades e interfaces externas, bem como as ferramentas, o ambiente e a infra-estrutura desejados para se executar, a contento, o Gerenciamento de Requisitos. 2.1 Organização, Responsabilidades e Interfaces Segundo o RUP [1], esta seção deve conter informações que definem a Organização que está desenvolvendo o Projeto de Software, as responsabilidades de cada Papel dentro da Equipe de Desenvolvimento (Analista, Gerente de Desenvolvimento, Arquiteto de Software, etc) e as Interfaces Externas, ou seja, pessoas que irão interagir com a equipe de desenvolvimento do projeto durante a especificação e análise dos requisitos. Por se tratar de um trabalho acadêmico, desenvolvido por um Aluno sob a orientação de um professor de uma Instituição de Ensino, esse item será descrito sucintamente conforme a tabela abaixo, no intuito de fornecer informações sobre os envolvidos nesse trabalho inicial de especificação dos WS4PM. Organização ITA – Instituto Tecnológico de Aeronáutica IEC – Divisão de Ciência da Computação Responsabilidades Especialista em Requisitos Papel desempenhado pelo aluno que irá capturar a especificação de uma parte das funcionalidades a serem endereçadas pelos Serviços Web Aplicáveis à Gestão de Projetos, descrevendo o aspecto Requisitos de um ou vários casos de uso e outros requisitos de software. Gerente do Projeto Papel desempenhado pelo orientador do aluno que irá especificar prioridades, coordenar as interações com os possíveis usuários dos serviços que serão especificados, e tentar manter o aluno em sua meta correta. Interfaces Externas O Especialista em Requisitos fará o levantamento de requisitos com base na pesquisa de campo na Empresa Brasileira de Aeronáutica S/A (EMBRAER). O principal contato é o Sr. Paulo Cesar Souza Lucas (Tim), Program Officer EMBRAER-170/190. 2.2 Ferramentas, Ambiente e Infra-estrutura Para auxiliar o processo de Gerenciamento de Requisitos será necessária a utilização dos seguintes softwares: Um editor de textos, por exemplo, o Microsoft Word XP; Uma ferramenta computacional para apoio à Gerência de Requisitos, por exemplo, o Rational RequisitePro; e Um sistema operacional que suporte o uso das ferramentas citadas anteriormente, por exemplo, o Microsoft Windows 2000. Os softwares citados anteriormente se encontram disponíveis e instalados nos computadores dos laboratórios da Divisão de Ciência da Computação do Instituto Tecnológico de Aeronáutica, podendo ser utilizados para o desenvolvimento dos trabalhos. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 187 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Plano de Gerenciamento de Requisitos Apêndice 3 Versão: 1.2 Data: 23/07/2003 3. O Programa de Gerenciamento de Requisitos 3.1 Identificação de Requisitos Esta seção descreve os itens de rastreabilidade e define como eles devem ser nomeados, marcados e numerados. Para a execução do Gerenciamento de Requisitos referentes aos WS4PM serão considerados e produzidos os seguintes artefatos : Título do Documento Formato do Arquivo Nome do Arquivo Documento de Visão Texto do Microsoft Word Visão.VIS Glossário Texto do Microsoft Word Glossário.GLS Considerações e Levantamento Preliminar de Requisitos de Serviços Web para a Gestão de Projetos Texto do Microsoft Word Considerações e LPR de Serviços Web para a Gestão de Projetos.SRS Especificações Suplementares Texto do Microsoft Word Especificações Suplementares.SS Com relação a Itens de Rastreabilidade, foram definidos os seguintes : Identificador Título Descrição STRQ Solicitação dos Envolvidos (Stakeholder Requests) As principais solicitações dos envolvidos e interessados (stakeholders) WS4PM. FEAT Recurso (Feature) Condições ou recursos endereçados aos Serviços Web Aplicáveis à Gestão de Projetos. UC Caso de Uso (Use Case – UC) Requisitos funcionais dos Serviços Web a serem desenvolvidos. Serão endereçados a Casos de Uso. SS Especificações Suplementares (Supplementary Specifications - SS) Requisitos não funcionais para os WS4PM. A tabela a seguir apresenta os tipos de artefatos ou documentos de requisitos, apontando também, os Itens de Rastreabilidade contidos neles. Artefato Item de Rastreabilidade (Tipo de Documento) (Tipo de Requisito) Visão (VIS) Solicitação dos Envolvidos (STRQ) Visão (VIS) Característica (FEAT) Considerações e Levantamento Preliminar de Requisitos de Serviços Web para a Gestão de Projetos (SRS) Caso de Uso (UC) Especificações Suplementares (SS) Especificação Suplementar (SS) IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 188 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Plano de Gerenciamento de Requisitos Apêndice 3 3.2 Versão: 1.2 Data: 23/07/2003 Rastreabilidade O diagrama a seguir expressa a rastreabilidade entre os ítens identificados anteriormente. STRQ FEAT UC SS 3.2.1 Critérios de Solicitações de Envolvidos e Interessados (STRQ) As solicitações dos envolvidos e interessados (STRQ) são descritas em alto nível, e representam, de forma bastante resumida, o que deve ser endereçado pelos WS4PM a fim de atender as expectativas dos Envolvidos e Interessados. Elas foram definidas a partir do Documento de Visão e são rastreadas para recursos oferecidos pelos serviços (FEAT). 3.2.2 Critérios de Características (FEAT) As características são definidas a partir do detalhamento de itens de Solicitações de Envolvidos e Interessados (STRQ) e a partir de outros requisitos, alguns deles constantes no documento de Visão. Esses recursos são rastreados para Casos de Uso (UC) e para Especificações Suplementares (SS). Uma Característica (FEAT) pode ser rastreado a partir de zero ou mais Casos de Uso (UC), ou a partir de zero ou mais Especificações Suplementares (SS). 3.2.3 Critérios de Casos de Uso (UC) São os requisitos de serviços Web para a gestão de projetos que possivelmente serão implementados e representam algo de valor observável aos usuários. Eles são rastreados para Características (FEAT). 3.2.4 Critérios de Especificações Suplementares (SS) São os requisitos não funcionais relacionados aos WS4PM que deverão ser observados e atendidos no ato da implementação. Eles são rastreados para Características (FEAT). 3.3 Atributos Para cada item de rastreabilidade identificado, são definidos atributos que serão utilizados para controlar e facilitar a análise dos requisitos de WS4PM. No Plano de Gerenciamento de Requisitos, os Atributos são primeiramente definidos e na seqüência, é indicado o seu uso em relação a cada item de rastreabilidade (Tipo de Requisito). 3.3.1 Definição dos Atributos Atribuído a Em muitos Projetos, as características serão atribuídas a “Equipes de Recursos” responsáveis por averiguar e escrever os requisitos do software, e também por sua implementação. Este atributo ajudará a todos os integrantes da Equipe do Projeto de desenvolvimento dos WS4PM a compreender melhor as suas responsabilidades. Afeta a Arquitetura IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 189 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Plano de Gerenciamento de Requisitos Apêndice 3 Versão: 1.2 Data: 23/07/2003 O valor desse atributo é booleano (true/false) e é definido pelo Arquiteto de Software. Ele se aplica a Casos de Uso, possibilitando sua priorização. Casos de Uso arquiteturalmente significativos devem ser abordados primeiro. Comentários Este atributo é um campo do tipo texto designado para inserir comentários a respeito do Requisito. Ele pode conter, por exemplo, explicações, ou até mesmo exemplificações sobre a solicitação. Dificuldade Definido pelo Gerente de Desenvolvimento de uma equipe com base em pesquisas feitas com os envolvidos e interessados, define a ordem de implementação dos serviços de forma a atender suas espectativas. Este atributo pode assumir um dos seguintes valores: Alta Média Baixa Requisito com grau de dificuldade elevado para sua satisfação, o que representa maior risco para o sucesso do projeto de desenvolvimento dos WS4PM. Devem ser abordados a priori e satisfeitos ou descartados. Requisito com grau médio de dificuldade, porém não representa um risco muito alto para o projeto de desenvolvimento dos WS4PM. Deveria ser abordado logo após todos os requisitos de dificuldade alta terem sido satisfeitos ou descartados. Requisito fácil de se atender, podendo ser satisfeitos a posteriori. Esforço Valor a ser definido pela equipe de desenvolvimento, representando as estimativas de tempo e recursos necessários para o projeto e implementação do requisito. Como algumas funcionalidades necessitam de mais tempo e de mais recursos do que outras, estimar o número de semanas de participação de cada pessoa ou equipe, as linhas de código necessárias ou os pontos de função, por exemplo, é uma maneira de avaliar a complexidade e definir expectativas do que poderá ou não ser feito em um determinado período de tempo. Podendo ser utilizado no gerenciamento do escopo e na determinação da prioridade de desenvolvimento. Estabilidade Este atributo é definido pelo analista e pela equipe de desenvolvimento. Baseia-se na probabilidade do requisito sofrer mudanças ou na probabilidade de a equipe vir a compreender o requisito de uma forma diferente. É usado para ajudar a estabelecer prioridades de desenvolvimento e determinar os itens para os quais uma averiguação adicional é a próxima ação apropriada. Prioridade Definido com base em pesquisas feitas com os envolvidos e interessados, define a ordem de implementação dos serviços de forma a atender suas expectativas. Este atributo pode assumir um dos seguintes valores: Alta Média Baixa Requisitos essenciais. A não-implementação implica que a solução proposta não atenderá às necessidades do cliente. Todos esses requisitos deverão ser implementados numa primeira versão do produto. Requisitos importantes mas num grau de relevância menor que os classificados com “Prioridade Alta”, sua implementação não necessariamente precisa ser feita na primeira versão. Requisitos menos importantes que o cliente gostaria que fossem atendidos, porém, se o produto não contemplá-los sua satisfação não será afetada. Release-alvo Este atributo é um campo do tipo texto utilizado para registrar a versão planejada do produto em que o Requisito será contemplado. Ele poderá ser usado para alocar Recursos do documento Visão num 190 IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Plano de Gerenciamento de Requisitos Apêndice 3 Versão: 1.2 Data: 23/07/2003 release de baseline específico. Quando este atributo for usado em conjunto com o campo de Status, descrito a seguir, a Equipe poderá propor, registrar e discutir vários Requisitos do Protótipo do Sistema sem que eles tenham que ser, necessariamente, desenvolvidos. Somente serão implementados os Requisitos cujo Status estiverem definidos como Incorporado e cujo Release-Alvo estiver definido. Quando ocorrer o gerenciamento do escopo, o Número da Versão do Release-alvo poderá ser aumentado, de modo que o item permaneça no documento Visão, mas seja programado para um release posterior. Risco Definido pela equipe de desenvolvimento e baseado na probabilidade de ocorrerem eventos indesejáveis no projeto como, por exemplo, custos excessivos, atrasos na programação ou até cancelamentos. A maior parte dos gerentes de projeto considera que a categorização dos riscos em altos, médios e baixos é suficiente, embora sejam possíveis gradações ainda mais específicas. Freqüentemente, os riscos poderão ser avaliados indiretamente medindo-se o grau de incerteza (intervalo) da programação estimada das equipes dos projetos. Status Controla o andamento durante a definição da linha de base da especificação podendo assumir os seguintes valores: Proposto Aprovado Incorporado Validado Usado para descrever Requisitos que estão sendo discutidos, mas que ainda não foram revisados nem aceitos pelo “canal oficial”. Requisitos que são considerados úteis e viáveis, e que foram aprovados para implementação pelo canal oficial. Requisitos incorporados à baseline do produto, num momento específico no tempo. Requisitos que estão incorporados à baseline do produto e que foram validados pelos usuários e stakeholders. Classe Representa se uma determinada Característica especificada afeta a funcionalidade do sistema ou não. É utilizado para indicar se a Característica representa um Requisito Funcional ou um Requisito Não Funcional: Funcional Não Funcional IEC – Divisão de Ciência da Computação Indica que a característica representa um Requisito Funcional referente aos WS4PM. Indica que a característica representa um Requisito Não Funcional referente aos WS4PM. ©ITA - Instituto Tecnológico de Aeronáutica, 2003 191 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Plano de Gerenciamento de Requisitos Apêndice 3 Versão: 1.2 Data: 23/07/2003 3.3.1 Utilização dos Atributos por Tipo de Requisito A Tabela abaixo exibe o planejamento da utilização do conjunto de atributos definido, para cada Tipo de Requisito. Tipo de Requisito Atributo Solicitaçõe s dos Envolvidos (STRQ) Atribuído a Afeta a Arquitetura Comentário Dificuldade Esforço Estabilidade Prioridade Release Alvo Risco Status Classe Recursos (FEAT) ● Casos de Uso (UC) ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 3.4 Relatórios e Métricas A ser definido. 3.5 Gerenciamento de Mudanças de Requisitos 3.5.1 Processamento e Aprovação de Solicitações de Mudança A ser definido. 3.5.2 Comitê de Controle de Mudança (CCB) A ser definido. 3.5.3 Baselines do Projeto A ser definido. 3.6 Fluxos de Trabalho e Atividades A ser definido. Requisitos Suplementare s (SS) ● ● ● ● ● ● ● ● ● 4. Marcos (milestones) A ser definido. 5. Treinamento e Recursos A ser definido. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 192 Considerações e Requisitos de Serviços Web Para Projetos de Larga Escala Envolvendo Empresas Parceiras Apêndice 4 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 Introdução Este documento contém um levantamento preliminar de requisitos de interoperabilidade relacionados aos processos da Gestão de Projetos frente a Projetos de Larga Escala Envolvendo Parceiros. O PMBOK [PMI00], define esses processos como uma série de ações que geram resultados e se enquadram em dois grupos: processos da gerência de projetos e processos orientados a produtos. Com relação aos processos da gerência de projetos existem trinta e nove processos organizados em cinco grupos e em nove áreas de conhecimento. Nas próximas seções desse documento, os grupos de processos e seus componentes são comentados sucintamente. Uma apresentação das considerações sobre Projetos de Larga Escala que envolvem parceiros e um levantamento preliminar de requisitos de interoperabilidade entre esses parceiros são feitos com base numa pesquisa de campo realizada na Empresa Brasileira de Aeronáutica – EMPBRAER, mais especificamente com a Gestão do Programa EMBRAER-170/190. As informações coletadas foram confrontadas com as definições do PMBOK e um conjunto de fichas foi elaborado no sentido de agrupar informações e facilitar análises. Cada ficha apresenta a seguinte estrutura: • um identificador; • o nome do processo; • a área de conhecimento que o processo se relaciona (entre parênteses); • uma breve descrição do processo; • uma lista dos processos de seu grupo, sobre os quais sua execução interfere diretamente; e por fim • as eventuais considerações e requisitos identificados. Às considerações e requisitos são atribuídos identificadores, no intuito de facilitar análises posteriores. Esses identificadores apresentam uma sintaxe, por exemplo: Ca1.1 é um identificador que representa uma Consideração apontada no grupo de processos “a” (Iniciação), processo “1” (Iniciação) cujo contador é 1. Um exemplo de requisito é Rb1.3 que representa um requisito identificado no grupo de processos “b” (Planejamento), no processo “1” (Definição das Atividades), cujo contador é 3. A tabela a seguir, baseada nos processos definidos no PMBOK, além de fornecer uma visão da abrangência das considerações e requisitos de interoperabilidade especificados, IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 194 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 exibe a ordem de apresentação e os identificadores atribuídos aos processos, conforme a regra apresentada no parágrafo anterior. id a a1 b b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20 b21 c c1 c2 c3 c4 c5 c6 c7 d d1 d2 d3 d4 d5 d6 d7 d8 e e1 e2 Processo da Gestão de Projeto Processos de Iniciação Processo de Iniciação Processos de Planejamento Planejamento do Escopo Detalhamento do Escopo Definição das Atividades Sequenciamento das Atividades Estimativa de Duração das Atividades Desenvolvimento do Cronograma Planejamento da Gestão de Riscos Planejamento dos Recursos Estimativa dos Custos Orçamentação dos Custos Desenvolvimento do Plano do Projeto Planejamento da Qualidade Planejamento Organizacional Montagem da Equipe Planejamento da Comunicação Identificação dos Riscos Análise Qualitativa dos Riscos Análise Quantitativa dos Riscos Planejamento de Resposta a Riscos Planejamento de Aquisições Preparação das Aquisições Processos de Execução Execução do Plano do Projeto Garantia da Qualidade Desenvolvimento da Equipe Distribuição das Informações Pedido de Propostas Seleção de Fornecedores Administração de Contratos Processos de Controle Relato de Desempenho Controle Integrado de Mudanças Verificação do Escopo Controle de Mudanças do Escopo Controle do Cronograma Controle dos Custos Controle da Qualidade Controle e Monitoração de Riscos Processos de Encerramento Encerramento de Contratos Encerramento Administrativo IEC – Divisão de Ciência da Computação Área de Conhecimento Gestão do Escopo Gestão de Escopo Gestão de Escopo Gestão de Prazo Gestão de Prazo Gestão de Prazo Gestão de Prazo Gestão de Riscos Gestão de Custos Gestão de Custos Gestão de Custos Gestão da Integração Gestão da Qualidade Gestão de RH Gestão de RH Gestão da Comunicação Gestão de Riscos Gestão de Riscos Gestão de Riscos Gestão de Riscos Gestão de Aquisição Gestão de Aquisição Gestão da Integração Gestão da Qualidade Gestão de RH Gestão da Comunicação Gestão de Aquisição Gestão de Aquisição Gestão de Aquisição Gestão da Comunicação Gestão da Integração Gestão de Escopo Gestão de Escopo Gestão de Prazo Gestão de Custos Gestão da Qualidade Gestão de Riscos Gestão de Aquisição Gestão da Comunicação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 195 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 Vale salientar que procurou-se fazer considerações e especificar requisitos relacionados apenas à integração entre os parceiros de projetos, não se preocupando com detalhes referentes à integração na modalidade EAI, que é feita entre as diversas ferramentas de apoio à gestão de projetos, como por exemplo, Sistemas de Gestão Empresarial (ERPs), existentes nas empresas. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 196 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 a) Considerações e Requisitos Relacionados aos Processos de Iniciação O PMBOK [PMI00], define esse grupo como um conjunto unitário contento apenas o Processo de Iniciação. a1) Processo de Iniciação (Gestão de Escopo ) Visa a obtenção do comprometimento da organização para o início da próxima fase do projeto. Processos do grupo sobre os quais interfere diretamente: nenhum Ca1.1 - Quando os parceiros são fixos, ou já foram definidos previamente, as informações constantes no Documento de Autorização do Projeto (Project Charter), emitido com a execução desse processo na Empresa Líder do Projeto, poderiam ser acessadas pelas Empresas Parceiras do Projeto e Envolvidos (stakeholders); Ca1.2 – As Empresas Parceiras do Projeto, por sua vez, podem estar retornando sua manifestação de interesse ou comprometimento em participar do projeto; e Ca1.3 - Demais informações como restrições e premissas definidas pela Empresa Líder do Projeto poderiam ser acessadas pelas Empresas Parceiras do Projeto e Envolvidos. UC1 Ra1.1 – É necessário um serviço que possibilite às Empresas Parceiras do Projeto e Envolvidos (stakeholders) obterem informações constantes no Documento de Autorização do Projeto (Project Charter) elaborado pela Empresa Líder do Projeto. UC2 Ra1.2 – É necessário um serviço que possibilite o registro de manifestação de interesse ou comprometimento em participar do projeto por parte das Empresas Parceiras da Empresa Líder do Projetos; e UC3 Ra1.3 – É necessário um serviço que permita às Empresas Parceiras do Projeto e Envolvidos terem acesso a restrições e premissas definidas pela Empresa Líder do Projeto. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 197 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 b) Considerações e Requisitos Relacionados aos Processos de Planejamento É o grupo mais numeroso de processos da gestão de projetos. Isso se deve ao fato do planejamento ser de fundamental importância num projeto. Os processos desse grupo são subdivididos em dois subgrupos: o de processos essenciais e o de processos facilitadores. A diferença entre os processos essenciais e os facilitadores é que os essenciais são executados na mesma ordem, na maioria dos projetos, já os facilitadores são executados intermitentemente e à medida que são necessários, durante o planejamento do projeto. Os processos essenciais são onze, e são listados e comentados nas fichas a seguir: b1) Planejamento do Escopo (Gestão de Escopo ) Visa desenvolver a declaração escrita do escopo, como base para futuras decisões no projeto. Este processo interage com o processo de declaração do escopo. Processos do seu grupo sobre os quais interfere diretamente: b2 Cb1.1 – Pode ser necessário compartilhar informações referentes à Declaração do Escopo, visando entendimento comum entre a Empresa Líder do Projeto e as Empresas Parceiras do Projeto: - descrição sumária do produto a ser desenvolvido; - objetivos macros do projeto; e - uma lista sumarizada dos subprodutos do projeto identificando aqueles que cabem à Empresa Parceira que está consultando. UC4 Rb1.1 – É necessário um serviço que possibilite às Empresas Parceiras do Projeto obterem a descrição sumária do produto a ser desenvolvido; UC5 Rb1.2 - É necessário um serviço que possibilite às Empresas Parceiras do Projeto obterem os objetivos macros do projeto a ser desenvolvido; UC6 Rb1.3 - É necessário um serviço que possibilite às Empresas Parceiras do Projeto obterem uma lista sumarizada dos componentes do projeto, identificando aqueles que lhe cabem. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 198 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 b2) Detalhamento do Escopo Versão: 1.0 Data: 15/08/2003 (Gestão de Escopo ) É a subdivisão dos principais subprodutos do projeto em componentes menores e mais manuseáveis. A execução adequada deste processo é de aspecto crítico para o projeto. Processos do seu grupo sobre os quais interfere diretamente: b3, b7, b8 e b9. Cb2.1 - Os subprodutos que são delegados a Empresas Parceiras do Projeto são detalhados, em alto nível de abstração, pela Empresa Líder do Projeto. No detalhamento do escopo do projeto eles são citados na WBS e cabe à Empresa Parceira responsável pela produção do subproduto em questão, criar a WBS referente ao projeto que ela desenvolverá para concebê-lo. UC7 Rb2.1 – É necessário um serviço que permita às Empresas Parceiras, acessarem informações referentes a elementos da WBS do projeto definidos pela Empresa Líder do Projeto. Elas teriam acesso a informações sobre elementos, que por ventura, lhes dizem respeito. b3) Definição das Atividades (Gestão de Prazo) Contempla a identificação das atividades específicas que devem ser realizadas para produzir os diversos subprodutos do projeto. Processos do seu grupo sobre os quais interfere diretamente: b4 e b5. Cb3.1 – Os elementos da WBS que são delegados a Empresas Parceiras do Projeto podem ser definidos como atividades a serem cumpridas cujo recurso alocado às mesmas são essas empresas. Essas atividades podem ser definidas, em alto nível de abstração conforme dados da Declaração do Escopo do produto a ser desenvolvido. As atividades referentes à produção de subprodutos sob responsabilidade das Empresas Parceiras do Projeto não são especificadas de forma detalhada. Geralmente, poucas, talvez duas, atividades podem ser definidas no âmbito do projeto de construção do produto como um todo, seriam por exemplo, Concepção do subproduto e integração desse subproduto ao produto do projeto. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 199 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 b4) Sequenciamento das Atividades (Gestão de Prazo) Tem por objetivo identificar e documentar as dependências entre as atividades. Processos do seu grupo sobre os quais interfere diretamente: b6. Cb4.1 – Quando um projeto envolve parceiros, pode acontecer deles interferirem no sequenciamento das atividades devido a particularidades. UC8 Rb4.1 – É necessário um serviço que permita às Empresas Parceiras registrarem, junto às Empresas Proprietárias de Projetos, restrições em termos de início e término de atividades para o desenvolvimento do subproduto que lhe foi delegado. b5) Estimativa de Duração das Atividades (Gestão de Prazo) Visa fornecer uma estimativa do esforço, em termos de prazo, que serão necessários para se completar as atividades individuais. Processos do seu grupo sobre os quais interfere diretamente: b6 e b9. Cb5.1 – Empresas Parceiras de Projetos podem interagir para auxiliar umas às outras, conforme as interdependências, para realizar a estimativa de duração das atividades, por exemplo, a EMBRAER conta com uma Empresa Parceira para o desenvolvimento da asa de um novo modelo de aeronave. Para efeito de controle do projeto da aeronave, podem ser definidas apenas duas atividades: a de construção da asa e a de integração da asa à fuselagem. Nesse caso, a estimativa de duração dessas atividades depende ou sofre a influência da Empresa Parceira do Projeto. UC9 Rb5.1 – É necessário um serviço para propiciar às Empresas Parceiras a capacidade de definirem a duração das atividades que lhes forem delegadas, ou seja, a Empresa Parceira do Projeto que fabricará a asa de um novo modelo de aeronave, poderá informar, após a elaboração do projeto desta, o tempo estimado de duração das atividades de “construção da asa” e “integração da asa à fuselagem”. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 200 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 b6) Desenvolvimento do Cronograma Versão: 1.0 Data: 15/08/2003 (Gestão de Prazo) Visa criar o cronograma do projeto a partir da análise da sequência das atividades, suas durações, e as necessidades de recursos. Processos do seu grupo sobre os quais interfere diretamente: b11. Cb6.1 – Esse processo é executado pela Empresa Líder do Projeto, levando em consideração as informações definidas para os elementos da WBS que lhe cabem e as informações obtidas das Empresas Parceiras do Projeto quanto aos elementos da WBS sob sua responsabilidade. Essas informações são obtidas com a execução dos processos de definição, sequenciamento e estimativa de duração das atividades, onde, conforme exposto em Cb4.1 a Empresa Líder do Projeto pode contar com a colaboração das Empresas Parceiras do Projeto, e elas entre si, para desenvolverem o cronograma do projeto. b7) Planejamento da Gestão de Riscos (Gestão de Riscos) Envolve decidir como abordar e planejar a gestão de risco no projeto. Processos do seu grupo sobre os quais interfere diretamente: b6 e b10. Cb7.1 – Este processo, em princípio, é executado pelo grupo de projetos da Empresa Líder e pelo grupo de projeto das Empresas Parceiras do Projeto. Num dado momento, proprietária e parceiras podem interagir no sentido planejar a gestão de risco do projeto como um todo, contando com outros envolvidos (stakeholders), por exemplo: subcontratados e clientes. UC10 Rb7.1 - É necessário um serviço que permita às Empresas Parceiras do Projeto e outros stakeholders registrarem junto à Empresa Líder do Projeto informações que contribuirão para planejamento da gestão de riscos. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 201 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 b8) Planejamento dos Recursos Versão: 1.0 Data: 15/08/2003 (Gestão de Custos) É a determinação de recursos (pessoas equipamentos, materiais, etc.) que devem ser utilizados, e de suas quantidades, para a realização das atividades do projeto. Processos do seu grupo sobre os quais interfere diretamente: b5 e b9. Cb8.1 – No caso de projetos que envolvem parceiros, o planejamento dos recursos necessários ao projeto é feito para os subprodutos que serão desenvolvidos pelo Project Owner. No caso dos subprodutos que serão delegados a Empresas Parceiras do Projeto, são identificados os parceiros, e o detalhamento dos recursos é feito por eles. Cb8.2 - Caso a Empresa Líder do Projeto tenha feito estimativas de duração das atividades incluindo um prazo estimado para a concepção de um componente delegado a uma Empresa Parceira, pode ser necessário a esta conhecer essa estimativa. UC11 Rb8.1 - É necessário um serviço para propiciar às Empresas Parceiras a capacidade de obter dados do componente que esta deverá desenvolver incluindo a estimativa de duração apontada pela Empresa Líder do Projeto. b9) Estimativa dos Custos (Gestão de Custos) Visa desenvolver uma estimativa dos custos que são necessários para completar as atividades do projeto. Processos do seu grupo sobre os quais interfere diretamente: b10. Cb9.1 – Este processo antecede a orçamentação de custos, e os valores estimados aquí são passíveis de alterações. Sendo assim, se as partes julgarem necessário, podem ser comunicadas as estimativas de custo. Por exemplo, as Empresas Parceiras podem informar à Empresa Líder do Projeto uma estimativa dos custos para desenvolvimento de um subproduto para que este possa completar as estimativas de custos do projeto que ele detém. UC12 Rb9.1 – É necessário um serviço que possibilite às Empresas Parceiras comunicarem à Empresa Líder do Projeto as estimativas de custo de seu componente. UC13 Rb9.2 - É necessário definir uma unidade monetária comum para os envolvidos no projeto, que podem estar em partes distintas do mundo, e portanto, possuem moedas locais diferentes. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 202 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 b10) Orçamentação dos Custos (Gestão de Custos) É o processo de alocação das estimativas dos custos globais aos pacotes individuais de trabalho com a finalidade de estabelecer uma linha base de custo para medir o desempenho do projeto. Processos do seu grupo sobre os quais interfere diretamente: b11. Cb10.1 – Em projetos que envolvem parceiros, este processo pode ser executado, em princípio, isoladamente pela Empresa Líder e pelas Empresas Parceiras do Projeto. Mas num dado momento há a necessidade de consolidação dos orçamentos para se obter a orçamentação de custos total do projeto. UC14 Rb10.1 – É necessário um serviço que possibilite às Empresas Parceiras comunicarem à Empresa Líder do Projeto as orçamentações de custo de desenvolvimento do componente que lhe foi delegado. b11) Desenvolvimento do Plano do Projeto (Gestão da Integração) É a agregação dos resultados dos outros processos de planejamento construindo um documento coerente e consistente, utilizado para guiar tanto a execução quanto o controle do projeto. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cb11.1 - O plano do projeto é um documento aprovado formalmente, usado para gerenciar e controlar a execução do projeto. Como entrada para esse processo incluem-se as restrições, premissas e políticas organizacionais. Sendo assim, as Empresas Parceiras podem contribuir com porções dessas entradas. Por exemplo, uma Empresa Parceira pode impor uma restrição ou apresentar uma premissa que influencie o projeto. Além disso, quando o Plano do Projeto já estiver concluído pode ser interessante às Empresas Parceiras terem acesso a algumas informações contidas nesse documento e em documentos referentes a detalhes de suporte que também são concebidos com a execução desse processo. UC15 Rb11.1 – É necessário um serviço que possibilite às Empresas Parceiras registrarem restrições, premissas e dados de suas políticas organizacionais que sejam relevantes para a composição do Plano do Projeto da Empresa Líder do Projeto. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 203 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 UC16 Rb11.2 – É necessário um serviço que permita o acesso, por parte das Empresas Parceiras, a elementos do Plano do Projeto. UC17 Rb11.3 – É necessário um serviço que possibilite às Empresas Parceiras realizarem consultas a porções de informações referentes a detalhes de suporte como documentação sobre padrões relevantes, documentação técnica, etc. Os processos facilitadores são dez, e são listados e comentados a seguir: b12) Planejamento da Qualidade (Gestão da Qualidade) São ações que visam identificar os padrões de qualidade relevantes para o projeto e determinar como satisfazê-los. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cb12.1 – Seria interessante o acesso, por parte das Empresas Parceiras do Projeto, às políticas de qualidade definidas pela Empresa Líder do Projeto, à declaração do escopo, à descrição do produto a ser desenvolvido e aos padrões e regulamentos aplicáveis ao componente que ela desenvolverá. Cb12.2 - As Empresas Parceiras do Projeto podem comunicar à Empresa Líder do Projeto os custos relativos ao controle de qualidade para que se consiga obter o custo de qualidade do projeto como um todo. Os custos de qualidade podem ser de três tipos: custos de prevenção, custos de avaliação e custos de falha, onde este último pode ser dividido em interno e externo. UC18 Rb12.1 – É necessário um serviço que possibilite às Empresas Parceiras consultarem políticas de qualidade definidas pela Empresa Líder do Projeto. UC19 Rb12.2 – É necessário um serviço que possibilite às Empresas Parceiras obterem a definição do produto feita pela Empresa Líder do Projeto. UC20 Rb12.3 – É necessário um serviço que possibilite às Empresas Parceiras obterem a definição do escopo do produto feita pela Empresa Líder do Projeto. UC21 Rb12.4 – É necessário um serviço que possibilite às Empresas Parceiras obterem os padrões e regulamentos definidos pela Empresa Proprietário do Projeto. UC22 Rb12.5 – É necessário um serviço que possibilite às Empresas Parceiras informarem à Empresa Líder do Projeto, os custos relativos ao controle de qualidade de seu componente para que essa possa obter o custo total da qualidade do projeto. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 204 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 b13) Planejamento Organizacional (Gestão de RH) É a identificação, documentação e atribuição de papéis, responsabilidades e relações hierárquicas no projeto. Processos do seu grupo sobre os quais interfere diretamente: b14. Cb13.1 – O planejamento organizacional é um processo interno às organizações e portanto, não foram identificados requisitos de integração e comunicação entre as Empresas Parceiras e a Proprietária do Projeto. Contudo, fica uma dúvida quanto a relação de hierarquia entre Proprietárias do Projeto e Parceiras do Projeto, principalmente quando se trata dos times integrados (joint teams). b14) Montagem da Equipe (Gestão de RH) Visa conseguir que os recursos humanos necessários sejam designados e alocados ao projeto. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cb14.1 – A montagem da equipe, no tocante ao contexto de parcerias em projetos, pode envolver a seleção desses parceiros, caso haja mais de um que possa ser destinado a um dado componente. b15) Planejamento da Comunicação (Gestão da Comunicação) Visa determinar as necessidades das partes envolvidas quanto à informação e comunicação, ou seja, quem necessita de qual informação, quando e como a informação será fornecida. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cb15.1 – As Empresas Parceiras do Projeto podem comunicar à Proprietária do Projeto seus requisitos de comunicação, e vice-versa. Os Requisitos de comunicações, as tecnologias de comunicações, as restrições e premissas são obtidas dos envolvidos no projeto para compor o plano de comunicação. Cb15.2 – A elaboração de um portal, a utilização de mecanismos de mensagem síncronos e assíncronos, podem ser uma boa alternativa, e que inclusive, já vem sido IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 205 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 utilizado pela EMBRAER. UC23 Rb15.1 – É necessário um serviço que possibilite à Proprietária do Projeto e às Empresas Parceiras registrarem seus requisitos de comunicação, ou seja, que informações eles esperam um do outro. SS20 Rb15.2 – É necessário definir um Portal de Comunicação que permita a interação entre a Proprietária e as Parceiras do Projeto onde alguns serviços propostos nesse documento pudessem ser acessados, estendendo a implementação de eventuais portais atualmente utilizados por Empresas Proprietárias de Projeto. b16) Identificação dos Riscos (Gestão de Riscos) Visa a determinação dos riscos prováveis do projeto e a documentação das características de cada um. Processos do seu grupo sobre os quais interfere diretamente: b17. Cb16.1 – Cada Empresa Parceira do Projeto e a Proprietária executam o processo de identificação de riscos para os produtos que lhes competem. Os riscos identificados em componentes delegados a Empresas Parceiras, que por ventura representem um risco potencial para o projeto como um todo, podem ser levados ao conhecimento da Proprietária do Projeto que passará a encarar esse risco como um risco para o projeto. UC24 Rb16.1 – É necessário um serviço que permita às Empresas Parceiras registrarem riscos relacionados a seu subproduto que podem comprometer o desempenho do projeto como um todo, levando tal informação a conhecimento da Empresa Líder do Projeto. UC25 Rb16.2 - Podem ser definidos gatilhos que podem ser disparados caso marcos intermediários definidos não sejam atingidos, advertindo a equipe do projeto de um atraso eminente no projeto. Alguns marcos intermediários podem ser definidos nas Empresas Parceiras e gatilhos podem ser associados a eles de forma que advertências lhes são reportadas e até reportadas à Proprietária do Projeto automaticamente. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 206 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 b17) Análise Qualitativa dos Riscos (Gestão de Riscos) Visa analisar qualitativamente os riscos e condições para priorizar seus efeitos nos objetivos do projeto. Processos do seu grupo sobre os quais interfere diretamente: b18. Cb17.1 - Este processo é executado isoladamente pela Proprietária do Projeto e pelas Parceiras do Projeto com relação aos riscos específicos de seus produtos e componentes. Porém os resultados dessas análise podem ser comunicados das Parceiras do Projeto para a Proprietária. UC26 Rb17.1 – É necessário um serviço que permita o acesso dos envolvidos num projeto a informações referentes à classificação dos riscos globais para o projeto. No caso de componentes delegados a Empresas Parceiras do Projeto pode-se ter acesso à classificação de risco global para o projeto dos componentes sob sua responsabilidade; UC27 Rb17.2 – É necessário um serviço que possibilite o acesso, por parte da Empresa Propritária do Projeto, à lista de riscos prioritários das Empresas Parceiras do Projeto; UC28 Rb17.3 – É necessário um serviço que permita o acesso, por parte da Empresa Líder do Projeto, a informações referentes a itens da Lista de Riscos das Empresas Parceiras para análise e gerenciamento adicionais; e UC29 Rb17.4 - É necessário um serviço que permita à Empresa Líder do Projeto obter informações a respeito da tendência em resultados da Análise Qualitativa de Riscos dos componentes delegados a Empresas Parceiras do Projeto. b18) Análise Quantitativa dos Riscos (Gestão de Riscos) Resume em mensurar a probabilidade e o impacto dos riscos e estimar suas implicações nos objetivos do projeto. Processos do seu grupo sobre os quais interfere diretamente: b19. Cb18.1 - Este processo é executado isoladamente pela Empresa Líder do Projeto e pelas Parcerias do Projeto, com relação aos riscos específicos de seus produtos e componentes. Porém os resultados dessas análise podem ser comunicados das Parceiras para a Proprietária. UC30 Rb18.1 – É necessário um serviço que permita à Empresa Líder do Projeto IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 207 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 obter a lista priorizada dos riscos quantificados dos projetos de componentes delegados a Empresas Parceiras; UC31 Rb18.2 – É necessário um serviço que permita à Proprietária do Projeto obter resultados da Análise Probabilística dos projetos de componentes delegados a Empresas Parceiras; UC32 Rb18.3 – É necessário um serviço que permita à Empresa Líder do Projeto obter a probabilidade de se alcançar os objetivos de custo e de tempo dos projetos de componentes sob a responsabilidade de Empresas Parceiras do Projeto; e UC33 Rb18.4 – É necessário um serviço que permita à Empresa Líder do Projeto obter as tendências no resultado da análise quantitativa dos riscos dos projetos de componentes sob responsabilidade de Empresas Parceiras. b19) Planejamento de Resposta a Riscos (Gestão de Riscos) Visa desenvolver procedimentos e técnicas para aumentar as oportunidades e para reduzir ameaças de riscos para os objetivos do projeto. Processos do seu grupo sobre os quais interfere diretamente:nenhum. Cb19.1 - Este processo é executado isoladamente pela Empresa Líder do Projeto e pelas Empresas Parceiras do Projeto com relação aos riscos específicos de seus produtos e componentes. Quando o risco é considerado potencial para o projeto, a Empresa Líder e a Parceria podem planejar uma resposta juntas. UC34 Rb19.1 – É necessário um serviço que permita às Empresas Parceiras do Projeto registrarem, junto à Empresa Líder do Projeto, informações sobre riscos do projeto que estão desenvolvendo e que são considerados riscos potenciais para o Projeto de Larga Escala como um todo , permitindo o planejamento em conjunto de resposta a esses riscos. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 208 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 b20) Planejamento de Aquisições (Gestão de Aquisição) É a determinação de “o que” contratar e “quando” contratar. Processos do seu grupo sobre os quais interfere diretamente:b10. Cb20.1 – Geralmente esse processo é interno a cada parceiro, mas pode ser necessário à Empresa Líder do Projeto saber se as empresas Parceiras possuem “saúde financeira” para cumprir os contratos de aquisição, uma vez que a ausência de fundos num parceiro representa um risco para o projeto. UC35 Rb20.1 – É necessário um serviço que permita aos parceiros de projetos (Empresa Líder do Projeto e Empresa Parceira do Projeto) conhecerem, mutuamente, sua “saúde financeira”. b21) Preparação das Aquisições (Gestão de Aquisição) Visa documentar os requisitos do produto/serviço a ser adquirido e as fontes possíveis de fornecimento. Processos do seu grupo sobre os quais interfere diretamente:nenhum. Cb21.1 – Interno a cada parceiro (Verificar Integração EAI) . IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 209 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 c) Considerações e Requisitos Relacionados aos Processos de Execução Este grupo de processos também inclui processos essenciais e facilitadores. Como processo essencial consta apenas um: C1) Execução do Plano do Projeto (Gestão da Integração) Visa a concretização do plano do projeto através da realização das atividades nele incluídas. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cc1.1 – Registros sobre resultados do trabalho e requisições de mudanças são esperados como saída desse processo. No tocante a parceiros de projetos seria interessante a disseminação, a quem de direito, de informações referentes aos resultados e requisições de mudanças, agilizando o processo de tomada de decisão e replanejamento. UC36 Rc1.1 – É necessário um serviço que permita o registro e consulta a resultados do trabalho executado tanto na Empresa Líder do Projeto quanto nas Empresas Parceiras do Projeto, oferecendo visibilidade a quem de direito. UC37 Rc1.2 – É necessário um serviço que permita tanto à Empresa Líder do Projeto quanto às Empresas Parceiras registrarem e comunicarem solicitações de mudanças, disparando gatilhos de comunicação para os envolvidos. Como processos facilitadores cita-se seis. São eles: C2) Garantia da Qualidade (Gestão da Qualidade) É avaliar regularmente o desempenho geral do projeto com o objetivo de prover confiança de que o projeto irá satisfazer os padrões estabelecidos de qualidade. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cc2.1 – Resultados de medição do controle da qualidade dos subprodutos desenvolvidos pelas Empresas Parceiras do Projeto podem ser transmitidas à Empresa Líder do Projeto para que esta possa fazer a medição da qualidade do produto que está sendo desenvolvido. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 210 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 UC38 Rc2.1 – É necessário um serviço que possibilite às Empresas Parceiras do Projeto relatarem de forma automatizada os resultados de medição do controle de qualidade do componente que ela está desenvolvendo. c3) Desenvolvimento da Equipe (Gestão de RH) Visa desenvolver habilidades das pessoas e da equipe, enquanto grupo, para melhorar o desempenho do projeto. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cc3.1 – O desenvolvimento da equipe, tanto em Empresas Parceiras quanto em Empresas Proprietárias do Projeto, é um processo interno da organização, em relação ao produto que será desenvolvido. c4) Distribuição das Informações (Gestão da Comunicação) É a disponibilização das informações necessárias, e no momento adequado, às partes envolvidas. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cc4.1 – O objetivo principal desse processo é disponibilizar, de forma regular, as informações necessárias às partes envolvidas no projeto. Nesse caso a distribuição de informações poderia ser feita da forma mais automatizada possível, à medida que eventos forem disparados. O serviços especificados neste documento visam auxiliar esse processo diretamente. c5) Pedido de Propostas (Gestão de Aquisição) Obter, conforme apropriado a cada caso (cotações de preço, cartas-convite, licitações, concorrências), as propostas de fornecimento dos produtos e ou serviços pretendidos. Processos do seu grupo sobre os quais interfere diretamente: c6. Cc5.1 – Este processo é interno a cada parceiro (Verificar Integração EAI) IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 211 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 c6) Seleção de Fornecedores (Gestão de Aquisição) É o ato de escolher entre os possíveis fornecedores, aqueles que serão contratados para o projeto. Processos do seu grupo sobre os quais interfere diretamente: c7. Cc6.1 – Este processo é interno a cada parceiro (Verificar Integração EAI) c7) Administração de Contratos (Gestão de Aquisição) É o conjunto de ações que visam gerenciar os relacionamentos com os fornecedores. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cc7.1 – Este processo é interno a cada parceiro (Verificar Integração EAI) IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 212 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 d) Considerações e Requisitos Relacionados aos Processos de Controle Esses processos são ações que visam monitorar e medir o desempenho do projeto regularmente, no sentido de se analisar os desvios para se detectar possíveis riscos para o projeto. A identificação de desvios significativos pode exigir reajustes no plano do projeto. Controlar também inclui tomar ações corretivas, antecipando-se aos problemas. Neste grupo de processos também existem processos essenciais e facilitadores. Como processos essenciais pode-se citar dois: d1) Relato de Desempenho (Gestão da Comunicação) É a coleta e divulgação de informações de desempenho do projeto incluindo relatórios de status, medidas de progresso, e novas estimativas do projeto. Processos do seu grupo sobre os quais interfere diretamente: d2. Cd1.1 – Relatórios de situação (posição com relação ao cronograma e ao orçamento), progresso (percentual de atividades realizadas, em andamento versus completadas) e previsões (predizem o futuro do projeto em termos de situação e andamento) podem ser enviadas de forma automática. Cd1.2 – O valor das variáveis utilizadas nas análises de variação, tendências e valor obtido podem ser encaminhados das Empresas Parceiras do Projeto para a Empresa Líder do Projeto para que esta consolide as informações e consiga ter a análise do projeto como um todo. UC39 Rd1.1 – É necessário um serviço que permita à Empresa Líder do Projeto obter dados de relatórios de situação, progresso e previsões gerados pelas Empresas Parceiras do Projeto. UC40 Rd1.2 – É necessário um serviço que automaticamente, ou não, envie dados referentes a análises de tendência, variação e valor obtido das Empresas Parceiras para a Empresa Líder do Projeto. UC41 Rd1.3 – É necessário um serviço que permita o registro de requisições de mudanças, vindas tanto da Proprietária do Projeto quanto da Parceiras, mediante a análise de desempenho do projeto. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 213 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 d2) Controle Integrado de Mudanças (Gestão da Integração) São ações de coordenação de mudanças através de todo o projeto. Esse controle requer: manter a integridade das medidas básicas de desempenho, assegurar que as mudanças no escopo do produto sejam refletidas na definição do escopo do projeto e coordenar as mudanças entre as áreas de conhecimento da gestão de projetos pois uma mudança no escopo do produto frequentemente afetará os custos, o risco a qualidade, etc. Processos do seu grupo sobre os quais interfere diretamente: d1. Cd2.1 – Para facilitar a execução desse processo, as Empresas Parceiras do Projeto podem interferir oferecendo relatos de desempenho e requisições de mudanças. Isso já está discutido na execução do plano do projeto (c.1). Esse processo refere-se a um conjunto de ações que são executadas de forma isolada pela Empresa Líder do Projeto. Sendo assim, a influência externa à organização, nesse processo, está no fato de que a Empresa Líder e as Parceiras podem gerar entradas para ele. UC42 Rd2.1 – É necessário um serviço que possibilite atualizações no Plano do Projeto, tanto por parte da Empresa Líder quanto por parte das Empresas Parceiras, porém, de forma coordenada. O processos facilitadores desse grupo são seis: d3) Verificação do Escopo (Gestão de Escopo ) É a aceitação formal do escopo e dos resultados do projeto pelas partes envolvidas. Processos do seu grupo sobre os quais interfere diretamente: d4. Cd3.1 – No caso de projetos que envolvem parceiros a comunicação do escopo aos envolvidos no projeto pode ser interessante, bem como uma forma de se ter a aceitação por parte de todos os envolvidos. UC43 Rd3.1 - É necessário um serviço que possibilite o registro de aceitação do escopo do Projeto de Larga Escala, por parte das Empresas Parceiras, mediante informação de senha pertencente apenas aos coordenadores de projetos das Parceiras envolvidas. Com isso, poderia-se ter o acompanhamento da aceitação comum da WBS do projeto, permitindo inclusive a identificação dos componentes cujas parceiras contatadas ainda não registraram sua aceitação. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 214 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 d4) Controle de Mudanças do Escopo (Gestão de Escopo ) É o controle efetivo de mudanças no escopo do projeto Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cd4.1 - Em projetos de larga escala, uma solicitação de mudança no escopo de um componente pode afetar o escopo de parte ou todo o projeto. Podem ser necessários mecanismos que auxiliem no registro e comunicação de mudanças no escopo. UC44 Rd4.1 – É necessário um serviço que permita às Empresas Parceiras registrarem informações que comporão relatórios de desempenho; UC45 Rd4.2 – É necessário um serviço que possibilite à Empresa Líder do Projeto registrar requisições de mudanças no escopo. Mediante o registro de requisições de mudanças, gatilhos podem ser disparados informando determinadas pessoas; UC46 Rd4.3 – É necessário um serviço que possibilite a comunicação às Empresas Parceiras do Projeto, sobre mudanças sugeridas, em aprovação e aprovadas em relação ao escopo do projeto. d5) Controle do Cronograma (Gestão de Prazo ) É o controle efetivo de mudanças no cronograma do projeto. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cd5.1 – O controle do cronograma consiste em influenciar os fatores que criam mudanças no cronograma para garantir que as mudanças sejam benéficas, determinar que o cronograma foi alterado e gerenciar mudanças reais, quando e como elas ocorrem. No caso de projetos que envolvem parceiros relatos de desempenho das Empresas Parceiras do Projeto podem ser acessados pela Empresa Líder do Projeto para que o mesmo consiga medir o desempenho do projeto como um todo. UC47 Rd5.1 – É necessário um serviço que possibilite à Empresa Líder do Projeto tomar conhecimento de atualizações no cronograma, feitas pelas Empresas Parceiras do Projeto. UC48 Rd5.2 – É necessário um serviço que possibilite às Empresas Parceiras tomarem conhecimento de atualizações feitas no cronograma, pela Empresa Líder do Projeto. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 215 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 d6) Controle dos Custos (Gestão de Custos) É o controle efetivo de mudanças no orçamento do projeto em relação à linha base de custos estabelecida na orçamentação dos custos. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cd6.1 – Como entradas para esse processo, são listadas: a linha base de custos, relatórios de desempenho, requisições de mudança e o plano de gerenciamento de custos. Desse conjunto, os itens que sofrem uma influência maior das Empresas Parceiras do Projeto são os relatórios de desempenho, as requisições de mudança e a linha base de custo dos componentes. Cd6.2 – Uma das ferramentas utilizadas para auxiliar esse processo é o Gerenciamento de Valor Obtido. No caso dos componentes delegados a Empresas Parceiras, esse gerenciamento é feito por elas, que podem estar informando os valores das variáveis dessa ferramenta que incidirão na análise feita pela Empresa Líder do Projeto. UC49 Rd6.1 – É necessário um serviço que possibilite às Empresas Parceiras informarem à Empresa Líder do Projeto valores referentes aos totais das variáveis da Análise de Valor Obtido dos projetos dos componentes que elas estão desenvolvendo, para que a Proprietária possa acompanhar o desempenho do projeto como um todo. UC50 Rd6.2 – É necessário um serviço que possibilite às Empresas Parceiras do Projeto obterem informações sobre a Análise de Valor Obtido do Projeto de Larga Escala como um todo. d7) Controle da Qualidade (Gestão da Qualidade) É o ato de monitorar resultados específicos do projeto para determinar se eles atingem padrões de adequados de qualidade, e identificar ações para eliminar as causas de desempenhos insatisfatório. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cd7.1 – As Empresas Parceiras do Projeto podem ter acesso aos padrões de qualidade especificados pela Empresa Líder do Projeto, para o projeto como um todo. Com isso, as Empresas Parceiras do Projeto podem monitorar seus resultados, verificando se estão de acordo com os padrões estabelecidos para o produto como um todo. UC51 Rd7.1 – É necessário um serviço que possibilite às Empresas Parceiras IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 216 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 obterem informações referentes aos Padrões de Qualidade estabelecidos pela Empresa Líder do Projeto, para o produto como um todo. d8) Controle e Monitoração de Riscos (Gestão de Riscos) Acompanhar os riscos identificados, monitorar os riscos residuais e identificar nos riscos, garantindo a execução dos planos de risco e avaliar sua efetividade em reduzir riscos. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Cd8.1 - Este processo é executado pela Empresa Líder do Projeto e pelas Empresas Parceiras do Projeto com relação aos riscos específicos de seus produtos e componentes. Porém, algumas informações podem ser reportadas à Empresa Líder do Projeto. UC52 Rd8.1 – É necessário um serviço que informe à Empresa Líder do Projeto, valores referentes a variáveis de controle e monitoramento de riscos referentes à execução dos projetos de componentes delegados a empresas parceiras . IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 217 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 e) Considerações e Requisitos Relacionados aos Processos de Encerramento Este grupo é composto de dois processos essenciais que são: e1) Encerramento de Contratos (Gestão de Aquisição) É o ato de completar e liquidar o contrato, incluindo a resolução de qualquer item pendente. Processos do seu grupo sobre os quais interfere diretamente: e2. Ce1.1 – Ao se encerrar um contrato entre uma Empresa Parceira e a Proprietária do Projeto, toda e qualquer comunicação de informação referente ao projeto do componente produzido deveria ser inibida, de forma que não se pudesse mais alterar informações referentes ao controle do projeto desse componente. UC53 Re1.1 – É necessário um serviço que registre o encerramento do contrato entre a Empresa Líder e a Parceira para um determinado componente do projeto. Dessa forma, a Empresa Líder passa a não receber mais informações referentes ao elemento da WBS de seu projeto que se relaciona ao projeto do componente desenvolvido pela Empresa Parceira. e2) Encerramento Administrativo (Gestão da Comunicação) Visa gerar, reunir e disseminar informações para formalizar o término da fase ou projeto, incluindo avaliações do projeto e compilação das lições aprendidas para uso em planejamentos de futuros projetos ou fases. Processos do seu grupo sobre os quais interfere diretamente: nenhum. Ce2.1 – O projeto ou fase, depois de alcançar seus objetivos ou terminado por outras razões necessita ser encerrado. No caso das Empresas Parceiras do Projeto, pode ser feito o encerramento administrativo do projeto e para a Empresa Líder do Projeto esse encerramento refletirá como o encerramento de uma atividade, a concepção do componente em questão. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 218 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 UC54 Re2.1 – É necessário um serviço que permita marcar o percentual de completude de um determinado elemento na WBS do Projeto, na Empresa Proprietária, mediante o registro do encerramento administrativo, por parte das Empresas Parceiras, para o término de uma fase ou conclusão de um componente que lhe foi delegado. Segundo o PMBOK [PMI00], as interações entre os processos dos grupos apresentados anteriormente são aplicáveis à maioria dos projetos durante a maior parte do tempo. Entretanto, nem todos os processos são necessários, e nem todas as interações se aplicam. No caso da EMBRAER, que é uma organização que faz amplo uso de parcerias e subcontratações, ela pode explicitar exatamente onde, no processo de planejamento, cada contratação deve ocorrer. Grandes projetos, como os executados por ela, podem necessitar de maiores detalhes. Por exemplo, a identificação de riscos pode ser subdividida para focalizar separadamente os riscos de custo, os riscos de prazos, os riscos técnicos e os riscos de qualidade. Em subprojetos e projetos menores, gasta-se um pequeno esforço nos processos cujas saídas já tenham sido definidas ao nível do projeto, ou seja, a empresa contratante olha para o subproduto delegado a um terceiro de forma mais macro. Conclusão Este documento procurou sugerir, com base nos processos definidos pelo PMI e levando em consideração, características de projetos de larga escala que envolvem parceiros, um conjunto de requisitos de serviços, que podem ser implementados em Softwares de Gestão de Projetos, a fim de se prover a interoperabilidade entre parceiros de projetos. É comum em projetos de larga escala que envolvem parceiros, o estabelecimento de escritórios devidamente equipados, tanto em termos de recursos humanos, quanto de recursos tecnológicos, destinados à sua gestão e integração com as unidades funcionais da organização, onde o volume de utilização de softwares que poderiam invocar esses serviços é consideravelmente grande. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 219 WS4PM – Serviços Web para Gestão de Projetos Considerações e Requisitos de Serviços Web Apêndice 4 Versão: 1.0 Data: 15/08/2003 Os serviços propostos aqui, podem vir a ser implementados em Softwares de Gestão de Projetos, através do uso de tecnologias específicas, como a de Web Services, por exemplo. Não se teve a intensão de ser completo nas especificações feitas aquí, uma vez que cada uma delas encontra-se definida num nível de abstração um pouco alto. Vale salientar que a finalidade desse documento foi a de propor um conjunto de serviços, onde cada um deles deverá ser validado, e numa próxima fase, aqueles que foram aprovados deverão ser detalhados, e implementados. Referências Bibliográficas [PMI00] PMI – Project Management Institute. PMBOK 2000 - A Guide to the Project Management Body of Knowledge – PMBOK Guide, 2000. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 220 ITA - Instituto Tecnológico de Aeronáutica WS4PM - Serviços Web para Gestão de Projetos Especificações Suplementares Versão 1.1 Apêndice 5 ITA - Instituto Tecnológico de Aeronáutica Histórico da Revisão Data Versão Descrição Autor 30/06/03 1.0 Versão Inicial Osvandre 10/09/03 1.1 Versão Final – Conforme Revisão do Orientador Osvandre / Celso Hirata 222 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Especificações Suplementares Apêndice 5 Versão: 1.0 Data: 10/09/03 Índice Analítico 1. Introdução 1.1 Finalidade 1.2 Escopo 1.3 Definições, Acrônimos e Abreviações 1.4 Referências 2. Requisitos de Funcionalidade 224 2.1 2.2 224 224 Log de Erros Parametrização de informações de acesso aos WS4PM 224 224 224 224 224 3. Requisitos de Usabilidade 3.1 Registro do Negócio e Serviços em Servidores de Serviços UDDI 3.2 Descrição de Web Services em WSDL 3.3 Conexão a uma rede (Internet ou Intranet) 3.4 Interação mínina dos usuários 3.5 Transposição de Firewalls 224 225 225 225 225 225 4. Requisitos de Confiabilidade 4.1 Disponibilidade 24x7 4.2 Controle de Transações 225 225 225 5. Requisitos de Desempenho 5.1 Tempo de Resposta 5.2 Acessos Simultâneos 225 225 225 6. Requisitos de Suportabilidade 225 7. Requisitos de Restrições de Projeto (Design) 7.1 Independência de interface na porção Consumidora 7.2 Independência da plataforma de desenvolvimento da aplicação consumidora 7.3 Utilização da XML 7.4 Arquitetura em Camadas 226 226 226 226 226 8. Requisitos de Segurança 8.1 Políticas de Autorização 8.2 Autenticação e Segurança Digital 226 226 226 9. Requisitos de Padrões Aplicáveis 9.1 Padrões propostos pela W3C (World Wide Web Consortium). 9.2 Padrões propostos pela WS-I (Web Services Interoperability). 226 226 226 ©ITA - Instituto Tecnológico de Aeronáutica, 2003 223 IEC – Divisão de Ciência da Computação WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Especificações Suplementares Apêndice 5 Versão: 1.0 Data: 10/09/03 Especificações Suplementares 1. Introdução Este documento de Especificações Suplementares foi elaborado com base no Modelo de documento de Especificações Suplementares proposto pelo Processo Unificado Rational – PUR (Rational Unified Process - RUP) [1] e é parte de um conjunto de artefatos gerados para a documentação do desenvolvimento de Web Services Aplicáveis à Gestão de Projetos (Web Services for Project Management – WS4PM). 1.1 Finalidade A finalidade deste documento é definir os Requisitos Não Funcionais para os Serviços Web Aplicáveis à Gestão de Projetos (Web Services for Project Management – WS4PM). As Especificações Suplementares e o Modelo de Casos de Uso, juntos, originaram o conjunto completo de requisitos dos WS4PM. 1.2 Escopo Este documento de Especificações Suplementares aplica-se aos WS4PM e define requisitos não-funcionais como: requisitos de usabilidade, confiabilidade, desempenho e suportabilidade, bem como alguns requisitos de funcionalidade, comuns a vários Casos de Uso, que foram identificados inicialmente. Os itens listados neste documento ilustram alguns Requisitos Não Funcionais geralmente aplicáveis a Serviços Web. Valores, como os apresentados nos requisitos de desempenho, representam estimativas que necessitam de validações. Os parágrafos que possuem os identificadores SS seguidos de um número indicam que estes foram rastreados para a ferramenta utilizada para auxiliar o processo de análise e gerenciamento de requisitos RequisitePro. 1.3 Definições, Acrônimos e Abreviações Vide documento Glossário. 1.4 Referências [1] RUP – Rational Unified Process v2002.05.00, Copyright © Rational Software Corporation [2] W3C – World Wide Web Consortium : Web Services Activity : Acessível a partir de www.w3c.org : [3] WS-I – Web Services Interoperability : Acessível a partir de www.ws-i.org 2. Requisitos de Funcionalidade Esta seção lista requisitos funcionais que são comuns a mais de um caso de uso. 2.1 Log de Erros SS1 Quando ocorrerem falhas em transações e processamentos devem ser registrados logs de erros tanto nos provedores quanto nos consumidores de WS4PM. 2.2 Parametrização de informações de acesso aos WS4PM SS2 Na implementação de aplicações consumidoras dos WS4PM deve-se propiciar aos usuários a possibilidade de parametrizarem informações que customizem endereços de acesso, nomes dos serviços e outros dados sensíveis à escolha de parceiros de projetos. 3. Requisitos de Usabilidade Nesta seção são descritos os requisitos que afetam a usabilidade dos WS4PM. IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 224 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Especificações Suplementares Apêndice 5 Versão: 1.0 Data: 10/09/03 3.1 Registro do Negócio e Serviços em Servidores de Serviços UDDI SS3 Os usuários de WS4PM devem registrar informações sobre o seu negócio e os WS4PM disponíveis, facilitando a integração com parceiros. 3.2 Descrição de Web Services em WSDL SS4 Uma descrição do Serviço Web implementado deve ser provida em documentos WSDL, propiciando facilidades na implementação de consumidores. 3.3 Conexão a uma rede (Internet ou Intranet) SS5 É indispensável que as estações que acessarão os WS4PM estejam conectadas à rede mundial de computadores (Internet) ou a uma rede privada, a uma velocidade média de 128Kbps . 3.4 Interação mínina dos usuários SS6 Quando da implementação dos WS4PM em Softwares de Gestão de Projetos, deve-se primar para que a aplicação comsumidora exija o mínimo de interação dos usuários, utilizando-se recursos como gatilhos em eventos disparados quando da utilização das funcionalidades desses softwares. 3.5 Transposição de Firewalls SS7 Os sistemas de proteção contra invasões do tipo firewalls não devem impedir que consumidores acessem as funcionalidades expostas pelos WS4PM. 4. Requisitos de Confiabilidade Nesta seção são especificados requisitos de confiabilidade do sistema, envolvendo itens como disponibilidade, tolerância a falhas, etc. 4.1 Disponibilidade 24x7 SS8 Os Serviços Web Aplicáveis à Gestão de Projetos devem estar disponíveis para consumo 24 horas por dia e 7 dias por semana (24x7). 4.2 Controle de Transações SS9 Devem ser implementados mecanismos para o controle de transações que envolvem parceiros, incluindo a capacidade de se desfazer uma transação incompleta (Rollback). 5. Requisitos de Desempenho As características de desempenho dos WS4PM são descritas nesta seção, incluindo tempos de resposta específicos. 5.1 Tempo de Resposta SS10 Deve-se primar para que cada transação, exceto aquelas que envolvam o tráfego de elementos atachados, como desenhos por exemplo, durem no máximo 10 segundos. 5.2 Acessos Simultâneos SS11 Os WS4PM devem ser escaláveis, suportando acessos “simultâneos” de consumidores, na faixa de 1 a 3000. 6. Requisitos de Suportabilidade Esta seção indica todos os requisitos que aprimorarão a suportabilidade ou manutenibilidade dos WS4PM, incluindo padrões de codificação, convenções de nomeação, bibliotecas de classes, dentre outros. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 225 WS4PM - Serviços Web Aplicáveis à Gestão de Projetos Especificações Suplementares Apêndice 5 Versão: 1.0 Data: 10/09/03 A ser definido. 7. Requisitos de Restrições de Projeto (Design) Este conjunto de requisitos especifica um conjunto de itens arquiteturalmente significativos para se garantir a interoperabilidade. 7.1 Independência de interface na porção Consumidora SS12 Os WS4PM devem ser desenvolvidos de forma a não impor restrições à implementação de interfaces de usuário no desenvolvimento de aplicações consumidoras, ou seja, qualquer tipo de implementação, seja ela baseada em tecnologias da Web (acessíveis através de navegadores) ou não, devem ser capazes de acionar e obter resultados dos WS4PM. 7.2 Independência da plataforma de desenvolvimento da aplicação consumidora SS13 Deve-se permitir que qualquer aplicação cliente, independente da plataforma sobre a qual foi desenvolvida, acesse os métodos implementados nos WS4PM. 7.3 Utilização da XML SS14 Os WS4PM devem utilizar a XML para a definição, transmissão, validação e interpretação de dados entre aplicações. 7.4 Arquitetura em Camadas SS15 Quando da implementação de aplicações que terão funcionalidades expostas com base nos WS4PM, deve-se primar pelo seu desenvolvimento baseado em estilos de Arquitetura em Camadas. 8. Requisitos de Segurança Esta seção trata os requisitos de segurança aplicáveis aos WS4PM. 8.1 Políticas de Autorização SS16 Os WS4PM devem ser implementados primando-se pela utilização de Políticas de Autorização que impeçam que pessoas não autorizadas acessem ou alterem informações que não lhe dizem respeito. 8.2 Autenticação e Segurança Digital SS17 Para os WS4PM que exigirem segurança de informação, devem ser implementados mecanismos de autenticação e segurança baseados em tecnologias de certificados e assinaturas digitais, como por exemplo: certificados X.509 e bilhetes Kerberos. 9. Requisitos de Padrões Aplicáveis Esta seção apresenta requisitos relacionados a padrões de desenvolvimento de software, a serem utilizados na implementação dos WS4PM. 9.1 Padrões propostos pela W3C (World Wide Web Consortium). SS18 Quando da implementação dos WS4PM sugere-se a observação dos padrões para Serviços Web propostos pela W3C que podem ser acessados a partir de www.w3.org. 9.2 Padrões propostos pela WS-I (Web Services Interoperability). SS19 Quando da implementação dos WS4PM sugere-se a observação dos padrões para Serviços Web propostos pela WS-I que podem ser acessados a partir de www.ws-i.org. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 226 ITA – Instituto Tecnológico de Aeronáutica WS4PM - Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Versão 1.0 Apêndice 6 WS4PM – Relação Analítica de Requisitos Relação Analítica de Requisitos Introdução Este documento apresenta uma relação analítica de todos os requisitos especificados para os Serviços Web Aplicáveis à Gestão de Projetos (Web Services For Project Management – WS4PM). Os itens dessa relação estão agrupados por Tipo de Requisitos e para cada um deles é exibido: • O identificador do requisito. Atribuído pela ferramenta de software selecionada e utilizada para o gerenciamento de requisitos, a Rational RequisitePro; • O título do requisito; • O tipo do requisito, conforme definido no Plano de Gerenciamento de Requisitos; • O texto do requisito; • Os atributos com seus respectivos valores, atribuídos numa análise inicial; e • A rastreabilidade (de/para) do requisito propiciando a visibilidade da origem e do impacto do requisito na solução tecnológica proposta. Vale salientar que alguns atributos dos requisitos têm seu valor definido ao longo de todo o projeto de software, ou seja, alguns são definidos a priori e outros a posteriori. Dessa forma, é comum encontrar, dentre os atributos dos requisitos constantes nessa relação, uma série de atributos com valores que ainda não foram definidos. 228 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT1 Suporte aos Processos de Iniciação Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem fornecer suporte aos Processos de Iniciação definidos pelo PMI. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Média Rastrea de: STRQ1 :Suporte às 9 (nove) Áreas de Conhecimento da Gestão de Projetos STRQ2.1 :Suporte ao Grupo de Processos de Iniciação Rastrea para: FEAT1.1 Suporte ao Processo de Iniciação Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Gestão de Projetos devem suportar o Processo de Iniciação de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Média Rastrea de: STRQ1.2 :Suporte à área de Gestão do Escopo Rastrea para: UC1 :Obtenção de Informações do Documento de Autorização do Projeto UC2 :Registro de interesse ou comprometimento das Empresas Parceiras UC3 :Obtenção de restrições e premissas definidas pela Proprietária FEAT2 Suporte aos Processos de Planejamento Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem fornecer suporte aos Processos de Planejamento definidos pelo PMI. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 229 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Rastrea de: STRQ1 :Suporte às 9 (nove) Áreas de Conhecimento da Gestão de Projetos STRQ2.2 :Suporte ao Grupo de Processos de Planejamento. Rastrea para: FEAT2.1 Suporte ao Processo de Planejamento do Escopo Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Planejamento do Escopo de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.2 :Suporte à área de Gestão do Escopo Rastrea para: UC4 :Obtenção da Descrição Sumária do Produto do Projeto UC5 :Obtenção de Objetivos Macros do Projeto UC6 :Obtenção da Lista Sumarizada dos componentes do Projeto FEAT2.2 Suporte ao Processo de Detalhamento do Escopo Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Detalhamento do Escopo de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.2 :Suporte à área de Gestão do Escopo Rastrea para: UC7 :Acesso a Informações de elementos da WBS do Projeto FEAT2.3 Suporte ao Processo de Definição das Atividades Tipo de Requisito:Característica IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 230 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Definição das Atividades de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.3 :Suporte à Gestão de Prazos Rastrea para: FEAT2.4 Suporte ao Processo de Sequenciamento de Atividades Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Sequenciamento de Atividades. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.3 :Suporte à Gestão de Prazos Rastrea para: UC8 :Registro de restrições de tempo para desenvolvimento de componentes FEAT2.5 Suporte ao Processo de Estimativa de Duração das Atividades Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Estimativa de Duração das Atividades de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.3 :Suporte à Gestão de Prazos Rastrea para: UC9 :Definição da duração das atividades delegadas a Parceiras IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 231 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT2.6 Suporte ao Processo de Desenvolvimento do Cronograma Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Desenvolvimento do Cronograma de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.3 :Suporte à Gestão de Prazos Rastrea para: FEAT2.7 Suporte ao processo de Planejamento da Gestão de Riscos em Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Planejamento da Gestão de Riscos em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.8 :Suporte à área de Gestão de Riscos Rastrea para: UC10 :Registro de informações de auxílio ao planejamento da gestão de riscos FEAT2.8 Suporte ao Processo de Planejamento de Recursos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Planejamento de Recursos de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.4 :Suporte à área de Gestão de Custos Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 232 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 UC11 :Obtenção de informações sobre o componente a ser desenvolvido FEAT2.9 Suporte ao Processo de Estimativas de Custo Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Estimativas de Custo de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.4 :Suporte à área de Gestão de Custos Rastrea para: UC12 :Comunicação das estimativas de custo de componentes à Proprietária do Projeto UC13 :Definição de uma unidade monetária para o Projeto FEAT2.10 Suporte ao Processo de Orçamentação de Custos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Orçamentação de Custos de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.4 :Suporte à área de Gestão de Custos Rastrea para: UC14 :Comunicação das Orçamentações de Custo do desenvolvimento de componentes FEAT2.11 Suporte ao Processo de Desenvolvimento do Plano de Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Desenvolvimento do Plano de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 233 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Prioridade : Alta Rastrea de: STRQ1.1 :Suporte à área de Gestão da Integração Rastrea para: UC15 :Registro de Restrições, Premissas e Dados de Políticas Organizacionais de Parcerias do Projeto UC16 :Acesso, por parte das Parceiras do Projeto, a elementos do Plano. UC17 :Consulta a informações referentes a detalhes de suporte FEAT2.12 Suporte ao Processo de Planejamento da Qualidade Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Planejamento da Qualidade em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.5 :Suporte à área de Gestão da Qualidade Rastrea para: UC18 :Consulta a Políticas de Qualidade da Proprietária do Projeto UC19 :Obtenção da definição do Produto do Projeto UC20 :Obtenção da definição do escopo do Produto do Projeto UC21 :Obtenção de Padrões e Regulamentos do Projeto UC22 :Informação de custos relativos ao Controle de Qualidade no desenvolvimento de Componentes FEAT2.13 Suporte ao Processo de Planejamento Organizacional Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Planejamento Organizacional. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 234 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 STRQ1.6 :Suporte à área de Recursos Humanos Rastrea para: FEAT2.14 Suporte ao Processo de Montagem da Equipe Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Montagem da Equipe de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.6 :Suporte à área de Recursos Humanos Rastrea para: FEAT2.15 Suporte ao Processo de Planejamento da Comunicação em Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Planejamento da Comunicação em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.7 :Suporte à área de Gestão da Comunicação Rastrea para: UC23 :Registro de Requisitos de Comunicação SS20 :Definição de um Portal para possibilitar a utilização de alguns Serviços Web FEAT2.16 Suporte ao Processo de Identificação de Riscos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Identificação de Riscos em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 235 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Prioridade : Alta Rastrea de: STRQ1.8 :Suporte à área de Gestão de Riscos Rastrea para: UC24 :Registro de riscos relacionados a componentes UC25 :Definição de gatilhos que disparam comunicados aos envolvidos, caso determinados marcos não sejam atingidos FEAT2.17 Suporte ao Processo de Análise Qualitativa de Riscos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Análise Qualitativa de Riscos em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.8 :Suporte à área de Gestão de Riscos Rastrea para: UC26 :Obtenção de informações referentes à Classificação do Risco Global para o Projeto UC27 :Obtenção da Lista de Riscos Prioritários para o projeto de componentes UC28 :Obtenção de informações de itens da Lista de Riscos de componentes UC29 :Obtenção de informações a respeito da tendência em resultados de Análise Qualitativa de Riscos dos componentes FEAT2.18 Suporte ao Processo de Análise Quantitativa de Riscos em Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Análise Quantitativa de Riscos em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.8 :Suporte à área de Gestão de Riscos Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 236 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 UC30 :Obtenção da Lista Priorizada de Riscos Quantificados dos Projetos de componentes UC31 :Obtenção de resultados da Análise Probabilística dos Projetos de Componentes UC32 :Obtenção da probabilidade de alcance dos objetivos de custo e tempo dos projetos de componentes UC33 :Obtenção das tendências de resultados da Análise Quantitativa dos riscos dos projetos de componentes FEAT2.19 Suporte ao Processo de Planejamento de Resposta a Riscos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Planejamento de Resposta a Riscos em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.8 :Suporte à área de Gestão de Riscos Rastrea para: UC34 :Registro de riscos do projeto de componentes, potenciais para o projeto como um todo FEAT2.20 Suporte ao Processo de Planejamento de Aquisições em Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Planejamento de Aquisições em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.9 :Suporte à área de Gestão de Aquisições Rastrea para: UC35 :Conhecimento mútuo da saúde financeira de parceiros de projetos FEAT2.21 Suporte ao Processo de Preparação de Aquisições em Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Preparação de Aquisições em Projetos. IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 237 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.9 :Suporte à área de Gestão de Aquisições Rastrea para: FEAT3 Suporte aos Processos de Execução Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem fornecer suporte aos Processos de Execução definidos pelo PMI. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1 :Suporte às 9 (nove) Áreas de Conhecimento da Gestão de Projetos STRQ2.3 :Suporte ao Grupo de Processos de Execução Rastrea para: FEAT3.1 Suporte ao Processo de Execução do Plano do Projeto Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Execução do Plano do Projeto. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.1 :Suporte à área de Gestão da Integração Rastrea para: UC36 :Registro e Consulta do trabalho executado UC37 :Registro de Solicitações de Mudança IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 238 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT3.2 Suporte ao Processo de Garantia da Qualidade Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Garantia da Qualidade em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.5 :Suporte à área de Gestão da Qualidade Rastrea para: UC38 :Relato dos resultados de medição do controle de qualidade dos componentes FEAT3.3 Suporte ao Processo de Desenvolvimento da Equipe de Projeto Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Desenvolvimento da Equipe de Projeto. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.6 :Suporte à área de Recursos Humanos Rastrea para: FEAT3.4 Suporte ao Processo de dsitribuição das Informações Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Distribuição de Informações em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.7 :Suporte à área de Gestão da Comunicação Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 239 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT3.5 Suporte ao Processo de Pedido de Propostas Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Pedidos de Propostas para aquisições em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.9 :Suporte à área de Gestão de Aquisições Rastrea para: FEAT3.6 Suporte ao Processo de Seleção de Fornecedores Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Seleção de Fornecedores para aquisições em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.9 :Suporte à área de Gestão de Aquisições Rastrea para: FEAT3.7 Suporte ao Processo de Administração de Contratos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Administração de Contratos em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.9 :Suporte à área de Gestão de Aquisições Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 240 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT4 Suporte aos Processos de Controle Tipo de Requisito:Característica Texto do Requisito:Os serviços Web devem fornecer suporte aos Processos de Controle definidos pelo PMI. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1 :Suporte às 9 (nove) Áreas de Conhecimento da Gestão de Projetos STRQ2.4 :Suporte ao Grupo de Processos de Controle Rastrea para: FEAT4.1 Suporte ao Processo de Relato de Desempenho de Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Relato de Desempenho de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.7 :Suporte à área de Gestão da Comunicação Rastrea para: UC39 :Obtenção de dados de relatórios de situação, progresso e previsões gerados pelas Empresas Parceiras UC40 :Registro de dados referentes à análise de tendências, variações e valor obtido dos projetos de componentes UC41 :Registro de requisições de Mudança, mediante a análise de desempenho do Projeto. FEAT4.2 Suporte ao Processo de Controle Integrado de Mudanças em Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Controle Integrado de Mudanças em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 241 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Prioridade : Alta Rastrea de: STRQ1.1 :Suporte à área de Gestão da Integração Rastrea para: UC42 :Atualizações no Plano do Projeto FEAT4.3 Suporte ao Processo de Verificação do Escopo de Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Verificação de Escopo de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.2 :Suporte à área de Gestão do Escopo Rastrea para: UC43 :Registro de aceitação do escopo dos componentes FEAT4.4 Suporte ao Processo de Controle de Mudanças do Escopo de Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Controle de Mudanças do Escopo de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.2 :Suporte à área de Gestão do Escopo Rastrea para: UC44 :Registro das Informações que comporão relatórios de desempenho UC45 :Registro de requisições de mudança no Escopo do Projeto UC46 :Comunicação de mudanças sugeridas, em aprovação e aprovadas, em relação escopo do projeto FEAT4.5 Suporte ao Processo de Controle do Cronograma de Projetos IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 242 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Controle do Cronograma de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.3 :Suporte à Gestão de Prazos Rastrea para: UC47 :Comunicação à Proprietária do Projeto de atualizações no cronograma do projeto de componentes UC48 :Comunicação às Empresas Parceiras de atualizações feitas no cronograma do projeto FEAT4.6 Suporte ao Processo de Controle de Custos de Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Controle de Custos de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.4 :Suporte à área de Gestão de Custos Rastrea para: UC49 :Relato do Desempenho do Projeto de Componentes à Proprietária do Projeto UC50 :Obtenção, por parte das Empresas Parceiras do Projeto, de informações sobre a Análise de Valor Obtido do Projeto de Larga Escala FEAT4.7 Suporte ao Processo de Controle da Qualidade em Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Controle da Qualidade em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 243 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Prioridade : Alta Rastrea de: STRQ1.5 :Suporte à área de Gestão da Qualidade Rastrea para: UC51 :Obtenção de informações referentes a Padrões de Qualidade estabelecidos pela Proprietária do Projeto FEAT4.8 Suporte ao Processo de Controle e Monitoração de Riscos em Projetos Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem suportar o Processo de Controle e Monitoração de Riscos em Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Alta Rastrea de: STRQ1.8 :Suporte à área de Gestão de Riscos Rastrea para: UC52 :Obtenção de valores referentes ao controle e monitoramento de riscos do projeto de um componente FEAT5 Suporte aos Processos de Encerramento Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web para Softwares de Apoio à Gestão de Projetos devem fornecer suporte aos Processos de Encerramento definidos pelo PMI. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Baixa Rastrea de: STRQ1 :Suporte às 9 (nove) Áreas de Conhecimento da Gestão de Projetos STRQ2.5 :Suporte ao Grupo de Processos de Encerramento Rastrea para: FEAT5.1 Suporte ao Processo de Encerramento de Contratos Tipo de Requisito:Característica Texto do Requisito:Os WS4PM devem suportar o Processo de Encerramento de Contratos. Atributos IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 244 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Status : Aprovado Classe : Funcional Comentário : Prioridade : Baixa Rastrea de: STRQ1.9 :Suporte à área de Gestão de Aquisições Rastrea para: UC53 :Registro de encerramento de contrato entre Proprietária e Parceira do Projeto FEAT5.2 Suporte ao Processo de Encerramento Administrativo de Projetos Tipo de Requisito:Característica Texto do Requisito:Os WS4PM devem suportar o Processo de Encerramento Administrativo de Projetos. Atributos Status : Aprovado Classe : Funcional Comentário : Prioridade : Baixa Rastrea de: STRQ1.7 :Suporte à área de Gestão da Comunicação Rastrea para: UC54 :Registro automático do percentual de completude de um elemento da WBS do Projeto FEAT6 Permitir a customização de endereços e outros dados de identificação dos serviços Tipo de Requisito:Característica Texto do Requisito:Na implementação dos clientes dos WS4PM deve-se primar pela parametrização, possibilitando a customização de endereços, nomes dos serviços e outros dados que podem mudar em função da escolha de parceiros de projetos. Atributos Status : Aprovado Classe : Não Funcional Comentário : Prioridade : Alta Rastrea de: STRQ3 :Facilidades na utilização Rastrea para: SS2 :Parametrização de informações de acesso aos WS4PM IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 245 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT7 Alta Disponibilidade Tipo de Requisito:Característica Texto do Requisito:Os Serviços Web aplicáveis à Gestão de Projetos devem estar disponíveis para consumo independente de dia e horário. Atributos Status : Aprovado Classe : Não Funcional Comentário : Prioridade : Alta Rastrea de: STRQ5 :Alta disponibilidade Rastrea para: SS8 :Disponibilidade 24x7 FEAT8 Independência de Plataforma Tipo de Requisito:Característica Texto do Requisito:Os WS4PM, por se basearem na tecnologia de Serviços Web, podem ser acessados por aplicações desenvolvidas em plataformas diferentes daquela que foi utilizada para implementá-los. Atributos Status : Aprovado Classe : Não Funcional Comentário : Prioridade : Alta Rastrea de: STRQ3 :Facilidades na utilização Rastrea para: SS13 :Independência da plataforma de desenvolvimento da aplicação consumidora FEAT9 Acessibilidade via rede Tipo de Requisito:Característica Texto do Requisito:O uso da tecnologia de Serviços Web permite que os WS4PM sejam acessados através da rede mundial de computadores (Internet). Atributos Status : Aprovado Classe : Não Funcional Comentário : Prioridade : Alta Rastrea de: STRQ3 :Facilidades na utilização IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 246 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Rastrea para: SS5 :Conexão a uma rede (Internet ou Intranet) SS7 :Transposição de Firewalls FEAT10 Conformidade com Padrões Tipo de Requisito:Característica Texto do Requisito:Os WS4PM são desenvolvidos conforme os padrões estabelecidos e propostos pela W3C (World Wide Web Consortium) e WS-I (Web Services Interoperability). Atributos Status : Aprovado Classe : Não Funcional Comentário : Prioridade : Alta Rastrea de: STRQ6 :Conformidade com Padrões Rastrea para: SS4 :Descrição de Web Services em WSDL SS14 :Utilização da XML SS15 :Arquitetura em Camadas SS18 :Padrões propostos pela W3C (World Wide Web Consortium). SS19 :Padrões propostos pela WS-I (Web Services Interoperability). FEAT11 Facilidades para o Estabelecimento de Parcerias de Projetos Tipo de Requisito:Característica Texto do Requisito:Os WS4PM de cada empresa podem ser registrados em Servidores UDDI públicos ou privados agilizando o processo de estabelecimento de parcerias de projetos, pois estas podem conhecer, mutuamente, informações sobre seus negócios e os WS4PM que cada uma disponibiliza. Atributos Status : Aprovado Classe : Não Funcional Comentário : Prioridade : Alta Rastrea de: STRQ3 :Facilidades na utilização Rastrea para: SS3 :Registro do Negócio e Serviços da Empresa em Servidores de Serviços UDDI SS6 :Interação mínina dos usuários IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 247 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 SS11 :Acessos Simultâneos SS12 :Independência de interface na porção Consumidora FEAT12 Confiabilidade e Segurança no Processamento Tipo de Requisito:Característica Texto do Requisito:Os WS4PM são desenvolvidos levando-se em consideração aspectos e confiabilidade e segurança no processamento de informações. Atributos Status : Aprovado Classe : Não Funcional Comentário : Prioridade : Alta Rastrea de: STRQ4 :Confiabilidade Rastrea para: SS1 :Log de Erros SS9 :Controle de Transações SS10 :Tempo de Resposta SS16 :Políticas de Autorização SS17 :Autenticação e Segurança Digital UC1 Obtenção de Informações do Documento de Autorização do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Ra1.1 – É necessário um serviço que possibilite às Empresas Parceiras do Projeto e Envolvidos (stakeholders) obterem informações constantes no Documento de Autorização do Projeto (Project Charter) elaborado pela Empresa Líder do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 248 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Release Alvo : Rastrea de: FEAT1.1 :Suporte ao Processo de Iniciação Rastrea para: UC2 Registro de interesse ou comprometimento das Empresas Parceiras Tipo de Requisito:Casos de Uso Texto do Requisito:Ra1.2 – É necessário um serviço que possibilite o registro de manifestação de interesse ou comprometimento em participar do projeto por parte das Empresas Parceiras da Empresa Líder do Projetos; e Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT1.1 :Suporte ao Processo de Iniciação Rastrea para: UC3 Obtenção de restrições e premissas definidas pela Proprietária Tipo de Requisito:Casos de Uso Texto do Requisito:Ra1.3 – É necessário um serviço que permita às Empresas Parceiras do Projeto e Envolvidos terem acesso a restrições e premissas definidas pela Empresa Líder do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 249 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT1.1 :Suporte ao Processo de Iniciação Rastrea para: UC4 Obtenção da Descrição Sumária do Produto do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb1.1 – É necessário um serviço que possibilite às Empresas Parceiras do Projeto obterem a descrição sumária do produto a ser desenvolvido; Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.1 :Suporte ao Processo de Planejamento do Escopo Rastrea para: UC5 Obtenção de Objetivos Macros do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb1.2 - É necessário um serviço que possibilite às Empresas Parceiras do Projeto obterem os objetivos macros do projeto a ser desenvolvido; Atributos Prioridade : Alta Status : Aprovado Esforço : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 250 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.1 :Suporte ao Processo de Planejamento do Escopo Rastrea para: UC6 Obtenção da Lista Sumarizada dos componentes do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb1.3 - É necessário um serviço que possibilite às Empresas Parceiras do Projeto obterem uma lista sumarizada dos componentes do projeto, identificando aqueles que lhe cabem. Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.1 :Suporte ao Processo de Planejamento do Escopo Rastrea para: UC7 Acesso a Informações de elementos da WBS do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb2.1 – É necessário um serviço que permita às Empresas Parceiras, acessarem informações referentes a elementos da WBS do projeto definidos pela Empresa Líder do Projeto. Atributos Prioridade : Alta IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 251 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.2 :Suporte ao Processo de Detalhamento do Escopo Rastrea para: UC8 Registro de restrições de tempo para desenvolvimento de componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb4.1 – É necessário um serviço que permita às Empresas Parceiras registrarem, junto às Empresas Proprietárias de Projetos, restrições em termos de início e término de atividades para o desenvolvimento do subproduto que lhe foi delegado. Atributos Prioridade : Alta Status : Aprovado Esforço : ** Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.4 :Suporte ao Processo de Sequenciamento de Atividades Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 252 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 UC9 Definição da duração das atividades delegadas a Parceiras Tipo de Requisito:Casos de Uso Texto do Requisito:Rb5.1 – É necessário um serviço para propiciar às Empresas Parceiras a capacidade de definirem a duração das atividades que lhes forem delegadas, ou seja, a Empresa Parceira do Projeto que fabricará a asa de um novo modelo de aeronave, poderá informar, após a elaboração do projeto desta, o tempo estimado de duração das atividades de “construção da asa” e “integração da asa à fuselagem”. Atributos Prioridade : Alta Status : Aprovado Esforço : ** Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.5 :Suporte ao Processo de Estimativa de Duração das Atividades Rastrea para: UC10 Registro de informações de auxílio ao planejamento da gestão de riscos Tipo de Requisito:Casos de Uso Texto do Requisito:Rb7.1 - É necessário um serviço que permita às Empresas Parceiras do Projeto e outros stakeholders registrarem junto à Empresa Líder do Projeto informações que contribuirão para planejamento da gestão de riscos. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Média Atribuido a : Afeta a Arquitetura : Comentário : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 253 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Release Alvo : Rastrea de: FEAT2.7 :Suporte ao processo de Planejamento da Gestão de Riscos em Projetos Rastrea para: UC11 Obtenção de informações sobre o componente a ser desenvolvido Tipo de Requisito:Casos de Uso Texto do Requisito:Rb8.1 - É necessário um serviço para propiciar às Empresas Parceiras a capacidade de obter dados do componente que esta deverá desenvolver incluindo a estimativa de duração apontada pela Empresa Líder do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.8 :Suporte ao Processo de Planejamento de Recursos Rastrea para: UC12 Comunicação das estimativas de custo de componentes à Proprietária do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb9.1 – É necessário um serviço que possibilite às Empresas Parceiras comunicarem à Empresa Líder do Projeto as estimativas de custo de seu componente. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 254 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.9 :Suporte ao Processo de Estimativas de Custo Rastrea para: UC13 Definição de uma unidade monetária para o Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb9.2 - É necessário definir uma unidade monetária comum para os envolvidos no projeto, que podem estar em partes distintas do mundo, e portanto, possuem moedas locais diferentes. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.9 :Suporte ao Processo de Estimativas de Custo Rastrea para: UC14 Comunicação das Orçamentações de Custo do desenvolvimento de componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb10.1 – É necessário um serviço que possibilite às Empresas Parceiras comunicarem à Empresa Líder do Projeto as orçamentações de custo de desenvolvimento do componente que lhe foi delegado. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 255 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.10 :Suporte ao Processo de Orçamentação de Custos Rastrea para: UC15 Registro de Restrições, Premissas e Dados de Políticas Organizacionais de Parcerias do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb11.1 – É necessário um serviço que possibilite às Empresas Parceiras registrarem restrições, premissas e dados de suas políticas organizacionais que sejam relevantes para a composição do Plano do Projeto da Empresa Líder do Projeto. Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.11 :Suporte ao Processo de Desenvolvimento do Plano de Projetos Rastrea para: UC16 Acesso, por parte das Parceiras do Projeto, a elementos do Plano. Tipo de Requisito:Casos de Uso Texto do Requisito:Rb11.2 – É necessário um serviço que permita o acesso, por parte das Empresas Parceiras, a elementos do Plano do Projeto. Atributos IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 256 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.11 :Suporte ao Processo de Desenvolvimento do Plano de Projetos Rastrea para: UC17 Consulta a informações referentes a detalhes de suporte Tipo de Requisito:Casos de Uso Texto do Requisito:Rb11.3 – É necessário um serviço que possibilite às Empresas Parceiras realizarem consultas a porções de informações referentes a detalhes de suporte como documentação sobre padrões relevantes, documentação técnica, etc. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.11 :Suporte ao Processo de Desenvolvimento do Plano de Projetos Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 257 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 UC18 Consulta a Políticas de Qualidade da Proprietária do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb12.1 – É necessário um serviço que possibilite às Empresas Parceiras consultarem políticas de qualidade definidas pela Empresa Líder do Projeto. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.12 :Suporte ao Processo de Planejamento da Qualidade Rastrea para: UC19 Obtenção da definição do Produto do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb12.2 – É necessário um serviço que possibilite às Empresas Parceiras obterem a definição do produto feita pela Empresa Líder do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 258 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Rastrea de: FEAT2.12 :Suporte ao Processo de Planejamento da Qualidade Rastrea para: UC20 Obtenção da definição do escopo do Produto do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb12.3 – É necessário um serviço que possibilite às Empresas Parceiras obterem a definição do escopo do produto feita pela Empresa Líder do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.12 :Suporte ao Processo de Planejamento da Qualidade Rastrea para: UC21 Obtenção de Padrões e Regulamentos do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb12.4 – É necessário um serviço que possibilite às Empresas Parceiras obterem os padrões e regulamentos definidos pela Empresa Proprietário do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 259 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Comentário : Release Alvo : Rastrea de: FEAT2.12 :Suporte ao Processo de Planejamento da Qualidade Rastrea para: UC22 Informação de custos relativos ao Controle de Qualidade no desenvolvimento de Componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb12.5 – É necessário um serviço que possibilite às Empresas Parceiras informarem à Empresa Líder do Projeto, os custos relativos ao controle de qualidade de seu componente para que essa possa obter o custo total da qualidade do projeto. Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.12 :Suporte ao Processo de Planejamento da Qualidade Rastrea para: UC23 Registro de Requisitos de Comunicação Tipo de Requisito:Casos de Uso Texto do Requisito:Rb15.1 – É necessário um serviço que possibilite à Proprietária do Projeto e às Empresas Parceiras registrarem seus requisitos de comunicação, ou seja, que informações eles esperam um do outro. Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 260 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.15 :Suporte ao Processo de Planejamento da Comunicação em Projetos Rastrea para: UC24 Registro de riscos relacionados a componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb16.1 – É necessário um serviço que permita às Empresas Parceiras registrarem riscos relacionados a seu subproduto que podem comprometer o desempenho do projeto como um todo, levando tal informação a conhecimento da Empresa Líder do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.16 :Suporte ao Processo de Identificação de Riscos Rastrea para: UC25 Definição de gatilhos que disparam comunicados aos envolvidos, caso determinados marcos não sejam atingidos Tipo de Requisito:Casos de Uso Texto do Requisito:Rb16.2 - Podem ser definidos gatilhos que podem ser disparados caso marcos intermediários definidos não sejam atingidos, advertindo a equipe do projeto de um atraso eminente no projeto. Alguns marcos intermediários podem ser definidos nas Empresas Parceiras e gatilhos podem ser associados a eles de forma que advertências lhes são reportadas e até reportadas à Proprietária do Projeto automaticamente. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 261 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.16 :Suporte ao Processo de Identificação de Riscos Rastrea para: UC26 Obtenção de informações referentes à Classificação do Risco Global para o Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rb17.1 – É necessário um serviço que permita o acesso dos envolvidos num projeto a informações referentes à classificação dos riscos globais para o projeto. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.17 :Suporte ao Processo de Análise Qualitativa de Riscos Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 262 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 UC27 Obtenção da Lista de Riscos Prioritários para o projeto de componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb17.2 – É necessário um serviço que possibilite o acesso, por parte da Empresa Propritária do Projeto, à lista de riscos prioritários das Empresas Parceiras do Projeto; Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.17 :Suporte ao Processo de Análise Qualitativa de Riscos Rastrea para: UC28 Obtenção de informações de itens da Lista de Riscos de componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb17.3 – É necessário um serviço que permita o acesso, por parte da Empresa Líder do Projeto, a informações referentes a itens da Lista de Riscos das Empresas Parceiras para análise e gerenciamento adicionais; e Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 263 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Rastrea de: FEAT2.17 :Suporte ao Processo de Análise Qualitativa de Riscos Rastrea para: UC29 Obtenção de informações a respeito da tendência em resultados de Análise Qualitativa de Riscos dos componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb17.4 - É necessário um serviço que permita à Empresa Líder do Projeto obter informações a respeito da tendência em resultados da Análise Qualitativa de Riscos dos componentes delegados a Empresas Parceiras do Projeto. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.17 :Suporte ao Processo de Análise Qualitativa de Riscos Rastrea para: UC30 Obtenção da Lista Priorizada de Riscos Quantificados dos Projetos de componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb18.1 – É necessário um serviço que permita à Empresa Líder do Projeto obter a lista priorizada dos riscos quantificados dos projetos de componentes delegados a Empresas Parceiras; Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 264 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.18 :Suporte ao Processo de Análise Quantitativa de Riscos em Projetos Rastrea para: UC31 Obtenção de resultados da Análise Probabilística dos Projetos de Componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb18.2 – É necessário um serviço que permita à Proprietária do Projeto obter resultados da Análise Probabilística dos projetos de componentes delegados a Empresas Parceiras; Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.18 :Suporte ao Processo de Análise Quantitativa de Riscos em Projetos Rastrea para: UC32 Obtenção da probabilidade de alcance dos objetivos de custo e tempo dos projetos de componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb18.3 – É necessário um serviço que permita à Empresa Líder do Projeto obter a probabilidade de se alcançar os objetivos de custo e de tempo dos projetos de componentes sob a responsabilidade de Empresas Parceiras do Projeto; e Atributos Prioridade : Baixa Status : Aprovado Esforço : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 265 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.18 :Suporte ao Processo de Análise Quantitativa de Riscos em Projetos Rastrea para: UC33 Obtenção das tendências de resultados da Análise Quantitativa dos riscos dos projetos de componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rb18.4 – É necessário um serviço que permita à Empresa Líder do Projeto obter as tendências no resultado da análise quantitativa dos riscos dos projetos de componentes sob responsabilidade de Empresas Parceiras. Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.18 :Suporte ao Processo de Análise Quantitativa de Riscos em Projetos Rastrea para: UC34 Registro de riscos do projeto de componentes, potenciais para o projeto como um todo Tipo de Requisito:Casos de Uso IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 266 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Texto do Requisito:Rb19.1 – É necessário um serviço que permita às Empresas Parceiras do Projeto registrarem, junto à Empresa Líder do Projeto, informações sobre riscos do projeto que estão desenvolvendo e que são considerados riscos potenciais para o Projeto de Larga Escala como um todo Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Média Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.19 :Suporte ao Processo de Planejamento de Resposta a Riscos Rastrea para: UC35 Conhecimento mútuo da saúde financeira de parceiros de projetos Tipo de Requisito:Casos de Uso Texto do Requisito:Rb20.1 – É necessário um serviço que permita aos parceiros de projetos (Empresa Líder do Projeto e Empresa Parceira do Projeto) conhecerem, mutuamente, sua “saúde financeira”. Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT2.20 :Suporte ao Processo de Planejamento de Aquisições em Projetos IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 267 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Rastrea para: UC36 Registro e Consulta do trabalho executado Tipo de Requisito:Casos de Uso Texto do Requisito:Rc1.1 – É necessário um serviço que permita o registro e consulta a resultados do trabalho executado tanto na Empresa Líder do Projeto quanto nas Empresas Parceiras do Projeto, oferecendo visibilidade a quem de direito. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT3.1 :Suporte ao Processo de Execução do Plano do Projeto Rastrea para: UC37 Registro de Solicitações de Mudança Tipo de Requisito:Casos de Uso Texto do Requisito:Rc1.2 – É necessário um serviço que permita tanto à Empresa Líder do Projeto quanto às Empresas Parceiras registrarem e comunicarem solicitações de mudanças, disparando gatilhos de comunicação para os envolvidos. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 268 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Comentário : Release Alvo : Rastrea de: FEAT3.1 :Suporte ao Processo de Execução do Plano do Projeto Rastrea para: UC38 Relato dos resultados de medição do controle de qualidade dos componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rc2.1 – É necessário um serviço que possibilite às Empresas Parceiras do Projeto relatarem de forma automatizada os resultados de medição do controle de qualidade do componente que ela está desenvolvendo. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT3.2 :Suporte ao Processo de Garantia da Qualidade Rastrea para: UC39 Obtenção de dados de relatórios de situação, progresso e previsões gerados pelas Empresas Parceiras Tipo de Requisito:Casos de Uso Texto do Requisito:Rd1.1 – É necessário um serviço que permita à Empresa Líder do Projeto obter dados de relatórios de situação, progresso e previsões gerados pelas Empresas Parceiras do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 269 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.1 :Suporte ao Processo de Relato de Desempenho de Projetos Rastrea para: UC40 Registro de dados referentes à análise de tendências, variações e valor obtido dos projetos de componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rd1.2 – É necessário um serviço que automaticamente, ou não, envie dados referentes a análises de tendência, variação e valor obtido das Empresas Parceiras para a Empresa Líder do Projeto. Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.1 :Suporte ao Processo de Relato de Desempenho de Projetos Rastrea para: UC41 Registro de requisições de Mudança, mediante a análise de desempenho do Projeto. Tipo de Requisito:Casos de Uso Texto do Requisito:Rd1.3 – É necessário um serviço que permita o registro de requisições de mudanças, vindas tanto da Proprietária do Projeto quanto da Parceiras, mediante a análise de desempenho do projeto. Atributos Prioridade : Alta IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 270 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.1 :Suporte ao Processo de Relato de Desempenho de Projetos Rastrea para: UC42 Atualizações no Plano do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rd2.1 – É necessário um serviço que possibilite atualizações no Plano do Projeto, tanto por parte da Empresa Líder quanto por parte das Empresas Parceiras, porém, de forma coordenada. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.2 :Suporte ao Processo de Controle Integrado de Mudanças em Projetos Rastrea para: UC43 Registro de aceitação do escopo dos componentes Tipo de Requisito:Casos de Uso IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 271 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Texto do Requisito:Rd3.1 - É necessário um serviço que possibilite o registro de aceitação do escopo do Projeto de Larga Escala, por parte das Empresas Parceiras, mediante informação de senha pertencente apenas aos coordenadores de projetos das Parceiras envolvidas. Atributos Prioridade : Baixa Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.3 :Suporte ao Processo de Verificação do Escopo de Projetos Rastrea para: UC44 Registro das Informações que comporão relatórios de desempenho Tipo de Requisito:Casos de Uso Texto do Requisito:Rd4.1 – É necessário um serviço que permita às Empresas Parceiras registrarem informações que comporão relatórios de desempenho; Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.4 :Suporte ao Processo de Controle de Mudanças do Escopo de Projetos IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 272 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Rastrea para: UC45 Registro de requisições de mudança no Escopo do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rd4.2 – É necessário um serviço que possibilite à Empresa Líder do Projeto registrar requisições de mudanças no escopo. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.4 :Suporte ao Processo de Controle de Mudanças do Escopo de Projetos Rastrea para: UC46 Comunicação de mudanças sugeridas, em aprovação e aprovadas, em relação escopo do projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rd4.3 – É necessário um serviço que possibilite a comunicação às Empresas Parceiras do Projeto, sobre mudanças sugeridas, em aprovação e aprovadas em relação ao escopo do projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 273 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Comentário : Release Alvo : Rastrea de: FEAT4.4 :Suporte ao Processo de Controle de Mudanças do Escopo de Projetos Rastrea para: UC47 Comunicação à Proprietária do Projeto de atualizações no cronograma do projeto de componentes Tipo de Requisito:Casos de Uso Texto do Requisito:Rd5.1 – É necessário um serviço que possibilite à Empresa Líder do Projeto tomar conhecimento de atualizações no cronograma, feitas pelas Empresas Parceiras do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.5 :Suporte ao Processo de Controle do Cronograma de Projetos Rastrea para: UC48 Comunicação às Empresas Parceiras de atualizações feitas no cronograma do projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rd5.2 – É necessário um serviço que possibilite às Empresas Parceiras tomarem conhecimento de atualizações feitas no cronograma, pela Empresa Líder do Projeto. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 274 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.5 :Suporte ao Processo de Controle do Cronograma de Projetos Rastrea para: UC49 Relato do Desempenho do Projeto de Componentes à Proprietária do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rd6.1 – É necessário um serviço que possibilite às Empresas Parceiras informarem à Empresa Líder do Projeto valores referentes aos totais das variáveis da Análise de Valor Obtido dos projetos dos componentes que elas estão desenvolvendo, para que a Proprietária possa acompanhar o desempenho do projeto como um todo. Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.6 :Suporte ao Processo de Controle de Custos de Projetos Rastrea para: UC50 Obtenção, por parte das Empresas Parceiras do Projeto, de informações sobre a Análise de Valor Obtido do Projeto de Larga Escala Tipo de Requisito:Casos de Uso Texto do Requisito:Rd6.2 – É necessário um serviço que possibilite às Empresas Parceiras do Projeto obterem informações sobre a Análise de Valor Obtido do Projeto de Larga Escala como um todo. Atributos Prioridade : Alta IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 275 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Média Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.6 :Suporte ao Processo de Controle de Custos de Projetos Rastrea para: UC51 Obtenção de informações referentes a Padrões de Qualidade estabelecidos pela Proprietária do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Rd7.1 – É necessário um serviço que possibilite às Empresas Parceiras obterem informações referentes aos Padrões de Qualidade estabelecidos pela Empresa Líder do Projeto, para o produto como um todo. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.7 :Suporte ao Processo de Controle da Qualidade em Projetos Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 276 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 UC52 Obtenção de valores referentes ao controle e monitoramento de riscos do projeto de um componente Tipo de Requisito:Casos de Uso Texto do Requisito:Rd8.1 – É necessário um serviço que informe à Empresa Líder do Projeto, valores referentes a variáveis de controle e monitoramento de riscos referentes à execução dos projetos de componentes delegados a empresas parceiras Atributos Prioridade : Alta Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT4.8 :Suporte ao Processo de Controle e Monitoração de Riscos em Projetos Rastrea para: UC53 Registro de encerramento de contrato entre Proprietária e Parceira do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Re1.1 – É necessário um serviço que registre o encerramento do contrato entre a Empresa Líder e a Parceira para um determinado componente do projeto. Dessa forma, a Empresa Líder passa a não receber mais informações referentes ao elemento da WBS de seu projeto que se relaciona ao projeto do componente desenvolvido pela Empresa Parceira. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 277 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Release Alvo : Rastrea de: FEAT5.1 :Suporte ao Processo de Encerramento de Contratos Rastrea para: UC54 Registro automático do percentual de completude de um elemento da WBS do Projeto Tipo de Requisito:Casos de Uso Texto do Requisito:Re2.1 – É necessário um serviço que permita marcar o percentual de completude de um determinado elemento na WBS do Projeto, na Empresa Líder, mediante o registro do encerramento administrativo, por parte das Empresas Parceiras, para o término de uma fase ou conclusão de um componente que lhe foi delegado. Atributos Prioridade : Média Status : Aprovado Esforço : Risco : Estabilidade : Dificuldade : Atribuido a : Afeta a Arquitetura : Comentário : Release Alvo : Rastrea de: FEAT5.2 :Suporte ao Processo de Encerramento Administrativo de Projetos Rastrea para: STRQ1 Suporte às 9 (nove) Áreas de Conhecimento da Gestão de Projetos Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:É necessário que se provenha interoperabilidade quanto a execução dos processos relacionados às 9 (nove) Áreas de Conhecimento da Gestão de Projetos, definidas pelo PMI Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT1 :Suporte aos Processos de Iniciação FEAT2 :Suporte aos Processos de Planejamento FEAT3 :Suporte aos Processos de Execução IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 278 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT4 :Suporte aos Processos de Controle FEAT5 :Suporte aos Processos de Encerramento STRQ1.1 Suporte à área de Gestão da Integração Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Gestão da Integração Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT2.11 :Suporte ao Processo de Desenvolvimento do Plano de Projetos FEAT3.1 :Suporte ao Processo de Execução do Plano do Projeto FEAT4.2 :Suporte ao Processo de Controle Integrado de Mudanças em Projetos STRQ1.2 Suporte à área de Gestão do Escopo Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Gestão do Escopo Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT1.1 :Suporte ao Processo de Iniciação FEAT2.1 :Suporte ao Processo de Planejamento do Escopo FEAT2.2 :Suporte ao Processo de Detalhamento do Escopo FEAT4.3 :Suporte ao Processo de Verificação do Escopo de Projetos FEAT4.4 :Suporte ao Processo de Controle de Mudanças do Escopo de Projetos STRQ1.3 Suporte à Gestão de Prazos Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Gestão de Prazos Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT2.3 :Suporte ao Processo de Definição das Atividades IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 279 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT2.4 :Suporte ao Processo de Sequenciamento de Atividades FEAT2.5 :Suporte ao Processo de Estimativa de Duração das Atividades FEAT2.6 :Suporte ao Processo de Desenvolvimento do Cronograma FEAT4.5 :Suporte ao Processo de Controle do Cronograma de Projetos STRQ1.4 Suporte à área de Gestão de Custos Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Gestão de Custos Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT2.8 :Suporte ao Processo de Planejamento de Recursos FEAT2.9 :Suporte ao Processo de Estimativas de Custo FEAT2.10 :Suporte ao Processo de Orçamentação de Custos FEAT4.6 :Suporte ao Processo de Controle de Custos de Projetos STRQ1.5 Suporte à área de Gestão da Qualidade Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Gestão de Qualidade Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT2.12 :Suporte ao Processo de Planejamento da Qualidade FEAT3.2 :Suporte ao Processo de Garantia da Qualidade FEAT4.7 :Suporte ao Processo de Controle da Qualidade em Projetos STRQ1.6 Suporte à área de Recursos Humanos Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Gestão de Recursos Humanos Atributos Status : Aprovado Comentário : Rastrea de: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 280 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Rastrea para: FEAT2.13 :Suporte ao Processo de Planejamento Organizacional FEAT2.14 :Suporte ao Processo de Montagem da Equipe FEAT3.3 :Suporte ao Processo de Desenvolvimento da Equipe de Projeto STRQ1.7 Suporte à área de Gestão da Comunicação Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Gestão da Comunicação Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT2.15 :Suporte ao Processo de Planejamento da Comunicação em Projetos FEAT3.4 :Suporte ao Processo de dsitribuição das Informações FEAT4.1 :Suporte ao Processo de Relato de Desempenho de Projetos FEAT5.2 :Suporte ao Processo de Encerramento Administrativo de Projetos STRQ1.8 Suporte à área de Gestão de Riscos Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Gestão de Riscos Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT2.7 :Suporte ao processo de Planejamento da Gestão de Riscos em Projetos FEAT2.16 :Suporte ao Processo de Identificação de Riscos FEAT2.17 :Suporte ao Processo de Análise Qualitativa de Riscos FEAT2.18 :Suporte ao Processo de Análise Quantitativa de Riscos em Projetos FEAT2.19 :Suporte ao Processo de Planejamento de Resposta a Riscos FEAT4.8 :Suporte ao Processo de Controle e Monitoração de Riscos em Projetos STRQ1.9 Suporte à área de Gestão de Aquisições Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Gestão de Aquisições Atributos Status : Aprovado IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 281 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Comentário : Rastrea de: Rastrea para: FEAT2.20 :Suporte ao Processo de Planejamento de Aquisições em Projetos FEAT2.21 :Suporte ao Processo de Preparação de Aquisições em Projetos FEAT3.5 :Suporte ao Processo de Pedido de Propostas FEAT3.6 :Suporte ao Processo de Seleção de Fornecedores FEAT3.7 :Suporte ao Processo de Administração de Contratos FEAT5.1 :Suporte ao Processo de Encerramento de Contratos STRQ2 Prover interoperabilidade na execução dos Processos da Gestão de Projetos Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:É necessário que se provenha interoperabilidade na execução dos processos contantes nos 5 (cinco) Grupos de Processos da Gestão de Projetos, definidos pelo PMI Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: STRQ2.1 Suporte ao Grupo de Processos de Iniciação Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Processos de Iniciação Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT1 :Suporte aos Processos de Iniciação STRQ2.2 Suporte ao Grupo de Processos de Planejamento. Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Processos de Planejamento Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT2 :Suporte aos Processos de Planejamento IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 282 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 STRQ2.3 Suporte ao Grupo de Processos de Execução Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Processos de Execução Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT3 :Suporte aos Processos de Execução STRQ2.4 Suporte ao Grupo de Processos de Controle Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Processos de Controle Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT4 :Suporte aos Processos de Controle STRQ2.5 Suporte ao Grupo de Processos de Encerramento Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Processos de Encerramento Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT5 :Suporte aos Processos de Encerramento STRQ3 Facilidades na utilização Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Os Serviços Web aplicáveis à Gestão de Projetos devem primar pela facilidade de sua utilização. Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT6 :Permitir a customização de endereços e outros dados de identificação dos serviços FEAT8 :Independência de Plataforma IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 283 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT9 :Acessibilidade via rede FEAT11 :Facilidades para o Estabelecimento de Parcerias de Projetos STRQ4 Confiabilidade Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Os Serviços Web aplicáveis à Gestão de Projetos devem ser confiáveis quando da realização do processamento de informações distribuídas. Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT12 :Confiabilidade e Segurança no Processamento STRQ5 Alta disponibilidade Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Os Serviços Web aplicáveis à Gestão de Projetos devem sempre estar disponíveis para acesso, independente de dia e horário. Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT7 :Alta Disponibilidade STRQ6 Conformidade com Padrões Tipo de Requisito:Solicitação de Stakeholders Texto do Requisito:Os Serviços Web aplicáveis à Gestão de Projetos devem ser desenvolvidos com base em padrões reconhecidos pela comunidade de desenvolvedores de software. Atributos Status : Aprovado Comentário : Rastrea de: Rastrea para: FEAT10 :Conformidade com Padrões SS1 Log de Erros Tipo de Requisito:Especificação Suplementar Texto do Requisito:Quando ocorrerem falhas em transações e processamentos devem ser registrados logs de erros tanto nos provedores quanto nos consumidores de WS4PM. Atributos Prioridade : Media 284 IEC – Divisão de Ciência da ©ITA - Instituto Tecnológico de Computação Aeronáutica, 2003 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Baixo Release Alvo : Rastrea de: FEAT12 :Confiabilidade e Segurança no Processamento Rastrea para: SS2 Parametrização de informações de acesso aos WS4PM Tipo de Requisito:Especificação Suplementar Texto do Requisito:Na implementação de aplicações consumidoras dos WS4PM deve-se propiciar aos usuários a possibilidade de parametrizarem informações que customizem endereços de acesso, nomes dos serviços e outros dados sensíveis à escolha de parceiros de projetos. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Baixo Release Alvo : Rastrea de: FEAT6 :Permitir a customização de endereços e outros dados de identificação dos serviços Rastrea para: SS3 Registro do Negócio e Serviços da Empresa em Servidores de Serviços UDDI Tipo de Requisito:Especificação Suplementar Texto do Requisito:Os usuários de WS4PM devem registrar informações sobre o seu negócio e os WS4PM disponíveis, facilitando a integração com parceiros. IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 285 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Médio Release Alvo : Rastrea de: FEAT11 :Facilidades para o Estabelecimento de Parcerias de Projetos Rastrea para: SS4 Descrição de Web Services em WSDL Tipo de Requisito:Especificação Suplementar Texto do Requisito:Uma descrição do Serviço Web implementado deve ser provida em documentos WSDL, propiciando facilidades na implementação de consumidores. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Médio Release Alvo : Rastrea de: FEAT10 :Conformidade com Padrões Rastrea para: SS5 Conexão a uma rede (Internet ou Intranet) Tipo de Requisito:Especificação Suplementar IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 286 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Texto do Requisito:É indispensável que as estações que acessarão os WS4PM estejam conectadas à rede mundial de computadores (Internet) ou a uma rede privada, a uma velocidade média de 128Kbps Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Baixo Release Alvo : Rastrea de: FEAT9 :Acessibilidade via rede Rastrea para: SS6 Interação mínina dos usuários Tipo de Requisito:Especificação Suplementar Texto do Requisito:Quando da implementação dos WS4PM em Softwares de Gestão de Projetos, deve-se primar para que a aplicação comsumidora exija o mínimo de interação dos usuários, utilizando-se recursos como gatilhos em eventos disparados quando da utilização das funcionalidades desses softwares. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Médio Release Alvo : Rastrea de: FEAT11 :Facilidades para o Estabelecimento de Parcerias de Projetos Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 287 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 SS7 Transposição de Firewalls Tipo de Requisito:Especificação Suplementar Texto do Requisito:Os sistemas de proteção contra invasões do tipo firewalls não devem impedir que consumidores acessem as funcionalidades expostas pelos WS4PM. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Baixo Release Alvo : Rastrea de: FEAT9 :Acessibilidade via rede Rastrea para: SS8 Disponibilidade 24x7 Tipo de Requisito:Especificação Suplementar Texto do Requisito:Os Serviços Web Aplicáveis à Gestão de Projetos devem estar disponíveis para consumo 24 horas por dia e 7 dias por semana (24x7). Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Médio Release Alvo : Rastrea de: FEAT7 :Alta Disponibilidade Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 288 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 SS9 Controle de Transações Tipo de Requisito:Especificação Suplementar Texto do Requisito:Devem ser implementados mecanismos para o controle de transações que envolvem parceiros, incluindo a capacidade de se desfazer uma transação incompleta (Rollback). Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Alto Release Alvo : Rastrea de: FEAT12 :Confiabilidade e Segurança no Processamento Rastrea para: SS10 Tempo de Resposta Tipo de Requisito:Especificação Suplementar Texto do Requisito:Deve-se primar para que cada transação, exceto aquelas que envolvam o tráfego de elementos atachados, como desenhos por exemplo, durem no máximo 10 segundos. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Alto Release Alvo : Rastrea de: FEAT12 :Confiabilidade e Segurança no Processamento Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 289 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 SS11 Acessos Simultâneos Tipo de Requisito:Especificação Suplementar Texto do Requisito:Os WS4PM devem ser escaláveis, suportando acessos “simultâneos” de consumidores, na faixa de 1 a 3000. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Médio Release Alvo : Rastrea de: FEAT11 :Facilidades para o Estabelecimento de Parcerias de Projetos Rastrea para: SS12 Independência de interface na porção Consumidora Tipo de Requisito:Especificação Suplementar Texto do Requisito:Os WS4PM devem ser desenvolvidos de forma a não impor restrições à implementação de interfaces de usuário no desenvolvimento de aplicações consumidoras, ou seja, qualquer tipo de implementação, seja ela baseada em tecnologias da Web (acessíveis através de navegadores) ou não, devem ser capazes de acionar e obter resultados dos WS4PM. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Alto Release Alvo : Rastrea de: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 290 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 FEAT11 :Facilidades para o Estabelecimento de Parcerias de Projetos Rastrea para: SS13 Independência da plataforma de desenvolvimento da aplicação consumidora Tipo de Requisito:Especificação Suplementar Texto do Requisito:Deve-se permitir que qualquer aplicação cliente, independente da plataforma sobre a qual foi desenvolvida, acesse os métodos implementados nos WS4PM. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Médio Release Alvo : Rastrea de: FEAT8 :Independência de Plataforma Rastrea para: SS14 Utilização da XML Tipo de Requisito:Especificação Suplementar Texto do Requisito:Os WS4PM devem utilizar a XML para a definição, transmissão, validação e interpretação de dados entre aplicações. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Baixo Release Alvo : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 291 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Rastrea de: FEAT10 :Conformidade com Padrões Rastrea para: SS15 Arquitetura em Camadas Tipo de Requisito:Especificação Suplementar Texto do Requisito:Quando da implementação de aplicações que terão funcionalidades expostas com base nos WS4PM, deve-se primar pelo seu desenvolvimento baseado em estilos de Arquitetura em Camadas. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Médio Release Alvo : Rastrea de: FEAT10 :Conformidade com Padrões Rastrea para: SS16 Políticas de Autorização Tipo de Requisito:Especificação Suplementar Texto do Requisito:Os WS4PM devem ser implementados primando-se pela utilização de Políticas de Autorização que impeçam que pessoas não autorizadas acessem ou alterem informações que não lhe dizem respeito. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Alto IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 292 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Release Alvo : Rastrea de: FEAT12 :Confiabilidade e Segurança no Processamento Rastrea para: SS17 Autenticação e Segurança Digital Tipo de Requisito:Especificação Suplementar Texto do Requisito:Para os WS4PM que exigirem segurança de informação, devem ser implementados mecanismos de autenticação e segurança baseados em tecnologias de certificados e assinaturas digitais, como por exemplo: certificados X.509 e bilhetes Kerberos. Atributos Prioridade : Media Status : Aprovado Dificuldade : Alta Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Alto Release Alvo : Rastrea de: FEAT12 :Confiabilidade e Segurança no Processamento Rastrea para: SS18 Padrões propostos pela W3C (World Wide Web Consortium). Tipo de Requisito:Especificação Suplementar Texto do Requisito:Quando da implementação dos WS4PM sugere-se a observação dos padrões para Serviços Web propostos pela W3C que podem ser acessados a partir de www.w3.org. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 293 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Risco : Médio Release Alvo : Rastrea de: FEAT10 :Conformidade com Padrões Rastrea para: SS19 Padrões propostos pela WS-I (Web Services Interoperability). Tipo de Requisito:Especificação Suplementar Texto do Requisito:Quando da implementação dos WS4PM sugere-se a observação dos padrões para Serviços Web propostos pela WS-I que podem ser acessados a partir de www.ws-i.org. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : Esforço : Risco : Médio Release Alvo : Rastrea de: FEAT10 :Conformidade com Padrões Rastrea para: SS20 Definição de um Portal para possibilitar a utilização de alguns Serviços Web Tipo de Requisito:Especificação Suplementar Texto do Requisito:Rb15.2 – É necessário definir um Portal de Comunicação que permita a interação entre a Proprietária e as Parceiras do Projeto onde alguns serviços propostos nesse documento pudessem ser acessados, estendendo a implementação de eventuais portais atualmente utilizados por Empresas Proprietárias de Projeto. Atributos Prioridade : Media Status : Aprovado Dificuldade : Media Estabilidade : Media Atribuído a : Comentário : IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 294 WS4PM – Serviços Web para Gestão de Projetos Relação Analítica de Requisitos Apêndice 6 Versão: 1.0 Data: 10/10/2003 Esforço : Risco : Médio Release Alvo : Rastrea de: FEAT2.15 :Suporte ao Processo de Planejamento da Comunicação em Projetos Rastrea para: IEC – Divisão de Ciência da Computação ©ITA - Instituto Tecnológico de Aeronáutica, 2003 295 FOLHA DE REGISTRO DO DOCUMENTO 1. CLASSIFICAÇÃO/TIPO TM 5. 2. DATA 3. DOCUMENTO N° 4. N° DE PÁGINAS 02 de março de 2004 CTA/ITA-IEC/TM-010/2004 295 TÍTULO E SUBTÍTULO: Um Modelo de Interoperabilidade para Softwares de Gestão de Projetos 6. AUTOR(ES): Osvandre Alves Martins 7. INSTITUIÇÃO(ÕES)/ÓRGÃO(S) INTERNO(S)/DIVISÃO(ÕES): Instituto Tecnológico de Aeronáutica / Divisão de Ciência da Computação – ITA/IEC 8. PALAVRAS-CHAVE SUGERIDAS PELO AUTOR: Interoperabilidade de Software, Serviços Web, Gestão de Projetos em Parceria, Projetos de Larga Escala 9.PALAVRAS-CHAVE RESULTANTES DE INDEXAÇÃO: Desenvolvimento de software; Gerenciamento de projetos; Administração de produção; Redes de comunicação; Internet; Relações de cooperação; Empresas; Computação; Administração. 10. APRESENTAÇÃO: X Nacional Internacional Instituto Tecnológico de Aeronáutica, ITA. São José dos Campos, 2003, 295 páginas 11. RESUMO: Está se tornando comum que o desenvolvimento de produtos ou serviços seja realizado conjuntamente por empresas parceiras ou contratadas, que podem estar situadas em diferentes partes do mundo. Em geral, para entregar o produto ou serviço especificado dentro do prazo e com o custo planejado, a disciplina de gerência de projetos tem sido empregada. Esta disciplina consiste de grupos de processos para o inicio, planejamento, controle, execução e o encerramento de atividades. Geralmente as empresas utilizam ferramentas computacionais para a realização do trabalho de gerenciamento e é comum encontrar parceiras de projeto e contratadas utilizando ferramentas distintas que possuem pouco ou nenhum recurso de integração. Isto resulta em dificuldades na gestão integrada do projeto e de seus subprojetos, contribuindo para um controle ineficiente, altos custos e descumprimento de prazos. Este trabalho endereça os aspectos de interoperabilidade entre softwares de gestão de projetos, envolvendo um levantamento dos requisitos de comunicação e integração, com base na metodologia de gestão proposta pelo PMBOK, para propor um modelo de solução em que estes softwares exponham funcionalidades que possam ser invocadas remotamente, para a realização de processamentos e troca de dados entre empresas parceiras de projeto. A tecnologia de serviços Web foi investigada como alternativa para a implementação da solução proposta devido ao fato de ser baseada em padrões abertos e tecnologias WWW disponíveis. A especificação de requisitos foi realizada com base nos conceitos do PMBOK e em entrevistas com a equipe de gerenciamento de projetos do Programa EMBRAER 170/190. Estes projetos são desenvolvidos em parceria com várias empresas, e cada uma delas é responsável pelo desenvolvimento de uma ou mais partes, que compõem os produtos desses projetos. O modelo de solução e a tecnologia de serviços Web foram testados e validados por meio da implementação de dois protótipos de software de gestão de projetos, concebidos a partir das tecnologias Java e .NET. Eles representam softwares de gestão de projetos de fabricantes diferentes que trocam dados, propiciando a aplicação da técnica Análise de Valor Agregado em projetos relacionados. 12. GRAU DE SIGILO: (X ) OSTENSIVO ( ) RESERVADO ( ) CONFIDENCIAL ( ) SECRETO