<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Lenguaje_de_programaci%C3%B3n_Eiffel</id>
	<title>Lenguaje de programación Eiffel - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/index.php?action=history&amp;feed=atom&amp;title=Lenguaje_de_programaci%C3%B3n_Eiffel"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Lenguaje_de_programaci%C3%B3n_Eiffel&amp;action=history"/>
	<updated>2026-06-19T11:34:49Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Lenguaje_de_programaci%C3%B3n_Eiffel&amp;diff=3459283&amp;oldid=prev</id>
		<title>Carlos idict: Texto reemplazado: «&lt;div align = &quot;justify&quot;&gt;» por «»</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Lenguaje_de_programaci%C3%B3n_Eiffel&amp;diff=3459283&amp;oldid=prev"/>
		<updated>2019-07-15T19:07:54Z</updated>

		<summary type="html">&lt;p&gt;Texto reemplazado: «&amp;lt;div align = &amp;quot;justify&amp;quot;&amp;gt;» por «»&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 19:07 15 jul 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l24&quot; &gt;Línea 24:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 24:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|web= [http://eiffel.com/ Sitio oficial de Eiffel]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|web= [http://eiffel.com/ Sitio oficial de Eiffel]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;div align = &amp;quot;justify&amp;quot;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Eiffel.''' Es un lenguaje de programación escrito por [[Bertrand Meyer]]. Al contrario que [[Smalltalk]], incluye un preprocesador que permite la traducción de código Eiffel a lenguaje [[C]]. Permite la [[encapsulación]] , control de acceso y tiene gran facilidad para las modificaciones. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Eiffel.''' Es un lenguaje de programación escrito por [[Bertrand Meyer]]. Al contrario que [[Smalltalk]], incluye un preprocesador que permite la traducción de código Eiffel a lenguaje [[C]]. Permite la [[encapsulación]] , control de acceso y tiene gran facilidad para las modificaciones. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1482012:rev-3459283 --&gt;
&lt;/table&gt;</summary>
		<author><name>Carlos idict</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Lenguaje_de_programaci%C3%B3n_Eiffel&amp;diff=1482012&amp;oldid=prev</id>
		<title>Adriana06087 jc.hlg en 15:21 19 abr 2012</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Lenguaje_de_programaci%C3%B3n_Eiffel&amp;diff=1482012&amp;oldid=prev"/>
		<updated>2012-04-19T15:21:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 15:21 19 abr 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot; &gt;Línea 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div align = &amp;quot;justify&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div align = &amp;quot;justify&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Eiffel&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;:&lt;/del&gt;''' Es un lenguaje de programación escrito por [[Bertrand Meyer]]. Al contrario que [[Smalltalk]], incluye un preprocesador que permite la traducción de código Eiffel a lenguaje [[C]]. Permite la [[encapsulación]] , control de acceso y tiene gran facilidad para las modificaciones. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Eiffel&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;''' Es un lenguaje de programación escrito por [[Bertrand Meyer]]. Al contrario que [[Smalltalk]], incluye un preprocesador que permite la traducción de código Eiffel a lenguaje [[C]]. Permite la [[encapsulación]] , control de acceso y tiene gran facilidad para las modificaciones. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Declaración de clases==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Declaración de clases==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki1:diff::1.12:old-1225660:rev-1482012 --&gt;
&lt;/table&gt;</summary>
		<author><name>Adriana06087 jc.hlg</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Lenguaje_de_programaci%C3%B3n_Eiffel&amp;diff=1225660&amp;oldid=prev</id>
		<title>Jessica0302ad jc.hlg: Página creada con '{{Ficha Software |nombre= Eiffel |familia= |imagen= Lenguaje_de_programacion_Eiffel.png |tamaño=50*50 |descripción= Lenguaje de programación orientado a objetos. |tamaño2= |...'</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Lenguaje_de_programaci%C3%B3n_Eiffel&amp;diff=1225660&amp;oldid=prev"/>
		<updated>2011-12-01T18:33:56Z</updated>

		<summary type="html">&lt;p&gt;Página creada con &amp;#039;{{Ficha Software |nombre= Eiffel |familia= |imagen= Lenguaje_de_programacion_Eiffel.png |tamaño=50*50 |descripción= Lenguaje de programación orientado a objetos. |tamaño2= |...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Ficha Software&lt;br /&gt;
|nombre= Eiffel&lt;br /&gt;
|familia=&lt;br /&gt;
|imagen= Lenguaje_de_programacion_Eiffel.png&lt;br /&gt;
|tamaño=50*50&lt;br /&gt;
|descripción= Lenguaje de programación orientado a objetos.&lt;br /&gt;
|tamaño2=&lt;br /&gt;
|descripción2=&lt;br /&gt;
|creador= &lt;br /&gt;
|desarrollador= [[Bertrand Meyer]]&lt;br /&gt;
|diseñador=&lt;br /&gt;
|modelo de desarrollo=&lt;br /&gt;
|lanzamiento inicial=&lt;br /&gt;
|versiones=&lt;br /&gt;
|última versión estable=&lt;br /&gt;
|núcleo=&lt;br /&gt;
|tipo de núcleo=&lt;br /&gt;
|plataformas soportadas= &lt;br /&gt;
|género= Lenguaje de programación&lt;br /&gt;
|sistemas operativos= [[Windows]], [[Linux]], [[Unix]], [[Mac OSX]]&lt;br /&gt;
|idioma=&lt;br /&gt;
|licencia=&lt;br /&gt;
|premios=&lt;br /&gt;
|web= [http://eiffel.com/ Sitio oficial de Eiffel]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div align = &amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Eiffel:''' Es un lenguaje de programación escrito por [[Bertrand Meyer]]. Al contrario que [[Smalltalk]], incluye un preprocesador que permite la traducción de código Eiffel a lenguaje [[C]]. Permite la [[encapsulación]] , control de acceso y tiene gran facilidad para las modificaciones. &lt;br /&gt;
&lt;br /&gt;
==Declaración de clases==&lt;br /&gt;
&lt;br /&gt;
En Eiffel una declaración de clases puede incluir:&lt;br /&gt;
&lt;br /&gt;
* Una lista de características exportables.&lt;br /&gt;
&lt;br /&gt;
* Una lista de las clases antecesora: clases de la que ésta es una derivación.&lt;br /&gt;
&lt;br /&gt;
* Una lista de declaraciones de características.&lt;br /&gt;
&lt;br /&gt;
==Ventajas==&lt;br /&gt;
* Es un lenguaje orientado a objetos puro.&lt;br /&gt;
&lt;br /&gt;
* Orientado hacia el diseño de grandes aplicaciones. &lt;br /&gt;
&lt;br /&gt;
* El paso intermedio a código [[C]] se puede considerar como una ventaja y no como un inconveniente, ya que aquellas secciones que sean difíciles de tratar con Eiffel pueden elaborarse a partir de código [[C]]. Su compatibilidad con [[C]] asegura también su portabilidad hacia otros sistemas operativos.&lt;br /&gt;
&lt;br /&gt;
==Desventajas==&lt;br /&gt;
* El manejo de la memoria, un punto delicado en todos los lenguajes orientados a objetos no es transparente como en el caso de [[Smalltalk]].&lt;br /&gt;
&lt;br /&gt;
* Las librerías de clases son reducidas.&lt;br /&gt;
&lt;br /&gt;
* El rendimiento es mayor que el de [[Smalltalk]], pero al tener que incluir un módulo Run-time dentro del ejecutable, su tamaño crece y su rendimiento baja.&lt;br /&gt;
&lt;br /&gt;
==Eiffel Studio==&lt;br /&gt;
[[EiffelStudio]] está diseñado hacer más fácil la creación de software  para los desarrolladores, específicamente para apoyar el método Eiffel y el lenguaje, ejecutándose  de forma idéntica en casi todas las plataformas de [[hardware]] y sistema operativo.&lt;br /&gt;
&lt;br /&gt;
===  Windows ===&lt;br /&gt;
[[EiffelStudio]] es el entorno de desarrollo más potente para la creación de aplicaciones de misión crítica para el sistema operativo [[Windows]]. Es capaz de reutilizar gran parte de sus aplicaciones y comprobar la función de las mismas en su plataforma actual.&lt;br /&gt;
&lt;br /&gt;
===  Linux / Unix ===&lt;br /&gt;
[[EiffelStudio]] en estas plataformas ofrece todas las características de gran alcance de Eiffel como  la [[herencia múltiple]] y [[genericidad]]. Con [[EiffelStudio]] para [[Linux]] / [[Unix]], los desarrolladores tienen la libertad para crear las aplicaciones y fácilmente pueden trasladar estas aplicaciones para las plataformas de su elección.&lt;br /&gt;
 &lt;br /&gt;
=== Eiffel de VMS ===&lt;br /&gt;
Dado el nivel general de seguridad y excelencia de [[OpenVMS]], [[Software Eiffel]] ha considerado que esta plataforma y Eiffel serían una combinación perfecta. [[Eiffel Software]] ha ofrecido desde el principio una versión de [[EiffelStudio]] de [[VMS]] y se compromete a continuar el apoyo para el beneficio de los clientes que trabajan en computadoras mainframe.&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X ===&lt;br /&gt;
Desde el lanzamiento de [[EiffelStudio]] 5.4 en adelante, la versión de [[Mac OS X]] tiene toda  la solidez para trabajar con  el mismo.&lt;br /&gt;
&lt;br /&gt;
===Ventajas===&lt;br /&gt;
[[EiffelStudio]] permite a los desarrolladores las siguientes ventajas:&lt;br /&gt;
 &lt;br /&gt;
* Es más simple, el lenguaje es más potente.      &lt;br /&gt;
* Garantiza un software robusto y eficiente.&lt;br /&gt;
* Permite a los desarrolladores utilizar [[genericidad]]y un modelo de [[herencia múltiple]]. &lt;br /&gt;
* Reduce el tiempo de depuración del 90-95%.&lt;br /&gt;
* Compila para múltiples plataformas: [[Windows]] ([[Classic]] y [[NET.]]), [[Unix]], [[Linux]], [[VMS]],sistemas integrados y [[Mac OS X]]. &lt;br /&gt;
* Funciona muy bien como una herramienta para: &lt;br /&gt;
- Lograr alta calidad del software. &lt;br /&gt;
      &lt;br /&gt;
- Migrar aplicaciones heredadas de [[.NET]]. &lt;br /&gt;
&lt;br /&gt;
- Crear componentes de alta calidad y bibliotecas.&lt;br /&gt;
&lt;br /&gt;
==Método==&lt;br /&gt;
&lt;br /&gt;
Eiffel es un método y un  lenguaje para la descripción y el desarrollo eficientes de sistemas de calidad. Como lenguaje, Eiffel es más que un lenguaje de programación. Abarca no sólo la programación en el sentido restringido de aplicación, también el espectro de desarrollo de [[software]]: &lt;br /&gt;
&lt;br /&gt;
*'''Análisis, modelado y especificación:''' Eiffel se puede utilizar como una herramienta puramente descriptiva para analizar y documentar la estructura y propiedades de sistemas complejos (aunque no de sistemas de software). &lt;br /&gt;
&lt;br /&gt;
* '''Diseño y arquitectura:''' Eiffel se puede utilizar para construir estructuras sólidas, el sistema es flexible. &lt;br /&gt;
&lt;br /&gt;
* '''Implementación:''' Eiffel ofrece soluciones prácticas de [[software]] con una eficacia comparable a las soluciones basadas en los enfoques tradicionales tales como [[C]] y [[Fortran]].&lt;br /&gt;
&lt;br /&gt;
*'''Mantenimiento:''' Eiffel  ayuda a la flexibilidad de arquitectura de los sistemas resultantes. &lt;br /&gt;
&lt;br /&gt;
* '''Documentación:''' Eiffel permite la generación automática de documentación textual y gráfica, desde el propio [[software]], como un sustituto parcial de la documentación del [[software]] desarrollado y mantenido por separado. &lt;br /&gt;
&lt;br /&gt;
==Calidad==&lt;br /&gt;
Aunque el lenguaje es la parte más visible, Eiffel se ve mejor como un método, que guía los analistas de sistemas y desarrolladores a través del proceso de construcción de [[software]]. El método Eiffel se centra en la productividad (la capacidad de producir sistemas a tiempo y dentro del presupuesto) y la calidad, con especial énfasis en los factores de calidad siguientes: &lt;br /&gt;
&lt;br /&gt;
* '''Fiabilidad:''' la producción del [[software]] es libre de errores.&lt;br /&gt;
&lt;br /&gt;
* '''Reutilización:''' permite desarrollar componentes de alta calidad, y transformar los elementos de [[software]] en estos componentes para su reutilización futura.&lt;br /&gt;
&lt;br /&gt;
* '''Extensibilidad:''' permite que el desarrollo de software pueda adaptarse  a los cambios inevitables y frecuentes de los requisitos y otras limitaciones. &lt;br /&gt;
&lt;br /&gt;
* '''Portabilidad:''' permite producir [[software]] que se ejecutan en muchas plataformas diferentes. &lt;br /&gt;
&lt;br /&gt;
* '''Mantenimiento:''' permite estructurar  y seguir adaptando y mejorando el software implementado.&lt;br /&gt;
&lt;br /&gt;
== Propiedades generales==&lt;br /&gt;
* '''Enfoque orientado a objetos:'''  Eiffel es una aplicación de pleno derecho de la tecnología de objetos, no un &amp;quot;híbrido&amp;quot; de los conceptos de OO y tradicionales. &lt;br /&gt;
&lt;br /&gt;
* '''Interfaces externas:''' Eiffel es una herramienta de [[software]] de composición y es de fácil interfaz, con el [[software]] escrito en lenguajes como [[C]], [[C + +]],[[ Java]] y [[C #]]. &lt;br /&gt;
&lt;br /&gt;
* '''Apoyo del ciclo de vida completo:'''  Eiffel es aplicable en todo el proceso de desarrollo, incluyendo el análisis, diseño, implementación y mantenimiento. &lt;br /&gt;
&lt;br /&gt;
* '''Clases como herramienta de estructuración básica:''' Una clase es la descripción de un conjunto de objetos en tiempo de ejecución, se especifica a través de las operaciones de aplicación y propiedades abstractas. Un sistema de Eiffel está hecho de clases, que actúa como mecanismo único de  módulo. &lt;br /&gt;
&lt;br /&gt;
* '''Sistema de tipo constante:''' Cada tipo se basa en una clase, incluyendo los tipos básicos como entero, booleano, real, carácter, una cadena, array. &lt;br /&gt;
&lt;br /&gt;
* '''Diseño por Contrato:''' Cada componente del sistema puede estar acompañado de una especificación precisa de sus propiedades abstractas, que regulan su funcionamiento interno y su interacción con otros componentes.&lt;br /&gt;
&lt;br /&gt;
* '''Afirmaciones:''' El apoyo de método y notación por escrito, las propiedades lógicas de los estados de objetos  expresan los términos de los contratos.  Estas propiedades, conocidas como las afirmaciones, se puede controlar en tiempo de ejecución de pruebas y aseguramiento de la calidad. También sirven como mecanismo de documentación.  Las afirmaciones son precondiciones, postcondiciones, invariantes de clase, invariantes de bucle entre otros.&lt;br /&gt;
&lt;br /&gt;
* '''Manejo de excepciones:''' Se puede configurar el [[software]] para detectar condiciones anormales, tales como señales inesperadas del sistema operativo y violaciones de contrato, de corrección, y recuperación.&lt;br /&gt;
&lt;br /&gt;
* '''Ocultamiento de información:''' Cada autor decide la clase, para cada función, si está disponible para todas las clases de clientes, a clientes específicos solamente, o solamente para propósitos internos. &lt;br /&gt;
&lt;br /&gt;
* '''Auto-documentación:''' La notación se ha diseñado para permitir a las herramientas ambiente para producir puntos de vista abstractos de las clases y los sistemas, textual o gráfica, y adecuado para cambio usuarios, mantenedores y los autores de los clientes. &lt;br /&gt;
&lt;br /&gt;
*'''Herencia:''' Se puede definir una clase como la extensión o la especialización de los demás. &lt;br /&gt;
&lt;br /&gt;
* '''Redefinición:''' Un rasgo heredado (la operación) se puede dar una implementación diferente o firma. &lt;br /&gt;
&lt;br /&gt;
* '''Redefinición explícita:''' Una redefinición característica debe ser explícita.&lt;br /&gt;
 &lt;br /&gt;
* '''Subcontratación:''' Redefinición de normas que requieren nuevas afirmaciones para que sean compatibles con las heredadas. &lt;br /&gt;
&lt;br /&gt;
* '''Características diferidos y clases:'''  Es posible que una característica, y la clase que la encierra, sean  especificadas  incluso con afirmaciones  pero no se aplica.  Clases diferido también se conocen como clases abstractas. &lt;br /&gt;
&lt;br /&gt;
* '''Polimorfismo:''' Una entidad puede llegar a ser apegado a los objetos de diferentes tipos. &lt;br /&gt;
&lt;br /&gt;
* '''Enlace dinámico:''' Llamar a una función en un objeto siempre activa la versión de la característica específicamente adaptados a ese objeto, incluso en la presencia del polimorfismo y la redefinición. &lt;br /&gt;
&lt;br /&gt;
* '''Tipos estáticos:''' Un compilador puede comprobar estadísticamente que todas las combinaciones de tipo serán válidas, por lo que ninguna situación en tiempo de ejecución tendrá lugar en el que uno se intentará aplicar una función a un objeto inexistente. &lt;br /&gt;
&lt;br /&gt;
* '''Intento de sesión (&amp;quot;estrechamiento de tipo&amp;quot;):''' Es posible comprobar en tiempo de ejecución si el tipo de un objeto se ajusta a una cierta expectativa, por ejemplo, si el objeto viene de una base de datos o una red. &lt;br /&gt;
&lt;br /&gt;
*'''La herencia múltiple:''' Una clase puede heredar de cualquier número de otros. &lt;br /&gt;
&lt;br /&gt;
* '''Función de cambio de nombre:''' Para eliminar conflictos de nombres en la herencia múltiple, o de dar nombres a nivel local mejor, una clase puede darle un nuevo nombre a un rasgo heredado. &lt;br /&gt;
&lt;br /&gt;
* '''Herencia repetida:''' el intercambio y la replicación:  Como resultado de la herencia múltiple, una clase hereda de otra a través de dos o más rutas, el autor de clase puede especificar, para cada función en repetidas ocasiones hereditaria, que produce o bien una característica (compartir) o dos (replicación). &lt;br /&gt;
&lt;br /&gt;
* '''No hay ambigüedad en la herencia repetida:''' Redefiniciones en conflicto con la herencia repetida se resuelven a través de una &amp;quot;selección&amp;quot; de  mecanismo. &lt;br /&gt;
&lt;br /&gt;
* '''Restricciones de genericidad:''' Una clase puede ser parametrizada, o genérica, para describir contenedores de objetos de un tipo arbitrario. &lt;br /&gt;
&lt;br /&gt;
* '''Genericidad restringida:''' Una clase genérica se puede afirmar, con una limitación genérica, para indicar que los tipos correspondientes deben cumplir algunas propiedades, como la presencia de una operación en particular. &lt;br /&gt;
&lt;br /&gt;
* '''Recolección de basura:''' El modelo dinámico está diseñado para que la recuperación de la memoria, en un ambiente de apoyo, pueda ser automática, en lugar de controlarla. &lt;br /&gt;
&lt;br /&gt;
*'''Sin fugas la estructura modular:''' Todo el [[software]] se construye fuera de clases, con sólo dos entre las relaciones de clase, el cliente y la herencia. &lt;br /&gt;
&lt;br /&gt;
* '''Las rutinas de una vez:''' Un elemento puede ser declarada &amp;quot;una vez&amp;quot;, por lo que sólo se ejecuta para su primera convocatoria, posteriormente, vuelve  siempre al mismo resultado (si es necesario). Esto sirve como un mecanismo de inicialización conveniente, y de los objetos compartidos.&lt;br /&gt;
&lt;br /&gt;
*'''Biblioteca estandarizada:''' La biblioteca del núcleo, ofrece abstracciones esenciales, está estandarizada a través de las implementaciones. &lt;br /&gt;
&lt;br /&gt;
* '''Otras bibliotecas:''' Eiffel  se basa principalmente en las bibliotecas de alta calidad que cubre muchas necesidades comunes de desarrollo de [[software]], a partir de algoritmos y estructuras de datos generales para la creación de redes y bases de datos. &lt;br /&gt;
&lt;br /&gt;
==Facilidades==&lt;br /&gt;
* No hay variables globales, lo que podría romper la modularidad de los sistemas y obstaculizar la extensibilidad, reutilización y la fiabilidad. &lt;br /&gt;
&lt;br /&gt;
* No hay tipos de unión (o tipo de registro con variantes), que obligan a la enumeración explícita de todas las variantes, en cambio, la herencia es un mecanismo abierto que permite la adición de variantes, en cualquier momento sin cambiar el código existente.&lt;br /&gt;
 &lt;br /&gt;
* No hay sobrecarga en las clases, que al asignar el mismo nombre a las diferentes características dentro de un contexto único, causa confusiones, errores y conflictos con los mecanismos orientados a objetos, como el enlace dinámico. &lt;br /&gt;
&lt;br /&gt;
* No hay instrucciones go to o estructuras similares de control (descanso, la salida, la salida de varios bucles) que rompen la sencillez del flujo de control y hacen más difícil o imposible de razonar acerca de la aplicación (en particular a través de los invariantes de bucle y variantes). &lt;br /&gt;
&lt;br /&gt;
* No hay efectos secundarios operadores de expresiones confusas, cálculo y modificación. &lt;br /&gt;
&lt;br /&gt;
* No hay indicadores de bajo nivel, no aritmética de punteros.&lt;br /&gt;
&lt;br /&gt;
==Proceso de Software ==&lt;br /&gt;
Eiffel apoya el ciclo de vida. La visión subyacente del ciclo de vida de desarrollo del sistema es radicalmente diferente, no sólo desde el tradicional modelo en cascada (lo que implica una secuencia de pasos discretos, como el análisis, el diseño global, diseño detallado, implementación, separados por grandes cambios de método y notación, pero también de sus variantes más recientes, como el modelo en espiral o prototipado rápido.&lt;br /&gt;
&lt;br /&gt;
==Fuente==&lt;br /&gt;
* Artículo [http://www.monografias.com/trabajos14/progorie/progorie.shtml Programación Orientada a Objetos]. Disponible en: “monografias.com”. Consultado el 1 de diciembre del 2011&lt;br /&gt;
&lt;br /&gt;
* [http://eiffel.com/ Sitio Web oficial de Eiffel (inglés)]. Disponible en: “eiffel.com”. Consultado el 1 de diciembre del 2011&lt;br /&gt;
&lt;br /&gt;
* Artículo (inglés) [http://www.eiffel-nice.org/ Eiffel en el Mundo].  Disponible en: “eiffel-nice.org”. Consultado el 1 de diciembre del 2011&lt;br /&gt;
&lt;br /&gt;
[[Category:Lenguajes_de_programación_orientada_a_objetos]][[Category:Herramientas_de_programación]][[Category:Informática]]&lt;/div&gt;</summary>
		<author><name>Jessica0302ad jc.hlg</name></author>
		
	</entry>
</feed>