VITOR FAIÇAL CAMPANA - Sérgio...

87
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO CURSO DE GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO VITOR FAIÇAL CAMPANA Sistema web de sugestão e seleção de temas de trabalhos acadêmicos VITÓRIA 2006

Transcript of VITOR FAIÇAL CAMPANA - Sérgio...

Page 1: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO TECNOLÓGICO

CURSO DE GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO

VITOR FAIÇAL CAMPANA

Sistema web de sugestão e seleção de temas de trabalhos acadêmicos

VITÓRIA 2006

Page 2: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

VITOR FAIÇAL CAMPANA

Sistema web de sugestão e seleção de temas de trabalhos acadêmicos

VITÓRIA 2006

Trabalho de conclusão de curso apresentado como

exigência parcial para obtenção do título de Engenheiro

de Computação à Universidade Federal do Espírito

Santo sob orientação do Prof. Dr. Orivaldo de Lira

Page 3: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

VVIITTOORR FFAAIIÇÇAALL CCAAMMPPAANNAA

Sistema web de sugestão e seleção de temas de trabalhos acadêmicos

COMISSÃO EXAMINADORA

________________________________________________

Prof. D. Sc. Orivaldo de Lira Tavares UFES - Universidade Federal do Espírito Santo Orientador

________________________________________________

Prof. MSc. Sergio Teixeira Faculdade Salesiana de Vitória

________________________________________________

Bac. Ciência da Computação. Marcello Novaes Amorim UFES - Universidade Federal do Espírito Santo

Vitória - ES, 28 de dezembro de 2006.

Page 4: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

RESUMO

Esse trabalho apresenta uma proposta de sistema web que permite a

definição, escolha, distribuição e aprovação de temas para o desenvolvimento de

trabalhos e projetos acadêmicos. Com o sistema proposto, professores da

universidade poderão cadastrar temas relacionados à sua área de atuação e o

próprio sistema irá selecionar os alunos interessados nos respectivos temas. Além

disso, empresas cadastradas no sistema poderão sugerir novas propostas de temas.

Page 5: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

2

LISTA DE FIGURAS

Figura 2.1: Representação da arquitetura cliente/servidor........................................10 Figura 2.2: Uma arquitetura de hardware cliente-servidor duas camadas. ...............10 Figura 2.3: Uma arquitetura de hardware cliente-servidor três camadas ..................11 Figura 2.4: Uma arquitetura de hardware cliente-servidor n camadas ......................11 Figura 2.5: Camadas de Software.............................................................................12 Figura 2.6: Tipos mais comuns de Servlet Containers ..............................................20 Figura 2.7: Representação de um mapeamento O/R e um banco OO......................22 Figura 2.8: Benchmarks do db4o e algumas soluções de mapeamento O/R............23 Figura 2.9: Página do Departamento de Engenharia de Sistemas e Computação da

UERJ..................................................................................................................25 Figura 2.10: Página do Projeto Poli-Cidadã da Escola Politécnica da USP ..............26 Figura 2.11: Projeto Poli-Cidadã - Cadastro de Temas (Dados do Organismo)........27 Figura 2.12: Projeto Poli-Cidadã - Cadastro de Temas (Descrição do Tema) ..........28 Figura 3.1: Diagrama de Casos de Uso para Professor, Aluno e Organização. .......31 Figura 4.1: Diagrama de Classes ..............................................................................40 Figura 4.2: Diagrama de seqüência - Caso de uso “Cadastrar-se”. ..........................45 Figura 4.3: Diagrama de seqüência - Caso de uso “Autenticar-se”...........................46 Figura 4.4: Diagrama de seqüência - Caso de uso “Cadastrar Tema”. .....................46 Figura 4.5: Diagrama de seqüência – Casos de uso “Consultar Temas”, “Fazer

Pergunta”, “Verificar Resultado” e “Aceitar Tema” para o ator “Aluno”..............47 Figura 4.6: Diagrama de seqüência – Casos de uso “Consultar Temas”, “Responder

Pergunta” e “Verificar Resultado” para o ator “Professor” ..................................48 Figura 4.7: Diagrama de seqüência – Caso de uso “Consultar Proposta” e “Aceitar

Proposta”............................................................................................................49 Figura 4.8: Diagrama de seqüência – Caso de uso “Cadastrar Proposta” ................49 Figura 4.9: Diagrama de seqüência – Casos de uso “Verificar a situação das

propostas” e “Fazer Pergunta” para o ator “Organização” .................................50 Figura 5.1: Modelo Conceitual do Sistema................................................................52 Figura 5.2: AlunoDAO ...............................................................................................53 Figura 5.3: ProfessorDAO .........................................................................................54 Figura 5.4: OrganizacaoDAO ....................................................................................55 Figura 5.5: TemaDAO ...............................................................................................56

Page 6: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

3

Figura 5.6: PropostaDAO ..........................................................................................57 Figura 5.7: DesenvolvedorDAO.................................................................................58 Figura 5.8: PerguntaDAO..........................................................................................59 Figura 5.9: Modelo de navegação – Cenário Cadastro do caso de uso Cadastrar-se

...........................................................................................................................60 Figura 5.10: Modelo de navegação - Caso de uso Autenticar-se..............................61 Figura 5.11: Modelo de navegação - Caso de uso Cadastrar Proposta....................62 Figura 5.12: Modelo de navegação - Cenário Cadastro do caso de uso Cadastrar

Tema..................................................................................................................62 Figura 5.13: Modelo de navegação - Caso de uso Consultar Propostas/Verificar

Situação das Propostas .....................................................................................63 Figura 5.14: Modelo de navegação - Caso de uso Consultar Temas........................63 Figura 5.15: Modelo de navegação - Caso de uso Fazer Pergunta ..........................64 Figura 5.16: Modelo de navegação - Caso de uso Aceitar Tema..............................64 Figura 6.1: Tela inicial do sistema .............................................................................66 Figura 6.2: Tela de autenticação do sistema.............................................................66 Figura 6.3: Tela de cadastro de aluno.......................................................................67 Figura 6.4: Tela de cadastro de professor.................................................................67 Figura 6.5: Tela de cadastro de organização ............................................................68 Figura 6.6: Tela de navegação do aluno ...................................................................69 Figura 6.7: Tela de resultado da busca por temas ....................................................69 Figura 6.8: Tela de exibição de um Tema .................................................................70 Figura 6.9: Tela de verificação de resultado de um tema com seleção em andamento

...........................................................................................................................71 Figura 6.10: Tela de verificação de resultado de um tema com seleção finalizada...72 Figura 6.11: Tela de navegação do professor ...........................................................73 Figura 6.12: Tela de consulta de propostas ..............................................................73 Figura 6.13: Tela de exibição de proposta ................................................................74 Figura 6.14: Tela de cadastro de tema......................................................................75 Figura 6.15: Tela de tema .........................................................................................76 Figura 6.16: Tela de navegação da organização ......................................................77 Figura 6.17: Tela de cadastro de proposta para temas.............................................78 Figura 6.18: Tela de exibição de proposta quando originou algum tema ..................79

Page 7: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

4

SUMÁRIO

CAPÍTULO 1 - INTRODUÇÃO ...............................................................6

1.1. OBJETIVOS.........................................................................................................6 1.2. JUSTIFICATIVAS ..................................................................................................6 1.3. METODOLOGIA ...................................................................................................7 1.4. ESTRUTURA DO TRABALHO ..................................................................................8

CAPÍTULO 2 - TECNOLOGIAS E TRABALHOS CORRELATOS..........9

2.1. TECNOLOGIAS E MÉTODOS..................................................................................9 2.1.1. Arquitetura cliente-servidor ......................................................................9 2.1.2. Orientação a Objetos .............................................................................13 2.1.3. UML (Unified Modeling Language) ........................................................14 2.1.4. Servlets e JSP .......................................................................................16 2.1.5. NetBeans IDE ........................................................................................21 2.1.6. JavaScript ..............................................................................................21 2.1.7. Db4o – Banco de Dados Orientado a Objetos.......................................21 2.1.8. Sistema WEB Gerenciador de Perfis (SWGP).......................................24

2.2. SISTEMAS CORRELATOS ...................................................................................24

CAPÍTULO 3 - ESPECIFICAÇÃO DE REQUISITOS ...........................29

3.1. DESCRIÇÃO DO MINI-MUNDO.............................................................................29 3.2. CASOS DE USO ................................................................................................30

3.2.1. Caso de Uso Cadastrar-se ....................................................................31 3.2.2. Caso de Uso Autenticar-se ....................................................................33 3.2.3. Caso de Uso Cadastrar Tema ...............................................................33 3.2.4. Caso de Uso Consultar Temas..............................................................34 3.2.5. Caso de Uso Fazer Pergunta ................................................................35 3.2.6. Caso de Uso Responder Pergunta ........................................................36 3.2.7. Aceitar tema...........................................................................................36 3.2.8. Caso de Uso Verificar Resultado...........................................................37 3.2.9. Caso de Uso Cadastrar Proposta ..........................................................37 3.2.10. Caso de Uso Verificar Situação das Propostas .....................................38 3.2.11. Caso de Uso Consultar Propostas.........................................................38 3.2.12. Caso de uso Aceitar Proposta ...............................................................39

CAPÍTULO 4 - ANÁLISE ......................................................................40

4.1. DIAGRAMA DE CLASSES ....................................................................................40 4.2. DICIONÁRIO DE DADOS ......................................................................................41 4.3. DIAGRAMAS DE SEQUÊNCIA ...............................................................................45

CAPÍTULO 5 - PROJETO.....................................................................51

5.1. MODELO CONCEITUAL.......................................................................................51 5.2. MODELO DE PERSISTÊNCIA ...............................................................................52 5.3. MODELOS DE NAVEGAÇÃO ................................................................................59

CAPÍTULO 6 - IMPLEMENTAÇÃO E TELAS DO SISTEMA ...............65

Page 8: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

5

6.1. IMPLEMENTAÇÃO ..............................................................................................65 6.2. TELAS DO SISTEMA...........................................................................................65

CAPÍTULO 7 - CONSIDERAÇÕES FINAIS .........................................81

7.1. AVALIAÇÃO DO SISTEMA....................................................................................81 7.2. TRABALHOS FUTUROS.......................................................................................82 7.3. APRENDIZADO ADQUIRIDO .................................................................................82

REFERÊNCIAS BIBLIOGRÁFICAS .......................................................83

Page 9: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

6

CAPÍTULO 1 - INTRODUÇÃO

Vivenciando o dia a dia da universidade observamos certa falta de

comunicação entre professores e alunos no que diz respeito à informação sobre

trabalhos que estão sendo desenvolvidos ou que se desejam desenvolver, e muitas

vezes trabalhos em áreas que alguns alunos apresentam até certo domínio e por

essa falta de interação entre professor e aluno, acabam esquecidos fazendo com

que uma boa oportunidade do aluno desenvolver suas habilidades dentro da

universidade seja perdida.

Foi nesse contexto que surgiu a motivação para esse projeto, uma Aplicação

Web onde professores têm a possibilidade de propor temas para projetos que

gostariam de orientar e os alunos poderem aceitar desenvolver esses projetos,

desde que sejam selecionados pelo sistema de acordo com os perfis definidos por

proponente e aluno. O sistema permite ainda que representantes de empresas ou

organizações cadastrem propostas de temas que serão avaliadas por professores.

1.1. Objetivos

Facilitar e agilizar o contato entre professores orientadores e alunos que

tenham interesse em desenvolver algum projeto acadêmico, além de ser uma

oportunidade para aproximar a Universidade e as empresas interessadas em

colaborar no desenvolvimento científico, a partir do cadastro de propostas para

temas.

Objetivo específico

Desenvolver um sistema Web para permitir a publicação de idéias para

projetos e a seleção de interessados em desenvolvê-los.

1.2. Justificativas

É uma forma de centralizar a oferta de temas para projetos acadêmicos,

tornando-as acessíveis a um número muito maior de alunos, fazendo com que os

Page 10: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

7

alunos que já se interessem por alguma área específica tenham facilidade em

encontrar temas para desenvolver e que outros adquiram interesse.

A possibilidade de empresas ou indústrias cadastrarem propostas beneficiará

essas organizações e a comunidade acadêmica. As empresas por terem a

oportunidade de enviar temas a serem pesquisados para melhoria dos seus

processos e os alunos por terem a oportunidade de pesquisar temas atuais e de

relevância.

1.3. Metodologia

Foi feito o levantamento de trabalhos correlatos e das tecnologias apropriadas

