Eclipse Noite

.:INFORMÁTICA NOTURNO:.
Equipe: José Augusto da Trindade Júnior
Mirelle Rios
Tiago Telles

ORIGEM

O Projeto Eclipse surgiu pela iniciativa da IBM através de um investimento inicial de 40 milhões de dólares para produzir o chamado Eclipse 1.0, como licença open source do tipo CPL – Commom Public License. Posteriormente, foi criado pela própria IBM um consórcio denominado Eclipse.org para administrar essa ferramenta.

Eclipse.jpg

Este consórcio - formado atualmente por grandes empresas como: Borland, HP, RedHat, Fujitsu, dentre outras -, se tornou independente da IBM a partir de 2004.

Sendo assim, o Eclipse é uma referência mundial quando se é abordado desenvolvimento na Linguagem Java e /ou Orientada a Objeto.

OBJETIVO e CARACTERÍSTICAS

O Projeto Eclipse se propõe a disponibilizar uma “ferramenta universal”, flexível, gratuita e multi-plataforma para o desenvolvedor, por meio de uma arquitetura totalmente baseada em plug-ins.
Embora seja construído em Java, propicia que o usuário trabalhe com diversos tipos de linguagem, tais como: C/C++, Cobol, PHP, C#.

Este consórcio - formado atualmente por grandes empresas como: Borland, HP, RedHat, Fujitsu, dentre outras -, se tornou independente da IBM a partir de 2004.

Sendo assim, o Eclipse é uma referência mundial quando se é abordado desenvolvimento na Linguagem Java e /ou Orientada a Objeto, principalmento por ser 'free'.

  • Arquitetura

A arquitetura de plug-ins do Eclipse, citada anteriormente, é controlada por um microkernel, no qual consta o principal componente genérico: a plataforma Runtime.

Vide abaixo a representação gráfica da Arquitetura Básica:

Arquitetura_Eclipse.jpg

Componentes genéricos:

• Runtime: Gerenciador dos Plug-ins;
• WorkSpace: Gerenciador de diretórios e arquivos, abrangendo os projetos do usuário;
• SWT e JFace: Gerenciadores de interface com o usuário do Eclipse;
• WorkBench: Suporte e recursos de interface gráfica;
• Team: Interpreta o Workspace para controlar versões e histórico dos recursos;
• Debug: Suporte a depuração de programas;
• Help: Recurso de suporte aos usuários;
• Update: Gerenciador de atualizações.

Em todos os componentes genéricos da arquitetura do Projeto Eclipse não há especificação de nenhuma linguagem de programação ou plataforma a ser trabalhada.

Na figura anterior, estão em destaque os principais plug-ins que dão suporte a uma determinada linguagem e tecnologia: o JDT e o CDT. Apesar de compartilharem funcionalidades genéricas, o JDT dá suporte a projetos construídos em JAVA, e o CDT a projetos em C/C++.

  • As IDE´s do Eclipse

