versão 2.0.1 data: 06/setembro/006 -...

24
FAPESP TIDIA - Ae Especificação da Ferramenta Whiteboard (com base no processo UML Components) Versão 2.0.1 Data: 06/Setembro/006

Upload: lydieu

Post on 12-Dec-2018

238 views

Category:

Documents


0 download

TRANSCRIPT

FAPESP

TIDIA - Ae Especificação da Ferramenta

Whiteboard (com base no processo UML Components)

Versão 2.0.1

Data: 06/Setembro/006

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 2

Histórico de Revisões

Data Versão Descrição Autor

13 à 15/Abr/05 0.1.0 Definição do modelo conceitual, diagrama use case, arquitetura de especificação de componentes, interfaces definidas, mapeamento da arquitetura em camadas em EJB, validação da arquitetura em camadas proposta pelo TIDIA-Ae.

Taciana Novo Kudo

20/Abr/2005 0.1.2 Algumas correções gramaticais. Carlos H. O. Jardim

22/Abr/2005 0.2.0 Mudança no modelo conceitual do LMS integrado com a ferramenta whiteboard segundo comentários do GT-IHC – núcleo Campinas.

Alteração nas definições de visita, board e slide.

Taciana Novo Kudo

02/Mai/2005 0.2.1 Alterações segundo o novo modelo conceitual de consenso do LMS aprovado dia 29/04/2005.

Taciana Novo Kudo

04/Mai/2005 0.2.2 Alteração no modelo conceitual da whiteboard

Taciana Novo Kudo

10/Mai/2005 0.3.0 Inserção de mais passos do processo UML Components

Taciana Novo Kudo

12/Mai/2005 0.4.0 Modificações no diagrama de caso de uso Taciana Novo Kudo

16/Mai/2005 0.4.1 Modificação nas interfaces de sistema e de negócio

Taciana Novo Kudo

21/Mai/2005 0.4.2 Alteração no modelo conceitual. Inserção de pré e pós-condições.

Taciana Novo Kudo

24/Mai/2005 0.4.3 Adequação das interfaces requeridas pela ferramenta whiteboard segundo as especificações dos gerenciadores de participante, contexto e atividade de aprendizagem.

Taciana Novo Kudo

31/Mai/2005 0.4.4 Modificações no modelo conceitual, modelo de tipo de negócio e modelo de dados da ferramenta Whiteboard.

Taciana Novo Kudo

08/Jun/2005 0.5.0 Modificação no diagrama use case. Taciana Novo Kudo

13/Jun/2005 0.5.1 Modificação no diagrama de especificação de interfaces e mapeamento dos componentes na arquitetura em camadas.

Taciana Novo Kudo

20/Jun/2005 0.5.2 Modificação no modelo de dados. Taciana Novo Kudo

23/Jun/2005 0.5.3 Modificação no diagrama de casos de uso. Taciana Novo Kudo

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 3

28/Jun/05 0.5.4 Modificações: casos de uso mapeados em interfaces de sistema, interfaces de sistema, diagrama de especificação de interfaces, mapeamento na arquitetura em camadas.

Taciana Novo Kudo

19,20 e 21/jul/05 0.5.5 Alteração em alguns diagramas. Taciana Novo Kudo

01/ago/05 1.0.0 Especificações dos componentes nos pacotes.

Taciana Novo Kudo

11/ago/2005 1.0.1 Modificações no diagrama de mapeamento da arquitetura de componentes, inserção da organização de pacotes e diretórios.

Taciana Novo Kudo

12/set/2005 1.0.2 Atualização: diagrama use case, modelo conceitual da WB, glossários do modelo conceitual e do BTM.

Taciana Novo Kudo

14/set/2005 1.0.3 Organização dos pacotes e classes implementadas.

Taciana Novo Kudo

24/Out/2005 1.0.4 Atualização dos diagramas em inglês. Taciana Novo Kudo

27/Out/2005 1.0.5 Inclusão do modelo de tipos de dados no anexo 1 e inclusão dos pacotes nas seções de interfaces.

Taciana Novo Kudo

22/Fev/2006 1.1.0 Revisão geral da especificação da ferramenta Whiteboard para publicação do primeira release.

Taciana Novo Kudo

03/Jul/06 2.0.0 Revisão geral para o release do dia 07 de julho de 2006.

Taciana Novo Kudo

06/Set/06 2.0.1 Atualização do diagrama de casos de uso. Taciana Novo Kudo

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 4

Tabela de Conteúdo 1. Introdução 6

1.1 Propósito 6 1.2 Escopo 6 1.3 Definições, Acrônimos e Abreviações 6 1.4 Referências 6 1.5 Identificação e Localização do Documento 7

2. Modelo Conceitual 8 2.1 Modelo Conceitual do LMS utilizado nessa especificação 8 2.2 Modelo Conceitual do LMS e da Ferramenta Whiteboard integrados 9

2.2.1 Glossário do Modelo Conceitual da Ferramenta Whiteboard 10

3. Diagrama Use Case da Ferramenta Whiteboard 11

4. Interfaces de Negócio da Whiteboard: criação do Modelo de Tipo de Negócio(BTM) 12 4.1 Glossário do BTM 13

5. Arquitetura de especificação de componentes – Whiteboard e LMS 14 5.1 Interface de Apresentação 15 Pacote: br/fapesp/tidia/ae/presentation/whiteboard 15 5.2 Interface de Sistema 16 5.3 Interfaces de Negócio 17 5.4 Interfaces de Infra-estrutura 18 5.5 Interfaces de Serviços Comuns 20

