O processo de Levantamento e Análise de Requisitos tem como principais objetivos: − Oferecer aos desenvolvedores do sistema uma melhor compreensão das necessidades dos Stakeholders. − Definir os limites do sistema (escopo do sistema). − Fornecer uma base para planejar o conteúdo técnico das etapas de desenvolvimento. − Fornecer uma base para estimar o custo e o tempo de desenvolvimento do sistema. − Definir uma interface de usuário para o sistema, focando nas necessidades e metas dos usuários. − Estabelecer e manter concordância com os clientes e outros Stakeholders sobre o que o sistema deve fazer. Os requisitos de um sistema podem ser classificados como sendo Funcionais e Não Funcionais. − Requisitos Funcionais são aqueles que descrevem o comportamento do sistema e como o mesmo interage com os usuários ou mesmo com outros sistemas. − Os Requisitos Não Funcionais são aqueles que descrevem as demais restrições do sistema a ser desenvolvido. Um Caso de Uso define uma sequência de ações que uma funcionalidade do sistema desempenha, produzindo um resultado de valor observável e significativo para um Ator. Um Ator representa um usuário ou um outro sistema que interage com o sistema em questão. Cada Caso de Uso representa uma unidade coerente de uma funcionalidade provida por um sistema, descrevendo sequências de ações que o sistema realiza para apresentar um resultado de valor para um ator. Um Caso de Uso modela o diálogo entre o sistema e um ator em particular, descrevendo um fluxo de eventos completo e significativo do ponto de vista do ator. Definindo os Atores – Os Atores representam todas os usuários e/ou sistemas que interagem diretamente com a solução proposta. No caso de um usuário, é importante especificar que o ator representa um determinado Papel dentro do ambiente de negócio analisado e não uma pessoa em específico. Para identificar o conjunto de atores de um sistema, podemos realizar as seguintes perguntas: − Quem ou o que utiliza o sistema? − Quem ou o que obtém/provê dados/informações do/ao sistema? − Qual o escopo do sistema no ambiente de negócio analisado − Quem ou o que oferece suporte ao sistema? − Quais outros sistemas utilizam o sistema proposto? Definindo os Casos de Uso – Inicialmente, podemos buscar identificar os Casos de Uso a partir de duas perguntas que podem ser feitas aos Atores: − Qual meta eu pretendo atingir ao utilizar o sistema? Detalhar as metas por ator; Definir porque os atores querem/precisam utilizar o sistema; Definir se os atores devem atualizar o sistema caso haja alterações externas ao sistema; Definir se os atores devem ser informados caso haja ocorrências diversas no sistema. − O sistema deve abranger o negócio em sua plenitude? Especificação de Métricas e Estimativas Dois métodos muito utilizados para a execução dessas atividades são a Análise de Ponto de Função e a CoCoMo (Constructive Cost Model). − A Análise de Ponto de Função tem como objetivos analisar o nível de produtividade da equipe, o esforço de desenvolvimento de software, o custo de software, a taxa de produção e de manutenção de software. É uma técnica pode ser aplicada tanto no dimensionamento de projetos de aplicações já implantadas quanto no dimensionamento de projetos de desenvolvimento ou manutenção de aplicações [VAZQUES2008]. − Já a CoCoMo é um modelo paramétrico de estimativa de custo de software que assume a existência de uma relação matemática entre tamanho, esforço e prazo. Tal relação é afetada por parâmetros de performance. Os relacionamentos são baseados em suposições teóricas e/ou dados históricos [NASA2010]. Uma técnica que vem crescendo enquanto método de estimativa de custo e cronograma de desenvolvimento de software é a Use Case Point (Análise de Pontos de Caso de Uso sendo que para esse texto será adotado o acrônimo UCP). A UCP vem ganhando terreno a medida que a especificação de requisitos funcionais através do modelo de Caso de Uso também evolui e mais empresas passam a utilizá-lo constantemente. De forma similar ao conceito de Análise de Ponto de Função (APF), a UCP visa medir o tamanho da aplicação permitindo assim à equipe de desenvolvimento derivar seu custo e o cronograma de desenvolvimento da mesma. A UCP foi definida por Gustav Karner, então membro da Rational Software®. A UCP atua atribuindo pontos aos Casos de Uso da solução proposta (Use Case Points). A definição dos pontos de caso de uso de um sistema segue um conjunto de cálculos simples, definidos por Karner [KARNER1993]. O cálculo envolve basicamente a mensuração da complexidade de cada um dos Casos de Uso, de seus Atores e dos Requisitos Não funcionais. A atribuição dos pontos aos Casos de Uso é uma função que utiliza os seguintes parâmetros: − O número e a complexidade dos Casos de Uso do sistema; − O número e a complexidade dos Atores que interagem com o sistema; − O número e a complexidade dos Requisitos Não Funcionais não contemplados nos Casos de Uso; − O ambiente no qual o projeto está inserido e será desenvolvido (como linguagem de programação, motivação da equipe e assim por diante) [CELEPAR2006]. Os itens 1 e 2 definem a variável denominada “Unadjusted Use Case Point” (UUCP) e buscam identificar as dificuldades relacionadas ao processo de desenvolvimento dos requisitos funcionais; Os item 3 define a variável denominada Fator de Complexidade Técnica (FCT) e buscam identificar as dificuldades relacionadas ao processo de desenvolvimento dos requisitos não funcionais. O item 4 define a variável denominada Fator Ambiental (FA), cuja finalidade principal é prever a eficiência da equipe de desenvolvimento no projeto, bem como, o nível dos profissionais relacionados e a capacidade de motivação e liderança do gerente de projetos em relação a sua equipe. Para calcularmos a UUCP, seguimos a seguinte regra básica:
UUCP = Total do peso dos PAt + Total do peso dos PUC
PAt ↔ Peso dos Atores = Soma dos pesos atribuídos aos
diversos atores seguindo a especificação da Tabela 2.
PUC ↔ Pedo dos Casos de Uso = Soma dos pesos atribuídos
aos diversos casos de uso, seguindo a especificação da Tabela 3.