para o desenvolvimento.

As fases de especificação de requisitos e análise foram desenvolvidas

conforme (Falbo, 2002) e a fase de projeto, conforme (Falbo, 2003; Falbo, 2006).

Com o auxilio do próprio professor orientador desse projeto, Orivaldo de Lira

Tavares, por já possuir muita experiência no meio acadêmico e já ter sido

coordenador do curso de Engenharia de Computação e ter trabalhado até na Pró-

Reitoria de Graduação da universidade por alguns anos, foi possível realizar um

levantamento de vários aspectos e necessidades encontrados no dia a dia dos

professores e alunos, permitindo assim especificarmos os requisitos e atacarmos

esses problemas encontrados.

A respeito das tecnologias utilizadas, podemos dizer que na camada de

apresentação foi utilizado JSP1 e as entidades são classes Java. Na camada de

persistência, foi utilizado o banco de dados orientado a objeto db4o.

A seguinte metodologia foi utilizada no desenvolvimento desse trabalho:

• Identificação dos contornos do problema e dos objetivos do sistema;

1 JavaServer Pages (JSP) é uma tecnologia utilizada no desenvolvimento de aplicações para Web,

similar à tecnologia Active Server Pages (ASP) da Microsoft. Por ser baseada na linguagem de programação Java ela tem a vantagem da portabilidade de plataforma, que permite a sua execução em outros sistemas operacionais, além daqueles criados pela Microsoft. Esta tecnologia permite ao desenvolvedor de páginas para Internet produzir aplicações que, acessam o banco de dados, manipulam arquivos no formato texto, captam de informações a partir de formulários e captam informações sobre o visitante e sobre o servidor (WIKIPEDIA, 2006).

Page 11: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

8

• Análise e assimilação de bibliografia sobre padrões de projeto para web e

tecnologia JSP;

• Implementação e execução de testes no sistema.

1.4. Estrutura do trabalho

Este trabalho é organizado em 7 capítulos, estruturados da seguinte forma.

O presente capítulo apresenta uma introdução sobre o projeto desenvolvido,

descrevendo contexto, motivação, objetivo, bem como a metodologia utilizada no

mesmo.

O Capítulo 2 – Tecnologias e Trabalhos Correlatos - mostra conceitos e a

descrição de tecnologias utilizadas no desenvolvimento do projeto, além disso, são

apresentados sistemas semelhantes ao proposto por esse trabalho.

O Capítulo 3 – Especificação de Requisitos - traz a especificação de

requisitos do sistema desenvolvida utilizando a técnica de modelagem de casos de

uso.

O Capítulo 4 – Análise – apresenta o modelo de análise produzido neste

trabalho. Desenvolvido focando na estrutura de informação, no comportamento do

sistema.

O Capítulo 5 – Projeto – incorpora a tecnologia a todos os requisitos

essenciais do usuário, projetando o que foi realizado na implementação.

O Capítulo 6 – Implementação e Telas do Sistema – apresenta aspectos

gerais da implementação. Também mostra as principais telas da aplicação.

O Capítulo 7 – Considerações finais – são apresentadas as conclusões sobre

o presente trabalho, as dificuldades enfrentadas e as perspectivas sobre possíveis

trabalhos futuros.

E finalmente Referências Bibliográficas – são explicitadas todas as fontes de

conhecimento utilizadas para o desenvolvimento do projeto.

Page 12: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

9

CAPÍTULO 2 - TECNOLOGIAS E TRABALHOS CORRELATOS

Esse capítulo apresenta as tecnologias utilizadas na implementação, bem

como os conceitos utilizados no decorrer das fases de desenvolvimento do sistema.

Além disso, são apresentados sistemas semelhantes ao trabalho proposto, servindo

de apoio à especificação dos requisitos do sistema.

2.1. Tecnologias e Métodos

Essa seção apresenta as principais tecnologias e métodos utilizados para o

desenvolvimento do projeto.

2.1.1. Arquitetura cliente-servidor

Segundo (Renaud, 1994) “cliente/servidor é um conceito lógico, mais

precisamente um paradigma, ou modelo para interação entre processos de software

em execução concorrente”. Isso significa dizer que a metodologia cliente/servidor foi

criada com o objetivo de possibilitar que vários tipos de aplicações, executadas em

máquinas distintas, se comuniquem entre si, sem que a execução de um processo

interfira no do outro.

Diante disso, a arquitetura cliente/servidor estabeleceu um novo paradigma

de processamento de dados, diversificando a interoperabilidade entre o processo de

software e o servidor. Além disso, a arquitetura proposta busca oferecer recursos

que coordenem estes processos, de tal forma que a perda de sincronização não

resulte em alterações ou perda de informações para o sistema.

Seu funcionamento se baseia no seguinte esquema: o usuário do sistema,

através do processo de software cliente, envia o pedido de requisição ao processo

de software servidor, que por sua vez devolve ao cliente os resultados solicitados.

Todos os processos de software rodam sobre o controle do Sistema Operacional

que coordena todos os recursos do sistema computacional utilizado (Figura 2.1).

Page 13: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

10

Figura 2.1: Representação da arquitetura cliente/servidor. (Silva, 2001)

Camadas de Hardware Cliente-Servidor

O uso mais comum para arquiteturas cliente-servidor é explorar o poder dos

computadores para gerenciar interfaces gráficas com o usuário, mantendo a

integridade dos dados do negócio em uma máquina hospedeira central. Em sua

forma mais simples, a arquitetura cliente-servidor envolve múltiplos clientes fazendo

requisições para um único servidor, como mostra a figura 2.2. Este modelo mostra

uma arquitetura de hardware em duas camadas (two-tier).

Figura 2.2: Uma arquitetura de hardware cliente-servidor duas camadas.

A figura 2.3 mostra uma arquitetura cliente-servidor em três camadas, na qual

máquinas-cliente estão conectadas via uma rede local a um servidor local de

aplicação que, por sua vez, se comunica com um servidor de dados central.

Page 14: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

11

Figura 2.3: Uma arquitetura de hardware cliente-servidor três camadas.

Em uma arquitetura de três camadas, a noção de cliente e servidor começa a

se tornar mais complexa. Um computador que hospeda uma aplicação de interface

certamente é um cliente e a máquina hospedeira da base de dados é certamente um

servidor. Mas o servidor local de aplicação é algumas vezes um cliente e outras um

servidor, dependendo da direção de comunicação. Esta arquitetura pode ser

estendida para n camadas (n-tier), como mostra a figura 2.4. Nestes casos, a

distinção entre cliente estrito e servidor estrito não existe mais, tornando o termo um

padrão conceitual.

Figura 2.4: Uma arquitetura de hardware cliente-servidor n camadas.

Page 15: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

12

Camadas de Software Cliente-Servidor

Para discutir o desenvolvimento de software em uma arquitetura multicamada

de hardware, é necessário primeiro dividir a aplicação de software em camadas. Os

componentes de uma aplicação de negócio podem ser agrupados em pelo menos

três categorias principais, como mostra a figura 2.5:

• Camada de Apresentação: é a camada mais externa do sistema de software.

Sua função é capturar estímulos de eventos externos e realizar alguma edição dos

dados de entrada. É encarregada também de apresentar respostas aos eventos

para o mundo exterior. Geralmente, é localizada em uma máquina cliente, tal como

um PC, entretanto, esta não é uma regra rigorosa;

• Camada de Lógica do Negócio: contém o código que executa e impõe a política

do negócio. Regras, regulamentos e cálculos são encontrados nesta camada. É a

camada mais móvel, podendo ser localizada em clientes remotos, no servidor central

ou em qualquer outro local intermediário;

• Camada de Gerência de Dados: provê acesso a dados corporativos. Gerencia

requisições concorrentes de acesso às bases de dados, assim como a sincronização

de elementos de dados distribuídos. Muito desta camada estará no mesmo local

físico que os dados.

Figura 2.5: Camadas de Software. (Falbo, 2003)

Page 16: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

13

2.1.2. Orientação a Objetos

(Rumbaugh, 1994) define orientação a objetos como: "uma nova maneira de

pensar os problemas utilizando modelos organizados a partir de conceitos do mundo

real. O componente fundamental é o objeto que combina estrutura e comportamento

em uma única entidade". Dizer que um software é orientado a objetos significa que

ele é organizado como uma coleção de objetos separados, que incorporam tanto a

estrutura como o comportamento dos dados. A Orientação a Objetos (OO) trouxe

vários novos conceitos ao desenvolvimento de software, como: Abstração,

Encapsulamento, Objeto, Classe, Atributo, Operação, Método, Mensagem, Evento,

Interface, Generalização, Herança e Polimorfismo.

Por que utilizar orientação a objetos?

Quando bem empregada, a Orientação a Objetos traz diversas vantagens:

reutilização, confiabilidade, modelo de sistema mais realístico, facilidade de

interoperabilidade e de manutenção, aumento da qualidade, maior produtividade e

unificação do paradigma da análise a implementação. (Martin, 1992; Jacobson,

1996; Fuzion, 1999).

Muitos foram os métodos desenvolvidos para a aplicação da orientação a

objetos no processo de análise e projeto. Metodologias como a Object-oriented

design (OOD) (Booch, 1994), Object Modeling Techinique (OMT) (Rumbaugh et

al,1994), Object-Oriented Software Engineering (OOSE) (Jacobson, 1992),

Shlaer/Mellor (Shlaer & Mellor, 1988), Coad/Yourdon (Coad & Yourdon, 1990),

Martin/Odell (Martin & Odell,1992), Wirfs-Brock (Wirfs-Brock, 1990) e Embley/Kurtz

(Embley & Woodfield, 1988) são alguns exemplos. Com o decorrer do tempo, as

metodologias de Booch, a de Rambaugh e a Jacobson evoluíram, seus autores se

uniram e lançaram uma linguagem de notação unificada, chamada Unified Modeling

Language (UML) (discutida em detalhes no próximo tópico) e também lançaram uma

metodologia orientada a objetos chamada Rational Unified Process (RUP) que

abrange todo o processo de desenvolvimento de um sistema.

A Orientação a Objetos é um paradigma que pode ser aplicado ao longo de

todo o processo de construção do software. Dessa forma, tem-se as metodologias

acima descritas, que atuam no processo de análise e projeto e, no ciclo de

Page 17: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

14

implementação, existem as tecnologias de back-end (banco de dados) e as de front-

end (linguagens e ferramentas de programação) (Furlan, 1998). Os Bancos de

Dados têm evoluído no sentido de suportar a tecnologia OO. Inicialmente foram

lançados bancos objeto-relacional que suportam apenas alguns dos conceitos OO,

mantendo a estrutura do modelo relacional. Em seguida, surgiram os bancos de

dados realmente OO, tais como o Jasmine da CA Computer Inc, que suportam,

efetivamente, os conceitos OO. Entretanto, devido a questões como a falta de

habilidade em OO pelas empresas, dentre outras, esses bancos de dados tiveram

pouca penetração no mercado [Belloquim]. Com isso, continuou o domínio no

mercado dos bancos de dados relacionais e objeto-relacionais, forçando de certa

forma os desenvolvedores a "quebrar" o paradigma da OO no momento de

implementar o banco de dados, tendo-se que utilizar técnicas de mapeamento

objeto-relacional para acomodar os dois modelos no sistema. As primeiras

linguagens de programação orientadas a objetos apareceram em meados de 1966,

como o Simula e, em 1972, o Smalltalk. Linguagens com maior penetração no

mercado, tais com Pascal e C, evoluíram e criaram versões OO, como o C++, por

exemplo. Outras linguagens, já criadas dentro do conceito da OO, como o Java, por

exemplo, possibilitaram uma maior difusão do uso dessa tecnologia pelo mercado.

Viu-se também o rápido crescimento de ambientes de desenvolvimento integrados,

que permitem a construção visual dos sistemas de forma rápida (RAD - Rapid

Application Development) e com uso de componentes previamente montados. São

exemplos dessas linguagens/ferramentas o Visual Basic e o Delphi.

2.1.3. UML (Unified Modeling Language)

No tópico anterior, foi descrita a criação de várias metodologias Orientadas a

Objeto (OO). Entretanto, era necessário um caminho comum. Então, James

Rumbaugh e Grady Booch combinaram suas metodologias: OMT e Booch,

respectivamente, através da Rational Corporation, nos Estados Unidos, e criaram

um método comum: o Unified Method (UM), lançado em 1995. Em seguida, deu-se a

adesão de Ivar Jacobson, outro grande metodologista, contribuindo com as idéias de