6. Mapeamento dos Componentes na Arquitetura em Camadas (Tidia-Ae) 21

Anexo 1 – Modelo de Dados 22

Anexo 2 – Diagramas de Colaboração/Comunicação - Criar Sessão de Whiteboard 23

Anexo 3 – Diagramas de Colaboração/Comunicação – Iniciar Sessão de Whiteboard 24

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 5

Lista de Figuras Figura 1. Modelo Conceitual do LMS [1] .....................................................................................................................8 Figura 2. Modelo Conceitual da Whiteboard integrado com o LMS............................................................................9 Figura 3. Diagrama Use Case da Whiteboard.............................................................................................................11 Figura 4. BTM com interfaces de responsabilidades...................................................................................................12 Figura 5. Arquitetura Inicial de Componentes da ferramenta Whiteboard ..................................................................14 Figura 6. Interface de Apresentação com assinatura das operações ...........................................................................15 Figura 7. Interface de Sistema com assinatura das operações ....................................................................................16 Figura 8. Interfaces de Negócio com assinatura das operações ..................................................................................17 Figura 9. Interfaces de Infra-estrutura com assinatura das operações.........................................................................18 Figura 10. Interface IGenericDAO ..............................................................................................................................19 Figura 11. Componentes na arquitetura Tidia-Ae........................................................................................................21 Figura 12. Modelo de Dados .......................................................................................................................................22 Figura 13. Diagrama de Criar Sessão de Whiteboard..................................................................................................23 Figura 14. Diagrama de Iniciar Sessão de Whiteboard................................................................................................24

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 6

Especificação da Ferramenta Whiteboard

1. Introdução

A Whiteboard é uma ferramenta que permite capturar anotações baseadas em caneta com tinta eletrônica. Para usar a Whiteboard uma sessão de captura deve ser configurada. Em uma sessão, todos os participantes selecionados para participarem da sessão podem se conectar de forma distribuída para trocar anotações e intervir no trabalho anotado colaborativamente (por exemplo, por meio de um professor remoto). A ferramenta Whiteboard fornece um conjunto de operações cujas funções permitem: uso de diferentes espessuras de caneta e cores, uso de figuras geométricas pré-definidas, uso de recursos para copiar/recortar/colar/mover objetos, desfazer e refazer ações, apagar objetos, duplicar ou criar novos slides e inserir linhas de grade (útil para gráficos). Para acesso aos slides, pode-se navegar para o próximo, anterior ou por intermédio de miniaturas dos slides. A ferramenta Whiteboard permite a identificação dos participantes previstos para uma sessão, estando eles conectados ou não, e registra o autor de cada ação durante a sessão. Após a finalização de uma sessão os slides são disponibilizados na forma de imagens com o conteúdo capturado.

1.1 Propósito

O objetivo da especificação da ferramenta Whiteboard utilizando UML Components [2] é identificar os componentes e interfaces providas e requeridas da ferramenta Whiteboard a serem implementados no Projeto TIDIA-Ae.

1.2 Escopo

Este documento está inserido no contexto do Projeto Tidia-Ae, mais especificamente no escopo da ferramenta Whiteboard.

1.3 Definições, Acrônimos e Abreviações

Ae – Aprendizagem Eletrônica

GT – Grupo de Trabalho

LMS – Learning Management System

TIDIA – Tecnologia da Informação no Desenvolvimento da Internet Avançada

1.4 Referências

[1] Modelo Conceitual GT-Arquitetura. http://tidia-ae.incubadora.fapesp.br/portal/publications/internal_documents/recomendations/2005-04-29_ConceptualModel%20-%20.bmp

[2] Cheesman J. e Daniels J. “UML Components – A Simple Process for Specifying Component-Based Software”. Addison-Wesley, 2001.

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 7

1.5 Identificação e Localização do Documento

http://tidia-ae.incubadora.fapesp.br/portal/publications/internal_documents/working_drafts/SG_arquitetura/Tools%20Specification/Whiteboard%20-%20Sao%20Carlos/

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 8

2. Modelo Conceitual

2.1 Modelo Conceitual do LMS utilizado nessa especificação

cd Business Concept Model - LMS e Whiteboard

Learning Activity

ToolContextParticipant

UserGroup

Role

Permission

0..*

0..*

0..*

0..*

0..*

1..*

1..*

0..*

1..*

1..* 1..* 0..* 0..*

Figura 1. Modelo Conceitual do LMS [1]

Essa especificação foi realizada com base no último modelo conceitual apresentado pelo Grupo de Arquitetura como de consenso. Esse modelo conceitual entrou em vigor como de consenso a partir do dia 29 de abril de 2005.

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 9

2.2 Modelo Conceitual Inicial do LMS e da Ferramenta Whiteboard integrados

Figura 2. Modelo Conceitual da Whiteboard integrado com o LMS

