Você está na página 1de 27

Conceitos Históricos

Prof. Jean-Rémi Bourguet

Qualidade de Software e Testes de Sistemas


Qualidade

I Segundo o Dicionário Houaiss, a definição de qualidade é:


Atributo que designa uma característica boa de algo ou de alguém.
I As normas são leis utilizadas para indicar um padrão de qualidade.
I Há mais de quatro mil anos os egípcios estabeleceram o primeiro
padrão de medida de comprimento: o cúbito.
I Os egípcios teriam obtido precisões da ordem de 0,05%.

Processo de Desenvolvimento de Software (PDS) 2/12


Qualidade

I Segundo o Dicionário Houaiss, a definição de qualidade é:


Atributo que designa uma característica boa de algo ou de alguém.
I As normas são leis utilizadas para indicar um padrão de qualidade.
I Há mais de quatro mil anos os egípcios estabeleceram o primeiro
padrão de medida de comprimento: o cúbito.
I Os egípcios teriam obtido precisões da ordem de 0,05%.

Processo de Desenvolvimento de Software (PDS) 2/12


Qualidade

I Segundo o Dicionário Houaiss, a definição de qualidade é:


Atributo que designa uma característica boa de algo ou de alguém.
I As normas são leis utilizadas para indicar um padrão de qualidade.
I Há mais de quatro mil anos os egípcios estabeleceram o primeiro
padrão de medida de comprimento: o cúbito.
I Os egípcios teriam obtido precisões da ordem de 0,05%.

Processo de Desenvolvimento de Software (PDS) 2/12


Qualidade

I Segundo o Dicionário Houaiss, a definição de qualidade é:


Atributo que designa uma característica boa de algo ou de alguém.
I As normas são leis utilizadas para indicar um padrão de qualidade.
I Há mais de quatro mil anos os egípcios estabeleceram o primeiro
padrão de medida de comprimento: o cúbito.
I Os egípcios teriam obtido precisões da ordem de 0,05%.

Processo de Desenvolvimento de Software (PDS) 2/12


Software

I Enquanto trabalhava com John Von Neumann nas arquiteturas de


computador, John W. Tukey introduziu 2 palavras bit e software:
"Atualmente, os softwares que compreendem as rotinas interpretativas
cuidadosamente planejadas, compiladores e outros aspectos da programação
automática são pelo menos tão importantes para a calculadora eletrônica
moderna quanto seu ’hardware’ de tubos, transistores, fios, fitas e afins".
The American Mathematical Monthly [Tukey 1958]

u https://www.youtube.com/watch?v=sYmrjxCO2l4&t=60
Processo de Desenvolvimento de Software (PDS) 3/12
Software

I Enquanto trabalhava com John Von Neumann nas arquiteturas de


computador, John W. Tukey introduziu 2 palavras bit e software:
"Atualmente, os softwares que compreendem as rotinas interpretativas
cuidadosamente planejadas, compiladores e outros aspectos da programação
automática são pelo menos tão importantes para a calculadora eletrônica
moderna quanto seu ’hardware’ de tubos, transistores, fios, fitas e afins".
The American Mathematical Monthly [Tukey 1958]

u https://www.youtube.com/watch?v=sYmrjxCO2l4&t=60
Processo de Desenvolvimento de Software (PDS) 3/12
Pre-Engenharia de software

I A engenharia de software é uma área da computação que


praticamente nasceu junto com a própria computação.

u https://www.youtube.com/watch?v=au-gE-Ohbhg
Processo de Desenvolvimento de Software (PDS) 4/12
Qualidade de Software

I O rumo da Qualidade de Software nasceu na OTAN em 1968.


I O termo Engenharia de Software foi utilizado por Friedrich Bauer.
I Naquela reunião foi utilizado também o termo Crise do Software
para definir a situação em que a indústria do software atravessava.

u https://www.youtube.com/watch?v=0b5vp4Z2PKE
Processo de Desenvolvimento de Software (PDS) 5/12
Crise do Software

I A demanda por software cresceu, porém, o desenvolvimento do


software era desordenado e sem critérios ou técnicas adequadas.
I A complexidade dos problemas também e as técnicas de
desenvolvimento não eram suficientes para tal.
I Logo, ocorreu uma crise entre os componentes deste ambiente.

Processo de Desenvolvimento de Software (PDS) 6/12


Crise do Software

I Com a inexistência de engenharia de software, houve uma


multiplicação das dificuldades do desenvolvimento de software
frente ao rápido crescimento da demanda e da complexidade.

Processo de Desenvolvimento de Software (PDS) 6/12


Crise do Software

I Esta crise foi chamada de Crise do Software e foi nomeada assim,


pela primeira vez, por Edsger Dijkstra durante sua palestra para o
prêmio ACM Turing: The Humble Programmer [Dijkstra 1972].

u https://www.youtube.com/watch?v=1oVuQsxkhY0
Processo de Desenvolvimento de Software (PDS) 6/12
Crise do Software

I De acordo com Dijkstra na palestra The humble programmer:


A maior causa da crise do software é que as máquinas tornaram-se várias ordens de
magnitude mais potentes! Em termos diretos, enquanto não havia máquinas,
programar não era um problema; quando tivemos computadores fracos, isso se
tornou um problema pequeno, e agora que temos computadores gigantescos,
programar tornou-se gigantesco.

