
ITA - INSTITUTO TECNOLÓGICO DE AERONÁUTICA
IEC - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
CE235 – Sistemas Embarcados de Tempo Real
PROF.: Adilson M. da CUNHA
São José dos Campos - SP, 25 de Novembro de
2004
Projeto
de Sistemas Embarcados de Tempo Real - CE 235
Grupo:
Tatiana Peixoto;
Izilton Ferraiolo;
Rafael Azevedo;
Rodrigo kuntz;
André Moraes;
Marcelo Marcos.
Feito
por: Tatiana Peixoto
Para o 2º Semestre de 2004,
objetivando a aplicação prática dos principais conceitos de Sistemas de
Software Embarcados e de Tempo Real das Disciplinas CES-63 e CE-235, foram
planejados como Estudos de Caso, o desenvolvimento de 02 (dois) tipos de
Protótipos de Sistemas de Software: o Protótipo do Sistema de Software
Embarcado e de Tempo Real de um Veículo Autônomo – PVA para a Disciplina CE-235 e o Protótipo do Sistema de Software Embarcado de um Veículo Tripulado –
PVT para a Disciplina CE-63.
O Protótipo de Veículo Autônomo - PVA consiste do desenvolvimento de um Sistema de Software de
Aplicação para ser embarcado no Hardware de um Veículo Autônomo, que deverá ser
capaz de funcionar, em tempo real e cumprir uma missão de buscar e encontrar
cargas (Computadores e Equipamentos Eletrônicos) localizados em 03 (três)
diferentes Módulos do LAB TEC da FCMF no ITA e transportá-las, de forma
autônoma, para um contêiner localizado na Porta Principal do LAB TEC, cujas
coordenadas são conhecidas.
O segundo tipo de Protótipo de Veículo Tripulado - PVT consiste do desenvolvimento de um Sistema de Software de Aplicação para ser embarcado no Hardware de um Veículo Tripulado, que deverá ser capaz de cumprir uma missão de transportar um contêiner carregado com Computadores e Equipamentos Eletrônicos, da Porta Principal do LAB TEC, cujas coordenadas são conhecidas, para um ponto de destino também conhecido, localizado no Campus do ITA.
É cada vez mais freqüente a
necessidade das empresas em substituir trabalho braçal repetitivo por sistemas
automatizados, ganhando com isto maior produtividade, eficiência, desempenho e
lucros maiores.
O desenvolvimento do Protótipo do PVA – Protótipo de Veículo Autônomo veio de encontro com estas
necessidades, propiciando desta forma o
estudo de caso para a possível aplicação de Sistemas Embarcados de Tempo Real
nas Empresas, além de exigir o estudo e aplicação do Processo Unificado através
do RUP – Processo Unificado da Rational, UML – Linguagem de Modelagem
Unificada, Ambientes Integrados de
Ferramentas de Engenharia de Software ajudadas por computador (Integrated
Computer Aided Software Engineering Environment Tools -I -CASE –E) no
desenvolvimento do projeto.
No contexto do PVA – Protótipo de Veículo Autônomo, desenvolvi em caráter didático o caso de uso “Corrigir
Rota”, que tem como objetivo
calcular o valor necessário (correção)
para o Protótipo de Veículo Autônomo - PVA retornar a rota original caso haja desvio de
rota, uma vez que trabalho na homologação de Sistemas de Navegação.
O PVA tem o objetivo de buscar,
carregar e transportar um determinado pacote de um local para outro.Tais locais
são pré-estabelecidos e geo-referenciados. Uma vez que o PVA recebe a
solicitação de carregar um pacote estabelecido, o mesmo se dirige ao destino e
executa a tarefa solicitada.
São funções do PVA: Seguir a
trajetória pré-estabelecida, retornar a rota pré-estabelecida uma vez que se
desvie, avisar todos os eventos para o Módulo Central de Monitoração (MCM),
identificar se o pacote é o correto, carregar o pacote e transportá-lo ao
destino.
Uma vez detectado uma Alteração
da rota o Caso de Uso Corrigir Rota se inicia. O Caso de Uso Corrigir
Rota armazena os dados de Deslocamento Angular, Deslocamento
Linear e última Posição Base, calcula a Amortização Linear e Angular
devido a flutuação dos dados de entrada,
e calcula o valor do Desvio e Correção. O sistema então
verifica o valor para saber se é válido. Se o valor for válido, o sistema envia
o mesmo para o Módulo de Navegação para
corrigir a trajetória, finalizando assim o Caso de Uso Corrigir Rota.
Aplicando a heurística do
objetivo identificando o problema,
encontramos uma solução possível através da análise de sua Adequabilidade,
Praticabilidade e Aceitabilidade.
Enunciado
do Problema do Sistema:
" Dotar o LAB TEC da FCMF do ITA de um Protótipo de
Veiculo Autônomo que seja capaz de funcionar em tempo real e cumprir uma missão
de buscar e encontrar cargas (Computadores e Equipamentos Eletrônicos) localizados
em 03 (três) diferentes Módulos do LAB TEC; cujas coordenadas são
conhecidas, e transportá-las de forma
autônoma para um contêiner localizado na
Porta Principal do LAB TEC, até o final do 2º semestre de 2004, com a
finalidade de substituir o trabalho braçal repetitivo por sistemas
automatizados, ganhando com isto maior
produtividade, eficiência, desempenho e lucros maiores."
Solução
Adotada para o Sistema:
" Desenvolver um Protótipo de Veiculo Autônomo de “Carregamento de
Carga”, composto por um sistema de software embarcado de aplicação em tempo
real, no LAB TEC da FCMF do ITA ainda este semestre, a fim de substituir o
trabalho braçal repetitivo por sistemas automatizados, ganhando com isto maior produtividade,
eficiência, desempenho e lucros maiores."
Intitulação:
Protótipo Veículo Autônomo de Carregamento de Carga – PVA_CC
Enunciado
do Problema do Módulo Corrigir Rota: " Dotar o Protótipo de Veiculo Autônomo de Carregamento de Carga (PVA_CC) de um módulo de Correção de Rota que seja capaz de calcular em tempo real a
correção da trajetória do veículo uma vez que é detectado a alteração da mesma,
até o final do 2º semestre de 2004, com a finalidade de substituir o esforço
humano por um sistema totalmente automatizado,
ganhando com isto maior produtividade, eficiência, desempenho e lucros
maiores."
Solução
Adotada para o Módulo Corrigir Rota: “Desenvolver um
módulo de Correção de Rota no Protótipo
de Veiculo Autônomo de Carregamento
de Carga (PVA_CC) ainda este
semestre, a fim de substituir o trabalho braçal por sistemas automatizados,
ganhando com isto maior produtividade, eficiência, desempenho e lucros
maiores."
Intitulação: Módulo de
Correção de Rota – MCR.
O Projeto de Sistema de Software do
PVA limita-se ao desenvolvimento conceitual do sistema e a geração de
fragmentos de software, para se estudar a viabilidade do projeto e
principalmente verificar as vantagens do emprego de boas técnicas e
procedimentos, tal como o RUP (Processo Unificado da
Rational) e ferramentas que auxiliam o desenvolvimento, tal como o Rose
Real Time.
A parte do hardware foi assumida
como pronta e funcional, principalmente quanto aos diversos sensores e motores
que o projeto exige, por exemplo, quando o módulo lê o código do pacote,
supomos que existirá um sensor de código de barras funcionando adequadamente e
o resultado da leitura será sempre um código inteligível para o sistema.
O Módulo “ Corrigir Rota” deverá :
·
Ser
capaz de armazenar os dados de Deslocamento Linear, Deslocamento Angular e
Posição Base;
·
Ser
capaz de amortizar os valores de Deslocamento Linear, Deslocamento Angular;
·
Ser
capaz de calcular o desvio executado pelo veículo;
·
Ser
capaz de calcular a correção da trajetória;
·
Ser
capaz de validar o valor calculado;
·
Enviar
a resposta para o Módulo de Navegação.
1.6.1.
Na
seção I, apresenta-se a Motivação, o Contexto, o Enunciado do problema e da
solução escolhida (Objetivação do Protótipo de Sistemas de
Software Corrigir Rota), a Redução de Escopo e a Especificação de
Requisitos deste Projeto Final.
1.6.2.
Na
seção II, apresenta-se os artefatos gerados nas fases de :
·
Iniciação
(Baseline Funcional) – Plano de
Desenvolvimento, Plano de Iniciação e
Iteração, Plano de Gerenciamento de Requisitos, Plano de Visão, Glossário,
Solicitação dos Principais Envolvidos, Lista de Riscos, Especificação
Suplementar, Modelo de Casos de Uso e Caso de Desenvolvimento do Protótipo Veículo Autônomo - PVA.
·
Elaboração
(Baseline Alocada) – Casos de Uso
Estendidos, Diagramas de Seqüências, Diagramas de Classe, Diagramas de
Transição de Estado, Código Sincronizado do módulo desenvolvido por cada aluno
(No meu caso “Corrigir Rota”). Geração
dos Relatórios dos Requisitos inseridos nas ferramentas de Gerenciamento de
Requisitos
·
Construção
(Baseline Produto) – Consolidação do
código desenvolvido (criação de 6 métodos e 6 chamadas e apresentação de um
ciclo de Reengenharia ( Engenharia Direta e Engenharia Reversa)), Inclusão dos artefatos Visão, Solicitação
dos Envolvidos e Especificação Suplementar na Ferramenta de Controle de Versão do Protótipo Veículo Autônomo - PVA.
1.6.3.
Na
Seção III, apresentam-se as conclusões e recomendações.
O desenvolvimento do projeto PVA foi
norteado pelo Processo Unificado da Rational – RUP – para pequenos projetos.
No
desenvolvimento dos sistemas procuramos exercitar as ‘Best Practices’ do
RUP : Desenvolver Iterativamente, Gerenciar Requisitos, Usar Arquiteturas
de Componentes, Modelar Visualmente
(UML), Verificar Continuamente a Qualidade, Gerencie Mudanças.
Os
artefatos gerados em todas as fases do desenvolvimento estão disponíveis na
internet no endereço : http://geocities.yahoo.com.br/ita_andremoraes/
Nesta seção serão apresentados os
Documentos do Grupo com ênfase nos artefatos designados para serem elaborados
enfocando a 1ª Fase - Iniciação (Inception) do Processo Unificado. O grupo
gerou os artefatos do Processo Unificado da Rational – RUP – para pequenos
projetos. Cada componente do grupo foi responsável pela elaboração de
determinados documentos, que tiveram suas linhas gerais definidas pelo grupo e
foram revisadas pelo grupo antes de publicar as versões finais na homepage.
Segue abaixo a divisão de trabalho
do grupo e os artefatos respectivos anexados.
Artefatos da Linha Base
Funcional
|
Tatiana e Izilton |
|
|
Tatiana e Izilton |
|
|
Rodrigo e Rafael |
|
|
André |
|
|
Marcelo |
|
|
André |
|
|
Tatiana e Izilton |
|
|
Rodrigo e Rafael |
|
|
Marcelo e Rafael |
|
|
Rafael e Rodrigo |
Nesta seção serão apresentados os
Documentos do Grupo com ênfase nos artefatos designados para serem elaborados
enfocando a 2ª Fase – Elaboração (Elaboration) do Processo Unificado. Para
Linha Base Alocada cada componente do grupo desenvolveu um caso de uso
específico. Neste relatório focaremos no caso de uso ‘Corrigir Rota’, cujo qual eu, autora deste relatório, desenvolvi.
Foi incluído o Diagrama de Caso de Uso e o Diagrama de Classes do Projeto PVA
para demonstrar a visão geral da iteração entre Atores e Casos de Uso, e
Classes e Cápsulas do Projeto PVA.