sua metodologia OOSE. Esses três personagens lançaram, então, a Unified

Modeling Language (UML) versão 0.9 em 1996. A UML versão 1.1 foi submetida ao

Page 18: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

15

Object Management Group (OMG) e aprovada como padrão mundial de linguagem

de notação de projetos OO.

O objetivo da UML é prover uma linguagem padrão que permita modelar um

sistema, bem como fazer com que o mercado mundial de orientação a objetos utilize

uma linguagem única de modelagem, que permita a troca de modelos de forma

natural entre os construtores de softwares (Fuzion, 1999). Com a UML é possível

(Mattiazzi, 1998): descrever eficazmente requisitos de software, caracterizar a

arquitetura (lógica e física) de um sistema, focalizar na arquitetura em vez da

implementação e direcionar programadores, aumentando a produtividade e

diminuindo os riscos.

Segundo (Furlan, 1998), "a UML é uma linguagem de modelagem, não uma

metodologia". Assim, na construção de um software, a UML deve ser usada em

conjunto com uma metodologia de Engenharia de Software Orientada a Objetos, tais

como a metodologia Vincit e a RUP (Rational Unified Process). Não se recomenda a

utilização do paradigma clássico (waterfall) visto que a UML adapta-se melhor com

paradigmas incrementais e similares. Por outro lado, a UML não se restringe a

diagramas, ela apresenta uma série de conceitos e recursos que facilitam a

identificação de objetos e classes, associando-os aos requisitos do sistema, bem

como oferece formas de planejar e gerenciar projetos baseados nesses requisitos

(Mattiazzi, 1998).

A UML apresenta os seguintes diagramas que, em conjunto, modelam todo o

sistema (Furlan, 1998; Fuzion, 1999; Mattiazzi, 1998):

• Diagrama de Classe: utilizado para representar as diversas classes de objetos

do sistema, seus atributos e operações, bem como a associação entre cada uma

delas (herança, generalização, composição, agregação, etc.);

• Diagrama de Caso de Uso: usado para demonstrar o relacionamento entre

atores e casos de uso;

• Diagramas de Seqüência: tipo de diagrama de interação que apresenta a

interação de seqüência de tempo dos objetos que participam na interação;

• Diagrama de Colaboração: tipo de diagrama de interação que mostra uma

interação dinâmica de um caso de uso e seus objetos relacionados;

Page 19: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

16

• Diagrama de Estado: utilizado para demonstrar as seqüências de estados que

um objeto assume em sua vida, em função do seu uso no sistema;

• Diagrama de Atividade: tipo de diagrama de estado no qual a maioria dos

estados são ações. Descreve o fluxo interno de uma operação;

• Diagrama de Componente: usado para representar os diversos componentes

dos sistemas e suas dependências;

• Diagrama de Implantação: utilizado para demonstrar elementos de configuração

de processamento run-time.

O uso de um tipo ou outro de diagrama depende, muitas vezes, do grau de

detalhamento necessário para o desenvolvimento do sistema. Os diagramas de

classe, de casos de uso e de seqüência são os mais utilizados.

2.1.4. Servlets e JSP

Para alcançar o objetivo desse trabalho foi preciso explorar os recursos da

linguagem JAVA quando utilizada para o desenvolvimento de aplicações Web

interativas. Diversas tecnologias possibilitam esse aproveitamento da linguagem

JAVA.

Seja para construir um simples site com conteúdo dinâmico ou para construir

um complexo sistema de Business-To-Business, é necessária a utilização de

ferramentas que possibilitem consultas a bancos de dados, integração com sistemas

corporativos, entre outras inúmeras funcionalidades.

Dentre as diversas tecnologias disponíveis atualmente para o

desenvolvimento dessa classe de aplicações, destaca-se a de Servlets e a de

páginas JSP (Java Server Pages). A utilização de Servlets e de páginas JSP oferece

diversas vantagens em relação ao uso de outras tecnologias (como PHP2, ASP3 e

CGI4). As principais vantagens são herdadas da própria linguagem Java:

2 PHP: Hypertext Preprocessor é uma linguagem de programação de computadores interpretada, livre

e muito utilizada para gerar conteúdo dinâmico na Web. Apesar de ser uma linguagem de fácil aprendizado e de uso para pequenos scripts dinâmicos simples, o PHP é uma linguagem poderosa orientada a objetos (WIKIPEDIA, 2006).

3 Active Server Pages (ASP) é uma estrutura de programação em Script que se utiliza de VBScript, JScript, PerlScript ou Python processadas pelo lado servidor para geração de conteúdo dinâmico naWeb. Ele roda nativamente em servidores Windows, através do serviço chamado de IIS, Internet

Page 20: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

17

• Portabilidade: a aplicação desenvolvida pode ser implantada em diversas

plataformas, como por exemplo, Windows, Unix e Macintosh, sem que seja

necessário modificar ou mesmo reconstruir a aplicação;

• Facilidade de programação: a programação é orientada a objetos, simplificando

o desenvolvimento de sistemas que possuem muitas entidades e funcionalidades.

Além disso, a linguagem oferece algumas facilidades, como por exemplo, o

gerenciamento automático de memória (estruturas alocadas são automaticamente

liberadas, sem que o desenvolvedor precise se preocupar em gerenciar esse

processo);

• Flexibilidade: o Java já se encontra bastante difundido, contando com uma

enorme comunidade de desenvolvedores, ampla documentação e diversas

bibliotecas e códigos prontos, dos quais o desenvolvedor pode usufruir;

Além dessas vantagens, a arquitetura de Servlets e páginas JSP possibilitam

alguns benefícios adicionais (Temple, 2004):

• Escalabilidade: Permite a distribuição da carga de processamento entre

aplicações de servidores distintos. Conforme a necessidade, os servidores podem

ser adicionados ou removidos dinamicamente;

• Eficiência: os Servlets carregados por um servidor persistem em sua memória

até que ele seja finalizado. Assim, ao contrário de outras tecnologias, não são

iniciados novos processos para atender cada requisição recebida; por outro lado,

uma mesma estrutura alocada em memória pode ser utilizada no atendimento das

diversas requisições que chegam a esse mesmo Servlet;

• Recompilação automática: páginas JSP modificadas podem ser

automaticamente recompiladas, de maneira que passem a incorporar imediatamente

Information Service, o servidor web da Microsoft, ou do PWS (Personal Web Server) em ambientes com Windows 98. Além disso ele pode rodar em outras plataformas, como Linux no servidor Apache quando usando um Módulo de um programa como o Tomcal. O script é interpretado no lado do servidor e o que é enviado ao lado do usuário, como o navegador, é apenas a saída. que normalmente é uma linguagem de marcação como HTML, XHTML ou XML (WIKIPEDIA, 2006).

4 Common Gateway Interface (CGI) consiste numa importante tecnologia que permite gerar páginas dinâmicas, permitindo a um navegador passar parâmetros para um programa alojado num servidor web. Assim, designam-se por script CGI os pequenos programas que interpretam esses parâmetros e geram a página depois de os processar (WIKIPEDIA, 2006).

Page 21: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

18

as alterações sem que seja necessário interromper o funcionamento da aplicação

como um todo;

Muito bem, nesse ponto é importante que se saiba então o que vem a ser

realmente um servlet e uma página JSP. Em seguida temos as respostas para essas

perguntas.

O que são Servlets?

Servlets são classes Java, desenvolvidas de acordo com uma estrutura bem

definida, e que, quando instaladas junto a um Servidor que implemente um Servlet

Container (um servidor que permita a execução de Servlets, muitas vezes chamado

de Servidor de Aplicações Java), podem tratar requisições recebidas de clientes.

Ao receber uma requisição, um Servlet pode capturar parâmetros desta

requisição, efetuar qualquer processamento inerente a uma classe Java, e devolver

uma página HTML, por exemplo.

Exemplo de Servlet import java.io.*;

import javax.servlet.http.*;

/ / Servlet simples que retorna página HTML com o endereço IP

/ / do cliente que está fazendo o acesso

public class RemoteIPServlet extends HttpServlet {

public void doGet( HttpServletRequest p_request,

HttpServletResponse p_response)

throws IOException {

PrintWriter l_pw = p_response.getWriter ();

l_pw.println(“<HTML><BODY>”);

l_pw.println(“O seu endereço IP é \”” +

p_reques t.getRemoteAddr () + “\””);

l_pw.println(“</BODY>< /HTML>”);

l_pw.flush ();

}

}

Page 22: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

19

O que são páginas JSP?

As páginas JSP, ou Java Server Pages, foram criadas para contornar

algumas das limitações no desenvolvimento com Servlets: se em um Servlet a

formatação da página HTML resultante do processamento de uma requisição se

mistura com a lógica da aplicação em si, dificultando a alteração dessa formatação,

em uma página JSP essa formatação se encontra separada da programação,

podendo ser modificada sem afetar o restante da aplicação.

Assim, um JSP consiste de uma página HTML com alguns elementos

especiais, que conferem o caráter dinâmico da página. Esses elementos podem

tanto realizar um processamento por si, como podem recuperar o resultado do

processamento realizado em um Servlet, por exemplo, e apresentar esse conteúdo

dinâmico junto à página JSP.

Existe também um recurso adicional bastante interessante na utilização de

páginas JSP: a recompilação automática, que permite que alterações feitas no

código da página sejam automaticamente visíveis em sua apresentação. Assim, não

é necessário interromper o funcionamento da aplicação para incorporar uma

modificação de layout, por exemplo.

Exemplo de página JSP

<!—Página JSP Simples que imprime endereço IP da máquina que

está fazendo o acesso a esta página —>

<HTML>

<BODY>

O seu endereço IP é “<%= request.getRemoteAddr () %>”

</BODY>

</HTML>

Podemos também falar nesse momento sobre o componente responsável

pelo controle das servlets (o Servlet Container) e do servidor de aplicações Java

para web (o Tomcat).

Page 23: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

20

Servlet Container

O container é o componente responsável pelo controle das servlets: ele a

instancia e utiliza à medida que se faz necessário. Os três tipos mais comuns de

instalação de Servlet Container e Webservers são mostrados na figura 2.6.

Figura 2.6: Tipos mais comuns de Servlet Containers. [Temple]

No primeiro, todas as requisições vão direto para o webserver, que também é

o container. No tipo dois, o webserver usa o container como um plugin e envia as

requisições pertinentes ao mesmo, enquanto, no tipo três, as requisições são feitas

diretamente ao webserver ou ao container.

Tomcat

O Tomcat é um servidor de aplicações Java para web. É software livre e de

código aberto surgido dentro do conceituado projeto Apache Jakarta e oficialmente

endossado pela Sun como a Implementação de Referência para as tecnologias Java

Servlet e Java Server Pages (JSP). Atualmente, o Tomcat tem seu próprio projeto

dentro da Apache Software Foundation. O Tomcat é robusto e eficiente o suficiente

para ser utilizado mesmo em um ambiente de produção[Wikipedia].

Tecnicamente, o Tomcat é um Container Web, parte da plataforma

corporativa Java Enterprise Edition (J2EE ou Java EE) que abrange as tecnologias

Servlet e JSP, incluindo tecnologias de apoio relacionadas como Realms e

segurança, JNDI Resources e JDBC DataSources. O Tomcat tem a capacidade de

atuar também como servidor Web/HTTP, ou pode funcionar integrado a um servidor

web dedicado como o Apache httpd ou o Microsoft IIS.

Page 24: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

21

2.1.5. NetBeans IDE

A NetBeans IDE5 é um ambiente de desenvolvimento - uma ferramenta para

programadores, que permite a você escrever, compilar, debugar e instalar

programas. A IDE é completamente escrita em Java, mas pode suportar qualquer

linguagem de programação. Existe também um grande número de módulos para

estender a IDE NetBeans. A NetBeans IDE é um produto livre, sem restrições de

como ele pode ser usado. Além disso, a NetBeans IDE é um software livre.

2.1.6. JavaScript

JavaScript é uma poderosa linguagem de criação de scripts baseada em

objetos; os programas em JavaScript podem ser incorporados diretamente nas

páginas Web que usam HTML. Quando combinado com o modelo de objeto de

documento definido por um navegador Web, JavaScript permite criar conteúdo em

Dynamic HTML (chamada DHTML que é um tipo de HTML dinâmico) e aplicativos

interativos do lado cliente da Web. A sintaxe de JavaScript baseia-se naquela de

linguagens de programação muito utilizadas, como C, C++ e Java, o que a torna

familiar e fácil para programadores experientes. Além disso, o JavaScript é uma

