Você está na página 1de 43

Universidade Estadual do Piau UESPI Licenciatura Plena em Computao

Prof. Erivelton da Silva Rocha

Um conjunto internacional de padres que pode ser

usado

no

desenvolvimento

de

um

sistema

de

gerenciamento de qualidade em todas as indstrias chamado de ISO 9000.

Os padres ISO 9000 podem ser aplicados para uma

variedade de organizaes, desde a indstria de


manufatura at a indstria de servio.

Prof. Erivelton da Silva Rocha

O padro ISO 9001 o mais geral desses padres e se

aplica s organizaes que se dedicam a processos de


qualidade nas empresas que projetam, desenvolvem e mantm produtos.

Um documento de apoio (ISO 9000-3) interpreta a ISO

9001 para o desenvolvimento de software. Vrios


livros descrevem o padro ISO 9001.

Prof. Erivelton da Silva Rocha

O padro ISO 9001 no especificamente voltado

para o desenvolvimento de software, mas estabelece


princpios software. gerais que podem ser aplicados ao

O padro ISO 9001 descreve vrios aspectos do processo de qualidade e exibe os padres e os procedimentos organizacionais que a empresa deve definir.

Prof. Erivelton da Silva Rocha

Eles devem ser documentados em um manual de qualidade da organizao.

A definio de processo deve incluir descries

da documentao necessria para demonstrar


que os processos definidos foram seguidos durante o desenvolvimento do produto.

Prof. Erivelton da Silva Rocha

Prof. Erivelton da Silva Rocha

O padro ISO 9001 no define os processos de qualidade que devem ser usados. De fato, ele no restringe de modo nenhum os processos usados em uma organizao.

Isso permite flexibilidade por meio de setores industriais e


significa que pequenas empresas podem ter processos no burocrticos e, ainda assim, estar em conformidade com a

norma.

Prof. Erivelton da Silva Rocha

Contudo,

essa flexibilidade significa que voc ou a diferena entre os

no pode fazer quaisquer suposies sobre a similaridade ISO 9001. processos nas empresas em conformidade a

Prof. Erivelton da Silva Rocha

Os procedimentos de garantia de qualidade de uma organizao so documentados em um manual que define

o processo de qualidade.

Em alguns pases, as autoridades certificadoras asseguram

que o processo de qualidade, conforme expresso no


manual de qualidade, est em conformidade ao padro ISO 9001.

Cada vez mais, os clientes procuram pela certificao ISO 9000 de um fornecedor como um indicador de com que seriedade esse fornecedor trata a qualidade.
Prof. Erivelton da Silva Rocha

Algumas pessoas pensam que a certificao ISO 9000 significa


que a qualidade do software produzido pelas empresas certificadas ser melhor do que a das empresas sem certificao.

O ISO 9000 est simplesmente relacionado com a definio de processos que sero usados em uma empresa e a documentao associada, como processos de controle que

podem explicitamente mostrar que esses processos foram seguidos. Isso no est relacionado com a garantia de que os processos refletem as melhores prticas ou com a qualidade de produto.

Prof. Erivelton da Silva Rocha

10

Portanto,

digamos

que

uma

empresa

possa

definir

procedimentos de teste de produto que conduzam a testes

de software incompletos.

Assim, medida que esse processos forem seguidos e

documentados, a empresa estaria seguindo o padro ISO


9001.

Enquanto essa situao for indesejvel, no h dvida de


que alguns padres de empresas sero muito inadequados e traro pouca contribuio para a real qualidade de software.
Prof. Erivelton da Silva Rocha

11

Em um projeto de software so importantes


porque os documentos so o nico modo tangvel de representao do software e do processo desse.

Existem trs tipos de padres de documentao:

Prof. Erivelton da Silva Rocha

12

Esses padres definem o processo que deve ser


seguido para a produo de documentos.

Prof. Erivelton da Silva Rocha

13

Esses padres regem a estrutura e a apresentao fsica dos documentos.

Prof. Erivelton da Silva Rocha

14

Esses padres asseguram que todas as cpias eletrnicas de documentos sejam compatveis.

Prof. Erivelton da Silva Rocha

15

Universidade Estadual do Piau UESPI Licenciatura Plena em Computao