A Ferramenta Whiteboard é uma especialização de “Tool” no modelo conceitual do LMS. O limite entre as classes da ferramenta Whiteboard e os demais gerenciadores (gerenciador de contexto, gerenciador de usuário, gerenciador de atividade) é representado por “Whiteboard Boundary”. “WBSession” é uma sessão de uso da ferramenta Whiteboard. Um participante “Participant” (que pode ser especializado em grupo “Group” ou usuário “User”) dentro de um contexto “Context” pode participar de nenhuma, uma ou mais sessões de whiteboard “WBSession”. Uma sessão pode conter uma ou mais barras de ferramentas “Toolbar(s)”. Um participante “Participant” que esteja participando de uma sessão de whiteboard “WBSession” pode utilizar uma lousa eletrônica “Board”. Uma lousa eletrônica “Board” pode conter um ou mais slides “Slide(s)”. Um slide “Slide” relacionado com uma visita “Visit” pode conter objetos de uma sessão de whiteboard “WBObject(s)”. Um “WBObject” pode ser especializado em:

Texto “Text”: caixa de texto onde usuário pode entrar com anotações (ex: pelo teclado). Formas geométricas “Shape”: pode ser especializado em: linha (“Line”), elipse (“Ellipse”), retângulo (“Rectangle”), polígono (“Polygon”), ou traços que podem ser feitos sobre o slide (“Strokes”). Figura “Image”: figuras nos formatos JPEG, GIF, PNG.

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 10

2.2.1 Glossário do Modelo Conceitual da Ferramenta Whiteboard

Whiteboard: ferramenta de lousa eletrônica. A utilização da lousa eletrônica traz o conceito de uma sessão de Whiteboard. Numa mesma sessão de Whiteboard, todos os usuários participantes dessa sessão, podem trocar anotações de forma síncrona. Toolbar: barras de ferramentas que podem ser utilizadas em uma board durante uma sessão. Exemplos: barra de ferramentas de geometria, barra de ferramentas de química, barra de ferramentas de física, etc. Board: board é um componente que pode ser usado numa sessão de whiteboard (WBSession). Esse componente poderá ser re-utilizado por qualquer ferramenta que deseje utilizar uma board. Ex: ferramenta comunicador instantâneo, ferramenta aula face-a-face. Uma sessão (WBSession) pode conter várias Boards instanciadas. Slide: slides de uma board onde usuários podem fazer anotações/desenhos. Um slide pode ter plano de fundo (background).

Visit: uma visita é definida pela ação de um usuário acessar um slide, podendo fazer modificações nele ou não.

WBObject: objetos que são gerados num slide, durante uma visita a esse slide. Pode ser ‘text’, ‘shape’ ou ‘image’. Shape: pode ser especializado em ‘stroke’ (traços que o usuário pode fazer em um slide por meio da caneta), ‘rectangle’, ‘ellipse’, ‘polygon’, ‘line’ entre outros que poderão ser definidos futuramente. Text: são textos que podem ser inseridos em um slide. Image: são figuras nos formatos JPEG, GIF, PNG, etc que poderão ser inseridas em um slide.

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 11

3. Diagrama Use Case da Ferramenta Whiteboard cd Whiteboard's Use Case Diagram

criar uma WBSession

entrar na WBSession

editar dados de uma

WBSession

apagar WBSession

finalizar WBSession

carregar imagem

fazer anotações

apagar anotações

mostrar linhas de

grade

criar novo slide

apagar slide

pular slide

duplicar slide

fazer/desfazer

recortar/copiar /colar

sair de uma WBSession

administrador/professor

estudante/monitor

continuar WBSession

carregar apresentação

Sistema de reconhecimento

de escrita

reconfigurar WBSession

iniciada

extrair texto de um slide

reproduzir WBSession

reconhecer escrita

redimensionar board

visualizar slides

capturados

definir permissão de

escrita de participantes

Figura 3. Diagrama Use Case da Whiteboard

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 12

4. Interfaces de Negócio da Whiteboard: criação do Modelo de Tipo de Negócio(BTM)

Figura 4. BTM com interfaces de responsabilidades

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 13

4.1 Glossário do BTM

WBSession - id: identificador da sessão de whiteboard. Tipo: Long. - laId: identificador da Learning Activity a qual a sessão pertence. Tipo: Long. - channelId: identificador do canal de comunicação. Tipo: Long. - finalized: indicador de sessão finalizada. Tipo: boolean. - sessionDate: data da sessão de whiteboard. Tipo: Date. - timeOffset: momento do inicio da sessão. Tipo: Long. - timeOffsetEnd: momento do final da sessão. Tipo: Long. - wbSessionRelated: sessão de whiteboard relacionada, utilizado na função de continuar sessão. Tipo:

Long. WBBoard

- id: identificador do hibernate para board. Tipo: Long. - boardId: identificador da board. Tipo: inteiro. - board-width: largura da board em pixels. Tipo: inteiro. - board-height: altura da board em pixels. Tipo: inteiro.

WBToolbar - id: identificador da barra de ferramenta. Tipo: Long. - name: nome da barra de ferramenta. Tipo: String.

WBSlide - id: identificador do slide no Hibernate. Tipo: Long. - slideId: identificador do slide. Tipo: inteiro. - title: título do slide. Tipo: String. - deletionTimeOffset: momento de deleção do slide. Tipo: Long.

WBVisit - id: identificador da visita no hibernate. Tipo: Long. - visitId: identificador da visita. Tipo: inteiro. - duration: duração de uma visita a um slide. Tipo: long. - timeOffset: data do início da visita. Tipo: long. - participantId: identificador do participante na visita. Tipo: Long.

WBObject - id: identificador de um objeto no hibernate. Tipo: inteiro. - wbObjectId: identificador do objeto que pode ser inserido numa board durante uma visita a um slide.

