Requisitos Não Funcionais Universidade Federal de Pernambuco Centro de Ciências Exatas e da Natureza Departamento de Informática Mestrado em Ciências da Computação Tópicos em Engenharia de Software 1 Alunos: Alessandro Cruvinel Machado de Araújo Javé Barbosa de Menezes Professores: Jaelson Castro Alexandre Marcos Lins de Vasconcelos Conteúdo Definições Classificação de NFR’s Derivando NFR’s Propostas de Derivação Sistemas Críticos Técnicas de Representação: Chung e Júlio César Leite Ferramentas de Apoio Requisitos Não Funcionais Definem restrições globais sobre um sistema de software. Não estão preocupados com a funcionalidade do sistema. Colocam restrições sobre o produto em desenvolvimento e o processo de desenvolvimento. Definem a qualidade e os atributos do sistema. Requisitos Não Funcionais Incluem: Safety Security Usabilidade Confiabilidade Performance Custos de Desenvolvimento Custos Operacionais Robustês Manutenabilidade Portabilidade outros ... Classificação de NFR’s Não há uma clara distinção entre FR’s e NFR’s, depende do nível de detalhamento. Norma IEEE-Std 830 - 1993: Performance Interface Operacionais Recurso Verificação Aceitação Documentação Segurança Portabilidade Qualidade Confiabilidade Manutenabilidade Safety Classificação de NFR’s Boehm (1976) - referia-se a qualidade que o software deveria exibir. Deutsch e Willis (1988) - técnica similar Davis (1992) - NFR’s como requisitos não comportamentais. Sommerville afirmava que requisitos surgiam porque metas deviam ser alcançadas. Classificou os NFR’s em: - Produto - Processo - Externos Classificação de NFR’s Requisitos de Produto: Especificam as características do sistema ou subsistema. Alguns podem ser formulados e facilmente quantificados (Ex. performance, capacidade). Outros são mais difíceis de quantificar e são declarados informalmente (Ex. usabilidade). Classificação de NFR’s Requisitos de Processo: Restrições sobre o processo de desenvolvimento do sistema. Incluem : restrições sobre padrões e métodos de desenvolvimento os quais devem ser seguidos. ferramentas CASE que devem ser usadas. relatórios de gerenciamento que devem ser providenciados. Classificação de NFR’s Requisitos Externos: Restrições sobre o produto e/ou processo. São derivados do ambiente no qual o sistema está instalado. Podem ser baseados : domínio de informação da aplicação. considerações organizacionais. na necessidade do sistema trabalhar com outros sistemas. segurança e regulamentos de proteção dos dados. até mesmo leis naturais básicas, como por exemplo as leis da física. Classificação de NFR’s Requisitos Não Funcionais Requisitos de Processo Requisitos de Produto Requisitos Externos Requisitos de Entrega Requisitos de Usabilidade Restrições Legais Requisitos de Implementação Requisitos de Processo Requisitos de Confiabilidade Restrições Econômicas Requisitos de Padrões Requisitos de Safety Restrições de Interoperabilidade Requisitos de Eficiência Requisitos de Performance Requisitos de Capacidade Derivando NFR’s NFR’s não são cobertos adequadamente pela maioria dos métodos. Métodos existentes se baseiam sobre análise funcional e orientada a objeto que são limitados para representação de NFR’s. Suportar NFR’s é muito difícil. Eles são diversos e devem ser expressos em formas específicas de um domínio. Problemas P/ Expressar NFR’s Questões importantes que contribuem para o problema de se expressar requisitos não-funcionais: Certas restrições são relacionadas a uma solução de projeto que é desconhecida no estágio de requisitos. Outras restrições são altamente subjetivas e só podem ser determinadas através de avaliações empíricas complexas. Requisitos não-funcionais tendem a ser relacionados há um ou mais requisitos funcionais. Expressar requisitos funcionais e não-funcionais separadamente torna difícil a visualização destes relacionamentos. Requisitos não-funcionais tendem a conflitar e contradizer outros requisitos não-funcionais. Não há regras e diretrizes para determinar quando requisitos não-funcionais foram bem encontrados. Propostas para Derivar NFR’s Chung - método orientado a metas onde requisitos são tratados como metas potencialmente conflitantes. Dobson - modelos lógicos de NFR’s derivados do ambiente organizacional. Kotonya - Framework baseado em ponto de vista que integra FR’s e NFR’s. Propostas para Derivar NFR’s Sommerville - descreve como preocupações são reduzidas em subpreocupações e finalmente em metas. Loucopolos e Karakostas - relacionam NFR’s com metas organizacionais. Decomposição de metas em submetas e finalmente em NFR’s. Objetivos das Propostas Traduzir objetivos e metas gerais em declarações referentes a propriedades mensuráveis. Sommerville e outros afirmam que NFR’s devem ser objetivos e testáveis para que metas vagas não sejam confundidos com NFR’s mais específicos. Sistemas Críticos A falha de sistemas críticos pode ser resultado da falha de requisitos funcionais. Mais freqüentemente a falha resulta de problemas do sistema em satisfazer algum NFR sobre sua operação. Principais NFR’s relevantes a sistemas críticos: Confiabilidade Performance Segurança Usabilidade Safety Técnicas de Representação Modelo baseados em metas (framework para lidar com NFRs) - Chung Integrar Requisitos não funcionais na modelagem de dados - Julio Cesar e Luiz Marcio Modelo Baseado em Metas Trata os NFRs como metas Técnica orientada a processo - trata os requisitos não funcionais durante o processo de desenvolvimento do software Considera alternativas para satisfazer os NFRs Relaciona decisões de projeto a NFRs Auxilia na detecção de conflitos Framework para metas Um requisito não funcional representa uma meta a ser atingida Considera um conjunto inicial de metas Refina estas metas em sub-metas Levanta-se alternativas para satisfação da meta Escolhe-se uma das alternativas, justificando a escolha (argumento) Exemplo - Cartões de Crédito Segurança [Conta] Exatidão [Conta] Confidenciabilidade [Conta] Autenticar [Conta] Password meta meta satisfeita argumento nó AND Disponibilidade [Conta] Confidenciabilidade Interna [Conta] Informação Confidencial [Conta] Alegação [“fraude interna é frequente”] Metodologia para usar o Framework Aquisição de conhecimento Relativo a um requisito não funcional específico (segurança, performance) Relativo ao domínio da organização Divisão do domínio em categorias, e identificação das metas importantes Verificar razões do projeto Aplicar Framework Avaliar se requisitos fundamentais foram realmente encontrados Modelo Baseado em Metas Pontos Positivos Mantém um importante histórico do desenvolvimento Boa detecção de conflitos e clarificação dos NFRs Pontos Negativos Estrutura de grafos muito complexa para sistemas grandes Não cobre os NFRs completamente - pode ser necessário usar outros métodos de NFR-Assistant: um case para metas Ferramenta que incorpora a semântica e a sintaxe do framework NFR Suporte gráfico ao modelo de metas Possui catálogo para decomposição de metas Facilidade para localização de metas Facilita avaliação dos efeitos causados por uma meta Integrar NFRs na modelagem de dados Integra NFRs ao modelo ER Foi criado a partir da necessidade de modelar os NFRs antes da fase de projeto no ciclo de evolução do software Enfatiza o relacionamento entre requisitos funcionais e não funcionais e seus conflitos Integrar NFRs na modelagem de dados Define um lexicon que funciona como uma âncora entre diagramas ER e de metas Apresenta o modelo de metas do chung adaptado como forma de representar NFRs Extende o modelo ER onde: Um NFR (meta) é representado como uma entidade especial conectada à entidade que a originou Os atributos do NFR são integrados à esta entidade