|
ITA - Instituto Tecnológico de Aeronáutica IEC - Divisão de Ciência da Computação Pós-Graduação Qualidade, Confiabilidade e Segurança de Software – CE-230 |
PROJETO FINAL
Sistema de Software
com Qualidade, Confiabilidade e Segurança para o Protótipo de Veículo Autônomo - PVA
Por:
Luciana Brasil Rebelo dos Santos - (GRUPO 3)
Professor:
Dr. Adilson Marques da Cunha
São José dos Campos, Novembro 2004.
ÍNDICE
1.3.2 – Enunciado da Alternativa de Solução Escolhida
1.5 –
Especificação de Requisitos
1.6 –
Ordem da Apresentação do Projeto Final
2.1 –
Linha Base (Base Line) Funcional
2.1.1 – Estimativas de Esforços por Pontos de Casos de Uso
2.2 –
Linha Base (Base Line) Alocada
2.2.1 – Caso
de Teste Estendido
2.2.4 –
Métricas de Qualidade de Software
2.2.5 –
Análise de Sensitividade de Software
2.2.6 –
Métricas de Confiabilidade de Software.
2.2.7 –
Métricas de Segurança de Software
2.2.8 –
Análise de Traçabilidade de Requisitos.
III –
CONCLUSÃO E RECOMENDAÇÕES
Na atual conjuntura mundial, tecnologias têm se desenvolvido com grande velocidade. Deste modo, a busca por Qualidade de Software se torna cada vez maior.
O Setor de Tecnologia da Informação do Brasil vem, já há algum tempo, se preocupando com a questão de qualidade de software. Para definir os caminhos a serem seguidos nesta busca por uma melhor qualidade do software produzido internamente, empresas vem instituindo Programas para Melhoria da Qualidade do Processo de Software, através de pesquisas, contatos com fornecedores de soluções e ferramentas CASE.
Neste sentido, a qualidade passou a ser exigida em normas internacionais e fator decisivo para aqueles que pensam em exportar seus sistemas.
No Mundo Globalizado, o Software não é mais um objeto de individualização como outrora, agora os Softwares tem um mercado único: o Mundo.
A Obtenção de maiores níveis de Qualidade, Confiabilidade e Segurança nos processos e produtos de Engenharia de Software não é uma tarefa trivial. São vários os fatores necessários para atingir tais níveis.
Dentre esses
fatores, utilizar I-CASE-E e obedecer a normas e padrões internacionais (ISO,
CMM, etc) garante às empresas ligadas a Software um padrão aceitável de
Qualidade, Confiabilidade e Segurança de seus produtos.
Medir quanto a
Qualidade, Confiabilidade e Segurança, o Protótipo de Veículo Autônomo – PVA
desenvolvido para o Laboratório Tecnológico da Fundação Casimiro Montenegro
Filho no ITA, a fim de aumentar o nível de “maturidade” do código-fonte e
reduzir o desperdício de recursos envolvidos.
Desenvolver, implementar e documentar o Sistema do
Protótipo de Veiculo Autônomo – PVA, com Qualidade, Confiabilidade e Segurança.
Sistema de Software com Qualidade, Confiabilidade e
Segurança para o Protótipo de Veículo Autônomo – PVA.
O Projeto
restringe-se ao Planejamento, Modelagem e a Aplicação de Métricas de Qualidade,
Confiabilidade e Segurança de Software, através de Artefatos RUP e Ferramentas
CASE, das Classes e dos 6 (seis) Casos de Uso selecionados como foco para
extensão e análise de fluxos básicos e alternativos provindos da Disciplinas de
Sistemas Embarcados de Tempo Real.
Na Seção 1
“INTRODUÇÃO” apresenta-se a Motivação, o Contexto, os Enunciados do Problema e
da Solução Escolhida, a Redução do Escopo e a Especificação de Requisitos deste
Projeto Final.
Na Seção 2 “DESENVOLVIMENTO” descreve-se o desenvolvimento do Protótipo de Veículo Autônomo - PVA,
por Fases do Processo Unificado da
Rational – PUR (Rational Unified Process – RUP):
1a Fase – Iniciação
(Inception);
2a Fase – Elaboração
(Elaboration);
3a Fase – Construção
(Construction); e
4a Fase – Transição(Transition).
Dentro da
Seção 2:
Na 1ª parte
será consolidada a linha base funcional apresentando o Plano de Testes, Casos Uso
de Teste ou Estimativas de Esforços Por Pontos de Casos de Uso, para o
Projeto PVA, elaborado pelos Alunos, enfocando a 1ª Fase - Iniciação
(Inception) do Processo Unificado. Nesta Fase cada dois Alunos foram alocados
na Disciplina para exercer um Papel, produzir um Artefato ou Documento, e
utilizar a Ferramenta de Software Básico MS Word;
Na 2ª parte será consolidada a linha base alocada apresentando o Plano de Utilização de uma Ferramentas CASE de Qualidade de Software no Projeto PVA, para medir a Qualidade do Software, enfocando a 2ª e 3ª Fases – Elaboração (Elaboration) e Construção (Construction) do Processo Unificado:
1) Pelo menos 1 (um) Caso de Teste Estendido
por Aluno;
2) Pelo menos 1 (um) Diagrama de Seqüência
por Aluno (focando Testes);
3) Um Diagrama de Classe integrado com os
Diagramas de Classes dos demais Alunos do Grupo, focando Testes;
4) A partir de Fragmentos de Códigos-Fonte
gerados, cada aluno deverá utilizar 03 (três) Métricas para medir Qualidade,
Confiabilidade e / ou Segurança do seu Software; e
5) Pelo menos 1 (uma) Análise de
Sensitividade de Software e e 1 (uma) Análise de Traçabilidade de Requisitos.
Na 3ª parte
será consolidada a linha base de produto.
Finalmente,
na Seção 3 “CONCLUSÕES e RECOMENDAÇÕES”, são sintetizadas as principais
conclusões, recomendações e sugestões para aperfeiçoamento deste Protótipo e
para a melhoria dessa matéria.
Foram utilizados os artefatos para a Fase de Iniciação do RUP. Os artefatos são mostrados abaixo.
O Método de Pontos de Caso de Uso - PCU baseia-se no Modelo de Casos de Uso, que é muito utilizado para identificar e documentar os Requisitos do Software nos termos dos Usuários. O Método de PCU representa uma maneira mais completa e articulada do que os demais métodos existentes, possibilitando Estimativas de Tamanhos e Esforços de Desenvolvimento de Software, logo na Fase Iniciação (Inception) de um Projeto de Software; e é Fácil de Usar.
Abaixo, é mostrado um gráfico comparando Estimativas de Esforços por Pontos de Casos de Uso com a Análise de Pontos de Função, que é a métrica mais utilizada:

