Engenharia de Software I Processo Sala Limpa Set/2004 Mirian Ellen de Freitas Sandro Danilo Gatti.
Transcript of Engenharia de Software I Processo Sala Limpa Set/2004 Mirian Ellen de Freitas Sandro Danilo Gatti.
Engenharia de Software I
Processo Sala Limpa
Set/2004
Mirian Ellen de Freitas
Sandro Danilo Gatti
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
Project Planning Process Cleanroom Engineering Guide Software Development Plan
Project Management Process Project Record
Performance Improvement Process
Performance Improvement Plan
Engineering Change Process Engineering Change Log
Cleanroom Specification Processes
Processo Produtos
Requirements Analysis Process
Software Requirements
Function Specification Process
Function Specification
Usage Specification Process
Usage Specification
Architecture Specification Process
Software Architecture
Increment Planning Process
Increment Construction Plan
Cleanroom Development Processes
Software Reengineering Process
Reengineering Plan
Reengineered Software
Increment Design Process
Increment Design
Correctness Verification Process
Increment Verification Report
Processo Produtos
Cleanroom Certification Processes
Usage Modeling and Test Planning Process
Usage Models
Increment Test Plan
Statistical Test Cases
Statistical Testing and Certification Process
Executable System
Statistical Testing Report
Increment Certification Report
Processo Produtos
Fluxo entre os processos
[SEI]
Modelo de Processo Sala Limpa
SE
RG
Incremento 1
Incremento 2
Incremento 3
RG
RG
BSS FD CV CG CI
TP
SUT C
BSS FD CV CG CI
TP
SUT C
BSS FD CV CG CI
TP
SUT C
•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.
Atividades de controle de configuração A configuração segue os preceitos
do cliclo de desenvolvimento incremental.
Estabelecer requisitos
Formalizar a especificação
Desenvolver incremento
Entregar o software
Especificação Congelada
Pedido de mudança de requisitos
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.
Testes
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.