Diagrama de Estado do Caso de Uso Corrigir Rota


Cada componente do grupo elaborou Diagramas de Seqüências,
Diagramas de Classe, Diagramas de Transição de Estado, para cada caso de uso
específico. Todos os diagramas foram gerados no Rational Rose Real Time e estão
disponíveis na Home Page no endereço http://geocities.yahoo.com.br/ita_andremoraes/
Segue também em arquivo compactado a cópia dos mesmos. Clique
AQUI
para visualizarão.
Segue abaixo os artefatos de Caso de Uso
Estendidos elaborados pelo grupo. O caso de Uso estendido por mim, autora deste
relatório, foi o Corrigir Rota.
|
|
Casos de Uso Estendidos |
|
Rafael |
|
|
André |
|
|
Tatiana |
|
|
Izilton |
|
|
Rodrigo |
|
|
Marcelo |
Ainda na fase de Elaboração foram
geradas versões beta do Software de cada Use Case. Segue abaixo os códigos
gerados para cada Caso de Uso desenvolvido, lembrando que o Caso de Use por mim
desenvolvido foi o Corrigir Rota.
|
|
Código Sincronizado |
|
Corrigir Rota |
|
|
Localizar Pacote |
|
|
Detectar Pacote |
|
|
Carregar Pacote |
|
|
Detectar Alteracao
de Rota |
|
|
Detectar Obstáculo |
Utilizamos o Rational RequisitePro
para controlar os requisitos. Clique AQUI para
visualizar a aplicação.
Acrescentamos os seguintes
documentos nesta ferramenta :
·
Visão;
·
Solicitações
dos Principais Envolvidos;
·
Especificações
Suplementares.
Verifique AQUI a utilização da ferramenta Borland StarTeam para
controlar versão.
Segue abaixo alguns métodos implementados por mim, autora deste relatório, no módulo de minha responsabilidade, Corrigir Rota.


