210 likes | 385 Views
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
E N D
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
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
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 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
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 Janeiro Projetos de Sistemas de Informação Prof. Ricardo L Shcneider www.dcc.ufrj.br/~schneide