3.2 Classification fondamentale des matrices aléatoires à spectre réel
3.2.2 Un petit détour sur le calcul de la densité d’états
O desenvolvimento desta tese exigiu grande esforço de pesquisa visando consolidar os conhecimentos na área de Engenharia de Software, bem como buscar novos conhecimentos na área de abordagens dirigidas a modelos. O estado da arte e o estado da técnica nessas áreas foram levantados. O conhecimento na área de sistemas embarcados e conceitos relacionados também foram aprimorados. Todas essas pesquisas serviram como fundamentação teórica necessária para se atingir o objetivo esperado.
A avaliação da autora desse trabalho de pesquisa é bastante positiva, dado que a pesquisa realizada é relevante e desafiadora, inserida no contexto da Arquitetura Dirigida a Modelos (MDA) que é uma das principais tendências da área de Engenharia de Software. Muitos avanços têm sido realizados na área de MDA, entretanto, existem ainda importantes questões a serem resolvidas. Uma dessas questões está relacionada com a transformação de modelos que possui um papel fundamental no processo de desenvolvimento dirigido a modelos. Entretanto, existe uma grande lacuna em termos de métodos e de ferramentas para guiar e auxiliar o desenvolvimento de transformação de modelos em MDA (BAUDRY et al., 2010; FRANCE e RUMPE, 2007; ALMEIDA, 2006). Esta tese contribuiu para preencher esta lacuna, propondo um método para criação de transformações de modelos no qual são estabelecidos os passos a serem realizados e elementos de entrada e saída bem definidos.
A realização desta tese foi desafiadora, principalmente por concentrar-se em sistemas embarcados. O desenvolvimento de sistemas embarcados exige uma abordagem sistemática, bem como suporte de ferramentas avançadas para lidar com a grande diversidade de plataformas existentes e com a crescente complexidade desse tipo de sistema. Em adição, o mercado de software embarcado apresenta um grande potencial de expansão, necessitando, dessa forma, métodos, técnicas e ferramentas que aumentem os níveis de qualidade e produtividade no processo de desenvolvimento de software embarcado. A MDA apresenta-se
160
como uma das alternativas para aumentar a qualidade e incrementar a produtividade no processo de desenvolvimento de software (FRANCE e RUMPE, 2007; KLEPPE et al., 2003). Para aumentar o potencial de uso de ferramentas MDA voltadas para o desenvolvimento de software embarcado, na prática, é importante que a técnica de transformação de modelos utilizada seja minimamente dependente da especificação das características da plataforma. Além disso, reduzindo a dependência da transformação de modelos com relação aos aspectos das plataformas, o impacto causado pela grande diversidade de plataformas existentes, no contexto de sistemas embarcados, é reduzido.
Finalmente, o desenvolvimento de sistemas embarcados baseados em Sistemas Operacionais em Tempo-Real (RTOS) é uma área de pesquisa pouco explorada no contexto da MDA (JEON et al., 2009; KARSAI et al., 2006). Desse modo, esta tese de doutoramento se destaca por abordar justamente os temas supracitados: sistemas embarcados baseados em RTOS, contribuindo assim, com soluções para o desenvolvimento de software nessa área.
O objetivo da tese foi cumprido por meio da proposição do método PI-MT (Platform
Independent - Model Transformations) que define os elementos necessários para criar
transformações de modelos genéricas (não dedicadas) em ambientes embarcados e baseados em RTOS. Pela aplicação do casode estudo e pelas comparações, viu-se que o método PI-MT é viável e, realmente, pode colaborar no desenvolvimento MDA de sistemas embarcados baseados em RTOS. Ainda, esse método é viável de ser integrado em ferramentas de desenvolvimento de software embarcado que utilizam a abordagem MDA, pois está fundamentado em padrões amplamente adotados e difundidos na literatura, como MOF, UML e ATL.
O método tem como base a metamodelagem, fundamentada pelo MOF. A vantagem que isso traz é que o MOF é apoiado por um número crescente de ferramentas e implementações de código aberto disponíveis. Por sua vez, a UML é considerada a linguagem de modelagem padrão para o desenvolvimento de software orientado a modelos. Ainda, atualmente, a ATL é a linguagem mais conhecida e adotada no desenvolvimento de transformações de modelos. O uso de tecnologias padronizadas possibilita uma maior disseminação da MDA na indústria de software.
Os principais benefícios obtidos pelo uso do método proposto na criação de transformações de modelos são a melhoria da produtividade e da portabilidade no desenvolvimento de software embarcado. Esses benefícios são obtidos por meio da “independência de plataforma” que possibilita um maior reuso dos modelos de software e das transformações de modelos. Além disso, o método oferece diretrizes para uma importante
161
etapa do ciclo de vida de desenvolvimento MDA, a transformação de um modelo PIM em um modelo PSM. Essa etapa antecede a etapa responsável por transformar o PSM em código- fonte do sistema de software. Assim, o método também contribui para o problema da geração de código, fornecendo subsídios para resolver uma etapa intermediária de transformação.
O método PI-MT é baseado na abordagem MDA e, portanto, adota as tecnologias sugeridas pelo OMG. Entretanto, esse método pode ser facilmente adaptado para outras abordagens dirigidas a modelos, como MDE e MDD. Ainda, as transformações criadas com base no PI-MT utilizaram o perfil PROAPES. Esses perfil foi desenvolvido dentro do mesmo grupo de pesquisa da UTFPR e é voltado para a definição de elementos e serviços do RTOS X
Real-Time Kernel. O perfil PROAPES foi utilizado por possuir elementos bem definidos e por
oferecer uma interface amigável, de fácil entendimento para o desenvolvedor. Entretanto, o método proposto é genérico, i.e., não está vinculado a um perfil de plataforma e a um perfil de ligação específico. Desse modo, novas transformações criadas com base no PI-MT podem utilizar outros perfis como base para sua implementação.
Outro perfil que possibilita a modelagem de sistemas embarcados baseados em RTOS é o Modeling and Analysis of Real-Time and Embedded Systems (MARTE). Entretanto, a ampla generalidade do MARTE torna o seu uso complexo (SILVESTRE, 2012). Por sua vez, o perfil PROAPES, utilizado como perfil de plataforma nesta pesquisa de doutorado, tem como foco a modelagem de uma família de plataformas similares. Desse modo, o PROAPES é mais fácil de ser compreendido e utilizado.
6.2 DISCUSSÕES
As discussões apresentadas nesta subseção referem-se aos desafios encontrados e relacionados com as implementações MT-AMP e MT-PROAPES realizadas nesta tese. Inicialmente, a ferramenta Enterprise Architect (EA) foi adquirida e estudada, na tentativa de viabilizar a implementação das transformações propostas por meio dessa ferramenta (SPARK SYSTEMS, 2012). A Enterprise Architect é uma ferramenta consolidada no mercado de modelagem UML e oferece recursos como boa interface e facilidade de uso. Seguindo a tendência das abordagens dirigidas a modelo, esta ferramenta também oferece recursos para o desenvolvimento dirigido a modelos, possibilitando, inclusive, gerar e executar transformações de modelos nesse ambiente.
162
Entretanto, foi possível verificar que a EA possui um escopo bastante limitado no que se refere às transformações e que atende a um grupo de plataformas específicas definidas por meio de pacotes, dentre elas: C#, Java e JUnit. Também, as regras de transformação são previamente definidas em templates e, portanto, limitadas a atender a um conjunto de problemas comuns. As principais dificuldades encontradas relacionam-se com o uso de múltiplos modelos de entrada e com a recuperação de valores de propriedades vinculados com estereótipos aplicados em elementos do modelo-fonte. Desse modo, devido às limitações apresentadas pela EA, não foi possível utilizá-la na implementação das transformações MT- AMP e MT-PROAPES. A busca por uma MTL (Model Transformation Language) e por um ambiente continuou e culminou na escolha da linguagem ATL e do ambiente TopCased, respectivamente.
A ATL foi selecionada como a linguagem de transformações de modelos a ser utilizada nesta tese por possuir os recursos necessários para a criação de transformações de modelos que envolvem mais de um modelo de entrada, além de possibilitar o uso de construtores imperativos nos casos em que construtores declarativos não conseguem resolver o problema. Entretanto, a ATL ainda possui algumas importantes limitações relacionadas com a rastreabilidade, complexidade de uso, pouca documentação e refinamento de modelos (JOUAULT, 2008; AGNERb et al., 2012; TROYA e VALLECILLO, 2011). Ainda, segundo Vara et al. (2009) e Cortellessa et al. (2008), a ATL é uma linguagem de transformação de modelos relativamente nova e que apresenta importantes desafios e limitações a serem explorados.
A ATL está incorporada ao TopCased, um ambiente voltado para o desenvolvimento dirigido a modelos, que além da ATL, oferece ferramentas de modelagem UML e ferramentas OCL, integradas em um ambiente único. Este ambiente é baseado no Eclipse e utilizado em importantes projetos de software, como os citados em (CRÉGUT et al., 2010; BERTHOMIEU et al., 2008; PONTISSO e CHEMOUIL, 2006).
A escolha da técnica Superposição de Módulos para realizar o refinamento de modelos UML foi bastante positiva, visto que a técnica do refining oferecida pela linguagem ATL não suporta os recursos exigidos para realizar as transformações propostas (AGNERb et
163