Para visualização dos 6 métodos Implementados no Protótipo de Veículo Autônomo – PVA (Sistema) clique AQUI.
Na cápsula “Alteração” temos 4 métodos: Calcular Amortização Linear, Calcular
Amortização Angular, Calcular Desvio e Calcular Correção . A função do método
Calcular Correção é calcular o valor necessário para o veículo retornar a rota
de origem, a função do método Desvio é calcular o desvio executado pelo
veículo, a função do método Amortização Linear e Amortização Angular é corrigir
o valor de deslocamento recebido, uma vez que os mesmos tem pouca precisão.
Para que a correção seja calculada é necessário que ela obtenha o valor do
desvio, que por sua vez para ser calculado precisa do valor da Amortização
Linear e Amortização Angular . Então
podemos dizer que o método Calcular Correção irá chamar o método Calcular
Desvio, que irá chamar os métodos Amortização Linear e Amortização Angular .
Esta técnica permite maior coesão dos métodos, aumentado a qualidade e
manutabilidade.

Para visualização das 6 chamadas
Implementados no Protótipo de
Veículo Autônomo – PVA (Sistema) clique AQUI.
Nesta seção apresentamos um ciclo completo
de reengenharia de software. Vamos imaginar a seguinte situação: O programador
já recebeu os fontes (compiláveis no RoseRealTime) e agora está testando o
sistema e fazendo alterações nos fontes de acordo com as necessidades, enfim
ele está aperfeiçoando o sistema.
O exemplo
consiste de alterar uma parte do código no Visual C++ 6.0 e transportar esta
alteração para dentro do Rose Real Time.
Na figura
abaixo temos o código (sem alterações ainda) feito no ambiente Rose RealTime.
No caso, é o método Calcular_ AmortizacaoL da cápsula Alteração.

