I.Estudios

Artículo 8:

"Programación por Chequeo"

AUTORES: Ingeniero Juan Luís Paz e Ingeniero William Torrealba

RESUMEN:

La programación orientada a objetos (POO) ha supuesto un avance importante en la ingeniería del software pero a medida que los sistemas se han hecho aun más complejos se ha identificado la necesidad realizar una separación de competencias (es decir, extraer de los métodos toda competencia que no les sea inherente), muy en especial las competencias de control de errores. La programación orientada a aspectos (POA) trata de conseguir esto pero es excesivamente compleja.

A este problema es al que se le busca dar solución, definiendo un enfoque de programación alternativo basado en la POO que permita la separación del control de errores y de la funcionalidad básica de los métodos al que se le a denominado “Programación por Chequeo”; para dar soporte a las construcciones del nuevo enfoque se define una extensión al lenguaje de programación C#, una posible forma de implementarlas en C# estándar y se realiza la implementación parcial de un compilador que acepta estas nuevas construcciones.

Debido a la naturaleza y objetivos de este trabajo, este se define como un proyecto de I+D (investigación y desarrollo) en los que se requiere utilizar metodologías iterativas e incrementales. El desarrollo se dividió en dos grandes etapas: definición del nuevo enfoque e implementación de las nuevas construcciones; en la primera se emplea una adaptación al modelo en espiral y en la segunda prototipado evolutivo.

Como resultado se ha añadido doce nuevas palabras reservadas y tres nuevas palabras contextuales al lenguaje de programación C# que dan soporte al nuevo enfoque, en contraste a las más de 30 palabras que añade el lenguaje de aspecto AspectJ a su lenguaje base; también se ha mostrado en un caso de estudio que de haber realizado la separación de competencias se habría ahorrado al menos el 18,25 % del código del sistema (en algunas partes de este el ahorro alcanza el 36,19 % del código).

 

SUMMARY:

The object-oriented programming (OOP) was a major breakthrough in software engineering, however, as systems have become even more complex, the need make a separation of concerns has become apparent, especially those concerns involved with error control. The aspect-oriented programming (AOP) tries to figured out this but is too complicated.

The purpose here was to investigate solutions to this concern, by defining a programming alternative approach based on the OOP that separates error control and the basic functionality, called "Programación por Chequeo". This was to be achieved by defining an extension to the programming language C#, a possible way to implement them in C# standard, and a partial implementation of a compiler that accepts these new definitions.

Due to the nature and objectives of this work, this project was defined as research and development that required using iterative and incremental methodologies. The development was divided into two phases: definition of the new approach, and implementation of the new design. A spiral model of adaptation was used in the first phase and evolutionary prototyping in the second.

The results propose that twelve new reserved words and three new contextual words be added to the programming language C# that support this new approach, rather that the more than 30 words that adds aspect-oriented language AspectJ to their base language.  A case study has shown that when error control is separated using this approach, code reductions of least 18.25% (and up to 36.19% in some parts) can be achieved.

 

nejo Ga pЄen motores.

 

Una de las principales ventajas ofrecidas por este enfoque es una rápida y confiable estimación de la eficiencia de motores, disponible para los analistas con poca información recolectada. Y mas importante aún, los resultados están en concordancia con los estándares americanos.

Adicionalmente, presentamos en nuestros resultados el uso de una técnica de extrapolación para la eficiencia en superficies tridimensionales para mostrar y justificar las mejores condiciones de trabajo.

Finalmente, presentamos brevemente, para el reemplazo de motores, los fundamentos y un ejemplo de análisis de energía, basado en los costos que se reducen debido a la diferencia en los niveles de eficiencia del motor dado su diseño.