Академический Документы
Профессиональный Документы
Культура Документы
Introduo
Cotidianamente, qualquer pessoa normal avalia a qualidade de tudo a seu redor, conscientemente ou no, como forma de tomar decises. Desde a escolha da roupa para sair, at a compra de um carro. No to diferente do que acontece em nosso cotidiano, nas indstrias a qualidade passou a ser definida como a busca constante pelo melhor. Acompanhada por tentativas de identificar caractersticas que definam o melhor e mtodos de alcan-lo. Atualmente a qualidade se tornou to importante em mbito comercial, que manifestaes pblicas de preocupao com qualidade passaram a ser utilizadas como marketing por empresas. Isso tudo porque qualidade reflete diversas caractersticas positivas de um produto ou processo, e em geral est relacionada com uma melhor relao custobenefcio. Em um processo de qualidade normalmente no h desperdcio de tempo, h poucos defeitos, no h gastos desnecessrios. Observando todas essas vantagens de se obter qualidade, no poderia ser menor o interesse em se buscar formas de alcan-la tambm para processos e produtos de software. Um setor industrial que vem crescendo bastante nos ltimos tempos. A qualidade de software uma rea relacionada engenharia de software que objetiva identificar atributos em um processo e produto de software que determinem um nvel de qualidade. Ela tambm objetiva utilizar a familiaridade com esses atributos de forma a modific-los e obter um produto final com maior qualidade.
Kaizen Focaliza na constante melhoria no processo, visando torn-lo visvel, mensurvel e possvel de ser repetido; Atarimae Hinshitsu busca otimizar o impacto de fatores que afetam um projeto, para permitir que ele flua da maneira planejada; Kansei observar a forma como o usurio aplica o produto, permite uma melhoria no produto e no processo que o origina; Miryokuteki Hinshitsu atravs da observao do produto no mercado, surge com novas oportunidades relacionadas ao produto que permitam sua melhoria. Atualmente a qualidade encontra-se na fase da gesto de qualidade, com o surgimento de diversas normas que padronizam a implantao de qualidade em diversos ramos empresariais. A histria da garantia de qualidade no desenvolvimento de software similar a da qualidade nas empresas tradicionais. Durante os primrdios da era da computao, a qualidade era preocupao apenas do programador. Padres para qualidade de software apareceram inicialmente nos contratos de desenvolvimento de softwares militares na dcada de 70 e se espalharam rapidamente no mundo comercial.
Eficincia a quantidade de recurso computacional e cdigo necessrio para um software realizar sua funo Integridade nvel de controle sobre o acesso dos dados e procedimentos que fazem parte de um software Confiabilidade a capacidade de o software manter seu funcionamento de forma adequada e com determinada preciso durante determinado tempo Usabilidade esforo necessrio do usurio para aprender e lidar com o aplicativo Exatido conformidade com as especificaes e os objetivos do usurio Sustentabilidade esforo para realizar a manuteno, achar e corrigir erros em um programa Testabilidade custo de teste do programa para garantir que ele esteja cumprindo seus requisitos
2.
3.
4.
5.
6.
7.
8.
Flexibilidade custo da modificao do produto Interoperabilidade custo para que dois produtos passem a interagir Re-usabilidade esforo para se reutilizar um programa ou parte dele Portabilidade esforo para se transferir um programa entre diversas plataformas de hardware ou de software, sobre o qual o mesmo funciona
9.
10.
11.
Esses atributos so bastante subjetivos, para que seja possvel definir um indicador de qualidade necessria a realizao de medies relacionadas a eles. Eles podem ser categorizados em fatores que podem ser medidos diretamente e fatores que s podem ser medidos indiretamente. Por isso foram definidas algumas mtricas que podem ter suas medies relacionadas a algumas dessas caractersticas:
Auditability esta mtrica est relacionada com a facilidade de se verificar se o software apresenta conformidade com determinados padres Preciso preciso dos controles e das funes Comunicabilidade o grau com que so usadas interfaces, protocolos e largura de banda Completeza nvel de totalidade da implementao de uma funo desejada Conciso a solidez, ou seja, realizao dos objetivos de forma mais compacta Consistncia uniformidade nas tcnicas de design e documentao Compartilhamento de dados o uso de estruturas de dados e tipos por todo o programa Tolerncia a erros a medida do dano causado por um erro ao programa Eficincia de execuo o desempenho do programa em execuo Expansibilidade capacidade de expanso de um programa Generalidade a quantidade de aplicaes potenciais para os componentes do programa Independncia de Hardware o grau de independncia entre o software e um hardware especfico Instrumentao o grau com que o programa monitora seu prprio funcionamento e identifica erros ocorridos Modularidade independncia entre os diversos componentes do programa Operabilidade a facilidade na operao do programa; Segurana a presena de mecanismos de proteo dos dados e da execuo do programa Auto-documentao o grau em que o cdigo fonte encontra-se auto-explicativo Simplicidade facilidade de entendimento do funcionamento do programa Independncia de sistemas de software independncia do programa em relao a outros softwares no padres Rastreabilidade capacidade de relacionar uma parte do projeto com o requisito original Treinamento medida com que o software auxilia no entendimento de novos usurios sobre a operao do sistema
A relao dessas mtricas com os fatores de qualidade mostrados anteriormente pode ser visualizada na figura 2.1. Mais mtricas e formas de medio da qualidade de software podem ser encontradas na seo sobre mtricas.
Fig
Ef ic i nc ia
In te gr id a d e
C o nf ia bi li d a d
U sa bi li d a d e
E xa ti d o
S us te nt a bi li d a
T es ta bi li d a d e
Fl ex ib ili d a d e
In te ro p er a bi li d
R eus a bi li d a d
P or ta bi li d a d e
Auditability Preciso Comunicabilidade Completeza Conciso Consistncia Compartilhamento de dados Tolerncia a erros Eficincia de execuo Expansibilidade Generalidade Independncia de Hardware Instrumentao Modularidade Operabilidade Segurana Auto-documentao Simplicidade Independncia de sistemas de software Rastreabilidade Treinamento
Existem ainda outros modelos de qualidade de software muito utilizados atualmente, como o ISO 9126, o FURPS, e o CMMI.
2.2. FURPS
A Hewlett-Packard desenvolveu um conjunto de fatores de qualidade de software que recebeu o acrnimo FURPS relacionado ao que define como os 5 principais fatores de qualidade:
1.
Funcionalidade obtido pelo conjunto das caractersticas e capacidades do programa, a generalidade das funes e a segurana do sistema em geral Usabilidade obtida considerando os fatores humanos: esttica, consistncia e documentao Confiabilidade (Reliability) obtida pela avaliao da freqncia e severidade dos erros, a preciso das sadas, o tempo mdio por falha, a habilidade para se recuperar de falhas e a previsibilidade do programa
2.
3.
4.
Performance medido pela velocidade de processamento, tempo de resposta, consumo de recursos computacionais, rendimento e eficincia Suporte combina a facilidade de realizar manuteno no programa, com a facilidade na realizao de testes, compatibilidade, facilidade de configurao, facilidade de instalao e facilidade em achar problemas
5.
O padro ISO 9126 foi desenvolvido em uma tentativa de se identificar os atributos chave de qualidade para um produto de software. Ele identificou 6 atributos: Funcionalidade o grau com que o software satisfaz necessidades definidas indicadas pelos seguintes sub-atributos: compatibilidade, preciso, interoperabilidade, conformidade, e segurana Confiabilidade a quantidade de tempo que o software est disponvel para utilizao, indicada pelos seguintes sub-atributos: maturidade, tolerncia a falhas, e capacidade de se recuperar de erros Usabilidade a medida que o software fcil de utilizar, indicado pelos seguintes subatributos: compreenso, operabilidade, e facilidade no aprendizado Eficincia a medida que o software otimiza a utilizao dos recursos do sistema, indicada pelos seguintes sub-atributos: comportamento no tempo, comportamento com o recurso Sustentabilidade a facilidade de manuteno, indicada pelos seguintes sub-atributos: facilidade de anlise, mutabilidade, estabilidade, e facilidade de teste Portabilidade a facilidade de se transpor um software de um ambiente para o outro, indicada pelos seguintes sub-atributos: adaptabilidade, facilidade de instalao, e facilidade de ser substitudo Como pode ser observado os fatores de qualidade deste padro ISO no proporciona medio diretamente. Porm um conjunto de atributos de software que valem apena se analisar.
2.
3.
4.
5.
6.
As mtricas de software podem ser classificadas em 3 categorias: Mtricas de produto - Descrevem caractersticas do produto como tamanho, complexidade, caractersticas referentes a design, performance e nvel de qualidade. Mtricas de processo - Usadas para melhorar o desenvolvimento e a manuteno do software. As principais medidas envolvem a eficcia na remoo de defeitos detectados durante o desenvolvimento, o tempo de resposta de um determinado processo, dentre outros. Mtricas de projeto - Descrevem as caractersticas do projeto e a execuo dele. Para fazer a medio utilizam-se dados como o nmero de desenvolvedores, o custo, o planejamento feito e a produtividade, por exemplo. De uma forma geral, as mtricas de qualidade de software esto mais focadas nos aspectos qualitativos do produto e do processo do que no projeto. No entanto, devemos analisar a qualidade de software durante todo o ciclo de vida do software incluindo, para tanto, mtricas para medir em nvel de qualidade na manuteno do processo.
3.1.
Meios de avaliao
Embora existam muitas formas de medir a qualidade de um software alguns indicativos merecem destaque, so eles: Conformidade: Um programa precisa operar corretamente ou ter pouco valor para os usurios. Conformidade o medida com que o software se comporta de acordo com a funo desejada. A medida mais usada para conformidade a de defeitos por KLOC (milhares de linhas de cdigo), na qual um defeito definido como sendo uma no de conformidade de requisitos. Um defeito tambm pode ser considerado como um problema reportado pelo usurio depois de o programa ter sido entregue para uso ou, de acordo com o IEE, qualquer anomalia no produto um defeito. Para fins de anlise de qualidade os defeitos so contabilizados em
perodos de por exemplo, um ano. A experiencia diz que mais 95% dos defeitos de um software so encontrados at 4 anos depois da concluso dos trabalhos e liberao do programa. A mtrica LOC (Linhas de cdigo lines of code, no ingls) muito simples, no entanto existem algumas divergncias na contagem das linhas. As principais variaes conhecidas so: Contar apenas linhas executveis; Contar linhas executveis e definies de dados; Contar linhas executveis e definies de dados e comentrios; Contar linhas executveis e definies de dados, comentrios e linhas de controle de linguagem; Contar como linhas fsicas; Contar somente as linhas terminadas em delimitadores (da linguagem). A diferena no tamanho do programa, resultante das diferentes forma de contagem das linhas difcil de mensurar. No se sabe qual mtodo resulta em um nmero maior. Em algumas linguagens como BASIC, PASCAL e C vrias intrues podem ser descritas em uma nica linha (fsica). Por outro lado, declaraes de dados podem requerer vrias linhas. Outras linguagens, como FORTRAN, que tem um formato de colunas fixas podem ter o nmero de linhas fsicas e instrues bem prximos. Manutenibilidade: manutenibilidade a facilidade com a qual um programa pode ser corrigido se ocorrerem erros, adaptado se o meio mudar ou aprimorado se o cliente desejar. No existe uma maneira de medi-la diretamente, no entanto, podemos usar medidas indiretas. Uma mtrica simples, orientada ao tempo a MTTC ( tempo mdio de modificaes, do ingls mean-time-to-change), o tempo mdio que se gasta para analisar a nova modificao solicitada, criar a interface, implementar, testar e distribui-la para todos os usurios. Ou seja, quanto maior a manutenibilidade de um programa, menor ser seu MTTC em relao aos demais, quando comparadas mudanas/implementaes de mesmo tipo. Hitachi usou uma mtrica orientada ao custo chamada spoilage, que indica o custo para corrigir um defeito encontrado depois que o software foi entregue aos usurios finais. Quando a mdia spoilage de um projeto inteiro lotada em funo do tempo, o administrador do projeto pode determinar se a manutenibilidade do software produzido est melhorando ou no e tomar as atitudes cabveis. Integridade: A intergridade do sotware tem se tornado cada vez mais importante nessa poca de hackers e firewalls. Este atributo mede a habilidade de um sistema de resistir a ataques segurana, sejam eles intencionais ou acidentais. Ataques podem ser feitos em qualquer um dos 3 componentes de um software: programa, dados e documentos. Para medir integridade dois atributos adicionais precisam ser definidos: ameaa e segurana: Ameaa a probabilidade de um ataque de um tipo especfico acontecer em um dado momento. Segurana a probabilidade de um ataque de um determinado tipo ser repelido. Portanto, a integridade de um sistema pode ser definida como: Integridade =
1 X 1 ] [ ameaa segurana ,para cada ataque.
Usabilidade: A usabilidade depende de quanto familiarizado com o usurio est o desenvolvedor, e pode ser quantificada em termos de 4 caractersticas: (1) o conhecimento
fsico e intelectual necessrio para estudar o sistema, (2) o tempo requerido para ficar moderadamente eficiente no uso do sistema, (3) o aumento da produtividade quando o sistema usado por algum moderadamente eficiente, (4) uma avaliao subjetiva (alguma vezes conseguida atravs de um questionrio) do usurio.
A figura acima mostra a relao entre essas especificaes, cujos conceitos veremos a seguir: Qualidade interna a totalidade de caractersticas do produto de software na viso interna. A qualidade interna medida e avaliada em termos dos requisitos de qualidade interna. Detalhes da qualidade do produto de software podem ser melhoradas durante a implementao, reviso e teste do cdigo, mas a natureza fundamental da qualidade do produto de software representada pela qualidade interna permanece inalterada a menos que se planeje novamente. Qualidade externa estimada a qualidade que estimada ou prevista para o produto sinal de software em cada estgio de desenvolvimento para cada caracterstica de qualidade, baseada no conhecimento da qualidade interna. Qualidade externa a totalidade de caractersticas do produto de software do ponto de vista externo. a qualidade quando o software executado, que tipicamente medida e avaliada durante o teste de um ambiente simulado com dados simulados usando mtricas. Durante o teste, a maioria das falhas deveria ser descoberta e eliminada. No entanto, algumas falhas ainda podem permanecer mesmo aps o teste. Como difcil corrigir a arquitetura do software ou outros aspectos fundamentais de projeto do software, o projeto essencial normalmente permanece inalterado por todo o teste.
Qualidade em uso a viso do usurio da qualidade do produto de software quando utilizado em ambiente e contexto de uso estabelecidos. Ela mede o quanto os usurios podem alcanar seus objetivos em um ambiente particular, em vez de medir as propriedades do software propriamente dito.
Uma forma de avaliar essas caractersticas atravs de uma tabela de avaliao respondida pelos usurios, como exemplificada a seguir:
Subcaracterstica Adequao Acurcia (preciso) Interoperabilidade Conformidade Segurana de acesso Maturidade Tolerncia a falhas Recuperabilidade Intelegibilidade Apreensibilidade (Aprendizagem) Operacionalidade Tempo Recursos Analisibilidade (Legibilidade) Modificabilidade
Pergunta-chave 1.1 Faz o que apropriado? 1.2 Faz o que foi proposto da melhor forma? 1.3 Interage com outros sistemas? 1.4 Est de acordo com as normas, leis e etc.? 1.5 Permite o acesso no autorizado aos dados?
Sim X X X
No
X X 3 X X X 3 X X X 3 x 1 2
Total parcial Confiabilidade imune a falhas? Total parcial Usabilidade fcil de usar?
2.1 Apresenta frequentemente falhas? 2.2 Ocorrendo falhas, reage de apropriada? 2.3 Recupera dados em casa de falha?
forma
3.1 fcil entender o conceito e a aplicao? 3.2 fcil aprender a usar? 3.3 fcil de operar e controlar? 4.1 O tempo de resposta rpido? 4.2 Utiliza poucos recursos? 5.1 fcil de encontrar uma falha, quando ocorre? 5.2 fcil modificar e adaptar?
0 X 1 X X
Estabilidade Testabilidade Adaptabilidade Capacidade de ser instalado Conformidade Capacidade para substituir
5.3 H grande risco quando se faz alteraes? 5.4 fcil testar quando se faz alteraes? 6.1 fcil adaptar a outros ambientes? 6.2 fcil instalar em outros ambientes? 6.3 Est de acordo com padres portabilidade? 6.4 fcil usar para substituir outro? de
X X 1 X X X X 4 15 0 6 3
Qualidade em uso
O Modelo de Qualidade em Uso do produto de software se preocupa em conceituar e avaliar a qualidade do produto de software sob o ponto de vista do usurio, dentro de um ambiente e um contexto estabelecido de utilizao. Qualidade em Uso a viso de qualidade que o usurio tem do software e medida em termos do resultado da utilizao do software. a capacidade que o produto de software tem de atender aos anseios e s necessidades dos usurios em seu prprio ambiente de trabalho. Portanto, Qualidade em Uso de um produto depende do tipo de usurio que o est utilizando. Os atributos da qualidade em uso so categorizados em quatro caractersticas: efetividade, produtividade, segurana e satisfao.
Efetividade: definida como sendo a capacidade do produto de software possui de possibilitar ao usurio atingir metas especificadas com acurcia e completeza, em um contexto de uso especificado. Produtividade: definida como sendo capacidade do produto de software possui de possibilitar aos usurios utilizar uma quantidade adequada de recursos em relao efetividade alcanada em um contexto de uso especificado. Segurana: definida como sendo a capacidade do produto de software possui de oferecer nveis aceitveis de risco de danos a pessoas, negcios, software, propriedade ou ao ambiente,
em um contexto de uso especificado. Satisfao: refere-se capacidade do produto de software satisfazer usurios em um contexto de uso especificado. No que se refere satisfao do cliente, podemos ressaltar ainda que segundo a NBR ISO 9001, como uma das medies do desempenho do sistema de gesto da qualidade, a organizao deve monitorar informaes relativas percepo do cliente sobre se a organizao atendeu aos requisitos do cliente. Os mtodos para obteno e uso dessas informaes devem ser determinados. As principais abaixo: mtricas de satisfao constam na tabela
este denota um nvel de maturidade a ser alcanado pelas empresas, visando ajud-las no desenvolvimento e manuteno dos projetos de software, como tambm melhorar a capacidade de seus processos. Aps a verificao do estgio da empresa, verifica-se qual a prxima etapa a ser alcanada e quais as competncias que devem ser adquiridas neste processo. Esta fase importante, pois permite alcanar o sucesso e, conseqentemente, melhoria na qualidade dos servios e produtos fornecidos pela rea de tecnologia da Empresa. O CMMI est dividido em cinco estgios (nveis de maturidade): Nvel 1: Realizao Estgio inicial; Nvel 2: Gerenciado Gerenciamento de requisitos, planejamento de projeto, monitoramento e controle de projeto, gerenciamento de fornecedores, medio e anlise, garantia da qualidade do processo e do produto, gerenciamento de configurao; Nvel 3: Definido Desenvolvimento de requisitos, soluo tcnica, integrao do produto, verificao e validao, foco no processo organizacional, definio do processo organizacional, treinamento organizacional, gerenciamento de riscos, gerenciamento integrado do projeto, anlise da deciso e resoluo; Nvel 4: Quantitativamente gerenciado Gerenciamento quantitativo do projeto, performance do processo organizacional; Nvel 5: Em otimizao Anlise causal e resoluo, inovao organizacional e implantao. A cada estgio esto associadas certas competncias, como veremos a seguir: 1- REALIZADO Estgio inicial completa falta de planejamento e controle dos processos. Os funcionrios esto focados basicamente em atividades corretivas que surgem a todo momento. 2-GERENCIADO So estabelecidos processos bsicos de gerenciamento de projeto para planejar e acompanhar custos, prazos e funcionalidades. Compromissos so firmados e gerenciados. A disciplina de processo permite repetir sucessos de projetos anteriores em aplicaes similares. Tipicamente, possui gerenciamento de projetos estabelecido; alguns procedimentos tcnicos escritos; acompanhamento de qualidade; gerncia de configurao inicial; atividades bsicas de medio e anlise. O sucesso depende basicamente do gerenciamento do projeto. 3-DEFINIDO Atividades de gerenciamento bsico e as de Engenharia de Software so documentadas, padronizadas e integradas em processos-padro. Todos os projetos de desenvolvimento ou manuteno de softwares utilizam uma verso de um desses processos adaptada s caractersticas especificas de cada projeto. Possui processos gerencias e tcnicos bem definidos, possibilidade de avaliao do processo; ferramentas e metodologias padronizadas; medies iniciais de desempenho; inspees e auditorias rotineiras; testes padronizados; gerncia de configurao; evoluo controlada dos processos tcnicos e gerenciais.
4-QUANTITATIVAMENTE GERENCIADO Mtricas detalhadas do processo de software e da qualidade do produto so coletadas. Tanto o processo como o produto de software so quantitativamente compreendidos, avaliados e controlados. Relatrios estatsticos so gerados. Tipicamente, encontra-se estabelecido e em uso rotineiro um programa de medies, a qualidade planejada por um grupo dedicado, sendo rotineiramente avaliada e aprimorada 5- EM OTIMIZAO A melhoria contnua do processo estabelecida por meio de sua avaliao quantitativa e da implantao planejada e controlada de tecnologias e idias inovadoras. Projetos-piloto so realizados para a absoro e internalizao de novas tecnologias. Tipicamente, um alto nvel de qualidade e de satisfao dos clientes alcanado rotineiramente, com grande foco na melhoria contnua. Deve-se lembrar de que no basta saber onde se deseja chegar; preciso traar o caminho que se ir trilhar para atingir o objetivo. Nesta tarefa, a metodologia CMMI tambm socorre, dividindo cada estgio em reas de processo e para cada uma delas so definidos dois conjuntos de metas: as especficas e as genricas. A essas metas, a definio do modelo recomenda prticas genricas divididas em um conjunto de caractersticas comuns que por sua vez se divide em quatro categorias. So elas: Comprometimento com a execuo Agrupa prticas relacionadas definio de polticas e responsabilidades, descrevendo aes para assegurar que o processo se estabelea e seja duradouro; Habilitao para execuo Agrupa prticas contendo pr-condies para o projeto, de forma a permitir a implementao adequada do processo; Direcionamento a implementao Agrupa prticas relacionadas ao gerenciamento do desempenho do processo; Verificao da implementao Agrupa prticas para reviso junto alta gerncia e avaliao objetiva da conformidade com processos, procedimentos e padres. As metas especficas, na maioria das vezes, esto focadas no negcio da empresa e buscam alinhar a metodologia CMMI s necessidades prprias; por sua vez as metas comuns focam em aspectos inerentes a qualquer empresa e devem ser considerados para a correta implementao da metodologia, de forma a garantir a maximizao dos resultados. As categorias acima descritas devero ser consideradas em qualquer estgio com o qual uma empresa se identifique dentro da metodologia exposta. Elas buscam direcionar as aes de forma a garantir que o ciclo de evoluo seja completado, possibilitando a implementao de uma evoluo contnua dos processos e do produto como um todo.
Histrico de Avaliaes At o ano de 2002, os EUA tinham realizado 1,5 mil avaliaes de CMMI, a ndia feito 153, o Reino Unido 103 e o Brasil apenas 15. Em 2004 a TATA Consultancy Services alcanou o nvel 5 em todas as unidades da empresa, tendo sido avaliada inclusive a unidade brasileira (a primeira empresa presente no Brasil a receber o nvel mximo na avaliao). Entre abril de 2002 e junho de 2006 foram conduzidas 1581 avaliaes em 1377 organizaes. Segue abaixo o resultado obtido pelas empresas na avaliao (resultados encaminhados para o SEI at 30 de junho de 2006): 18,2%: nvel 5 4,4%: nvel 4 33,8%: nvel 3 33,3%: nvel 2 1,9%: nvel 1 8,4%: sem qualificao. No Brasil, so apenas quatro empresas que conseguiram realizar a certificao at o final, ou seja, alcanaram o nvel 5 do CMMI (por ano da certificao): Ano 2004 2005 2006 2007 Empresa TCS (TATA Consultancy Services) Brazil IBM Brazil Politec Ci&T
eficientes que podem ser empregadas como as revises tcnicas formais que descreveremos posteriormente.
Falhas e Custos
Em um processo de software, falhas podem ser encontradas durante o desenvolvimento e aps a entrega do produto ao usurio. O objetivo principal das revises, discutidas anteriormente, o de identificar a maioria dos erros durante a produo do software de forma que poucos ou nenhum deles continuem presentes aps a entrega do produto. A presena de falhas no processo ou no produto normalmente causam nus ao projeto. Esses podem ser custos internos com retrabalho, conserto e busca da falha, ou aps a entrega do produto com resoluo de problemas, devoluo ou substituio do produto, suporte tcnico, e em casos mais graves pode gerar processos jurdicos para indenizaes por parte do cliente. Por isso, em um processo de software, vale a regra quanto mais cedo se descobrir uma falha melhor, e menos onerosa ela se torna. A figura 4.1, baseada em dados coletados do livro Software Engineering Economics (Boehm -1981), compara o custo de correo de erros em etapas diferentes do processo de software.
Fig
Um conjunto de estudos indicou que 50% a 65% de todos os erros de um processo de software so introduzidos na fase de design. Porm, tcnicas formais de reviso mostraram eficincia de 75% em descobrir falhas de design. A remoo dessas falhas antes que se propaguem para etapas posteriores diminui o custo dessas etapas. Em 1981, foi desenvolvido pela IBM um modelo de amplificao de falhas, que pode ser usado para ilustrar a gerao e deteco de erros durante as fases no desenvolvimento de um software. O modelo ilustrado na figura 4.2.
Fig Uma caixa representa uma etapa no processo do software, com os erros gerados nesta etapa. Revises falhariam em identificar erros gerados em etapas anteriores, ento esses se repetiriam, assim como alguns desses erros poderiam ser amplificados pelo trabalho na etapa atual, ambos so tambm representados na caixa. Ela tambm representa a eficincia no processo de deteco dos erros naquela etapa, que pode ser tanto devido s revises quanto pelos testes. A figura 4.3 mostra um exemplo hipottico de um processo de software. Neste exemplo consideramos que nenhum erro gerado nas fases de teste (o que uma estimativa otimista) e que 50% dos erros so detectados por cada fase de teste. No final nos deparamos com 12 falhas existentes na entrega do produto. A figura 4.4 mostra a melhora ocasionada neste processo pela adio de revises desde as primeiras etapas do processo, e a diminuio de falhas existentes na entrega do produto. Usando-se as estimativas de custos mostradas anteriormente pode-se ter uma idia da economia resultante da implantao de revises nos processos de software. Vale ressaltar que a eficincia na deteco de erros no processo de reviso funo da eficcia e do investimento nesta.
Fig
Fig
para revisores se prepararem para a reunio. O chefe de reviso tambm estuda o material e prepara uma agenda para a reunio. A reunio composta de 3 a 5 pessoas: o chefe de reviso, 2 ou 3 revisores e o responsvel pelo produto de reviso. Um dos revisores ficar responsvel por registrar o que foi determinado em cada reunio. O produtor apresentar o material enquanto os revisores o questionam. Ao fim de cada reunio os revisores devem decidir se o produto ser aceito, no ser aceito e ficar sujeito a nova reviso aps correo, ou ser aceito temporariamente visto correo de pequenos erros. Em cada reunio dessas produzido um resumo de reviso que identifica quem foi revisado, o que foi revisado, e as concluses. Esse documento incorporado no histrico do projeto.
Alm das informaes relativas aos problemas, pode-se calcular ndices de erros usando os dados obtidos. O ndice de erro de uma fase obtido como mostrado a seguir:
o ndice de erro so os pesos relacionados aos erros graves, moderados e triviais respectivamente so o numero de erros graves, moderados e triviais respectivamente o numero total de erros em uma etapa Um ndice de erro geral para um processo pode ser obtido atravs da soma ponderada dos ndices de erro de cada etapa, cujos pesos so maiores quanto mais tarde a etapa aparece no processo.
5. Concluso
A importncia da qualidade em qualquer ramo do conhecimento indiscutvel, especialmente na engenharia de software. O desenvolvimento de tcnicas e mtodos que permitam a avaliao do processo durante todo o ciclo de vida do software crucial para que o produto final entregue ao cliente esteja dentro das especificaes desejadas, assegurando a qualidade do produto. Adotando-se essa postura os custos diminuem e a necessidade de manuteno diminui e mesmo quando esta necessria feita de forma mais fcil. A portabilidade do sistema tambm outra caracterstica importante, j que as necessidades dos clientes esto em constante modificao. Esses e outros atributos de um produto aumentam significativamente a competitividade das empresas.
As pessoas esquecem o quo rpido voc fez uma coisa, mas sempre o quo bem ela foi feita. Howard Newton
Demora menos tempo fazer uma coisa direito do que explicar porque voc fez errado. Henry Longeflow
Bibliografia
Pressman, Roger. Software Engineering A practitioner's approach, 5th Edition, McGrawHill, 2005. Machado, Mrcio P. , Souza, Sotrio F., Mtricas e qualidade de software.Departamento de Informtica Universidade Federal do Esprito Santo. Inthurn, Cndida. Qualidade e Testes de Software , 2005. http://www.tiinside.com.br, acessado em 10/05/2008 http://www.wikipedia.org, acessado em 05/05/2008 Kan, Stephen H. ,Metrics and Models in Software Quality Engineering, 2th Edition, Addison Wesley, 2002.