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
desenvolvimento
Alto ROI (return-on-investment)
de
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
Cleanroom
Cleanroom
Cleanroom
Management Processes
Specification Processes
Development Processes
Certification Processes
Cleanroom Management
Processes
Processo
Project Planning Process
Produtos
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
Function Specification
Process
Software Requirements
Usage Specification
Process
Architecture Specification
Process
Usage Specification
Increment Planning
Process
Increment Construction
Plan
Function Specification
Software Architecture
Cleanroom Development
Processes
Processo
Software
Reengineering
Process
Increment Design
Process
Correctness
Verification Process
Produtos
Reengineering Plan
Reengineered
Software
Increment Design
Increment Verification
Report
Cleanroom Certification
Processes
Processo
Produtos
Usage Modeling and Test Usage Models
Planning Process
Increment Test Plan
Statistical Test Cases
Executable System
Statistical Testing and
Certification Process
Statistical Testing Report
Increment Certification
Report
Fluxo entre os processos
[SEI]
Modelo de Processo Sala
Limpa
Incremento 1
BSS
FD
CV
CG
CI
SUT
RG
C
TP
Incremento 2
SE
BSS
FD
CV
CG
CI
SUT
RG
C
TP
Incremento 3
BSS
FD
CV
CG
CI
SUT
RG
C
TP
•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.
Especificação
Congelada
Estabelecer
requisitos
Formalizar
a especificação
Desenvolver
incremento
Pedido de mudança de requisitos
Entregar
o software
Atividades de controle de qualidade
do Produto - Certificação
T
e
s
t
e
s
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.
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
Armar/Desarmar (AD)
Ativar zona (ZS)
Consulta (Q)
Teste (T)
Alarme de pânico
Probabilidade
50%
15%
15%
15%
5%
Intervalo
1-49
50-63
64-78
79-94
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_summ
er/slides/cleanroom/ - tutoriais - Acessado em
12/09/2004.
http://www.uta.edu/cse/levine/fall99/cse5324/cr/clea
n/page.html - tutoriais - Acessado em 12/09/2004.
Download

Engenharia de Software I