análise e desenvolvimento de sistemas (a ds) prof. andré ... · demonstrada por um grande número...

55
Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: [email protected] / [email protected]

Upload: vankhuong

Post on 16-Nov-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Campus CapivariAnálise e Desenvolvimento de Sistemas (ADS)

Prof. André Luís BeliniE-mail: [email protected] /

[email protected]

MATÉRIA: QUALIDADE DE SOFTWARE

Aula N°: 01 Tema: Conceitos Iniciais sobre Qualidade

de Software Tópico do Plano de Ensino: 01

O QUE É QUALIDADE?“A qualidade é relativa. O que é qualidade parauma pessoa pode ser falta de qualidade paraoutra.”

G. Weinberg

A ideia de qualidade é aparentemente intuitiva,contudo, quando examinado mais longamente, oconceito se revela complexo.

HISTÓRIA DA QUALIDADE

É na atualidade que a preocupação e oestabelecimento de normas e padrões dequalidade estão ganhando espaço, no entanto,desde a antiguidade já existe a preocupação comesses padrões, além de medidas que assegurem aqualidade.

Os primeiros relatos datam de 4 mil anos, onde osegípcios estabeleceram um padrão de medida decomprimento: o cúbito.

QUALIDADE DE SOFTWARE

Qualidade de software constitui uma área cujademanda está crescendo significativamente, poisos usuários exigem cada vez mais eficiência,eficácia, dentre outras características dequalidade importantes para um produto tãoespecial como o software

ÓRGÃOS PADRONIZADORES E REGULADORES

ISO – International Organization for Standardization –a organização internacional para a padronização. Ela foiestabelecida em 1947, como uma organização mundial nãogovernamental e conta atualmente com mais de 100organizações nacionais de padronizações, representando maisde 130 países, responsáveis por mais de 95% da produçãoindustrial mundial.

O principal objetivo da ISO é o desenvolvimento de padrõesmundiais, com vistas a facilitar o intercâmbio internacional deprodutos e serviços e a criar uma cooperação intelectual,científica, econômica e técnica.

ÓRGÃOS PADRONIZADORES E REGULADORES

IEC – International ElectrotechnicalCommission, fundada em 1906, é a organizaçãomundial que publica normas internacionaisrelacionadas com eletricidade, eletrônica e áreasafins, tendo a participação de mais de 50 países.

A ISO, em conjunto com a IEC, elaborou um conjuntode normas que tratam, especificamente, da atualpadronização mundial para a qualidade dos produtosde software.

ÓRGÃOS PADRONIZADORES E REGULADORES

No Brasil, a ABNT foi fundada em 1940.Reconhecida como Foro Nacional deNormalização, é o único órgão responsável pelanormalização técnica no país, fornecendo a basenecessária ao desenvolvimento tecnológicobrasileiro. É uma entidade privada, sem finslucrativos, e representa o Brasil nas entidades denormalização internacional, como a ISO e a IEC.

ÓRGÃOS PADRONIZADORES E REGULADORES

A norma NBR ISO/IEC 25051 (2008) estabelecerequisitos de qualidade para pacotes de softwaree instruções para avaliação da conformidade desoftware. Pacotes de software, denominadosCOTS – Commercial Off-The-Shelf –, sãoprodutos de software definidos por umanecessidade orientada pelo mercado, disponíveiscomercialmente, cuja adequação para uso foidemonstrada por um grande número de usuários.

QUALIDADE DE SOFTWARE – POR QUEAPRENDER?

As organizações nacionais de software devemrepensar as premissas fundamentais quenorteiam uma disputa de mercado e enfrentar ogrande desafio de oferecer preços competitivos,menores prazos de desenvolvimento, menosdefeitos e maior satisfação dos clientes eusuários. Esses são alguns dos requisitos demercado para um software de qualidade.

QUALIDADE DE SOFTWARE – POR QUEAPRENDER?

