Escolar Documentos
Profissional Documentos
Cultura Documentos
Maio / 1997
BELCHIOR, ARNALDO DIAS Um Modelo Fuzzy para Avaliao da Qualidade de Software [Rio de Janeiro] 1997 xii, 185 p. 29,7 cm (COPPE/UFRJ, D.Sc., Engenharia de Sistemas e Computao, 1997) Tese - Universidade Federal do Rio de Janeiro, COPPE 1. Engenharia de Software 2. Avaliao da Qualidade de Software 3. Teoria dos Conjuntos Fuzzy I. COPPE/UFRJ II. TTULO (srie)
ii
SALMO 22 (de Davi) O Senhor meu pastor, nada me faltar. Em verdes prados ele me faz repousar, Conduz-me junto s guas refrescantes, Restaura as foras de minha alma. Pelos caminhos retos ele me leva, Por amor do seu nome. Ainda que eu atravesse o vale escuro, Nada temerei, pois estais comigo. Vosso bordo e vosso bculo So o meu amparo. Preparais para mim a mesa A vista de meus inimigos. Derramais o perfume sobre minha cabea, Transborda a minha taa. A vossa bondade e misericrdia ho de seguir-me Por todos os dias da minha vida, E habitarei na casa do Senhor Por longos dias.
iii
AGRADECIMENTOS
Ao Banco do Nordeste do Brasil (BNB) por ter tornado possvel este trabalho. Professora Ana Regina por sua orientao segura e sua objetividade, um especial agradecimento por minha formao a nvel de ps-graduao. Ao Professor Geraldo Xexo por sua co-orientao, incentivo e entusiasmo contagiante de pesquisador. Aos Professores Arndt, Cosenza, Maldonado e Jano pela honra de t-los em minha banca examinadora. Aos professores Guilherme, Cludia Werner, Ftima Gaio e Vera pelo apoio. Aos colegas e funcionrios da COPPE/Sistemas pela amizade, especialmente, Morganna, Gisela, Karina, Ktia, Cristina, Rosa, Renata, Fernanda, Jos Xexo, Arlindo, Claudinha, Ana Paula e Mercedes. A Clifton Clunie por ter me cedido, gentilmente, os dados de sua pesquisa de campo, que me foi de grande utilidade neste trabalho. Aos colegas da Agncia BNB-Rio, Alberto, Mrcio, Flvio, Ana Paula e Isabel. A amizade de Ferreirinha, Porfrio, Bezerra, Julinha, Alba, Clia, Manoel Otvio, Jacob, Elvira, Maria Helena, Avany, Jos Antnio, Luzia, Myrian, Maria de Lourdes, Maria Ivany, Ana Maria, Daisy, Jlio, Norma, Renata, Pe. Marques, Pe. Freitas, Joo Fonseca, Maria Lcia, Lcia Barros, Lcia Lessa, Debra, e tantos outros ... A meu Pai, a minha Me, s minhas irms (Neyla, Dayne, Suely e Luciana), avs e tios, pelo apoio e incentivo recebidos. Ao CNPQ pelo auxlio. minha mulher, Ftima, por seu suporte indispensvel ao longo desta caminhada. A meus filhos, Arnaldo e Mairon, dom precioso recebido de Deus, pelo carinho. A Deus Uno e Trino, minha fortaleza, meu porto seguro, a que no tenho palavras cabveis de gratido, confiana e esperana. Obrigado, Senhor, por ter muito mais a agradecer do que a pedir! Obrigado, Maria, Nossa Senhora Rainha da Paz, a quem aprendi a amar e confiar, pelas abundantes graas e bnos recebidas de me. Obrigado Jesus, Maria e Jos!
iv
Resumo da Tese apresentada COPPE/UFRJ como parte dos requisitos necessrios para a obteno do grau de Doutor em Cincias (D.Sc.)
Maio / 1997
Orientador: Profa. Ana Regina Cavalcanti da Rocha Co-Orientador: Prof. Geraldo Bonorino Xexo
Este trabalho desenvolve um modelo fuzzy para a avaliao da qualidade de software, a partir da extenso de um modelo para avaliao da qualidade, anteriormente proposto, e utiliza, para isto, conceitos e propriedades da teoria dos conjuntos fuzzy. O modelo proposto possui cinco etapas para a execuo de seus objetivos, podendo envolver trs situaes distintas. A primeira, objetiva obter um padro de qualidade para o produto de software ou para o domnio de aplicao considerado. A segunda, avalia a qualidade de um produto de software, apoiando-se em um padro de qualidade j definido, anteriormente, para esse produto ou seu domnio de aplicao. A terceira, estima a qualidade de um produto de software, quando no h um padro de qualidade disponvel. Uma experincia com a avaliao da qualidade de especificaes de software foi realizada atravs deste modelo fuzzy com o objetivo de valid-lo e exemplificar seu uso. Os resultados experimentais obtidos corroboram com os resultados previstos axiomaticamente.
vi
Abstract of Thesis presented to COPPE/UFRJ as partial fulfillment of the requirements for the degree of Doctor of Science (D.Sc.)
May / 1997
Advisor: Profa. Ana Regina Cavalcanti da Rocha, D. Sc. Co-advisor: Prof. Geraldo Bonorino Xexo, D. Sc.
This work presents a fuzzy model to software quality evaluate, extending a software quality model previously proposed, and using to do this concepts and properties of fuzzy sets theory. The proposed model has five steps to do its objectives, embracing three different situations. The first aims to get a quality standard to a software product or application domain considered. The second evaluates the quality of a software product, supported by a quality standard previously defined to this product or its application domain. The third assesses the quality of a software product, when there is no quality standard available. An experience with evaluation of software quality specification was realized through this fuzzy model intending to validate them and to exemplify its use. The experimental results agree with those predicted axiomatically.
vii
ndice
I INTRODUO ...................................................................................... 1 II QUALIDADE DE SOFTWARE ........................................................... 4 II.1. Conceitos de Qualidade .................................................................. 6 II.2 Em Busca da Qualidade ................................................................... 8 II.2.1 Qualidade de Processos de Software ...................................... 9 II.2.1.1 O CMM ..................................................................... 10 II.2.1.2 Bootstrap e Trillium................................................... 12 II.2.1.3 O Projeto SPICE ........................................................ 12 II.2.2 Qualidade de Produtos de Software ....................................... 13 II.2.2.1 Modelos para Avaliao da Qualidade de Software.. 15 II.2.2.1.1 O Paradigma GQM .................................... 16 II.2.2.1.2 O Projeto SCOPE ...................................... 17 II.2.2.1.3 O Modelo Rocha ....................................... 18 II.3 Mtricas de Qualidade de Software ................................................. 19 II.3.1 Categorias de mtricas ........................................................... 21 II.3.2 Caractersticas das Mtricas ................................................... 23 II.3.3 A Aplicao de Mtricas ........................................................ 26 II.3.3.1 As Medies por Estimativas .................................... 28 II.3.4 Validao de Mtricas de Software ........................................ 30 II.4 Tcnicas para Controle da Qualidade ............................................... 31 II.4.1 Walkthrough e Inspees ........................................................ 32 II.4.2 Testes de Software .................................................................. 35 II.4.3 Mtodo Cleanroom ................................................................. 36 II.4.4 Modelos de Confiabilidade ..................................................... 36 II.5 A Gesto da Qualidade de Software ................................................. 37 II.5.1 A Instalao de um Programa de Qualidade ........................... 38 II.5.2. Programa de Mtricas ............................................................ 40 II.5.3 Custos com a Qualidade .......................................................... 42 II.5.4 Gerenciamento da Qualidade Total ......................................... 43 II.5.5 Recursos Humanos .................................................................. 44
viii
II.6 Concluso .......................................................................................... 45 III ENFOQUES SOBRE A TEORIA FUZZY ........................................... 46 III.1 Conceitos Bsicos de Conjuntos Fuzzy ............................................ 47 III.2 Operaes com Conjuntos Fuzzy ..................................................... 55 III.2.1 Complemento Fuzzy ............................................................ 55 III.2.2 Interseo Fuzzy ................................................................... 56 III.2.3 Unio Fuzzy .......................................................................... 57 III.2.4 Operaes Algbricas com Conjuntos Fuzzy ....................... 59 III.3 Agregao de Conjuntos Fuzzy ....................................................... 60 III.3.1 Operadores Fuzzy ................................................................. 64 III.3.1.1 Classes t-norms e t-conorms .................................. 65 III.3.1.2 Outras classes de operadores fuzzy ........................ 66 III.4 Nmeros Fuzzy ............................................................................... 67 III.4.1 Conjuntos fuzzy tipo-LR ...................................................... 69 III.5 Variveis Lingsticas ..................................................................... 70 III.6 A Lgica Fuzzy ............................................................................... 72 III.7 A Teoria das Incertezas e Aplicaes ............................................. 74 III.7.1 Sistemas Baseados em Conhecimento Fuzzy ....................... 75 III.7.2 Tomada de Deciso em Ambientes Fuzzy ............................ 76 III.7.3 Modelos de Deciso Fuzzy .................................................. 78 III.7.3.1 Mtodo de Anlise Hierrquica ..............................79 III.7.3.2 Mtodo Fuzzy Hierrquico de Avaliao ............... 80 III.7.3.3 Mtodo de Agregao de Similaridades ................ 80 III.7.3.4 Modelo Hierrquico para Estruturas de Risco ....... 81 III.7.3.5 Modelo para Localizao Industrial ....................... 82 III.7.3.6 Outros Modelos ...................................................... 82 III.8 Os Sistemas Fuzzy ........................................................................... 84 III.9 Concluso ....................................................................................... 85 IV MODELO FUZZY PARA AVALIAO DA QUALIDADE DE SOFTWARE .................................................................................... 86 IV.1. Extenso do Modelo Rocha ............................................................ 87 IV.2 Uso da Teoria Fuzzy em Qualidade de Software ............................. 89 IV.3 Etapas do Modelo Fuzzy para Avaliao da Qualidade de Software 92
ix
IV.3.1 Caractersticas do Modelo Fuzzy para Avaliao da Qualidade de Software .......................................................... 110 IV.4 Definio de ndices de Qualidade de Software .............................. 111 IV.5 Concluso ......................................................................................... 112 V UMA EXPERINCIA DE UTILIZAO DO MODELO FUZZY ... 113 V.1 Avaliao dos Atributos de Qualidade ................................................ 113 V.2 Uma experincia com o Modelo Fuzzy ............................................... 114 V.2.1 Determinao do Padro de Qualidade para ERS ..................... 115 V.2.2 Avaliao de uma ERS .............................................................. 122 V.3 Concluso ............................................................................................ 124 VI CONCLUSO .......................................................................................... 125 VI.1. Perspectivas Futuras ........................................................................ 127 REFERNCIAS BIBLIOGRFICAS ........................................................ 128 APNDICE I - Questionrio de Identificao do Perfil do Especialista ........ 155 APNDICE II - Atributos de Qualidade de Especificaes de Requisitos de Software ........................................................................... 161 APNDICE III - Instrumento para Hierarquizar Critrios de Qualidade para Especificaes de Requisitos de Software ................. 168 APNDICE IV - Formulrio de Avaliao da Qualidade de Especificaes de Requisitos de Software ................................................... 172
ndice de Figuras
Figura II.1: Avaliao de Processos de Software: Projeto SPICE .................. 12 Figura III.1: O Princpio da Extenso ............................................................. 54 Figura III.2: Comparao de um nmero real e um intervalo ntido com um nmero fuzzy e um intervalo fuzzy respectivamente ................... 68 Figura III.3: Varivel lingstica Idade ....................................................... 70 Figura III.4: Varivel lingstica Verdade ................................................... 72 Figura IV.1: Modelo Rocha .............................................................................88 Figura IV.2: Modelo Rocha Estendido ............................................................ 89 Figura IV.3: Funes de pertinncia de nmeros fuzzy, para termos lingsticos .................................................................................. 92 Figura V.1: Critrio Correo da Notao ...................................................... 113 Figura V.2: Hierarquizao dos critrios do objetivo Confiabilidade da Representao para ERS ............................................................. 116 Figura V.3: Hieraquizao dos critrios do objetivo Confiabilidade Conceitual para ERS .................................................................... 117 Figura V.4: Hierarquizao dos critrios do objetivo Utilizabilidade para ERS .............................................................................................. 119 Figura V.5: Hierarquizao dos subfatores de qualidade da ERS ...................120 Figura V.6: Hierarquizao dos fatores de qualidade de ERS ........................ 121
xi
ndice de Tabelas
Tabela II.1: Caractersticas e subcaractersticas de software-ISO/IEC 9126 ..14 Tabela III.1: Exemplo de conjuntos fuzzy ........................................................ 49 Tabela III.2: Categorias genricas de aplicaes de sistemas fuzzy ................. 84 Tabela IV.1: Nmeros fuzzy normais para termos lingsticos (abrangente) .. 91 Tabela IV.2: Nmeros fuzzy normais para termos lingsticos (simplificado) 91 Tabela IV.3: Nmeros fuzzy normais para termos lingsticos (por relevncia) .................................................................................. 91 Tabela IV.4.: Resultados do QIPE .................................................................. 96 Tabela IV.5: Termos lingsticos (nmeros fuzzy), usados pelos especialistas na avaliao do critrio, Correo da Notao.... 100 Tabela IV.6: rea de interseo entre os especialistas Ei e Ej na avaliao do critrio, Correo da Notao...................................................... 100 Tabela IV.7: Matriz de Concordncia entre os especialistas Ei e Ej na avaliao do critrio, Correo da Notao................................. 101 Tabela IV.8: Concordncia relativa, grau de concordncia relativa, e coeficiente de concordncia entre os Ei e Ej na avaliao do critrio, Correo da Notao..................................................... 102 Tabela IV.9: Critrios que compem o subfator Correo no Uso do Mtodo, com seus respectivos pesos W..................................................... 107 Tabela IV.10: rea de interseo entre os critrios Ci e Cj do objetivo Confiabilidade da Representao ............................................... 108 Tabela IV.11: Matriz de Concordncia entre os critrios Ci e Cj na avaliao dos atributos agregados: subfatores, fatores do objetivo Confiabilidade da Representao ............................................... 108 Tabela IV.12: Estado relativo de agregao, grau do estado relativo de agregao, coeficiente de consenso do atributo, e os argumentos a e b das funes
xii
xiii
Tabela V.1: Avaliao do objetivo Confiabilidade da Representao de ERS, atravs de nmeros fuzzy.................................................... 116 Tabela V.2: Avaliao do Objetivo Confiabilidade Conceitual de ERS, atravs de nmeros fuzzy.............................................................. 117 Tabela V.3: Avaliao do objetivo Utilizabilidade de ERS, atravs de nmeros fuzzy ............................................................................. 119 Tabela V.4.: Resultados do QIPE para ERS real ............................................ 122 Tabela V.5: Relao entre os nmeros fuzzy normais do PQ e da CAERS .. 123 Tabela V.6: Resultados da avaliao para o objetivo Confiabilidade da Representao ............................................................................. 123 Tabela V.7: Resultados da avaliao para o objetivo Confiabilidade Conceitual ................................................................................... 124 Tabela AII.1 - Caractersticas de qualidade relacionadas ao objetivo Confiabilidade da Representao para ERS ........................... 164 Tabela AII.2 - Caractersticas de qualidade relacionadas ao objetivo Confiabilidade Conceitual para ERS ...................................... 163 Tabela AII.3 - Caractersticas de qualidade relacionadas ao objetivo Utilizabilidade para ERS ......................................................... 165 Tabela AII.4 - Caractersticas de qualidade do objetivo Confiabilidade da Representao, relacionadas ao objetivo Utilizabilidade para ERS .................................................................................. 167 Tabela AII.5 - Caractersticas de qualidade do objetivo Confiabilidade Conceitual, relacionadas ao objetivo Utilizabilidade para ERS .................................................................................. 167 Tabela AIII.1 - Escala de Valores ................................................................... 169 Tabela AIV.1 - Graus de Presena do Critrio ............................................... 173
xiv
Captulo I INTRODUO
No processo de avaliao da qualidade de software, no basta apenas identificar que atributos determinam essa qualidade, mas tambm que procedimentos adotar, para controlar seu processo de desenvolvimento, de forma a atingir o nvel de qualidade desejado. Isto realizado atravs da aplicao de mtricas de forma organizada e bem projetada, tornando os desenvolvedores mais conscientizados da relevncia do gerenciamento e dos compromissos para com a qualidade. Uma mtrica vlida deve obedecer a condies de representao da teoria de medidas, tal que o entendimento intuitivo de alguns atributos seja preservado, quando mapeado para um sistema de relao numrica (FENTON, 1994). Portanto, o uso de mtricas de qualidade de software deve estar apoiado em um mtodo para o controle da qualidade, para que se alcance, convenientemente, os objetivos almejados. Uma proposta para avaliao da qualidade de software o modelo proposto por Rocha (ROCHA, 1983) que, neste trabalho, estendido atravs do uso de conceitos e propriedades da teoria dos conjuntos fuzzy, por no resolver, satisfatoriamente, o problema de agregao de medidas, utilizando-a de forma bastante ad-hoc. Com o advento da teoria dos conjuntos fuzzy, obteve-se uma importante ferramenta para a representao de vrias facetas do conhecimento humano (YAGER, 1991), capturando suas imprecises, atravs de uma estrutura formal quantitativa (DUBOIS, 1991). A mente humana opera com conceitos subjetivos tais como alto, baixo, velho e novo, que so incorporados em classes de objetos nessa teoria, onde a transio de pertinncia ou no de um elemento a um conjunto, realiza-se de maneira gradual, e no abrupta (ZADEH, 1990).
A teoria fuzzy usada, essencialmente, para mapear modelos qualitativos de tomada de deciso, e para mtodos de representao imprecisa (KLIR, 1995b). Neste contexto, que se pode utiliz-la no processo de avaliao da qualidade de software, que envolve uma enorme gama de conceitos subjetivos e no precisos. A princpio, pode parecer incoerente a utilizao da teoria fuzzy (nebulosa) para a avaliao da qualidade de software. Para justificar esta escolha, cita-se a argumentao de ZIMMERMANN (1991): A teoria dos conjuntos fuzzy fornece uma estrutura matemtica estrita (no h nada de nebuloso na teoria dos conjuntos fuzzy!), na qual um fenmeno conceitual vago pode ser precisa e rigorosamente estudado. Uma estrutura de avaliao de software bem definida tem por objetivo estimar a sua qualidade, atravs de um conjunto bsico de atributos, evidenciando seus aspectos relevantes. Para isto, as informaes sobre o objeto de avaliao devem estar dispostas de forma organizada, onde caractersticas especficas do software possam ser identificadas para otimizar o processo de tomada de deciso (BOLOIX, 1995). Uma vez que o processo de tomada de deciso centrado em pessoas humanas, como tambm o o processo de avaliao de software, com suas inerentes subjetividades e inconsistncias na definio do problema, os conjuntos fuzzy so adequados nesta rea, pois (IBRAHIM et al., 1992): possuem a habilidade para a representao de atributos; detm formas convenientes e avaliveis para a agregao de atributos, que podem estar vaga ou precisamente definidos; e manuseiam diferentes graus de importncia para cada atributo considerado. Neste contexto, a utilizao do Modelo Rocha Estendido, suportado pela robustez da teoria fuzzy, pode atuar como um mecanismo capaz de interpretar resultados e sintetizar informaes (BOLOIX, 1995), atravs de procedimentos normatizados para a avaliao da qualidade (BASILI et al., 1995). Com a extenso desse Modelo, foi proposto o Modelo Fuzzy para Avaliao da Qualidade de Software, que envolve trs situaes distintas, desenvolvidas ao longo deste trabalho: Determinao do padro de qualidade para um produto de software ou para um domnio de aplicao;
Avaliao da qualidade de um produto de software especfico, apoiando-se em um padro de qualidade previamente definido; Avaliao de um produto de software, mesmo que no haja um padro de qualidade j estabelecido. Esta tese constitui-se de cinco captulos, alm desta introduo, e de quatro apndices, descritos, resumidamente, a seguir: No Captulo II, Qualidade de Software, discorre-se sobre qualidade de processos e produtos de software, evidenciando-se a sua relevncia, segundo o padro ISO/IEC. Outras questes tratadas so o emprego de mtricas, tcnicas para controle da qualidade, modelos de avaliao e de gesto da qualidade. No Captulo III, Enfoques sobre a Teoria Fuzzy, procura-se fornecer uma viso ampla sobre os aspectos estruturais da teoria fuzzy, para melhor fundamentar o modelo proposto, baseado nessa teoria. No Captulo IV, Modelo Fuzzy para Avaliao da Qualidade de Software, so apresentadas as etapas do modelo fuzzy para avaliao da qualidade de software, atravs da extenso do Modelo Rocha. No Captulo V, Uma Experincia de Utilizao do Modelo Fuzzy, efetua-se uma experincia de uso do modelo fuzzy proposto, com o intuito de valid-lo e de
exemplificar a sua utilizao. No Capitulo VI, Concluso, so apresentadas as concluses deste trabalho, suas possveis implementaes e perspectivas futuras. O Apndice I contm o Questionrio de Identificao do Perfil do Especialista. O Apndice II apresenta o conjunto dos atributos de qualidade de especificaes de requisitos de software. O Apndice III mostra o instrumento para hierarquizar critrios de qualidade de especificaes de requisitos de software. Finalmente, o Apndice IV possui o formulrio utilizado para a avaliao da qualidade de especificaes de requisitos de software para sistemas reais.
da estabilidade no gerenciamento de software (mtricas); da transferncia conjunta de tecnologia (treinamento) e de pesquisa. O desenvolvimento de produtos de software tem-se mantido uma atividade complexa, devido necessidade de serem construdos projetos, que combinem mltiplos requisitos entre si, envolvam vrias equipes de trabalho e produtos no materiais, associados a seus programas e suas documentaes (HAASE et al., 1994, SCHWARE, 1992). Um software perfeito, para um sistema complexo, no pode ser garantido na prtica (COBB et al., 1990). Um software, que atenda a suas especificaes satisfatoriamente, pode conter erros, uma vez que essas especificaes podem estar incorretas. Um software que tenha uma especificao isenta de erros e atenda a ela, pode ser usado indevidamente por seus usurios. A questo , portanto, quando tornar o software operacional e como salvaguardar seus usurios de erros, que possam ser evitados. Neste contexto, o software difere de outros produtos, em vrios aspectos crticos (COLLINS et al., 1994): erros graves podem permanecer no produto de software, mesmo depois de testes rigorosos, em virtude de sua complexidade lgica; no trivial estabelecer padres uniformes de software, que possam ser matria de regulamentao e inspeo; o software afeta um grande e crescente nmero de indivduos, devido a sua fcil reproduo e maleabilidade em computadores (MOOR, 1985), largamente propalados; uma pequena equipe e a baixo custo, pode produzir software, levando no somente a proliferao de fornecedores de software, como tambm a produtos de qualidade inferior. Atualmente, a tendncia das instituies reduzir o nmero de seus fornecedores de software, excluindo de seus negcios os que no esto habilitados a proverem software de boa qualidade, uma vez que a qualidade passou a ser um fator crtico para a sobrevivncia e o sucesso das organizaes (MILLER et al., 1993, SANDERS et al., 1994).
Portanto, os resultados intermedirios, no processo de produo, devem ser imediatamente examinados aps sua concluso, procurando garantir que erros e inadequaes no produto sejam detectados o mais cedo possvel, pois a qualidade final do produto uma funo de todas as fases anteriores de seu ciclo de desenvolvimento. Em IEEE (1990), a qualidade j definida como o grau pelo qual um sistema, um componente ou um processo satisfazem seus requisitos especificados, e as necessidades ou expectativas de clientes ou usurios. A ISO 8402 (ISO, 1994) enuncia qualidade como a totalidade de caractersticas de uma entidade, que lhe confere a capacidade de satisfazer suas necessidades explcitas e implcitas. A ISO/IEC 9126 (ISO, 1991) fornece o significado de caractersticas de qualidade de software, como sendo uma referncia bsica qualidade de um produto de software, utilizada em uma avaliao. PFLEEGER (1991) props que um software de alta qualidade deve possuir caractersticas, que atendam s necessidades de usurios, desenvolvedores e manutenedores. Seguindo o mesmo enfoque, PRESSMAN (1992) define qualidade de software como o conjunto das adequaes aos requisitos funcionais e de desempenho, documentao inteligvel dos padres de desenvolvimento e caractersticas implcitas esperadas por todos os seus profissionais. Para CROSBY (1990), qualidade a conformidade do produto com os requisitos ou especificaes estabelecidos. Vrios pesquisadores conceituam qualidade de software apenas como uma implementao correta de sua especificao (TINNIRELLO, 1995, JOYCE, 1994, HAILSTONE, 1991, SCHACH, 1990). Esta definio pode ser usada durante o desenvolvimento de produtos, mas inadequada para se realizar comparaes entre produtos (SIMMONS, 1996). Na viso de CAMPOS (1990), o conceito de qualidade acomoda-se no equilbrio dos seguintes fatores: qualidade intrnseca do produto ou servio: pode ser atestada por estar em conformidade com as normas, ou avaliada pela ausncia ou presena de certos critrios; custo: corresponde ao preo, pelo qual o usurio se dispe a pagar;
atendimento: pode ser entendido como a satisfao do usurio quanto a tempo, espao e quantidade. Qualidade, portanto, no significa somente excelncia ou um outro atributo de um certo produto final. A qualidade dever ser perseguida dentro da organizao, pois, certamente, isto o que os usurios esperam de um produto.
tambm ser de boa qualidade. Um sistema de qualidade em conformidade com a ISO 9000 assegurar que seu processo de desenvolvimento possui um nvel de controle, disciplina e repetibilidade, garantindo a qualidade de seus produtos (SCHMAUCH, 1994). A busca de qualidade e produtividade no desenvolvimento tem sido intensa. No entanto, ainda no est bem definido como se desenvolver software de qualidade. A avaliao da qualidade e a tentativa de corrigir erros no produto, por si s, mostrou-se insuficiente e limitada para garantir a qualidade. Atualmente, tem-se evidenciado que a qualidade do produto depende, fortemente, da qualidade e adequao de seu processo de desenvolvimento. Desta forma, a qualidade do processo passou a ser vista como um prrequisito e condicionante da qualidade do produto (ROCHA, 1997, ROCHA et al., 1994).
Os padres ISO 9000-3 enunciam procedimentos para a garantia da qualidade de software em relao a seu processo de desenvolvimento, presumindo que o produto de software o resultado de um acordo contratual entre um cliente e um fornecedor, sendo este ltimo uma organizao com um sistema de qualidade suportado pela ISO 9000. A ISO 9000-3 est constituda de trs partes (ISO, 1990): Estrutura: envolve aspectos organizacionais da produo de software. Atividades do ciclo de vida: define as aes necessrias para as fases ao longo do processo de desenvolvimento. Atividades de apoio: estabelece atividades de suporte produo, operao e manuteno de software. A aceitao do padro internacional de qualidade ISO 9000 tem despertado um grande interesse das organizaes, pois, atravs dele, podem conquistar sua certificao de qualidade. Essa certificao, significa alcanar um padro internacional em seus processos. Da mesma forma, os clientes, que adquirem produtos e servios, vem, nessa certificao, um indicador que assegura a qualidade de seus fornecedores (WEBER et al., 1997, DAVIS et al., 1993, SANDERS et al., 1994). Muitas organizaes buscam novos paradigmas, que conduzam a uma melhoria contnua e progressiva da qualidade de seus processos, atenuando os problemas com o desenvolvimento de seus produtos de software. Assim, surgiram alguns modelos, como o Modelo de Maturidade e Capacidade do Software (Capability Maturity Model CMM) (SEI, 1995).
II.2.1.1 O CMM
Desde o incio desta dcada, o CMM vem sendo implantado em muitas organizaes urbe et orbi, objetivando a padronizao e a melhoria de processos de desenvolvimento de software. Esse objetivo segue a tendncia da globalizao da economia mundial, onde a padronizao da produo de software surge como um elemento estratgico, para a obteno de novos mercados e seu posterior controle (BASTOS, 1996). O princpio fundamental desse modelo que a qualidade do produto de software alcanada atravs da melhoria da qualidade de seus processos (SANDERS et al., 1994).
10
O CMM estruturado em cinco nveis em ordem crescente de maturidade. Quando a organizao se encontra em um certo nvel, deve seguir atividades determinadas pelo modelo, para atingir o nvel seguinte (HUMPHREY, 1991): Nvel 1 ou inicial: as organizaes no possuem um ambiente estvel para o desenvolvimento e a manuteno de software, ficando na dependncia exclusiva da habilidade e eficcia de seu pessoal tcnico. Nvel 2 ou repetitivo: a instituio j possui projetos, cujos processos so gerenciados, medidos, documentados, tendo sua equipe devidamente treinada. Nvel 3 ou definido: h uma retroalimentao contnua do aprendizado dos processos utilizados na empresa, havendo, para isto, uma biblioteca de processos padres, que podem ser escolhidos durante a fase de planejamento. Nvel 4 ou gerenciado: so estabelecidas mtricas mais estritas, para a identificao de pontos crticos e oportunidades de melhoria. Nvel 5 ou otimizado: a organizao se encontra em uma contnua melhoria de seus processos. A partir do nvel 2 do CMM, so includos grupos de atividades chaves, KPAs (key process areas), que tm por objetivo segmentar e facilitar o trabalho de melhoria dos processos de software, em cada nvel considerado. As KPAs so conjuntos de atividades a serem seguidas, visando a obteno de um novo nvel de maturidade, e esto subdividas em: (i) alvos, (ii) desempenho de execuo, (iii) habilidades para execuo, (iv) atividades de execuo, (v) medidas e anlise, e (vi) verificao da implementao (SAIEDIAN et al., 1995). Conforme estudos do SEI/CMU, uma empresa de software, que alcance certificao ISO 9001, atende a todos os requisitos para ser classificada no nvel 2 do CMM, mesmo que tenha alcanado alguns dos requisitos de nveis superiores (WEBER, 1997). O CMM possui quatro critrios para determinar se h compromissos e habilidade para a garantia da qualidade (JONES, 1995): Existe pessoal designado para uma unidade organizacional, responsvel pela garantia da qualidade? H recursos financeiros (e outros) suficientes e disponveis para a realizao do trabalho desse pessoal?
11
O pessoal responsvel pela qualidade tem sido treinado, de tal forma que estejam conscientes do que esperado deles e de como faro o seu trabalho? O grupo de garantia da qualidade tido como pessoal de alto nvel, que est satisfeito com o que faz? Entretanto, o CMM tem sido criticado por alguns pesquisadores por no ter uma base terica formal, sendo fundamentado na experincia de um grupo de pessoas. BACH (1994), por exemplo, argumenta que o CMM uma mistificao do processo evolutivo e no uma representao legtima do processo de software, podendo levar a organizao a um colapso em seu potencial competitivo.
identifica mudanas no
Figura II.1: Avaliao de Processos de Software: Projeto SPICE (OLIVEIRA et al., 1995c)
A melhoria de processos realizada atravs de avaliaes, que descrevam prticas usuais da organizao, de uma unidade organizacional ou de um projeto. A anlise dos resultados feita em relao s necessidades do negcio da organizao, levantando aspectos negativos e positivos, como tambm os riscos envolvidos no processo. O Projeto SPICE pode ser usado por organizaes com atividades de planejamento, gerenciamento, monitorao, controle, fornecimento, desenvolvimento, operao e suporte de software. Esse projeto interessante por seu direcionamento e sua flexibilidade, para que as organizaes que o utilizem, determinem a capacitao de cada um de seus processos com o intuito de promover melhorias contnuas nos mesmos. Desta forma, obtm-se uma avaliao mais detalhada do estado da organizao (TSUKUMO et al., 1996b). A estratgia de melhoria de processos deve ser dinmica, pois, para assegurar a qualidade de produtos de software, as habilidades se multiplicam, a tecnologia modificada, e surgem novos ambientes de trabalho (HUMPHREY, 1995).
13
A estrutura da ISO/IEC 9126 possui, tambm, um conjunto de documentos tcnicos, que definem caractersticas de qualidade de software e seus indicadores, orientando o planejamento e a execuo da avaliao (SCALET, 1995): ISO/IEC 9126-1: fornece caractersticas e subcaractersticas de qualidade, sendo uma norma essencialmente de definies (WEBER, 1997, TSUKUMO et al., 1995, HAUSEN et al., 1993), com representado na tabela II.1. ISO/IEC 9126-2: define mtricas externas para a medio das caractersticas e subcaractersticas de qualidade da ISO/IEC 9126-1. Essas mtricas referem-se a medies indiretas de um produto de software, a partir da medio do comportamento do sistema computacional, do qual o produto faz parte. ISO/IEC 9126-3: estabelece mtricas internas para a avaliao de um produto de software. Essas mtricas referem-se a medies diretas de um produto, a partir de sua caractersticas internas, sem que seja necessria a execuo do programa.
QUALIDADE DE PRODUTOS DE SOFTWARE - ISO/IEC 9126 CARACTERSTICAS FUNCIONALIDADE: as funes e propriedades especficas do produto, satisfazem as necessidades do usurio Subcaractersticas Adequao: existncia de um conjunto de funes apropriadas para as tarefas requeridas Acurcia: produo de resultados ou efeitos corretos Interoperabilidade: habilidade de interao do produto de software com outros produtos Conformidade: o produto est de acordo com as convenes, as normas ou os regulamentos estabelecidos Segurana: aptido para evitar acessos no autorizados a programas e dados. CONFIABILIDADE: o produto de software capaz de manter seu nvel de desempenho, ao longo do tempo, nas condies estabelecidas Maturidade: estado de maturao do software, detectada por sua baixa freqncia de falhas Tolerncia a falhas: o nvel de desempenho mantido, quando ocorrem falhas Recuperabilidade: existem mecanismos que restabelecem e restauram os dados aps a ocorrncia de falhas USABILIDADE: esforo necessrio para a utilizao do sistema, baseado em um conjunto de implicaes e de condies do usurio EFICINCIA: os recursos e os tempos envolvidos so compatveis com o nvel de desempenho requerido pelo software Inteligibilidade: facilidade de entendimento dos conceitos utilizados no produto de software Apreensibilidade: facilidade de aprendizado do software Operacionalidade: faculdade de operar e controlar operaes pertinentes ao software Comportamento no tempo: refere-se ao tempo de resposta de processamento Comportamento dos recursos: relaciona-se com a quantidade dos recursos empregados
14
Alm das caractersticas de qualidade do produto e processo, SIMMONS (1996) aponta o resultado do desenvolvimento do software como o terceiro nvel de qualidade, considerado como de grande interesse no gerenciamento dos negcios. BAZZANA et al. (1993) considera a norma ISO/IEC 9126 (ISO, 1991) como o padro para a modelagem da qualidade de software, pois, em uma pesquisa realizada em pases da Comunidade Europia, 70% dos entrevistados j haviam, pelo menos, ouvido falar dela. Apesar da grande relevncia da ISO/IEC 9126, h dificuldades em adequar sua aplicabilidade na avaliao prtica de produtos de software (TSUKUMO et al., 1996a), pois as caractersticas de qualidade, por ela determinadas, no so diretamente mensurveis (KITCHENHAM et al., 1996). Portanto, para que se obtenha a qualidade desejada de produtos de software, fazemse necessrios modelos que viabilizem a avaliao da qualidade desses produtos. Segundo STAA (1987), no mais tolerado o uso de modelos artesanais na elaborao de programas, pois necessrio assegurar um nvel elevado de qualidade de produtos de software.
15
e confiveis por qualquer parte interessada (ISO, 1987). A satisfao dos usurios e o retorno econmico so, tambm, importantes consideraes que devem conduzir efetivamente a avaliao da qualidade de um produto de software (KUMAR et al., 1992). A avaliao da qualidade de software pode ser feita em vrias etapas: (i) definio dos requisitos de qualidade, (ii) seleo de mtricas e definio de nveis de graduao, (iii) medio e graduao, (iv) estimativa (DROMEY, 1996, BOEGH et al., 1992, BOEGH et al., 1993, MIYOSHI et al., 1993). Sem um conjunto bem definido de requisitos de qualidade, os projetos de software tornam-se vulnerveis a falhas (BOEHM et al., 1996). Para a anlise e a robustez de novos projetos de software, podem ser usados requisitos de qualidade de projetos j concludos, com caractersticas semelhantes (BOLOIX et al., 1995). A quantificao dos nveis de requisitos de qualidade implica na escolha de mtricas apropriadas e na definio de modelos para medir essas mtricas (MAININI et al., 1990). Os modelos devem mapear a realidade, e/ou os requisitos pretendidos pelo usurio, enfocando as mltiplas questes referentes construo do produto, e monitorando possveis desvios. Neste contexto, os modelos de avaliao da qualidade esto diretamente associados com o processo de medio, determinando como as medidas sero executadas e planejadas (OLIV et al., 1996). Um bom mtodo de desenvolvimento no garante, necessariamente, um produto de qualidade. Deve-se considerar, tambm, fatores de suporte deciso, como a qualidade da equipe de desenvolvimento, e a presso do tempo sob a qual os elementos da equipe devem trabalhar (STRIGINI, 1996). Ganhos significativos em qualidade de software no sero alcanados at que haja um modelo compreensivo e disponvel de qualidade de produto. O maior desafio na proposio de um modelo de qualidade de software encontrar uma estrutura que possa acomodar a riqueza do conhecimento disponvel sobre qualidade, de forma que seja construtivo, refinvel e intelectualmente gerencivel. Neste contexto, um modelo deve fornecer (DROMEY, 1995):
16
orientao sistemtica para o desenvolvimento de produtos de software de qualidade; recursos para identificar e classificar caractersticas de qualidade e defeitos em software; uma estrutura que seja inteligvel, refinvel e adaptvel em uma camada de nveis. Tm surgido vrios modelos para avaliao da qualidade de software, como, por exemplo, o Paradigma GQM (BASILI et al., 1987), o Projeto SCOPE (BOEGH et al., 1993), e o Modelo Rocha (ROCHA, 1983). II.2.2.1.1 O Paradigma GQM O paradigma GQM (Goal/Question/Metric) uma estrutura para o desenvolvimento de um programa de mtricas: definio, planejamento, construo, anlise e feedback. Foi desenvolvido para vrias reas de estudo, especialmente aquelas concernentes a questes de melhoramento, e consiste nas trs etapas seguintes (BASILI et al., 1994, BASILI et al., 1987): Gerar um conjunto de alvos: baseando-se nas necessidades da organizao, determina-se o que se quer melhorar e, ento, definem-se alvos em termos de propsitos, perspectivas e ambientes, usando-se modelos genricos. i. Propsito: manuseia (caracteriza, avalia, prediz, etc.) o objeto (processo, produto, modelo, mtrica, etc.), com o propsito de entender (estimar, gerenciar, melhorar, etc.) esse objeto. ii. Perspectiva: examina custo, correo, defeitos, mudanas, mtricas de produto, confiabilidade, etc. sob o ponto de vista do desenvolvedor, gerente, cliente, etc. iii. Ambiente: consiste em fatores (de processo, pessoas, problemas, etc.) e mtodos, ferramentas, restries, etc. Derivar um conjunto de questes: as questes quantificam os alvos como sendo possveis, requerendo a interpretao de termos nebulosos, dentro do contexto do ambiente de desenvolvimento. As questes so classificadas como sendo relacionadas a produtos ou processos e fornecem feedback da perspectiva de qualidade.
17
Desenvolver um conjunto de mtricas: essas mtricas fornecem as informaes necessrias para responder a cada questo. As mtricas podem ser objetivas e subjetivas e possuem guias de interpretao, isto , um valor que indique se o produto de alta qualidade. Geralmente, uma questo no respondida simplesmente por uma mtrica, mas por uma combinao de mtricas. Uma vez definidos os alvos, derivadas as questes, e desenvolvidas as mtricas, so criadas matrizes para relacionar alvos/questes/mtricas.
II.2.2.1.2 O Projeto SCOPE Na estrutura de pesquisa e desenvolvimento do Projeto Esprit, o projeto que trata das questes de certificao da qualidade de produtos de software chamado SCOPE (Software CertificatiOn Programme in Europe). Um dos mais importantes resultados desse projeto a definio de uma estrutura de avaliao, que tem sido experimentada em muitos estudos de caso. A avaliao realizada para vrios ciclos de vida, atravs do uso de diversas classes de mtricas como o tamanho, a estrutura de fluxo de controle, a modularidade e fluxo de informao, a estrutura de dados, a eficincia e complexidade de algoritmos, e medidas gerais de complexidade. Os principais objetivos do Projeto SCOPE so (BAZZANA et al., 1993): elucidar o relacionamento entre fornecedores e clientes, atravs de procedimentos de definio, permitindo concesses de um selo de qualidade, quando um produto possui um determinado conjunto de atributos de qualidade; desenvolver tecnologias de avaliao eficientes e efetivas, para a concesso do selo de certificao; promover a divulgao de modernas tecnologias de engenharia de software, para que sejam usadas durante o desenvolvimento de produtos de software. II.2.2.1.3 O Modelo Rocha O Modelo Rocha (ROCHA, 1983) para qualidade de produtos de software, define qualidade a partir dos seguintes conceitos: 1. Objetivos da qualidade: so as propriedades gerais, que o produto deve possuir.
18
2. Fatores de qualidade: determinam a qualidade na viso dos diferentes usurios do produto. Podem ser compostos por subfatores, quando estes no definem completamente, por si s, um objetivo. 3. Critrios: so atributos primitivos, possveis de serem avaliados. 4. Processos de avaliao: determinam o processo e os instrumentos a serem utilizados, de forma a se medir o grau de presena, no produto, de um determinado critrio. 5. Medidas: so o resultado da avaliao do produto, segundo os critrios. 6. Medidas agregadas: so o resultado da agregao das medidas obtidas ao se avaliar de acordo com os critrios, e quantificam os fatores. Os objetivos de qualidade so atingidos atravs dos fatores de qualidade, que podem ser compostos por subfatores. Objetivos, fatores e subfatores no so, diretamente, mensurveis e s podem ser avaliados atravs de critrios. Um critrio um atributo primitivo. Nenhum critrio isolado uma descrio completa de um determinado fator ou subfator. Da mesma maneira, nenhum fator define completamente um objetivo. O Modelo Rocha foi utilizado para definir qualidade em especificao de requisitos (CLUNIE, 1987), especificaes de requisitos e projetos orientados a objetos (CLUNIE, 1997), especificaes de projeto (PASSOS, 1991) e cdigo (BELCHIOR, 1992a, ANDRADE, 1991). Segundo Chung (CHUNG et al., 1995), os modelos para avaliao da qualidade de produtos de software devem considerar, tambm, as caractersticas peculiares dos domnios de aplicao (TERVONEN, 1996, BAZZANA et al., 1993), definindo um conjunto de requisitos da qualidade e seus processos de avaliao. Neste contexto, o Modelo Rocha foi utilizado, tambm, para definir vrios domnios de aplicao, juntamente com seus processos de avaliao: software cientfico (COMMERLATO, 1994, BAHIA, 1992, PALERMO et al., 1989), software financeiro (BELCHIOR, 1992b), software educacional (CAMPOS, 1994a, CAMPOS, 1994b), sistemas especialistas (OLIVEIRA, 1995b), software mdico (CARVALHO, 1994), sistemas de informao (BLASCHEK, 1995), sistemas de acesso pblico (VALLE, 1997) e software orientado a objetos (CLUNIE, 1997, COELHO, 1997). No captulo IV,
19
o Modelo Rocha estendido, para suportar a utilizao da teoria fuzzy, na avaliao de produtos de software. A medio a pedra angular de modelos industriais, que retratam um processo estvel e divisvel em um nmero de etapas, onde o processo monitorado e medies so realizadas e comparadas, para a padronizao de suas caractersticas (DUNN, 1990). As mtricas so, por conseguinte, inseparveis do modelo de desenvolvimento de produto de software (ROMBACH, 1990).
20
CARD et al., (1990) define mtricas como uma escala de valores possveis, que corresponde s variaes observadas, em uma determinada caracterstica. KARISSON (1995) afirma que as mtricas so valores, que avaliam uma ou mais caractersticas de um produto. INCE (1990) conceitua mtricas de qualidade de software como medidas numricas, empregadas para quantificar vrios aspectos de um produto de software. MARIANO (1996) considera as mtricas de software como nmeros que, de alguma forma, caracterizam o software produzido ou o processo, que utilizado para produzi-lo. Para MOONEY (1993), as mtricas definem uma base para medies quantitativas de propriedades relevantes e atividades de desenvolvimento e manuteno de software. Embora no haja concordncia universal na teoria de medio, os enfoques so voltados para as seguintes consideraes (FENTON, 1994): o que e o que no medio; que tipos de atributos podem ou no podem ser medidos e em que tipo de escala; como se sabe se um atributo foi realmente medido; como definir escalas de medidas; quando uma margem de erro aceitvel ou no; que declaraes sobre medio so significativas. Um modelo estrutural para medio de software permite descrever os objetos envolvidos na medio e seus relacionamentos como (KITCHENHAM et al., 1995): Entidades: so os objetos observados no mundo real, que so capturados em suas caractersticas e manipulados formalmente. Por exemplo, produtos e processos. Atributos: so propriedades que as entidades possuem. Para um dado atributo, h um relacionamento de interesse no mundo emprico, que, formalmente, se quer apreender no mundo matemtico. Relacionamento entre entidades e atributos: uma entidade pode ter vrios atributos, enquanto que um atributo pode qualificar diferentes entidades. Quando se mede um atributo, aplica-se uma unidade de medida especfica a uma entidade, para se obter um valor correspondente. Quando se considera unidades de medidas, necessrio conhecer os tipos de escala mais comuns: nominal, ordinal, intervalar e proporcional (FENTON et al., 1991).
21
A estrutura das mtricas de qualidade introduz categorias, que se estendem atravs das fases do ciclo de vida do produto, sendo independente do mtodo de desenvolvimento (MLLER, 1993).
22
indicando, simplesmente, o estado atual do produto. Por exemplo, a medio do nmero de falhas de testes (SCHNEIDEWIND, 1995), em um perodo de tempo, pode indicar a confiabilidade do software. Existem, tambm, as mtricas de produto (PONNAMBALAM, 1996,
BERTOLINO et al., 1996, LIGGESMEYER, 1995, BROEK et al., 1995, BIEMAN, 1994, BACHE et al., 1994, INCE, 1990, McCABE, 1976) e as mtricas de processo (MLLER, 1993, MOONEY, 1993, INCE, 1990). As mtricas de produto indicam, objetivamente, caractersticas mensurveis do produto de software tal como tamanho, complexidade, acoplamento (PONNAMBALAM, 1996). As mtricas de processo medem aspectos de desenvolvimento e manuteno e so, geralmente, usadas para caracterizar os custos destas atividades, como, por exemplo, quo efetivo o processo de remoo de defeitos (MOONEY, 1993). PONNAMBALAM (1996) considera, tambm, mtricas de projeto, como sendo da mesma importncia que as mtricas de produto e de processos. As mtricas de projeto mensuram caractersticas de projeto e sua execuo como, por exemplo, o custo, o cronograma e o nmero de desenvolvedores de software. MUNSON (1995) sugere uma taxonomia para atributos de software, envolvendo alm das mtricas de processo e de produto, tambm, mtricas de pessoal e de ambiente. As mtricas de pessoal consideram os recursos humanos, ao longo do processo de desenvolvimento. As mtricas de ambiente quantificam as circunstncias fsicas, que se referem organizao. Na concepo de MLLER (1993), as mtricas podem ser classificadas, ainda, em mtricas globais e mtricas de fase. Mtricas globais so indicadores de alto nvel, que se disseminam ao longo do processo de desenvolvimento do software, fornecendo direcionamentos para os gerentes. Mtricas de fase so indicadores somente para fases especficas do processo de desenvolvimento do produto de software. A qualidade de software geralmente expressa em funo de diversas mtricas de software, onde diferentes ndices (COLEMAN et al., 1994) medem diferentes aspectos de qualidade (PONNAMBALAM, 1996, OMAN et al., 1994). Na prtica, com o processo de medio, deseja-se saber se um bom software um bom negcio
23
(KITCHENHAM et al., 1996). A seguir, apresentar-se- as principais caractersticas das mtricas de qualidade.
24
Poltica: o programa de mtricas deve ser bem estruturado, e imune a mudanas infundadas, procurando evitar ofensas a sentimentos pessoais ou causar impactos moralmente negativos (KITCHENHAM et al., 1986). Disponibilidade de dados histricos: altamente desejvel que as mtricas possam utilizar dados, previamente coletados pela organizao, para identificar com destreza o estado corrente de prtica dessa organizao, e seus alvos. Conformidade com o processo de desenvolvimento do produto: as mtricas selecionadas devem estar de acordo com o processo de desenvolvimento do produto de software, apontando reas desse processo, que possam ser melhoradas. Alvos de melhoria do processo: eleger um conjunto de mtricas, que dem suporte aos alvos de melhoria de processo, atravs de um plano coerente. Pacincia: pacincia e persistncia devem ser caractersticas de desenvolvedores de um programa de mtricas, pois muitos dados de mtricas, altamente valorosos para a melhoria de muitos processos, somente podem ser coletados ao longo dos anos. As caractersticas tcnicas das mtricas aplicam-se definio da prpria mtrica (MLLER, 1993): Nmero limitado: recomendado um nmero limitado de mtricas (cinco ou menos), para facilitar o seu uso e visibilidade, pela equipe de desenvolvimento. Facilidade de clculo: as mtricas devem ser prontamente calculadas, para poderem ser identificadas ou preditas com rapidez, quando um processo de desenvolvimento de software exibe uma tendncia negativa. Disponibilidade de dados: os dados usados nos clculos das mtricas devem estar acessveis. Preciso na definio: as mtricas selecionadas devem ser precisas e suas definies inteligveis. Apoio de ferramentas: as mtricas devem estar apoiadas por ferramentas acessveis, resultando num menor esforo manual na coleta e publicao de dados.
25
Experimentao: de bom alvitre que os desenvolvedores experimentem cuidadosamente as mtricas, que utilizam, podendo substitu-las por outras mais consistentes, quando necessrio. Padronizao: a identificao de padres , extremamente, difcil devido larga variao encontrada nos diferentes tipo de desenvolvimento de aplicaes de software, e ausncia de uniformizao de seus processos. Muitas organizaes usam mtricas, mas falta-lhes um enfoque sistemtico para a coleta e anlise de dados, alm de no darem importncia suficiente e necessria interpretao do uso dessas mtricas, nem questo da padronizao das mesmas (KITCHENHAM, 1990a). Na avaliao do uso de mtricas de software, importante considerar a qualidade das prprias mtricas (SHAW, 1981). Segundo WATTS (1987), as caractersticas que tornam uma mtrica de software de qualidade so: Objetividade: os resultados so independentes de seu medidor; Confiabilidade: os resultados so repetveis e precisos; Validabilidade: os resultados medem as caractersticas pretendidas; Padronizao: a mtrica no possui ambigidades, seguindo um mesmo padro;
Comparabilidade: pode ser comparada com outras medidas para os mesmos
critrios; Economia: a mtrica parcimoniosa e simples em sua utilizao; Utilidade: a mtrica deve comunicar uma necessidade e no simplesmente uma medida para seu prprio fim; Consistncia: a mtrica no deve combinar fatores conflitantes entre si; Automao: a mtrica deve ser mensurvel, atravs de ferramentas apropriadas. H relatos na literatura, que mostram aplicaes de mtricas em ambientes industriais, que tiveram xito na melhoria de processos de desenvolvimento e de produtos de software em KHOSHGOFTAAR et al. (1996), STARK et al. (1994) e GRADY (1994), aumentando a credibilidade na cincia das mtricas. No entanto, ainda existem muitas questes no resolvidas no uso de mtricas de software em aplicaes do mundo real (PONNAMBALAM, 1996).
26
27
de alta qualidade. Portanto, a deciso de rejeitar um item e o mtodo apropriado de reparar so problemas distintos. A indstria de software no pode se basear apenas em distribuies estatsticas convencionais (mdia e desvio padro), para identificar intervalos de medidas, porque as mtricas de software so, invariavelmente, dependentes do produto desenvolvido. Alm disso, os itens de software, que esto sendo mensurados, usualmente no so obtidos de um experimento aleatrio de itens equivalentes. Um problema adicional que, normalmente, o controle da qualidade est baseado em medidas simples. Entretanto, muitos componentes de software somente so de fato avaliados, quando vrios valores de mtricas so agregados. Diferentes observadores de um mesmo produto de software podem obter diferentes medidas, ainda quando a mesma propriedade medida. Os usurios, por exemplo, estimam a qualidade do produto em termos de sua interao com o produto final, isto , esto interessados na confiabilidade e na usabilidade. J a qualidade, segundo a viso da produo, sugere duas caractersticas de medida: contagem de defeitos e custo de retrabalho (KITCHENHAM et al., 1996). A utilizao de mtricas de qualidade, tambm, oferece algumas limitaes (CONTE, 1986): a medio deve ser consistente, com o mnimo de subjetividade, e apoiada em definies precisas, de modo que a anlise dos dados no seja prejudicada; alguns ambientes requerem um ajuste das mtricas utilizadas, para que se reduzam as possibilidades de falhas no processo de avaliao; as mtricas auxiliam no processo de tomada de deciso, todavia no substituem o gerente; as mtricas avaliam o desempenho do produto e no da equipe tcnica. No obstante as mtricas tenham-se mostrado eficientes para auxiliar o desenvolvimento de software, muitos engenheiros de software ainda relutam em utilizlas, pois temem que sejam aplicadas para avaliar o seu prprio desempenho. Isto gera um sentimento de rejeio ao uso de mtricas ou promove a manipulao de nmeros ou do prprio produto de software, para que os alvos da medio sejam alcanados (ZAGE et al., 1995). Neste sentido, GRADY (1992) alerta que as mtricas no sero
28
consistentes e suficientemente definidas, quando algum considera que o uso delas para medir e avaliar pessoas. Um dos propsitos do uso de mtricas , tambm, identificar os aspectos fortes e frgeis da organizao e prover recomendaes para melhorias, baseadas em laudos de estimativa, que forneam organizao uma linha bsica, confrontada por prticas aceitas como adequadas pela indstria de software (MILLER et al., 1993). II.3.3.1 As Medies por Estimativas Na indstria de software, mais do que em outras reas, decises importantes podem depender de julgamentos subjetivos. difcil obter critrios objetivos para essas decises, porque faltam modelos matemticos do comportamento do produto ou dados estatsticos sobre experincias passadas. O argumento para a aceitao de um produto de software deve fundamentar-se, sempre que possvel, em resultados de testes, na solidez das prticas usadas na engenharia de software, principalmente, no rigor da documentao, e no controle da configurao (STRIGINI, 1996). Se os julgamentos subjetivos forem reforados com anlises cientficas podero ter sua confiabilidade incrementada. Entretanto, todo mtodo cientfico, no auxlio a tomada de deciso, tambm, possui suas limitaes, pois as informaes empricas no podem predizer o futuro com absoluto grau de certeza. Alinhando-se os julgamentos subjetivos disciplina cientfica, possvel concluir que deve-se (STRIGINI, 1996): usar mtodos quantitativos, sempre que possvel; projetar experimentos cujos resultados dependam, mais de fatos concretos do que de influncias individuais; explorar como o uso da teoria pode ser refutado por experimentos; verificar a consistncia das conjecturas sobre si mesmas e com fatos conhecidos. Psiclogos, reportando-se a julgamentos intuitivos, tm observado que (AYTON, 1993): no se pode esperar que pessoas sem a devida preparao possam resolver corretamente problemas de intuio em domnios estatsticos e probabilsticos, especialmente, quando as questes so formuladas indiretamente;
29
um especialista geralmente far melhores predies, em sua rea de atuao do que um no especialista. Uma das vantagens de estimativas obtidas de especialistas que estes conhecem a fora potencial e as deficincias do objeto julgado, e como estud-las. A desvantagem que, por conhecer muito, o especialista pode no reconhecer obstculos que impediriam o uso do software por usurios novos ou advindos de outras reas. Em geral, especialistas, que realizam boas estimativas, possuem um razovel conhecimento do ambiente, alm de: (i) fazerem prognsticos freqentemente, (ii) receberem rpidos feedback sobre seus sucessos ou erros, (iii) serem treinados em questes especficas, e (iv) executarem medies. Na realizao de estimativas subjetivas, deve-se tomar alguns cuidados com relao ao questionrio a ser aplicado (STRIGINI, 1996): as questes devem estar expostas claramente e sem ambigidades; as frases das questes formuladas devem ser variadas para ser possvel a verificao de interpretaes intuitivas errneas; desenvolver implicaes das hiptese formuladas, procurando evidncias de refutao. O uso de padres largamente aceitos e reconhecidos pode auxiliar de sobremaneira nas medies por estimativas. Neste sentido, o padro IEEE Std 1061-1992 fornece uma metodologia para o estabelecimento de requisitos de qualidade e identificao, implementao, anlise e validao de mtricas de qualidade de software, aplicada s fases de seu ciclo de vida. Esse padro de mtricas pode ser empregado por uma organizao, em suas aplicaes, independentemente de suas mtricas particulares, mas essencial que essas medidas sejam validadas (SCHNEIDEWIND, 1993).
30
Na opinio de GRADY (1992), mtricas que no estejam mensuradas e provadas no deveriam ser aceitas como engenharia de software, devendo haver uma anlise rigorosa que as validasse. O propsito da validao identificar mtricas de produto e processo, que possam predizer fatores de qualidade especificados, que sejam representaes quantitativas de requisitos de qualidade. As mtricas devem indicar, acuradamente, se os requisitos de qualidade foram alcanados ou se, provavelmente, o sero (SCHNEIDEWIND, 1993). Segundo a teoria das medidas, pode-se eleger dois nveis de validao: interna e externa. Uma medida de software internamente vlida, se fornece uma caracterizao numrica de algum atributo intuitivamente entendido, e que no seja dependente do ambiente. Em todos os casos, deve-se saber em que aspecto, o produto (ou processo) de uma dada medida, foi definido e se h um modelo formal para tal definio (garantindo a no ambigidade). Uma medida de software externamente vlida, se pode ser vista como sendo um importante componente ou preditor de qualquer atributo de software de interesse, isto , de um atributo dependente de um ou mais aspectos do ambiente, mesmo que no possa ser diretamente mensurvel (FENTON, 1990). Para decidir se uma medio vlida, necessita-se assegurar a (KITCHENHAM et al., 1995): validade do atributo: investiga-se se o atributo de interesse exibido pela entidade, que se est medindo, considerando-se medidas diretas ou indiretas. validade da unidade: averigua-se se a unidade de medio usada, tem um significado condizente com a medio do atributo; validade do instrumento: certifica-se a validade do modelo de medio, e se o instrumento de medio est calibrado apropriadamente; validade do protocolo: verifica-se se o protocolo de medio adotado aceitvel. Uma mtrica de software, para ser considerada vlida, deve demonstrar um alto grau de correlao (KHOSHGOFTAAR et al., 1996) com os fatores de qualidade que representa. Uma mtrica pode ser vlida com relao a certos critrios de validade e invlida com relao a outros critrios, como os que seguem, para produtos ou processos (SCHNEIDEWIND, 1993):
31
correlao: a variao dos valores de um fator de qualidade deve estar em um intervalo especificado; rastreabilidade: a alterao do valor de um fator de qualidade deve ser acompanhada por uma alterao correspondente no valor de uma mtrica; consistncia: se h uma ordenao de valores dos fatores de qualidade, ento os valores das mtricas correspondentes devem ter a mesma ordenao; prognosticao: se a mtrica usada para predizer um fator de qualidade, seu prognstico deve ter uma acurcia especfica; fora discriminativa: uma mtrica deve ser capaz de discriminar produtos ou processos de alta ou baixa qualidade; confiabilidade: uma mtrica deve demonstrar as propriedades da correlao, rastreabilidade, consistncia, prognosticao e fora discriminativa, descritas acima, para uma percentagem especificada de suas aplicaes. As mtricas de qualidade de software so dotadas de potencial para auxiliar na garantia da qualidade de grandes projetos. A validao dessas mtricas tem o propsito de controlar e avaliar a qualidade de software, durante o projeto (SCHNEIDEWIND, 1993).
32
proporcionar um conjunto bsico de ferramentas para facilitar as atividades de coleta de dados; definir um conjunto de requisitos, documentando os conceitos de qualidade para o projeto em desenvolvimento, no contexto da organizao; elaborar um sistema consistente de revises. As revises so uma importante tcnica de controle, para a garantia da qualidade de um produto, evitando que engenheiros de software gastem tempo e recursos, projetando e construindo um produto errado. As revises podem identificar defeitos e promover sua reparao a baixo custo, desde as primeiras fases do processo de desenvolvimento (WEINGBERG, 1993). A seguir, so apresentadas algumas tcnicas de controle de qualidade.
33
Assemelhando-se ao walkthrough, tem-se a tcnica de inspeo (FAGAN, 1976), embora seja mais formal por estar embasada em critrios para avaliao de caractersticas de qualidade, definidos previamente. As inspees so parte de um processo de engenharia, isto , o produto repetidamente examinado por outros engenheiros, para descobrirem erros ou defeitos remanescentes no projeto (VOTTA et al. 1993). As inspees suportam a anlise de dados, durante o ciclo de desenvolvimento de um produto de software (KIRKHAM, 1996), desempenhando um importante papel na reduo de falhas estruturais no esperadas (IBRAHIM, 1992). A inspeo um procedimento de reviso estruturado, cobrindo, por vez, uma pequena poro do produto, por uma equipe de revisores, que varia de quatro a seis participantes (MASHAYEKHI, 1993, FAGAN, 1986). Pode ser realizada em vrias etapas: planejamento, preparao, reunio e apresentao. Na etapa de apresentao, os desenvolvedores exibem todo o material a ser inspecionado, destacando o que deve ser analisado, em torno de trinta minutos. Os inspetores devem analisar o material de acordo com a lista de critrios definida previamente. O narrador sumariza cada seo do material, para assegurar que todos os critrios definidos foram considerados. No final da reunio, a lista de todos os critrios deve ter sido analisada, trazendo respostas consensuais a todas as questes, sendo decidido a aceitao ou no do produto, podendo haver outras inspees. YOURDON (1989) e HUMPHREY (1989) desenvolveram alguns enfoques, onde os membros da equipe, com o conhecimento tcnico requerido para detalhar a inspeo, preparam-se individualmente, assistem reunio de inspeo, e descobrem defeitos que resultam em itens de ao. Na Tcnica de Yourdon, os revisores lem o material em questo e descrevem, informalmente, defeitos e referncias. Os revisores so, tambm, encorajados a anotar aspectos positivos do material apreciado. Na Tcnica de Humphrey, cada revisor cria uma lista de defeitos e a entrega para o produtor do material antes do encontro, que relaciona os defeitos e os apresenta na reunio de inspeo. H, tambm, uma reunio introdutria opcional, durante a qual os participantes revisam os materiais anteriores e os critrios da inspeo.
34
As reunies so consideradas como um ponto central nas inspees. VOTTA et al. (1993) cita algumas razes importantes para as reunies de inspeo, dispostas em ordem decrescente de freqncia: i. Sinergia: a interao entre os revisores, conduz identificao de muitos defeitos durante a reunio, que no foram identificados pelos revisores individualmente, ao se prepararem para um reunio. ii. Formao: os revisores de menor experincia aprendem com os revisores de maior experincia, ao longo do processo de inspeo. iii. Prazo final de planejamento: a inspeo cria um evento planejado, para que os participantes possam trabalhar convenientemente. iv. Incentivo: os participantes da reviso publicam suas contribuies e ganham a estima de seus examinadores e, portanto, esforam-se por melhorar a si mesmos. v. Requisitos: o documento do processo de inspeo especifica que a reunio deve trazer coletados os comentrios dos revisores. KNIGHT et al. (1993) sugeriu a inspeo por fases, que uma tcnica mais disciplinada e rigorosa do que a inspeo comum, podendo ser avaliados todos os produtos gerados ao longo do processo de desenvolvimento. Cada fase da avaliao objetiva verificar se o produto possui uma ou mais propriedades, detectando possveis erros. As propriedades, j avaliadas, podem ser utilizadas em fases posteriores, servindo assim para assegurar a qualidade do produto. As avaliaes, em cada fase, podem ser feitas por inspetores individuais ou mltiplos inspetores. Com inspetores individuais, a avaliao parcial mais minuciosa, sendo controlada por uma lista de questes a serem respondidas pelo avaliador. Com mltiplos inspetores, a avaliao parcial executada para a anlise de questes subjetivas, com o objetivo de obter um consenso entre os avaliadores. As inspees tm um custo relevante e obrigam que os seus participantes se desloquem para o local da reunio. Esses custos poderiam ser reduzidos, em ambientes de reunies distribudas e colaborativas, que eliminem a necessidade de reunies face-aface. Assim, as reunies poderiam ser feitas em ambientes geograficamente distribudos, onde os participantes se reunissem atravs de suas estaes de trabalho, e onde a verso corrente de todo o material fosse acessvel via on-line (MASHAYEKHI et al., 1993).
35
36
fonte desde o princpio. Com este intuito, foi criado o mtodo cleanroom (LINGER, 1994).
Modelos baseados no domnio do tempo: faz algumas suposies bsicas como: (i) o tempo entre falhas independente, (ii) os testes so representativos do perfil operacional utilizado, (iii) novas faltas ou falhas no so introduzidas durante a correo do programa, (iv) faltas achadas durante os teste so corrigidas logo que encontradas. Modelos baseados no domnio da entrada de dados: calculam a probabilidade de um software falhar, obtida ao execut-lo com muitos casos de testes selecionados atravs de amostras do domnio de entradas do software. Modelos baseados no domnio de cobertura: concebem testes funcionais sem considerar o perfil operacional, sendo que a taxa de deteco de faltas alcanada atravs das faltas remanescentes e da cobertura obtida. Notoriamente, para se obter uma qualidade consistente de software, necessita-se controlar os processos de produtos e servios, atravs de tcnicas para este fim. No entanto, no se pode controlar acuradamente um processo, sem que haja informaes confiveis. Para que isto seja possvel, deve-se investir na gesto da qualidade, onde se define, planeja e controla todas as aes a serem desenvolvidas, para manter a qualidade do produto (ARTHUR, 1993).
Muitas falhas, no gerenciamento da engenharia de software, so derivadas de deficincias na observao, pois, em qualidade, nada to pequeno que no merea ser observado (WEINGBERG, 1993). DEMING (1986) notou que indivduos, que no conseguem visualizar em que trabalham, certamente tero dificuldades em dar uma real contribuio qualidade. A motivao para a melhoria da qualidade sempre comea com o estudo do valor da qualidade (CROSBY, 1990), embora muitos gerentes confundam, conceitualmente, custo e valor. DeMARCO (1987) afirma que o esforo move o que contado. A contagem do custo leva reduo do custo; a contagem do valor conduz a um aumento do valor. Questes relacionadas ao custo so limitadas pelo oramento da organizao; o incremento do valor de um produto no tem limites. Neste contexto, tem-se utilizado vrias tcnicas de benchmarking (GILB, 1996, DARKIN, 1996), para que seja alcanado um desempenho superior em reas crticas de trabalho, auxiliando no aprendizado de inovaes e melhorando as prticas j existentes (DALE et al., 1992). A qualidade deve ser perseguida dentro da organizao, pois, com certeza, isto o que os usurios esperam de um produto. Neste contexto, para que a gesto da qualidade seja eficaz e efetiva, necessria a instalao de um programa de qualidade, dentro da organizao. No entanto, a implementao desse programa de qualidade requer, sobretudo, vontade poltica de seus dirigentes e, para que isto acontea, necessrio que estes estejam despertados para este propsito.
para implementar a qualidade em todas as atividades. O aspecto cultural est diretamente relacionado com a aceitao da qualidade por todos os indivduos da organizao. Para se iniciar um programa de qualidade pode-se seguir as seguintes etapas (SANDERS et al., 1994): Prepararo de uma poltica de qualidade: a iniciativa da elaborao de um programa de qualidade deve advir do topo da gerncia, formulando uma poltica de qualidade, a ser publicada e comunicada de tal forma que seja entendida e implementada em todos os nveis da organizao. Estabelecimento de um suporte qualidade: criao de um comit de conduo da qualidade e uma equipe de melhoria da qualidade. O comit direciona as estratgias, estabelece a equipe de melhoria da qualidade, autoriza e aprova o oramento, e fornece suporte de alto nvel para o programa de qualidade. A equipe de melhoria da qualidade estima as necessidades da organizao, e projeta, planeja e monitora o sistema de qualidade. Ainda segundo o mesmo autor, o planejamento de um programa de qualidade tem as seguintes etapas: Estimativa da organizao: medio da prtica corrente, atravs de um padro apropriado, onde a organizao seleciona o ndice que melhor lhe satisfaa. Projeto do sistema de qualidade: os resultados da estimativa da organizao so analisados, os objetivos de seu sistema de qualidade so definidos e, ento, a equipe de melhoria da qualidade projeta-o, gerando a primeira verso do manual de qualidade. Plano de implementao do programa de qualidade: com a primeira verso do manual de qualidade, a equipe de melhoria da qualidade pode determinar o montante de trabalho necessrio para a implementao do sistema de qualidade e, convenientemente, elaborar cronogramas e atividades, estabelecer marcos e alocar recursos para este fim. Implementao de um programa cultural: para um programa de qualidade ter sucesso necessrio o suporte de toda a organizao e, para isto, um programa cultural deve ser cuidadosamente planejado e implementado desde cedo, para a formao de conscincias voltadas para a qualidade, e encorajar a participao de todos.
40
Implementao do programa tcnico: envolve (i) adoo de um ciclo de vida, (ii) desenvolvimento de procedimentos e padres, (iii) seleo e implementao de mtodos e ferramentas, (iv) definio e implementao de um programa de medio, e (v) treinamento. Reviso e avaliao: componentes do sistema de qualidade, procedimentos e padres, mtodos, ferramentas e recursos devem ser revistos regularmente e devem ser tomadas aes para assegurar sua contnua efetividade. Um plano de qualidade, como o descrito pela ISO 9000-3 (ISO, 1990), auxilia as organizaes a medir e controlar a qualidade de seus produtos de software e, para isto, deve-se considerar quatro fatores crticos (SEFCIK, 1994): Ambiente de desenvolvimento: deve facilmente incorporar mudanas, onde novas ferramentas e novos procedimentos possam ser implementados para a coleta de mtricas, documentao adicional e revises. Cronograma: deve ajustar o tempo, para a melhoria de novos processos. Utilidade: uso de anlises custo/benefcio, no gerenciamento de processos. Organizao: deve dar suporte s necessidades de melhoria de processos dos produtos de software em desenvolvimento. As organizaes, buscando a melhoria de seus processos e produtos, que tm investido em mtricas, tomam decises mais fundamentadas e em tempo hbil, e esto obtendo maior vantagem competitiva sobre outras que no o fazem (GRADY, 1992). Mas, para que este investimento seja profcuo, necessria, tambm, a criao de um programa de mtricas de qualidade na organizao, cujos benefcios se estendero no somente s aplicaes existentes, mas tambm a projetos futuros.
41
dificultando o seu uso, e tornando a prpria coleta dispendiosa (ROSENBERG et al., 1996). Os dados obtidos atravs de um programa de mtricas so teis para: (i) estabelecer objetivos, (ii) melhorar a qualidade, (iii) aumentar a produtividade, (iv) planejar, gerenciar e monitorar projetos, e (v) aumentar a confiana do usurio. Um programa de mtricas dever viabilizar estimativas, o monitoramento e a identificao de aes de melhoria, para que os objetivos de qualidade e produtividade da organizao sejam alcanados. No entanto, muitas organizaes no aceitam de imediato os conceitos para a implementao de um programa de mtricas, porque (MLLER, 1993): consideram que as mtricas podem restringir o processo criativo; geram trabalho adicional; os benefcios a serem alcanados no so bem elucidados; existem receios de que seja um meio para medir a prpria organizao; h dificuldades em admitir que a melhoria necessria. H dois grandes componentes de um programa de mtricas de qualidade: medida da satisfao do usurio e medida de defeitos. Por razes sociolgicas, os programas de mtricas so geralmente estabelecidos em seqncia, como uma tentativa de medir todos os fatores simultaneamente. A seqncia de medio abaixo tem sido utilizada com sucesso (JONES, 1991): i. Medidas operacionais: envolvem principalmente as medidas de uso do computador, tempo ocioso de mquina e tempo de resposta. ii. Medidas do projeto atual: acompanham o projeto em desenvolvimento. iii. Medidas de biblioteca: referem-se produo de relatrios de ocorrncia. iv. Medidas da satisfao do usurio: reportam-se a entrevistas com os usurios. v. Medidas do projeto completo: medem o projeto final. vi. Medidas de fatores imprecisos: referem-se a dados sem alto grau de preciso. vii.Medidas de defeitos: mensuram os defeitos do software. viii. Medidas demogrficas: arrolam os recursos humanos, enquadrando-os em classes de habilidades relevantes para a organizao.
42
A organizao precisa certificar-se das vantagens geradas pela instalao e manuteno de um programa de qualidade, e de um programa de mtricas de qualidade. essencial, portanto, que ela saiba o quanto custa melhorar e manter a qualidade desejada de seus produtos e servios. Alm disso, importante, tambm, que estejam bem identificadas todas as reas, que devam ser atacadas neste processo, para que os custos sejam reduzidos.
43
tentativa de alcanar produtos de alto valor qualitativo e a um custo aceitvel, entre outras alternativas, surgiu o gerenciamento da qualidade total (Total Quality Management - TQM) (DEMING, 1989).
44
Muitos gerentes, apesar de seus mritos pessoais e tcnicos, no utilizam todo o potencial, que a informtica lhes pode oferecer, nem dispem das habilidades administrativas necessrias, para gerirem adequadamente os recursos humanos de que dispem. Alm destes agravantes, no possuem uma viso gerencial macroscpica dos processos organizacionais da empresa, seja por falta de iniciativa prpria, pelas dificuldades internas de obter tais informaes, ou at pela ausncia desses dados (BELCHIOR, 1995a).
45
II.6 Concluso
No desenvolvimento de produtos de software, muitas decises importantes ainda dependem de julgamentos subjetivos. Faltam modelos matemticos do comportamento do produto e no se tem dados disponveis sobre experincias passadas. Se os julgamentos subjetivos fossem reforados com anlises cientficas poder-seia aumentar a confiabilidade do software (STRIGINI, 1996) e, conseqentemente, garantir a qualidade do produto. No captulo seguinte, apresentar-se- alguns enfoques sobre a teoria fuzzy, na tentativa de fornecer um suporte matemtico subjetividade das estimativas, realizadas na avaliao da qualidade de um produto de software.
46
Captulo III
ENFOQUES SOBRE A TEORIA FUZZY
A teoria dos conjuntos fuzzy (nebulosos) usada para representar modelos de raciocnio impreciso, que possuem um papel essencial na notvel habilidade humana de tomar decises racionais, em ambientes de incertezas e imprecises (ZADEH, 1988). A principal motivao da teoria dos conjuntos fuzzy o desejo de construir uma estrutura formal quantitativa, capaz de capturar as imprecises do conhecimento humano, isto , como esse conhecimento formulado na linguagem natural. Essa teoria visa ser a ponte, que une modelos matemticos tradicionais, precisos, de sistemas fsicos, e a representao mental, geralmente imprecisa, desses sistemas (DUBOIS, 1991). A mente humana opera com conceitos subjetivos tais como alto, baixo, velho e novo, que so incorporados em classes de objetos na teoria fuzzy, onde a pertinncia ou no de um elemento a um conjunto d-se de forma gradual e no abrupta (ZADEH, 1990). Com o advento dessa teoria, obteve-se substanciais instrumentos, para a representao de vrias facetas cognitivas humanas (YAGER, 1991). Ela prov ferramentas robustas para a aplicao do conhecimento, da experincia e do pensamento humano em muitos sistemas industriais, de trfego, cincia mdica, entre outros (SUZUKI, 1993). GILES (1988) levanta dois enfoques, igualmente importantes, para a formulao da teoria dos conjuntos fuzzy: o axiomtico e o semntico. No axiomtico, uma funo numrica usada para modelar o conjunto fuzzy, fornecendo uma interpretao consistente para o mesmo, embora no evidencie, diretamente, a estrutura sob esse conjunto (FRENCH, 1989, FRENCH, 1986). Para a adoo de certas definies de operaes de conjuntos fuzzy, condio necessria e suficiente que essas definies
46
sejam avaliadas por vrios pesquisadores (BELLMANN et al., 1973) e que se utilizem do enfoque axiomtico. No enfoque semntico, analisado, empiricamente, o significado fsico dos conceitos do sistema envolvido, modelando-os atravs de conjuntos fuzzy. Esses conceitos so precisamente formulados como axiomas quantitativos, produzindo no somente uma teoria consistente, mas, tambm, uma interpretao especfica dos mesmos. Esse enfoque pode, ainda, ser dividido em mtodos normativos e descritivos (FRENCH, 1986). O mtodo normativo conjectura como as pessoas poderiam organizar seus julgamentos em uma situao particular, atravs de conjuntos fuzzy. O descritivo (mais usado) investiga como de fato as pessoas realizam seus julgamentos (SDORRA et al., 1993). Ambos os enfoques, axiomtico e semntico, tm sido reportados na literatura atual em medidas de funes fuzzy ou simplesmente funes de pertinncia. Enfoques hbridos tm sido mencionados, onde mtodos experimentais foram usados em conjuno com os formais, testando e validando suas hipteses e conseqncias (TURKSEN, 1991). A seguir, sero abordados alguns conceitos da teoria dos conjuntos fuzzy, que daro suporte ao propsito deste trabalho, isto , a aplicao dessa teoria na avaliao da qualidade de software.
47
Qualquer representao adequada de um conjunto fuzzy envolve o entendimento bsico de cinco smbolos conceituais diferentes, relacionados entre si (TURKSEN, 1991):
adjetivo ou a um advrbio, como estoque baixo, relacionado com possveis nveis de estoque de uma empresa.
Conjunto referencial X [-, ]: um atributo particular de V, num conjunto de
elementos , como, por exemplo, [250, 750] unidades para nvel de estoque.
Grau de pertinncia (): valor de pertinncia de um elemento em relao ao
conjunto de elementos, rotulado por uma varivel lingstica V, e identificado pelo termo lingstico T. Por exemplo, seja o valor de pertinncia dado por um gerente a estoque, atravs do adjetivo baixo, envolvendo os nveis de estoque sob seu gerenciamento. Os conceitos bsicos de conjuntos fuzzy, apresentados a seguir, esto baseados em (KLIR et al., 1995a, ZIMMERMANN, 1991, FUHRMANN, 1990, KLIR et al., 1988, DUBOIS, 1980, ZADEH, 1965). Funo de pertinncia A funo de pertinncia o componente crucial de um conjunto fuzzy, e muitas operaes so definidas em conformidade com ela (ZADEH, 1965). Muitas vezes, a estimao da funo de pertinncia (x), em situaes do mundo real, vem de informaes imprecisas e incompletas. Dado um conjunto fuzzy , duas notaes so comumente empregadas, para caracterizar essas funes: (x) : X [0, 1] ou : X [0, 1]
48
De acordo com a primeira notao, o identificador do conjunto fuzzy distinguido do smbolo de sua funo de pertinncia (x). Na segunda, esta distino no feita. No entanto, no h ambigidades nos resultados desta dupla utilizao, pois cada conjunto fuzzy completa e unicamente definido por uma funo de pertinncia particular e, conseqentemente, identificadores das funes de pertinncia podem ser tambm usados como smbolos de seus conjuntos fuzzy associados. Neste trabalho, utilizar-se- a primeira notao.
Exemplo III.1: Seja X o conjunto universo de idades, e os subconjuntos fuzzy, contidos em X, classificados como infantil, adulto, jovem, e velho, envolvendo todas as possibilidades de subconjuntos fuzzy de X, que denotado por (X), como mostra a Tabela III.1. X = {5, 10, 20, 30, 40, 50, 60, 70, 80}
IDADES 5 10 20 30 40 50 60 70 80 Infantil 0 0 0 0 0 0 0 0 0 Adulto 0 0 0,8 1 1 1 1 1 1 Jovem 1 1 0,8 0,5 0,2 0,1 0 0 0 Velho 0 0 0,1 0,2 0,4 0,6 0,8 1 1
Representao de um conjunto fuzzy Os conjuntos fuzzy prestam-se s representaes de conceitos vagos, expressados na linguagem natural, dependendo do contexto em que so usados. Usar-se-, a seguir, a formalizao de conjuntos fuzzy com suporte finito (uma das vrias existentes na literatura). Um conjunto fuzzy denotado por um conjunto de pares ordenados, em que o primeiro elemento x X, e o segundo, (x), o grau de pertinncia ou a funo de pertinncia de x em , que mapeia X para o espao de pertinncia M. Quando M contem somente os pontos 0 e 1, no-fuzzy (ZIMMERMANN, 1991):
49
= {(x, (x)) | x X}
Exemplo III.2: O conjunto fuzzy , jovens, da Tabela III.1, pode ser descrito como: = {(5; 1), (10; 1), (20; 0,8), (30; 0,5), (40; 0,2), (50; 0,1)}
Suporte O suporte de um conjunto fuzzy , em um conjunto universo X, o conjunto ntido, que contm todos os elementos de X com graus de pertinncia diferentes de zero em . ~ O suporte de um conjunto fuzzy em X, denotado por supp() ou S(), onde P (X) contem todos os subconjuntos fuzzy possveis, obtido pela funo: ~ S: P (X) P (X) onde, S() = {x X | (x) > 0}
Exemplo III.3: O suporte do conjunto fuzzy , jovem, da Tabela III.1 o conjunto ntido S() = {5, 10, 20, 30, 40, 50}
O conjunto fuzzy infantil um conjunto vazio, no conjunto universo escolhido. Neste caso, o suporte tambm vazio, isto , sua funo de pertinncia assinala 0 a todo elemento do conjunto universo. Supremo
~ ( x) , de um conjunto fuzzy o maior grau de pertinncia O supremo, sup A xX
obtido nesse conjunto por um desses elementos, isto , sua altura, h(). O contradomnio de uma funo de pertinncia um subconjunto de nmeros reais no negativos, cujo supremo finito. Ento,
~ ( x) h() = sup A xX
Normalizao Embora uma funo de pertinncia no esteja limitada ao contradomnio [0, 1], por convenincia, isto usualmente considerado como verdade, ou seja, assume-se que um
50
Conjuntos de corte- Dado um conjunto fuzzy , definido em X, a partir do grau de pertinncia [0, 1], o conjunto de corte- (-cut) o conjunto ntido A, contendo todos os elementos de X, que possuem graus de pertinncia em maiores ou iguais do que o valor especificado em . Ento, A = {x X | (x) } O conjunto de corte- robusto (strong -cut), A', inclui apenas os elementos de graus de pertinncia maiores que . Ento, A' = {x X | (x) > } Neste caso, percebe-se que o suporte de corresponde, exatamente, ao conjunto de corte- robusto de para = 0.
Exemplo III.4: Ainda em referncia Tabela III.1, os conjuntos de corte- possveis, para o conjunto fuzzy , jovem, so: A0,1 = {5, 10, 20, 30, 40, 50} A0,2 = {5, 10, 20, 30, 40} A0,5 = {5, 10, 20, 30} A0,8 = {5, 10, 20} A1,0 = {5, 10} Neste caso, o conjunto de corte- robusto para = 0,8 A = {5, 10}.
O conjunto de todos os nveis [0, 1], que representa distintos conjuntos de corte- de um dado conjunto fuzzy , definido em X, denominado conjunto de nvel de , , dado por: = { | (x) = para todo x X}
51
A seguinte propriedade pode ser deduzida dos conjuntos de corte- e corte- robusto: Qualquer conjunto fuzzy , com 1, 2 [0, 1] e 1 2, para 1 < 2, tem-se: A1 A2 e A1 A2
Em conseqncia dessa propriedade, todos os conjuntos de corte- de um conjunto fuzzy , em X, formam uma famlia de subconjuntos ntidos, aninhados em X. Convexidade A convexidade de conjuntos fuzzy definida em R , para todo n N, como sendo
n
uma generalizao do conceito de convexidade de conjuntos ntidos. Para isto requerido que os conjuntos de corte- de um conjunto fuzzy convexo sejam convexos para todo (0, 1]. Portanto, um conjunto fuzzy convexo, se todos os seus conjuntos de corte- so convexos. De forma simplificada, trabalhando-se em
onde min caracteriza o operador mnimo (trabalha com o menor valor em um conjunto de valores), um conjunto fuzzy convexo se: (x1 + (1 - )x2) min ((x1), (x2)) Cardinalidade A cardinalidade escalar ou, simplesmente, cardinalidade, | |, de um conjunto fuzzy , definido em X, o somatrio dos graus de pertinncia de todos os elementos de X em . Formalmente, ||=
xX
~ A
( x)
Para um conjunto universo infinito X, a cardinalidade, que nem sempre existe ( necessrio que (x) seja integrvel), dada por: | | = A ~ ( x)dx
x
A cardinalidade relativa, || ||, de um conjunto fuzzy depende da cardinalidade do conjunto universo considerado. Assim, deve-se escolher o mesmo conjunto universo X, caso se queira comparar conjuntos fuzzy atravs de sua cardinalidade relativa. Pode
52
ser interpretada como a frao dos elementos de X, presentes em , medidos por seus graus de pertinncia: || || = | | / | X |
Exemplo III.5: A cardinalidade escalar do conjunto fuzzy , velho, da Tabela III.1 : | | = 0 + 0 + 0,1 + 0,2 + 0,4 + 0,6 + 0,8 + 1 + 1 = 4,1 A cardinalidade escalar do conjunto fuzzy , infantil, 0. A cardinalidade relativa do conjunto fuzzy , velho, : || || = 4,1 / 9 = 0,456
Fuzificao A fuzificao (fuzzification) acontece, quando um conjunto fuzzy obtido pelo alargamento fuzzy de um conjunto ntido, isto , um conjunto ntido convertido em um conjunto fuzzy apropriado, para expressar medidas de incertezas.
Exemplo III.6: Seja o conjunto ntido A = {x | 7 < x < 10}, ento, pelo processo da fuzzificao, < < ter-se-ia o seguinte conjunto fuzzy = {x | 7 x 10}, onde o smbolo denominado um fuzzificador, e significa aproximadamente.
Defuzificao A defuzificao a converso de um conjunto fuzzy em um valor ntido (ou um vetor de valores) (OLIVEIRA, 1995a, SONG, 1994, FILEV, 1993, MABUCHI, 1993, YAGER et al., 1993a). Na literatura de controle fuzzy, predominam alguns mtodos de defuzificao (LEE, 1990), entre eles, o mtodo do centro de gravidade ou mtodo centride. Princpio da extenso O princpio da extenso utilizado para generalizar conceitos da matemtica clssica para a teoria fuzzy (ZADEH, 1973a, DUBOIS, 1980). Sejam X o produto cartesiano dos conjuntos universos X = X1, X2, ..., Xr e r conjuntos fuzzy 1, 2, ..., r em X1, X2, ..., Xr, respectivamente. Se f um mapeamento de X para um conjunto universo Y, y = f(x1, x2, ..., xr), ento, pelo princpio da extenso, pode-se definir um conjunto ~ fuzzy B em Y, onde f -1 a funo inversa de f.
53
Exemplo III.7: Sejam = {(-1; 0,5), (0; 0,8), (1; 1), (2; 0,4)} e f(x) = x2 Aplicando-se o princpio da extenso, ilustrado na Figura III.1, obtm-se:
4 3 2 1 0 -1 S()
- 4 - 3 - 2 - 1 - 0 - -1
~ S( B )
Funes fuzzy Uma funo fuzzy uma extenso do conceito de uma funo clssica f, podendo ser obtida atravs de diferentes graus de fuzificao (SASAKI, 1993, TURKSEN, 1991, ZIMMERMANN, 1991):
54
i. Mapeamento clssico de um conjunto fuzzy, que se realiza ao longo do processo de fuzificao do domnio da funo, sendo que seu contradomnio seria ntido. ii. Mapeamento fuzzy de um conjunto fuzzy, tornando seu contradomnio tambm fuzzy. Este processo conhecido como fuzzifying funes. iii. Funes ntidas podem ter propriedades fuzzy ou estarem sujeitas a restries fuzzy. Dada uma funo clssica f: X Y e um domnio fuzzy , em X, pelo princpio da ~ extenso gerada uma imagem fuzzy de B com a funo de pertinncia (DUBOIS, 1980):
B ~ ( y ) = sup ~ ( x ) A
xf
1
( y)
Em funo dos conceitos bsicos dos conjuntos fuzzy apresentados, sero mostradas algumas de suas operaes mais importantes, no contexto deste trabalho.
55
Captulo III Enfoques sobre a Teoria Fuzzy ___________________________________________________________________________ c(x) = {(5; 1), (10; 1), (20; 0,9), (30; 0,8), (40; 0,6), (50; 0,4), (60; 0,2)}
~ O complemento fuzzy genrico de dois conjuntos e B pode ser denotado pela operao binria, no intervalo unitrio por: c : [0, 1] [0, 1] [0, 1] O complemento fuzzy de de tipo c, c(x), pode ser interpretado no somente como o grau de pertinncia pelo qual x pertence c, mas tambm como o grau pelo qual x no pertence ao conjunto fuzzy . Assim, (x) pode ser entendido como o grau pelo qual x no pertence c. Dado um conjunto fuzzy , obtemos c aplicando-se a funo c aos valores (x) para todo x: c(x) = c((x)) Para produzir complementos fuzzy convenientes, a funo c deve satisfazer, no mnimo, os dois axiomas seguintes (KLIR, 1995a): Axioma c1: c(0) = 1; e c(1) = 0 (condies de contorno), isto , a funo c
produz o mesmo complemento para conjuntos ntidos. Axioma c2: para todo a, b [0, 1], se a b, ento c(a) c(b) (monotonicidade).
Pode considerar, tambm, os seguintes requisitos para complemento fuzzy. Cada um deles reduz a generalizao do complemento fuzzy para subclasses especiais. Axioma c3: c uma funo contnua. Axioma c4: c involutiva, isto , c(c(x)) = x, para todo x [0, 1].
A ~ ~ ( x ) = min [ (x), ~ ( x ) ] B B
Exemplo III.9: A interseo dos conjuntos fuzzy , velho, e de B , jovem,da Tabela III.1, dada por:
56
~ A interseo fuzzy genrica de dois conjuntos e B , geralmente, especificada pela operao binria no intervalo unitrio, isto , pela funo na forma: i : [0, 1] [0, 1] [0, 1] Os argumentos para essa funo so o par constitudo pelo grau de pertinncia de ~ cada elemento x, em , e o grau de pertinncia de seu correspondente em B . A funo ~ retorna, ento, com o grau de pertinncia do elemento em B . Portanto,
A ~ ~ ( x ) = i [(x), ~ ( x ) ] B B
A funo i, para poder ser considerada como interseo fuzzy, deve satisfazer os quatro axiomas abaixo (Klir 95a]: Axioma i1: i(1, 1) = 1; i(0, 1) = i(1, 0); i(0, 0) = 0 (condies de contorno). A
funo i comporta-se como a interseo clssica de conjuntos ntidos. Axioma i2: i(a, b) = i(b, a); isto , i comutativa. Assim sendo, no importa a
ordem, na qual os conjuntos so combinados. Axioma i3: Se a a' e b b', ento, i(a, b) i(a', b') (monotonicidade). Portanto, ~ um decrscimo no grau de pertinncia de ou de B no pode produzir um ~ acrscimo no grau de pertinncia de B . Axioma i4: i(i(a, b), c) = i(a, i(b, c)) (associatividade). possvel fazer a
interseo de qualquer quantidade de conjuntos, em qualquer ordem de agrupamentos desejada. Os requisitos adicionais para interseo de conjuntos fuzzy, que so desejveis em certas aplicaes, so expressados pelos seguintes axiomas: Axioma i5: i uma funo contnua. Neste caso, um pequeno incremento no ~ grau de pertinncia de ou de B , no produzir uma variao substancial no grau ~ de pertinncia de B . Axioma i6: i(a, a) = a (idempotncia). A interseo de um conjunto fuzzy
A ~ ~ ( x ) = max [ (x), ~ ( x ) ] B B
Exemplo III.10: A unio dos conjuntos fuzzy , velho, e de B , jovem, da Tabela III.1, dada por:
A ~ ~ ( x ) = {(5; 1), (10; 1), (20; 0,8), (30; 0,5), (40; 0,4), (50; 0,6), B
(60; 0,8), (70; 1), (80; 1)}
~ A unio fuzzy genrica dos conjuntos e B , de maneira semelhante interseo, representada, geralmente, pela funo: u : [0, 1] [0, 1] [0, 1] Para cada elemento x X, essa funo possui, como argumentos, o par constitudo ~ dos graus de pertinncia dos elementos de e de B , produzindo o grau de pertinncia ~ do conjunto unio B . Formalmente, temos: A ~ ~ ( x ) = u [(x), ~ ( x ) ] B B Qualquer que seja a forma da funo u, para que seja qualificada como unio fuzzy, deve atender, no mnimo, os quatro axiomas seguintes (KLIR, 1995a): Axioma u1: u(0, 0) = 0; u(0, 1) = u(1, 0); u(1, 1) = 1 (condies de contorno). A
funo u comporta-se como a unio clssica de conjuntos ntidos. Axioma u2: u(a, b) = u(b, a) (comutatividade). Portanto, a ordem, pela qual os
conjuntos so combinados, no relevante. Axioma u3: Se a a' e b b', ento, u(a, b) u(a', b') (monotonicidade). Um ~ decrscimo no grau de pertinncia de ou de B no pode produzir um incremento ~ no grau de pertinncia de B . Axioma u4: u(u(a, b), c) = u(a, u(b, c)) (associatividade). Pode-se efetuar a
unio de qualquer nmero de conjuntos e em qualquer ordem de agrupamentos desejados. Outros requisitos, igualmente importantes, para a unio de conjuntos fuzzy so mostrados abaixo: Axioma u5: u uma funo contnua.
58
de um conjunto fuzzy consigo mesmo gera, precisamente, o mesmo conjunto. Em BELLMANN (1973), a interpretao da interseo como e lgico, e da unio como ou lgico fundamentada axiomaticamente. Entretanto, os operadores min e max no so os nicos, que podem ser escolhidos, respectivamente, para as operaes de interseo e de unio de conjuntos fuzzy. A seguir, sero mostradas algumas operaes algbricas com conjuntos fuzzy.
Soma de contorno ~ ~ A soma de contorno C = B definida como ~ C = {(x, A ~ ~ ( x ) ) | x X} B onde A ~ ~ ( x ) = min {1, (x) + ~ ( x ) } B B Diferena de contorno
59
Produto algbrico ~ ~ O produto algbrico de dois conjuntos fuzzy C = B definido como ~ C = {(x, (x) B ~ ( x ) ) | x X}
Exemplo III.11: Sejam os conjuntos fuzzy (x) = {(3; 0,5), (5; 1), (7; 0,6)} e
Muitas operaes com conjuntos fuzzy esto direcionadas para a agregao de suas funes de pertinncia. Esta uma questo de particular interesse em qualidade de software, isto , a agregao de informaes pertinentes a atributos de qualidade do produto ou do processo considerado.
60
por exemplo, esto baseadas em agregaes de taxas de sinais para cada neurnio, gerando um sinal de sada (YAGER, 1993b). A idia principal do processo de agregao obter-se um grau de consenso entre as informaes disponveis, calculando-se um valor final. Se estes dados forem extrados de especialistas, ento ter-se- a taxa de aceitao ou rejeio entre eles, isto , o grau pelo qual especialistas concordam em suas estimativas, tornando possvel a elaborao de classificaes das avaliaes realizadas (KUNCHEVA et al., 1996). DAY (1988) argumenta que os modelos de consenso so potencialmente frteis e podem ser usados em vrios domnios de aplicao. Os mtodos de consenso referemse, principalmente, a esquemas de graduao, expandindo-se para relaes de preferncia (FEDRIZZI et al., 1993, GILARDONI et al., 1993, KACPRZYK et al., 1992), decises de grupo (CARLSSON et al., 1996, GRABISH, 1995, SAKAWA et al., 1994) e estimativas lingisticamente definidas (MICH et al., 1993). O grau de consenso tem sido estimado, usando-se alguns operadores de agregao fuzzy, atravs das preferncias individuais de n especialistas, para cada atributo considerado, e gerando-se uma matriz de deciso, chamada em (KUNCHEVA, 1995) de perfil de deciso. Segundo BARDOSSY et al (1993), as seguintes propriedade podem ser desejveis, quando se utiliza funes de agregao: i. Preservao da concordncia: se todas as estimativas so idnticas, o resultado da combinao dever ser a prpria estimativa (requisito de consistncia). ii. Independncia de ordem: o resultado no deve depender da ordem com que opinies ou estimativas individuais so combinadas (requisito de consistncia). iii. Invarincia da transformao: transformaes ocorridas no ambiente, onde se processa a agregao, no devero afetar seu resultado. iv. Conservao da possibilidade: se um dado valor for considerado possvel para uma nica estimativa, ento, ele permanece possvel para toda a combinao. v. Conservao do intervalo de possibilidade: um certo valor localizado entre dois valores, considerados como estimativas possveis, tido tambm como possvel. ~ vi. Incertezas individuais versus globais: a medida de incerteza, H( Ri ), de uma ~ estimativa individual, Ri , definida como a rea sob sua funo de pertinncia:
61
~ medida de incerteza global, H( R ), isto , a combinao de todas as estimativas ~ individuais, R , tambm pode ser medida analogamente. vii.Convenincia da estimativa dos resultados: combinao de vrias caractersticas de tcnicas de agregao, que so avaliadas pelos critrios expostos nos itens acima, atravs de uma escala subjetiva, variando de A (excelente) a E (pssimo). Conceitualmente, operaes de agregao fuzzy so combinaes de vrios conjuntos fuzzy (n 2), de uma forma desejvel, para produzirem um nico conjunto. Em geral, uma operao de agregao representada pela funo: h : [0, 1]n [0, 1] Quando a funo h aplicada para n conjuntos fuzzy, 1, 2, ..., n, definidos em X e operando com os graus de pertinncia de cada x X, produzido um conjunto fuzzy agregado . Assim, para cada x X: (x) = h(1(x), 2(x), ..., n(x)) Para que h seja qualificada como uma funo de agregao, deve satisfazer, no mnimo, os trs axiomas a seguir (KLIR, 1995a): Axioma h1: h(0, 0, ..., 0) = 0 e h(1, 1, ..., 1) = 1 (condies de contorno). Axioma h2: para qualquer par a1, a2, ..., an e b1, b2, ..., bn de n-tuplas tal que
ai, bi [0, 1] para todo i Nn, h monotnica incremental em todos os seus argumentos, se para ai bi , i Nn, ento, h(a1, a2, ..., an) h(b1, b2, ..., bn) Axioma h3: h uma funo contnua, isto , garante-se que uma variao
infinitesimal em qualquer argumento de h no produz mudanas considerveis na agregao. Dois axiomas adicionais so tambm empregados para operaes de agregao, embora no sejam essenciais: Axioma h4: h uma funo simtrica em todos os seus argumentos, para
h(a1, a2, ..., an) = h(ap(1), ap(2), ..., ap(n)) Axioma h5: h uma funo idempotente, para todo a [0, 1], isto : h(a, a, ..., a) = a A unio e a interseo fuzzy qualificam-se, normalmente, como operaes de agregao. Embora sejam definidas primariamente para dois argumentos, suas propriedades de associatividade, garantidas pelos axiomas i4 e u4, fornecem um mecanismo para extenso de suas definies para qualquer nmero de argumentos. Qualquer operao de agregao h que satisfaa os axiomas h2 e h5, satisfaz, tambm, todas as n-tuplas a1, a2, ..., an [0, 1]n, para as seguintes inequaes: min(a1, a2, ..., an) h(a1, a2, ..., an) max(a1, a2, ..., an) Neste caso, a operao de agregao h chamada operao de mdia. Portanto, os operadores padres max e min representam os limites entre as operaes de mdia e a unio e a intercesso fuzzy, respectivamente. YAGER (1988) desenvolveu a classe de operaes de mdia de pesos ordenados ou OWA (Ordered Weighted Averaging), que satisfazem os axiomas de h1 a h5. Dado um vetor de pesos, w, tal que wi [0, 1] para todo i Nn, ento, w = w1, w2, ..., wn, e
w
i =1
=1
Em uma operao OWA associada ao vetor w, onde bi o maior i-simo elemento em a1, a2,...,an, para qualquer i Nn, isto , b1, b2, ..., bn uma permutao do vetor a1, a2, ..., an, no qual os elementos esto ordenados: bi bj, se i < j para qualquer par i, j Nn, ento, hw(a1, a2, ..., an) = w1b1 + w2b2 + ... + wnbn
Exemplo III.12: Dado w = 0,3; 0,1; 0,2; 0,4, tem-se que hw (0,6; 0,9; 0,2; 0,7) = 0,3 0,9 + 0,1 0,7 + 0,2 0,6 + 0,4 0,2 = 0,54.
Em toda operao de agregao, os operadores fuzzy exercem uma grande influncia no resultado final. Um nmero significativo desses operadores foram
63
propostos (CHEN et al., 1992, KRISHNAPURAM et al., 1992, ZIMMERMANN, 1991, DUBOIS, 1984, DUBOIS, 1985), e a escolha apropriada dos mesmos para uma determinada situao, de grande relevncia.
64
65
pertinncia do conjunto agregado depende, freqentemente, da quantidade dos conjuntos combinados e geralmente no incremental. Nvel de escala requerido das funes de pertinncia: o nvel de escala
(nominal, intervalar, taxao e absoluta) (TURKSEN, 1991), no qual as informaes de pertinncia podem ser obtidas, depende de vrios fatores. Em sees anteriores, a interseo de conjuntos fuzzy, interpretada pelo operador lgico e, foi modelada pelo operador-min, e a unio, interpretada por ou, pelo operador-max. Outros operadores tm sido sugeridos de acordo com a sua generalidade ou adaptabilidade, bem como pela justificativa emprica ou axiomtica de sua escolha. A seguir, sero investigadas as duas classes de operadores mais utilizadas, no processo de agregao: operadores para a interseo e a unio de conjuntos fuzzy, referenciados como classe padro triangular (t-norm) e classe de co-padro triangular (t-conorm). Uma outra classe, a dos operadores de mdia, modela conectivos para conjuntos fuzzy entre t-norms e t-conorms (DUBOIS, 1985, ALSINA, 1985, KLEMENT et al., 1982], possuindo operadores parametrizados ou no. III.3.1.1 Classes t-norms e t-conorms As classes t-norms englobam os operadores: min, produto e diferena de contorno. A interseo de conjuntos fuzzy (ZADEH, 1965) foi delineada pelo operador-min e o produto algbrico. A interseo-robusta (GILES, 1976) foi modelada pela diferena de contorno. As classes t-norms so funes t bivaloradas de [0, 1] [0 ,1], que satisfazem as seguintes condies (DUBOIS, 1980): i. t(0, 0) = 0; t((x), 1) = t(1, (x)) = (x), ii. t((x), B ~ ( x )) t( ~ ( x ) , ~ ( x )) C D se (x) C ~ ( x) e ~ ( x) ~ ( x) D B iii. t((x), B ~ ( x )) = t( ~ ( x ) , (x)) B iv. t((x), t( B ~ ( x ) , ~ ( x ))) = t(t((x), ~ ( x )) , ~ ( x )) C C B (monotonicidade) (comutatividade) (associatividade) xX
As classes t-conorms englobam os operadores: max, soma algbrica e soma de contorno. A unio de conjuntos fuzzy (ZADEH, 1965) foi delineada pelo operador-max e a soma algbrica. A unio-robusta (GILES, 1976) foi modelada pela soma de
66
contorno. As classes t-conorms so funes s bivaloradas de [0, 1] [0 ,1], que atendem s seguintes propriedades (DUBOIS, 1985): i. s(1, 1) = 1; s((x), 0) = s(0, (x)) = (x), ii. s((x), B ~ ( x )) s( ~ ( x ) , ~ ( x )) C D se (x) C ~ ( x) e ~ ( x) ~ ( x) D B iii. s((x), B ~ ( x )) = s( ~ ( x ) , (x)) B iv. s((x), s( B ~ ( x ) , ~ ( x ))) = s(s((x), ~ ( x )) , ~ ( x )) C C B ALSINA (1985) definiu t-conorm, s, em funo de t-norm, t: t((x), B ~ ( x )) = 1 s(1 (x), 1 ~ ( x )) B III.3.1.2 Outras classes de operadores fuzzy YAGER et al. (1993a) criou os operadores MICA (Monotonic Identify Commutative Aggregation), possuindo um elemento identidade, que pode ser adicionado ao argumento de uma agregao sem mudar o valor agregado. Neste caso, t-norm e tconorm so casos especiais desses operadores. YAGER et al. (1996) unificou e generalizou, tambm, os operadores t-norm e t-conorm, nas classes uni-norms. Um operador uni-norm R, mapeado de [0, 1] [0, 1] em [0, 1], tem as propriedades abaixo: i. R(a, b) = R(b, a) ii. R(a, b) R(c, d) se a c e b c iii. R(a, R(b, c)) = R(R(a, b), c) (comutatividade) (monotonicidade) (associatividade) (monotonicidade) (comutatividade) (associatividade) xX
iv. H elementos (identidade) e [0, 1], tal que para todo a [0,1], R(a, e) = a. Portanto, t-norm um caso especial de uni-norm com e = 1, enquanto que t-conorm um caso especial com e = 0. Existem outras formas de combinao de conjuntos fuzzy. O uso dos operadores e e ou so casos limites especiais, no processo de agregao. Foram sugeridos, ento, modelos generalizados para os operadores lgicos e e ou representados, respectivamente, por e fuzzy e ou fuzzy (WERNERS, 1984). A combinao desses operadores tem levado a resultados satisfatrios, em dados empricos, permitindo compensaes entre os graus de pertinncia dos conjuntos agregados.
67
usual, em processos de agregao, a combinao de nmeros fuzzy, representando o julgamento de um especialista para uma varivel lingstica, na avaliao de um determinado produto ou processo (HSU et al., 1996, HAPKE et al., 1994, RMER et al., 1995, BARDOSSY et al., 1993, LASEK, 1992, RUONING et al., 1992, KAUFMANN et al., 1991, GENEST, 1984).
R,
pertinncia tem a forma (ZIMMERMANN, 1991, KLIR et al., 1995a): : R [0, 1] Um nmero fuzzy deve capturar a concepo intuitiva de nmeros ou intervalos aproximados, tal como valores que esto prximos de um certo nmero real, ou valores que esto em torno de um dado intervalo de nmeros reais. Tais conceitos so essenciais para a caracterizao dos estados das variveis fuzzy e,
conseqentemente, so importantes para aplicaes tais como controle fuzzy, tomada de deciso, raciocnio aproximado e estatstica.
68
deve possuir, no
mnimo, as seguintes propriedades (KLIR et al., 1995a, YU, 1993, ZIMMERMANN, 1991): i) deve ser um conjunto fuzzy normalizado; ii) deve ser um intervalo fechado para todo (0, 1], isto , todo nmero fuzzy convexo; iii) o suporte de deve ser limitado. Casos especiais de nmeros fuzzy incluem nmeros e intervalos reais ordinrios, como mostra a Figura III.2: (a) um nmero real 3; (b) um intervalo ntido [3, 4]; (c) um nmero fuzzy dado pela proposio prximo a 3 (nmero fuzzy triangular); (d) um nmero fuzzy com uma regio plana (um intervalo fuzzy ou nmero fuzzy trapezoidal).
1
0 1 2 3 4 5
0 (b) 1 2 3 4 5
0 (c) 1 2 3 4 5
0 (d) 1 2 3 4 5
Figura III.2: Comparao de um nmero real e um intervalo ntido com um nmero fuzzy e um intervalo fuzzy respectivamente (KLIR et al., 1995a)
Embora as funes de pertinncia de nmeros fuzzy tenham, usualmente, as formas triangular ou trapezoidal, existem outras formas para represent-las, que nem sempre so simtricas, dependendo do contexto da aplicao, como funes com forma de sino, funes estritamente crescentes ou decrescentes. Dados imprecisos podem ser modelados pelo significado de nmeros fuzzy L-R (HAPKE et al., 1994, ROUBENS, 1990, NAKAMURA, 1986,), que uma outra importante forma de representao de funes de pertinncia desses nmeros (DUBOIS, 1980).
69
Baseando-se em (LEE, 1996a, HSU, 1996, KAUFMANN, 1991), um nmero fuzzy triangular normal do tipo-LR pode ser representado por, = (a; m; b), onde a = m - | | e b = m + | |. Se m no um nmero real, mas um intervalo [m, m ], o nmero fuzzy se transforma em um intervalo fuzzy (nmero fuzzy trapezoidal). Um intervalo fuzzy do
2 tipo-LR, se houver funes na forma L e R e, tambm, os parmetros (m, m ) R {-
, +}, a, b. O intervalo fuzzy denotado, ento, por = (m, m , a, b)LR (DUBOIS et al. 1988):
m x para x m L N para m x m ~ ( x ) = 1 xm R para x m Um intervalo fuzzy normal do tipo-LR pode ser representado por = (a, m, m , b)LR, onde a = m - | | e b = m + | |. A teoria dos conjuntos fuzzy (notadamente os nmeros fuzzy) utilizada no raciocnio aproximado, para efetivamente manusear a ambigidade envolvida na avaliao de dados e em propriedades imprecisas de variveis lingsticas (LEE, 1996b).
70
~ M (velho) = {(u, velho(u)) | u [0, 100]}, onde, para u [0, 50] 0 1 velho (u) = u 50 2 para u [50, 100] 1 + 5
T(x) define o conjunto de termos da varivel x, que, neste caso, : T(Idade) = {velho, muito velho, no to velho, mais ou menos jovem, inteiramente jovem, muito jovem} onde G(x) uma regra que gera os rtulos dos termos no conjunto de termos, conforme a Figura III.3 abaixo.
IDADE Variel lingstica Termos lingsticos
muito jovem
jovem
velho
muito velho
1 0,8
20
25
30
35
40 45
x(idade)
50
55
60
65
70
75
80 (idade)
varivel base
Portanto, cada varivel lingstica, definida em termos de uma varivel base, tem seu estado denotado por termos lingsticos, que so interpretados como nmeros fuzzy especficos. Os termos lingsticos representam valores aproximados de uma varivel lingstica, relacionados a uma aplicao particular. Uma varivel base uma varivel no sentido clssico, exemplificada por uma varivel fsica (temperatura, presso, velocidade) ou por uma varivel numrica (desempenho, confiabilidade, probabilidade) (KLIR et al., 1995a). ZADEH (1977) observou que os termos lingsticos podem ser modelados atravs de funes, cujos valores so graus no domnio de uma funo de pertinncia, e que cada representao fundamental para a modelagem do raciocnio aproximado. Limitadores lingsticos so termos lingsticos especiais, que modificam outros termos lingsticos, como por exemplo, menos, muito, razoavelmente, fracamente e extremamente. Qualquer limitador lingstico pode ser interpretado como uma operao unria (ou modificadora), h, em um intervalo unitrio [0, 1]. Por exemplo, o limitador muito freqentemente interpretado como uma operao unria h(a) = a2, enquanto que razoavelmente interpretado como h(a ) = a (a [0, 1]). Conhecendo-se o significado de um termo lingstico e de sua operao modificadora, pode-se estabelecer regras semnticas, que traduzam o significado desse termo. BALDWIN (1979), baseado tambm nos conceitos acima, delineou um conjunto de termos lingsticos da varivel lingstica Verdade, mostrado na Figura III.4. verdadeiro = {(v, verdadeiro(v) = v) | v [0, 1]} falso = {(v, falso(v) = 1 - verdadeiro(v)) | v [0, 1]} muito verdadeiro = {(v, (verdadeiro(v))2) | v [0, 1]} razoavelmente verdadeiro = {(v, (verdadeiro(v))1/2) | v [0, 1]} indeciso = {(v, 1) | v [0, 1]} Muito falso e razoavelmente falso so definidos semelhantemente, e absolutamente verdadeiro = {(v, av(v)) | v [0, 1]},
1 onde av (v ) = 0 para v = 1 outros
72
1 onde, af(v) = af (v ) 0
para v = 0 outros
Os termos lingsticos podem ser, tambm, caracterizados por quantificadores fuzzy que so, em geral, nmeros fuzzy, estendidos do escopo da lgica fuzzy (ZADEH, 1973a, VIOT, 1993), sendo usados para representar uma certa maioria, aproximando-se da percepo humana real (KACPRZYK et al., 1992, NOVK, 1992).
(KANTROWITZ et al., 1996). Neste contexto, uma deciso, tida como correta, poder ser alterada posteriormente, quando novas informaes adicionais estiverem disponveis (CHIUEH et al., 1992). A lgica fuzzy utiliza predicados fuzzy (velho, raro, perigoso, etc.), quantificadores fuzzy (muito, pouco, quase tudo, usualmente, e semelhante), valores-verdade fuzzy (totalmente verdadeiro, mais ou menos verdadeiro, muito falso, etc.) (ZIMMERMAN, 1991).
73
Os quantificadores fuzzy, de particular interesse para os termos lingsticos fuzzy, podem ser (BOSC et al., 1995): i. absolutos: definidos em R e denotados por um nmero, como, por exemplo, no mnimo 7; ii. relativos: definidos no intervalo [0,1], referindo-se a uma proposio quantificada lingisticamente (YAGER, 1983a, YAGER, 1983b, ZADEH, 1983) como, por exemplo, muitos especialistas so convincentes. Uma proposio quantificada lingisticamente pode ser apresentada como (KACPRZYK et al., 1992): Q ys so F, Q um quantificador lingstico (por exemplo, muitos), Y = {y} um conjunto de objetos de um conjunto universo (por exemplo, especialistas), e F uma propriedade, isto , um predicado fuzzy (por exemplo, convincentes). Pode-se atribuir a y particulares (objetos) uma importncia diferente (relevncia, competncia, ...), B, e adicion-la equao anterior, gerando: Qbys so F. No caso da importncia (um predicado fuzzy) ser adicionada, B definido como um
~ (yi) [0, 1] um grau de pertinncia de yi. Assim sendo, o conjunto fuzzy em Y e B
valor yi. Por este motivo, a lgica fuzzy chamada tambm de teoria da possibilidade. A teoria da possibilidade (ZADEH, 1978) est, intrinsecamente, ligada linguagem natural, onde a possibilidade melhor interpretada do que a probabilidade. No entanto, a possibilidade no substitui a probabilidade - ambas lidam com incertezas e se complementam entre si. Observa-se que um alto grau de possibilidade no implica em um alto grau de probabilidade, todavia, se um evento no possvel, tambm improvvel, isto , a possibilidade o limite superior da probabilidade (ZIMMERMANN, 1991). A lgica fuzzy possui, tambm, alguns operadores bsicos fuzzy, definidos no intervalo de 0 (falso) a 1 (verdadeiro), pelas operaes binrias: fuzzy AND (f-AND),
74
fuzzy OR (f-OR), probabilidade AND (p-AND) e probabilidade OR (p-OR), e uma operao unria, NOT (RICHARDS, 1988): i. a f-AND b = min (a, b); ii. a f-OR b = max (a, b);
Vrias aplicaes da teoria fuzzy envolvem o uso de uma base de regras fuzzy para modelos complexos, como os sistemas de controle de lgica fuzzy, os sistemas de controle fuzzy multivarivel (GEGOV, 1995) e os sistemas adaptativos (GRMAN, 1995). Todos os sistemas de controle fuzzy (HERTZ et al., 1991, KAUFMANN et al., 1991, LEE, 1990, NEGOITA, 1985, ZADEH, 1973b) so baseados em regras, e se aplicam quase que, exclusivamente, a sistemas de produo e controle (DUBOIS, 1989, GRAHAM et al., 1988). Geralmente, essas regras no so extradas de especialistas humanos atravs do sistema, mas produzidas, explicitamente, por seus projetistas. A idia bsica incorporar a experincia de um processo executado por um operador humano, no projeto de um controlador. De um conjunto de regras lingsticas, que descrevem a estratgia de controle dos operadores, um algoritmo de controle construdo, onde seus termos so definidos como conjuntos fuzzy (KICKERT et al., 1978). Portanto, a lgica fuzzy simula o pensamento humano, incorporando sua inerente falta de preciso a um sistema fsico. A incerteza o resultado da impreciso no aleatria de medies ou da impossibilidade de se obter uma descrio numrica exata para quantidades observadas (NICULESCU et al., 1992).
75
das condies iniciais. O termo incerteza pode ser comparado ao termo aleatrio, sendo que, nos conjuntos fuzzy, a incerteza refere-se ao grau de pertinncia de um elemento, enquanto que, estatisticamente, a incerteza refere-se probabilidade do resultado de um experimento aleatrio (ROTHMAN, 1989). Existem trs princpios de incertezas, aplicveis somente nas situaes, onde emergem deficincias de informaes, dependendo da teoria pela qual a incerteza conceitualizada (KLIR, 1995b): i. princpio de incerteza mnima: seleo das alternativas mais importantes do conjunto soluo, reduzindo-se, tanto quanto possvel, o nmero das informaes iniciais. ii. princpio da incerteza mxima: procura-se usar todos os dados disponveis, evitando-se, porm, que informaes adicionais sejam inadvertidamente adicionadas. iii. princpio da invarincia da incerteza: requer que uma quantidade de incertezas (e de informaes) sejam preservadas, independentemente da representao terica usada, isto , garante que informaes no sejam inapropriadamente adicionadas ou eliminadas, somente pela troca da estrutura matemtica, na qual um fenmeno particular foi formalizado. Devido conexo ntima entre incerteza e informao, esses princpios podem ser concebidos, tambm, como princpios de informao. A quantidade de incertezas pode ser reduzida pela obteno de novas informaes relevantes, como o resultado de algumas aes (observao de um fato novo, execuo de um experimento, obteno de um registro histrico) (KLIR, 1995b). O gerenciamento das incertezas desempenha um importante papel nos sistemas baseados em conhecimento (SBCs) fuzzy, e nos sistemas de tomada de deciso em ambientes fuzzy, apresentados a seguir.
76
a preocupao de que esses sistemas sejam providos com mecanismos, que manuseiem incertezas, otimizando o seu desempenho (LEE, 1994). A incerteza das informaes na base do conhecimento, por exemplo, induz incertezas nas concluses. Assim sendo, a mquina de inferncia (LESMO et al., 1982) deve ser equipada com capacidade computacional, para analisar a transmisso de incertezas das premissas para as concluses, associando-as a algumas medidas de incertezas, que sejam inteligveis e interpretadas convenientemente pelo usurio (ZIMMERMANN, 1991). Um dos principais benefcios de um SBC fuzzy sua habilidade de usar e assimilar o conhecimento de mltiplos especialistas, outorgando-lhes uma expressividade no existente em sistemas convencionais de suporte a deciso (COX, 1995). Tanto os SBCs fuzzy, quanto os sistemas de controle fuzzy, objetivam modelar a experincia e o ambiente humano de tomada de decises (CARCHIOLO et al., 1995, SUGENO, 1985, ZADEH, 1973a).
77
ii. Impreciso: quando h dificuldades na obteno de conceitos precisos para melhor caracterizar atributos ou critrios; iii. Iluso da validade (TVERSKY et al., 1990): deteco de sadas errneas, tais como a seleo de alternativas, que no cumpram os critrios impostos. Na tomada de deciso em ambientes fuzzy, termos como multiobjetivos, multiatributos e multicritrios so, geralmente, usados indistintamente, embora haja diferenas entre eles (RIBEIRO, 1996, KOSKO, 1992 CHEN et al. 1992): i. Tomada de deciso multiobjetivos (MODM) (ZIMMERMANN, 1991): consiste de um conjunto de objetivos conflitantes, que no podem ser alcanados simultaneamente. ii. Tomada de deciso multiatributos (MADM) (YAGER, 1978, HWANG, 1981): escolha de uma alternativa em um conjunto de alternativas, caracterizada por seus atributos. iii. Tomada de deciso multicriterial (MCDM): aplicada tanto tomada de deciso, envolvendo multiobjetivos, quanto multiatributos (CARLSSON et al., 1996, FODOR et al., 1994, CHEN et al., 1993, LUHANDJULA, 1989,). Neste caso, algumas consideraes importantes foram feitas (ZELENY, 1992): a presso do tempo reduz o nmero de critrios a serem considerados; quanto mais completa e precisa for a definio do problema, menos critrios so necessrios; indivduos que tomam deciso em sistemas estritamente hierrquicos, geralmente utilizam menos critrios do que indivduos, que lidam com outros tipos de sistemas; o isolamento de perturbaes no ambiente, reduz a necessidade de mltiplos critrios; o conhecimento maior (ou completo) e integrado do problema leva utilizao de mais critrios, enquanto que o conhecimento parcial (ou limitado) e no integrado restringe o nmero de critrios;
78
organizaes com cultura voltada para o planejamento central e tomadas de decises coletivas, apoiam-se na agregao e na reduo de critrios, para alcanar um consenso. Um dos elementos bsicos na tomada de deciso de grupo o conceito de maioria, isto , a soluo encontrada destaca a opinio mais aceitvel pela maioria dos membros do grupo. Uma maioria menos rgida (uma concordncia geral, sem a necessidade de uma inferncia individual) pode auxiliar, certamente, a formao de modelos de deciso de grupo mais consistentes e humanizados (KACPRZYK, 1992). Um outro elemento empregado, habitualmente, nas cincias de deciso a mdia de pesos, atravs de parmetros quantificveis. Na coleta de informaes, busca-se a estimativa do avaliador, que esteja mais prxima do modelo de requisitos. Sendo assim, as estimativas coletadas e a apurao de seus resultados so essenciais neste processo e, sem isto, a avaliao poderia tornar-se irrealista (ROBINS, 1995). Um modelo fuzzy de deciso adequado deve incluir processos de identificao, medio e combinao de critrios e alternativas, promovendo a modelagem conceitual, da deciso e a avaliao em ambientes nebulosos (RIBEIRO, 1996). A seguir, sero apresentados alguns modelos fuzzy de deciso, encontrados na literatura.
79
ii. o desinteresse ou a falta de concentrao dos avaliadores, no processo de julgamento. Portanto, de grande importncia selecionar com acuidade os avaliadores, conduzir com destreza todo o processo de aquisio das opinies dos especialistas, seja individualmente ou em reunies prprias para a tomada de deciso. Muitos modelos de estimativas, fundamentados na teoria fuzzy, efetuam alguns procedimentos bsicos, que podem ser dispostos em trs estgios (SCHMUCKER, 1984): i. Primeiro estgio: traduo de expresses da linguagem natural para conjuntos fuzzy, atravs de operaes fuzzy correspondentes. ii. Segundo estgio: agregao desses conjuntos fuzzy em um conjunto resultante, que reproduza o sistema, que est sendo medido, como um todo. iii. Terceiro estgio: associao do conjunto fuzzy resultante a expresses naturais convenientes, que definam o sistema apropriadamente. Vrios modelos fuzzy de estimativas, apoiaram-se de algum modo na estrutura do mtodo de anlise hierrquica (SAATY, 1980). Portanto, embora esse mtodo no utilize a teoria fuzzy, ser apresentado sucintamente, juntamente com outros, que se servem dessa teoria.
III.7.3.1 Mtodo de Anlise Hierrquica
O Mtodo de Anlise Hierrquica (SAATY, 1980) parte de uma situao no estruturada e complexa, decompondo-a em partes ordenadas hierarquicamente e, atravs de julgamentos sucessivos, obtm a melhor soluo para o problema. Esse mtodo combina o uso de duas abordagens: (i) a abordagem dedutiva, que decompe o sistema em partes, para a melhor compreenso do comportamento e funcionamento das mesmas; (ii) a abordagem de sistema, que busca analisar o comportamento do sistema, no importando suas partes constituintes. Esse mtodo utiliza uma escala de propores, atravs de comparaes de pares de elementos em relao a um dado critrio imediatamente superior, partindo do topo da hierarquia. Para m critrios, C1, C2, ..., Cm, construda uma escala de proporo, que evidencia a importncia relativa de cada critrio em relao a cada um dos outros. Isto feito atravs do julgamento de especialistas, que se baseiam em uma escala de nmeros,
80
para representar a importncia relativa de um elemento sobre outro. Os julgamentos quantificados em pares de critrios Ci e Cj so reproduzidos em uma matriz m m: M = {aij: i = 1, 2, ..., m; j = 1, 2, ..., m} As entradas dessa matriz so definidas pelas seguintes regras: Regra 1: se aij = ento aji = 1/, onde 0. Regra 2: se Ci julgado ser da mesma importncia relativa de Cj, ento aij = aji. Todos os elementos diagonais aii = 1 para 1, 2, ..., m. A prioridade obtida da comparao de cada par de elementos em relao a um critrio ascendente denominada prioridade local. A prioridade de um elemento em relao ao objetivo geral chamada de prioridade global. Em sntese, pode-se afirmar que uma das principais vantagens desse mtodo que busca um resultado final, atravs da sntese de julgamentos de vrios participantes, no insistindo no consenso entre eles.
III.7.3.2 Mtodo Fuzzy Hierrquico de Avaliao
LASEK (1992) props um mtodo fuzzy hierrquico para a avaliao e a classificao de problemas com mltiplos atributos, isto , estruturas hierrquicas de avaliao fuzzy para a anlise de alvos estratgicos de empresas. No topo da hierarquia desse mtodo, esto os objetivos mais gerais, que so decompostos em subobjetivos e estratgias, nos nveis mais inferiores. Nesta metodologia, a impreciso de dados representada por conjuntos fuzzy, onde os nmeros reais so tratados como um caso especial de nmeros fuzzy, com grau de pertinncia igual a um e exprimem prioridade, classificao ou o resultado de uma avaliao. Dependendo dos relacionamentos existentes entre objetivos, subobjetivos e estratgias usado o enfoque da dependncia funcional ou da relao de preferncia. Na dependncia funcional, os julgamentos feitos pelos especialistas so realizados nos nveis mais baixos da hierarquia. As avaliaes dos outros nveis da hierarquia processam-se atravs da execuo de operaes algbricas fuzzy. Nas relaes de preferncias, so indicadas somente as prioridades (pesos) dos objetivos, subobjetivos e estratgias e, para isto, empregado o Mtodo de Anlise Hierrquica (SAATY, 1980).
81
HSU et al. (1996) combina opinies individuais para formar uma opinio consensual de um grupo de especialistas, atravs de um mtodo de agregao de similaridade. As opinies dos especialistas so representadas por nmeros fuzzy trapezoidais, assumido que estes tm uma interseo comum, em um conjunto de corte de nvel-, onde (0, 1]. Esta uma condio imposta por esse mtodo, para que a agregao dos resultados das opinies dos especialistas seja aceitvel. Se no houver interseo entre as estimativas iniciais do k-simo e do l-simo especialista usado, ento, o Mtodo Delphi, para auxiliar na obteno de mais informaes, objetivando ajustar os dados fornecidos por cada especialista, para que haja essa interseo. Posteriormente, introduzida uma funo de medida de similaridade, para medir o grau de concordncia entre as opinies dos especialistas, e estas informaes so postas em uma matriz de concordncia. Finalmente, as opinies dos especialistas so combinadas, podendo-se levar em considerao, tambm, a importncia de cada especialista participante do processo de avaliao.
III.7.3.4 Modelo Hierrquico para Estruturas de Risco
LEE (1996a) desenvolveu uma estrutura de tomada de deciso de grupo, considerando os riscos no desenvolvimento de software. Partiu do princpio de que a avaliao de custos de software caracterizada p ela alta incerteza, existindo muitos problemas ao longo do processo de desenvolvimento, como a postergao de cronograma, o aumento de despesas, a ineficincia e o abandono de projeto. Nessa estrutura, a teoria fuzzy utilizada para manusear, efetivamente, as ambigidades envolvidas na avaliao de taxas de fatores de risco e para lidar com propriedades vagas, atravs de expresses lingsticas. Para isto, os nmeros fuzzy triangulares foram empregados, para representar a impreciso dos dados quantitativos do modelo. Um grupo de n especialistas selecionado, para a avaliao da taxa de agressividade do risco de um projeto de software em desenvolvimento. O processo de agregao dos julgamentos desses especialistas promovido de duas maneiras: (i)
82
atravs da mdia desses julgamentos, para produzir o resultado final; (ii) a agregao dos julgamentos individuais de cada especialista, para a obter a mdia dos resultados. Esse modelo compe-se de um conjunto de atributos que, por sua vez, so compostos por itens de risco. Cada atributo, juntamente com seus itens de risco, possui um grau de risco e o grau de importncia (peso), que podem ser ajustados at que o resultado esperado seja alcanado.
III.7.3.5 Modelo para Localizao Industrial
O modelo para localizao industrial objetiva facilitar a estruturao de um sistema de informaes, que possibilite ao Governo a formulao conveniente de polticas de desenvolvimento industrial. Esse modelo est baseado na teoria fuzzy, onde a anlise de alternativas se apoia na construo de hierarquia ponderada para cada proposio (COSENZA, 1981). Esse modelo foi adaptado por CAMPOS (1994b) para a rea de qualidade de software educacional, visando confrontar, sistematicamente, a demanda de fatores de qualidade do produto de software (matriz de demanda), atravs de critrios selecionados e validados por professores, para a avaliao e a oferta desses produtos (matriz de oferta). Atravs dos dados das matrizes acima, foram geradas: (i) a matriz de possibilidade de alocao, descrevendo, em valores absolutos, o grau de satisfao dos usurios por produto de software, e (ii) a matriz de resultados, contendo os ndices de alocao, que representam o resultado final do experimento, evidenciando o grau de satisfao dos usurios por cada produto analisado.
III.7.3.6 Outros Modelos
ENGEMANN et al. (1997) propuseram um mtodo geral para seleo de uma alternativa debaixo de incertezas para casos do mundo real, envolvendo riscos de gerenciamento. PRESEDO (1996) apresenta um modelo fuzzy de um sistema especialista, na deteco de isquemia baseada em eletrocardiograma, para resolver o problema de transformaes do conhecimento impreciso, fornecido pelos especialistas, em estruturas computveis.
83
COMMERLATO (1994) desenvolveu um modelo e uma ferramenta de software, para a identificao de componentes FORTRAN, pretensos reutilizao, segundo medidas obtidas atravs de mtricas de software e seleo atravs de variveis lingsticas e termos lingsticos fuzzy predeterminados. Definiu, tambm, um processo de avaliao de candidatos reutilizao em trs etapas: (i) medio, (ii) definio de variveis e termos lingsticos (representam critrios de qualidade), e (iii) seleo de candidatos, atravs dessas variveis. GARCIA et al. (1992) formaliza uma metodologia de avaliao lingstica em situaes de risco, usando tcnicas fuzzy. Neste mtodo, o clculo do risco global de um sistema, estruturado hierarquicamente, obtido atravs da avaliao do risco de cada um de seus componentes, em termos de seus descendentes. RUONING et al. (1992) prope um mtodo de tomada de deciso de grupo, em sistemas complexos, envolvendo uma grande variedade de fatores, e constri uma matriz de julgamento fuzzy, atravs de um mtodo estatstico, provando que cada elemento dessa matriz pode ser representado por um nmero fuzzy. Segundo ele, tericos de sistemas argumentam que relacionamentos complexos podem sempre ser analisados, tomando-se pares de atributos e relacionando-os entre si. Em KACPRZYK et al. (1992) e TANINO (1984) foi proposta uma relao de preferncia fuzzy para cada especialista, da qual derivada a relao fuzzy de preferncia para o grupo de especialistas, no sentido de determinar a melhor alternativa para a soluo do problema. ISHIKAWA et al. (1993) e XU et al., (1992) propuseram que cada especialista representasse o julgamento de critrios avaliados por eles, atravs de um grau de importncia obtido de um intervalo numrico fuzzy. A partir deste resultado, gerada uma distribuio de freqncia cumulativa, para derivar o julgamento consensual do grupo. BARDOSSY et al (1993) sugeriu que as estimativas de critrios, avaliadas por especialista, fossem representadas por nmeros fuzzy e combinadas atravs de operaes fuzzy. A teoria fuzzy tem sido aplicada com sucesso em muitas reas de pesquisas de modelos e em diversos estgios de processos de pesquisas, como, por exemplo,
84
reconhecimento de padres (KUMAR et al. 1996, SEONG, 1995, PAL et al. 1992), surgindo os chamados sistemas fuzzy.
85
Aplicaes
utilizado em larga escala em aplicaes industriais processamento de imagem, udio e sinal pesquisa operacional, estatstica e gerenciamento sistemas especialistas para diagnstico, planejamento e predio processamento de linguagem natural interfaces inteligentes robs inteligentes engenharia de software
Recuperao de Informaes
base de dados
Tabela III.2: Categorias genricas de aplicaes de sistemas fuzzy (MUNAKATA et al., 1994)
Os principais passos para o desenvolvimento de um sistema fuzzy so (MUNAKATA et al., 1994): i. Constatao de que o conhecimento sobre o ambiente da aplicao em questo descrito de forma aproximada ou com regras heursticas. ii. Identificao das entradas e sadas do sistema e seus respectivos intervalos de valores. iii. Definio de uma funo para cada parmetro de entrada ou sada. A quantidade de funes requeridas depende do desenvolvedor e do ambiente do sistema. iv. Construo de uma base de regras pelo projetista, que determine quantas regras sero necessrias e quando parar de adicionar novas regras.
86
v. Verificao das sadas da base de regras e se seus intervalos de valores esto corretos e em conformidade com o conjunto de entradas usado, permitindo uma posterior validao. Vrios mtodos tm sido utilizados para o desenvolvimento e a implementao de sistemas fuzzy. Os mais comuns so: o mtodo de desenvolvimento baseado em especialistas humanos, e o mtodo de desenvolvimento baseado em tentativa e erro. Os principais problemas e limitaes de sistemas fuzzy so (MUNAKATA et al., 1994):
atingir um estado catico e que seja estvel. No entanto, a experincia tem mostrado que uma expressiva maioria dos sistemas fuzzy so estveis.
possuem memria do que foi especificado previamente. Atualmente, sistemas hbridos, particularmente os sistemas neurofuzzy vm suprindo esta limitao.
depois de muitos testes, pode ser ainda difcil o estabelecimento conveniente das funes fuzzy requeridas.
No entanto, os benefcios intrnsecos na utilizao de sistemas fuzzy excedem a suas limitaes e seus problemas e podem ser sumariados na reduo do custo do desenvolvimento, da execuo e da manuteno da aplicao (COX, 1995).
III.9 Concluso
Neste captulo, apresentou-se a teoria fuzzy em seus aspectos mais gerais, sendo que alguns temas foram mais aprofundados, objetivando-se uma melhor fundamentao para o desenvolvimento de um modelo fuzzy para a avaliao da qualidade de software, o que ser feito no prximo captulo.
87
86
Como em muitas outras reas do conhecimento humano, a avaliao da qualidade de software envolve a apreciao de mltiplos atributos, atravs do julgamento de um grupo de especialistas (SANDRI, 1997). Cada especialista tem a sua prpria opinio e estima um grau de importncia para cada atributo julgado, segundo sua percepo ou o seu nvel de entendimento da questo proposta. Da o interesse de se conseguir um processo de agregao, que consolide o consenso dos especialistas envolvidos, na avaliao. No processo de avaliao da qualidade de software no basta, apenas, identificar que atributos determinam essa qualidade, mas tambm que procedimentos adotar, para controlar seu processo de desenvolvimento de forma a atingir o nvel de qualidade desejado. Isto realizado atravs da aplicao de mtricas de forma organizada e projetada, tornando os desenvolvedores mais conscientizados da relevncia do gerenciamento e dos compromissos para com a qualidade (BELCHIOR, 1992b). A medio de atributos de software tem estabelecido, por si mesma, um importante e incremental papel no entendimento e controle da prtica do desenvolvimento de software. Portanto, essencial usar mtricas vlidas e acuradas, que representem os atributos, que se pretende observar e quantificar (FENTON et al., 1997). O uso de mtricas de qualidade de software deve estar apoiado em um mtodo de controle de qualidade, para que se alcance, convenientemente, os objetivos almejados (IEEE, 1987). Neste trabalho, o mtodo escolhido para a avaliao da qualidade de software o Mtodo Rocha (ROCHA, 1983), por j ter sido utilizado satisfatria e eficazmente em uma grande quantidade de domnios de aplicao. Para alinhar a confiabilidade desse mtodo s propriedades da teoria fuzzy, prope-se uma extenso do mesmo, para suportar o Modelo fuzzy para Avaliao da Qualidade de Software.
87
2. Fatores de qualidade: determinam a qualidade na viso dos diferentes usurios do produto. Podem ser compostos por subfatores, quando estes no definem completamente, por si s, um objetivo. 3. Critrios: so atributos primitivos, possveis de serem avaliados. 4. Processos de avaliao: determinam o processo e os instrumentos a serem utilizados, de forma a se medir o grau de presena, no produto, de um determinado critrio. 5. Medidas: so o resultado da avaliao do produto, segundo os critrios. 6. Medidas agregadas: so o resultado da agregao das medidas, obtidas ao se avaliar de acordo com os critrios, e quantificam os fatores. Os objetivos de qualidade so atingidos atravs dos fatores de qualidade, que podem ser compostos por subfatores. Objetivos, fatores e subfatores no so, diretamente, mensurveis e s podem ser avaliados atravs de critrios. Um critrio um atributo primitivo, e pode qualificar diferentes subfatores ou fatores. Nenhum critrio isolado uma descrio completa de um determinado subfator ou fator. Da mesma maneira, nenhum fator define completamente um objetivo.
Relaes Quantitativas Relaes Lgicas Objetivos
so atingidos por
Fatores
compem-se de
compem-se de quantificam
Medidas
Avaliao Software
Este modelo no fornecia formas adequadas para realizar o processo de agregao, por ele apresentado. A proposta, que descrita a seguir, vem resolver este problema. Definiu-se, ento, a extenso do Modelo Rocha atravs da utilizao de conceitos e propriedades da teoria dos conjuntos fuzzy e, assim, o Modelo Rocha Estendido foi dotado da potencialidade dessa teoria em mapear modelos qualitativos de tomada de
88
deciso e da consistncia dessa teoria no tratamento de incertezas e na agregao de informaes. Neste contexto, alguns conceitos do Modelo Rocha foram estendidos ( ), outros foram acrescidos ( ) (Figura IV.2): Medidas: so o resultado da avaliao do produto, segundo os critrios, atravs de termos lingsticos fuzzy, mapeados por nmeros fuzzy. Medidas agregadas: so o resultado da agregao das medidas obtidas ao se avaliar de acordo com os critrios. So, tambm, o resultado da agregao de critrios em subfatores, fatores, objetivos, e no valor final do produto de software. Funes fuzzy: mapeiam os atributos de qualidade primitivos ou agregados, atravs do conjunto de termos lingsticos estabelecido, quantificando-os.
Relaes Quantitativas Relaes Lgicas Objetivos Medidas quantificam agregadas
so atingidos por
Relaes Interpretativas
interpretam
compem-se de
Agregar
compem-se de
Medidas
quantificam
A avaliao fuzzy segundo o Modelo Rocha estendido ser mostrada, a seguir, atravs de um modelo fuzzy para avaliao da qualidade de software.
89
Os termos lingsticos Ti, para i = 1, 2, ..., n, sero representados por nmeros fuzzy ~ normais triangulares positivos N i (ai, mi, bi) do tipo-LR (LEE, 1996b, HSU, 1996, RMER et al., 1995, HAPKE et al., 1994, BARDOSSY et al., 1993, LASEK, 1992, RUONING et al., 1992, KAUFMANN et al., 1991, GENEST, 1984, DUBOIS et al., 1980), que denotaro o grau de importncia de cada atributo considerado, onde ai < bi, embora possa se ter ai mi ou mi bi. O valor de n pode ser estabelecido de acordo com as convenincias do projeto, possveis peculiaridades do domnio de aplicao ou determinao da equipe gestora da qualidade. Isto porque a quantidade de termos lingsticos e eles prprios, a serem usados em uma aplicao especfica, podem ser escolhidos, dependendo da situao em questo. Na medio do nvel de presso sangnea, por exemplo, pode ser suficiente apenas os trs termos lingsticos: alta, normal e baixa, para que se consiga diagnosticar um paciente apropriadamente. J na aplicao de conceitos a alunos universitrios, por exemplo, muitas vezes so utilizados quatro termos lingsticos: excelente (A), bom (B), regular (C) e deficiente (D). Entretanto, uma vez estabelecido o valor de n e o conjunto de termos lingsticos para o domnio de aplicao, ou para o objeto a ser apreciado, isto deve permanecer constante ao longo de todo o processo de avaliao. Nas situaes apresentadas acima, no se poderia usar, por exemplo, as expresses: presso deficiente (a presso estaria alta ou baixa?), nem aluno normal (o conceito desse aluno seria A, B ou C?). Sendo assim, baseado em HSU et al. (1996), LEE (1996a), KACPRZYK et al. (1992), BALDWIN (1979), ZADEH (1977), so sugeridos alguns conjuntos de termos lingsticos, que podero ser utilizados, na avaliao da qualidade de um produto de software. A Tabela IV.1 mais abrangente, possuindo graus de pertinncia no intervalo [0, 10], isto , ai, mi, bi [0, 10] e n = 11. Como 10 um fator de 100, a utilizao dessa tabela pode facilitar o processo de avaliao, isto , tem-se uma viso percentual do objeto avaliado. Seja, por exemplo, o termo lingstico mdio, de grau de importncia 5,0 que corresponderia a 50%.
90
A Tabela IV.2 uma simplificao da anterior, possuindo graus de pertinncia no intervalo [0, 5], isto , ai, mi, bi [0, 5] e n = 6. Pode ser usada quando no houver necessidade de maiores detalhamentos dos termos lingsticos bsicos. A Tabela IV.3 possui graus de pertinncia no intervalo [0, 4], isto , ai, mi, bi [0, 4] com n = 5. Os termos lingsticos dessa tabela tm sido largamente utilizados em muitos trabalhos de pesquisa, especialmente na rea de qualidade de software, utilizando-se o Modelo Rocha (CLUNIE, 1997, OLIVEIRA, 1995b). Por este motivo, que essa tabela empregada, no experimento realizado no prximo captulo, para a validao do mtodo fuzzy, que definimos na seo a seguir. Grau de importncia 0,0 1,0 2,0 3,0 4,0 5,0 6,0 7,0 8,0 9,0 10,0 Simbologia N EB MB B LB M LA A MA EA I Termo Lingstico Nenhum ou ausente Extremamente baixo Muito Baixo Baixo Ligeiramente Baixo Mdio Ligeiramente Alto Alto Muito Alto Extremamente Alto Imprescindvel Nmero fuzzy normal
~ N 1 = (0,0; 0,0; 1,0) ~ N 2 = (0,0; 1,0; 2,0) ~ N 3 = (1,0; 2,0; 3,0) ~ N 4 = (2,0; 3,0; 4,0) ~ N 5 = (3,0; 4,0; 5,0) ~ N 6 = (4,0; 5,0; 6,0) ~ N 7 = (5,0; 6,0; 7,0) ~ N 8 = (6,0; 7,0; 8,0) ~ N 9 = (7,0; 8,0; 9,0) ~ N 10 = (8,0; 9,0; 10,0) ~ N 11 = (9,0; 10,0;10,0)
Simbologia N MB B M A
Nmero fuzzy normal ~ N 1 = (0,0; 0,0; 1,0) ~ N 2 = (0,0; 1,0; 2,0) ~ N 3 = (1,0; 2,0; 3,0) ~ N 4 = (2,0; 3,0; 4,0) ~ N 5 = (3,0; 4,0; 5,0)
91
5,0
MA
Muito Alto
Simbologia NR PR R MR I
Termo Lingstico Nenhuma Relevncia Pouca Relevncia Relevante Muito Relevante Imprescindvel
~ N 1 = (0,0; 0,0; 1,0) ~ N 2 = (0,0; 1,0; 2,0) ~ N 3 = (1,0; 2,0; 3,0) ~ N 4 = (2,0; 3,0; 4,0) ~ N 5 = (3,0; 4,0; 4,0)
Tabela IV.3: Nmeros fuzzy normais para termos lingsticos (por relevncia)
O conjunto dos termos lingsticos das trs tabelas propostas acima possuem as seguintes funes de pertinncia, adaptadas de LEE (1996b):
1 x , N1 ( x ) = 0,
0, x ( k 2), Nk ( x) = k x, 0,
0 x1 1 x n
0 x k -2 k - 2 x k -1 k -1 x k kxn
~ N k = (k - 2; k - 1; k)
92
Depois de estabelecido o conjunto de termos lingsticos e suas funes caractersticas, apresenta-se, a seguir, a etapas do Modelo Fuzzy para Avaliao da
Qualidade de Software.