Prof. Erivelton da Silva Rocha

16

Tcnicas de Engenharia de Sistemas avanadas, linguagens de


programao aprimoradas e melhor gerenciamento de qualidade conduziram a aprimoramentos significativos na

confiabilidade da maioria dos softwares.

Entretanto,

sistemas

crticos,

como

os

que controlam

mquinas no assistidas, sistemas mdicos, comutadores de


telecomunicaes ou aeronaves necessitam de nveis mais altos de confiabilidade.

Prof. Erivelton da Silva Rocha

17

Nesses casos, tcnicas especiais de desenvolvimento podem

ser usadas para assegurar que o sistema seja seguro,


protegido e confivel.

Existem basicamente trs abordagens complementares para


desenvolver um software confivel:

Prof. Erivelton da Silva Rocha

18

O processo de projeto e de implementao do sistema deve


usar abordagens de desenvolvimento de software que ajudem a evitar erros de programao e, assim, minimizar o nmero de defeitos de um programa.

Prof. Erivelton da Silva Rocha

19

Os processos de verificao e validao so projetados para descobrir e remover defeitos de um programa antes que este seja implantado para uso operacional.

Prof. Erivelton da Silva Rocha

20

O sistema projetado de forma que os defeitos ou o comportamento inesperado do sistema, durante ocorra. a execuo, sejam detectados e

gerenciados de modo que a falha do sistema no

Prof. Erivelton da Silva Rocha

21

Fundamentais para a confiabilidade de qualquer sistema so as noes bsicas de redundncia e

diversidade.

Estas so estratgias cotidianas de proteo para evitarem falhas.

Prof. Erivelton da Silva Rocha

22

1 Se voc est investindo na bolsa, no deve alocar todos os seus investimentos numa nica empresa, pois poder perder tudo se a empresa

vier a falir (diversidade).

As pessoas guardam pilhas e lmpadas reservas em seus lares para que possam se recuperar rapidamente de falhas (redundncia).

Prof. Erivelton da Silva Rocha

23

2 Todos ns devemos fazer back-up de nossos computadores regularmente em casos de falha

no disco (redundncia) e, para proteger nossos


lares em termos de segurana, geralmente temos mais de um tipo de fechadura na porta principal de entrada (diversidade).

Prof. Erivelton da Silva Rocha

24

3 Sistemas crticos podem incluir componentes que replicam a funcionalidade de outros

componentes (redundncia) ou cdigo adicional


de verificao que no estritamente necessrio para que os sistemas funcionem (redundncia).

Prof. Erivelton da Silva Rocha

25

Portanto, os defeitos podem ser detectados antes que causem falhas, e o sistema poder ser capaz de dar continuidade operando caso os componentes

individuais falhem.

Se os componentes redundantes no forem os

mesmos que outros componentes (diversidade), uma


falha em comum no mesmo componente replicado no resultar na falha completa do sistema.

Prof. Erivelton da Silva Rocha

26

Em sistemas em que a disponibilidade um requisito crtico, servidores redundantes so

normalmente disponibilizados.

Eles entram em operao automaticamente caso um servidor designado falhe.

Prof. Erivelton da Silva Rocha

27

Algumas

vezes, para assegurar que ataques ao sistema no possam explorar uma vulnerabilidade comum, os servidores podem ser de tipos diferentes e executar diferentes Sistemas Operacionais. uso de Sistemas Operacionais diferentes um exemplo concreto de diversidade e de redundncia de software.

Prof. Erivelton da Silva Rocha

28

Infelizmente, incluir diversidade e redundncia nos sistemas torna-os mais complexos e, dessa maneira, mais difceis de compreender.

Portanto, mais provvel que os programadores


venham a cometer erros e menos provvel que pessoas, ao verificar os programas, encontrem erros.

Prof. Erivelton da Silva Rocha

29

Conseqentemente, algumas pessoas consideram melhor evitar a redundncia e a diversidade em um software para que o desenvolvimento do

sistema seja to simples e seguro quanto


possvel, e ter procedimentos de verificao e validao extremamente rigorosos.

Prof. Erivelton da Silva Rocha

30

Ambas

