Pontos de Função & Contagem de Software Aplicativo Middleware Versão 1.0 Nota: A NEC criou esses White Papers, em um esforço para distribuir dicas rápidos sobre este domínio específico para a comunidade de contagem. Este documento é baseado nas práticas de contagem de pontos de função como descrito na atual série 4.2.1 do Manual de Práticas de Contagem (CPM) do IFPUG e demonstra a aplicabilidade do Pontos de Função IFPUG neste domínio descrito. O conteúdo deste documento será utilizado exclusivamente como dicas na aplicação de contagem de pontos de função no domínio descrito. Estas sugestões não constituem mudanças de regra e não deve ser usado como regras. Mesmo este documento sendo revisado e aprovado pelo Comitê de Práticas de Contagem (CPC), ele não constitui normas de práticas de contagem como contidas no CPM do IFPUG. Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 1
Pontos de Função & Contagem de Software Aplicativo Middleware Versão 1.0 Contribuidores do White Paper Autores: Steven Woodward Woodward Systems Inc. Deb Maschino NASCO Charles Wesolowski QinetiQ Roger Heller Q/P Management Group Inc. Revisores: Daniel French GEICO Dawn Coley EDSTammy Preuss AT & T Participantes da tradução para Português Tradutora: Lais Tuany de S. Peixoto - Tecnisys Revisores: Guilherme Siqueira Simões FATTO Consultoria e Sistemas Shãmia Porto Barreto FATTO Consultoria e Sistemas Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 2
Introdução Usando as atuais práticas de contagem, conforme descrito na versão 4.2.1 do CPM, este artigo apresenta um conjunto coeso de dicas sobre como aplicar a Análise de Pontos de Função (APF) para estabelecer o tamanho de pontos de função de uma aplicação middleware. Por favor, note que o resultado não pode ser adicionado ao tamanho funcional das aplicações em outros domínios; por exemplo, o tamanho de uma aplicação middleware não pode ser adicionado ao tamanho de uma aplicação de negócio. Neste documento, em primeiro lugar é dada a descrição de uma aplicação em um ambiente de middleware. Em seguida, o Processo de Contagem de Ponto de Função do CPM é utilizado especificamente para resolver os problemas encontrados quando da contagem de um aplicativo em um ambiente middleware. As seções específicas referenciadas são: Escopo da contagem; Identificar a fronteira da aplicação; Determinar as funções de dados e funções transacionais. Para as exatas definições de usuário, de fronteira e funções de dados ou transacionais, consulte o CPM. O que é Middleware? O termo middleware é usado para descrever produtos (software) que servem como a cola entre duas aplicações. É, portanto, distinto das características de importação e exportação, que pode ser construído em uma das aplicações. Middleware é às vezes chamado de canalização porque liga duas partes de diferentes aplicações e transmite dados entre elas. ¹ Existem muitos tipos de soluções de aplicativos de middleware. Estes tipos incluem, mas não são limitados a: Mensagens, Processamento Distribuído, Interfaces Comuns, Monitores TP, Servidor de Aplicação e Computação Universal. Uma forma popular de implementar um aplicativo middleware é usá lo para conectar duas aplicações de alguma forma separadas. "Por exemplo, há uma série de produtos middleware que possuem um sistema de banco de dados para um servidor web. Isso permite aos usuários solicitar dados do banco de dados usando formulários exibidos em um navegador da web e permite que o servidor web retorne páginas web dinâmicas com base nas solicitações do usuário e perfil."² Os usuários do middleware são normalmente outras aplicações; no entanto, pode haver casos onde interfaces humanas são necessárias para gerenciar a aplicação. 1 Esta definição de middleware pode ser obtida http://inews.webopedia.com/term/m/middleware.html 2 Exemplo de middleware pode ser obtido http://inews.webopedia.com/term/m/middleware.html Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 3
Importante: Os resultados da contagem da aplicação middleware não são adicionados à contagem da aplicação tradicional de negócio. Esta prática iria inflar a entrega da funcionalidade com base numa implementação técnica. Além disso, como acontece com qualquer aplicativo de negócios em um portfólio de aplicações, conte a aplicação middleware apenas uma vez, independentemente do número de aplicativos que usam a funcionalidade da aplicação middleware. Deve ser definido um portfólio de aplicativos separado contendo dados específicos de ponto de função de aplicações middleware. Alguns dos usos para estas medidas de tamanho: Durante a análise do software para aquisição, comparando as funcionalidades do produto; Estimar o tamanho para o desenvolvimento de software de middleware; Tamanho real para determinar os recursos para suporte de software; Documentar o tamanho do portfólio da empresa para fins de avaliação e inventário. Audiência Este documento destina se aos profissionais de contagem de pontos de função que têm uma compreensão intermediária avançada das regras do IFPUG CPM e a necessidade de aplicá los enquanto contam uma aplicação de middleware. Esta informação também pode ser benéfica para os membros da comunidade de Tecnologia da Informação em geral, que precisam adquirir uma compreensão de como middleware se apresenta a partir da perspectiva do usuário quando as regras de contagem do IFPUG são aplicadas. Propósito do Documento A intenção deste documento é apresentar um conjunto coerente de dicas e sobre como aplicar a Análise de Pontos de Função (APF) para estabelecer o tamanho de pontos de função de aplicações de middleware ou projetos. Ao fazer isso, ele ajuda a estimar e gerenciar projetos de middleware em termos quantitativos. Isso serve também para demonstrar a viabilidade da metodologia de contagem do IFPUG em todos os domínios, conforme norma ISO / IEC 14143 1:2007. Com o crescente número de distribuições, sistemas heterogêneos, a capacidade para a correta identificação e dimensionamento de aplicações de middleware torna se mais importante do que nunca ao tentar dimensionar aplicativos de portfólio empresarial ou estimar o desenvolvimento de projetos de software middleware. Contando os aplicativos Middleware: Um Exemplo Este exemplo é baseado em uma parcela das funcionalidades de uma aplicação de roteamento de mensagens. Este middleware permite que aplicativos de mainframe troquem dados com outros aplicativos que são construídos em diferentes tecnologias e utilizam protocolos de telecomunicações diferentes. Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 4
Cenário de aplicação Antes de ser enviada, a mensagem é traduzida em um dos protocolos suportados. Os protocolos suportados pelo roteador são: IIOP (Internet Inter ORB Protocolo) e IMS (IP Multimedia Subsystem). O roteamento de mensagens middleware fornece tanto (1) a retransmissão direta (IIOP para IIOP) e (2) retransmissão de tradução (IIOP para IMS e IMS para IIOP). Lógica de processamento diferente é usada para cada um dos três tipos de retransmissão IIOP para IIOP; IIOP para IMS e IMS para IIOP. No processo de tradução, o middleware (1) converte valores equivalentes, (2) deriva de dados, e (3) prepara e apresenta a informação de forma diferente para cada protocolo. Note que a retransmissão de IMS para IMS, que não é mencionado acima, não necessita de conversão de valores ou derivação de dados. Consulte o apêndice "A"para um diagrama do requisito. Todas as transações recebidas pelo roteador são registradas pelo aplicativo. Esse arquivo de log é atualizado pelo aplicativo quando ele envia uma mensagem. Um relatório operacional é produzido a partir do arquivo de log para acompanhar a operação do roteador. Determinar o Propósito da Contagem O propósito da contagem é obter o tamanho funcional para a aplicação middleware roteadora de forma a ajudar a estabelecer um inventário de aplicações middleware para avaliação da alocação do escopo em manutenções. Determinar o escopo da contagem Identificar as funções contidas no roteamento de mensagens da aplicação middleware descrita acima. Determinar as Fronteiras da Aplicação Os aplicativos que fazem interface com o middleware de roteador são os usuários. Eles reconhecem logicamente as operações que são enviadas e recebidas. Como o propósito é o tamanho da aplicação de roteador middleware, a fronteira é determinada pela funcionalidade oferecida pelo middleware. Determinar os dados e funções transacionais Se um modelo conceitual de dados é fornecido como parte da documentação de um pacote de aplicativos, as funções de dados podem ser derivadas a partir deste modelo de dados. No entanto, se um modelo de dados não estiver disponível, os dados da função do tipo podem ser derivadas de uma referência cruzada (por exemplo, uma matriz CRUD³). 3 CRUD = Create, Read, Update or Delete Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 5
Função de Dados Arquivos Lógicos Internos De acordo com os requisitos dos usuários, todas as transações recebidas e enviadas pelo roteador são registradas em um log do roteador. Para determinar se o log do roteador é ou não é um ALI, aplique as regras do CPM: Regras de contagem de ALI 1. Um grupo de dados ou informações de controle é lógico e identificável pelo usuário. 2. O grupo de dados é mantido através de um processo elementar dentro da fronteira do aplicativo a ser contado. A regra se aplica? Sim, o log do roteador é um grupo de dados lógico reconhecido pelo usuário. Sim, o log do roteador é atualizado a cada vez que uma mensagem é recebida ou enviada para um aplicativo. Conclusão: Baseado nesta análise, o log do roteador é um ALI para a aplicação do roteador. Arquivos de Interface Externa De acordo com os requisitos do usuário, não há Arquivos de Interface Externa. Função de Transação Entradas Externas Não existem requisitos fornecidos relativos a entradas externas. Saídas Externas Os requisitos do usuário identificam as seguintes funcionalidades: 1. Rotear uma mensagem IIOP para IIOP; 2. Converter uma mensagem de IMS para IIOP, utilizando a lógica de processamento única, formatar e rotear; 3. Converter uma mensagem IIOP para IMS, usando lógica de processamento única, formatar e rotear; 4. Produzir relatório operacional do roteador. Para determinar se estes requisitos são EE, SE ou CE, aplicar as regras de contagem do CPM. 1. Rotear uma mensagem IIOP para IIOP a) Identificar os processos elementares A Função Transacional atende os requisitos de um Processo Elementar? b) Determinar a intenção primária, e classificar Sim, uma mensagem de encaminhamento IIOP para um aplicativo compatível com IIOP cumpre os requisitos de um processo elementar. Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 6
A Função Transacional satisfaz a intenção primária de uma SE? c) Validar contra a Regra de Contagem de SE, a regra de contagem SE se aplica? A função envia dados ou informação de controle para fora da fronteira da aplicação. Sim, a operação cumpre a intenção primária de de uma SE. Sim, a mensagem IIOP é enviada para fora da fronteira da aplicação. Para o processo identificado, uma das três afirmações a seguir deve ser aplicada: i. Lógica de processamento é exclusiva da lógica de processamento realizada por outras saídas externas ou consultas externas para a aplicação. Sim, não há nenhuma outra transação que contém a lógica de processamento para encaminhar uma mensagem de IIOP para IIOP. ii. O conjunto de elementos de dados identificados são diferentes dos conjuntos identificados por outras saídas externas e consultas externas no aplicativo. iii. O ALIs ou AIEs referenciados são diferentes dos arquivos referenciados por outras saídas externas e consultas externas a aplicação. Para o processo identificado, uma das três afirmações a seguir deve ser aplicada: i. A lógica de processamento do processo elementar contém pelo menos uma fórmula matemática ou cálculo. ii. A lógica de processamento do processo Sim, o log do roteador é mantido quando a elementar mantém pelo menos um ALI. mensagem é enviada. iii. A lógica de processamento do processo elementar cria dados derivados. Conclusão: A função de rotear uma mensagem IIOP para IIOP é uma SE. 2. Converter uma mensagem IMS para IIOP, formatar e rotear. a) Identificar o Processo Elementar. A função transacional satistaz os requisitos de um processo elementar? b) Determinar a intenção primária, e classificar. A Função Transacional satisfaz a intenção primária de uma SE? c) Validar contra a Regra de Contagem de SE A função envia dados ou informação de controle para fora da fronteira da aplicação? Sim, a conversão de uma mensagem de IMS para IIOP e roteamento cumpre os requisitos de um processo elementar. Sim, a operação cumpre a intenção primária de uma SE. A regra se aplica? Sim, a mensagem IIOP convertida é enviada para fora da fronteira da aplicação. Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 7
Para o processo identificado, uma das três afirmações a seguir deve ser aplicada: i. Lógica de processamento é exclusiva da Sim, não há nenhuma outra transação que lógica de processamento realizada por outras contém a lógica de processamento para saídas externas ou consultas externas para a converter uma mensagem de IMS para um aplicação. formato de mensagem IIOP. ii. O conjunto de elementos de dados identificados são diferentes dos conjuntos identificados por outras saídas externas e consultas externas no aplicativo. iii. O ALI ou AIE referenciados são diferentes dos arquivos referenciados por outras saídas externas e consultas externas no aplicativo. Para o processo identificado, uma das três afirmações a seguir deve ser aplicada: i. A lógica de processamento do processo elementar contém pelo menos uma fórmula matemática ou cálculo. ii. A lógica de processamento do processo Sim, o log do roteador é mantido quando a elementar mantém pelo menos um ALI. mensagem é enviada. iii. A lógica de processamento do processo elementar cria dados derivados. Conclusão: Converter uma mensagem IMS para um formato IIOP e encaminhá la é uma SE. 3. Converter uma mensagem de IIOP para um formato IMS e rotear. a) Identificar os processos elementares A função transacional satisfaz os requisitos de um processo elementar? b) Determinar a intenção primária, e classificar A Função de Transação satisfaz a intenção primária de uma saída externa? Sim, a conversão de uma mensagem IIOP para uma mensagem de IMS e roteamento cumpre os requisitos de um processo elementar. Sim, a operação cumpre a intenção primária de uma SE. c) Validar contra a Regra de Contagem de SE. A função envia dados ou informação de controle para fora da fronteira da aplicação? A regra se aplica? Sim, a mensagem de conversão IMS é enviada para fora da fronteira da aplicação. Para identificação do processo, uma das três afirmações a seguir deve ser aplicada: i. Lógica de processamento é exclusiva da Sim, não há nenhuma outra transação que lógica de processamento realizada por outras contém a lógica de processamento para saídas externas ou consultas externas para a converter uma mensagem de IIOP para um aplicação. formato de mensagem IMS. Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 8
ii. O conjunto de elementos de dados identificados são diferentes dos conjuntos identificados por outras saídas externas e consultas externas no aplicativo. iii. O ALI ou AIE referenciados são diferentes dos arquivos referenciados por outras saídas externas e consultas externas no aplicativo. Para identificação do processo, uma das três afirmações a seguir deve ser aplicada: i. A lógica de processamento do processo elementar contém pelo menos uma fórmula matemática ou cálculo. ii. A lógica de processamento do processo Sim, o log do roteador é mantido quando a elementar mantém pelo menos um ALI. mensagem é enviada. iii. A lógica de processamento do processo elementar cria dados derivados. Conclusão: Convertendo uma mensagem IIOP para um formato IMS e encaminhá la é uma SE. 4. Produzir relatório de uso de roteamento a) Identificar os processos elementares A função transacional satisfaz os requisitos de um processo elementar? b) Determinar a intenção primária, e classificar A Função de Transação satisfaz a intenção primária de uma saída externa? c) Validar contra a Regra de Contagem de SE. A função envia dados ou informação de controle para fora da fronteira da aplicação? Sim, produzir relatório operacional de roteamento é um processo elementar. Sim, a operação cumpre a intenção primária de uma SE. A regra se aplica? Sim, o relatório de uso de roteamento é enviado para fora da fronteira da aplicação. Para identificação do processo, uma das três afirmações a seguir deve ser aplicada: i. Lógica de processamento é exclusiva da Sim, não há nenhuma outra transação que lógica de processamento realizada por outras contém a produção de relatório de uso de saídas externas ou consultas externas para a roteamento. aplicação? ii. O conjunto de elementos de dados identificados são diferentes dos conjuntos identificados por outras saídas externas e consultas externas no aplicativo. Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 9
iii. O ALI ou AIE referenciados são diferentes dos arquivos referenciados por outras saídas externas e consultas externas no aplicativo? Para identificação do processo, uma das três afirmações a seguir deve ser aplicada: i. A lógica de processamento do processo elementar contém pelo menos uma fórmula matemática ou cálculo. ii. A lógica de processamento do processo elementar mantém pelo menos um ALI. iii. A lógica de processamento do processo elementar cria dados derivados. Conclusão: O relatório opercaional não é uma SE. Consulta Externa Não há formúlas ou cálculos matemáticos no relatório. ALIs não são mantidos quando o relatório operacional é produzido. Os requisitos do usuário identificam as seguintes funcionalidades: Produzir relatório operacional de roteamento. Para descobrir se isso é um CE, aplicar as regras da CPM: a) Identificar os processos elementares A função transacional satisfaz os requisitos de um processo elementar? Sim, produzir relatório operacional de roteamento é um processo elementar. b) Determinar a intenção primária, e classificar A Função de Transação satisfaz a intenção primária de uma saída externa? c) Validar contra a Regra de Contagem de CE. A função envia dados ou informação de controle para fora da fronteira da aplicação? Sim, a operação cumpre a intenção primária de uma CE. A regra se aplica? Sim, o relatório de uso de roteamento é enviado para fora da fronteira da aplicação. Para identificação do processo, uma das três afirmações a seguir deve ser aplicada: i. Sim, a lógica que produz o relatório Sim, a lógica de produzir relatório operacional de roteamento é distinto de outras CEs. operacional de roteamento é única de outras CEs. ii. O conjunto de elementos de dados identificados são diferentes dos conjuntos identificados por outras saídas externas e consultas externas no aplicativo. iii. O ALI ou AIE referenciados são diferentes dos arquivos referenciados por outras saídas externas e consultas externas no aplicativo. Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 10
Para identificação do processo, uma das três afirmações a seguir deve ser aplicada: i. A lógica de processamento do processo Os dados contidos no relatório operacional elementar recupera dados ou informações de de roteamento são recuperados a partir do controle de um ALI ou AIE. registo de log. ii. A lógica de processamento do processo elementar não mantém um ALI. iii. A lógica de processamento do processo elementar contém pelo menos uma fórmula matemática ou cálculo. ALIs não são mantidos quando o relatório operacional é produzido. Não há fórmulas ou cálculos matemáticos no relatório. Conclusão: O relatório operacional de roteamento é uma CE. Resumo da Análise de Pontos de Função Nome da Função de Dado Tipo de Função 1. Roteador Log ALI Nome da Função de Transação Tipo de Função 1. Rotear uma Mensagem IIOP para IIOP SE 2. Converter uma mensagem IMS para SE formato IIOP e rotear 3. Converter uma mensagem IIOP para SE formato IMS e rotear 4. Relatório Operacional de Roteamento CE Conclusão Aplicações de middleware podem ter implementações diversas. O exemplo da vida real dado acima é apenas uma maneira de implementar middleware. Algumas das outras formas de middleware que podem aparecer incluem mensagens; processamento distribuído; interfaces comuns; servidor de aplicativos; accessware e computação universal. O método do IFPUG fornece um modelo valioso para o desenvolvimento e suporte de middleware. Ele pode ser usado para medir demandas, identificar potenciais áreas de risco e estimar recursos. O método do IFPUG pode ser aplicado de forma consistente para o middleware, entretanto, as contagens de middleware devem ser classificadas em seu próprio domínio, como seus índices de produtividade, etc serão diferentes de aplicações de negócios. Ao contar as aplicações de middleware é importante: 1. Seguir as regras de pontos de função descritas no CPM. Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 11
2. Utilizar o CPM para obter orientações sobre a determinação da complexidade funcional. 3. Compreender claramente que / quem são os usuários do middleware. 4. Documentar claramente Fronteira da Aplicação. 5. Registrar a funcionalidade middleware separada da funcionalidade de negócios. 6. Ao estabelecer a contagem de pontos de função que envolvem aplicações de negócios e de middleware, não some as contagens dos dois projetos com a intenção de representar a funcionalidade a ser entregue ao usuário de negócios. 7. Ao estabelecer as estimativas do projeto, que incluem tanto esforço empresarial e desenvolvimento de aplicativos de middleware, estabelecer o tamanho de cada projeto separadamente e gerar estimativas baseadas em critérios de produtividade do respectivo domínio. Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 12
Apêndice Para ajudar o leitor com os exemplos acima, a funcionalidade de envio é exibido usando Linguagem de Modelagem Unificada (UML). Diagrama 1 representa uma visão de classe em UML do roteador. O roteador possui dois tipos de Protocol Data Units (PDU); IOP e IMS. A interface do roteador possui três operações para transmitir um PDU. Diagrama 1 Diagrama 2 representa uma visão dos elementos em UML do roteador: Diagrama 2 Copyright IFPUG 2009 Pontos de Função e a Contagem de Softwares Aplicativos Middleware Página 13