Utilizamos esta métrica para medir o nosso sistema, conforme pode ser observado no documento abaixo:
Estimativa de Esforços por Pontos de Casos de
Uso
Enfocando os
aspectos de Qualidade, Confiabilidade e Segurança, os alunos do grupo
desenvolveram cada um dos artefatos mostrados abaixo e posteriormente fizeram
sua consolidação. Cada aluno ficou responsável por um caso de uso específico. O
caso de uso que será abordado neste documento é o caso de uso Entregar Pacote.
A
finalidade do Caso de Teste Estendido é identificar e comunicar formalmente as
condições específicas detalhadas que serão validadas para permitir a avaliação
do Caso de Uso Entregar Pacote.
O modelo de documento
Caso de Teste concentra-se nas Fases do RUP de Iniciação, Elaboração,
Construção e Transição aplicadas ao Projeto PVA – Protótipo de Veículo Autônomo.
Este
Caso de Teste Estendido descreve os Cenários de Testes do Caso de Uso Entregar Pacote, do sistema do Protótipo
de Veículo Autônomo – PVA.
A
partir do Caso de Uso Entregar Pacote foram encontrados os seguintes cenários:
|
Cenário 1 – A entrega do pacote ao PVT é bem sucedida. |
Fluxo Básico |
|
|
Cenário 2 – Não encontra o PVT. |
Fluxo Básico |
Fluxo Alternativo 1 – Não encontra o PVT. |
|
Cenário 3 – O PVT não tem espaço suficiente para receber a caixa |
Fluxo Básico |
Fluxo Alternativo 2 – Não há espaço no PVT para guardar a caixa. |
|
Fluxo Básico |
Fluxo Alternativo 3 – MCM
encontra-se Off-Line. |
A
partir dos Cenários anteriores, foram encontrados os seguintes Casos de Teste:
|
ID de Caso de Teste |
Cenário |
Coordenada |
Espaço no PVT |
Informar ao MCM |
Resultado Esperado |
|
CT 1 |
Cenário 1 – A entrega do pacote ao PVT é bem sucedida e é feita a
confirmação de entrega ao MCM. |
V |
V |
V |
Entrega do pacote ao PVT e confirmação desta entrega para o MCM. |
|
CT 2 |
Cenário 2 – O PVT não se encontra no local de destino. |
F |
V |
V |
Retorna mensagem de erro, recalcula nova rota. |
|
CT 3 |
Cenário 3 – O PVT não tem
espaço para receber a caixa |
V |
F |
V |
Retorna mensagem de erro, fim do Caso de Uso. |
|
CT 4 |
Cenário 4 – MCM encontra-se
Off-Line (desligado). |
V |
V |
F |
Se possível continua a missão e tenta a cada 5 segundos informar
novamente. |
Este
Caso de Teste representa a entrega do pacote ao PVT bem sucedida e é feita a
confirmação de entrega ao MCM.
O PVA
deve estar em perfeito funcionamento e carregando o pacote. O PVT deve estar no
ponto de destino e ter espaço suficiente para receber o pacote.
Coordenada de destino válida.
Espaço suficiente para guardar o pacote.
Deve
ser observado se o tempo estimado para a entrega do pacote enviado ao MCM está
correto.
N/A – Não Aplicável.
Entrega do pacote ao PVT bem
sucedida e confirmação de entrega ao MCM.
O PVA
inicia a realização da missão e o MCM tem o tempo estimado para a realização da
missão.
Este
Caso de Teste representa o cenário onde o PVA não encontra o PVT.
O PVA deve estar em correto
funcionamento e carregando o pacote.
Coordenada
de destino inválida.
Deve ser observado se uma
mensagem de erro foi retornada.
N/A –
Não Aplicável.
Uma
mensagem de erro informa que a coordenada de destino é invalida e recalcula uma nova rota, para que possa localizar
corretamente o PVT.
O PVA deverá parar ate que uma nova rota seja atribuída.
Este
Caso de Teste representa a incapacidade do PVA receber a caixa, porque não há
espaço suficiente.
O PVA
deve estar em perfeito funcionamento e carregando o pacote. O PVT deve estar no
ponto de destino.
Coordenada
de destino válida. Espaço insuficiente no PVT.
Deve ser observado se uma mensagem de erro foi
retornada.
N/A –
Não Aplicável.
Uma mensagem de erro informa que não há espaço para
colocar a caixa no PVT.
Fim
do caso de uso.
Este
Caso de Teste representa a incapacidade do PVA informar o tempo estimado ao
MCM, porque este se encontra Off-Line.
O PVA
deve estar em perfeito funcionamento e carregando o pacote. O PVT deve estar no
ponto de destino.
Coordenada
de destino válida.
Deve
ser observado se o PVA continua com a missão e se a cada 5 segundos tenta
novamente informar o resultado da missão para o MCM.
N/A –
Não Aplicável.
Novas
tentativas de envio do resultado da missão.
O PVA
continua com a missão.
Mais
detalhes sobre o Caso de Teste Estendido Entregar Pacote podem ser observados
no anexo Caso de Teste Estendido.
A seguir é mostrado o diagrama
de seqüência para o Caso de Teste Estendido Entregar Pacote.