As organizações se têm deparado com projetos desoftware cada vez maiores, mais complexos e degrande impacto na sociedade. O software fazparte do dia a dia de toda a sociedade. Eletransfere fundos entre instituições financeiras,pilota aviões, controla equipamentos emcentros médicos, diverte as crianças, tornapossível pesquisa científica de grandecomplexidade aritmética e muito mais.

QUALIDADE DE SOFTWARE – POR QUEAPRENDER?

A qualidade de software continua, no entanto,requerendo melhorias.

Um processo de qualidade não garante aprodução de um produto de software de

qualidade.

QUALIDADE DE SOFTWARE

A Engenharia de software tem uma de suas áreas, aQualidade de software, que objetiva garantir queespecificações explícitas e necessidades implícitasestejam presentes no produto, por meio da definição enormatização de processos de desenvolvimento.

Apesar de os modelos aplicados na garantia daqualidade de software atuarem, em especial, noprocesso, o principal objetivo é garantir um produtofinal que satisfaça às expectativas do cliente, dentrodaquilo que foi acordado inicialmente.

QUALIDADE DO PRODUTO

Existem várias propostas de definição paraqualidade de produto. Crosby (1979) afirma:“Qualidade é conformidade com os requisitos”.Essa definição foi utilizada na manufatura,porém serve para engenharia de software. Alémdisso, menciona que é preciso definir qualidadedessa forma, principalmente porque a qualidadedeve ser gerenciada.

PRINCIPAIS ERROS - EXEMPLOS

Qualidade significa ótimo, ou luxo, ou brilhante,ou de grande valor. A palavra “qualidade‟, muitas vezes, é usada em

expressões do tipo: boa qualidade, má qualidade eaté qualidade de vida. Mas, cada um que a ouveatribui um significado para o que seja qualidade devida; por exemplo, um sentido que não corresponde aoque um falante queira, realmente, dizer com areferida expressão.

PRINCIPAIS ERROS - EXEMPLOS

Qualidade é intangível, portanto não mensurável. Na verdade, qualidade é precisamente mensurável

por meio da mais antiga e respeitada medida, odinheiro. Ignorar esse fato tem levado gerentes aperder muito dinheiro. A qualidade é medida pelocusto da qualidade, que é a despesa, ou custo da nãoconformidade, que é o custo de fazer coisas erradas.

PRINCIPAIS ERROS - EXEMPLOS

As desculpas dos gerentes para não fazer nada, emrelação à qualidade de seus produtos, é que seunegócio é diferente e que a ciência da qualidade não osajudaria a fazer o que já fazem, e de forma aindamelhor. Eles ainda não compreenderam o real significado de

qualidade e continuam acreditando que ela significa luxo.Nesses casos, é importante explicar o real significado dequalidade e que é sempre mais barato fazer certo naprimeira vez.

PRINCIPAIS ERROS - EXEMPLOS

Os problemas de qualidade são originados portrabalhadores, principalmente aqueles quetrabalham diretamente na área de produção. Os funcionários da produção de uma fábrica são

acusados de provocar os problemas. Na realidade elespouco contribuem para a prevenção, ou não, dedefeitos, pois todo planejamento e criação foramdefinidos previamente, e eles são apenas seusexecutores.

PRINCIPAIS ERROS - EXEMPLOS

Qualidade é responsabilidade do departamento daqualidade. O departamento da qualidade tem como atribuição: medir a

conformidade de acordo com o que foi previamentedeterminado; reportar os resultados das medidas de formaclara e objetiva; liderar uma atitude positiva da empresa,na busca da melhoria da qualidade; prover e capacitar osfuncionários com ferramentas que podem auxiliar namelhoria da qualidade. Porém, o departamento daqualidade não deve executar o trabalho, pois, caso o faça, aempresa nunca mudará sua conduta.

QUALIDADE DE PRODUTO DE SOFTWARE

Pode-se definir qualidade de produto de software como aconformidade a requisitos funcionais e de desempenhodeclarados explicitamente, padrões de desenvolvimentoclaramente documentados e as características implícitasque são esperadas de todo software desenvolvidoprofissionalmente.