Na figura abaixo temos mesmo código.
O arquivo referente a Cápsula Alteração é o Alteracao.cpp (aberto no Visual C++
6.0). No caso, iremos alterar o método “ Calcular_ AmortizacaoL.

Alteramos “* 0,8 ” para “ * 0,6”.
Após as alterações, é necessário salvar o arquivo (para as alterações valerem).

Para trazer as alterações do Visual
C++ 6.0 para dentro do Rose RealTime, usamos o comando Code Sync.

O comando Code Sync verifica todos
os fontes em busca de alterações nos códigos. No caso, o Rose RealTime percebeu
a alteração no “* 0,8” e está solicitando a confirmação da alteração. Devemos
apertar o botão OK para aceitar a alteração.

Para terminar o
ciclo, devemos recompilar o projeto, pois assim as alterações ficarão válidas para a depuração do projeto
no Rose RealTime. Na figura abaixo temos o resultado da compilação. No caso,
não existiu nenhum problema. O novo código gerado já conta com as alterações
feitas no Visual C++ 6.0.

Nesta disciplina tivemos a
oportunidade de utilizar um processo de desenvolvimento de Software consolidado
e controlado. O RUP (Rational Unified Process) garante o controle do desenvolvimento
do software através de uma documentação rígida que descreve as etapas de
desenvolvimento de software que são as Fases de Iniciação, Elaboração,
Construção e Transição.
O uso de ambientes integrados de ferramentas CASE foi bastante proveitoso no
sentido de garantir Qualidade, Confiabilidade e Segurança de Software no
desenvolvimento de um Grande Sistema de Software. Elas permitem um controle
perfeito de documentação e codificação de todo o Sistema de Software
desenvolvido, possibilitando assim que se minimize também eventuais erros,
defeitos e falhas embutidos no protótipo de software desenvolvido.
A estrutura desenvolvida para o
Protótipo de Sistema de Software mostrou-se adequada para a função proposta.
A maior dificuldade encontrada
durante o desenvolvimento foi a correta configuração da ferramenta Rational
Rose RealTime e compiladores. Recomenda-se incluir no cronograma do projeto o
estudo da ferramenta em questão.
Recomenda-se também que seja dado
maior ênfase na aplicação das técnicas existentes de Sistemas Embarcados de
Tempo Real como pilha, fila, pedindo-se que sejam incorporadas as mesmas no
projeto, como foi solicitado na Disciplina de Banco de Dados. Muitos alunos não
tem conhecimento das mesmas.
Sugiro aos alunos que irão cursar
esta matéria que junto ao seu grupo estudem sobre os processadores existentes
no mercado. Este conhecimento agregaria grande valor ao tema estudado.