MAC 499 - Trabalho de Formatura Supervisionado
Proposta para Monografia
Nome: Ricardo Guilherme Drizin
Supervisor: Walter Figueiredo Mascarenhas
Tipo de Trabalho: Projeto
Objetivos
O objetivo do projeto é desenvolver um editor
gráfico de modelos ER
(entidade-relacionamento) de bancos de dados
(RDBMS) na linguagem C# (para o
Framework Microsoft .NET, atualmente o grande
rival do Java). A idéia é que o
programa possa ser compilado tanto no Microsoft
Windows (através
do próprio compilador C#,
disponível gratuitamente para esta
plataforma) quanto no DotGNU,
uma implementação opensource da
linguagem .NET (compilador, runtime engine,
etc) disponível para GNU/Linux,
*BSD, Mac OS X, Solaris, AIX, etc.
Assim, pretendo criar um editor de diagramas ER
que possa ser usado tanto no
Windows quanto no GNU/Linux.
Pretendo ao final do projeto ter um software capaz
de editar graficamente
modelos ER (tabelas e relacionamentos),
exportar (via comandos SQL) e importar
(engenharia reversa, através de peculiaridades
de cada RDBMS) modelos ER dos
principais RDBMS do mercado (MS-SQL, Access,
Oracle, MySQL e PostgreSQL).
A parte mais trabalhosa do projeto estará na
interface gráfica (GUI), onde farei
uso de WinForms, GDI+ (System.Drawing.*),
tratamento de eventos de mouse,
talvez UserControls, etc. As interfaces (de
dados) com os diversos RDBMS
aparentemente não apresentarão muitas
dificuldades, bastando pesquisar um pouco
as peculiaridades de cada RDBMS.
Atividades já realizadas
-
Avaliação de recursos e carências dos
principais editores do mercado: ERwin
(Computer Associates), Visio (Microsoft),
PowerDesigner (Sybase)
-
Levantamento informal de sugestões e
reclamações do principal editor (ERwin)
com analistas de sistemas.
-
Estudo dos mecanismos (e sua existência) dos
principais RDBMS para obtermos
seus modelos ER (engenharia reversa) através
de tabelas do sistema.
-
Estudo e implementação de rotinas usando
ADO.NET (ODBC, OLEDb, etc) para usar
os mecanismos do ítem anterior.
-
Estudos e testes introdutórios com o WinForms,
e eventos de mouse
-
Testes com a interface Serializable, para
permitir o armazenamento/recuperação
de nossos modelos ER em arquivos XML.
-
Estudo de código de outras
aplicações desenvolvidas em .NET (algumas de código
aberto, outras via descompilação)
para familiarização de "best practices" e
"best patterns" na linguagem.
Cronograma de atividades para o segundo
semestre
-
Julho: Estudos e testes com GDI+ e UserControls
(estudar melhor maneira para
programar a GUI). Análise de outras
aplicações gráficas em .NET para
familiarização com possibilidades e padrões
de código. Estudar viabilidade de
zoom, scroll, etc.
-
Agosto/Setembro: Modelagem das classes.
Desenvolvimento da GUI com WinForms,
GDI+ e/ou UserControls. Edição dos modelos ER
(tabelas, campos, e
relacionamentos).
-
Setembro/Outubro: Importação e exportação
de modelos ER dos principais RDBMS.
Estudo de compatibilidade/conversão entre os
tipos de dados disponíveis nos
diferentes RDBMS. Estudo das diferenças (e
padrões ANSI) dos principais RDBMS
na sintaxe SQL para criação de tabelas,
constraints, etc. A exportação fará uso
de algoritmos de grafos devido as dependências
entre objetos.
-
Novembro: Documentação. Preparação
de pôster, monografia, apresentação.
Estrutura esperada da monografia
-
1. Introdução aos editores de ER; Principais
editores comerciais; Recursos mais
usados; Recursos desejados;
-
2. Objetivos do trabalho; Minha experiência
profissional com editores ER;
-
3. Ferramentas e técnicas utilizadas
no desenvolvimento
-
Sobre o Framework Microsoft .NET
-
Sobre o DotGNU
-
IDEs: Compiladores,
descompiladores, debuggers
-
4. Trabalhos correlatos estudados
-
5. Sistema Desenvolvido
-
WinForms e GDI+
-
Diagrama de classes da GUI
-
Política de tratamento de
eventos da GUI
-
Peculiaridades dos principais
RDBMS
-
Modelagem do editor ER
e Estruturas de Dados
-
7.Bibliografia utilizada
-
8.Desafios e frustrações encontrados
-
9.Papel do curso e das disciplinas no
desenvolvimento do projeto
-
10.Observações sobre relação entre o meio
acadêmico (conceitos estudados) e o
mercado (aplicações reais)
-
11.Que passos tomaria para aprimorar
conhecimentos caso fosse continuar nesta
atividade
ricardo arroba linux.ime.usp.br
Last modified: Sun Jul 04 19:45:12 BRT 2004