fisica

8
“Diversificación Productiva y Fortalecimiento de Educación” Informe N°0 1 – E. P. de Ingeniería de Sistema - FIMEES - UNA PUNO DE: Marón Puma , Jhon Ever PARA: Ing.: YALMAR TEMISTOCLES PONCE ATENCIO ASUNTO: “Patrones de DISEÑO “module CURSO: Ingeniería de software GRUPO: “B” 1

Upload: john-ever-maron-puma

Post on 04-Sep-2015

213 views

Category:

Documents


0 download

DESCRIPTION

laboratorio informe 1

TRANSCRIPT

Diversificacin Productiva y Fortalecimiento de EducacinInforme N0 1 E. P. de Ingeniera de Sistema - FIMEES - UNA PUNO

DE: Marn Puma , Jhon Ever PARA: Ing.: YALMAR TEMISTOCLES PONCE ATENCIOASUNTO: Patrones de DISEO moduleCURSO: Ingeniera de softwareGRUPO: B

Definicin:En el Proceso de Desarrollo de Software, existen varias metodologas o paradigmas, para organizar el cdigo fuente en componentes, agrupndolo y separndolo en varios componentes, en ocasiones, como clases u objetos. ElParadigma de Programacin Modulares una de esas metodologas, la cual se aplica, generalmente, junto con elParadigma de Programacin Procedural, como si fuesen una sola tcnica. Por lo tanto, a veces, se considera que no debiese ser parte de elParadigma de Programacin Orientada a Objetos.En muchos lenguages Orientados a Objetos, el concepto de "mdulo" est implementado de forma incompleta, o sin implementar. Sin embargo, el cdigo fuente Orientado a Objetos es comnmente distribuido en varios archivos, en donde hay elementos agrupados, fsicamente, como archivos, y agrupados conceptualmente comoespacios de trabajo(namespaces).Varios lenguajes de programacin soportan los espacios de trabajo, agrupando lgicamente clases, por medio de un identificador, como Java y C++.CaracteristicasPara poder considerar un objetoSingleton, o cualquier agrupamiento de cdigo relacionado, que est implementando este patrn de diseo, las siguientes caractersticas deben estar presentes, en dicho cdigo fuente: Cuando sea implementado por una clase u objeto, solo podr existir una nica instancia en todo el programa. El cdigo deber tener acceso pblico, y como propsito, deber ser considerado para acceso pblico, no como un objeto singleton regular, que en ciertas ocasiones, podra tener acceso privado o acceso protegido. El cdigo deber tener acceso global, o ser miembro de una entidad con acceso global. Cuando sea implementado como Orientado a Objetos, las clases debern preferentemente ser consideradas, que no sern extendidas. Deber tener una funcin o procedimiento para inicializacin, que podra ser la misma, equivalente, o complementaria, a un mtodo constructor, de un objeto. Esta caracterstica no es soportada por espacios de trabajo regulares. Deber tener una funcin o procedimiento para finalizacin, que podra ser la misma, equivalente, o complementaria, a un mtodo destructor, de un objeto. Esta caracterstica no es soportada por espacios de trabajo regulares. Soporta y encapsula varios miembros relacionados, que tambin podran ser singletons. En caso de tener miembros, esos elementos, podran requerir su propio cdigo para inicializacin, y su propio cdigo para finalizacin, que deber ser ejecutado, por la funcin de inicializacin, y por la funcin de finalizacin, respectivamente, del mdulo principal. Varios de los elementos o miembros, sern funciones que realizan operaciones, en elementos externos a la clase u objeto, que implementa el patrn, y son proporcionados como parmetros de cada funcin. Esas funciones tienen el propsito de ser utilizadas como "utileras", "herramientas" o "bibliotecas"

