ANALISE DA IMPLANTAÇÃO DO PROCESSO DE CLASSIFICAÇÃO DE REQUISITOS EM UMA ORGANIZAÇÃO Eduardo Bertolucci1, Luiz Carmargo2, Resumo Este artigo descreve o processo de implantação da classificação de requisitos em uma organização da área de tecnologia na qual desenvolve softwares comerciais. O enfoque do artigo compreende, na necessidade de alterar a metodologia do processo de documentação de requisitos, criando uma documentação teórica com definições de como escrever os requisitos e criando um ambiente padrão para armazenar e rastrear a evolução dos requisitos, mantendo suas versões, e também manter a rastreabilidade. Uma grande necessidade da adoção desta metodologia se baseia nas práticas de mercado do governo em relação à medição de seus pedidos de alteração nos sistemas que eram calculadas por horas e agora em novos contratos passa a ser por pontos por função. As situações praticamente estão citadas em ordem cronológica mostrando as etapas em que ocorreram as novas formas de escrita de requisitos e como o padrão foi definido de forma unificada para todas as equipes da organização. Palavras-chave: Software, Requisitos, Processo, Analista, Rastreabilidade. Abstract This article describes the process of implementing the classification requirements in an organization in the area of technology in which develops commercial software. The focus of the article understands the need to change the methodology of the requirements documentation process, creating a theoretical documentation with definitions of how to write requirements and creating a standard environment to store and track the evolution of requirements, keeping their versions, and also maintain traceability. A great need of adopting this methodology is based on the practices of the government market in relation to the measurement of their requests for changes in the systems that were calculated for hours and now in new contracts shall be by function points. The situations are virtually cited in chronological order showing the steps that have occurred in the new forms of writing requirements and how the pattern was defined in a unified way for all teams within the organization. Key word: Software, Requirements, Process, Analyst, Traceability. 1 Pós-graduação em Engenharia de Software pela UNISOCIESC. e-mail: ([email protected]) 2 Professor na UNISOCIESC. e-mail: ([email protected]) 1 INTRODUÇÃO Este artigo tem o objetivo de descrever a implantação do processo de classificação requisitos em uma organização bem como o que impulsionou essa mudança de metodologia e também sua documentação teórica. O artigo está organizado como se segue. Na Seção 2, deparamos com a indispensabilidade da adesão do processo de análise de requisitos, contendo um breve histórico dos editais de recomendação do governo para a adoção a métrica de mercado conhecida como pontos de função sendo agora necessária para novos contratos onde existe a chamada manutenção evolutiva. Na seção 3, relatado o processo de implantação de análise de requisitos desde como eram especificados os requisitos no qual os analistas de sistema desenvolviam documentos em formato texto chamados de matriz de aprovação e matriz de regras, desta maneira surgiu à necessidade buscar nesse insumo requisitos funcionais para calculo dos pontos de função, trabalho que consumia tempo devido à junção todos os tipos de regras estarem descritos em formato textual. Após o esforço de coletar os requisitos funcionais nestes documentos, é descrito em outros subtítulos os novos tipos de documentos elaborados, também adotamos a linguagem UML como padrão para ser escrito com base em práticas de mercado e facilidade de aprendizagem e maior quantidade de material de referencia para se criar o processo de análise de requisitos mais conciso e cravejado na organização. Na seção 4 é apurado um histórico da implantação do processo com informações fornecidas pelos próprios usuários, articulando vantagens da padronização da escrita estruturada de requisitos, e também a curva de aprendizagem para novos colaborados com tal competência para criar especificações de requisitos. Em seguida, na Seção 5, encontram-se as conclusões. 2 INDISPENSABILIDADE DA ADESÃO DO PROCESSO DE ANALISE DE REQUISITOS Segundo Maria da Glória Guimarães dos Santos, chefe da Secretaria de Logística e Tecnologia da Informação o edital publicado no ano de 2010 obriga todos os órgãos do Governo a utilizarem Pontos de Função como métrica padrão para contratação de desenvolvimento de software. Levantamento referente a janeiro de 2012 aponta no Brasil 319 certificados em Pontos de Função, número que comprova a escassez no atendimento às empresas privadas e empresas públicas que adotaram a técnica. O aumento da demanda de desenvolvimento e manutenção de software tem levado às organizações públicas a terceirizarem cada vez mais os serviços de software. Com isso, surge fortemente a necessidade de estabelecer critérios que garantam o melhor uso do orçamento público. Com o objetivo de estabelecer métricas de qualidade para empresas de TI, o Ministério do Planejamento, por meio da Secretaria de Logística e Tecnologia da Informação – SLTI publicou em 02 de janeiro de 2011 a Instrução Normativa 04 (IN04/2010) que, dentre outras ações, obriga o uso de métricas nos contratos de serviços de software. Comprar software, exige um modelo complexo de contratação, pois envolve o consumo de um bem que sofre modificações ao longo do tempo. A técnica de APF é uma métrica muito utilizada no mercado, que vem para contribuir para a composição desse modelo. O segredo é investir na capacitação tanto de quem compra como para quem vende software, para que todos tenham condições de precificar melhor. 2.1 Recomendações para Contratos de Software com Pontos de Função do Governo Brasileiro Segundo a Instrução Normativa 04 (IN04) publicada pelo MPOG/SLTI recomenda o uso de métricas em contratos de software. A contratação de serviços de fábrica de software deve utilizar métricas no planejamento da aquisição e no gerenciamento do contrato, com restrições ao uso da métrica de esforço homem-hora. O TCU tem recomendado em Acórdãos o uso da métrica Pontos de Função (PF) em contratos de prestação de serviços de desenvolvimento e manutenção de software. A Métrica (PF) tem sido usada como base para contratos de software em muitas organizações. PF mede o tamanho funcional do projeto de software, independentemente da tecnologia e metodologia utilizadas. PF torna possível a estimativa de tamanho de projetos de software nas fases iniciais do ciclo de vida. O Manual de Práticas de Contagem (CPM) possui regras objetivas para contagem de Pontos de Função. PF considera a visão do usuário. PF é independente da forma da modelagem dos Requisitos Recomendações TCU • Acórdão 1.782/2007 - Plenário - Determinação • Acórdão nº 1.910/2007 - Plenário - Recomendação • Acórdão 2.024/2007 - Plenário • Acórdão 1.274/2010 - Plenário - Determinação • Acórdão 1.647/2010 - Recomendação 3 FUNDAMENTAR O PROCESSO DE IMPLANTAÇÃO E SEU AVANÇO Até o final do primeiro semestre do ano de 2012 eram desenvolvidos dois documentos, o primeiro era chamado “MA - Matriz de Aprovação” onde estavam juntos regras, requisitos, protótipos e detalhes técnicos de SQL e tabelas. Já o segundo documento era chamado de “MAR - Matriz de Regras”, onde possui detalhes técnicos como consultas SQL, instruções para criação de campos, protótipos e instruções de uso. Os dois documentos eram obrigatórios para o inicio da codificação da solução técnica sendo submetidos em aprovação, para posteriormente serem implementadas no produto. Na empresa os analistas produziam documentos que serviam de insumo para as equipes de desenvolvimento programar as soluções no código. 3.1 Documento de requisitos • MA - Matriz de aprovação: Contém os requisitos a serem adequados e os requisitos adicionais do projeto com o layout das telas de cada requisito. Este documento contem todas as adequações e novas funcionalidades detalhadas para esclarecimentos com o cliente a fim de evitar, dessa maneira, qualquer entendimento errôneo ocorrido durante as reuniões de validação de requisitos. • MAR - Matriz de regras: Realizar o detalhamento das regras inseridas na matriz de aprovação, para encaminhamento ao desenvolvimento da solução. Pontos positivos • Junção de requisitos de negócio e técnicos. • Rapidez no desenvolvimento devido ao grande número de informações técnicas. • Ordem cronológica de alterações no sistema. Pontos negativos • Falta de rastreabilidade. • Muitos documentos para ler. • Falta de uma fonte de pesquisa eficiente. • Grande misto de requisitos, regras, detalhes técnicos. As demandas eram calculadas por horas, porém com novas regras impostas pelo governo os novos contratos renovados declamavam o calculo por pontos por função. Essa nova forma de medição deu origem a um novo documento chamado “PPF - Pontos por Função”, no qual os analistas de sistemas possuidores daquela especificação eram responsáveis por elaborá-lo. 3.2 Documento de contagens de pontos de função • PPF – Pontos de Função: Documento contendo os métodos de contagem, contagem indicativa, contagem estimada, contagem detalhada, fronteira, funções de dados, funções de transação, entrada externa, consulta externa, saída externa, arquivo lógico referenciado, registro lógico referenciado, dado elementar referenciado Porém o insumo necessário para produção deste documento era bastante heterogêneo, trazendo informações relevantes e irrelevantes para a contagem que se baseava na coleta de funcionalidades que seriam entregue ao cliente. O processo para contar pontos for função era basicamente ler o documento "Matriz de aprovação" no qual possuía toda a documentação da funcionalidade a ser entregue para o cliente, porém identificando todas as funcionalidades, no caso requisitos funcionais do documento. Com base nestes requisitos eram calculados os pontos por função, assim finalizando o documento e repassando para a equipe de orçamento. 3.3 Novos documentos para especificação Neste ponto surgiu à necessidade de elaborar um novo tipo de documento de requisitos com separação de negócio e solução técnica, desta forma, foi repensado o processo de especificação de requisitos. Mediante consultoria e adoção da UML com linguagem prática de mercado, foram elaborados novos modelos de documentos, são eles: • PRS: Proposta de Solução: O documento possui a seguinte estrutura: a. Necessidades: Descrever as necessidades que serão consideradas na presente proposta. Fazer referência ao número da(s) SALT(s) que estão no escopo dessa proposta. b. Glossário: Detalhamento de termos utilizados na proposta que precisem ser explicados para melhor entendimento do documento. c. Esta seção não é obrigatória. d. Situação atual: Descrever o cenário atual, sem a solução proposta. e. Situação pretendida: Descrever a situação pretendida com a solução proposta em nível de negócio. Este tópico abrange a descrição de regras de negócio e requisitos funcionais de maneira implícita. Se necessário, também podem ser apresentados protótipos e, de forma implícita, requisitos não funcionais e mensagens de usuário. • ERS: Especificação de Requisitos: O documento possui a seguinte estrutura: a. Introdução: Contem a descrição do alinhamento sobre a demanda e quais ações especificadas para atender a manutenção solicitada. b. Alteração: Explicação das alterações a serem realizadas. c. Requisitos funcionais e requisitos não funcionais: Identificador, nome e texto explicativo de cada um dos requisitos funcionais e não funcionais e status de novo ou alterado. d. Caso de uso: Lista com casos de uso referidos, com nome do ator, pré-condição, descrição de sua aplicação no sistema, cenário principal, cenário alternativo e cenário de exceção. e. Regras de negócio: Identificador, nome e texto explicativo, podendo conter referência a mensagens ou outra regra de negócio quando esta for regra agrupadora ou conter sub-regras e status de novo ou alterado. f. Mensagens: Identificador, nome e texto a ser apresentado ou registrado com o tipo informação, aviso ou erro. g. Protótipos: Lista de protótipos referenciados na especificação. h. Regras de tela: Identificador e nome e texto explicativo. i. Filtros: Texto explicativo o funcionamento do filtro. Foram criados comitês, conhecido como comitê de requisitos, onde um integrante de cada equipa de cada unidade se reúnem com a intenção de discutir, elencar e melhorar o processo de análise de requisitos, trazendo dificuldades reportadas por colaboradores da equipe e sugestões de melhoria. Um consultor externo apoia as reuniões que ocorrem semanalmente. Como ferramenta para escrita de requisitos foi adotado como ferramenta de mercado o Enterprise Architec, praticamente uma recomendação do governo. Os tipos de requisitos definidos pelo comitê e disseminados entre os analistas de sistemas nas equipes são: • Elemento SALT; • Item de Alteração; • Requisitos Funcionais; • Requisitos Não Funcionais; • Regras de Negócio; • Regras de Tela; • • Caso de Uso; Protótipo. A seguir são descritos cada um dos tipos de requisitos citados acima: Elemento SALT SALT é como chamamos um atendimento, a exemplo disso é como se fosse a abertura de um chamado ou um protocolo de atendimento em outra empresa. O elemento SALT deve conter o número correspondente da solicitação em formato sequencial único e descrição do entendimento da solicitação. Item de Alteração O texto do Item de Alteração deve orientar explicitamente quais partes dos elementos relacionados serão modificadas. Por exemplo, se o elemento for um Caso de Uso alterado, o texto deve indicar qual Cenário foi alterado e detalhar ainda o que foi alterado no respectivo Cenário. Em outro exemplo, se o Caso de Uso for novo, o texto deve explicitar esta situação, informando que a leitura completa do Caso de Uso é necessária. O Item de Alteração deve explicitar também todas as exclusões de elementos existentes no legado que forem necessárias para a implementação da solução proposta. Um Item de Alteração deve relacionar todos os elementos (novos ou alterados) necessários para o entendimento da solução proposta: requisitos, casos de uso, regras, mensagens e protótipos. Requisitos funcionais Um requisito funcional define uma função ou serviço que um sistema deve ou pode ser capaz de executar ou fornecer. Os requisitos funcionais identificam o que deve ser atendido pelo sistema a fim de satisfazer as necessidades dos usuários/clientes. Requisitos não funcionais Um requisito não funcional representa uma restrição ou atributo de qualidade, podendo ser classificado nas seguintes categorias: • Segurança: Requisitos associados à integridade dos dados, privacidade e como o sistema trata de informação confidencial. • Desempenho: Requisitos que podem estar associados ao tempo esperado de respostas para as funcionalidades do sistema e uso de recursos, tais como: memória, processador, espaço em disco, entre outros. • Usabilidade: Requisitos associados à facilidade de uso do sistema. • Confiabilidade Requisitos associados a medidas quantitativas da confiabilidade do sistema, tais como tempo médio entre falhas, recuperação de falhas e quantidade de erros por milhares de linhas de código. • Portabilidade: Requisitos associados a restrições de plataformas de hardware e de software, nas quais o sistema será implantado, e sobre o grau de facilidade para transportar o sistema para outras plataformas. • Padrões: Requisitos associados a padrões e normas utilizados no desenvolvimento do sistema. Regras de negócio Uma regra de negócio é uma afirmação que define ou restringe o negócio. O objetivo destas regras é definir a estrutura ou o comportamento do negócio. Elas complementam o entendimento sobre os requisitos e detalham o “como” do ponto de vista do negócio. As regras de negócio podem ser cálculos, deduções, validações ou restrições que devem ser consideradas na execução dos processos existentes em uma organização. Elas podem ser leis e regulamentos impostos ao negócio. Regras de tela Uma regra de tela deve orientar a interpretação do comportamento de uma tela do sistema. Exemplos de informações que podem ser tratadas: • Informações sobre um Campo da tela. Exemplos: o Definição, máscara, tamanho, cor e fonte de um determinado Campo. o Um campo pode ter um tamanho de preenchimento, mas deve ser visualizado somente X caracteres. • Comportamento ou restrições de componentes existentes na tela: botões, listas (grids), filtros (input, selects), elementos de seleção (combo boxes, radio buttons, checkboxes), etc. Exemplos: o Quais informações devem ser mostradas numa lista (grid). o Um botão ou Campo deve ficar desabilitado quando um determinado Campo não estiver preenchido ou determinada situação for identificada. o Um determinado texto deve aparecer em negrito e na cor vermelha sempre que uma informação for de um determinado tipo ou estiver numa determinada situação. o Um determinado campo deve ser exibido desmarcado por padrão (default) sempre que um novo cadastro for selecionado pelo usuário. o Uma determinada aba ou seção da tela deve ser mostrada somente quando uma determinada situação for satisfeita. o Explicações de como os comportamentos dos filtros utilizados na tela devem ser interpretados. Filtros Os filtros são componentes visuais utilizados basicamente em consultas. Um Filtro é um componente visual que permite a digitação direta de uma informação ou a busca desta informação por meio de uma Tela de Consulta. O comportamento genérico de um Filtro é descrito no elemento “Filtro Padrão”. Mensagens As mensagens discutidas no contexto deste documento são aquelas voltadas para apoiar usuários do sistema. Eventualmente, você pode utilizar outros tipos de mensagem para apoiar a equipe técnica de suporte ao sistema. Casos de Uso Após a identificação dos requisitos e das regras, deve ser analisado o comportamento que o sistema deve apresentar. O termo usuário pode significar um usuário humano, um equipamento ou mesmo outro sistema de software. Um caso de uso representa uma interação que tem significado para o usuário final e que deve terminar (sair do sistema) com um estado completo, sendo concluída ou retornando ao estado inicial. 4 RESULTADOS OBTIDOS COM A IMPLANTAÇÃO DE ANALISE DE REQUISITOS Este processo de implantação de requisitos está em fase de amadurecimento, sendo que nos seus primórdios muitas pesquisas em bibliográficas e praticamente compilações formadas em reuniões dos comitês que ao serem rodadas nas equipes pelos colabores em algumas equipes produziram inúmeros resultados. Bastante contraditório, pois o quando se desenvolvia apenas dois insumos com todos os dados necessários para programar era descomplicado. Com esse novo formado de modelagem, detectamos uma curva de aprendizagem lenta devido à maturidade de implantação do processo. Bem escassa são fontes de comparação do antes e depois apropriado ao tipo das solicitações que são documentas e todas as especificações serem feitas já com caráter real, sendo enviadas para os clientes e encaminhadas para as próximas etapas até gerar uma entrega ao cliente. Na sequencial foram elencadas vantagens sobre o investimento na estruturação dos requisitos e comentário sobre a curva de aprendizagem. O tempo de desenvolvimento das especificações de requisitos que antes era de 30 horas levando em consideração dois requisitos funcionais, teve um aumento de 100%, passando para 60 horas no início da padronização. Isso se deve a curva de aprendizagem em relação à forma de escrever os requisitos funcionais, estruturação de módulos do sistema, documentação por demanda de todo o legado que antes era escrito em formato de matriz de regras. Antes de iniciar uma nova especificação se tornou necessário documentar o legado a fim de alterar seus requisitos. Concluímos que o processo de implantação da padronização de requisitos teve um grande impacto no trabalho dos analistas, bem como os analistas de sistemas, que tiveram que usar uma nova ferramenta para documentação do produto e nova metodologia para descreves as funcionalidades do produto, porém tivemos vantagens como: a. b. c. d. e. f. g. Menor retrabalho. Repositório único. Histórico de alteração de requisitos. Padronização na escrita de requisitos. Rastreabilidade dos requisitos. Mitigação de impactos no sistema devido à alteração de requisitos. Geração de um documento contendo todos os requisitos. 4 CONCLUSÃO O processo de padronização da escrita de requisitos foi fundamental para unificar a linguagem entre cliente e empresa. Atividade que exigiu tempo, ferramentas e alinhamento de conhecimento das pessoas envolvidas. Com isso, foi adotada ferramenta de análise que permite a centralização e visibilidade de todo material produzido para documentar o produto em nível de funcionalidades e negócio. Em casos onde não existia documentação do legado, os envolvidos fazem engenharia reversa afim de, depois rastrear as alterações nos requisitos através de parâmetros utilizados para identificar requisitos implementados, alterados e novos. Neste artigo foi exposto o que impulsionou a forma de como elaborar as especificações de software e concluímos que o processo está em fase de amadurecimento e a documentação teórica elaborada neste período tornou-se um padrão para a empresa. REFERÊNCIAS UML tools for software development and modelling - Enterprise Architect UML modeling tool - Enterprise Architect 9.3 - Disponível em: <http://www.sparxsystems.com.au>. Acesso em: 06 nov. 2013. Claudia Hazan, Uso de Métricas em Contratos de Fábrica de Software - Roteiro de Métricas do SISP 2.0 - Disponível em: <http://portal.dataprev.gov.br/wp-content/uploads/2012/09/7-Usode-metricas-em-contratos-de-fabrica-de-software-Roteiro-de-Metricas-do-SISP-2.0-ClaudiaHazan-SISP.pdf>. Acesso em: 06 nov. 2013. Softplan/Poligraph - Sistemas Integrados de Gestão - Orientações para montagem do documento "Manutenção Evolutiva - Requisitos". - Disponível em: <https://colabore.softplan.com.br/pages/viewpage.action?pageId=89558903>. Acesso em: 06 nov. 2013. Dataprev - Empresa de Tecnologia e Informações de Previdência Social - Disponível em: <>. Acesso em: 06 nov. 2013. APF Métricas Treinamentos & Consultoria - APF no Governo - Disponível em: < http://apfmetricas.org/index.php/component/content/article/19-sample-data-articles/ifpug/50upgraders>. Acesso em: 06 nov. 2013. Ian Sommerville. Engenharia de Software, 9ª Edição. Pearson Education, 2011. Cap. 4 (Seção 4.1)