A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Laboratório de Sistemas e Tecnologia Subaquática Documentação da Neptus Framework Arquitectura de Sistemas de Software 2006 José Pinto, Rui Gonçalves.

Apresentações semelhantes


Apresentação em tema: "1 Laboratório de Sistemas e Tecnologia Subaquática Documentação da Neptus Framework Arquitectura de Sistemas de Software 2006 José Pinto, Rui Gonçalves."— Transcrição da apresentação:

1 1 Laboratório de Sistemas e Tecnologia Subaquática Documentação da Neptus Framework Arquitectura de Sistemas de Software 2006 José Pinto, Rui Gonçalves

2 2 Laboratório de Sistemas e Tecnologia Subaquática Estrutura da apresentação n Neptus Framework n Importância da documentação n Como documentar? n Principais tópicos n Ligação Documentação código n Documentação da arquitectura n Alguns Padrões existentes (encontrados) n Resultados

3 3 Laboratório de Sistemas e Tecnologia Subaquática Neptus Framework n Sistema que permite controlar equipas de veículos de vários tipos: autónomos, semi-autónomos ou teleguiados n O sistema permite definir uma missão que consiste em vários mapas e planos individuais n O sistema é flexível na forma de ser facilmente possível adicionar novos tipos de manobras e veículos n Todos os veículos interagem através de uma plataforma de comunicação comum n Podem ser facilmente criadas consolas de operação para novos tipos de veículos ou missões. z

4 4 Laboratório de Sistemas e Tecnologia Subaquática Importância da documentação n Neptus permite a rápida criação de novas aplicações mas inclui também aplicações completas. n A documentação é importante tanto para os programadores como os utilizadores finais n Dada a reutilização dos componentes existentes, também pode ser reutilizada a documentação nos manuais de utilização n Quais as melhores formas de documentar uma framework deste tipo? z

5 5 Laboratório de Sistemas e Tecnologia Subaquática Como documentar - MediaWiki n Permite uma fácil edição e consulta da documentação n Permite a crição de hiperligações entre tópicos relacionados n Obtenção de feedback (comentários) dos utilizadores finais n Os responsáveis de cada módulo, documentam o seu código, os parceiros revêem a documentação. z

6 6 Laboratório de Sistemas e Tecnologia Subaquática Principais Tópicos n Neptus Overview – Possibilidades da framework n Existing Applications – Aplicações que usam Neptus n Getting Started – Começo rápido (simple and fast) n Framework Architecture – Várias vistas da arquitectura n Design Patterns – Ajudam a entender a arquitectura n User Manuals – Utilização das aplicações existentes z

7 7 Laboratório de Sistemas e Tecnologia Subaquática Documentação código n Na documentação da framework existe necessidade de referir código existente n Foi criada uma extensão MediaWiki que permite ligar objectos ao seu Javadoc / Código fonte r

8 8 Laboratório de Sistemas e Tecnologia Subaquática Documentação da arquitectura n Várias representações da arquitectura (deployment, comunicações, diagramas de classes, …) n Utilização de padrões para melhor entender a arquitectura r

9 9 Laboratório de Sistemas e Tecnologia Subaquática Alguns padrões encontrados… n Singleton ConfigFetch: Para que todas as classes tenham acesso a ficheiros de configuração, é arrancado uma classe (sem construtor público) que carrega os ficheiros e depois os disponibiliza MissionConsole: A aplicação de topo que permite lançar outras consolas, não pode ser instanciada mais que uma vez. r

10 10 Laboratório de Sistemas e Tecnologia Subaquática Alguns padrões encontrados… n Proxy GuiUtils: Quando é necessário carregar uma imagem a partir do disco, é utilizada o método GuiUtils.getImage() que carrega a imagem do disco apenas quando necessário, criando também uma cache de imagens já carregadas. z

11 11 Laboratório de Sistemas e Tecnologia Subaquática Alguns padrões encontrados… n Observer MapChangeListener: Sempre que é editado um mapa, todos os seus observadores são notificados, reagindo de acordo VariableChangeListener: Quando os valores da árvore central são alterados, caso existam observadores estes são notificados r

12 12 Laboratório de Sistemas e Tecnologia Subaquática Alguns padrões encontrados… n Composite MapGroup: Esta classe permite criar um mapa a partir de objectos (MapObject) ou da composição de vários mapas existentes. z

13 13 Laboratório de Sistemas e Tecnologia Subaquática Alguns padrões encontrados… n Interpreter ScriptTreeEvaluator: Existem vários observadores (Padrão Listener) da árvore de variáveis que incluem condições em formato texto (JavaScript). Sempre que as variáveis observadas são alteradas, o texto é interpretado com o novo valor das variáveis. r

14 14 Laboratório de Sistemas e Tecnologia Subaquática Alguns padrões encontrados… n State Maneuver: Para ser possível pré-visualizar um plano (sequência de manobras), existe a classe IndividualPlanType que contêm uma lista de manobras e chama periodicamente o método maneuverFunction() da manobra activa até esta terminar. Em seguida é chamado o mesmo método da próxima manobra, … z

15 15 Laboratório de Sistemas e Tecnologia Subaquática Alguns padrões encontrados… n Iterator MapObject: Sempre que é pintado um mapa, são iterados os seus objectos, de forma a todos eles serem pintados (usando o pattern Command). Renderer2DPainter: Esta classe representa uma layer genérica do mapa. Todas as layers activas são pintadas, uma de cada vez, quando o mapa é pintado (Exemplos: legenda, plano previsto, posição dos veículos, …) r

16 16 Laboratório de Sistemas e Tecnologia Subaquática Alguns padrões encontrados… n Memento MapType, GraphType, CheckListType: Todas estas classes implementam a interface XMLOutputMethods que inclui os métodos asXML() e fromXML(), que permite guardar e carregar os objectos em disco. z

17 17 Laboratório de Sistemas e Tecnologia Subaquática Alguns padrões encontrados… n Factory NativeTypeFactory: Cada nó da rede especifica quais as mensagens que são transmitidas através de um ficheiro XML. Os campos das mensagens são enviados como estruturas do C (formato little endian) e por isso é necessário criar classes dinamicamente que consigam obter os dados. ManeuverFactory: Todos os veículos suportados especificam as manobras suportadas, incluindo uma implementação (caminho para a classe que implementa). Quando é pré-visualizado um plano, é usada uma classe factory para gerar as manobras do veículo. z

18 18 Laboratório de Sistemas e Tecnologia Subaquática Resultados n A documentação é facilmente reutilizável para a produção de manuais (utilização / desenvolvimento) n A documentação serve também de catálogo das possibilidades / componentes existentes, ficando assim os desenvolvimentos melhor documentados r

19 19 Laboratório de Sistemas e Tecnologia Subaquática Resultados (cont.) n Foi criada uma nova consola para um veículo autónomo aéreo (AsasF) com o auxílio da documentação existente r

20 20 Laboratório de Sistemas e Tecnologia Subaquática Perguntas?


Carregar ppt "1 Laboratório de Sistemas e Tecnologia Subaquática Documentação da Neptus Framework Arquitectura de Sistemas de Software 2006 José Pinto, Rui Gonçalves."

Apresentações semelhantes


Anúncios Google