trabalho2013-1

Propaganda
Trabalho (Exemplo e
Objetivos)
Frameworks
Orientados a Objetos
Toacy C. de Oliveira
Toacy C. Oliveira - COPPE/UFRJ
1
Agenda

Apresentação de Exemplos
 xxxDraw
– Um desenhador de grafos

Formato do Trabalho

Entrega
Toacy C. Oliveira - COPPE/UFRJ
2
xxxDraw
Toacy C. Oliveira - COPPE/UFRJ
3
Fases
Fase I – Estudo do Framework(Artefato
Reutilizável) e Apresentação
 Fase II – Descrição de um Plano de
Reutilização, Documentação da
Reutilização, Exemplo (?)
 Fase III – Monografia Final e Troca de
Temas

Toacy C. Oliveira - COPPE/UFRJ
4
Fase I – Estudo



Objetivo: Estudar um Framework (JHotDraw,
Demoseille, Eclipse.*, etc) e entender suas
principais características e seus pontos de
flexibilização.
Forma: Nesta fase não é necessário a utilização
de uma Linguagem Formal, ou seja, a
apresentação é informal podendo ser utilizada
qualquer notação.
Entrega: Apresentação em sala (60min + 15
Discussão)
Toacy C. Oliveira - COPPE/UFRJ
5
Fase I - Detalhes








Introduzir o Tema
Trazer Exemplos
Evidenciar Principais pesquisadores e
conferências/periódicos
Apresentar Teoria (modelos, linguagens,
restrições)
O que dá para estender?
Vantagens desta Reutilização
Desvantagens, Problemas e Dificuldades
Principais Ferramentas
Toacy C. Oliveira - COPPE/UFRJ
6
xxxDraw

xxxDraw é um nome fictício dado a uma
aplicação capaz de desenhar um grafo e
permitir alterações nas propriedades de
seus nós e arestas.
 DTFrame[Carvalho98]
 HotDraw
[Johnson92]
Toacy C. Oliveira - COPPE/UFRJ
7
Funcionalidade/Características
Toacy C. Oliveira - COPPE/UFRJ
8
Extensões
Novos tipos de figuras
 Novos atributos para figuras e seus
editores associados.

Toacy C. Oliveira - COPPE/UFRJ
9
Fase II – Plano de Reutilização



Objetivo: Entender e especificar o processo de
reutilização
Forma: Neste ponto é necessário a
apresentação o Plano de Reutilização utilizando
Linguagem Natural especificando quais pontos
serão estendidos e como/quando isto será feito.
Entrega: Apresentação em sala (30 min)
Toacy C. Oliveira - COPPE/UFRJ
10
Fase II - Detalhes
Apresentar um Case Detalhado
 Construir um Processo em BPMN que
Detalhe o Processo de Reuso do Artefato
escolhido

Toacy C. Oliveira - COPPE/UFRJ
11
Classes
Toacy C. Oliveira - COPPE/UFRJ
12
Classes








Classe BMPFormat - Classe que faz a exportação do desenho em formato
Bitmap.
Classe Canvas - Tela onde as figuras são efetivamente desenhadas.
Classe DrawingTool - Classe principal da ferramenta de desenho. Contem
uma lista de janelas, um gerente de persistencia e um gerente de
exportação.
Classe DrawingWindow - Janela de Desenho
Classe ExportManager - Classe que gerencia todos os aspectos de
exportação.
Classe ExportTool - Classe que efetivamente faz a exportação.
Classe Figure -Classe abstrata que descreve o comportamento mínimo de
uma figura
Classe FigureAction - Classe que descreve as ações que podem ser feitas
em uma figura como: Apagar, MudarNome.
Toacy C. Oliveira - COPPE/UFRJ
13
Classes












Classe FigureData - Classe que descreve os dados da figura como : ID,
nome
Classe GIFFormat - Classe que faz a exportação do desenho em formato
GIF.
Classe MSSQLDB - Wrapper para banco de dados SQL Server.
Classe OODB - Wrapper para banco de dados OO.
Classe OracleDB -Wrapper para banco de dados Oracle.
Classe PersistencyManager - Classe que gerencia todos os aspectos de
persistência.
Classe PersistencyTool - Classe que efetivamente faz a persistência.
Interface Persistent - Interface que declara o protocolo de comunicação
para persistência.
Class RecDB - wrapper para banco de dados orientado a registro.
Classe RelDB - Wrapper para banco de dados relacional.
Classe ToolBar - Barra de ferramentas associada a uma janela de
Desenho.
Classe XMIDB - Wrapper para banco de dados em XMI.
Toacy C. Oliveira - COPPE/UFRJ
14
Reutilização (de Funcionalidade)

Novas Figuras


Persistência (Sim / Não)