Tipo: inteiro. - type: tipo do wbobject (text, image ou shape). Tipo: String. - timeOffset: data em que o objeto começa a ser criado. Tipo: Long. - timeOffsetEnd: data em que o objeto termina de ser criado. Tipo: Long. - deletionTimeOffset: data em que o objeto é apagado. Tipo: Long. - participantId: identificador da pessoa que criou um objeto. Tipo: Long.

Text: especialização de WBObject - ...

Image: especialização de WBObject - ....

Shape: especialização de WBObject - color: cor da forma geométrica que foi inserida na board. Tipo: Color. - width: largura da forma geométrica que foi inserida na board. Tipo: inteiro. - shapeType: tipo do shape (line, rectangle, ellipse, polygon e stroke)

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 14

5. Arquitetura de especificação de componentes – Whiteboard e LMS

Figura 5. Arquitetura Inicial de Componentes da ferramenta Whiteboard

A arquitetura inicial de componentes obtida está representada na Figura 5. Nessa arquitetura podemos verificar que o componente de LearningActivity utiliza uma interface do componente Context através da qual as informações necessárias do contexto são obtidas (ex: participantId e roleId). Dados dos componentes Participant e Role são acessados por meio do componente Context. O componente WBSession fornece a interface ISessionMgt para o componente LearningActivity pela qual uma sessão de whiteboard pode ser configurada. O componente de comunicação é acessado pelos componentes WBSession e Board através das interfaces IChannelMgt e IChannelMgtforComm respectivamente. O componente Board fornece a interface IBoardMgt que é acessada pelo componente WBSession para iniciar uma sessão de Whiteboard.

É importante verificar a fronteira de responsabilidades. Por exemplo, o componente WBSession não deve acessar diretamente o componente Participant. Para obter dados de um Participant o componente WBSession deve acessar o componente LearningActivity, que por sua vez acessa o componente Context e esse por sua vez pode acessar o componente Participant.

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 15

5.1 Interface de Apresentação Pacote: br/fapesp/tidia/ae/presentation/whiteboard

cd Whiteboard Presentation Interfaces

«interface»IScreen

+ public abstract void initDrawPanel();() : void+ public abstract void formKeyPressed(final KeyEvent evt);() : void+ public abstract WBObjectWrapper selectAt(final int x, final int y);() : void+ public abstract Vector selectAllInArea(final RectangleWrapper selectRect);() : void+ public abstract void finish();() : void+ public abstract void cleanCurrentWBObject();() : void+ public abstract void refreshUndoRedo();() : void+ public abstract void refreshParticipants();() : void+ public abstract void addWBObject(final WBObjectWrapper wBObject);() : void+ public abstract void eraseWBObject(final WBObjectWrapper wBObject);() : void+ public abstract void moveWBObject(final WBObjectWrapper wBObject);() : void+ public abstract void pasteWBObject(final WBObjectWrapper wBObject);() : void+ public abstract void cutWBObject(final WBObjectWrapper wBObject);() : void+ public abstract void copy();() : void+ public abstract void paste();() : void+ public abstract void cut();() : void+ public abstract boolean insertSlide();() : void+ public abstract boolean duplicateSlide();() : void+ public abstract void previousSlide();() : void+ public abstract void nextSlide();() : void+ public abstract void nextSlide2();() : void+ public abstract void setMode(final int mod);() : void+ public abstract void redo();() : void+ public abstract void undo();() : void+ public abstract void receivedJumpTo(final Long slideID);() : void+ public abstract void receivedRemoveWBObject(final WbObjectVO wBObject);() : void+ public abstract void receivedInsertSlide(final Long slideID);() : void+ public abstract void receivedDuplicateSlide(final Long slideID);() : void+ public abstract void receivedUpdateWBObject(final String factory, final WbObjectVO object);() : void+ public abstract void receveidAddWBObject(final String factory, final WbObjectVO object);() : void+ public abstract BoardWrapper getBoard();() : void+ public abstract int getHeight();() : void+ public abstract void setHeight(final int h);() : void+ public abstract int getWidth();() : void+ public abstract void setWidth(final int w);() : void+ public abstract SlideWrapper getCurrentSlide();() : void+ public abstract int getSlideIndex();() : void+ public abstract CommunicationLayer getCommunicationLayer();() : void+ public abstract boolean isHasGrid();() : void+ public abstract void setHasGrid(boolean hasGrid);() : void+ public abstract boolean hasGrid();() : void+ public abstract int getGridX();() : void+ public abstract int getGridY();() : void+ public abstract void paintGrid(Graphics g);() : void+ public abstract void setGrid(int gX, int gY);() : void+ public abstract WBObjectWrapper getNewWBObject();() : void+ public abstract Vector getWBToolBar();() : void+ public abstract String getActualFactory();() : void+ public abstract void setActualFactory(final String factory);() : void+ public abstract String getActualWBObject();() : void+ public abstract void setActualWBObject(final String wBObject);() : void+ public abstract void setActualColor(final Color color);() : void+ public abstract void setActualWidth(final int width);() : void+ public abstract Long getNewWBObjectId();() : void+ public abstract SlideWrapper getNewSlide();() : void+ public abstract Long getNewSlideId();() : void+ public abstract Hashtable getWBFactory();() : void

Figura 6. Interface de Apresentação com assinatura das operações

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 16

