• Nenhum resultado encontrado

Considerações sobre o desenvolvimento do HYPERBOOK

5. EXPERIÊNCIA DE USO DO HYPERTOOLBUILDER

5.2 Considerações sobre o desenvolvimento do HYPERBOOK

Após descritas as funcionalidades da ferramenta de autoria HyperBook cabe ressaltar a forma que a mesma foi desenvolvida baseada no framework HyperToolBuilder.

A Figura 5-15 ilustra as especializações das classes do framework HyperToolBuilder para o desenvolvimento da ferramenta de autoria HyperBook. Para a criação da ferramenta de autoria HyperBook foi criada uma subclasse concreta BookAuthoringTool, da classe abstrata

AuthoringTool do framework. Dessa forma a aplicação herda automaticamente os

relacionamentos de suas superclasses do framework. Herda o relacionamento de

AuthoringTool com StorageManager, reutilizando dessa forma o procolo de controle de

armazenamento de documentos. Além disso, como o framework já possui uma subclasse concreta de StorageManager chamada FileStorageManager, ele já disponibiliza através dessa classe toda a funcionalidade para armazenamento de documentos em arquivo. Ao desenvolver a aplicação, o usuário poderá decidir entre apenas instanciar a classe do framework

FileStorageManager caso deseja armazenar documentos em arquivos, ou criar outras

Menu Popup

subclasses de StorageManager com as funcionalidades para outras formas de armazenamento, em banco de dados ou em formato XML, por exemplo.

Através da especialização da classe AuthoringTool a aplicação herda também o relacionamento com a classe Player, responsável por controlar a execução ou visualização de um documento. O framework já possui uma subclasse concreta de Player chamada

PlayerDefault, que apresenta seqüencialmente todas os elementos de seção de um documento

em tela cheia. Porém, Player também consiste em um ponto flexível do framework já que permite a criação de outras subclasses com outras implementações de execução de documentos.

Para a criação da aplicação HyperBook foram reutilizadas as duas classes concretas:

FileStorageManager e PlayerDefault, herdando do framework toda a funcionalidade de

armazenamento em arquivo e execução de livro.

Foi especializada a classe ToolBar, criando a subclasse concreta BookToolBar, para implementar uma barra de comandos ou barra de atalho (optou-se por utilizar barra de atalho ao invés de barra de menu por brevidade) que disponibiliza os possíveis comandos a serem executados pelo usuário-autor.

E, finalmente, foi especializada a classe ToolPanel do framework criando a classe

BookToolPanel responsável por agregar as subclasses concretas de EditionTool já disponíveis

no framework HyperToolBuilder. Instâncias de SelectionTool, SentenceTool, TextTool,

ButtonTool, ImageTool e MovieTool foram agregadas à uma instância de BookToolPanel

para compor a barra com as ferramentas da aplicação.

A Figura 5-16 ilustra as especializações das classes do framework HyperToolBuilder para a composição da estrutura de um documento (livro) manipulado pela ferramenta de autoria HyperBook.

Através da Figura 5-16 pode-se observar o grande número de classes e relacionamentos que são reutilizados do framework para a criação de um documento do tipo livro. Livro é o documento que será manipulado pela ferramenta de autoria HyperBook.

Para criar um livro20 foi especializada a classe abstrata do framework Presentation criando a classe Book que é um tipo de documento multimídia. A classe Section criando a subclasse concreta Chapter representando os capítulos do livro. E a classe SectionElement criando a subclasse concreta Page que representa as páginas de um capítulo. Como a classe

Book é subclasse de Document ela herda o relacionamento com as superclasses Section e SectionElement.

Todas as unidades de informação (Sentence, Text, Button, Image, Sound, Movie) previstas para serem inseridas em um livro estão previstas no framework, bem como sua utilização. A instanciação das subclasses concretas de StaticMedia e DynamicMedia acontece em tempo de execução da aplicação, toda a vez que o usuário-autor seleciona a ferramenta correspondente a unidade de informação, a mesma fabrica (instancia) um objeto dessas classes.

O protocolo de controle do relacionamento entre as unidades de informação e as possíveis ações sobre as mesmas também é herdado do framework. Apenas se fez necessário criar subclasses concretas da classe Action para disponibilizar na aplicação as ações específicas da mesma. Foram criadas apenas três ações por brevidade através das seguintes subclasses: ExecuteSound, ExecuteMovie e GoToPage.

Através da Figura 5-15 e Figura 5-16 pode-se perceber a substancial quantidade de reuso obtido para o desenvolvimento do HyperBook baseado no framework HyperToolBuilder. A partir da análise dos diagramas das figuras observa-se que seria necessário a criação de aproximadamente vinte e nove classes para o desenvolvimento da aplicação,21 sem a utilização do framework. Com a utilização do framework foram reusadas 9 classes do mesmo através de herança de classes abstratas e 20 classes foram reusadas por composição, através da instanciação de classes concretas do framework.

20 O conceito de livro foi convencionado para a criação da aplicação HyperBook como sendo um documento

multimídia dividido em capítulos e estes divididos em páginas.

21 Nem todas as classes do framework que aparecem no diagrama são reutilizadas para a ferramenta de autoria

HyperBook. Além disso, a contagem realizada inclui apenas as classes do domínio do problema, não incluindo classes de Visão e Controle do modelo MVC

Figura 5-15 Modelo de Objetos da ferramenta de autoria HyperBook, desenvolvida sob o framework HyperToolBuilder MenuBar <<RE>> ToolBar <<R>> StorageManager <<RE>> Player <<RE>> LearningDocument <<RE>> BookToolBar BookToolPanel BookAuthoringTool PlayerDefault FileStorageManager AuthoringTool <<RE>> EditionTool <<RE>> ToolPanel <<RE>> SelectionTool SentenceTool TextTool ButtonTool ImageTool MovieTool QuestionTool ChoiceTool

Framework

HyperToolBuilder

Aplicação

HyperBook

Figura 5-16Modelo de Objetos do documento(livro) da ferramenta de autoria HyperBook, desenvolvida sob o framework HyperToolBuilder Page Presentation <<RE>> Book Practice <<RE>> Chapter SectionComposite Section <<RE>> Tutorial <<RE>> LearningDocument <<RE>>

OpenQuestion TrueOrFalse MarkerDefault Media <<RE>> S tati cMed ia <<RE>> DynamicMedia <<RE>> Handle MultipleChoice Marker <<RE>> QuestionComposite <<RE>> Edge ChoiceComposite <<RE>> GameObjectComposite <<RE >> Group <<RE>> MobileObjectComposite <<RE>> 33 SectionElement <<RE>> InformationUnit <<RE>>

Inform ati onUn itD ecora tor

Exit ActionComposite

Action

GoToPage ExecuteSound Exe cut eMov ie Sentence

Text Button Image Link Sound Movie Animation

Framework

HyperToolBuilder

Aplicação

HyperBook

Documentos relacionados