Upload
internet
View
108
Download
2
Embed Size (px)
Citation preview
Eiffel – Uma linguagem Completa
Bruno HildenbrandFelipe Desiderati
Patrícia Vilas-BoasViní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
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
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.
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
Eiffel Software
Principais Clientes: HP (printer division) ICL (Fujitsu) Lucent Technologies Telesoft Tokyo Gas Digital Biometrics EuroDisney, entre outros
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
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
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
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
ISE Eiffel
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
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.
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
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
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
Eiffel Studio
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
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;
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
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