Inteligência Computacional Aplicada a Engenharia de Software SQFD Prof. Ricardo de Sousa Britto rbritto@ufpi.edu.br
Introdução A necessidade de vantagem competitiva, tem levado as empresas de desenvolvimento de software a aplicarem muitas técnicas de desenvolvimento orientadas à qualidade. A partir da década de 1990 as empresas começaram a seguir orientações de modelos e padrões de qualidade de processo, tais como CMM (Capacity Maturity Model).
Introdução Recentemente, várias empresas como a DEC, AT&T, IBM e HP, têm adaptado o método QFD (Quality Function Deployment), para o desenvolvimento de Software. Essa adaptação é denominada de Desdobramento da Função Qualidade do Software (SQFD - Software Quality Function Deployment). 3
Introdução O SQFD enfatiza que a Garantia da Qualidade de Software (SQA Software Quality Assurance) deve ser iniciada a partir da fase de especificação de requisitos. Procura-se ouvir as necessidades dos clientes para traduzi-las em características técnicas do produto. Essa abordagem está relacionada ao desenvolvimento de software centrado no usuário, onde a participação dos usuários do sistema é um fator imprescindível. 4
Introdução De acordo com pesquisas realizadas até o momento, entre os benefícios citados pelas empresas que já utilizam o SQFD, destacam-se: a redução de custos; a definição mais rápida das características do produto; quantificação qualitativa dos requisitos do cliente; o registro de informações para a equipe de desenvolvimento e para a manutenção. 5
QFD Originalmente desenvolvido no Japão, e primeiramente usado na Kobe Shipyard of Mitsubishi Heavy Industries, Ltda, aproximadamente no ano de 1970. Concentra-se na maximização da satisfação do cliente. A ênfase está na compreensão do que é valioso para o cliente e no desdobramento destes valores em valores técnicos. 6
QFD O Desdobramento da Qualidade nasceu como uma ferramenta de desenvolvimento de novos produtos em curto espaço de tempo. É o meio utilizado para transmitir as informações dos clientes para o setor de projeto e deste para a fabricação, garantindo de uma forma concreta a qualidade. Quando se vai desenvolver um novo produto é necessário posicionar-se nos conceitos de market-in, ou seja, na identificação das exigências do cliente, como meio de sistematicamente garantir a qualidade. 7
QFD 8
Elementos do QFD O QFD utiliza alguns elementos denominados de Unidades Básicas de Trabalho (UBT). Esses elementos são as tabelas, as matrizes e os modelos conceituais 9
Tabelas A tabela no QFD e considerada a unidade elementar, onde se registra o detalhamento de algo de forma organizada e ordenada em nıveis, semelhante a um diagrama em arvore. Essa organizacao hierarquica e representada graficamente por um triangulo. Utilizam-se primeiramente, ferramentas de criatividade e participacao como, por exemplo, o Brainstorming. Por conseguinte, utiliza-se o diagrama de afinidade, de forma a agrupar as contribuicoes afins sob algum criterio de relacao. 10
Tabelas O diagrama de afinidades e um metodo desenvolvido para organizar dados por afinidade, sendo tambem conhecido como metodo Kj de agrupamento. O objetivo do diagrama de afinidades e facilitar a obtencao de novas informacoes a partir daquelas disponıveis, especialmente se elas forem desconexas e nao quantificaveis. 11
Tabelas A partir de duas tabelas elabora-se uma matriz, com a finalidade de dar visibilidade as relacoes entre elas. As relacoes entre as tabelas podem ser de tres tipos: qualitativa, de intensidade e quantitativa, Os processos de definicao sao denominados, respectivamente, extracao, correlacao e conversao. 12
Extração A extracao e o processo de criar uma tabela a partir de outra. Utiliza-se os elementos de uma tabela como referencia para se obter os elementos de outra tabela. 13
Correlação É o processo de identificar a intensidade do relacionamento entre os dados de duas tabelas que compoem uma matriz. O grau ou a intensidade da correlacao e indicado por sımbolos, representando, por exemplo, correlacao Forte, Fraca e Possıvel. 14
Conversão Consiste em transferir a importancia relativa (peso) dos dados de uma tabela de uma matriz para os dados da outra tabela, em funcao da intensidade das relacoes existentes entre eles. 15
Matriz de qualidade A Matriz de Qualidade (versao japonesa) ou Casa de Qualidade (versao americana), e a matriz mais conhecida, e o ponto inicial da maioria das matrizes usadas no QFD. A matriz da Qualidade e constituıda pela Tabela de Desdobramento da Qualidade Exigida (das necessidades dos clientes) e Tabela de Desdobramento de Caracterısticas da Qualidade. 16
Matriz de qualidade A Tabela de Desdobramento da Qualidade Exigida contem as exigencias do cliente. Tabela de Desdobramento de Caracterısticas da Qualidade é construída por meio da extração dos aspectos técnicos a partir da primeira tabela. 17
Casa de qualidade 18
Casa de qualidade A elaboracao da casa de qualidade pode ser vista como o conjunto de tres atividades: levantamento dos requisitos com os usuarios; traducao dos requisitos em caracterısticas de qualidade (aspectos tecnicos); identificacao das relacoes entre os requisitos e os aspectos tecnicos identificados. 19
Modelo Conceitual Constituıdo por um conjunto de tabelas e matrizes sequenciadas de forma a permitir a visibilidade das relacoes existentes entre os componentes, mecanismos e processos. Ele representa o caminho por onde o desenvolvimento do projeto deve percorrer para atingir as metas que foram estabelecidas para o projeto. 20
SQFD O SQFD (Software Quality Function Deployment) focaliza a melhoria de qualidade do processo de desenvolvimento de software. Realiza isso pela implementacao de tecnicas de melhoria de qualidade durante a fase de levantamento de requisitos principalmente. 21
SQFD O SQFD contempla apenas o desdobramento da qualidade, por meio de uma versão adaptada da Casa de qualidade prescrita no QFD. A abordagem possui 5 fases: Requisitos do cliente; Especificações técnicas do produto; Correlação; Requisitos prioritários dos clientes; Especificações técnicas prioritárias; 22
Requisitos do Cliente As necessidades do cliente sao levantadas e registradas na tabela de requisitos do cliente. Geralmente, os requisitos sao declaracoes na terminologia do cliente, por exemplo facil de usar. Após a identificação dos requisitos, eles são organizados em grupos hierárquicos (níveis), agrupando os que possuem conteúdo semelhante. Por último, para cada grupo deve ser definida uma expressão que traduza o conteúdo de todos os seus elementos. 23
Especificacoes tecnicas do produto Em cooperacao com o cliente, converte-se os requisitos em especificacoes tecnicas mensuraveis referentes ao produto de software, que devem ser registradas na tabela de especificacoes tecnicas do produto. Alguns requisitos do cliente podem ser convertidos para multiplas especificacoes tecnicas do produto, tornando crucial um extensivo envolvimento do cliente no processo. 24
Correlação Com perguntas dirigidas ao cliente completa-se a matriz de correlacao, identificando os pesos dos relacionamentos entre os varios requisitos do cliente e as especificacoes tecnicas do produto. Quando existem muitos clientes envolvidos, é importante estabelecer um consenso quanto à intensidade dos relacionamentos. 25
Requisitos prioritários do cliente Com base em pesquisas realizadas junto aos clientes, os requisitos identificados sao priorizados, constituindo a tabela de re- quisitos prioritarios do cliente. Neste momento pode-se agregar informacoes adicionais como taxa competitiva, índice de venda e índice de aperfeiçoamento. 26
Especificações técnicas prioritárias As especificacoes tecnicas sao priorizadas com base nos resultados das somas dos valores obtidos a partir da multiplicacao dos pesos dos requisitos pelos graus de intensidade da correlacao entre os requisitos e as especificacoes tecnicas do produto. Dados adicionais podem ser usados para fornecer aos desenvolvedores informacoes uteis como por exemplo, o custo e o ındice de dificuldade. 27
Processo de construção da Casa de Qualidade 28
Estudo de caso SQFD para identificar e priorizar os requisitos e aspectos tecnicos relacionados a ferramentas de apoio aos testes. Fora realizadas entrevistas com 17 com pessoas ligadas a desenvolvimento de software, tais como: Arquitetos de software; Testadores; Gerentes de projeto. 29
Estudo de caso A abordagem utilizada segue os passos do SQFD e termina com a priorizacao dos aspectos tecnicos relacionados a ferramentas de apoio ao teste de software. Foi feita uma selecao das perguntas a serem aplicadas durante as entrevistas para aumentar a probabilidade de obtencao de dados mais precisos. Alem disso, antes das entrevistas foi feita uma apresentação dos aspectos envolvidos. 30
Requisitos identificados Gestao e planejamento da atividade de teste Geracao automatica de testes Apoio aos testes Execucao automatica Documentacao de testes (...) 31
Grupos de aspectos técnicos Esses aspectos tecnicos correspondem as funcoes que as ferramentas de teste deveriam implementar para atender as necessidades identificadas. Para organizar as funcoes identificadas, essas especificacoes foram reunidas em 14 grupos: (1) Gerador de plano de teste; (2) Gerador de dados; (3) Gerador de testes funcionais; (4) Avaliador de testes; (5) Gerador manual de testes; (6) Rastreador; (7) Integrador; (8) Modelo de teste; (9) Gerador de testes nao-funcionais; (10) Gerador de relatorios; (11) Suporte da ferramenta; (12) Arquitetura da ferramenta; (13) Auxılio da ferramenta; (14) Executor de testes. 32
Grupos de aspectos técnicos 33
Correlacao entre os requisitos do cliente e as especificacoes tecnicas do produto Utilizou-se o valor 9 para representar uma correcao Forte, 3 para representar uma correlacao Fraca, 1 para indicar uma correlacao Possıvel e 0 se o espaço estiver vazio, o que quer dizer que Não existe correlação. 34
Correlacao entre os requisitos do cliente e as especificacoes tecnicas do produto 35
Requisitos prioritários do cliente 36
Especificações técnicas prioritárias 37
Atividade Ler os artigos abaixo e fazer resumo crítico: Avaliação de Ferramentas de Apoio ao Teste de Sistemas de Informação. Function Deployment: Usage in software development. 38