senac qss - 1) intro
TRANSCRIPT
Crise de Software - Chaos ReportCrise de Software - Chaos Report
1994 2007
Sucesso 16.2% 35%
Excesso Orçamento ou Não Cumprimento Escopo
52.7% 46%
Cancelamentos 31.1% 19%
Por que os Projetos Falham?Por que os Projetos Falham?
1 Requisitos Incompletos 13.1%
2 Falta de Envolvimento dos Usuários 12.4%
3 Falta de Recursos 10.6%
4 Expectativas Não-Realísticas 9.9%
5 Falta de Suporte Executivo 9.3%
6 Mudança de Requisitos 8.7%
7 Falta de Planejamento 8.1%
8 Não Atendimento em Tempo Hábil 7.5%
9 Falta de Gerenciamento de TI 6.2%
10 Desconhecimento da Tecnologia 4.3%
Outros 9.9%
Custo de Correção - Custo de Correção - Schach’s SummarySchach’s Summary
Qualidade: O que é?Qualidade: O que é?
“ “ A totalidade das características de uma A totalidade das características de uma entidade que lhe confere a capacidade de entidade que lhe confere a capacidade de
satisfazer às necessidades explícitas e satisfazer às necessidades explícitas e implícitas” (NBR ISO 8402)implícitas” (NBR ISO 8402)
Conceito de Qualidade de SoftwareConceito de Qualidade de Software
““Conformidade a requisitos funcionais e de Conformidade a requisitos funcionais e de desempenho desempenho explicitamente declaradosexplicitamente declarados, a padrões , a padrões de desenvolvimento claramente documentados e a de desenvolvimento claramente documentados e a
características implícitas que são esperadas de todo características implícitas que são esperadas de todo software profissionalmente desenvolvido”-Pressman software profissionalmente desenvolvido”-Pressman
Qualidade de Software: Qualidade de Software: Processo x ProdutoProcesso x Produto
QUALIDADE DO QUALIDADE DO PRODUTO DE PRODUTO DE SOFTWARESOFTWAREQUALIDADE DO QUALIDADE DO
PROCESSO DE PROCESSO DE DESENVOLVIMENTODESENVOLVIMENTO
Qualidade do produto e do processoQualidade do produto e do processo
Visão que aborda a qualidade do produto Funcionalidade, confiabilidade, usabilidade, eficiência,
manutenibilidade e portabilidade (ISO 9126 e NBR 13596).
Visão que aborda a qualidade do processo Dos requisitos do usuário à entrega do produto final,
existe um processo de desenvolvimento complexo e dividido em fases, que pode comprometer a qualidade do software.
Normas e ModelosNormas e Modelosde Qualidade de SWde Qualidade de SW
ISO 9126 - Norma para qualidade de produtos de softwareISO 9126 - Norma para qualidade de produtos de softwareISO 14598 - Guias para avaliação de produtos de softwareISO 14598 - Guias para avaliação de produtos de softwareISO 12119 - Norma para qualidade de pacotes de softwareISO 12119 - Norma para qualidade de pacotes de software
ISO 12207 - Processos de ciclo de vida do software. ISO 12207 - Processos de ciclo de vida do software. NBR ISO 9000-3 -Diretrizes para aplicação da norma ISO 9001 ao NBR ISO 9000-3 -Diretrizes para aplicação da norma ISO 9001 ao desenvolvimento, fornecimento e manutenção de software.desenvolvimento, fornecimento e manutenção de software.CMM- Capability Maturity Model. Modelo do Software Engineering CMM- Capability Maturity Model. Modelo do Software Engineering Intitute (SEI) para avaliação da maturidade de uma organização que Intitute (SEI) para avaliação da maturidade de uma organização que desenvolve software.desenvolve software.CMMI- Capability Maturity Model Integrated. Modelo do SEI que CMMI- Capability Maturity Model Integrated. Modelo do SEI que estende o CMM para avaliação de processos de software.estende o CMM para avaliação de processos de software.SPICE / ISO 15504 - Projeto da ISO/IEC para avaliação dos processos SPICE / ISO 15504 - Projeto da ISO/IEC para avaliação dos processos de desenvolvimento de software. de desenvolvimento de software. PSP - Personal Software Process - Modelo do SEI que define PSP - Personal Software Process - Modelo do SEI que define disciplinas para qualidade pessoal do engenheiro de software.disciplinas para qualidade pessoal do engenheiro de software.
Pro
cess
oP
roce
sso
Pro
du
toP
rod
uto
Desenvolvimento do SW Desenvolvimento do SW REQUISITOS
PRODUTO DE SW
AnáliseAnáliseAnáliseAnálise ProjetoProjetoProjetoProjeto ……
Validação + VerificaçãoValidação + Verificação
Qualidade do Processo de SoftwareQualidade do Processo de Software
RUPRUP
Workflows, Workflows DetailsWorkflows, Workflows Details
Workflow
DesignerUse-CaseAnalysis
Use-Case Realizations
Papel Tarefa
Artifato
Responsavel por
executa
Activity Detail
Qualidade do Produto de Software Qualidade do Produto de Software NBR 13596NBR 13596
Característica Subcaracterísticas Pergunta chave para a subcaracterística
Funcionalidade (satisfaz as necessidades?)
Adequação Acurácia Interoperabilidade Segurança de acesso
Conformidade
Propõe- se a fazer o que é apropriado? Faz o que propôs de maneira
correta? Interage com os sistemas especificados? Evita acesso não autorizado a
dados? Está de acordo com as normas,
leis, etc. Confiabilidade (É imune a falhas?)
Maturidade Tolerância a falhas Recuperabilidade
Com que frequência apresenta falhas? Ocor rendo falhas, como reage? É capaz de recuperar dados em caso de falhas?
Usabilidade (É fácil de usar?)
Inteligibilidade Apreensibilidade Operacionalidade
É fácil entender o conceito e a aplicação? É fácil aprender a usar? É fácil operar e controlar
Característica Subcaracterísticas Pergunta chave para a subcaracterística
Eficiência (Rápido e enxuto)
Tempo Recursos
Qual o tempo de resposta, velocid. de execução? Quanto recurso usa? Durante quanto tempo?
Manutenibilidade (É fácil de modificar?)
Analisabilidade Modificabilidade Estabilidade Testabilidade
É fácil encontrar uma falha, quando ocorre? È fácil modificar e adaptar? Há grande risco quando se faz alterações? É fácil testar quando se faz alterações?
Portabilidade (É fácil de usar em outro ambiente?)
Adaptabilidade Capacidade para ser instalado Conformidade Capacidade para substituir
É fácil adaptar a outros ambientes? É fácill instalar em outros ambientes? Está de acordo com padrões de portabilidade? É fácil usar para substituir outro sistema?
Qualidade do Produto de Software Qualidade do Produto de Software NBR 13596NBR 13596
Teste de SoftwareTeste de Software
Teste de software consiste em verificar dinamicamente o comportamento de um programa a partir de um conjunto finito de casos de teste
Os casos de teste são adequadamente selecionados a partir do domínio de execuções (potencialmente infinito)
Os resultados dos casos de teste são confrontados com o comportamento especificado para o software.