Por necessidades explícitas, pode-se entender requisitos dousuário; necessidades implícitas relacionam-se, porexemplo, com a performance de execução do sistema ou atémesmo com o cumprimento do cronograma e o orçamentodo desenvolvimento do produto

ASPECTOS GERAIS E EVOLUÇÃO DOSOFTWARE

Os produtos de software estão presentes nas maisdiversas áreas de atuação da vida cotidiana daspessoas. Algumas vezes, simplesmente sãousados sem grande ênfase; outras vezes, são aferramenta de trabalho; e ainda, em outras, vidassão colocadas sob sua influência

ASPECTOS GERAIS E EVOLUÇÃO DOSOFTWARE

SOFTWARE E SUAS CARACTERÍSTICASCOMO PRODUTO

Existem diferenças importantes entre produtosde software e produtos manufaturados que nãopodem deixar de ser notadas. As característicasinerentes à essência do software e diferenças emrelação aos produtos manufaturados são(CAPOVILLA, 1999):

SOFTWARE E SUAS CARACTERÍSTICASCOMO PRODUTO

Complexidade: normalmente, um produto desoftware tem muitas regras a serem cumpridas;muitas linhas de código a serem implementadas;e, frequentemente, diversos desenvolvedoresenvolvidos, que não só têm ideias diferentes, ealgumas vezes divergentes, mas que podem levarà mesma solução;

SOFTWARE E SUAS CARACTERÍSTICASCOMO PRODUTO

Invisibilidade e intangibilidade: o software éinvisível para o usuário. O que se vê são asconsequências da execução do software,diferentemente de um produto manufaturado. Ospróprios desenvolvedores necessitam utilizar modelospara representar o sistema de software. Essaintangibilidade causa grandes dificuldades decomunicação, tanto entre os elementos da equipe dedesenvolvimento como entre a equipe e o cliente,podendo acarretar problemas no produto de software;

SOFTWARE E SUAS CARACTERÍSTICASCOMO PRODUTO

Conformidade e modificabilidade: o softwareé a interface entre diversas entidades do meio noqual será utilizado: equipamentos, outrosprodutos de software, usuários e culturaorganizacional, entre outras. Sendo o componentemais maleável e adaptável do sistema, frequentesadaptações são realizadas no software, paraadequá-lo a essas entidades;

SOFTWARE E SUAS CARACTERÍSTICASCOMO PRODUTO

Produção sob medida: para software nãoexiste produção em série, cada usuário é umcliente, que usa o software à sua maneira, comênfase em partes diferentes;

SOFTWARE E SUAS CARACTERÍSTICASCOMO PRODUTO

Não se desgasta com o uso: em software os componenteslógicos são duráveis. A falha de software resulta de erros deprojeto ou de implementação, e os defeitos permanecem nosistema até serem percebidos devido à ocorrência de umerro quando uma determinada entrada acontece. Osdefeitos de projeto e “fabricação” provocam um grandenúmero de falhas logo no início, mas depois se comportamde maneira estável até sua obsolescência. O não desgastediferencia o software da quase totalidade dos produtosmodernos. Apenas a música e o cinema, por exemplo,aproximam-se do software sob esse aspecto.

SOFTWARE E SUAS CARACTERÍSTICASCOMO PRODUTO

Não tem prazo de validade: o software não ésensível a problemas ambientais e nem sofre qualquertipo de defeito devido a efeito cumulativo de seu uso.O software se torna obsoleto devido à evolução dohardware e, consequentemente, da tecnologia.Empresas produtoras de software proprietário, comuma base grande de usuários costumam planejar aobsolescência de seus produtos, para aumentarem assuas vendas.

SOFTWARE E SUAS CARACTERÍSTICASCOMO PRODUTO

O custo final do software é basicamente ocusto do projeto e do desenvolvimento:cópias do software podem ser reproduzidas emsegundos e distribuídas a vários clientes, com ocusto unitário do projeto e do desenvolvimento.

Software é o único produto que, quandoapresenta erro, o cliente paga para corrigir: nocaso de uma nova versão licenciada, esta pode terapenas os erros corrigidos.

