UNIVERSIDADE FEDERAL DE SANTA CATARINA – UFSC CENTRO TECNOLÓGICO – CTC DEPARTAMENDO DE INFORMÁTICA E ESTATÍSTICA – INE CURSO DE CIÊNCIAS DA COMPUTAÇÃO RASCUNHO DO TRABALHO DE CONCLUSÃO DE CURSO Sistema de Controle Acadêmico-Administrativo para o Departamento de Engenharia Mecânica da Universidade Federal de Santa Catarina AUTOR: Rodrigo Ribeiro Branas ORIENTADOR: Alessandro Bianchi CO-ORIENTADOR: Prof. Leandro José Komosinski BANCA: Prof. Vitório Bruno Mazzola FLORIANÓPOLIS, JUNHO DE 2005. INDICE Introdução ....................................................................................................3 Alternativas tecnológicas para o desenvolvimento web...............................4 Desenvolvimento utilizando o modelo MVC.................................................8 Domínio do problema..................................................................................12 Anexo 1.......................................................................................................37 Anexo 2.......................................................................................................40 INTRODUÇÃO: Com a popularização da internet no início da década de 90, avanços tecnológicos vêm permitindo que empresas e organizações estruturem seus negócios, cada vez mais sistematicamente, por vias eletrônicas. Uma maior acessibilidade a novas interfaces de programação de aplicativos (APIs), desenvolvidas e utilizadas pela comunidade internacional de tecnologia, viabilizou a explosão de novos projetos, reformulando o mapa de soluções de forma a ampliar as alternativas tecnológicas. Esta diversidade possibilitou que a tecnologia ganhasse mais amplitude e inserção em setores e indústrias que previamente não poderiam viabilizar estratégias tecnológicas sem investimentos consideráveis. Bem como a época do mainframe com computadores monolíticos e custosos, deu lugar ao PC, mais acessível e com interface simplificada, também as plataformas de programação evoluíram com novas linguagens e paradigmas, ampliando as possibilidades de soluções e valorizando serviços distribuídos de comunicação e informação. Justamente para agregar valor aos seus serviços de internet, empresas e organizações buscam disponibilizar aplicativos web, programas acessados pelo navegador de internet com a possibilidade de interação entre os usuários e a lógica de negócio. Exemplos óbvios de aplicativos web são as lojas de comércio eletrônico, mecanismos de busca que agregam informações ou sistemas de internet banking. Aplicativos web também são viabilizados através de intranets ou extranets, redes restritas a uma empresa, organização ou grupo, que possibilitam o trabalho colaborativo e estruturado entre seus atores. A decisão de se empregar certa tecnologia na construção de aplicativos de missão crítica, ou seja, aqueles que são essenciais ao negócio, perpassam uma avaliação não somente de adequação a requisitos e orçamentos presentes, como também, considerações sobre a adaptabilidade a novos critérios que surjam conforme for demandado pelos processos de gestão. Deve-se considerar, por exemplo, que uma tecnologia que atenda perfeitamente às funcionalidades exigidas atualmente, pode apresentar, no futuro, restrições inaceitáveis à expansão de negócios, exigindo uma readaptação completa a novos paradigmas de programação. À medida que interações B2B (empresa-empresa) ou B2C (empresaconsumidor) se tornam mais evidentes e necessárias, também se torna fundamental desenvolver sistemas que permitam acesso aos mecanismos de interação. ALTERNATIVAS TECNOLOGICAS PARA DESENVOLVIMENTO WEB: Abertura tecnológica Os frameworks ASP e .NET são desenvolvidos pela Microsoft e, portanto, restritos ao sistema operacional Windows ou plataformas que utilizem uma estrutura comercial com suporte à tecnologia. J2EE, por sua vez, é multi-plataforma e segue o conceito “construa uma vez, execute em qualquer lugar”. Ou seja, aplicativos J2EE podem ser desenvolvidos e disponibilizados em qualquer plataforma. A linguagem Java em si é desenvolvida dentro de um processo colaborativo (Java Community Process) pela comunidade internacional de tecnologia. A abertura deste processo também fez surgir uma grande comunidade de desenvolvedores que oferecem extensões, gratuitas ou não, para a resolução de questões fundamentais à programação de aplicativos empresariais, tais como a persistência de dados, controle de transações, implementação de segurança e gerenciamento de memória e cache. Aplicativos construídos em ASP simplesmente não lidam com algumas destas questões, não sendo uma opção viável a longo prazo para o desenvolvimento de uma estratégia na internet. A Microsoft, portanto, lançou sua plataforma .NET que tenta resolver todas estas questões programáticas num único pacote. Embora isto simplifique as opções, desenvolvedores que optarem por .NET ficarão presos às tecnologias desenvolvidas para a plataforma, bem como às altas licenças de uso para IDEs e servidores de aplicações. Ao mesmo tempo em que o desenvolvimento em J2EE traz maior complexidade e uma curva de aprendizado mais extensa, também representa uma abertura de opções, principalmente no que diz respeito a implementação de sistemas, como é demonstrado na Tabela 1. Tabela 1. Comparação de softwares para tecnologias ASP, .NET e J2EE* ASP e .NET Plataforma Servidor Integração com base de dados J2EE Microsoft Windows, Solaris, Linux e outras Microsoft Windows (Server) implementações de plataformas UNIX Web Microsoft IIS5, .NET framework versão 1.1 Qualquer servidor Web incluindo Apache, Netscape (ASP.NET) e IIS utilizando container de Servlets Bases de dados em conformidade com ODBC Bases de dados em conformidade com ODBC, JDBC e bases de dados ODBMS *Adaptado de Comparing JavaServer Pages TM and Microsoft® Active Server Pages TM Technologies (http://java.sun.com/products/jsp/jsp-asp.html). ASP e .NET oferecem suporte disponibilizado pela Microsoft. Em contraponto, o processo de desenvolvimento da linguagem Java, como mencionado, incentivou a criação de uma comunidade de usuários que ajudam uns aos outros, resolvendo questões complexas mais rapidamente que qualquer equipe de suporte comercial. As três plataformas possuem documentação bem extensa e simplificada, além de código fonte para exemplos. A maioria das bibliotecas de auxílio para programação em ASP ou .NET são comerciais, enquanto que J2EE possui uma vasta disponibilidade de bibliotecas open-source, regidas pela GNU license, faciltiando a modificação ou adaptação para que se encaixem sob-medida no processo de desenvolvimento de novas tecnologias e aplicativos. Características tecnológicas ASP é uma linguagem interpretada enquanto que Java é uma linguagem de programação completa, orientada a objetos, compilada em byte-code e que, portanto, oferece maior poder de resposta e processamento. A plataforma .NET utiliza a linguagem C# (pronuncia-se "c sharp"), semelhante a Java, que permite uma metodologia de desenvolvimento similar ao paradigma J2EE, oferecendo vantagens consideráveis na construção de aplicativos web. A Tabela 2 faz uma comparação das principais características destas tecnologias. Tabela 2. Principais características das tecnologias ASP, .NET e Java (J2EE) ASP Linguagem script .NET Linguagem compilada interpretada, comercial, ou interpretada, J2EE Linguagem orientada a objetos, multi- inserida diretamente na comercial, escalonável, plataforma, altamente Características gerais página a ser processada, podendo orientada a extensível, open-source, componentes. escalonável e ser compilada para compilada em byte- gerar DLLs. code. Componentes multiplataforma JavaBeans, Enterprise Não Não reutilizáveis Segurança contra queda do sistema JavaBeans, tags JSP costumizados Não Sim Sim Não Sim Sim Proteção contra vazamento de memória JSP, tags Linguagem de script VBScript, JScript VBScript, JScript, C++, C#, J# costumizaveis, sistemas de templates com suporte a internacionalização Tags costumizaveis Não Otimização e monitoramento Não de performance Complexidade Simples Sim IDE para a linguagem utilizada Sim Ferramentas profiler Dependendo do modelo Complexa devido ao utilizado na seu alto poder de programação. extensibilidade. Desenvolvedores contam com diversos paradigmas de programação para construir aplicativos web. Enquanto que ASP e .NET oferecem soluções fechadas porém simplificadas, J2EE permite maior liberdade de opções, embora também apresente maior complexidade. ASP é uma linguagem com sérias limitações funcionais, sendo mais apropriado a adoção de .NET ou J2EE para beneficiar a extensibilidade de sistemas e adaptação a futuros requisitos. Bibliotecas adicionais e suporte a ASP e .NET são essencialmente de caráter comercial enquanto que J2EE conta com uma comunidade mundial de projetos e desenvolvedores para a resolução de questões referentes a aplicativos web modernos. Empresas que adotarem ASP como plataforma principal de negócio na internet estarão subjugando seus projetos a uma gama restrita de funcionalidades, sem o poder de expansão ou interação conforme for demandado por novos requisitos. Portanto, serão obrigadas a reconstruir sua estratégia à medida que competidores desenvolvem sistemas mais ageis e integrados, para agregar valor a seus projetos e cativar a preferência de clientes e parceiros, ou dinamizar suas metodologias internas de trabalho. Já a plataforma .NET oferece funcionalidades mais amplas, mesmo que restritas às licensas, tecnologias e suporte comerciais, providas por uma única empresa. J2EE, por sua vez, disponibiliza o maior leque de opções tecnológicas e suporte, permitindo tanto a expansão de projetos quanto a adequação à viabilidade orçamentária de empresas ou organizações. Neste projeto foi utilizado Java 1.5, Servlet e JSP alem de alguns frameworks como Log4J, tentativa de Hibernate (utilizado JDBC no fim das contas) e algumas Tag libs como displaytags e input tags. Servidor de aplicação Apache e Tomcat 5.5 e IDE Eclipe 3.0 Desenvolvimento utilizando o modelo MVC: MVC (Model-View-Controller), traduzido livremente para Modelo-VisãoControlador, consiste num molde de programação em três camadas. O Modelo representa os objetos ou dados de um aplicativo. A Visão é a representação deste modelo em formato de apresentação para o usuário, com interface apropriada para a entrada de informações. O Controlador, por sua vez, implementa a interatividade, através do processamento das ações tomadas pelo usuário e atualização do modelo. O fluxo de interação entre as camadas é cíclico. O usuário indica uma operação através da interface ou visão. Esta operação é processada pelo controlador que altera o modelo conforme a lógica de negócio, retornando ao usuário o novo estado do modelo no formato de uma nova visão. O usuário prossegue então a sua próxima tarefa, re-iniciando o ciclo e assim por diante. O molde MVC oferece vantagens significativas no desenvolvimento de aplicativos, através da separação das camadas, possibilitando implementar com maior facilidade e clareza questões programáticas importantes como a persistência de dados, controle de segurança, comunicação em rede e fluxo de visualização. Equipes de programação podem se concentrar em suas habilidades centrais e integrar as camadas através de interfaces bem definidas. Esta separação permite que aplicativos possam ser mais facilmente modificados e estendidos para atender a novas exigências, bem como possibilita que a interface com o usuário apresente várias visões de um só modelo, sem interferir com a lógica de negócio. MVC e aplicativos web: A programação de aplicativos web através de linguagens interpretadas como ASP ou PHP oferece restrições à implementação do molde MVC, embora seja possível faze-lo. Estruturalmente, estas linguagens formulam a lógica através de scripts inseridos diretamente em páginas HTML. Por outro lado, linguagens compiladas como Java e C# são mais apropriadas pois definem claramente os objetos e ações de forma separada da interface. Novamente, esta separação possiblita funcionalidade distinta das camadas, bem como a extensão de aplicativos, reutilização de código e, conseqüentemente, menor tempo e custo de desenvolvimento. A aplicação de MVC na plataforma .NET é bem definida pela Microsoft, oferecendo metodologia dentro das especificações definidas por ASP.NET, utilizando a linguagem C# e com acesso a banco de dados SQL através de ADO.NET ou ODBC. A plataforma J2EE, por sua vez, apresenta muitas possibilidades. Favorecemos a biblioteca de tags Jakarta Velocity Template sobre páginas JSP pela simplicidade de scripting que Velocity proporciona à camada de visualização. A estrutura Struts, também do Jakarta Project, implementa mapeamento entre a visão e o controlador. Acesso ao banco de dados é intermediado através de Hibernate. Também pode-se utilizar alguma das várias implementações comerciais do padrão JDO (Java Data Objects), que possibilita a interpretação de objetos na estrutura do banco de dados relacional. Há várias opções de banco de dados como MySQL, Oracle ou mesmo SQL Server da Micrososft. Entretanto, observamos que o PostgreSQL hoje oferece uma alternativa altamente robusta, mesmo que gratuíta. Descrevemos na seguinte tabela estas opções e apresentamos um resumo da estrutura MVC: Tabela 3: Estrutura MVC e implementação nas plataformas .NET e J2EE 1ª Camada: Visualização Constrói a interface do sistema com acesso através de navegadores de internet, utilizando o protocolo http para a Função 2ª Camada: Lógica de negócio 3ª Camada: Persistência de informações Controla o Define o banco de processamento das dados a ser utilizado ações requeridas para persistir as pelo usuário, aplica informações do segurança através de sistema. Pode utilizar identificação do componentes de troca de informações. usuário e aciona intermediação com a Composição básica operações no banco camada de lógica de em HTML, estendida de dados, retornando negócio. por linguagens de o conteúdo que será script como enviado ao JavaScript, controles navegador utilizado ActiveX e Java pelo cliente. Applets, dependendo dos requerimentos do aplicativo. Páginas em HTML podendo conter scripts, HTML dinâmico, folhas de estilos, controles ActiveX e Java Linguagem C# para ASP.NET, gerando componentes de negócio que realizam o processamento dos pedidos recebidos Banco de dados Microsoft SQL Server acessado pelo componente ADO.NET ou ODBC. Páginas em HTML Linguagem Java e o Bando de dados Implementação Applets. As páginas pelo servidor de utilizando .NET são gerada Internet. dinamicamente pelo servidor através de scripts definidos pela especificação ASP.NET. podendo conter scripts, HTML dinâmico, folhas de estilos, controles ActiveX e Applets. A página é gerada Implementação dinamicamente pelo utilizando servidor através do J2EE modelo Apache Jakarta Velocity framework Apache Jakarta Struts, que implementa o paradigma MVC2, possibilita que cada componente da lógica de negócio tenha mais de uma visualização. PostgreSQL, utilizando acesso via middleware como Hibernate ou a implementação da especificação JDO (Java Data Objects) que cria um mapeamento direto entre o banco de Pages, que facilita a manipulação do design sem que haja interferência na dados relacional e objetos de Java, possibilitando pesquisas complexas lógica. e eficientes. O molde MVC de arquitetura de aplicativos permite a separação das camadas de dados, controle e visualização. Esta separação oferece vantagens para desenvolvedores como a otimização das habilidades de equipes e a redução de custos associados ao desenvolvimento, além de favorecer a extensibilidade e reutilização do código. Aplicativos web construidos nas plataformas .NET e J2EE podem implementar MVC, sendo que J2EE oferece maior gama de possibilidades. Empresas que não utilizarem o molde MVC no desenvolvimento de aplicativos estarão restringindo seus projetos aos requisitos atuais e correrão o risco de inviabilizar futuras atualizações ou mesmo de isolamento por restrição à integração com outros projetos. DOMINIO DO PROBLEMA: Desenvolvimento de um software para o Departamento de Engenharia Mecânica capaz de controlar todo o fluxo acadêmico-administrativo do departamento e ainda fornecer suporte a outras aplicações como Portais de informação do Departamento, Graduação e Estágios dos cursos de Engenharia Mecânica, Engenharia de Materiais e Metrologia e sistema de Estágios entre outros. PROJETO EMC: O projeto EMC iniciou sua fase de analise de requisitos e projeto em meados de Outubro de 2004 e inicio de implementação em Janeiro de 2005 e atualmente encontra-se na fase de implantação. Tela 01 – Tela Principal do Sistema ENTIDADES DO SISTEMA: Grupo Departamentos: O primeiro grupo de entidades é o Departamento. Composto por Departamentos, Áreas de Conhecimento, Níveis e Sub-Niveis. Tela 02 – Grupo Departamentos Entidade 1 - Departamento: Existem duas modalidades de departamentos, o departamento chamado de mestre, no caso o departamento de engenharia mecânica, a maioria das outras entidades do sistema estão atreladas a este departamento principal e o mesmo não pode ser excluído. O departamento mestre é composto pelas seguintes entidades: Itens de Laboratório: São itens que são utilizados na entidade Laboratórios e definem que itens um laboratório do departamento pode ter. (ex: Equipamentos, Serviços, Computadores entre outros). Itens de Plano de Ensino: São itens que são utilizados na entidade Planos de Ensino e são os itens que compõe os planos de ensino das disciplinas do departamento.(ex: Ementa, Avaliação, Cronograma entre outros). Tipos de Servidores: Tipos de servidores existentem no departamento e que serão utilizados no cadastro das entidades Técnico e Docente.(ex: Adjunto I, Adjunto II, Titular entre outros) Mandatos do Departamento: Mandato vingente no departamento assim como listagem dos mandatos passados mantendo um histórico. São informados Data de Inicio, Data de Fim, Chefe e Sub-Chefe. Os departamentos externos como FSC, QMC, INE entre outros são compostos por Nome, Sigla, Endereço Eletrônico e Home Page e são utilizados na Entidades Disciplina entre outras que dependem de departamentos. Tela 03 - Departamentos Entidade 2 - Área de Conhecimento: São áreas que serão atreladas a departamentos e indicam áreas especificas de conhecimento. (ex: Usinagem em Departamento de Eng. Mecânica, Software Aplicativo em Departamento de Informática e Estatística entre outros). Entidade 3 - Níveis: São os níveis de escolaridade atrelados a Entidade Curso como Graduação e Pós-Graduação. Entidade 4 - Sub-Níveis: São Sub-Níveis dentro dos níveis como Especialização, Mestrado ou Doutorado dentro de Pós-Graduação. Grupo Cursos: O segundo grupo de entidades é o de Cursos e é composto por Cursos, Coordenadorias de Cursos e Colegiados de Cursos. Tela 03 – Grupo Cursos Entidade 5 – Cursos: São cursos que fazem parte do sistema e são atrelados a entidades Coordenadorias de Curso, Colegiados de Curso e Currículo entre outras. Fazem parte de Curso os seguintes dados: Código do Curso Código CAGR Nome do Curso Titulação Habilitação Área de Conhecimento Nível Sub-Nível Objetivo Documentação Tela 04 – Cursos Entidade 6 – Coordenadorias de Curso São as Coordenadorias de Curso que são atreladas as Entidades Curso e Pessoas. Tela 05 – Inclusão de Coordenadoria de Curso Ainda são cadastradas em coordenadoria de curso as entidades Secretárias e Bolsistas que atrelam Pessoas a estes respectivos cargos na Coordenadoria. Entidade 7 – Colegiados de Curso Seguindo o exemplo de Mandatos em Departamentos, mantem um histórico dos colegiados dos cursos bem como relacionam os Membros do Colegiado indicando titulares e suplentes, a fim de abstrair completamente os dados de um colegiado. Futuramente pensa-se também em guardar as atas de reuniões e decisões do colegiado nesta mesma entidade. Tela 06 – Colegiados de Cursos Tela 07 – Membros do Colegiado Grupo Organização Curricular: Este grupo é um dos maiores por conter as entidades Áreas de Concentração, Currículo, Disciplinas, Planos de Ensino, Referencias e Meios de Publicação. Tela 07 – Organização Curricular Entidade 8 – Áreas de Concentração: São áreas que relacionam Departamento e Áreas de Concentração e descrevem áreas especificas em que a entidade Disciplinas vai utilizar. (ex: Análise e Projeto Mecânico, Usinagem, Fabricação, Física, Vibração e Acústica, Termodinâmica entre outros). Tela 08 – Áreas de Concentração Entidade 09 – Currículos: São entidades que relacionam Fases ou Períodos e dentro delas Disciplinas para que com este relacionamento montarem os currículos dos cursos. Também são relacionados os pré-requisitos que são Disciplinas assim como Equivalentes. Abaixo seguem algumas telas de Listagem dos Currículos, Inclusão de Disciplinas, Listagem de Pré-Requisitos e Visualização de Currículo. Tela 09 – Currículos de Cursos Tela 10 – Cadastramento de Disciplina na Fase ou Período Tela 11 – Pré-Requisitos de Disciplina do Currículo Tela 12 – Currículo do Curso de Eng. Mecânica após o cadastramento de Disciplinas nas fases Entidade 10 – Disciplinas: São relacionadas nesta entidade as disciplinas juntamente com suas disciplinas equivalentes que são utilizadas em nas entidades Currículos, Planos de Ensino, Oferta de Estágio entre outras. Tela 13 – Disciplinas Tela 14 – Inclusão de Disciplinas Entidade 11 – Planos de Ensino: São relacionados nesta entidade os itens do plano de ensino descritos no departamento mestre como ementa, objetivos, cronograma e as referencias bibliográficas que serão mostradas mais a frete. Tela 15 – Visualização de parta do plano de ensino Tela 16 – Planos de Ensino Tela 17 – Combo-Box de Referencias para serem incluídas no Plano de Ensino Entidade 12 – Referências: São as referências bibliográficas que incluem Autores, Titulo, Editora, Ano e são atreladas a Entidade Meios de Publicação. Tela 18 – Referências Bibliográficas Tela 19 – Inclusão de Referência Entidade 13 – Meio de Publicação: São utilizados para descrever um meio de publicação como Livros, Apostilas e Manuais entre outros. Relacionam-se com a entidade Referências. Tela 20 – Meios de Publicação Grupo Laboratórios: Este grupo é composto pelas entidades Laboratórios, Grupos/Núcleo e Áreas de Concentração de Grupos/Núcleo. Tela 21 – Grupo Laboratórios Entidade 13 – Laboratórios: São compostos por outras entidades como Departamento, Docente e Grupos/Núcleo alem de reunir informações de Itens de Laboratório cadastrados no departamento mestre. São atrelados também as entidades Técnicos, Bolsistas e Secretárias. Tela 22 – Laboratórios Tela 23 – Inclusão de Características no Laboratório Tela 24 – Inclusão de Laboratório Entidade 14 – Grupos/Núcleo: Os Grupos/Núcleo são uma entidade que contem grupos de laboratórios e linhas de pesquisa. Tela 25 – Grupos/Núcleo Entidade 15 – Áreas de Concentração de Grupos/Núcleo: São Áreas de Concentração atreladas a Grupos/Núcleo. (ex: Usinagem com o Grupo/Núcleo Núcleo Integrado de Desenvolvimento de Produtos) Grupo Empresas: Este grupo é formado basicamente pela entidade Empresa e Áreas de Concentração de Empresas. Estas entidades são a base para o sistema de Estágios e entra na formação da entidade Orientadores de Estágio de empresas. Tela 26 – Grupo Empresas Entidade 16 – Empresas: Cadastro geral de empresas, todas as organizações que tem contato de estágio, fornecedores ou orientadores (de empresas) estão relacionadas nesta entidade. Tela 27 – Empresas Entidade 17 – Áreas de Concentração de Empresas: São Áreas de Concentração atreladas a Empresas. (ex: Automobilística com a empresa Mercedes-Benz ou Reatores com a empresa General Eletric) Tela 28 – Inclusão de Área de Concentração de Empresa Grupo Estágios: Este grupo atualmente é composto pelas entidades Ofertas de Estágio e Coordenadorias de estágio, no entanto nos próximos meses estará sendo desenvolvido o sistema que automatizara toda a rotina de estágios do departamento, desde pré-matrículas de estágio, passando por pretensão de vagas até chegar em envio de relatórios e avaliação dos mesmos por parte dos orientadores e coordenadores. (Ver requisitos funcionais do novo sistema em Anexo). Entidade 18 – Ofertas de Estágio: Tela 29 – Visualização de Oferta de Estágio Entidades 19 – Coordenadorias de Estágio: Tela 30 – Coordenadorias de Estágio Grupo Pessoal: Este grupo é composto primariamente pelo cadastro de pessoa física que é utilizado em todas as outras entidades como Docentes, Técnicos, Alunos, Bolsistas e Orientadores de Estágio. Tela 31 – Pessoas Físicas CONCLUSÃO: Este trabalho no qual estou envolvido a aproximadamente 1 ano tem trazido muitos benefícios a minha vida profissional, por se tratar de um TCC a nível comercial acredito que tenha uma responsabilidade maior envolvida , a satisfação do cliente, então tudo deve sair perfeito. Na parte técnica tive que desenvolver idéias para o melhor aproveitamento de classes afim de otimizar o processo e ainda sim deixar o sistema o mais claro e modularizado possível para facilitar os processos de manutenção. Com esse projeto deste aprendi muito alem do puro desenvolvimento de softwares, tive que atuar também produzindo o banco de dados e muito em servidores apache e tomcat alem claro de toda engenharia de software, analises e projetos e programação em si. ANEXO 1 PROJETOS CONCORRENTES Portal do Depto de Eng. Mecânica: Projeto CP: Utilizado para fazer atualização dinâmica do conteúdo, é utilizado juntamente ao EMC para formar os Portais, que também são sistemas Web. Itens de menu Categorias, Conteúdos, Imagens, Links e Paginas de Apoio Edição de Conteudo Os sistemas Web abaixo utilizam os softwares EMC e CP para montarem seus portais, misturam as informações contidas no banco de dados referentes a conteúdos, imagens, cores, etc com as informações do departamento. www.emc.ufsc.br www.emc.ufsc.br/graduacao www.emc.ufsc.br/estagios www.materiais.ufsc.br (ainda fora do ar) www.materiais.ufsc.br/estagios (ainda fora do ar) ANEXO 2: Diagrama de Classes (somente as mais importantes pois o sistema conta atualmente aprox. com 150 classes). Ficou realmente complicado então tive que refazer o diagrama com uma versão mais compacta, gostaria de colocar os diagramas completos.