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

I. Introdução

            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.

1.1.                   Motivação

É 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 PVAProtó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 PVAProtó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.

1.2.                   Contexto

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. 

1.3.                   Objetivação do Protótipo de Sistemas de Software

 

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.

 

1.4.                   Redução de Escopo

 

            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.

1.5.                   Especificação de Requisitos

 

            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.                   Ordem de apresentação do Projeto Final

 

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.


II. Desenvolvimento

 

            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/

2.1.                   Linha Base Funcional - Iniciação

 

            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

 

Plano de Desenvolvimento

 Tatiana e Izilton

Plano de Iniciação e Iteração

 Tatiana e Izilton

Plano de Gerenciamento de Requisitos

 Rodrigo e Rafael

Plano de Visão

 André

Glossário

 Marcelo

Solicitação dos Principais Envolvidos

 André

Lista de Riscos

 Tatiana e Izilton

Especificação Suplementar

 Rodrigo e Rafael

Modelo de Casos de Uso

 Marcelo e Rafael

Caso de Desenvolvimento

 Rafael e Rodrigo

 

2.1.                   Linha Base Alocada - Elaboração

 

            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.

 

2.2.1.   Diagrama de Caso de Uso do PVA

 

 

 

 

 

2.2.2.   Diagrama de Classes do PVA

 


2.2.3.   Diagrama do Caso de Uso Corrigir Rota

 

 

 

2.2.4.   Diagrama de Classes do Caso de Uso Corrigir Rota

 

 

 

 

2.2.5.   Diagrama de Estado do Caso de Uso Corrigir Rota

 

Diagrama de Estado do Caso de Uso Corrigir Rota

 

 

2.2.6.   Diagrama de Seqüência do Caso de Uso Corrigir Rota

 

2.2.7.   Diagramas dos integrantes do Grupo

 

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.

2.2.8.   Caso de Uso Estendido

 

            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

Carregar Pacote

André

Detectar Alteração de Rota

Tatiana

Calcular Correção

Izilton

Detectar Pacote

Rodrigo

Detectar Obstáculo

Marcelo

Solicitar Pacote

 

2.2.9.   Código Sincronizado

 

            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

 

2.2.10.                     Controle de Requisitos

 

            Utilizamos o Rational RequisitePro para controlar os requisitos. Clique AQUI para visualizar a aplicação.

2.3.                   Linha Base de Produto – Construção

 

2.3.1.   Controle de Versã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.

 

2.3.2.   Criação de Métodos

 

            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.

 

2.3.3.   Chamadas de Métodos  ou Criação de Parâmetros

 

            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.

 

2.3.4.   Ciclo de Reengenharia de Software

 

            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.

 

III. Conclusões e Recomendações

 

3.1.                   Conclusões

 

            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.

3.2.                   Recomendações

 

            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. 

Hosted by www.Geocities.ws

1