A criação de novas figuras se dá por especialização da classe
Figure. Esta classe contem a funcionalidade básica de todas as
figuras que o DTFrame pode manipular.
Sendo uma característica opcional, o mecanismo de
persistência pode não aparecer no design final. Caso o
reutilizador não necessite de tal funcionalidade, ele deverá
ignorar o atributo DrawingTool.thePM. Caso contrário, o
reutilizador deverá especializar a classe PersistencyTool.
Exportação (Sim / Não)

A característica de exportação segue o apresentado para
persistência, sendo que o atributo opional é DrawingTool.theEM
e a classe para especialização é ExportTool.
Toacy C. Oliveira - COPPE/UFRJ
15
Processo de Reutilização




Para cada tipo figura presente na aplicação final, criar uma nova classe
herdando de Figure que especifique a nova figura. Criar também classes
que herdam de FigureData e FigureAction para especificar os dados e as
ações associados a esta figura.
Caso a aplicação do reutilizador necessite de persistência, redefinir a
operação save() para cada tipo figura criada. Esta operação deverá
especificar tuplas no formato <TIPO, NOME, VALOR> de cada atributo a
ser salvo.
Para especificar o aspecto de persistência, o reutilizador deverá escolher
uma subclasse concreta de PersistencyTool, e definir seu uso em
PersistencyManager.configPT(). Caso o tipo de banco de dados utilizado
pela aplicação final não esteja representado, criar uma subclasse de
PersistencyTool como encapsuladora do SGBD. Vale ressaltar que este
aspecto é opcional.
Para especificar o aspecto de exportação, o reutilizador deverá escolher
um conjunto de subclasses de ExportTool, e definir seu uso em
ExportManager.configET().Vale ressaltar que este aspecto é opcional.
Toacy C. Oliveira - COPPE/UFRJ
16
Fase II - Documentação da
Reutilização
Objetivo: Especificar o processo de
instanciação utilizando uma notação
formal.
 Forma: Diagramas (UML-FI)? e RDL
 Entrega : Documento impresso com os
diagramas e anotações complementares.

Toacy C. Oliveira - COPPE/UFRJ
17
UML-FI ?
Toacy C. Oliveira - COPPE/UFRJ
18
1.
2.
3.
RDL ?
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
COOKBOOK DTFrameCok
//=================================================
RECIPE FigureAspect;
LOOP
figClass = CLASS_EXTENSION (Figure);
figDataClass = CLASS_EXTENSION (FigureData);
figAction = CLASS_EXTENSION (FigureAction);
PATTERN_METHOD_EXTENSION (Figure, figClass, createData , Factory, (figClass,
createData, figDataClass);
PATTERN_METHOD_EXTENSION (Figure, figClass, createAction , Factory, (figClass,
createAction, figActionClass);
METHOD_EXTENSION (Figure, figClass,save) REQUIRES
(DrawingWindow.thePersistencyMan);
END_LOOP;
END_RECIPE;
//==============================================
RECIPE PersistencyAspect;
ELEMENT_CHOICE (DrawingWindow.thePersistencyMan);
SELECT_CLASS_EXTENSION (PersistencyTool) REQUIRES
(DrawingWindow.thePersistencyMan) #
CLASS_EXTENSION (PersistencyTool)REQUIRES (DrawingWindow.thePersistencyMan);
VALUE_SELECTION (DrawingTool , autoPersistencyRate, (0,5,10,30)) REQUIRES
(DrawingWindow.thePersistencyMan);
END_RECIPE;
//===============================================
RECIPE ExportAspect;
ELEMENT_CHOICE (DrawingWindow.theExportMan);
LOOP
SELECT_CLASS_EXTENSION (ExportTool) REQUIRES(DrawingWindow.theExportMan) #
CLASS_EXTENSION (ExportTool) REQUIRES(DrawingWindow.theExportMan);
END_LOOP;
END_RECIPE;
//====================================================
RECIPE MAIN;
PersistencyAspect || ExportAspect;
FigureAspect;
END_RECIPE;
END_COOKBOOK;
Toacy C. Oliveira - COPPE/UFRJ
19
Fase III - Monografia

Monografia introduzindo o tema (Fase I) e
descrevendo sua reutilização em um caso
real (Fase II).
Toacy C. Oliveira - COPPE/UFRJ
20
Datas
07/05 – Framework/ Tailoring II
 14/05 – Tailoring I /Linha de Produto
 21/05 – Aspectos / Ecosistemas
 28/05  04/06  11/06 
Toacy C. Oliveira - COPPE/UFRJ
21
Grupos
Framework - Alcileia
 Tailoring I – Ana e Felipe
 Tailoring II – Renata e Gustavo
 Linha de Produto – Luciana e Peter
 Aspectos – Wladmir e Kleiton
 Ecosistemas – Gabriella e Felyppe

Toacy C. Oliveira - COPPE/UFRJ
22
Download