Projeto de Qualidade, Confiabilidade e Segurança de Software
do CNS-V
CE-230 Qualidade, Confiabilidade e Segurança de
Softwares
Prof. Adilson Marques da Cunha
Envolvidos:
Eliane
Santiago Ramos
Oiram José Barbosa dos Santos
José Fernando Basso Brancalion
Sergio Luis Pires Barros
Wellingtonn Vergilio Fortes
Wesley de Oliveira Ruas
Divisão de Ciência da
Computação
III – CONCLUSÕES e RECOMENDAÇÕES
IV – BIBLIOGRAFIA
1.1 - Motivação
Atualmente
conseguir softwares no mercado com grande padrão de qualidade é difícil. Hoje
poucas empresas têm certificações e a maioria desconhece totalmente o termo
Qualidade, Confiabilidade, Segurança de Softwares. Este projeto tem como
objetivo adequar o software CNS-V e trazer experiência para nós profissionais
de Tecnologia de Informação para suprirmos as necessidades do mercado.
1.2
- Contexto
Neste
projeto será demonstrado o programa de Qualidade, Confiabilidade de Softwares
que foi aplicado no sistema CNS-V conforme o padrão RUP – Rational Unified
Process. Este software faz parte do conjunto de software da estação Vigilante e
que no 3º nível de integração completará o Sistema Embarcado do Projeto TRIVIG.
1.3 – Objetivo
Trazer o máximo de Qualidade,
Confiabilidade e Segurança para o software do TRIVIG pois trata de um software
que pode trazer acidentes catastróficos ( DOD MIL-STD-882D) em caso de sua falha.
1.4 – Escopo
Será
aplicada o RUP e ferramentas da Rational e métricas do Borland Together e a
analise de risco FMEA. Com isso avaliaremos o nível de qualidade do software.
|
A Estação Vigilante tem a função de emitir
informações para o Triphibius. Ela é composta de 3 grupos de Sub-sistemas:
SEG – V
CTR – V
CNS - V
Este projeto tem a finalidade de consolidar a
Qualidade do subsistema CNS – V, o qual é composto pelos seguintes subsistemas:
Comunicação
Vigilância
Navegação
Foi definido o processo o RUP Small Projetcs da Rational à ser utilizado para o desenvolvimento e programa de qualidade do CNS-V. Este processo tem um menor número de Iterações que o processo padrão. Este projeto foi dividido em 6 iterações: Listex 2, 3, 4, 5, 6 e Projeto Final. Estas iterações foram distribuídas nas 4 fases do RUP: Iniciação, Elaboração, Construção e Transição. E foram aplicadas as disciplinas básicas. Assim foi atendido o prazo limite.