5.2 Interface de Sistema Pacote: br/fapesp/tidia/ae/system/whiteboard

cd Whiteboard System Interfaces

«interface»ISessionSystem

+ public abstract Long add(LearningActivityVO laVO, WbSessionVO wbSessionVO, Collection participants, Long participantId);() : void+ public abstract boolean remove(WbSessionVO wbSessionVO);() : void+ public abstract boolean update(WbSessionVO wbSessionVO);() : void+ public abstract WbSessionVO getById(Long wbSessionId);() : void+ public abstract WbSessionVO getByLAId(Long laId);() : void+ public abstract List storeBackgroundImages(WbFileVO wbFileVO);() : void+ public abstract void generateSlides(WbSessionVO wbSessionVO);() : void+ public List l istSlides(WbSessionVO wbSessionVO);() : void+ public abstract WbFileVO getFinalSlide(Long slideId);() : void

«interface»ICommunicationSystem

+ BytesMessage createBytesMessage();() : void+ MapMessage createMapMessage();() : void+ Message createMessage();() : void+ ObjectMessage createObjectMessage();() : void+ ObjectMessage createObjectMessage(final Serializable objectSerial);() : void+ StreamMessage createStreamMessage();() : void+ TextMessage createTextMessage();() : void+ TextMessage createTextMessage(final String text);() : void+ boolean isConsumer();() : void+ boolean isDurableSubscriber();() : void+ boolean isProducer();() : void+ List l istActiveParticipants();() : void+ List l istParticipants();() : void+ Message receive();() : void+ Message receive(final long timeout);() : void+ Message receiveNoWait();() : void+ boolean sendMessage(final Message message);() : void+ boolean setExceptionListener(ExceptionListener exceptionListener);() : void+ boolean setMessageListener(final MessageListener messageListener);() : void+ boolean startConnection();() : void

«interface»ILASystem

+ Long add(LearningActivityVO laVO);() : void+ boolean remove(Long laId);() : void+ List l istByContext(Long contextId, Long toolId, Long participantId, boolean finalized);() : void+ boolean update(LearningActivityVO laVO);() : void+ LearningActivityVO getById(Long laId);() : void

«interface»LMSAPI

+ public String getInformation() throws RemoteException;() : void+ public List getAccessibleSubActivities(Long userID, Long contextID) throws SystemException, RemoteException;() : void+ public void updateContext(ContextInfo contextInfo) throws SystemException, RemoteException;() : void+ public Long createContext(ContextInfo contextInfo) throws SystemException, RemoteException;() : void+ public Long createActivity(ContextInfo contextInfo) throws SystemException, RemoteException;() : void+ public void createToolData(ToolDataInfo toolData) throws SystemException, RemoteException;() : void+ public List getAccessibleLinkedContexts(Long userID, Long contextID) throws SystemException, RemoteException;() : void+ public void editContext(UserInfo currentUser, ContextInfo existingContext, Long contextID) throws RemoteException, SystemException;() : void+ public void editToolData(UserInfo currentUser, ToolDataInfo eToolData, String toolDataId) throws RemoteException, SystemException;() : void+ public Boolean associateLinkedContext(Long hostContextID, Long associatedContextID) throws SystemException, RemoteException;() : void+ public List getContextExternalLinks(Long contextID) throws SystemException, RemoteException;() : void+ public List getContextInternalLinks(Long contextID) throws SystemException, RemoteException;() : void+ public List getContextParticipants(Long contextID) throws SystemException, RemoteException;() : void+ public List getContextGroups(Long contextID) throws SystemException, �RemoteException;() : void+ public List getContextRoles(Long contextID) throws SystemException, RemoteException;() : void+ public List getUserContextRoles(Long userID, Long contextID) throws SystemException, RemoteException;() : void+ public List getContextUsers(Long contextID) throws SystemException, RemoteException;() : void+ public ContextInfo getContext(Long contextID) throws SystemException, RemoteException;() : void+ public List l istContextsByAlias(String alias) throws SystemException, RemoteException;() : void+ public RoleInfo getRole(Long roleID) throws SystemException, RemoteException;() : void+ public ToolDataInfo getToolData(String toolDataID) throws SystemException, RemoteException;() : void+ public List l istPermissions(Long roleID) throws SystemException, RemoteException;() : void+ public List l istAllRoles() throws SystemException, RemoteException;() : void+ public ContextInfo getFirstAccessibleContext(Long userID) throws SystemException, RemoteException;() : void+ public Boolean userHaveRole(Long userID, Long contextID, Long roleID) throws SystemException, RemoteException;() : void+ public List l istAccessibleSubContexts(Long userID, Long contextID) throws SystemException, RemoteException;() : void+ public void createRole(RoleInfo roleInfo) throws SystemException, RemoteException;() : void+ public void attach(Long userID, Long roleID, Long contextID) throws SystemException, RemoteException;() : void+ public void detach(Long userID, Long roleID, Long contextID)�throws SystemException, RemoteException;() : void+ public void createUser(UserInfo userInfo) throws SystemException, RemoteException;() : void+ public GroupInfo getGroup(Long groupID) throws SystemException, RemoteException;() : void+ public UserInfo getUser(String userLogin) throws SystemException, RemoteException;() : void+ public UserInfo getUser(Long userID) throws SystemException, RemoteException;() : void+ public List getGroupUsers(Long groupID) throws SystemException, RemoteException;() : void+ public Boolean isUserInGroup(Long userID, Long groupID) throws SystemException, RemoteException;() : void+ public Boolean userExists(String userLogin) throws SystemException, RemoteException;() : void+ public void updateUser(UserInfo userInfo) throws SystemException, RemoteException;() : void+ public void createGroup(GroupInfo groupInfo) throws SystemException, �RemoteException;() : void+ public void createGroup(GroupInfo groupInfo, List members, List roles, Long contextId) throws SystemException, RemoteException;() : void+ public void updateGroup(GroupInfo groupInfo) throws SystemException, RemoteException;() : void+ public void updateGroup(GroupInfo groupInfo, List members, List roles, Long contextId) throws SystemException, RemoteException;() : void+ public List l istUsersByLogin(String userLogin) throws SystemException,�RemoteException;() : void+ public List l istUsersByName(String userName) throws SystemException, RemoteException;() : void+ public List l istGroupsByName(String groupName) throws SystemException, RemoteException;() : void+ public List l istGroupsByDescription(String groupDesc) throws SystemException, RemoteException;() : void+ public List l istAllUsers() throws SystemException, RemoteException;() : void+ public List l istAllTools() throws SystemException, RemoteException;() : void+ public List l istToolsByContext(Long contextId) throws SystemException, �RemoteException;() : void+ public void createInternalLink(Long contextID, String url, String name, Long userID) throws SystemException, RemoteException;() : void+ public List l istAllInternalLinksByContext(Long contextID) throws SystemException, �RemoteException;() : void+ public List l istAllInternalLinks() throws SystemException, RemoteException;() : void+ public void removeInternalLink(Long userID, Long internalLinkID) throws SystemException, RemoteException;() : void+ public void removeTool(UserInfo user, ToolDataInfo tool) throws SystemException, RemoteException;() : void+ public void createExternalLink(Long contextID, String url, String name, Long userID) throws SystemException, RemoteException;() : void