u https://www.youtube.com/watch?v=Kfatl-SVbS4
Processo de Desenvolvimento de Software (PDS) 6/12
Crise do Software

I Existem várias causas para a crise do software:


I os problemas estavam se tornando cada vez mais complexos;
I não existiam técnicas adequadas para solução dos problemas;
I não existiam técnicas que pudessem validar o software;
I o processo de desenvolvimento do software é complexo.

Processo de Desenvolvimento de Software (PDS) 6/12


Crise do Software

I A crise do software pode ser percebida de diversas formas:


I o orçamento não é suficiente e acaba estourando;
I o prazo é curto demais e acaba estourando;
I o software não atende aos requisitos (baixa qualidade);
I o processo de desenvolvimento de software é difícil de gerenciar;
I a manutenção do software fica difícil de ser efetuada;
I há problemas na documentação do software.

Processo de Desenvolvimento de Software (PDS) 6/12


Crise do Software

I Vários projetos continuam com os mesmos problemas hoje.


I Um problema detectado na década de 1960, com tecnologia
inexistente, é perpetuado até os dias atuais, com ampla tecnologia.

Processo de Desenvolvimento de Software (PDS) 6/12


Crise do Software

Segundo o Standish Group, as definições para os resultados são:


I Tipo 1 ou Sucesso: o projeto é completado dentro do prazo e
orçamento e entrega todos os requisitos inicialmente propostos.
I Tipo 2 ou Challenged (Mudança): o projeto é finalizado e fica
operacional, mas estoura o orçamento e o prazo.
I Tipo 3 ou Fracasso: o projeto literalmente fracassa ou é cancelado.

Processo de Desenvolvimento de Software (PDS) 6/12


Crise do Software

I Uma forma de controlar a crise do software, de acordo com Bauer,


seria o estabelecimento de usos da engenharia tradicional.
I Surgiu a primeira definição de Engenharia de Software:
"O estabelecimento e uso de sólidos princípios de engenharia para obter software
economicamente confiável e que trabalhe de forma eficiente em máquinas reais."
Friedrich L. Bauer em [Randell 1996]

Processo de Desenvolvimento de Software (PDS) 6/12


Engenheria de Software

I Os novos engenheiros de software passaram a imitar a engenharia


convencional para resolver problemas de qualidade e falhas.
I Durante as missões Apollo iniciais, Margaret Hamilton foi
consagrada como uma das primeiras engenheiras de software.
I Com o tempo, o termo "engenharia de software" ganhou o mesmo
respeito que qualquer outra disciplina técnica.

u https://www.youtube.com/watch?v=kYCZPXSVvOQ
Processo de Desenvolvimento de Software (PDS) 7/12
Engenheria de Software

A engenharia de software é uma área da engenharia aplicada à


produção de software

u https://www.youtube.com/watch?v=wdU9L3DqU2w
Processo de Desenvolvimento de Software (PDS) 7/12
Testes de Software

I Os testes são realizados com a intenção de descobrir erros e


defeitos em um sistema [Myers et al. 1979].
I Os testes de software podem ser usados para mostrar a presença de
defeitos, mas nunca para mostrar a ausência deles [Dijkstra 1972].

u https://www.youtube.com/watch?v=_fs8uMAUujw
Processo de Desenvolvimento de Software (PDS) 8/12
Qualidade de Software contemporâneo

I O governo americano criou, em 1984, o SEI (Software Engineering


Institute), vinculado à Universidade Carnegie Mellon.
I O objetivo é realizar estudos na área de engenharia de software.
I A conclusão do governo americano e do SEI é que para ter um
futuro melhor com software seria necessário organizar o presente.

u https://www.youtube.com/watch?v=LvixDOue7m8
Processo de Desenvolvimento de Software (PDS) 9/12
Qualidade de Software contemporâneo

I Durante a década 90, o próprio mercado colocou a garantia da


qualidade em lugar central no processo utilizando auditorias.
I A garantia de qualidade de software consiste em um meio de
monitorar os processos e métodos de engenharia de software.
I Os métodos pelos quais isso é realizado são variados e podem
incluir a garantia de conformidade com um ou mais padrões.

u https://www.youtube.com/watch?v=h2H-jyeBAxE
Processo de Desenvolvimento de Software (PDS) 9/12
Qualidade de Software contemporâneo

Processo de Desenvolvimento de Software (PDS) 9/12


História

80’s Os modelos prescritivos de desenvolvimento de software surgiram


(cascata, espiral, ...) para organizar e inventar padrões.
90’s Ferramentas para testes funcionais e de gerenciamento, automação
de testes de performance para algumas plataformas.
00’s International Software Testing Qualifications Board (ISTQB)
fundado em Edinburgh (Reino Unido).

Processo de Desenvolvimento de Software (PDS) 10/12


Evolução de Software

Processo de Desenvolvimento de Software (PDS) 11/12


Referências

Dijkstra, E. W. (1972).
The humble programmer.
Commun. ACM, 15(10):859–866.
Myers, G. J., Badgett, T., Thomas, T. M., and Sandler, C. (1979).
The art of software testing, volume 2.
Wiley Online Library.
Randell, B. (1996).
The 1968/69 nato software engineering reports.
History of Software Engineering, 37.
Tukey, J. W. (1958).
The teaching of concrete mathematics.
The American Mathematical Monthly, 65(1):1–9.

Processo de Desenvolvimento de Software (PDS) 12/12

Você também pode gostar