linguagem de criação de scripts interpretada, fornecendo um ambiente flexível de

programação, de fácil aprendizado para novos programadores.

2.1.7. Db4o – Banco de Dados Orientado a Objetos

Atualmente é comum a procura por ferramentas que facilitem a integração

entre o mundo orientado a objetos (a linguagem e o framework) e o mundo relacional

(o banco de dados), pois a grade maioria de desenvolvedores e o próprio mercado já

estão habituados ao mundo relacional e para a resolução de alguns problemas a

solução orientada a objetos se mostra mais simples e eficaz. Ferramentas de

mapeamento de objeto relacional são equivalentes a “tradutores” entre duas línguas

totalmente diferentes. 5 IDE do inglês Integrated Development Environment ou Ambiente de Desenvolvimento Integrado é um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Geralmente as IDEs unem a técnica de RAD(Rapid Application Development), que consiste em permitir que os desenvolvedores obtenham um aproveitamento maior, desenvolvendo código com maior rapidez.

Page 25: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

22

Em todas as traduções você acaba perdendo as sutilezas de uma língua ou

tendo que usar muito mais palavras para expressar um conceito que é relativamente

simples na língua de origem. No mapeamento objeto-relacional não é diferente, você

acaba perdendo uma série de recursos da programação orientada a objetos, ou

tendo que escrever muito mais código para simular no banco de dados algo simples

na linguagem (como por exemplo, uma propriedade do tipo array ou o

gerenciamento de uma herança).

Quando falamos então em um banco de dados orientado a objetos,

esperamos que esse banco permita que você simplesmente pegue seu objeto do

jeito que ele está e jogue-o no banco de dados (podendo ser chamado de banco de

objetos) sem se preocupar com camadas e mais camadas de código para "traduzir"

um objeto em “query”.

Já existem várias tentativas de se fazer isso, incluindo algumas muito

avançadas, no entanto, a falta de confiabilidade nos equipamentos e sistema

operacional, aliadas a certa dose de preconceito, faz com que essa solução ainda

seja vista como "algo para o futuro".

Figura 2.7: Representação de um mapeamento O/R e um banco OO.

Um banco realmente orientado a objetos deve permitir que você faça suas

consultas de forma orientada a objetos, como se estivesse pesquisando em uma

“Lista” ou qualquer outro container de objetos. É aqui que se encaixa o db4o.

O db4objects:

O db4objects(db4o) surgiu há alguns anos, inicialmente apenas para Java.

Com a grande semelhança de código entre o .Net e o Java, foi um pulo para que

fosse criada uma versão .Net. Hoje, as versões .Net e Java caminham lado a lado,

tendo ambas os mesmos recursos.

Page 26: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

23

Não é preciso instalar nem configurar um servidor de banco de dados, para

aplicação cliente/servidor, o próprio db4o provê recursos para que isso seja feito,

mas sempre de uma forma simples, sem a necessidade de ser um usuário

experiente em configuração de banco de dados.

Quando se fala em db4o, algumas perguntas são inevitáveis:

a) O desempenho é bom?

Sim. Alguns testes mostram inclusive que o db4o é muito mais rápido que soluções que envolvam o uso de Hibernate por exemplo. Veja benchmarks:

Figura 2.8: Benchmarks do db4o e algumas soluções de mapeamento O/R.[Db4o]

b) O custo é elevado?

Não. A licença do db4o é open-source dual, ou seja, se você está

desenvolvendo para uso próprio, dentro de sua empresa, por exemplo, criando seu

website ou desenvolvendo um programa General Public License (GPL), ou seja,

desenvolvendo software livre, ele é gratuito. Mas mesmo que precise distribuir sua

aplicação, o custo da licença runtime é muito baixo U$9,00 por unidade

(Db4oObjects, 2006).

Page 27: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

24

2.1.8. Sistema WEB Gerenciador de Perfis (SWGP)

Sistema web criado por (Thiago, 2006) como projeto de graduação. Esse

sistema gerencia e auxilia o desenvolvimento de novos sistemas computacionais

que tenham a necessidade de utilizar métodos RI (Recuperação de Informação).

O SWGP disponibiliza além da interface web de gerência, um banco de dados

comum para o armazenamento de todas as necessidades inerentes aos sistemas

computacionais em desenvolvimento. Todos os objetos com perfis armazenados

nesse banco, criando um tipo de “banco de perfis compartilhado”, podendo ser

utilizado por todas as novas aplicações.

2.2. Sistemas Correlatos

Essa seção apresenta alguns sistemas similares ao proposto. Esses sistemas

estão funcionando em algumas instituições de ensino. Por exemplo, o Departamento

de Engenharia de Sistemas e Computação da UERJ e o Projeto Poli-Cidadã da

Escola Politécnica da USP (ubirajara.lac.usp.br/policidada) utilizam sistemas

equivalentes ao proposto nesse trabalho.

2.2.1. Página do Departamento de Engenharia de Sistemas e Computação da UERJ (www.desc.eng.uerj.br):

Nesse sistema há uma seção, mostrada na figura 2.9, que apresenta uma

lista de professores, e para cada um destes professores, uma relação de temas para

Projeto de Graduação que eles estariam interessados em orientar. Qualquer pessoa

tem acesso a esta lista, e o aluno que se interessar por algum tema deve entrar em

contato com o professor informando o interesse. O sistema não realiza a seleção

dos alunos.

Page 28: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

25

Figura 2.9: Página do Departamento de Engenharia de Sistemas e Computação da UERJ

2.2.2. Projeto Poli-Cidadã:

Esse projeto tem como objetivo estabelecer mecanismos para incentivar a

realização de Trabalhos de conclusão de curso (TCC) que atendam necessidades

identificadas junto a organismos representativos da sociedade. Portanto, o objetivo é

propor aos alunos de graduação e professores orientadores alternativas de temas

obtidos a partir de manifestação de órgãos representativos da sociedade, e que

sejam compatíveis com o escopo de um Trabalho de Formatura.

A figura 2.10 mostra a página inicial do sistema. Visitantes podem obter

informações sobre o Projeto Poli-Cidadã e cadastrar temas. Alunos e professores

têm acesso à lista de temas cadastrados e à lista de projetos já concluídos.

Page 29: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

26

Figura 2.10: Página do Projeto Poli-Cidadã da Escola Politécnica da USP

O cadastro de temas é feito como demonstrado nas figuras 2.11 e 2.12.

Inicialmente o visitante cadastra informações relacionadas ao Organismo a que

pertence. Em seguida, apresenta uma descrição completa do tema proposto.

Finalmente, A Comissão Gestora do Poli-Cidadã decidirá se o projeto deve ou não

ser desenvolvido pelos alunos.

Page 30: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

27

Figura 2.11: Projeto Poli-Cidadã - Cadastro de Temas (Dados do Organismo)

Page 31: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

28

Figura 2.12: Projeto Poli-Cidadã - Cadastro de Temas (Descrição do Tema)

Page 32: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

29

CAPÍTULO 3 - ESPECIFICAÇÃO DE REQUISITOS

A Especificação de Requisitos foi desenvolvida usando a técnica de

modelagem de casos de uso. Portanto, apresenta os diagramas de casos de uso

gerados, bem como as descrições dos atores e dos casos de usos identificados

nesses diagramas.

3.1. Descrição do Mini-Mundo

O Sistema virtual para a publicação e seleção de temas proposto visa facilitar

e agilizar o contato entre professores orientadores e alunos. Dessa forma, os

professores poderão propor temas de projetos para que os alunos interessados

possam escolher o tema de interesse. Adicionalmente, empresas cadastradas no

sistema poderão propor temas do seu interesse. Os temas serão direcionados

automaticamente para os professores com perfil adequado ao assunto. Em seguida,

o tema será desenvolvido de acordo com o interesse dos envolvidos. Além disso, o

sistema busca aproximar as empresas do ambiente acadêmico. Dessa forma, os

alunos terão a oportunidade de desenvolver trabalhos voltados para a realidade e

exigências do mercado de trabalho.

O Sistema terá três atores: Professor, Aluno e Organização, cada um terá

acesso a funcionalidades diferentes do sistema.

Após se cadastrar, o professor deverá efetuar login no sistema e então estará

apto a cadastrar temas, indicando entre outras coisas, sua descrição, data limite de

confirmação por parte dos alunos selecionados e o número de desenvolvedores.

Após o cadastro e login do aluno é possível realizar uma busca entre os

temas que atendem ao seu perfil por Título, por Situação (seleção em andamento ou

encerrada) ou por Professor responsável.

Se o aluno tiver alguma dúvida ou sugestão, relacionada ao tema poderá

entrar na área de exibição do tema e fazer uma pergunta, que poderá ser

respondida, posteriormente, pelo professor que cadastrou o tema ou qualquer outro

que esteja capacitado para isso. Ao encontrar um tema de seu interesse o aluno

poderá confirmar o seu interesse em desenvolvê-lo.

Page 33: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

30

Empresa de fora do ambiente acadêmico, chamada aqui de Organização

também opôs devidamente cadastrada no sistema poderá indicar suas, que depois

de avaliadas por algum professor com formação relacionada ao assunto poderão ser

transformadas em novos temas para desenvolvimento.

Com relação aos temas cadastrados, aluno, professor e até mesmo

organização em caso de temas criados a partir de uma de suas proposta terão

acesso à lista de alunos habilitados a desenvolver o tema e nessa lista os alunos

serão classificados de acordo com a adequação de seu perfil ao perfil do tema, ou

seja, os alunos que mais possuírem as características desejadas para o

desenvolvimento do tema terão maior prioridade.

3.2. Casos de Uso

Os casos de uso descrevem o sistema a partir de uma visão externa, ou seja,

compreensível tanto por desenvolvedores, analistas, projetistas e testadores quanto

pelos usuários do sistema. Como o próprio nome diz, caso de uso é uma forma de

utilização do sistema. Os usuários interagem com o sistema através dos seus casos

de uso.

Normalmente sistemas computacionais não trabalhão isoladamente. Nesses

casos se espera que o mesmo interaja ou com um usuário ou com outro sistema,

que são considerados atores. Em suma, um caso de uso é uma interação típica

entre um ator e o sistema. Os casos de uso além de servirem para o

desenvolvimento do sistema também são úteis para a realização dos testes.

Um diagrama de caso de uso especifica as funcionalidades que um sistema

pode oferecer aos seus usuários, segundo cada perspectiva individual. Um diagrama

de caso de uso é composto por um ator e seus casos de uso. A associação entre um

ator e o caso de uso corresponde à interação ou troca de mensagens entre eles.

A figura 3.1 apresenta o diagrama de casos de uso do sistema, as subseções

seguintes apresentam uma descrição detalhada de cada um deles.

Page 34: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

31

Figura 3.1: Diagrama de Casos de Uso para Professor, Aluno e Organização.

3.2.1. Caso de Uso Cadastrar-se

Este caso de uso é responsável pelo cadastro de professores, alunos e

organizações (Empresas ou Instituições), bem como consulta e alteração dos dados.

Curso Normal:

Cadastro:

• Professor: O usuário informa seus dados incluindo: nome, e-mail, senha para

autenticação no sistema, departamento, telefone, sexo, data de nascimento e um

breve resumo de sua Formação e Área de Interesse (esse texto é utilizado pelo

sistema para extração do perfil do professor). O sistema verifica se não existe

nenhum professor já cadastrado com esse nome e login. Caso os dados sejam

válidos o novo usuário é registrado.

• Aluno: O usuário informa seus dados incluindo: matrícula, nome, e-mail, senha

para autenticação no sistema, curso, telefone sexo, data de nascimento e um breve

resumo de suas Experiências e Conhecimentos (esse texto é utilizado pelo sistema

para extração do perfil do aluno). O sistema verifica se já não há nenhum aluno

cadastrado com a mesma matrícula, nome e e-mail. Caso os dados sejam válidos o

novo usuário é registrado.

Page 35: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

32

• Organização: O usuário informa seus dados incluindo: nome, documento, tipo

(publica/privada), nome da pessoa de contato ou responsável, endereço, bairro,

cidade, UF, CEP, telefone para contato, e-mail, URL, senha para autenticação no

sistema e uma breve descrição sobre a entidade. O sistema verifica se já não há

nenhuma empresa cadastrada com o mesmo documento, e-mail ou URL. Caso os

dados sejam válidos o novo usuário é registrado.

Excluir Cadastro:

Após autenticar-se no sistema o usuário pode excluir seu cadastro. O sistema