Etapas
1a Fase do RUP
- Iniciação
(Inception Iteraction) – ListEx 2
1a/2a Fase –
Iniciação/Elaboração
(Elaboration Iteraction ) - ListEx 3
2a/3a Fase -
Elaboração/Construção
(Elaboration to Construction
Iteractions ) Avaliação (Auditoria)
3a Fase
– Construção
(Construction 1st Iteraction
& Integration Level Zero) - ListEx 4
3a Fase
– Construção
(Construction 2nd Iteraction
& 1st and 2nd Integration Level) - ListEx 5
3a/4a Fase –
Construção/Transição
(Construction to Transition 2nd and 3rd Integrations
) - ListEx 6
4a Fase
- Transição
(Transition Iteraction & 3rd Integration
Level) – Avaliação ( Auditoria )
4a Fase – Transição
(TRIVIG Consolidation on
the 3rd Integration Level) -
Projetos Finais
1ª
Fase – Iniciação ( Listex 2 )
Nesta fase se desenvolveu o conjunto de artefatos que iriam descriminar as técnicas, padrões, normas e procedimentos no qual nos basearíamos para avaliarmos, quantificarmos e aplicarmos melhorias no software. Com isso nós definimos baeline que nosso projeto de Qualidade iria seguir. As normas utilizadas são todas Institucionalizadas assim possibilitando posteriormente uma certificação do CNS-V. As normas atacam o CNS-V em todos aspectos: software como Produto, Processo e Serviço.
Grupo – COMU
Norma IEEE Std 830-1998 – Norma IEEE Std 1016-1998
CMMI - Nível 1
- Inicial (Staged/Continous) - CMMI - Nívvel 2 - Repetível (Staged/Continous) /
CMMI - Nível 5 - Otimizado (Staged/Continous)
Norma NBR ISO
9000 – Norma NBR 5462
Norma IEE
802.11 – Norma ECSS-E-60
Grupo – VIGI
Norma
MIL-STD-498 – Norma DOD-STD-2167A
Norma
DHM-014-R01-2001 – Norma NSCA-007-1-2001
Grupo – VIGI
1ª/2ª
Fase Iniciação/Elaboração:
Foi definido o conjunto de ferramentas que auxiliaram os profissionais
do grupo de qualidade de softwares. Essas ferramentas tinha como finalidade
auxiliar os processos metódicos e a quantificar a qualidade do softwares em
vários aspectos. Baseando-se nas características da ferramenta foi criado um
plano de uso e aplicação.
Grupo – VIGI
2ª/3ª
Fase Elaboração/Construção
Esta etapa foi feita a primeira auditoria do Projeto de Qualidade do
CNS-V. Esta avaliação teve como objetivo confirma aplicação das normas, técnicas, padrões e procedimentos descriminados na fase de iniciação e verificar o andamento do projeto. Com isso o gerente de projeto obteve a visão de todo projeto e aplicou melhorias. Também foi definido os possíveis DEF( Defeito, Erro e Falha) do projeto e testou o conhecimento dos profissionais em relação ao Programa de Qualidade 5s . Os resultados foram entregue a cada profissional e assim possibilitou-o e incentivou-o a fazer melhorias em seu projeto e sua funcionalidade.
3ª
Fase – Construção
Com objetivo de criar a
estrutura necessária para o desenvolvimento se aplicou métricas de custo e
esforço. As métricas usadas foram
COCOMO e Ponto de Função. A métrica COCOMO (COCOMO Básico - Constructive
Cost Model – Boehm) teve como objetivo estimar o custo:
|
COCOMO Básico |
|
||
|
|
|
|
|
|
Coeficientes constantes
encontrado por Boehm |
|
||
|
|
|
|
|
|
Projeto Modo |
Orgânico |
Semidestacado |
Embutido |
|
ab |
2,4 |
3 |
3,6 |
|
bb |
1,05 |
1,12 |
1,2 |
|
cb |
2,5 |
2,5 |
2,5 |
|
db |
0,38 |
0,35 |
0,32 |
|
|
|
D = Cb.EDb =
2.5(152)0.35 = 14,5 meses |
Atualmente, um modelo de estimativa de custos de software se sai bem se puder estimar os custos de desenvolvimento de software de 20 % dos custos reais, em 70 % do tempo e dentro de seu próprio campo de ação (isto é, dentro das classes de projetos para as quais ele foi calibrado) .
Ponto de função foi aplicada para análise de :
• Produtividade= KLOC/pessoa-mês ; FP/pessoa-mês
• Custo=$/LOC ; $/FP
|
PF= |
46,53 |
|
|
|
|
|
|
Equipe |
7 |
|
|
Produtividade |
6,647142857 |
|
|
Investido |
R$ 10.000,00 |
|
|
Custo |
R$ 214,92 |
|
Com isso quantificamos Produtividade, Investimento , custo, tempo e esforço dos profissionais por mês. Assim foi possível mensurar as alterações da estrutura para desenvolvimento do software CNS-V.
Esta etapa também foi aplicadas as métricas para medir a eficiência do processo de desenvolvimento do Subsistema CNS-V e foi exibido o plano de correção dos tópicos deficientes, no qual foram metrificados. A avaliação foi feita através da ferramenta CASE Borland Together Control Center.
As métricas aplicadas foram: CC - Cyclomatic Complexity, DOIH - Depth Of
Inheritance Hierarchy, NOCC - Number Of Child Classe, NOC - Number Of Classes,
CR - Comment Ratio.
Justificativa
de uso das métricas citadas
CC - Cyclomatic Complexity : Esta métrica tem como função quantificar o número de desvios (If, while, Case) de um algoritmo. Esta métrica demonstra as possibilidades de caminhos que o algoritmo fornece. Tendo essa visão se pode fazer um analise de onde pode conter defeitos que não se demonstraram como erro.
DOIH - Depth Of Inheritance Hierarchy: Esta métrica contas o baixo nível de hierarquia de herança de uma classe ou interface é declarada. Valores altos implicam que uma classe está bastante especializada.
NOCC - Number Of Child Classe: Contas o número de classes que herdam de uma classe particular, demonstra o número de classes na árvore de herança de uma classe particular. E interessante para se ter visão da reusabilidade do software.
CR - Comment Ratio: Quantifica o número de comentários, um código bem comentado facilita a interoperabilidade dos programadores.
NOC - Number Of Classes: Conta o número de classes e a descriminação de complexidade do código.
|
Finalidade ·
Iniciar as ações corretivas
apropriadas para problemas e exceções que surgem no projeto |
|
Passos ·
Avaliar exceções e problemas ·
Determinar as ações corretivas
apropriadas ·
Emitir Solicitações de Mudança e/ou
Ordens de Trabalho |
Avaliar Exceções e Problemas
O
primeiro passo é avaliar cada um dos problemas identificados na Avaliação de
Status e na Lista de Problemas. A maioria dos projetos realiza uma
"Reunião de Problemas" freqüente (geralmente semanal) com essa
finalidade, com a participação do gerente de projeto, do arquiteto de software
e dos chefes de equipe.
Para
cada problema/exceção, selecione a abordagem desejada para a resolução
correspondente e determine os passos necessários para implementá-la.
Após
a definição da ação corretiva para cada problema ou exceção e das aprovações
necessárias, o gerente de projeto documenta o trabalho envolvido e efetua
Solicitações de Mudança e/ou Ordens de Trabalho para iniciar o trabalho. Em
geral, ele pode retirar problemas da Lista de Problemas nessa etapa, pois o
fechamento será rastreado de outra forma.
|
Artefatos Informados:
|
Artefatos Resultantes:
|
3ª/4ª Fase Construção/Transição
Foi criado e aplicado um plano
de Teste. Os teste feito foram:
Teste de Instalação: Instalar
o sistema em várias máquinas diferentes, com configurações diferentes, para
verificar toda a instalação, até eliminar todos os erros de instalação.
Software foi desenvolvido utilizando a
linguagem JAVA que é portável e roda em qualquer plataforma. Essa característica
da linguagem já foi testada e é garantida.
Teste
de Desempenho: Ferramenta: Rational
Quantify
Utilização do Quantify para análise de
desempenho, facilitando a detecção de “gargalos” que impedem a melhor
performance da aplicação.
Teste de Cobertura de Perfil:
Este teste tem por fim verificar se os requisitos de desempenho foram
alcançados. Ele é implementado e executado para determinar o perfil dos
comportamentos de desempenho do objetivo do teste e ajustá-los em função de
condições como, por exemplo, configurações de hardware ou de carga de trabalho.
Cobertura do código, adequação e
conformidade.
Indicadores:
Calls: número de chamadas a um
determinado método:
Analise de Risco
Criamos um artefato para mensurar o risco do projeto. Foi Usado a técnica FMEA (Failure Mode and Effect Analysis).
A metodologia de Análise do Tipo e Efeito de Falha, conhecida como FMEA (do inglês Failure Mode and Effect Analysis), é uma ferramenta que busca, em princípio, evitar, por meio da análise das falhas potenciais e propostas de ações de melhoria, que ocorram falhas no projeto do produto ou do processo. Este é o objetivo básico desta técnica, ou seja, detectar falhas antes que se produza uma peça e/ou produto. Pode-se dizer que, com sua utilização, se está diminuindo as chances do produto ou processo falhar, ou seja, estamos buscando aumentar sua confiabilidade.
4ª Fase – Transição
Nesta fase foi
consolidado a aplicação das Técnicas de Qualidade para desenvolvimento medição,
verificação e validação de Protótipos de Sistemas CNS-V, visando melhorar sua
eficiência, qualidade, confiabilidade e segurança, e foi apresentado o
relatório final do projeto pela equipe de desenvolvimento e qualidade. Com base
neste relatório será tiradas as conclusões de melhorias do software.
À
apresentação das técnicas foram feitas pelos seus desenvolvedores assim demonstrando o conhecimento dos planos
de qualidade. Os processos serão
auditados pelo Gerente de Projeto para se medir o teor de Qualidade envolvido no Projeto.
III – CONCLUSÕES
Este
projeto junto com a matéria CE-230 Qualidade, Confiabilidade e Segurança de
Softwares nos possibilitou ampliar a visão de desenvolvimento de software e
qualidade em âmbito geral. Anteriormente nós éramos incapazes de quantificar a
qualidade de um software e avaliávamos o software só por fatores empíricos. O
que tornava nossa opinião falsa.
Hoje,
baseando-se no conhecimento adquirido, podemos qualificar um software que tenha
qualidade e ainda mais podemos produzir um software com qualidade. E podemos suprimos
a deficiência do mercado, pois existem pouquíssimos profissionais capacitados
nessa área.
RECOMENDAÇÕES
Procure sempre melhorar as técnicas
aqui explanadas, pois estas técnicas farão a diferença em qualquer projeto no
qual se aplique. Pois o objetivo “ ter
o CONTROLE do Software em todos
os aspectos” é muito amplo e grandioso. E ter o controle é ter o poder.
IV – BIBLIOGRAFIA
- Rational Unified Process [RUP]
- Roteiro para as
Listas de Exercícios 4-5-6
Aula16.1cCes63Ce23503a(RoteiroparaListEx4-5-6-PrjFinal)v3
-Documentação encontrada no endereço: http://www.comp.ita.br/~cunha/ensino/2003/aulas/ces32ce230/aulas.htm, referente a notas de aula da matéria CE-230 do ITA.
- www.bfpug.com.br – Brazilian Function Point Users
Group – sobre Pontos de Função
- Engenharia de Software – Pressman Roger S., 5ª Ed, Editora Mc Graw
Hill
- http://www.isdbrasil.com.br/
- http://www.cmcrossroads.com/bradapp/links/scm-links.html
- http://www.csis.ul.ie/Modules/CS5122/SCM.htm
- http://www.lnl.net/books/scm/resources.html
- Testes e Qualidade de Software,
Universidade do Minho , 7-Junho-2003
- www.cpqd.com.br, CPqD - Centro de Pesquisa e
Desenvolvimento
em Telecomunicações Automação de
Teste de Software: Incremento de Qualidade e Produtividade em Sistemas de
Faturamento Telecom
Sindo Vasquez Dias