300 likes | 420 Views
Engenharia de Software I. Processo Sala Limpa. Mirian Ellen de Freitas Sandro Danilo Gatti. Set/2004. Roteiro. Introdução Diferenças entre métodos convencionais Por não ganhou ampla utilização Fases do processo Gerenciamento do projeto Controle de qualidade Manutenção Conclusões.
E N D
Engenharia de Software I Processo Sala Limpa Mirian Ellen de Freitas Sandro Danilo Gatti Set/2004
Roteiro • Introdução • Diferenças entre métodos convencionais • Por não ganhou ampla utilização • Fases do processo • Gerenciamento do projeto • Controle de qualidade • Manutenção • Conclusões
Introdução • Proposto nos anos 1980 por Mill, Dyer e Linger • Baseado em matemática • Orientado a equipes • Voltado ao desenvolvimento e certificação de software de alta confiabilidade
Introdução (cont.) • Especificação Formal. • Ciclo de vida incremental de desenvolvimento. • Programação estruturada. • Verificação de qualidade de produto através de testes estatísticos independentes. • Construção de um sistema de software que exiba zero falhas durante seu uso.
Introdução (cont.) • Usado em desenvolvimento de software na indústria e em organizações como NASA e DoD, com os seguintes resultados [SEI]: • Aumento da qualidade • Aumento de produtividade de desenvolvimento • Alto ROI (return-on-investment)
Principais diferenças em relação a outros métodos • Segundo Pressman [PRE], o que torna o Sala Limpa diferente de outros métodos é: • Uso explícito de controle estatístico de qualidade; • Verificação de especificação de projeto usando provas baseadas em matemática; • Uso enfático de testes estatísticos para descobrir erros de alto impacto.
Porque ainda não ganhou ampla utilização • Crença de que é uma metodologia muito teórica, matemática e radical para o desenvolvimento de software; • A substituição de testes unitários por verificação de correção e controle estatístico de qualidade é muito diferente do método costumeiramente empregado pelos desenvolvedores de software; • A indústria de software ainda não possui um nível de maturidade ideal para aplicar o processo Sala Limpa.
Fases do Processo • O processo Sala Limpa é composto por 4 grandes processos (funções), cada qual com suas fases: • Cleanroom Management Processes • Cleanroom Specification Processes • Cleanroom Development Processes • Cleanroom Certification Processes
Cleanroom Management Processes Processo Produtos
Cleanroom Specification Processes Processo Produtos
Cleanroom Development Processes Processo Produtos
Cleanroom Certification Processes Processo Produtos
Fluxo entre os processos [SEI]
BSS BSS BSS FD FD FD CV CV CV CG CG CG CI CI CI SUT SUT SUT C C C TP TP TP Incremento 1 SE RG Incremento 2 RG Incremento 3 RG Modelo de Processo Sala Limpa • CG (geração de código) • CI (inspeção de código) • SUT (teste estatístico de uso) • C(certificação) • TP (planejamento de Teste) • SE (engenharia de sistemas) • RG (coleta de requisitos) • BSS (especificação de estrutura de blocos) • FD (projeto formal) • CV (verificação de correção)
Diretrizes para o gerenciamento do projeto • Baseado em equipes (de especificação, de desenvolvimento e de certificação), compostas de seis a oito pessoas, trabalhando e forma disciplinada. • Em projetos pequenos, os indivíduos podem trabalhar em várias equipes. • Em projetos grandes, pode-se obter equipes de equipes.
Diretrizes para o gerenciamento do projeto (cont) • Cada equipe é composta elementos com papéis de especificação, desenvolvimento, gerenciamento e certificação. • O gerente de projeto de software é o responsável pelo processo em geral. • Há ainda os papéis • engenheiro chefe de especificação (Specification Process) • engenheiro chefe de projeto/desenvolvimento Development Process (design) • engenheiro chefe de certificação (Certification Process).
Atividades de controle de qualidade do Processo - CMM • Segundo exposto em [SEI2], CMM e Sala Limpa são tecnologias complementares. • Podem ser utilizados outros modelos de qualidade, porém não se consegue aplicar o processo com processo de desenvolvimento empírico.
Especificação Congelada Estabelecer requisitos Formalizar a especificação Desenvolver incremento Entregar o software Pedido de mudança de requisitos Atividades de controle de configuração • A configuração segue os preceitos do cliclo de desenvolvimento incremental.
Testes Atividades de controle de qualidade do Produto - Certificação • Envolve 5 passos: • Cenários de uso devem ser criados; • Um perfil de uso é especificado; • Casos de teste são gerados a partir do perfil; • Testes são executados e dados de falhas são registrados e analisados; • A confiabilidade é calculada e certificada. certificação
Atividades de controle de qualidade do Produto - Testes • Modelos de uso + probabilidades de ocorrência • Casos de teste são gerados aleatoriamente a partir dos modelos de uso. • Medidas estatísticas da confiabilidade /fidedignidade (reliability) são computadas baseadas no resultados dos testes. • Se uma longa seqüência de testes é conduzida sem falha, o tempo médio de falhas (MTTF) é baixo e a confiabilidade do software pode ser considerada alta.
Atividades de controle de qualidade do Produto - Testes • Estímulo do Programa Probabilidade Intervalo • Armar/Desarmar (AD) 50% 1-49 • Ativar zona (ZS) 15% 50-63 • Consulta (Q) 15% 64-78 • Teste (T) 15% 79-94 • Alarme de pânico 5% 95-99 13-94-22-24-45-56 AD-T-AD-AD-AD-ZS 81-19-31-69-45-9 T-AD-AD-Q-AD-AD 38-21-52-84-86-4 AD-AD-ZS-T-T-AD [PRE]
Atividades de controle de qualidade - Certificação • Ao final do teste estatístico de uso os registros produzidos são combinados com esses modelos de amostragem, de componentes e de certificação para permitir o cálculo matemático da confiabilidade projetada para o componente de software.
Atividade de manutenção • Manutenção da especificação do sistema; • Correções realizadas a partir de feeedbak do cliente para equipe de desenvolvimento que solicita nova versão do incremento. • Combinação de novos incrementos com os já existentes. • Teste de todos os incremento integrado Teste de regressão do incrementos anteriores.
Conclusões • Abordagem diferentes das convencionais • Software com baixo índice de erros • Testes estatísticos • Diferentes domínios de aplicação • Orientado a equipes • Metodologia complementar a CMM
Referências • [PRE] R.S.Pressman. “Software Engineering. A Practitiner’s Approach”. 5ª edição, 2002, cap. 26. • [SOM] I. Sommerville. “Software Engineering”. 6ª ed, 2003, cap 19.4 • [SEI] Relatório de Referência. http://www.sei.cmu.edu/pub/documents/96.reports/pdf/tr022.96.pdf. Acessado em 10/09/2004 • [SEI2] http://www.sei.cmu.edu/str/descriptions/cleanroom_body.html. Acessado em 10/09/2004.
Sítios visitados • http://www.cleansoft.com. Sítio com vários artigos interessantes . Acessado em 10/09/2004 • http://www.rspa.com/spi/-- SITE COM REFERÊNCIAS - Acessado em 12/09/2004. • http://www.rspa.com/spi/cleanroom.html -- SITE COM TUTORIAIS • http://www.cc.gatech.edu/classes/cs3302_99_summer/slides/cleanroom/ - tutoriais - Acessado em 12/09/2004. • http://www.uta.edu/cse/levine/fall99/cse5324/cr/clean/page.html - tutoriais - Acessado em 12/09/2004.