verifica se o usuário não possui nenhum vinculo com algum tema ou proposta e o

exclui.

Alterar Dados:

Após autenticar-se no sistema o usuário pode alterar seu cadastro, inserindo

novos dados. Os novos dados são validados e a alteração registrada.

Consultar Dados:

Após autenticar-se no sistema o usuário pode consultar seus dados inseridos

no cadastro.

Cursos Alternativos:

Cadastro:

Se o usuário digitar dados inválidos uma mensagem de erro é exibida,

solicitando correção da informação inválida.

Excluir Cadastro:

Se o usuário possui vinculo com temas ou propostas de temas cadastradas

uma mensagem de erro é exibida, indicando a necessidade de excluir suas

propostas e tentar novamente.

Alterar Dados:

Se o usuário digitar dados inválidos uma mensagem de erro é exibida,

solicitando correção da informação inválida.

Page 36: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

33

3.2.2. Caso de Uso Autenticar-se

Caso de uso responsável por autenticar o usuário no sistema. Aluno,

Professor ou Organização deverá executar a ação para ter acesso às outras

funções.

Curso Normal:

O usuário deseja acessar o sistema, informa seu login e senha e seleciona a

opção acessar o sistema.

O sistema verifica se o login informado está cadastrado no sistema e se a

senha está correta. O sistema verifica o tipo de usuário e as funcionalidades do

sistema que ele terá acesso.

Cursos Alternativos:

Se o usuário informar login ou senha inválidos uma mensagem de erro é

exibida, solicitando correção da informação inválida.

3.2.3. Caso de Uso Cadastrar Tema

Este caso de uso é responsável pelo cadastro de temas, bem como consulta

ou alteração de dados relativos ao tema e exclusão do tema.

Curso Normal:

Cadastro:

Após autenticar-se no sistema, o professor poderá cadastrar um tema. Ele

informará o título do tema e sua descrição, área de conhecimento, o número de

candidatos que serão selecionados e a data de finalização para confirmação dos

alunos selecionados. Os dados são validados e o novo tema inserido na base de

dados. Imediatamente após o cadastramento do tema o sistema já permite verificar

os alunos selecionados para desenvolver o projeto do tema, a partir do casamento

dos perfis dos alunos e do tema.

Page 37: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

34

Alterar Dados:

Após autenticar-se o professor poderá escolher entre os temas que cadastrou

aquele que deseja alterar. Os novos dados devem ser inseridos, eles serão

validados e a alteração será registrada.

É importante dizer que a ordem de seleção dos candidatos ao tema é

calculada dinamicamente, de modo que alunos que antes se encontravam

classificados para o tema, após a alteração podem tornar-se inadequados por não

satisfazerem o novo perfil.

Excluir Cadastro:

Após autenticar-se o professor poderá excluir algum tema que cadastrou. Se

a data de finalização do processo de seleção já expirou, os alunos que tiverem sido

selecionados a desenvolver um projeto desse tema deverão ser contatados.

Consultar Dados:

Após autenticar-se o professor poderá escolher entre os temas que cadastrou

aquele que deseja consultar, será informado ainda do número de candidatos ao

tema. Se a data de confirmação dos alunos já expirou, a lista dos alunos

selecionados também será exibida.

Cursos Alternativos:

Cadastro:

No caso de dados inválidos: uma mensagem de erro deverá ser exibida,

solicitando correção da informação inválida.

Alterar Dados:

No caso de dados inválidos: uma mensagem de erro deverá ser exibida,

solicitando correção da informação inválida.

3.2.4. Caso de Uso Consultar Temas

Este caso de uso é responsável pela consulta a temas oferecida aos alunos e

professores.

Page 38: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

35

Curso Normal:

• Aluno: O aluno durante a consulta, que já é realizada automaticamente aos

temas que possuem o seu perfil, poderá filtrar o resultado da seleção por Título,

Situação e Professor e digitará o termo a ser pesquisado. A partir da lista de temas

exibida, o aluno poderá então escolher aquele que deseja visualizar detalhes.

• Professor: O professor poderá filtrar a consulta por Título, Situação, Área, se é

para exibir apenas os seus temas, e digitará o termo a ser pesquisado. A partir da

lista de temas exibida, o professor poderá então escolher aquele que deseja

visualizar detalhes.

• Organização: A partir da Verificação da Situação das Propostas a Organização

poderá visualizar os dados dos temas criados, que estarão acompanhando os dados

da própria proposta em forma de uma lista. Para visualizar detalhes de um tema o

usuário poderá escolher aquele que desejar.

Cursos Alternativos:

Não há.

3.2.5. Caso de Uso Fazer Pergunta

• Aluno: Se o aluno tiver alguma dúvida ou sugestão relacionada ao tema poderá

entrar na área de exibição do tema e fazer uma pergunta ao professor que cadastrou

o tema.

• Organização: Se o organismo tiver alguma dúvida ou sugestão relacionada ao

tema gerado por uma de suas propostas poderá entrar na área de exibição do tema

e fazer uma pergunta ao professor que cadastrou o tema.

• Professor: Se o professor também estiver interessado em fazer alguma

pergunta relacionada ao projeto essa funcionalidade estará disponível, dessa forma

possibilitando criar uma espécie de lista de discussão.

Curso Normal:

Na tela de exibição do tema, o usuário digitará sua pergunta ou sugestão e

confirmará sua inclusão.

Page 39: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

36

Cursos Alternativos:

Caso o número de caracteres da pergunta exceda o máximo permitido, uma

mensagem de erro deve ser exibida, solicitando a correção da informação.

3.2.6. Caso de Uso Responder Pergunta

Ao entrar na área de exibição de um tema, se o usuário (Professor, Aluno ou

Organização) verificar que há perguntas que ele sabe responder, poderá selecionar

responder tal pergunta e digitar a resposta.

Curso Normal:

O usuário digitará a resposta e confirmará sua inclusão.

Cursos Alternativos:

Caso o número de caracteres da resposta exceda o máximo permitido, uma

mensagem de erro deve ser exibida, solicitando a correção da informação.

3.2.7. Aceitar tema

Este caso de uso é responsável pela aceitação ou não do aluno desenvolver

o tema no período até a data limite para confirmação.

Curso Normal:

Aceitação:

Depois de processada a classificação dos candidatos ao tema, pelo critério de

semelhança entre perfil do aluno e do tema, o aluno pode escolher aceitar ou não

desenvolver o tema.

Rejeição:

O aluno poderá desistir de desenvolver um tema e rejeitar a oportunidade.

Cursos Alternativos:

Não há.

Page 40: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

37

3.2.8. Caso de Uso Verificar Resultado

Este caso de uso é responsável pela exibição do resultado da seleção dos

alunos para um determinado tema.

Curso Normal:

• Aluno: Ao consultar temas o aluno deverá ser informado, dos temas em

que ele se enquadrou ao perfil e desses quais já excederam a data de

confirmação. O aluno deverá escolher o tema que deseja verificar o resultado.

Será exibida a lista em ordem de classificação com o nome dos alunos

selecionados para desenvolver o tema e a opção de aceitar ou não mesmo

não estando na lista como classificado, mas sim como suplente.

• Professor: Após autenticar-se no sistema, o professor deverá ser

informado, dos temas que ele cadastrou, quais já excederam a data de

confirmação dos alunos. O professor deverá, então, escolher entre esses

temas, aquele que deseja verificar o resultado. Será exibida uma lista com

matrícula, nome e situação. Caso o professor queira ter mais detalhes sobre

um determinado aluno, bastará selecionar esse aluno e todos os dados serão

exibidos.

• Organização: Ao verificar o andamento de suas propostas, a organização

poderá querer visualizar dados de temas criados a partir da mesma e ao

visualizar os dados do tema querer ainda verificar a lista de alunos que

desenvolverá tal tema. Assim uma lista de alunos será exibida e esta lista

será somente para leitura, não sendo permitido visualizar mais detalhes sobre

os alunos.

Cursos Alternativos:

Não há.

3.2.9. Caso de Uso Cadastrar Proposta

Este caso de uso é responsável pelo cadastro de Propostas, que poderão,

posteriormente, criar novos temas.

Page 41: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

38

Curso Normal:

A Organização informa os dados da proposta incluindo: Título, Área de

conhecimento, Descrição, e Recursos Disponibilizados para o Desenvolvimento da

solução além de uma Observação se for necessário.

Cursos Alternativos:

No caso de dados inválidos, ou que excedam o máximo de caracteres

permitido uma mensagem de erro é exibida, solicitando correção.

3.2.10. Caso de Uso Verificar Situação das Propostas

Este caso de uso é responsável pelo acompanhamento da Situação das

Propostas feitas por uma Organização.

Curso Normal:

A organização consulta as propostas feitas por ela, tendo como resultado a

situação em que elas se encontram, que pode ser de Aceita, em Avaliação ou

Rejeitada com as devidas justificativas do professor que a avaliou. Em caso de

aceitação, é possível visualizar o tema gerado para cadastramento de perguntas e

sugestões.

Cursos Alternativos:

Não há.

3.2.11. Caso de Uso Consultar Propostas

Este caso de uso é responsável pela consulta a propostas incluídas por

Organizações.

Curso Normal:

O professor terá a opção de exibir a lista de propostas inseridas, ele poderá

escolher a proposta que deseja visualizar tendo acesso aos dados da organização e

da proposta, podendo avaliar e torná-la tema se for o caso.

Cursos Alternativos:

Não há.

Page 42: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

39

3.2.12. Caso de uso Aceitar Proposta

Depois do professor consulta as propostas, ele pode concluir que a proposta

é interessante a ponto de se tornar um tema para projeto e então cadastrar a partir

da proposta um tema.

Curso Normal:

Depois do professor consulta a proposta, ele pode concluir que a proposta é

interessante a ponto de se tornar um tema para projeto, e então cadastrar a partir da

proposta um tema através da opção aceitar proposta que abrirá o cadastro de tema

com alguns dados previamente preenchidos.

Cursos Alternativos:

Não há.

Page 43: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

40

CAPÍTULO 4 - ANÁLISE

A análise foi desenvolvida em duas etapas principais, a primeira focando na

estrutura de informação do sistema, a segunda em seu comportamento. Nas seções

4.1 e 4.2, são apresentados os produtos da primeira etapa, diagrama de classe e um

dicionário de dados. Na seção 4.3, é apresentado o produto da segunda etapa:

diagramas de seqüências.

4.1. Diagrama de Classes

Através da especificação dos casos de usos foi possível identificar as

seguintes classes: Professor, Aluno, Organização, Tema, Desenvolvedor, Pergunta

e Proposta. Segue na figura 4.1 o Diagrama de Classes para o sistema, mostrando o

relacionamento entre as classes e seus atributos.

Figura 4.1: Diagrama de Classes

Page 44: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

41

4.2. Dicionário de dados

Nesta seção é apresentada uma listagem contendo um detalhamento de

todos os elementos de dados envolvidos no sistema. Nela são mostradas as classes

identificadas na fase de análise, bem como os atributos de cada uma das classes,

juntamente com suas descrições.

Professor: Representa os professores cadastrados no sistema.

• id_professor: número de identificação do professor;

• nome: nome do professor;

• email: e-mail do professor. O e-mail será utilizado para efetuar o login no

sistema;

• senha: senha para acesso ao sistema;

• departamento: departamento ao qual o professor pertence;

• telefone: telefone para contato (opcional);

• sexo: sexo do professor;

• dt_nascimento: data de nascimento do professor;

• .formacaoAreaInterece: Um texto contento a formação do professor(títulos de

mestrado, doutorado...) e suas áreas de interesse e desenvolvimento de trabalhos.

Esse texto é utilizado pelo sistema para extrair o perfil do professor.

Aluno: Representa os alunos cadastrados no sistema.

• matricula: número de matrícula do aluno na universidade;

• nome: nome do aluno;

• email: e-mail do aluno. O e-mail será utilizado para efetuar o login no sistema;

• senha: senha para acesso ao sistema;

• curso: curso a que o aluno pertence;

• telefone: telefone para contato (opcional);

Page 45: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

42

• sexo: sexo do aluno;

• dt_nascimento: data de nascimento do aluno;

• experienciaConhecimentos: Texto contendo uma breve descrição de atividades

já realizadas pelo aluno(estágio, iniciação cientifica...), áreas de interesse e

conhecimentos sobre ferramentas, tecnologias ou assuntos. Esse texto é utilizado

pelo sistema para extrair o perfil do aluno.

Organização: Representa as organizações (empresas ou instituições) cadastradas

no sistema.

