eiffel – uma linguagem completa bruno hildenbrand felipe desiderati patrícia vilas-boas vinícius...

21
Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Upload: internet

Post on 18-Apr-2015

108 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel – Uma linguagem Completa

Bruno HildenbrandFelipe Desiderati

Patrícia Vilas-BoasVinícius S Nunes

Page 2: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel - Sumário

Introdução Eiffel Software A Linguagem Eiffel Projeto por Contrato Eiffel e UML Eiffel Studio e Eiffel ENViSioN! Exemplo Prático Informações Complementares O futuro da linguagem Eiffel

Page 3: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel - Introdução Linguagem OO que enfatiza projeto e

construção de SW reutilizável de alta qualidade

Não é extensão de nenhuma outra linguagem

Permite interfaceamento com outras linguagens – C ou C++

Design by Contract – garantir a consistência do SW gerado

Transparente para novas tecnologias como o .NET

Page 4: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Interactive SoftwareEngineering

Fundada em 1985 na Califórnia Primeira empresa a focar suas atividades

inteiramente na tecnologia OO Objetivo: oferecer aos clientes, beneficios

que gerem vantagens competitivas Diminuir Custos e aumentar a

produtividade Eliminar tempo e esforço gastos no

processo de desenvolvimento visando uma solução mais simples e mais completa

Software seguro, reusável e robusto.

Page 5: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel Software

ISE atualmente chama-se Eiffel Software Atividades de negócio primárias:

Eiffel Studio Eiffel ENViSioN! Treinamento OO e Eiffel Consultoria Eiffel

Informações orçamentárias não divulgadas pelo fabricante

Page 6: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel Software

Principais Clientes: HP (printer division) ICL (Fujitsu) Lucent Technologies Telesoft Tokyo Gas Digital Biometrics EuroDisney, entre outros

Page 7: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

A linguagem Eiffel

Puramente OO Design inspirado em preocupações

levantadas por Engenheiros de Software Visa construir softwares robustos e

reusáveis Aumento de Produtividade – 2 a 10x Custo até 80% mais baixo Nível de qualidade 10x maior

Page 8: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

A linguagem Eiffel

Usada eficientemente em todas as áreas de computação

Roda facilemente em ambientes como: Windows (e .NET), Unix, Linux e VMS.

Realmente rápida – combina o poder das novas tecnologias com performances iguais ou superiores a C e Fortran

Tecnoligia que combina Compilação com interpretação Bytecode

Page 9: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

A linguagem Eiffel

Interface com C, C++ (acesso a classes, métodos e bibliotecas)

Bibliotecas gráficas disponíveis para todos os tipos de aplicações

Acesso nativo a bancos de dados ODBC, Oracle, Sybase e Ingres

Eiffel Studio Transparente para o .NET

Page 10: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

A linguagem Eiffel

Reusabilidade – uso de componentes Extensabilidade – menos tempo gasto com

“programação” e mais tempo com: Confiabilidade – exceções, tipagem, - bugs Eficiência – código enxuto, sistemas rápidos Portabilidade – definição da linguagem

independente de plataforma OO – Classes, Encapsulamento, Herança,

Polimorfismo

Page 11: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

ISE Eiffel

Page 12: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Design by Contract (DBC)

Mecanismo que demanda a produção de software de qualidade.

Garante códigos com muito menos erros Segue as regras do desenvolvimento Diminuição no número de bugs Mais tempo gasto com o design Chave para software reusável e documentação

Page 13: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel e UML

EiffelStudio é capaz de gerar XMI (XML Metadata Interchange) para qualquer sistema Eiffel.

XMI possibilita troca de informações entre quaisquer produtos que suportem esta tecnologia (ex, Rational Rose).

Importado em cada produto e a informação UML gerada.

Page 14: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Algumas Comparações Design by Contract

Eiffel – Suporte da linguagem e Desnvolvimento C++ - Nada comparável (apenas a instrução “Assert”) Java - Nada comparável (nem mesmo a instrução “Assert”)

Tecnologia de Compilação Eiffel – Combina compilação e interpretação no mesmo ambiente C++ - Normalmente compilado Java – mistura de interpretação e compilação “on-the-fly”

Eficiência do Código Gerado Eiffel – executáveis rápidos C++ - Executáveis rápidos Java – muitos problemas de performance relatados

Documentação Eiffel - Documentação gerada automaticamente (vários formatos) C++ - Sem mecanismo padrão Java – JavaDoc – adiciona comentários especiais

Page 15: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel Studio

IDE desenvolvida exclusivamente para a linguagem de programação Eiffel

Desenvolvimento desde a modelagem e o design até a codificação

Ferramenta CASE e Debugger embutidos

Centrado da metodoliga Design by Contract

Suporte a XMI e UML

Page 16: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel Studio – Características

Design by Contract Clean Syntax Genericity for .NET Fast Executables Portability .NET compatibility Ideal Migration path to .NET Best tool for business critical

applications Powerful new GUI library Reusable code

Page 17: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel Studio

Page 18: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Eiffel ENViSioN!

Plugin da linguagem Eiffel para o Microsoft Visual Studio .NET

Eiffel integrado normalmente dentro da plataforma .NET

Assim com o Eiffel Studio, oferece suporte à modelagem, design e desenvolvimento dentro do .NET

Reduz debug em 90 a 95% com Design by Contract

Page 19: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Estrutura de Classes

class NomeDaClasse creation make export     <lista de variáveis e métodos públicos> inherit     <NomeDaSuperClasse>         redefine <nova assinatura do método>         rename <nova declaração de variáveis> invariant     <definição das restrições válidas para toda a classe> feature <assinaturaDoMétodo> is require     <restrição de pré-condição> do     <corpo do método> ensure     <restrição de pós-condição> end;end;

Page 20: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Informações Complementares

Tópicos especiais: Congeneridade na linguagem Eiffel Garbage Collection Tipo de Software mais adequado Domínios de Classes

(Aplicação, Negócios, Arquitetura e Base)

Exemplo Prático

Page 21: Eiffel – Uma linguagem Completa Bruno Hildenbrand Felipe Desiderati Patrícia Vilas-Boas Vinícius S Nunes

Considerações Finais

Bibliografia www.eiffel.com Bertrand Meyer, Object-Oriented Software Construction, Prentice Hall, 1997. http://www.elj.com/eiffel/intro/full/ UFRGS/Informática - Porto Alegre, RS

Universidade Federal do Rio de JaneiroProjetos de Sistemas de Informação

Prof. Ricardo L Shcneiderwww.dcc.ufrj.br/~schneide