Figura 7. Interface de Sistema com assinatura das operações

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 17

5.3 Interfaces de Negócio

Pacote: br/fapesp/tidia/ae/elearning/whiteboard

cd Whiteboard e-learning Interfaces

«interface»ILAMgt

+ Long add(LearningActivityVO laVO);() : void+ boolean remove(Long laId);() : void+ java.uti l.List l istByContext(Long contextId, Long toolId, Long participantId, boolean finalized);() : void+ boolean update(LearningActivityVO laVO);() : void+ LearningActivityVO getById(Long laId);() : void

«interface»ISessionMgt

+ public abstract Long add(WbSessionVO wbSessionVO);() : void+ public abstract boolean remove(Long sessionId);() : void+ public abstract boolean update(WbSessionVO wbSessionVO);() : void+ public abstract WbSessionVO getById(Long wbSessionId);() : void+ public abstract WbSessionVO getByLAId(Long laId);() : void+ public abstract List storeBackgroundImages(WbFileVO wbFileVO);() : void+ public abstract WbFileVO getFinalSlide(Long slideId);() : void

«interface»IChannelMgt

+ boolean addParticipant(Long channelId, ParticipantProps props) throws EJBException;() : void+ boolean addParticipants(Long channelId, List participants) throws EJBException;() : void+ Long createChannel(int destinationType, String mdbTemplateName) throws EJBException;() : void+ boolean isActiveParticipant(Long channelId, Long participantId) throws EJBException;() : void+ boolean isParticipant(Long channelId, Long participantId) throws EJBException;() : void+ List l istActiveParticipants(Long channelId) throws EJBException;() : void+ List l istParticipants(Long channelId) throws EJBException;() : void+ boolean removeChannel(Long channelId) throws EJBException;() : void+ boolean removeParticipant(Long channelId, Long participantId) throws EJBException;() : void+ boolean removeParticipants(Long channelId, List participantIds) throws EJBException;() : void

«interface»IChannelMgtForComm

+ HashMap getChannelParticipantProps(Long channelId, Long participantId) throws EJBException;() : void+ boolean isActiveParticipant(Long channelId, Long participantId) throws EJBException;() : void+ boolean isParticipant(Long channelId, Long participantId) throws EJBException;() : void+ boolean joinChannel(Long channelId, ParticipantNick participantNickObject) throws EJBException;() : void+ boolean leaveChannel(Long channelId, Long participantId) throws EJBException;() : void+ List l istActiveParticipants(Long channelId) throws EJBException;() : void+ List l istParticipants(Long channelId) throws EJBException;() : void

«interface»IBoardMgt

+ public abstract void initBoard(Long boardId, int width, int height, List slideBackgroundIds);() : void+ public abstract WbVisitVO jumpSlide(Long boardId, Long slideId, Long participantId);() : void+ public abstract void cloneSlide(Long boardId, Long slideId, Long slideIdNew, Long participantId, Vector wbObjects);() : void+ public abstract void updateWbObject(Long boardId, WbObjectVO wbObject);() : void+ public abstract void insertSlide(Long boardId, Long slideId, Long participantId);() : void+ public abstract void writeWbObject(Long boardId, WbObjectVO wbObject);() : void+ public abstract void removeWbObject(Long boardId, WbObjectVO wbObject);() : void+ public abstract void generateSlides(Long boardId);() : void+ public void createFirstVisit(Long boardId, Long participantId);() : void+ public void endVisit(Long boardId);() : void+ public List l istSlides(Long boardId);() : void