Abaixo, é mostrado o diagrama de
classes integrado com os outros alunos do grupo. O Caso de Uso Entregar Pacote
possui a classe Pacote.

Foi utilizado um fragmento de código gerado no
projeto TRIPHIBIUS (Veículos Experimentais do Tipo Carro Anfíbio Voador),
realizado na disciplina CE-235 do ano passado, pois a aluna não estava cursando
a disciplina CE-235 neste semestre. Veja o código-fonte.
Foi utilizada a ferramenta
Borland Together for JBuilder:

Aí então, foram
escolhidas as métricas que mais se aplicam ao nosso sistema:

No caso, escolhemos
as seguintes métricas:
NORM - Number Of Remote Methods
Processa todos os métodos e construtores e
conta o número de vários métodos remotos chamados.
WMPC1 -
Weighted Methods Per Class 1
Mostra a soma da complexidade dos métodos por
classe, onde o método é ponderado pela sua Complexidade Ciclomática. O número
de métodos e a complexidade dos métodos envolvidos é o que indica quanto tempo
e esforço será requerido para o desenvolvimento e manutenibilidade da Classe.
WMPC2 -
Weighted Methods Per Class 2
Mostra a Complexidade de uma Classe,
assumindo que a classe que possui mais métodos é a mais complexa, e que o
método com mais parâmetros é analogamente mais complexo.
LOC - Lines Of Code
Tradicional medida de tamanho. Utilizado para
restrição para obtenção do Custo final do Software.
Utilizamos o Kiviat Graph para fazer a
avaliação das métricas:

Percebemos pelo resultado no item
anterior, que existem algumas normas fora do padrão de Qualidade de Software. Fazendo
algumas alterações no código (alteramos o número de chamadas a métodos) e
desprezando a métrica LOC, obtivemos o seguinte resultado mostrado a seguir:

Que indica que todos os
parâmetros medidos pelas métricas escolhidas estão dentro do esperado pelas
configurações.
Métricas de Confiabilidade de Software
em geral são categorizadas em dois tipos principais: aquelas que são projetadas
para contabilizarem os erros durante os testes e aquelas que consideram como
medida de confiabilidade o intervalo de tempo decorrido entre a ocorrência de
dois erros.
Dentre as métricas de
confiabilidade, podemos citar:
ü
Mean Time
Between Failures ou MTBF - É usada para relatar o tempo médio entre falhas, que
indica na média o período em que um sistema é utilizável;
ü
Mean
Time To Repair ou MTTR – É o tempo médio para reparos, que quantifica o tempo
necessário para recuperar o sistema de uma falha;
ü Mean
Time Between Service Outage ou MTBSO - taxas de erros que podem ser taxas de
perda de pacotes e quadros;
ü
Uptime e
Downtime – No Linux, o comando uptime é utilizado, inicialmente, para
mostrar a quanto tempo o sistema está em operação ininterruptamente. Além
disso, também mostra mais algumas informações interessantes: número de usuários
logados no momento, e as médias de cargas para os últimos 1, 5 e 15 minutos. Um
exemplo de saída do uptime é:
![]()
Este exemplo nos diz que a
máquina está em operação há 23 dias, oito horas e 45 minutos. Existem 9
usuários logados no sistema e as médias de carga do sistema nos últimos 1, 5 e
15 minutos são 0,17, 0,05 e 0,01, respectivamente.
Abaixo, segue
uma tabela de métricas de segurança que podem ser aplicadas ao projeto PVA
quando este estiver em pleno funcionamento:


Os requisitos
foram alcançados dentro do padrão, seguindo a ordem de construção dos papéis: primeiramente foi construída a linha base
funcional apresentando o Plano de Testes, Casos Uso de Teste ou
Estimativas de Esforços Por Pontos de Casos de Uso. Estes papéis foram
efetuados a partir dos Casos construídos na disciplina CE-235. Depois foi
efetuada a linha base alocada, e a partir dos Casos de Teste, foram montados os
Casos de Teste Estendidos e os respectivos diagramas.
Foram consolidados todos os papéis produzidos durante as fases do projeto. Estes papéis foram mostrados durante a apresentação conclusiva sobre o nosso sistema. O produto final foi satisfatório e cumpriu os requisitos de software preestabelecidos.
Como conclusão
específica para este Relatório de Projeto Final, temos:
O Projeto PVA,
para atender seus propósitos, foi subdividido em partes menores separadas por
suas especificidades e agrupadas por afinidades. Embora desenvolvido
separadamente por grupos distintos de alunos, a necessidade de integração do PVA
com as demais partes foi garantida pela utilização, ainda que acadêmica, de
ferramentas I-CASE-E (Ambientes integrados de Engenharia de Software Ajudados
por Computador), que refletem o estado da arte em termos de desenvolvimento de
software e suas respectivas métricas com relação à Qualidade, Confiabilidade e
Segurança.
Como conclusão
geral para este Relatório de Projeto Final, temos:
O uso constante de
ferramentas I-CASE-E garante o controle do Software do SubSistema PVA quanto à
qualidade, confiabilidade e segurança alertando o desenvolvedor de Software
através de métricas e gráficos calculados rapidamente, o que antes teria que
ser feito a mão, deixando tempo livre para análises mais nobres.
Como recomendações
futuras, temos:
Apesar do empenho
e dedicação das turmas das duas disciplinas, tanto de CE230 - Qualidade,
Confiabilidade e Segurança de Software, quanto de CE235 - Sistemas Embarcados
de Tempo Real, recomenda-se que seja ensejado maior sincronismo para que,
principalmente no momento em que métricas tenham que ser aplicadas na
disciplina CE-230, os códigos fontes já estejam prontos na disciplina CE-235.
Referências Bibliográficas