• JDT (Java Development Tooling) – suporte a projetos JAVA (edição, compilação, depuração);
• PDE (Plug-in Development Environment) – suporte a plug-ins em Eclipse Java (criação, edição, teste);
• CDT (C/C++ Development Tools) – suporte a projetos C/C++;
• AJDT (AspectJ Development Tools) – suporte ao AspectJ (Programação Orientada a Aspectos) dentro do IDE Eclipse;
• COBOL – suporte a projetos COBOL;
• VE (Visual Editor) - editor de Interfaces Gráficas de programação;
• WTP (Web Tools Platform) - suporte de desenvolvimento para aplicações Web não estando amarrado ao JAVA (por meio do WST - Web Standard Tools e J2EE (por meio do JST - J2EE Standard Tools);
• WST(Web Standard Tools) – Oferece suporte para o desenvolvimvento voltado à WEB e também em XML, e permite obter editores de HTML, CSS, JavaScript, XML, DTD, XSD mais seus respectivos suportes.
• JST (J2EE Standard Tools) – Amplia o WST dando suporte a todos os demais aspectos do J2EE.
• Pollinate – Suporte a programação J2EE facilitada por anotações.
• WSVT ( Web Service Validation Tools) – Analisa e valida web services.
• Hyades – Ambiente integrado para testes, monitoração, análise de desempenho (profiling) , análise de eventos (tracing). Proporcionando um acompanhamento a plataforma completa de automação de qualidade.

OMONDO.jpg

• OMONDO - Elaboração de Diagrama UML (de sequências até classes), além de permitir efetuar a Engenharia Reversa de projetos prontos.

  • Novos Frameworks

Vários frameworks internos do Eclipse surgiram para atender requisitos genéricos de ferramentas mais avançadas: utilização em pelo VE, Hyades, WTP e pela maioria das ferramentas mais recentes. Todos os componentes e ferramentas citados no subitem anterior estão apenas voltados para geração de código e metamodelagem. Exemplos:

• GEF (Graphical Editor FrameWork) – Facilita a construção de editores visuais a partir de um modelo de dados;
• EMF (Eclipse Modeling Framework) – Facilita a construção de geradores de código;
• XSD (XML Schema Infoset Model) – Ferramenta de meta-modelagem para tecnologias com base em XML;
• UML2 – fornece suporte à linguagem de modelagem UML. Não oferece facilidades de edição de diagramas UML, somente implementa um metamodelo UML 2.0;

  • Outras abordagens e projetos

• BIRT (Business Intelligence and Reporting Tools) - Suporte à área de aplicação de negócios através de criação de relatórios e gráficos de dados. Muito importante em Análise de Sistemas;
• CME (Concern Manipulation Environment) – Projeto para suporte a desenvolvimento orientado a aspectos, mas com recursos generalizados e graduais em relação ao AOP;
• ECESIS (Eclipse Community Education) – Responsável por desenvolver o material de treinamento, tutoriais, para o Eclipse;
• Equinox – Projeto que investiga melhorias correlacionas ao Projeto Eclipse. Desenvolveu as melhorias do RunTime do Eclipse 3.0;
• GMT (Generative Model Transformer) – Conjunto de recursos que facilitam o desenvolvimento de software a partir de um modelo chamado PIM - Platform Independent Model);
• Koi – Fornece tecnologia de suporte colaborativo aos usuários, como, por exemplo aviso por e-mail quando houver melhoria de código;
• OMELET (Open Modeling Environment with Links for Extensions and Transformations) - Tem o objetivo de unificar o que há de comum em várias tecnologias que trabalham com modelos abstratos de qualquer coisa, como UML, MOF e XSD;
• Stellation – Software que gerencia configuração (SCM). O projeto complementará os recursos de VCM do componente Team através de atualizações de nível avançado, vistas em projetos mais complexos;
• ECF (Eclipse Communications FrameWork) – Viabilizar o uso de messaging seguro como ferramenta para processo de colaboração entre desenvolvedores: chat, mensagens instantâneas, compartilhamento de dados;
• ETF (Eclipse Trust FrameWork) – Projeto em que dá suporte a contextos de segurança, tais como: autenticação, controle de acesso, algoritmos de criptografias ou protocolos.
• PTP (Parallel Tools Platform) - Projeto que dá suporte à Computação Paralela: tratamento de múltiplos códigos e processos;
• VTP (Voice Tools Project) - Ferramenta para sintetização e reconhecimento de voz;

PROJETO ECLIPSE x DISCIPLINA COMPILADORES UCSAL

O Eclipse contém editores especializados para tipos específicos de arquivo, normalmente fontes em uma linguagem de programação, fornecendo: realce de sintaxe e recursos (Analise léxica, Sintática, Semântica), o "Autocompletar" e tratamento de erros.

Para um compilador existe uma classificação chamada Pré-processador onde um texto fonte é preparado para ser submetido a um outro compilador. No Eclipse, os construtores ou Builders realizam este papel: por traduzir (pré-processar) os arquivos fontes, preparando-os para outros construtores.

O Compilador Eclipse está classificado por paradigma por ser:

• Linguagem orientada a objeto;
• Linguagem Declarativa, pelo paradigma geral.
• Linguagem de 3ª geração (uso de linguagens Procedurais) e 4ª geração (uso de linguagens de Aplicação), por geração;
• Linguagem de Alto Nível (HLL), por dependência de máquina.

Vale ressaltar, que o uso do Plug-in OMONDO, citado acima, permite que o Eclipse desempenhe um processo de Decompilação, isto é, transformação do Projeto/Programa em linhas de código, através da Engenharia Reversa.

CONCLUSÃO

Por fim, podemos entender que o Eclipse, projeto desenvolvido pelo Consórcio Eclipse.org, é um software livre e gratuito que se comporta como um depósito de tecnologia personalizado quanto ao uso de diversas funcionalidades: linguagens programação, modelagem de sistemas, gestão de qualidade de aplicações de negócio, comunicação colaborativa de usuários, etc. Conforme a necessidade de quem for utilizar esta ferramenta.

No que se refere à linguagens de programação, é um programa alternativo a outras IDE´s pagas – levando-se em conta a adição com critério dos diversos plug-ins disponíveis na internet.

Além disso, foi evidenciada a aplicabilidade do que é visto em sala de aula, ou seja, em ambiente acadêmico, no mercado de Tecnologia de Informação sobre os conceitos de compiladores, programação orientada a objetos, engenharia de software, computação paralela, e/ou demais áreas correlacionadas.

FONTES:

1. O Projeto Eclipse – http://pt.shvoong.com/internet-and-technologies/computers/378130-projeto-eclipse/
2. Projeto Eclipse for Java – http://www.linhadecodigo.com.br/Artigo.aspx?id=677
3. Eclipse – Quem es tu??? GUJ – Grupo de Usuários JAVA - http://www.guj.com.br/content/articles/eclipse/eclipse_quem_es_tu.pdf
4. Eclipse Foundation - http://www.eclipse.org/
5. Eclipse, o Super IDE - Revista do Linux - http://augustocampos.net/revista-do-linux/041/eclipse.html
6. ByteCode: O Projeto Eclipse - Java Magazine. Edição 23 - Ano III.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License