1
Fonte Foto: NASAFonte Foto: NASA
Instituto TecnológicoInstituto Tecnológicode Aeronáuticade Aeronáutica
Divisão de Ciência da ComputaçãoDivisão de Ciência da ComputaçãoMatérias de Pós-GraduaçãoMatérias de Pós-GraduaçãoCE-230 e CE-235, Prof. Dr. Adilson M. CunhaCE-230 e CE-235, Prof. Dr. Adilson M. Cunha
Denis Loubach, João Carlos S. Nobre, Erika Miranda, Denis Loubach, João Carlos S. Nobre, Erika Miranda, Priscila Fernandes, Erick Carvalho, Ten. MartinsPriscila Fernandes, Erick Carvalho, Ten. Martins
28 de novembro, 2005 – ITA - IEC – Mini Auditório CCS/SJ28 de novembro, 2005 – ITA - IEC – Mini Auditório CCS/SJ
2
AgendaAgenda
• IntroduçãoIntrodução
• Desenvolvimento (Protótipos Acadêmicos)Desenvolvimento (Protótipos Acadêmicos)
• Testes automatizadosTestes automatizados
• Conclusões e RecomendaçõesConclusões e Recomendações
MotivaçãoMotivação ContextualizaçãoContextualização Enunciado do ProblemaEnunciado do Problema Alternativa de Solução EscolhidaAlternativa de Solução Escolhida TítuloTítulo Redução de EscopoRedução de Escopo
Unidades de Software de Computador - USCsUnidades de Software de Computador - USCs Componentes de Software de Computador - CSCsComponentes de Software de Computador - CSCs Item de Configuração de Software de Computador - ICSCItem de Configuração de Software de Computador - ICSC
Rational Quality Architect RealTime – RQA-RTRational Quality Architect RealTime – RQA-RT Rational Test RealTime – RT-RTRational Test RealTime – RT-RT Análise de SensitividadeAnálise de Sensitividade
3
IntroduçãoIntrodução
• MotivaçãoMotivação
Durante o 1º Durante o 1º WorkshopWorkshop de Sistemas Embarcados e de Tempo Real, que de Sistemas Embarcados e de Tempo Real, que contou com a participação do Engcontou com a participação do Engoo Flávio Araripe (IAE), Gerente do Flávio Araripe (IAE), Gerente do Projeto VANT e do Prof. Dr. Marco Antônio Chamon (INPE), Gerente do Projeto VANT e do Prof. Dr. Marco Antônio Chamon (INPE), Gerente do Projeto de Satélites Universitários, foram apresentadas as necessidades Projeto de Satélites Universitários, foram apresentadas as necessidades dos respectivos projetos, destacando-se a dos respectivos projetos, destacando-se a imperiosaimperiosa participação do participação do setor acadêmico no desenvolvimento dos citados projetos.setor acadêmico no desenvolvimento dos citados projetos.
4
IntroduçãoIntrodução
• ContextualizaçãoContextualização
À medida em que o uso de sistemas computacionais prolifera, aplicações À medida em que o uso de sistemas computacionais prolifera, aplicações com com hard real-time hard real-time (aplicações militares) e (aplicações militares) e soft real-time soft real-time (eletrodomésticos, celulares, etc.) tornam-se muito comuns. Entretanto, a (eletrodomésticos, celulares, etc.) tornam-se muito comuns. Entretanto, a variação de complexidade e a garantia de atendimento de restrições variação de complexidade e a garantia de atendimento de restrições temporais por parte de tais aplicações mostra-se muito ampla. Várias temporais por parte de tais aplicações mostra-se muito ampla. Várias ferramentas CASE estão disponíveis para o desenvolvimento de tais ferramentas CASE estão disponíveis para o desenvolvimento de tais aplicações, como por exemplo, Rhapody, ARTiSAN, TauG2 e Rose aplicações, como por exemplo, Rhapody, ARTiSAN, TauG2 e Rose RealTime (os quatro mais fortes).RealTime (os quatro mais fortes).O uso de Veículo Aéreo Não Tripulado – VANT em aplicações civis e O uso de Veículo Aéreo Não Tripulado – VANT em aplicações civis e militares visando o reconhecimento aéreo, monitoramento de recursos militares visando o reconhecimento aéreo, monitoramento de recursos naturais, redes elétricas, e de dutos de petróleo são realidade no mundo naturais, redes elétricas, e de dutos de petróleo são realidade no mundo moderno.moderno.O País, atualmente, busca capacitar-se ao desenvolvimento de Sistemas O País, atualmente, busca capacitar-se ao desenvolvimento de Sistemas Embarcados de Tempo Real para serem empregados em VANTs para Embarcados de Tempo Real para serem empregados em VANTs para administração, controle e gerenciamento do mesmo. administração, controle e gerenciamento do mesmo. A busca de tal capacitação também recai sobre a qualidade, confiabilidade A busca de tal capacitação também recai sobre a qualidade, confiabilidade e segurança (e segurança (safetysafety) dos sistemas desenvolvidos, devendo estar ) dos sistemas desenvolvidos, devendo estar assegurada por meio do uso de normas e padrões, tais como a DO-178B.assegurada por meio do uso de normas e padrões, tais como a DO-178B.
5
ObjetivoObjetivo• Enunciado do ProblemaEnunciado do Problema
• Alternativa de Solução EscolhidaAlternativa de Solução Escolhida
• TítuloTítuloProtótipo de Projeto de CSC – Suporte do VANTProtótipo de Projeto de CSC – Suporte do VANT
Dotar o CSC Suporte do VANT de um Dotar o CSC Suporte do VANT de um Protótipo de Projeto de USC de Protótipo de Projeto de USC de Controle de Barramento de DadosControle de Barramento de Dados, visando propiciar o suprimento , visando propiciar o suprimento de necessidades de comunicação, reduzindo desperdícios de recursos e de necessidades de comunicação, reduzindo desperdícios de recursos e aumentando a capacidade de suporte ao funcionamento de VANTs, até aumentando a capacidade de suporte ao funcionamento de VANTs, até o final do 2º semestre de 2005o final do 2º semestre de 2005 . .
Desenvolver uma USC de Controle de Barramento de Dados de um Desenvolver uma USC de Controle de Barramento de Dados de um VANT genérico para o CSC Suporte do VANT, visando propiciar o VANT genérico para o CSC Suporte do VANT, visando propiciar o suprimento de necessidades de comunicação, reduzindo desperdícios suprimento de necessidades de comunicação, reduzindo desperdícios de recursos e aumentando a capacidade de suporte ao funcionamento de recursos e aumentando a capacidade de suporte ao funcionamento de VANTs, até o final do 2º semestre de 2005de VANTs, até o final do 2º semestre de 2005 . .
• Redução de EscopoRedução de EscopoSuporte a: Suporte a: Barramento de Dados, Central de Alarmes, Sistema Elétrico e Caixa PretaBarramento de Dados, Central de Alarmes, Sistema Elétrico e Caixa Preta ..
6
DesenvolvimentoDesenvolvimento
• Unidades de Software de Computador (Protótipos)Unidades de Software de Computador (Protótipos)
Barramento de Dados (Denis Loubach/Erick Carvalho)Barramento de Dados (Denis Loubach/Erick Carvalho)
Central de Alarmes (Erika Miranda) Central de Alarmes (Erika Miranda)
Sistema Elétrico (Priscila Fernandes)Sistema Elétrico (Priscila Fernandes)
Caixa Preta (João Carlos/Martins)Caixa Preta (João Carlos/Martins)
Tela do Rational Rose RealTime
7
DesenvolvimentoDesenvolvimento• USC – Barramento de DadosUSC – Barramento de Dados
Monitoramento de Interrupções;Monitoramento de Interrupções;Controle de Controle de ReadRead & & WriteWrite; e; eLeitura de Leitura de StatusStatus atual; atual;
InternalEntrance
MI
STA
RW
Initial
t_monitora_interrupt
t_return_minterrupt
t_return_statust_monitora_status
t_return_rw
t_monitora_r
t_ monitora_ wInitial
t_monitora_interrupt
t_return_minterrupt
t_return_statust_monitora_status
t_return_rw
t_monitora_r
t_ monitora_ w
Waiting
READ WRITE
Initial
t_read
t_return_read t_return_write
t_writeInitial
t_read
t_return_read t_return_write
t_write
idle busy
Initial
turnIdle
turnBusy
status status
Initial
turnIdle
turnBusy
status status
Diagrama de Estados da cápsula Interface (acima) e RW (abaixo) – Barramento de Dados.
Diagrama de Estados de RW do B. Dados (acima).Diagrama de Estrutura da TopCapsule (abaixo).
8
DesenvolvimentoDesenvolvimento
• USC – Central de AlarmesUSC – Central de Alarmes
Recebe alarmes de outras USCsRecebe alarmes de outras USCsGerência mensagens importantesGerência mensagens importantes
waiting
verify sendAlarmlowBattery
Initial
True
False
timeout
timeout
verifyCharge
Diagrama de Estados da cápsula central de alarmes.
9
DesenvolvimentoDesenvolvimento
• USC – Sistema ElétricoUSC – Sistema Elétrico
Controle de bateriasControle de bateriasGerência do Sistema ElétricoGerência do Sistema ElétricoEmissão de alarmesEmissão de alarmes
waiting
verify sendAlarm
lowBattery
Initial
True
False
timeout
timeout
verifyCharge
lowBattery
Initial
True
False
timeout
timeout
verifyCharge
consumer
Initial
life
Initial
life
/ vsel_armazenamento : VSEL_ARMAZENAMENTO
/ vsel_powercontrol : VSEL_PowerControl
+ / vsel_interface : vsel_protocol
+ / vsel_interface : vsel_protocol
+ / vsel_internal : vsel_protocol
+ / vsel_internal : vsel_protocol~
+ / vsel_interface : vsel_protocol
/ vsel_armazenamento : VSEL_ARMAZENAMENTO
+ / vsel_interface : vsel_protocol
+ / vsel_internal : vsel_protocol
/ vsel_powercontrol : VSEL_PowerControl
+ / vsel_internal : vsel_protocol~
Diagrama de Estados de uma cápsula do VSEL
Diagrama de Estados de uma cápsula do VSEL, processo consumidor de energia (ao lado). Diagrama de Estrutura da TopCapsule (abaixo).
10
DesenvolvimentoDesenvolvimento
• USC – Caixa PretaUSC – Caixa Preta
Recebimento dos principais Recebimento dos principais logslogs do sistema; do sistema;Controle e armazenamento de mensagens.Controle e armazenamento de mensagens.
avtive
Initial
roll
Initial
roll
/ registrarParametro : RegistrarParametro
/ capturarParametro : CapturarParametro
+ / OUTusc : vcxp_protocol
+ / roll : vcxp_protocol
+ / angle : vcxp_protocol
+ / heading : vcxp_protocol
+ / outUSC : vcxp_protocol
+ / heading : vcxp_protocol~
+ / roll : vcxp_protocol~
+ / angle : vcxp_protocol~
+ / OUTusc : vcxp_protocol
/ registrarParametro : RegistrarParametro
+ / roll : vcxp_protocol
+ / angle : vcxp_protocol
+ / heading : vcxp_protocol
+ / outUSC : vcxp_protocol
/ capturarParametro : CapturarParametro
+ / heading : vcxp_protocol~
+ / roll : vcxp_protocol~
+ / angle : vcxp_protocol~
Espera
CapturarParametro
ValidarParametro
EmpacotarParametro
RegistrarParametro
IsValid
Initial
para_espera
para_registro
verifica_statusTrue
False
validaParamInterno
validaParamExterno
timer
IsValid
Initial
para_espera
para_registro
verifica_statusTrue
False
validaParamInterno
validaParamExterno
timer
Diagrama de Estados de uma cápsula do VCXP (acima), diagrama de estrutura da cápsula principal deste CSC.
11
DesenvolvimentoDesenvolvimento
• CSC – Suporte do VANTCSC – Suporte do VANT
Visão LógicaAplicação do Conceito de Empacotamentono Modelo, visando organização.
Diagrama de Estrutura interconectando todas as cápsula deste CSC. Visão Lógica.
12
DesenvolvimentoDesenvolvimento
• ICSC – VANTICSC – VANT
/ vant : VANT_Main
/ stubec : stubEC
+ / OutEC : COM_PROTOCOL~
+ / ec : COM_PROTOCOL
/ vant : VANT_Main
+ / OutEC : COM_PROTOCOL~
/ stubec : stubEC+ / ec
: COM_PROTOCOL
Visão LógicaAplicação do Conceito de Agregação de Estrutura, visando organização do Modelo.
Visão Lógica: ICSC VANT e ICSC EC.
13
Testes AutomatizadosTestes Automatizados
• USC – Barramento de DadosUSC – Barramento de Dados
/ vcal_meam : VCAL_MEAM
/ vbad_rw : VBAD_RW
/ vbad_interface : VBAD_Interface
/ vbad_status : VBAD_STATUS
/ vsel_armazenamento : VSEL_ARMAZENAMENTO
+ / vcal_interface : vcal_protocol
+ / rw_port : VBAD_PInterface~
+ / status : Status_Protocol~
+ / interface_mi : VBAD_PInterface
+ / interface_status : VBAD_PInterface~
+ / interface_rw : VBAD_PInterface
+ / vbad_vcal : vcal_protocol~
+ / vbad_vcxp : vcxp_protocol~
+ / vbad_vsel : vsel_protocol~
+ / status_port : VBAD_PInterface
+ / status_internal : Status_Protocol
+ / vsel_interface : vsel_protocol
+ / vsel_internal : vsel_protocol
+ / vcal_interface : vcal_protocol
+ / rw_port : VBAD_PInterface~
+ / status : Status_Protocol~
+ / interface_mi : VBAD_PInterface
+ / interface_status : VBAD_PInterface~
+ / interface_rw : VBAD_PInterface
+ / vbad_vcal : vcal_protocol~
+ / vbad_vcxp : vcxp_protocol~
+ / vbad_vsel : vsel_protocol~
+ / status_port : VBAD_PInterface
+ / status_internal : Status_Protocol
+ / vsel_interface : vsel_protocol
+ / vsel_internal : vsel_protocol
Diagrama de Colaboração - 1a Versão de Escudo de Testes em C++ para o Componente de Software de Computador VSUP.
Envolve: Unidades de Software de Computador que compõe o CSC VSUP.
Teste: Controle do Número Máximo de Falhas Antes de Abortar a Missão, Gerência do Sistema Elétrico, Controle de Read e Write e Leitura/Escrita de Status do Barramento de Dados.
Elaboração:Denis Loubach
/ vbad_status : VBAD_STATUS
/ vbad_rw : VBAD_RW
1: request : request1: request : request
2: turnBusy : turnBusy (true)2: turnBusy : turnBusy (true)
3: turnIdle : turnIdle (false)3: turnIdle : turnIdle (false)
T est number 1.
Sequence Diagram: T estR esult / R QAR T 1aVersaoEscudoT estesVSU P_ R esults_
051025141707 / SQ_ T estHarness_2_ T race_ 051025141707
Number of test that passed: 1Double-click for tests that failed.
Diagrama de Colaboração para Testes (acima). Etiqueta de execução de Testes (ao lado)
Diagrama de Seqüência originado do Diagramade Colaboração
14
Testes AutomatizadosTestes Automatizados
• USC – Central de Alarmes e USC – Sistema ElétricoUSC – Central de Alarmes e USC – Sistema Elétrico
/ vsel_armazenamento : VSEL_ARMAZENAMENTO
/ vcal_meam : VCAL_MEAM
/ vbad_status : VBAD_STATUS
/ vbad_interface : VBAD_Interface
/ vbad_rw : VBAD_RW
1: request : request1: request : request
2: turnBusy : turnBusy (true)2: turnBusy : turnBusy (true)
3: turnIdle : turnIdle (false)3: turnIdle : turnIdle (false)
1: activeWrite : activeWrite ('1')1: activeWrite : activeWrite ('1')
2: returnContext : returnContext2: returnContext : returnContext
3: activeRead : activeRead ('0')3: activeRead : activeRead ('0')
4: returnContext : returnContext4: returnContext : returnContext
5: informError : informError ('x')5: informError : informError ('x')
6: write : write ('e')6: write : write ('e')
7: informCarga : informCarga (90)7: informCarga : informCarga (90)
8: write : write ('o')8: write : write ('o')
Diagrama de Seqüência dos testes aplicados.
15
Testes AutomatizadosTestes Automatizados
• USC – Caixa PretaUSC – Caixa PretaDiagrama de Colaboração - 1ª Versão do Escudo de Teste
Envolve: USCs que integram o CSC-VSUPTeste: Recebimento de um parâmetro da USC e armazenameto no RDV.Criado por: J oão Carlos
Diagrama de Colaboração para Testes (acima). Etiqueta de execução de Testes (ao lado)
Diagrama de Seqüência originado do Diagrama de Colaboração
16
Testes AutomatizadosTestes Automatizados
• Rational Quality Architect RealTime – RQA-RTRational Quality Architect RealTime – RQA-RT
Integrado ao Integrado ao Rose RealTime;Rose RealTime;
Baseado em Diagramas de Colaboração Baseado em Diagramas de Colaboração e Diagramas de Seqüência;e Diagramas de Seqüência;
Testes de integridade de sistema;Testes de integridade de sistema;
Teste de Caixa Preta/Branca.Teste de Caixa Preta/Branca.
Tela do RQA-RT.
17
Testes AutomatizadosTestes Automatizados
• Rational Test RealTime – RT-RTRational Test RealTime – RT-RT
Telas do Rational Test RealTime.
18
Testes AutomatizadosTestes Automatizados• Rational Test RealTime – RT-RTRational Test RealTime – RT-RT
Diagramas de estado em tempo de execução do modelo.
19
TestesTestes
Análise Análise de Sensitividadede Sensitividade
Foram trocados duas ocorrências de CASE por IF no código do arquivo fonte VBAD_RW.cpp.
Esta alteração impactou no aumento da Dificuldade Computacional (Halstead Metrics), aumento de Tempo de Teste em 24 minutos, entre outros. De maneira geral, este tipo de situação requer máquinas com maior poder de processamento, e sobre o tempo, prejudica o que alocou-se como previsão inicial.
Por outro lado, a complexidade computacional ( Sum of V(g) ) diminui em 2 unidades.
20
TestesTestesMétricasMétricas
Métricas em Nível de Arquivo (Line & Comments):•Comment only lines: Números de Linhas Comentadas•Comments: Número de Comentários•Empty lines: Números de Linhas em Branco•Source only lines: Números de Linhas com Código sem comentário•Source and comment lines: Números de Linhas com Código e comentário•Lines: Números de Linhas de Código•Comment rate: Percentual de Comentários no Total do Código
Métricas em Classe ou Pacote (Statements & Levels):•Maximum level: Número máximo de níveis•Total level: Total de níveis•Maximum statements: Número máximo de statements•Total statements: Total de statements em todos os níveis
Métricas de Complexidade estimada do Código Fonte (V(g)):•Maximum V(g): Maior Complexidade•Mean V(g): Média Complexidade•Standard deviation from V(g): Desvio Padrão Complexidade•Sum of V(g): Complexidade Total
21
TestesTestes
Métricas (cont.)Métricas (cont.)Métricas de Complexidade Computacional do Código Fonte (Métricas de Complexidade Computacional do Código Fonte (Halstead MetricsHalstead Metrics))
22
Conclusões e RecomendaçõesConclusões e Recomendações
• Trabalhar em grupo de maneira organizada é fundamental; eTrabalhar em grupo de maneira organizada é fundamental; e
• Cada USC manteve sua identidade preservada até o final deCada USC manteve sua identidade preservada até o final detodas integrações;todas integrações;
• Utilizou-se das ferramentas Utilizou-se das ferramentas Rose RealTime, Quality Rose RealTime, Quality Architect e Test RealTimeArchitect e Test RealTime com sucesso dentro das com sucesso dentro das expectativas;expectativas;
• O CSC Suporte do VANT foi implementado, verificado e O CSC Suporte do VANT foi implementado, verificado e validado com sucesso, porém sem completeza, conformevalidado com sucesso, porém sem completeza, conformeobjetivado;objetivado;
• Os passos da Missão Atribuída, diretamente relacionados Os passos da Missão Atribuída, diretamente relacionados com o VANT, puderam executar-se com sucesso;com o VANT, puderam executar-se com sucesso;
• Recomenda-se a criação de um Gerente de Projeto, visandoRecomenda-se a criação de um Gerente de Projeto, visandodefinir o papel de integrador, definindo políticas e possíveisdefinir o papel de integrador, definindo políticas e possíveisestratégias.estratégias.
23
Referências BibliográficasReferências Bibliográficas Notas de aula 2º Semestre/05 Notas de aula 2º Semestre/05
CE-230 e CE-235CE-230 e CE-235Prof. Dr. Adilson Marques da CunhaProf. Dr. Adilson Marques da Cunha
Site IBM-RationalSite IBM-Rationalhttp://www.ibm.comVisitado em novembro/2005Visitado em novembro/2005
Sistemas de Tempo RealSistemas de Tempo RealJean-Marie Fernandes, Joni da Silva Fraga, Rômulo Silva de OliveiraJean-Marie Fernandes, Joni da Silva Fraga, Rômulo Silva de OliveiraDept. de Automação de SistemasDept. de Automação de SistemasUFSC, Florianópolis, julho de 2000UFSC, Florianópolis, julho de 2000
Padrão DO-178BPadrão DO-178B
Rational Test RealTimeUser GuideRational Test RealTimeUser Guide
FTP IBM-RATIONALFTP IBM-RATIONALftp://ftp.software.ibm.com/software/rational/docs/documentation/manuals/v2003/
Visitado em novembro/2005Visitado em novembro/2005
24
Instituto Tecnológico de AeronáuticaInstituto Tecnológico de Aeronáutica
Curso de Pós-Graduação em Curso de Pós-Graduação em Engenharia Eletrônica e ComputaçãoEngenharia Eletrônica e Computação
CE-235 Sistemas Embarcados de Tempo RealCE-235 Sistemas Embarcados de Tempo RealCE-230 Qualidade, Confiabilidade e Segurança de SoftwareCE-230 Qualidade, Confiabilidade e Segurança de Software
Professor Dr. Adilson Marques da CunhaProfessor Dr. Adilson Marques da Cunha2° Semestre de 2005 2° Semestre de 2005
Protótipo de CSC – Suporte do VANTProtótipo de CSC – Suporte do VANTporpor
Denis Loubach, Erika Miranda, João Carlos, Priscila Fernandes,Denis Loubach, Erika Miranda, João Carlos, Priscila Fernandes,Erick Carvalho e Ten. MartinsErick Carvalho e Ten. Martins
Obrigado!Obrigado!