INICIATIVAS PARA A QUALIDADE DEPRODUTO DE SOFTWARE

O produto de software, há algum tempo,necessita e busca soluções para a melhoria na suaqualidade – tanto em função de seu grau deimportância e integração na sociedade quantopelas falhas frequentes e com possibilidade deconsequências desastrosas.

Tudo isso sem deixar de mencionar, também, oalto custo e elevado tempo de desenvolvimento emanutenção.

DEFININDO QUALIDADE DE SOFTWARE

Qualidade de software pode ser vista, e é definidanas normas relacionadas a essa área, como umconjunto de características que devem seralcançadas em um determinado grau, para que oproduto atenda às necessidades de seu usuário,cuja participação é fundamental no processo.

QUALIDADE DE PROCESSO DESOFTWARE

O motivador deste assunto é a busca pelaqualidade de software, ou seja, qualidade tantodo produto como do processo de software.

A ideia atual de que se deve atuar na qualidadedo processo, para se atingir a qualidade doproduto de software, não pode ser vistaisoladamente, mas em composição com outrasabordagens.

DEFINIÇÃO DE PROCESSO DE SOFTWARE

ASPECTOS GERAIS

A flexibilidade na adaptação e definição de processos éequilibrada assegurando a consistência apropriadados processos em cada organização.

Essa flexibilidade é necessária para tratar asvariáveis de contexto, por exemplo: domínio deatuação, tipo de cliente, limitações de custo,cronograma e qualidade, dificuldades técnicas dotrabalho e experiência das pessoas que estãoimplementando o processo.

ASPECTOS GERAIS

Os padrões dentro da organização têm que atingirpadrões organizacionais, objetivos e estratégias quesejam apropriadamente tratados, além de dados elições aprendidas dos processos, para que possam sercompartilhados.

Tanto o produto de software como o produtomanufaturado têm como requisito, para um processode qualidade, a necessidade de ser uma atividadesistemática e passível de repetição,independentemente de quem a execute.

SITUAÇÃO DE MUITAS ORGANIZAÇÕESDE SOFTWARE

FATORES QUE DIFICULTAM ASMUDANÇAS

As organizações estão reagindo a crises constantes;

A ausência de guias, da mesma forma que existe nasdemais engenharias, de métodos testados e comprovadossobre como desenvolver e fazer manutenção de software.Boas práticas estão sendo utilizadas, mas são poucodisseminadas;

A maioria dos problemas nas organizações de software é denatureza gerencial, e não técnica. A tecnologia e acapacitação dos profissionais que essas organizações jápossuem, poderiam gerar melhor qualidade;

FATORES QUE DIFICULTAM ASMUDANÇAS

A alta velocidade de mudanças tecnológicas envolvidas,como o próprio hardware;

O baixo estímulo à participação do usuário no processode software, o que conduz a uma especificaçãoincompleta de suas necessidades;

A crescente demanda por novos processos de automação epela manutenção dos já desenvolvidos acarreta problemas.

A falta de conhecimento sobre como mudar essa realidade ea dificuldade em aplicar os princípios da qualidade aosoftware.

UM ERRO É UM DEFEITO?

Defeito:

Defeito é uma imperfeição de um produto. O defeitofaz parte do produto e, em geral, refere-se a algo queestá implementado no código de maneira incorreta.

Mas a palavra defeito não significa apenas umproblema que faz um programa não funcionar.Um programa defeituoso é um programa “quenão funciona como deve”

FALHA

Falha é o resultado errado provocado por umdefeito ou condição inesperada, como porexemplo, uma divisão por zero.

Os defeitos podem existir, mas nem sempre sãovisíveis. Falhas também podem ocorrer porfatores externos aos programa, como corrupçãode base de dados ou invasões de memória poroutros programas.

ISOLAR UM DEFEITO

Isolar um defeito consiste em determinar sobquais condições ele ocorre.

Isolar um defeito pode ser bastante difícil, poispara que um defeito seja descoberto, ele precisaacontecer com frequência, ou seja, de formarepetida.