as abordagens so utilizadas em sistemas de segurana comerciais crticos. sistema de controle de vo do Airbus 340 redundante e tem diversidade, enquanto o sistema de controle de vo do Boeing 777 baseia-se em uma nica verso de software.

Prof. Erivelton da Silva Rocha

31

Um dos objetivos da pesquisa em Engenharia de Sistemas tem sido desenvolver ferramentas,

tcnicas e mtodos que conduzam a uma


produo de software livre de defeitos.

Um software livre de defeitos o que atende exatamente a sua especificao.

Prof. Erivelton da Silva Rocha

32

Entretanto, isso no significa que o software nunca ir

falhar. Podem ocorrer erros na especificao que sero


refletidos no software ou os usurios podem no compreender ou usar inapropriadamente o sistema de

software.

No entanto, a eliminao de defeitos do software tem

certamente impacto enorme no nmero de falhas do


sistema.

Prof. Erivelton da Silva Rocha

33

Para sistemas de pequeno e mdio porte, as tcnicas de Engenharia de Software provavelmente tornam possvel desenvolver software livre de defeitos. Para atingir esse objetivo, voc precisa usar

uma gama de
Software:

tcnicas

de

Engenharia

de

Prof. Erivelton da Silva Rocha

34

O uso de um processo de software confivel com


atividades de validao e verificao apropriadas essencial caso o nmero de defeitos em um programa deva ser minimizado e aqueles ignorados devam ser detectados.

Prof. Erivelton da Silva Rocha

35

A organizao que desenvolve o sistema deve ter uma cultura na qual a qualidade conduz o processo de

software. A cultura organizacional deve estimular os


programadores a criar programas livres de defeitos.

Padres de desenvolvimento e projeto devem ser


estabelecidos seguidos. e procedimentos devem estar disponveis para verificar se os padres foram

Prof. Erivelton da Silva Rocha

36

Deve haver uma especificao precisa (de preferncia formal) que defina o sistema a ser

implantado.

Muitos

defeitos

de

projeto

programao resultam de uma interpretao errada de uma especificao ambgua ou mal especificada.

Prof. Erivelton da Silva Rocha

37

tcnicas de verificao esttica, como o uso de


analisadores estticos, podem encontrar caractersticas anmalas de programao que podem ser defeitos.

A verificao formal, baseada na especificao


do sistema, tambm pode ser usada.

Prof. Erivelton da Silva Rocha

38

Uma linguagem de programao com tipos fortes


de dados, como Java ou ADA, deve ser usada para o desenvolvimento.

Se a linguagem tiver tipagem forte, o compilador

poder detectar muitos defeitos de programao


antes que sejam includos no programa a ser entregue.
Prof. Erivelton da Silva Rocha

39

Algumas

construes

da

linguagem

de

programao so mais complexas e propensas a erros do que outras, e ser mais provvel cometer erros caso sejam usadas.

A programao segura significa evitar, ou ao menos minimizar, o uso dessas construes.


Prof. Erivelton da Silva Rocha

40

Deve ser usada uma abordagem para projeto e


implementao de software baseada em ocultamento e encapsulamento de informaes.

Linguagens encorajado

orientada o

objetos, de

como

Java,

obviamente satisfazem essa condio. Deve ser desenvolvimento programas projetados para facilidade de leitura e compreenso.

Prof. Erivelton da Silva Rocha

41

As empresas de desenvolvimento de software admitem que seu software sempre conter

alguns defeitos residuais.

O nvel de defeitos depende do tipo de sistema. Produtos comerciais tm nvel relativamente alto de defeitos, embora estejam muito melhores

que h dez anos, enquanto sistemas crticos tm,


normalmente, uma densidade de defeitos menor.

Prof. Erivelton da Silva Rocha

42

A lgica para a aceitao de defeitos que, se e quando o sistema falhar, mais vantajoso pagar pelas conseqncias da falha do que descobrir e remover os defeitos antes da entrega final do sistema.

No entanto, a deciso de liberar o software com defeitos no s econmica. A aceitao poltica e

social, ou seja, a imagem da empresa no mercado, da


falha do sistema tambm devem ser consideradas.

Prof. Erivelton da Silva Rocha

43