• Id_organizacao: número de identificação da organização;

• nome: nome da organização;

• documento: número do documento da organização. No caso de Empresa CNPJ,

Pessoa Física CPF;

• tipo: tipo de organização (Governo, Fundação, ONG, Associação, Empresa

Privada, Empresa Pública, Pessoa Física e Outros);

• contato: nome da pessoa de contato;

• email: e-mail para contato. O e-mail será utilizado para efetuar o login no

sistema;

• senha: senha para acesso ao sistema.

• endereço: endereço da organização, logradouro e número;

• complemento: complemento do endereço da organização;

• bairro: bairro da organização;

• cidade: cidade da organização;

• uf: estado/unidade federativa da organização;

• cep: CEP da organização;

• telefone: telefone para contato;

• url: Endereço eletrônico da organização;

Page 46: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

43

• descrição: Uma breve descrição da empresa, organização ou instituição, falando

sobre sua área de atuação e atividades.

Tema: Representa os temas que os professores podem cadastrar no sistema.

• id_tema: número de identificação do tema;

• id_professor: número de identificação do professor que cadastrou o tema;

• id_proposta: número de identificação da proposta que originou o tema;

• titulo: título do tema;

• area: área de conhecimento relacionada ao tema;

• descricao: descrição do tema. Esse texto é utilização pelo sistema para extrair o

perfil do tema;

• ndesenvolvedores: número previsto de vagas para desenvolvedores;

• dtFimConfirmacaoAluno: data limite para o aluno classificado aceitar participar

do desenvolvimento do projeto relacionado ao tema;

Desenvolvedores: Representa os alunos que já foram selecionados pelo sistema

para desenvolver o tema e já confirmaram a participação no desenvolvimento do

projeto.

• id_aluno: matrícula do aluno desenvolvedor;

• id_tema: número de identificação do tema em que o aluno se tornou

desenvolvedor;

• situação: situação do aluno em relação ao desenvolvimento do tema, diz se ele

está confirmado, pendente ou cancelado;

• suplente: indica se o aluno foi classificado fora da quantidade de vagas

previstas para desenvolvedores e se encontra na condição de suplência. Esse

campo não indica a ordem de classificação isso é calculado dinamicamente pela

adequação ao perfil do tema.

Page 47: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

44

Pergunta: Representa as informações correspondentes as perguntas relacionadas

aos temas.

• id_pergunta: número de identificação da pergunta;

• id_tema: número de identificação do tema ao qual essa pergunta está

relacionada;

• id_aluno_pergunta: número de identificação do aluno que registrou a pergunta

(se foi um aluno);

• id_organizacao_pergunta: número de identificação da organizacao que registrou

a pergunta (se foi uma organizacao);

• id_professor_pergunta: número de identificação do professor que registrou a

pergunta (se foi um professor);

• id_aluno_resposta: número de identificação do aluno que registrou a resposta

(se foi um aluno);

• id_organizacao_resposta: número de identificação da organizacao que registrou

a resposta (se foi uma organizacao);

• id_professor_resposta: número de identificação do professor que registrou a

resposta (se foi um professor);

• pergunta: texto da pergunta;

• dt_pergunta: data em que a pergunta foi registrada;

• resposta: resposta à pergunta(opcional);

• dt_resposta: data em que a resposta foi registrada.

Proposta: Representa as propostas cadastradas pelos Visitantes.

• id_proposta: número de identificação da proposta;

• id_organizacao: número de identificação da organizacao que registrou a

proposta;

• titulo: título da proposta;

Page 48: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

45

• area: área de conhecimento relacionada à proposta;

• descricao: descrição da proposta. Esse texto é utilizado para extrair o perfil da

proposta;

• recursos: recursos disponibilizados pela organização para desenvolvimento da

proposta (opcional);

• situação: informa a situação da proposta, diz se ela já foi avaliada por algum

professor e se foi aceita/rejeitada, se está em avaliação ou se ainda não foi avaliada;

• observação: Um texto contendo alguma observação sobre a proposta se for o

caso. Esse campo pode ser preenchido tanto pela própria organização ao cadastra a

proposta tanto pelo professor ao necessitar explicar algo sobre sua avaliação da

proposta.

4.3. Diagramas de Sequência

Nesta seção serão apresentados os diagramas de seqüência para os casos

de uso “Cadastrar-se”, “Autenticar-se”, “Cadastrar Tema”, “Consultar Temas”, “Fazer

Pergunta”, “Responder Pergunta”, “Verificar Resultado”, “Aceitar Tema”, “Aceitar

Proposta” e “Verificar situação das propostas” apresentando informações

relacionadas aos cenários mais importantes:

• A figura 4.2 mostra o diagrama de seqüência para o caso de uso

“Cadastrar-se”;

Figura 4.2: Diagrama de seqüência - Caso de uso “Cadastrar-se”.

Page 49: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

46

• A figura 4.3 apresenta o diagrama de seqüência para o caso de uso

“Autenticar-se”;

Figura 4.3: Diagrama de seqüência - Caso de uso “Autenticar-se”.

• A figura 4.4 representa o diagrama de seqüência para o caso de uso

“Cadastrar Tema”;

Figura 4.4: Diagrama de seqüência - Caso de uso “Cadastrar Tema”.

Page 50: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

47

• A figura 4.5 apresenta o diagrama de seqüência para os casos de uso

“Consultar Temas”, “Fazer Pergunta”, “Verificar resultado” e “Aceitar Tema” para

o ator “Aluno”.

Figura 4.5: Diagrama de seqüência – Casos de uso “Consultar Temas”, “Fazer Pergunta”, “Verificar Resultado” e “Aceitar Tema” para o ator “Aluno”.

Page 51: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

48

• A figura 4.6 apresenta o diagrama de seqüência para os casos de uso

“Consultar Tema”, “Responder Pergunta” e “Verificar resultado” para o ator

“Professor”.

Figura 4.6: Diagrama de seqüência – Casos de uso “Consultar Temas”, “Responder Pergunta” e “Verificar Resultado” para o ator “Professor”

• A figura 4.7 apresenta o diagrama de seqüência para os casos de uso

“Consultar Proposta” e “Aceitar Proposta”.

Page 52: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

49

Figura 4.7: Diagrama de seqüência – Caso de uso “Consultar Proposta” e “Aceitar Proposta”

• A figura 4.8 apresenta o diagrama de seqüência para o caso de uso

“Cadastrar Proposta”.

Figura 4.8: Diagrama de seqüência – Caso de uso “Cadastrar Proposta”

Page 53: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

50

• A figura 4.9 apresenta o diagrama de seqüência para os casos de uso “Verificar situação das propostas” e “Fazer Pergunta” para o ator “Organização”.

Figura 4.9: Diagrama de seqüência – Casos de uso “Verificar a situação das propostas” e “Fazer Pergunta” para o ator “Organização”

Page 54: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

51

CAPÍTULO 5 - PROJETO

Por se tratar de um sistema do Web, a linguagem de programação deve

permitir a construção de sistemas que operem em ambientes multiplataforma. Por

isso, a aplicação será desenvolvida utilizando a linguagem orientada a objetos Java

e o sistema cliente será acessado por meio dos principais navegadores Web.

Além disso, o sistema permitirá a utilização de dispositivos portáteis, tais

como PDA, Notebook e celulares, pois esses dispositivos já possuem mecanismos

de acesso a páginas Web.

Para a persistência das informações foi utilizado um banco de dados

orientado a objetos. Existem algumas opções de banco de dados orientados a

objetos. A escolha do banco de dados deve levar em consideração o custo, os

benefícios e a facilidade de integração com a linguagem de desenvolvimento

escolhida. Dentre os bancos de dados Open Source existentes no mercado, o Db4o

apresenta a melhor relação custo benefício para a utilização no sistema proposto.

Com relação à arquitetura do sistema que foi implementada, podemos dizer

de forma bem simples, que se trata de um servidor principal, rodando um serviço de

acesso Web (específico da linguagem escolhida) e um banco de dados, o qual pode

funcionar em um servidor à parte para aumentar a segurança dos dados.

5.1. Modelo Conceitual

O modelo conceitual, conhecido como diagrama de classes da UML,

representa os objetos de domínio do problema. Ele é apresentado na figura 5.1 e

difere-se do diagrama de classes da seção 4.1, pois apresenta os tipos de dados

dos atributos, considerando a plataforma de implementação.

Page 55: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

52

Figura 5.1: Modelo Conceitual do Sistema

5.2. Modelo de Persistência

Para a persistência optou-se por usar o padrão DAO (Data Access Object),

que é utilizado para encapsular a lógica de acesso a dados. Assim, se for necessário

alteração de banco de dados, não é necessário alterar todo sistema, mas somente

os DAOs. O padrão DAO fornece uma interface flexível entre a lógica de negócio e

as fontes de dados reais. Com esta solução, implementa-se um objeto que é

unicamente responsável por receber informação de um armazenamento persistente,

onde quer que ele esteja. Isto abstrai a visão do dado usada por uma aplicação do

layout da tabela ou arquivo em disco.

Portanto para que seja realizada a persistência dos dados cada uma das

classes já apresentadas possuirá uma classe sombra, a classe sombra encapsula as

operações do mecanismo de persistência e é responsável pela leitura e gravação de

dados dos objetos pertencentes à classe correspondente com a qual se relacionará.

A seguir são identificadas cada uma dessas classes sombra e suas operações:

Page 56: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

53

• AlunoDAO : Classe sombra relacionada à classe Aluno, demonstrada na figura

5.2:

Figura 5.2: AlunoDAO

- inserirAluno: insere um novo aluno na Base de dados. O retorno é um

número que pode indicar matrícula repetida, login repetido, ocorrência de erro

ou sucesso;

- atualizarAluno: atualiza os dados de um aluno. O retorno é o mesmo da

inserção;

- excluirAluno: exclui um aluno. O retorno é um número que pode indicar

dependências, a ocorrência de erro ou sucesso;

- recuperarAlunoPorId: dado uma ID, recupera o aluno que possui essa ID;

- verificarLogin: Dado um login e uma senha, verifica se existe um aluno

cadastrado com esses dados. Em caso afirmativo retorna sua ID, em caso

contrário um número negativo;

- recuperarAlunosPorPerfil: Dado um perfil, recupera da Base de dados uma

lista de alunos acompanhados de um número que representa seu grau de

aproximação com esse perfil e ordenados por esse número do maior para o

menor.

Page 57: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

54

• ProfessorDAO: Classe sombra relacionada à classe Professor, demonstrada na

figura 5.3:

Figura 5.3: ProfessorDAO

- inserirProfessor: insere um professor na Base de dados. O retorno é um

número que pode indicar login repetido, ocorrência de erro ou sucesso;

- atualizarProfessor: atualiza os dados de um professor. O retorno é o mesmo

da inserção;

- excluirProfessor: exclui um professor. O retorno é um número que pode

indicar dependências, a ocorrência de erro ou sucesso;

- recuperarProfessorPorId: dado uma ID, recupera o professor que possui

essa ID;

- verificarLogin: Dado um login e uma senha, verifica se existe um professor

cadastrado com esses dados. Em caso afirmativo retorna sua ID, em caso

contrário um número negativo;

- recuperarProfessoresPorPerfil: Dado um perfil, recupera da Base de dados

uma lista de professores acompanhados de um número que representa seu

grau de aproximação com esse perfil.

Page 58: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

55

• OrganizacaoDAO: Classe sombra relacionada à classe Organizacao,

demonstrada na figura 5.4:

Figura 5.4: OrganizacaoDAO

- inserirOrganizacao: insere uma organização na Base de dados. O retorno é

um número que pode indicar documento repetido, login repetido, ocorrência

de erro ou sucesso;

- atualizarOrganizacao: atualiza os dados de uma organização. O retorno é o

mesmo da inserção;

- excluirOrganizacao: exclui uma organização. O retorno é um número que

podem indicar dependências, a ocorrência de erro ou sucesso;

- recuperarOrganizacaoPorId: dado uma ID, recupera a organização que

possui essa ID;

- verificarLogin: Dado um login e uma senha, verifica se existe uma

organização cadastrada com esses dados. Em caso afirmativo retorna sua ID,

em caso contrário um número negativo.

Page 59: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

56

• TemaDAO: Classe sombra relacionada à classe Tema, demonstrada na figura

5.5:

Figura 5.5: TemaDAO

- inserirTema: insere um novo tema na Base de dados. O retorno é um

número que pode indicar título repetido, ocorrência de erro ou sucesso;