Iimplementaciones del patrn de diseo mdulo en diversos lenguajes de programacinLa semntica y sintaxis de cada lenguaje de programacin, puede causar que la implementacin de este patrn varie. Cada nueva versin de cada lenguaje de programacin, soportando nuevas caractersticas, puede causar que haya varias implementaciones, para el mismo lenguaje.Los siguientes ejemplos muestran una posible implementacin de este patrn, pero, podran existir otros casos, para el mismo lenguaje, versin del lenguaje, y versin de compilador.Note, que en algunos casos, el Patrn de DiseoAdapteroWrapper, ha sido tambin aplicado, pero no es un requisito.Ejemplos de Implementaciones en Lenguajes de Programacin Orientados a ObjetosJavaAunque Java soporta el concepto deespacios de trabajo, una versin reducida delmdulo, hay algunos escenarios en donde un desarrollado de software quisiera aplicar este patrn en este lenguaje.Archivo para Definicinpackage consoles; public final class mainmodule { private static mainmodule Singleton = null; public InputStream input = null; public PrintStream output = null; public PrintStream error = null; public mainmodule() { // does nothing on purpose !!! } // ... public static mainmodule getSingleton() { if (mainmodule.Singleton == null) { mainmodule.Singleton = new Consoles.mainmodule(); } return mainmodule.Singleton; } // ... public void prepare() { //System.out.println("console::prepare();"); this.input = new InputStream(); this.output= new PrintStream(); this.error = new PrintStream(); } public void unprepare() { this.output = null; this.input = null; this.error = null; //System.out.println("console::unprepare();"); } // ... public void printNewLine() { System.out.println(""); } public void printString(String value) { System.out.print(value); } public void printInteger(Integer value) { System.out.print(value); } public void printBoolean(Boolean value) { System.out.print(value); } public void ScanNewLine() { // to-do: ... } public void ScanString(String value) { // to-do: ... } public void ScanInteger(Integer value) { // to-do: ... } public void ScanBoolean(Boolean value) { // to-do: ... } // ... }Archivo para Implementacinclass ConsoleDemo { public static Consoles.mainmodule Console = null; public static void prepare() { Console = Consoles.mainmodule.getSingleton(); Console.prepare(); } public static void unprepare() { Console.unprepare(); } public static void execute(String args[]) { Console.PrintString("Hello World"); Console.PrintNewLine(); Console.ScanNewLine(); } public static void main(String args[]) { prepare(); execute(args); unprepare(); }}Similitudes y Diferencias con Conceptos SimilaresEspacios de Trabajo versus mdulosTanto losEspacios de Trabajoy losmdulos, permiten agrupar entidades relacionadas con un identificador nico, y en algunas situaciones intercambiarse. Ambos conceptos, se utilizan globalmente. Por lo tanto, su propsito principal, es el mismo.Hay escenarios en donde unEspacio de Trabajorequiere que alguno o algunos de los elementos globales que lo componen, sean inicializados, y en ocasiones, se les aplique un proceso de finalizacin, ejecutando una funcin o mtodo.Debido a que un espacio de trabajo, solo est considerado para agrupar y contener elementos, y no realizar comportamiento alguno, el mdulo tiene adems el propsito para soportar tanto el proceso de inicializacin, como el proceso de finalizacin.Clases versus Espacios de TrabajoLasClassesson utilizadas, a veces, tambin comoEspacios de Trabajo, e incluso, combinados. En algunos lenguajes de programacin que no soportan espacios de trabajo (por ejemplo: versiones anteriores de PHP, JavaScript o C), pero s implementan clases y objetos; las clases son utilizadas por s mismas, permitiendo acceso a sus elementos, sin tener que instanciar directamente cada clase en objetos.En estas circunstancias, las clases estn tomando la funcin de los espacios de trabajo y de los mdulos.A veces, para este propsito; la caracterstica o modificador de compilacinstatices aplicada a la clase misma, o alguno de los miembros de la clase.Singletons versus Espacios de TrabajoEn los lenguajes de programacin en donde los Espacios de Trabajo no estn soportados, o estn soportados solo parcialmente; y los miembros individuales de una clase no pueden ser accesados, la solucin es generar un nico objeto de una clase especfica, aplicando el patrn de diseo singleton.Relaciones con Otros Patrones de DiseoEl Patrn de Diseo mdulo, pueder ser implementado utilizando una especializacin de el Patrn de DiseoSingleton. Sin embargo, puede combinarse con otros patrones de diseo tambin.Este patrn puede utilizarse, junto con los patronesDecorator,Flyweight, oAdapter.

Razones para considerar un "mdulo" como Patrn de Diseo, por s mismo El Patrn de Diseo mdulo puede ser considerado tanto como unPatrn Creacional, como unPatrn Estructural. Permite la creacin de otros elementos, tal y como lo hace unPatrn Creacional. Al mismo tiempo, sirve para organizar otros elementos, y agruparlos, de la misma manera que lo hace, unPatrn Estructural.Este patrn, es comnmente utilizado con el patrnAdaptador(llamado tambinEnvoltura), cuando se trata de normalizar un espacio de trabajo ya existente, aunque no es requisito necesario.Un objeto que aplica este patrn, provee la misma funcionalidad de unespacio de trabajo, pero, adicionando el proceso de inicializacin, y el proceso de finalizacin, que no est presente en el mismo.Proporciona las mismas caractersticas que ofrece una clase esttica, o una clase con miembros estticos; pero con una sintaxis y semntica ms clara, y precisa.Soporta diversos escenarios, en donde una clase u objeto, puede ser tratado como Datos Estructurados y Procedurales. Y, viceversa, migrar Datos Estructurados y Procedurales, y puedan tratarse como Datos Orientados a Objetos.

1