Escolar Documentos
Profissional Documentos
Cultura Documentos
Definição
Cleanroom na engenharia de software é uma abordagem rigorosa que visa desenvolver software
de alta qualidade, livre de defeitos e confiável. Envolve especificações formais, verificação
estática, desenvolvimento incremental, testes baseados em caixa branca, uma equipe
qualificada e a coleta de estatísticas de defeitos. É frequentemente usada em projetos críticos
em termos de segurança e confiabilidade.
Breve histórico
A abordagem Cleanroom, ou "Sala Limpa," é uma técnica da engenharia de software que foi
desenvolvida na década de 1980 como uma abordagem sistemática e rigorosa para a criação de
software de alta qualidade, especialmente em ambientes críticos, como sistemas de controle
aéreo, sistemas médicos e outras aplicações de alta confiabilidade. O histórico do Cleanroom
pode ser resumido da seguinte forma:
Origem: O Cleanroom foi desenvolvido por Harlan Mills e sua equipe na IBM durante a década
de 1980. Mills era um renomado engenheiro de software que buscava abordagens mais formais
e rigorosas para o desenvolvimento de software.
Testes estatísticos: A técnica envolve testes estatísticos para medir a confiabilidade do software,
com base em modelos estatísticos.
Embora o Cleanroom não seja a abordagem mais amplamente adotada na indústria de software,
suas contribuições para a garantia de qualidade e confiabilidade em sistemas críticos continuam
a ser relevantes e influentes.
Necessidade de alta qualidade: Garantir alta qualidade no software é crucial devido à crescente
dependência da tecnologia em nossa sociedade. Software de alta qualidade é confiável, seguro
e atende às necessidades dos usuários. Qualidade significa que o software funciona conforme
esperado, sem erros, falhas ou problemas que possam prejudicar a experiência do usuário ou
causar danos.
Princípios Fundamentais
Formalismo Matemático: Princípio que envolve o uso de notações e técnicas matemáticas para
especificar e projetar software de maneira precisa e rigorosa, visando a redução de
ambiguidades e erros.
Teste Estatístico: Técnica que usa métodos estatísticos para avaliar a confiabilidade do software,
coletando dados de teste e analisando resultados para tomar decisões informadas sobre a
qualidade do sistema.
Especificação Clara: Envolve a criação de documentação e requisitos bem definidos e
compreensíveis, ajudando a garantir que todos os envolvidos no projeto entendam o que está
sendo desenvolvido, reduzindo mal-entendidos e erros.
Verificação Rigorosa: Prática de verificar e validar o software de forma sistemática, muitas vezes
usando métodos formais e técnicas de revisão, para garantir que ele atenda aos requisitos e
padrões estabelecidos.
Teste de Caixa Preta: Teste do software sem conhecimento interno do código-fonte, focando no
comportamento do sistema em relação aos requisitos. É uma abordagem de teste funcional que
verifica se o software atende às expectativas.
Teste Estatístico: Utiliza métodos estatísticos para avaliar a confiabilidade do software com base
em dados de teste, ajudando a determinar a qualidade e a conformidade do software com
padrões de qualidade estabelecidos.
Implementação Verificável
Revisões e Inspeções: Prática de realizar revisões regulares e inspeções do código-fonte por uma
equipe de verificadores independentes, a fim de identificar e corrigir problemas, melhorando a
qualidade e a verificabilidade do software.
Testes de Aceitação: São testes que verificam se o software atende aos critérios definidos pelos
usuários ou clientes. Eles são realizados com base nos requisitos e nas expectativas do cliente
para garantir que o software satisfaça seus objetivos.
Testes de Sistema: Esses testes verificam o comportamento do sistema como um todo, testando
a integração de diferentes componentes do software e sua conformidade com os requisitos do
sistema, garantindo que todas as partes funcionem em conjunto adequadamente.
Benefícios de Cleanroom
Exemplos de Sucesso
Sistema de Controle Ferroviário de San Francisco (BART): O Cleanroom foi empregado na criação
do sistema de controle do sistema de trânsito de trens de San Francisco (BART). Isso assegurou
que o sistema ferroviário funcionasse de maneira segura e confiável, atendendo a um grande
número de passageiros diariamente.