- atualizarTema: atualiza os dados de um tema. O retorno é o mesmo da

inserção;

- excluirTema: exclui um tema. O retorno é um número que pode indicar

dependências, a ocorrência de erro ou sucesso;

- recuperarTemaPorId: dado uma ID, recupera o tema que possui essa ID;

- recuperarTemasPorPerfil: dado um perfil, recupera da Base de dados uma

lista de temas acompanhados de um número que representa seu grau de

aproximação com esse perfil;

- consultarTemasPorTitulo: além de recuperar por um perfil, dado um termo,

filtra a lista para se ter apenas temas em que o título possui esse termo;

- consultarTemasPorArea: além de recuperar por um perfil, dado um termo,

filtra a lista para se ter apenas temas em que a área possui esse termo;

- consultarTemasPorProfessor: além de recuperar por um perfil, dado um

termo, recupera a lista para se ter apenas temas em que o nome do Professor

que o cadastrou possui esse termo;

Page 60: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

57

- consultarTemasPorSituacao: além de recuperar por um perfil, dado um

termo, recupera a lista para se ter apenas temas em que a seleção ainda está

em fase de andamento ou em que a seleção já foi finalizada, de acordo com a

data limite para confirmação de alunos.

• PropostaDAO: Classe sombra relacionada à classe Proposta, demonstrada na

figura 5.6;

Figura 5.6: PropostaDAO

- inserirProposta: insere uma nova proposta na Base de dados. O retorno é

um número que pode indicar título repetido, ocorrência de erro ou sucesso;

- atualizarProposta: atualiza os dados de uma proposta. O retorno é o mesmo

da inserção;

- excluirProposta: exclui uma proposta. O retorno é um número que pode

indicar dependências, a ocorrência de erro ou sucesso;

- recuperarPropostaPorId: dado uma ID, recupera a proposta que possui essa

ID;

- recuperarPropostasPorPerfil: dado um perfil, recupera da Base de dados

uma lista de propostas acompanhadas de um número que representa seu

grau de aproximação com esse perfil;

- recuperarPropostasPorOrg: dado a ID de uma organização, retorna uma

lista em que todas as propostas possuem essa ID como a ID da organização

que a registrou.

Page 61: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

58

• DesenvolvedorDAO: Classe sombra relacionada à classe Desenvolvedor,

demonstrada na figura 5.7;

Figura 5.7: DesenvolvedorDAO

- inserirDesenvolvedor: insere um novo desenvolvedor a um tema na Base de

dados;

- atualizarDesenvolvedor: atualiza os dados de um desenvolvedor;

- excluirDesenvolvedor: exclui um desenvolvedor.

- recuperarDesenvolvedoresPorTema: dado a ID de um tema, recupera os

dados dos aluno desenvolvedores desse tema. Tanto na condição de

suplente como na condição de classificado.

- verificarSituacaoAluno: dado a ID de um aluno e de um tema, recupera a

situação desse aluno em relação a esse tema.

Page 62: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

59

• PerguntaDAO: Classe sombra relacionada à classe Pergunta, demonstrada na

figura 5.8.

Figura 5.8: PerguntaDAO

- inserirPegunta: insere uma nova pergunta relacionada a um tema. O retorno

é um número que pode indicar pergunta repetida, a ocorrência de um erro ou

sucesso.

-atualizarPegunta: atualiza os dados de uma pergunta (Incluir resposta, por

exemplo).

-excluirPegunta: exclui uma pergunta.

-recuperarPeguntasPorTema: dado a ID de um tema, recupera a lista de

perguntas relacionadas a este tema.

5.3. Modelos de Navegação

Essa seção apresenta os modelos de navegação relacionados aos casos de

uso “Cadastrar-se”, “Autenticar-se”, “Cadastrar Tema”, “Cadastrar Proposta”,

“Consultar Temas”, “Candidatar-se a um tema” e “Fazer Pergunta”, apresentando

informações relacionadas aos cenários mais relevantes destes casos de uso:

Page 63: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

60

• A figura 5.9 apresenta o modelo de navegação relacionado ao cenário

“Cadastro” do caso de uso “Cadastrar-se”:

Figura 5.9: Modelo de navegação – Cenário Cadastro do caso de uso Cadastrar-se

Page 64: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

61

• A figura 5.10 apresenta o modelo de navegação relacionado ao caso de uso

“Autenticar-se”:

Figura 5.10: Modelo de navegação - Caso de uso Autenticar-se

Page 65: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

62

• A figura 5.11 apresenta o modelo de navegação relacionado ao caso de uso

“Cadastrar Proposta”:

Figura 5.11: Modelo de navegação - Caso de uso Cadastrar Proposta

• A figura 5.12 apresenta o modelo de navegação relacionado ao cenário

“Cadastro” do caso de uso “Cadastrar Tema”:

Figura 5.12: Modelo de navegação - Cenário Cadastro do caso de uso Cadastrar Tema

Page 66: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

63

• A figura 5.13 apresenta o modelo de navegação relacionado ao caso de uso

“Consultar Propostas/Verificar Situação das Propostas”:

Figura 5.13: Modelo de navegação - Caso de uso Consultar Propostas/Verificar Situação das

Propostas

• A figura 5.14 apresenta o modelo de navegação relacionado ao caso de uso

“Consultar Temas”:

Figura 5.14: Modelo de navegação - Caso de uso Consultar Temas

Page 67: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

64

• A figura 5.15 mostra o modelo de navegação relacionado ao caso de uso

“Fazer Pergunta”:

Figura 5.15: Modelo de navegação - Caso de uso Fazer Pergunta

• A figura 5.16 mostra o modelo de navegação relacionado ao caso de uso

“Aceitar Tema”:

Figura 5.16: Modelo de navegação - Caso de uso Aceitar Tema

Page 68: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

65

CAPÍTULO 6 - IMPLEMENTAÇÃO E TELAS DO SISTEMA

Esse capítulo apresenta a descrição do sistema desenvolvido. Além disso, é

apresentada uma visão geral das funcionalidades e telas do sistema.

6.1. Implementação

Devido a facilidade e disponibilidade encontrada para se desenvolver

aplicações orientadas a objetos utilizando Java tanto em livros, como revistas e

principalmente na internet, para a implementação das classes Java utilizamos o Java

j2sdk1.5.0_06 e como ambiente de desenvolvimento o NetBeans 5.0 que já vêm em

seu pacote de distribuição o servidor Web Tomcat da Apache. Mesmo que existam

outros ambientes para desenvolvimento de aplicações Web utilizando Java, esse foi

escolhido por apresentar um bom suporte para seus usuários e estar sendo usado

por um grade número de desenvolvedores o que possibilita o surgimento de várias

listas de discussão o que facilita e agiliza encontrar soluções para problemas

encontrados durante o implementação.

Na camada de apresentação foram utilizadas páginas JSP, além de

JavaScript para validação de formulários. O banco de dados utilizado foi o Db4o.

Para funcionalidades que demandam a recuperação por perfil, que é uma

busca por todas as entidades que satisfazem um determinado perfil, foram utilizados

métodos fornecidos pelo “SWGP”. Essa ferramenta possibilita a criação de um

banco de dados Db4o e disponibiliza uma série de funções e bibliotecas que nos

permite manipular os dados no banco e criar classes herdadas de classes básicas

chamadas de “ColaboradorExt” (para objetos que necessitem ter perfil), e ClasseExt

(para objetos que não necessitem ter perfil).

Portanto, a interação entre o Java e o banco de dados Db4o foi feita através

da biblioteca de funções para acesso que já vem disponível no próprio pacote de

instalação do db4o e através dos métodos fornecidos pelo SWGP.

6.2. Telas do Sistema

A figura 6.1 mostra a tela inicial do sistema, que dá a opção de Aluno,

Professor ou Organização acessarem suas respectivas áreas.

Page 69: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

66

Figura 6.1: Tela inicial do sistema

A figura 6.2 mostra a tela de Autenticação do sistema. Após escolherem sua

área de acesso, Aluno, Professor ou Organização deverão Autenticar-se no sistema

para terem acesso às demais funcionalidades. Caso já tenham se cadastrado,

deverão informar seu login e senha e clicar em “entrar”, caso contrário, deverão

escolher no menu a opção “Cadastro”, o que os levará para a tela de cadastro,

representada pelas figuras 6.3, 6.4 e 6.5.

Figura 6.2: Tela de autenticação do sistema

Page 70: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

67

Figura 6.3: Tela de cadastro de aluno

Figura 6.4: Tela de cadastro de professor

Page 71: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

68

Figura 6.5: Tela de cadastro de organização

Para realizar o cadastro será necessário preencher os campos obrigatórios do

formulário e clicar em “Salvar”. Se todos os dados passarem pelo teste de validação,

será exibida uma mensagem confirmando o cadastro.

Após a autenticação no sistema, o aluno terá acesso à tela mostrada na figura

6.6. Nessa tela, o aluno poderá alterar os dados de seu cadastro, por meio da opção

Alterar Cadastro, localizada na parte esquerda da tela. Poderá também, realizar uma

consulta por temas que o sistema reconhecerá como adequados ao perfil do aluno.

Na parte central da tela o aluno será informado, de notícias que podem ser

novidades ou informações úteis que o ajudará a tirar maior proveito do sistema.

Page 72: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

69

Figura 6.6: Tela de navegação do aluno

A figura 6.7 exemplifica uma consulta a temas cadastrados no sistema feita

por um aluno que possui um perfil de desenvolvedor na área de Banco de Dados. O

aluno poderá escolher, dentre os temas listados, aquele que deseja exibir.

Figura 6.7: Tela de resultado da busca por temas

Page 73: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

70

A figura 6.8 mostra a tela de exibição de um tema.

Figura 6.8: Tela de exibição de um Tema

Page 74: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

71

Nessa tela o aluno poderá fazer perguntas relacionadas ao tema, responder

até se for o caso e principalmente verificar o resultado da seleção automática (que o

sistema realizou através do casamento de perfis) para saber como ficou sua

classificação.

A tela de verificação de resultado quando acessada pelo aluno está na figura

6.9.

Figura 6.9: Tela de verificação de resultado de um tema com seleção em andamento

A figura 6.9 apresenta a tela de confirmação de interesse do aluno no

desenvolvimento do projeto. É importante também lembrar que essa classificação de

alunos por perfil é realizada dinamicamente, então um aluno que esta na faixa de

classificação em um determinado momento (acima da 3ª posição no exemplo da

figura 6.9) não é garantido que estará até a data limite para confirmação, em que é

realmente finalizado o processo e o sistema então fixa o resultado passando a exibir

essa mesma tela como na figura 6.10. Da mesma forma, alunos que se encontram

fora da faixa de classificação podem ainda melhorar sua posição e ser. Isso

depende de fatores com alteração no perfil do tema, alteração no perfil do aluno ou

até mesmo inserção de novos alunos no sistema.

Page 75: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

72

Figura 6.10: Tela de verificação de resultado de um tema com seleção finalizada

A tela de exibição dos dados do tema é aparentemente a mesma que é

utilizada por alunos, professores e organizações, entretanto, as funcionalidades são

diferentes de acordo com o perfil do usuário. Por exemplo, o professor responsável

pelo tema pode alterar os dados de cadastro do tema, ou até mesmo excluir quando

se tratar de um tema recém cadastrado que não possua nenhuma pergunta

cadastrada ou desenvolvedores vinculados.

A tela de navegação do professor é mostrada na figura 6.11. Nela o professor

terá acesso através de opções do menu localizado a esquerda às telas de alterar

dados de seu cadastro, tela para consultar propostas, tela para cadastrar temas, e

ainda exibir a lista de temas cadastrados.

Na parte central da tela o professor será informado, de notícias que podem

ser novidades ou informações úteis que o ajudará a tirar maior proveito do sistema.

Page 76: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

73

Figura 6.11: Tela de navegação do professor

A figura 6.12 exemplifica uma consulta a propostas cadastradas no sistema

feita por um professor que possui um perfil de desenvolvedor na área de Redes de

Computadores.

Figura 6.12: Tela de consulta de propostas

Page 77: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

74

O professor poderá escolher, dentre as propostas listadas, aquela que deseja

exibir.

Figura 6.13: Tela de exibição de proposta

Na figura 6.13, mostramos a tela de exibição de uma proposta. Nesse caso o

professor selecionou a proposta de título “Protocolo de comunicação para rede sem

fio” da figura 6.12.

Page 78: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

75

A partir dessa tela o professor poderá editar apenas o campo observação da