Figura 8. Interfaces de Negócio com assinatura das operações

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 18

5.4 Interfaces de Infra-estrutura

Pacote: br/fapesp/tidia/ae/infra/whiteboard

cd Whiteboard Infrastructure Interfaces

«interface»IWbBoardDAO

+ public WbBoardVO findByBoardId(Long boardId) throws DatabaseException;() : void

«interface»IWbFileDAO

«interface»IWbObjectDAO

+ public WbObjectVO findByObjectId(Long boardId, int objectId) throws DatabaseException;() : void

«interface»IWbSessionDAO

+ public abstract WbSessionVO getByLAId(Long laId) throws DatabaseException;() : void

«interface»IWbSlideDAO

+ public WbSlideVO findBySlideId(Long boardId, Long slideId) throws DatabaseException;() : void

«interface»IWbVisitDAO

+ public WbVisitVO findCurrentVisit(Long boardId) throws DatabaseException;() : void+ public WbVisitVO findBySlideId(Long boardId, Long slideId) throws DatabaseException;() : void

«interface»ILearningActivityDAO

+ List l istByContext(Long contextId, Long toolId, Long participantId, boolean finalized) throws DatabaseException;() : void

Figura 9. Interfaces de Infra-estrutura com assinatura das operações

As interfaces IWbBoardDAO, IWbFileDAO, IWbObjectDAO, IWbSessionDAO, IWbSlideDAO, IWbVisitDAO e ILearningActovityDAO extends a interface IGenericDAO.

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 19

cd Whiteboard Infrastructure Interfaces

«interface»IGenericDAO

+ void insert(ObjectVO object) throws DatabaseException;() : void+ List selectAll() throws DatabaseException;() : void+ ObjectVO selectByPrimaryKey(Long key) throws DatabaseException;() : void+ void delete(Long key) throws DatabaseException;() : void+ void update(ObjectVO object) throws DatabaseException;() : void

Figura 10. Interface IGenericDAO

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 20

5.5 Interfaces de Serviços Comuns

Pacote: br/fapesp/tidia/ae/common/whiteboard

Não possui interfaces de serviços comuns.

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 21

6. Mapeamento dos Componentes na Arquitetura em Camadas (Tidia-Ae)

Figura 11. Componentes na arquitetura Tidia-Ae

No decorrer da implementação algumas modificações foram sendo necessárias e a arquitetura atual de

componentes que representa o que temos implementado é mostrada na Figura 11. Pode ser notada uma evolução entre a arquitetura inicial de componentes (Figura 5) e a aqruitetura final de componentes (Figura 11). Vale ressaltar que algumas modificações foram sendo feitas, por exemplo, o componente Context representado na Figura 6 atualmente é o componente LMSApi (Figura 11). Os componentes Participant e Role (Figura 6) não aparecem na arquitetura final de componentes (Figura 11) porque o acesso a eles é feito sempre através do component LMSApi.

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 22

Anexo 1 – Modelo de Dados cd Data Model - unified

LMS

Communication

Shared

Whiteboard

CommChannelParticipant

- id: long- active: boolean- channel: CommChannel- consumer: boolean- destinationClientId: String- destinationPassword: String- destinationUserId: String- durableSubscription: boolean- messageSelector: String- noti ficationInterest: boolean- participantId: Long- producer: boolean- subName: String

LMS::LearningActici ty

- id: Long- ctxId: Long- ti tle: String- description: String- objective: String- beginDate: DateTime- endDate: DateTime- toolId: Long

ShFile

- id: Long- fileName: String- size: long- file: Blob

ShText

- id: Long- content: String- fontColor: Color- fontType: String- fontSize: int- ...: ...

CommChannel

- id: Long- channelParticipants[]: CommChannelParticipant- destinationName: String- destinationType: int- finalized: boolean- jndiName: String- mdbModuleName: String- mdbTemplateName: String

ShImage

- mpeg7::frameWidth: int- mpeg7::pixelResolution: int- mpeg7::frameAspectRatio: String- mpeg7::frameHeight: int- mpeg7::titleAlternative: String- mpeg7::titleMain: String- mpeg7::avaliabili tyPeriod: Calendar- mpeg7::titleAbstract: String- mpeg7::pixelBitPer: int

ShAudio

- mpeg7::duration: int- mpeg7::audioChannels: int- mpeg7::titleAlternate: String- mpeg7::titleMain: String- mpeg7::titleAbstract: String- mpeg7::avaliabili tyPeriod: Calendar

ShVideo

- mpeg7::duration: Long- mpeg7::frameHeight: int- mpeg7::frameWidth: int- mpeg7::frameAspectRatio: String- mpeg7::frameRate: int- mpeg7::bitrateMinimum: int- mpeg7::bitrateAverage: int- mpeg7::bitrateMaximum: int- mpeg7::audioChannels: int- mpeg7::titleMain: String- mpeg7::titleAlternative: String- mpeg7::titleAbstract: String- mpeg7::language: String- mpeg7::aval iabili tyPeriod: Calendar- mpeg7::pixelBitPer: int

WbSession

- id: Long- laId: Long- channelId: Long- finalized: boolean- sessionDate: Date- timeOffset: Long- timeOffsetEnd: Long- wbsessionRelated: Long

WbBoard

- id: Long- boardId: Long- board-width: int- board-height: int

WbSlide