ESTABILIZAR UM PROGRAMA

Estabilizar um programa é o termo geralmenteutilizado para referir-se a correções que resultamna diminuição na frequência de falhas.

Um programa estável apresenta poucas falhas –um indicativo de que deve possuir poucosdefeitos.

QUALIDADE E O SWEBOK

Uma das áreas da computação – a Engenharia deSoftware – passou por um estudo de umacomissão internacional de especialistas, visandouma definição das fronteiras que a delimitam.

Esse estudo foi conduzido no âmbito do IEEE echama-se SWEBOK (Software Engineering BodyOf Knowledge, ou Corpo de Conhecimento deEngenharia de Software)

DIVISÕES DA ENGENHARIA DE SOFTWARE

A Engenharia de Software é dividida o SWEBOKem total de onze áreas de conhecimento:requisitos, gerência de engenharia, projeto,métodos e ferramentas de engenharia,construção, processo de engenharia, testes,qualidade, manutenção, disciplinas relacionadase gerência de configuração.

ENTENDENDO O SWEBOK

O SWEBOK inclui a qualidade como uma área deconhecimento específica.

Pelo SWEBOK, a qualidade de software sesubdivide em outras três categorias:Fundamentos de Qualidade de Software,Processos de Gerência de Qualidade de Softwaree Considerações Práticas.

ENTENDENDO O SWEBOK

FUNDAMENTOS DA QUALIDADE

Este tópico abrange sobretudo a noção de qualidade,ou seja, sua definição. Essa definição, no caso de umproduto, materializa-se por meio da definição derequisitos e estes dependem de um modelo.

Aspectos éticos do trabalho com software têm setornado mais evidentes com nossa dependência datecnologia. Respostas sociais, éticas e de legislaçãoestão sendo desenvolvidas para procurar trataradequadamente cada caso.

PROCESSOS DE GERÊNCIA DAQUALIDADE

Os processos de gerência abrangem todos osaspectos de construção do produto.

Por conta disso, todos elementos de um projetoestão envolvidos: ferramentas como sistemaspara controle de versão e linguagens,metodologias para revisão do produto, técnicasorganizacionais e de administração de pessoas,etc.

CONSIDERAÇÕES PRÁTICAS

Este tópico contém observações de ordem prática,isto é, recomendações gerais sobre comotranscorre a execução das atividadesrelacionadas com qualidade.

Não há uma descrição explícita para este tópicono SWEBOK

EXERCÍCIOS / ATIVIDADES DE FIXAÇÃO

1. Dois clientes ao comprarem uma mesma camisaterão, possivelmente, opiniões muito diferentessobre o produto. Isto é um exemplo de ruído demedição de qualidade. Justifique sua resposta.

2. Um programa que não tem defeitos pode falhar?Por quê?

QUESTÃO PARA DISCUSSÃO EM GRUPO

A engenharia de software foi criada para resolveros problemas da crise do software, ou seja, paraque os softwares produzidos tivessem qualidade aum preço e prazos razoáveis e que pudessem sercorretamente planejados. Mas os fatores quelevaram pesquisadores a denominarem o termo“crise do software” estão ainda presentes. Discutase o termo crise é adequado e quais as principaisconquistas dos últimos trinta anos da área.

REFERÊNCIAS BIBLIOGRÁFICAS

GUERRA, Ana Cervigni; COLOMBO, ReginaMaria Thienne. Tecnologia da Informação –Qualidade de Produto de Software. PBPQSoftware, 2009.

KOSCIANSKI, André. Qualidade de Software:aprenda as metodologias e técnicas mais modernaspara o desenvolvimento de software. 2º Ed. – SãoPaulo: Novatec Editora, 2007.

DÚVIDAS? PERGUNTAS? ANGÚSTIAS?AFLIÇÕES?

Prof. André Luís BeliniE-mail: [email protected] /

[email protected]: http://profandreluisbelini.wordpress.com/

Página: www.profandreluisbelini.com.br