Desenvolvimento de sistemas embarcados
Metodologia OMEGA
Gregório Baggio Tramontina (RA 014864)
Ricardo Ribeiro dos Santos (RA 030060)
IC - UNICAMP
MO409
1
Roteiro
Contexto de desenvolvimento de software embarcado
Metodologia Omega
Motivação
Características
Fases
Modelos
Ferramentas
Parceiros
Prós e contras
Conclusões
IC - UNICAMP
MO409
2
Metodologias para desenvolvimento
de software embarcado
Software Embarcado: realiza uma tarefa muito específica relacionada com o
ambiente ao qual está inserido
Exemplos: controle de aparelhos domésticos, sistemas de
processamento de sinais, entre outros
Software embarcado possui particularidades
divisão de tarefas com HW
forte integração com plataforma de baixo nível
requisitos de tempo
Contexto do trabalho: Software que atua em um dispositivo móvel e
possibilita que um usuário possa realizar algumas operações relacionadas ao
sistema de hotel
IC - UNICAMP
MO409
3
OMEGA
Resultado do projeto Omega (http://www-omega.imag.fr) iniciado em 2002
Motivação: Suporte formal (notações e ferramentas) em todas as fases de
desenvolvimento
Foco: Sistemas Embarcados de tempo real
Seleção e extensão de um subconjunto de notações UML
Ênfase na modelagem dos aspectos comportamentais e estáticos do sistema
Processo de desenvolvimento inspirado em abordagens utilizadas pela
indústria:
Requisitos, arquitetura, análise e projeto e implementação
Requisitos
IC - UNICAMP
Definição
da
arquitetura
MO409
Análise e Projeto
Refinar
Produzir versão do sistema
4
Requisitos
Requisitos são expressos por meio de diagramas de casos de uso
Segue a especificação UML
Nesta fase, substitui-se o diagrama de seqüência pelo Live Sequence Chart
(LSC) para representar as interações entre elementos de um cenário
LSC com recursos de temporização
Algumas características dos LSCs:
distinguem entre cenários que podem (existencial) dos que devem (universal)
acontecer no sistema
inclusão de condições que podem ser verdadeiras (condições “frias”) e condições
que devem ser verdadeiras (condições “quentes”)
permite atribuições explicitamente
IC - UNICAMP
MO409
5
Exemplo - Requisitos
Estudo de caso: sistema de hotel
Verificar
Disponibilidade
Verificar
Despesas
Realizar
Préreserva
cliente
Realizar
Cadastro
Emitir
relatórios
gerentes
empresários
IC - UNICAMP
MO409
6
Exemplo - Requisitos
Caso de uso: Verificar disponibilidade
Modelagem usando LSC
Cliente
Dispositivo
Condição quente
Controle de Cadastro
Pre-chart
Estado=ocioso
loop
Consulta sist. disponibilidade
*
Requisita lista hotéis
Atribuição
T1: Time
chart
Informações dos hotéis
Time<T1+30
Informações dos hotéis
Condição fria
Seleciona hotel, período da
reserva
*
Verifica disponibilidade no período
T2: Time
Lista quartos livres
Lista quartos livres
IC - UNICAMP
Time<T2+30
MO409
7
Arquitetura
Arquitetura do software é descrita por componentes que interagem
através de interfaces
Componente: parte modular do sistema que encapsula conteúdo e expõe
um conjunto de interfaces
Componentes são representados pelo diagrama de componentes
A definição e modelagem da arquitetura segue o documento UML 2.0
Proposal v. 0.671 (draft)
IC - UNICAMP
MO409
8
Exemplo - Arquitetura
Definição e relacionamento entre componentes do sistema de
disponibilidade
inf_hotel
inf_reserva
«component»
hotel
Sist
Disponibilidade
Hotel
reserva
IC - UNICAMP
«component»
«component»
Reserva
MO409
hóspede
«component»
Hospede
9
Análise e Design
Análise inicial do domínio da aplicação
Iteração das etapas:
Análise e design de uma parte do sistema (incremental)
Gradualmente adicionam-se detalhes até que se esteja próximo
de uma implementação concreta (refino)
Inicialmente protótipos rápidos, depois produção de sucessivas
releases com funcionalidade crescente
Use-case driven: a cada iteração, um use-case é desenvolvido
Notação básica: diagrama de classes
Object Constraint Language (OCL)
diagrama de estados (classes reativas)
IC - UNICAMP
MO409
10
Exemplo - Análise e Design
Diagrama de classes
IC - UNICAMP
MO409
11
Exemplo - Análise e Design
Statechart
IC - UNICAMP
MO409
12
Implementação
Mapeamento do design detalhado em uma arquitetura
física particular e codificação
Enriquecimento dos diagramas UML com
limites de tempos de execução
mapeamento de processos para processadores
políticas de escalonamento
prioridades
etc.
Principal notação: Deployment diagram
visão estática da distribuição dos componentes no sistema
especifica a distribuição de “artefatos” (componentes,
softwares de terceiros, etc.) para os “nós” (recursos
computacionais)
IC - UNICAMP
MO409
13
Exemplo - Implementação
Deployment diagram
<<Wireless>>
<<device>>
:ServAplicação
{SO=LinuxRT}
<<TCP/IP>>
<<artifact>>
VerificaDisp
<<device>>
:DispositivoMóvel
{SO=PalmOS}
<<artifact>>
Navegador Web
{fornecedor=Palm}
{componente=Sist. Disponibilidade
Local=/app/bin/}
<<artifact>>
CadHoteis.so
{componente=Hotel
Local=/app/bin/}
<<device>>
:ServBD
{SO=Linux}
BD do Hotel
<<database>>
{fornecedor=Oracle
Versão=9i}
<<artifact>>
Reservas.so
{componente=Reserva
Local=/app/bin/}
IC - UNICAMP
MO409
14
Apoio ferramental
Desenvolvimento pela própria equipe do projeto e por terceiros
Fonte: http://www-omega.imag.fr
IC - UNICAMP
MO409
15
Parceiros
Fonte: http://www-omega.imag.fr
16
MO409
IC - UNICAMP
Prós e Contras
Busca ser completa e rigorosa
Usa UML, que já é conhecida
Processo de desenvolvimento
proposto pela metodologia
segue um workflow simples
Traz os requisitos de tempo
real do domínio não funcional
para o funcional
Projeto desenvolve ferramentas
para suporte à metodologia
Possui parceiros acadêmicos e
industriais que ajudam na avaliação
da metodologia
IC - UNICAMP
Não contempla a fase
de testes e manutenção
MO409
As ferramentas ainda não estão
completas
Integração hardware-software
precisa de mais atenção
Ainda está em desenvolvimento
17
Conclusões
No estágio atual, OMEGA é voltada para características de
tempo real
Espera-se que, quando mais desenvolvida, contemple a
integração hardware-software mais fortemente
Não serve apenas para softwares embarcados
No geral, metodologias ainda não estão bem definidas
Geralmente específicas para cada domínio
Literatura apresenta vários processos, ferramentas,
linguagens de especificação, mas há lacunas quanto a
metodologias completas
IC - UNICAMP
MO409
18
Referências
Hooman, J., Towards Formal Support for UML-based Development of Embedded
Systems. Proc. of the 3d PROGRESS Workshop on Embedded Systems, Technology
Foundation STW, p. 71-76, 2002.
Graf, S., Hooman, J., Correct Development of Embedded Systems. Proc. of the First
European Workshop on Software Architecture (EWSA 2004), LNCS 3047, SpringerVerlag, pp. 241-249, 2004.
Damm, W., Harel, D.,LSCs: Breathing Life into Message Sequence Charts. Formal
Methods in System Design, v. 19, p. 45-80, 2001, Kluwer Academic Publishers.
Netherlands.
Harel, D., Marelly, R., Playing with Time: On the Specification and Execution of TimeEnriched LSCs. In Proc. 10th IEEE/ACM Int. Symp. on Modeling, Analysis and
Simulation of Computer and Telecommunication Systems, Fort Worth, Texas 2002.
Agrawal, S., Bhatt, P., Real-time Embedded Software Systems – An Introduction.
Technology Review #2001-04, Tata Consultancy Services, August, 2001, Disponível em
http://www.tcs.com/0_whitepapers/htdocs, Visitado em 08/11/2004.
IC - UNICAMP
MO409
19
Referências
Gurd, A., Using UML 2.0 to Solve Systems Engineering Problems. Telelogic White
Paper, 2003, disponível em http://www.telelogic.com/download/paper, Visitado em
08/11/2004.
OMG, UML 2.0 Proposal v. 0.671 (draft), disponível em
http://www.omg.org/cgi-bin/doc?ad/02-01-12, visitado em 23/11/2004.
Site oficial OMEGA, http://www-omega.imag.fr, visitado em 25/11/2004.
OMG, OMG Unified Modeling Language Specification, versão 1.5, Março/2003,
disponível em http://www.omg.org/cgi-bin/apps/doc?formal/03-03-01.pdf,
visitado em 25/11/2004.
Site oficial PVS Specification and Verification System, http://pvs.csl.sri.com/,
visitado em 25/11/2004.
IC - UNICAMP
MO409
20
Fases, UML e Ferramentas
Workflow
Omega/UML
Ferramentas
Requisitos
-Use Case Diagrams
-LSCs, OCL
-Máq. Estados
-Play-in/play-out (LSCs)
-Consistência dos LSCs e OCL
-Refino das especificações
-Dedução de propriedades
Arquitetura
-Componentes, Connectores,
Portas, Interfaces, LSCs, OCL,
Máq. Estados
-Corretude com os requisitos
-Verificação composicional
-Análises de aspectos de
tempo
Análise e Design
-Diagramas de classes
-OCL
-Máq. Estado
-Corretude com componentes
-Síntese de statecharts
-Corretude dos passos de
refinamento
Implementação
Deployment diagram
Verificação e síntese de
escalonamento
IC - UNICAMP
MO409
21