proposta e alterar sua situação para “Aceita”, “Rejeitada” ou “Em avaliação”. No caso

da situação estar como “Aceita”, o botão “Criar tema” fica habilitado permitindo que o

professor crie um tema a partir da proposta. A figura 6.14 mostra a tela de cadastro

de tema quando chamada por esse botão.

Observe que a proposta selecionada ainda não deu origem a nenhum tema

cadastrado no sistema, pois na parte inferior da tela (figura 6.13) a lista de temas

criados a partir da proposta está “vazia”.

Figura 6.14: Tela de cadastro de tema

Na figura 6.14 é possível verificar que a tela de cadastro de temas aparece

com alguns dados pré-preenchidos de acordo com os dados da proposta geradora.

Esses dados são apenas sugestões, porém é permitido que o professor altere-os

como desejar.

Page 79: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

76

Continuando a navegação do professor, temos ainda a opção de consultar

temas cadastrados no sistema. Essa funcionalidade permite que o professor

consulte os temas já cadastrados e selecione de uma lista aquele que deseja

visualizar com mais detalhes. Essa tela é bem semelhante à da figura 6.7, e ao

selecionar um tema a tela de exibição do tema é a mesma da figura 6.8, porém

permitindo o professor, em caso de ser o responsável pelo tema, alterar os dados do

tema.

A partir da tela de exibição dos dados do tema o professor também poderá

verificar o resultado da seleção para o tema selecionado. Essa tela de resultado é

bem semelhante à da figura 6.9 quando a seleção ainda não foi finalizada e é

mostrada na figura 6.15.

Figura 6.15: Tela de resultado vista por um professor

Nesse caso foi verificado o resultado de um tema que possui no seu cadastro

o valor do campo “número de desenvolvedores” igual a 2 (dois) e os alunos que

estão em vermelho estão na condição de suplentes na seleção pois estão fora do

número de vagas disponível para o tema em questão. Estar como suplente quer

dizer que no caso de não confirmação dos alunos classificados no momento da

finalização do processo, que se dará na data cadastrada como data limite para

Page 80: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

77

confirmação dos alunos, o sistema preencherá as vagas não confirmadas com os

alunos que estiverem confirmados considerando essa ordem de classificação.

Para o caso da verificação de resultado de um tema que a seleção já foi

finalizada, temos a mesma tela da figura 6.10.

Passando agora para a utilização do sistema do ponto de vista de uma

organização, podemos mostrar inicialmente sua tela de navegação. Nessa tela é

possível que a organização altere seus dados de cadastro, cadastre propostas para

temas de projetos e consulte suas propostas cadastradas para verificar seus

andamentos ou resultados gerados por elas no que diz respeito à geração de novos

temas de projetos dentro da universidade.

Assim como nas outras telas de navegação, em sua parte central temos

notícias com novidades e informações úteis para os usuários do sistema. Veja a

figura 6.16.

Figura 6.16: Tela de navegação da organização

Page 81: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

78

Na figura 6.17 temos a tela de cadastro de propostas. Assim como para os

outros cadastros, os dados passam por uma validação antes de serem efetivamente

inseridos e na ocorrência de invalidação de algum dado uma mensagem de erro é

exibida informando o problema.

Figura 6.17: Tela de cadastro de proposta para temas

Uma observação com relação a essa tela de cadastro é que o campo situação

não pode ser alterado pela organização e sim por professores no momento de

avaliação da proposta. Esse campo tem a função então, de possibilitar o

acompanhamento das propostas pelas organizações ficando aqui somente para

leitura.

Logo após o cadastramento de uma proposta, essa estará disponível para

todos os professores que possuírem um perfil que se encaixe a área e assunto que

a proposta está relacionada. Essa extração de perfil da proposta é realizada pelo

próprio sistema baseando-se nos texto contido no campo descrição, assim como já

foi mencionado na seção 4.2.

Page 82: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

79

Seguindo a navegação da organização, quando a opção de consultar

propostas cadastradas é selecionada, uma lista é exibida mostrando todas as

propostas cadastradas pela organização no sistema de forma agrupada por situação

em que se encontram. Essa tela é a mesma da mostrada na figura 6.12, mudado

apenas o conteúdo mostrado.

Supondo que o usuário tenha selecionado uma proposta que está com a

situação igual a “Aceita” e que essa proposta tenha dado origem a algum tema para

ser desenvolvido dentro da universidade, uma tela com os dados da proposta seria

exibida assim como mostrado na figura 6.18.

Figura 6.18: Tela de exibição de proposta quando originou algum tema

Pela figura 6.18 é possível notar que na parte inferior da tela tem-se uma lista

de temas cadastrados a partir da proposta e a organização pode acessar os dados

desses temas apenas selecionando o aquele que desejar visualizar.

Page 83: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

80

A tela resultante dessa seleção é a mesma tela de exibição de um tema

mostrada na figura 6.8 e a partir daí a organização consegue ter acesso aos dados

detalhados do tema criado e cadastrar perguntas sobre o tema, participando assim

do processo de discussão do projeto e proporcionando dessa forma uma maior

aproximação entre a organização e os envolvidos no projeto.

È importante dizer aqui, que a tela de verificação de resultado na seleção do

tema quando acessado pela organização é aparentemente igual a quando acessada

por um professor, porém os dados dos alunos não estarão habilitados para

visualização, permitindo apenas a visualização dos nomes dos alunos.

Page 84: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

81

CAPÍTULO 7 - CONSIDERAÇÕES FINAIS

Esse capítulo apresenta as considerações finais e apresentada uma breve

análise do sistema desenvolvido. Além disso, é proposta a inclusão de novas

funcionalidades que podem ser desenvolvidas em trabalhos futuros.

7.1. Avaliação do Sistema

O objetivo inicial da aplicação era o de facilitar e agilizar o contato entre

professores orientadores e alunos com interesse em desenvolver algum projeto no

âmbito acadêmico, além de ser uma oportunidade para aproximar a Universidade da

Sociedade, mais precisamente das empresas ao seu redor a partir de manifestações

de idéias, interesses e necessidades. Apesar do sistema construído ainda não ter

sido testado em um ambiente de uso real, ele contempla funcionalidades suficientes

para que possamos considerar que o objetivo do trabalho foi alcançado tendo em

vista que o resultado final foi um sistema que contém telas bem simples, diretas e

objetivas.

Durante o processo de desenvolvimento, foram encontradas dificuldades

relativas à Análise, Projeto e ao desenvolvimento de Aplicações Web, o que exigiu

uma busca por referências, para que as dúvidas fossem sanadas. Um ponto

relevante também, é a interface gráfica, que exigiu mais essa superação que foi de

realizar um trabalho de Web Design, mas que também podemos dizer que

obtivemos um bom resultado, pois devido à disposição dos elementos nas telas e

cores, construímos um ambiente bem agradável além de torná-lo bem informativo

quando possível para minimizar o surgimento de dúvidas em sua utilização como foi

o caso de exibir descrições dos campos em todas as telas de cadastro.

Por fim, foi desenvolvido um sistema web que permite a publicação de idéias

para projetos e a seleção de alunos para desenvolvê-los, que é feita de forma

automática. Através das publicações de propostas realizadas por empresas, que

também deverão estar cadastradas no sistema, professores e alunos poderão estar

ainda desenvolvendo trabalhos atuais e de relevância até mesmo para o mercado.

Page 85: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

82

7.2. Trabalhos Futuros

Futuramente, além de uma remodelagem gráfica das telas, pretende-se

acrescentar novas funcionalidades ao sistema, como, por exemplo: permitir que as

organizações possam consultar propostas cadastradas de outras permitindo assim

um melhor enriquecimento de informações. Outra funcionalidade que poderia ser

criada seria o cadastro de propostas para temas por meio dos alunos, tornando

assim possível aproveitar melhor também as idéias e criatividades dos próprios

alunos da universidade. Além disso, poderia ser adicionado um banco com as

monografias geradas a partir de temas propostos no sistema.

Finalmente, o sistema poderia ainda ser integrado a um sistema maior como,

por exemplo, o “Portal do Aluno” (Ambiente de auto-atendimento para alunos da

UFES), para facilitar sua difusão na comunidade acadêmica.

7.3. Aprendizado adquirido

O desenvolvimento do sistema permitiu a utilização e aprimoramento de

conhecimentos adquiridos na vida acadêmica, principalmente no que diz respeito ao

desenvolvimento de sistemas orientado a objetos utilizando a UML. As dificuldades

encontradas contribuíram muito para adoção de uma forma de desenvolvimento

mais apropriada.

Foram adquiridos conhecimentos relacionados a tecnologias e métodos para

desenvolvimento de Aplicações Web, que vêm sendo utilizadas em larga escala nos

sistemas mais recentes do mercado, sobre as quais não houve aprofundamento

durante a graduação. Outra experiência que foi adquirida durante todo o

desenvolvimento desse trabalho é o que diz respeito ao gerenciamento de projetos,

que podemos dar como um exemplo, na fase de especificação de requisitos, que é o

caso de saber filtrar e aproveitar uma grande quantidade de informações, tornando-

as úteis e valiosas permitindo que se alcance um resultado bem próximo ao

esperado, por todas as partes envolvidas no projeto.

Page 86: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

83

REFERÊNCIAS BIBLIOGRÁFICAS

Belloquim, A. OODBMS: Quando Estaremos Prontos Para Usá-los? Developer’s

Magazine, Rio de Janeiro, jul. 2000.

Cássio R. Eskelsen, db4o - Banco de Dados Orientado a Objetos. Linha de Código. Disponível em: <http://www.linhadecodigo.com.br/artigos.asp? id_ac=875&pag=1>.

Acesso em outubro de 2006

Db4oObjects. Native Java & .NET Object DataBase.

Disponível em: <http://www.db4o.com> Acesso em outubro de 2006

Falbo, R. A. Análise de Sistemas. Disponível em:

<http://www.inf.ufes.br/~falbo/download/aulas/analise/2002-2/Apostila.zip>.

Acesso em setembro de 2006

Falbo, R.A. Projeto de Sistemas. Disponível em:

<http://www.inf.ufes.br/~falbo/download/aulas/projeto/2003-1/Apostila.zip>.

Acesso em setembro de 2006

Falbo, R.A., Souza, V. Diretrizes para Trabalho Prático – Engenharia Web. Disponível em:

<http://www.inf.ufes.br/~falbo/download/aulas/tengsoft/2006-1/DiretrizesTP.pdf>.

Acesso em setembro de 2006

Furlan, J.D. Modelagem de objetos através da UML. São Paulo: Makron Books,

1998.

Bem-Vindo ao NetBeans e ao site www.netbeans.org, casa da IDE Java Livre.

NetBeans. Disponível em <http://www.netbeans.org/index_pt.html>

Acesso em 09 de dezembro de 2006

Fuzion. Introdução a Orientação a Objetos. Rio de Janeiro, 1999. E-book.

Jacobson, I., Christerson, M., Jonsson, P. et al. Object-Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley, 1996.

Page 87: VITOR FAIÇAL CAMPANA - Sérgio Teixeiramulticast.com.br/sergio/arquivos/monografia-ufes-vitor-faical-campana.pdf · comunicação entre professores e alunos no que diz respeito à

84

Martin, J., Odell, J.J. Object-Oriented Analysis and Design. Prentice-Hall Inc.,

1992.

Mattiazzi, L.D. Orientação a Objetos e a UML: Finalmente um Rumo a Seguir. Developer’s Magazine, Rio de Janeiro, jul. 1998.

PRESSMAN, Roger. Engenharia de Software. São Paulo:MAKRON Books, 1995.

RENAUD, Paul E. Introdução aos Sistemas Cliente/Servidor: Guia Prático para Profissionais de Sistemas. Rio de Janeiro: Infobook, 1994.

RUMBAUGH, J, Blaha, M, Premerlani et al. Modelagem e projetos baseados em objetos. Rio de Janeiro: Editora Campus, 1994.

SILVA, E.K.O. Um Estudo sobre Sistemas de Banco de Dados Cliente/Servidor. João Pessoa – PB, 2001.

TEMPLE, A., Mello, R. M., Calegari, T., Schiezaro., M. Programação Web com Jsp, Servlets e J2EE. São Paulo, 2004. E-book.

Thiago Guedes Paysan, Projeto de Graduação, Sistema Web Gerenciador de Perfis, UFES, DEZEMBRO 2006.

Wikipédia, a enciclopédia livre. Apache Tomcat. Disponível em: <http://pt.wikipedia.org/wiki/Apache_Tomcat>. Acesso em setembro

de 2006