- id: Long- slideId: int- ti tle: String- deletionTimeOffset: Long

WbVisit

- id: Long- visitId: int- duration: Long- timeOffset: Long- participantId: Long

WbObject

- id: Long- wbObjectId: int- type: String- timeOffset: Long- timeOffsetEnd: Long- deletionTimeOffset: Long- participantId: Long

WbShape

- color: Color- width: int- shapeType: String

WbPoint

- x: int- y: int

Sentence

- sentence: String

WbToolbar

- id: Long- name: String

LMS::Participant

- id: Long- name: String

WbObjectFile WbObjectTxt

Annotation

- annotation: String

url-background

ShColor

- r: int- g: int- b: int

ShAudioChannel

- mpeg7::idChannel: int- mpeg7::audioSampleRate: int- mpeg7::language: String- mpeg7::bitRateMinimum: int- mpeg7::bitRateAverage: int- mpeg7::bitRateMaximum: int

WbFile WbText

WbSlideText

- sentence: String

1

0..*

0..*

1..*

1 110..*

1

1..*

1

1..*

1 1

0..11

1

0..*

1

1

1

1

1

1

1

1..*

1

0..*

1

1

0..*

0..1

1

0..1

1

0*1

0..1

1

1

0..1

0..1

10*

11..*

1 1

1

1

1

1

1

1..*

Figura 12. Modelo de Dados

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 23

Anexo 2 – Diagramas de Colaboração/Comunicação - Criar Sessão de Whiteboard

cd Colaboration Diagram - Create WBSession

«presentation»:GUICreateLA

«presentation»:GUICreateSession

«system»:LAServ let

«system»:LASystem

«system»:SessionServ let

«system»:SessionSystem

«e-learning»:LAMgr

«e-learning»:SessionMgr

«infra»:SessionDAO

«infra»:LADAO

7.5: save LAData

7.4: save LAData

7.3: save SessionData

7.2: save SessionData

7.1: commit

7: commit

6: create Session

5: create Session

4: createGUI3: create SessionGUI

2: createLA

1: createLA

Name:Package:Version:Author:

Colaboration Diagram - Create WBSessionWhiteboard's Diagrams1.0Taciana Novo Kudo

Figura 13. Diagrama de Criar Sessão de Whiteboard

TIDIA - Ae Versão: 2.0.1 Especificação da ferramenta whiteboard Data: 06/Set/06

Confidencial FAPESP, 2007 Página 24

Anexo 3 – Diagramas de Colaboração/Comunicação – Iniciar Sessão de Whiteboard

cd Collaboration Diagram - Start WBSession

Legenda

«presentation»userA :GUICreateLA /

JSP (XML+JSTL)

«presentation»userB :GUICreateLA /

JSP (XML+JSTL)

«presentation»userA :GUIBoard / JSP

(XML+JSTL)

«presentation»userA :GUIBoard /

APPLET

«presentation»userB :GUIBoard / JSP

(XML+JSTL)

«presentation»userB :GUIBoard /

APPLET

«system»:LAServ let /

SERVLET

«system»:SessionServ let /

SERVLET

«system»:SessionSystem / SESSION BEAN]

«system»:Communication /

JAVA CLASS «system»

:Communication / JAVA CLASS

«system»:BoardSystem / SESSION BEAN

«common»:MDB /

MESSAGE DRIVEN BEAN

«common»:Channel /

TOPIC

«system»:LASystem / SESSION

BEAN

«e-learning»:LAMgr / SESSION BEAN

«e-learning»:SessionMgr / SESSION

BEAN

«e-learning»:DestinationMgrBean /

SESSION BEAN

«e-learning»:MDBMgrBean / SESSION BEAN

«e-learning»:BoardMgr / SESSION BEAN

«infra»:LADAO

«infra»:SessionDAO

«infra»:BoardDAO

______ join do userA______ join do userB

11: getLAsOfContext

11.1: getLAsOfContext

11.2: getLAsOfContext

12: LAsOfContext

15: getToolsOfLA

15.1: getToolsOfLA

15.2: getToolsOfLA

16: joinUserB17: requestSessionData

17.1: getSessionData

17.2: getSessionData

18: joinUserBToTopic

18.1: joinUserBToTopic

______ faz uma anotação na Board, replica para os demais users e armazena

5.1: getToolsOfLA

13: createGUI

10.1: startApplet

10: startApplet

9.1:joinUserAToTopic

7: requestSessionData

1: getLAsOfContext 5: getToolsOfLA

7.1: getSessionData

1.2: getLAsOfContext

1.1: getLAsOfContext

6: joinUserA

4: selectedLA

3: createGUI

2: LAsOfContext

5.2: getToolsOfLA

8.3: createMDB

20.6:sendBoardMessageToStorage

20.5:sendBoardMessageToStorage

20.3:sendBoardMessage

20.2:sendBoardMessage

20.4:sendBoardMessageToStorage

20.1:sendBoardMessage

14: selectedLA

19.1:startApplet

19: startApplet

8.2: createMDB

9:joinUserAToTopic

8.1: createTopic

8: createTopic

7.2: getSessionData

20.7:sendBoardMessageToStorage

20: drawObject

Name:Package:Version:Author:

Collaboration Diagram - Start WBSessionWhiteboard's Diagrams1.0Taciana Novo Kudo

Figura 14. Diagrama de Iniciar Sessão de Whiteboard