SlideShare una empresa de Scribd logo
1 de 11
PRINCIPIOS DE PROGRAMACIÓN
Mtro. en Ingeniería de Software. Especialidaden e-commerce
Ismael Jiménez Hernández
Principios de Programación
Objetivos específicos:
Al termino de esta clase el alumno:
• Sabrá cuantos tipos de programación existeny que es cada uno ellas.
• Identificar las características de los tipos de programación.
• Conocerá los lenguajes de programación que se emplean en los distintos
tipos de programación.
Clase 2
Principios de Programación
INTRODUCCIÓN.
ProgramaciónEstructurada.
Es un paradigma de programación (método disciplinado) que consiste en
escribir programas en módulos de fácil comprensión utilizando subrutinas y
estructuras de control.
Basadaen el teoremadel programaestructurado
Propuesto por Böhm-Jacopini.
finales de los años 1970
Se basa de lo general a lo particular.
Se realiza a través de diagramas de flujo, la cuál es
representada por programas con sus entradas,
procesos y salidas.
Principios de Programación
3 Estructuras Básicas de la ProgramaciónEstructurada.
1. Estructura Secuencial (Lineal):
Donde las instrucciones de un
programase ejecutan después de
la otra, en el mismoorden en el que
aparecen en el programa.
2. Estructura Selectiva:
Plantea la selecciónentre dos
alternativas con base en el resultado
de la evaluación de una condición.
Es equivalente a la instrucción IF de
los lenguajes de programación.
3. Estructura Repetitiva(Iterativa):
Corresponde a la ejecución repetida de una instrucción mientras se cumpla
una determinadacondición.
Principios de Programación
Programación Orientada a Eventos.
Es el paradigma de programación en el que la estructura y ejecución del
programa dependen de los sucesos (eventos) que ocurran en el sistema o que
ellos mismos provoquen.
En este estilo de programación los programadores definen los eventos a los
cuales el programa reaccionara y las acciones que seguirán al presentarse cada
uno, esto se conoce como manejador de eventos.
• Programación orientada a eventos permite interactuar con el usuario en
cualquier momento de la ejecución.
Principios de Programación
Características de la Programacióndirigidapor Eventos
• Es la base de lo que llamamos interfaz de usuario (GUI), aunque puede
emplearse para desarrollar interfaces entre componentes de Software
como módulos del núcleo también.
• Permite interactuar con el usuario en cualquier momentode la ejecución.
• El flujo de ejecución del software escapa al control del programador.
• Uno de los periféricos que ha cobrado mayor importancia tras la
aparición de los programas orientados a eventos ha sido el ratón, gracias
también en parte a la aparición de los sistemas operativos modernos con
sus interfaces gráficas.
Principios de Programación
Programación Orientada a Objetos (OOP).
Es un paradigma de programación que consiste en desarrollar aplicaciones
basadas en objetos, con técnicas de herencia, polimorfismo, abstracción,
modularidad, principio de ocultación, encapsulamiento y recolección de
basura.
Este estilo de programación tiene sus orígenes en Simula67, lenguaje creado
por el Noruego Ole-Johan Dahl y KristenNygaard.
principios de los años 1990
• En la programación estructurada solo se escriben funciones que procesan
datos.
• Los programadores que emplean POO, en cambio, primero definen objetos
para luego enviarles mensajes solicitándoles que realicen sus métodos por
sí mismos.
“Lo que caracteriza a la POO es que intenta llevar al mundo del código lo
mismoque encontramos en El Mundo Real”.
Principios de Programación
Características de la OOP.
• Abstracción: Consiste en separar una entidad (elemento) de su contexto de
realidad y representarlo mediante un objeto.
• Encapsulamiento: Es el empaquetamiento de las variables de un objeto con la
protección de sus métodos .
• Modularidad: Es una propiedad que permite dividir una aplicación en partes
más pequeñas llamadas módulos.
• Principio de Ocultación: Es un método que permite la protección de los objetos
contra la modificación, por quien no tenga privilegios de accesar a ellos.
• Polimorfismo (sobrecarga de parámetros): Capacidad de los objetos de una
clase de responder al mismo mensaje o evento en función de los parámetros
utilizados durante su invocación.
• Herencia: Es un mecanismo donde una clase se deriva a partir de otra de
manera que pueda extender su funcionalidad, logrando con ello la reutilización
y la extensibilidad. Los objetos heredan las propiedades y el comportamiento
de todas las clases a las que pertenecen.
• Recolección de Basura: Llamado también garbage collector, es una técnica que
permite desvincular la memoria asociada a los objetos que se hallan quedado
en ejecución infinita. El programador no debe preocuparse por la asignación o
liberación de memoria.
Principios de Programación
Programación Orientada a Aspectos (POA).
Es un paradigma de programación relativamente reciente cuyo objetivo es
complementar ciertos aspectos de la POO que esta no puede cumplir.
El principal objetivo de la POA es la separación de las:
• Funcionalidades comunes a lo largo de la aplicación.
• Funcionalidades propias de cada modulo.
Programación orientada a aspectos, permite encapsular las diferentes
funcionalidades de una aplicación en entidades bien definidas, eliminado
las dependencias entre cada uno de los módulos para que así sean
fácilmente reutilizables.
Principios de Programación
Cuando una funcionalidad no puede ser encapsulada (logging, el
tratamiento de transacciones, tratamiento de excepciones…) en una
determinada clase sino que es compartida por varias características de la
aplicación.
En estos casos es necesario incrustar código de las partes de logging y del
manejo de transacciones por ejemplo dentro de nuestras clases de acceso a
datos, con el inconviente que se crea un acoplamiento entre los distintos
módulos de nuestra aplicación y que la modificación en alguno de ellos
normalmente repercute en los otros. Aquí es donde interviene la
programación orientada a aspectos para tratar de desacoplar y independizar
los distintos módulos de nuestra aplicación.
Principios de Programación
Características de la ProgramaciónOrientada a Aspectos.
Provee un mecanismo para separar casa uno de los módulos de nuestra
aplicación y poder hacer llamadas entre ellos de una manera mas limpia.
• Evita que se duplique código, por ejemplo para hacer una auditoria cada
vez que se modifique una de las propiedades de nuestras clases, habría
que duplicar la llamada a nuestra clase de auditoria en cada una de ellas.
• Mejora el testeo de nuestras aplicaciones pudiendo testear aspectos de
nuestra aplicación de manera mas independiente pudiendo diferenciar
mas rápidamente cual de los aspectos implicados en un modulo es el que
falla.
• El mantenimiento del código se vuelve mas flexible, ya que se en lugar de
mostrar una ventana cada vez que salte una excepción simplemente
queremos que lo indique es un fichero habría que cambiar esto en muchas
partes de la aplicación.

Más contenido relacionado

La actualidad más candente

Técnica en informatica
Técnica en informaticaTécnica en informatica
Técnica en informaticamirocukasta
 
Mi lenguaje de programacion
Mi lenguaje de programacionMi lenguaje de programacion
Mi lenguaje de programacionj_carmo
 
Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Walter Javier Franck
 
Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Sandy Montoya Reyes
 
Libro tecnica de programacion
Libro tecnica de programacionLibro tecnica de programacion
Libro tecnica de programacionMarialix Quintero
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacionWil Mer
 
Paradigma de poo
Paradigma de pooParadigma de poo
Paradigma de poopixeleante
 
Tabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetosTabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetosFrancisco Javier Canizales Vazquez
 
Programación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objetoProgramación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objetoGermán Robles Tandazo
 
Tabla comparativa de paradigma de la poo y programacion estructurada
Tabla comparativa de paradigma de la poo y programacion estructuradaTabla comparativa de paradigma de la poo y programacion estructurada
Tabla comparativa de paradigma de la poo y programacion estructuradawouyrmz
 
Paradigmas de programaciónes
Paradigmas de programaciónesParadigmas de programaciónes
Paradigmas de programaciónes481200619
 
Desarrollo de Software Orientado a Aspectos
Desarrollo de Software Orientado a AspectosDesarrollo de Software Orientado a Aspectos
Desarrollo de Software Orientado a Aspectosmartinp
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaMichael de la Cruz
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónOver Rattlehead
 
Presentación2
Presentación2Presentación2
Presentación2klaocvds
 
PARADIGMA FUNCIONAL
PARADIGMA FUNCIONALPARADIGMA FUNCIONAL
PARADIGMA FUNCIONALFredy Olaya
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programaciónMaría Alvarez
 
Programacion Orientada Objetos
Programacion Orientada ObjetosProgramacion Orientada Objetos
Programacion Orientada Objetosliliandrade
 

La actualidad más candente (20)

Programación modular
Programación modularProgramación modular
Programación modular
 
Técnica en informatica
Técnica en informaticaTécnica en informatica
Técnica en informatica
 
Mi lenguaje de programacion
Mi lenguaje de programacionMi lenguaje de programacion
Mi lenguaje de programacion
 
Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)Programación Orientada a Aspectos (POA)
Programación Orientada a Aspectos (POA)
 
Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.Tabla comparativa de programacion orientada , objetos y estructurada.
Tabla comparativa de programacion orientada , objetos y estructurada.
 
Libro tecnica de programacion
Libro tecnica de programacionLibro tecnica de programacion
Libro tecnica de programacion
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
Paradigma de poo
Paradigma de pooParadigma de poo
Paradigma de poo
 
Tabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetosTabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetos
 
Programación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objetoProgramación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objeto
 
Tabla comparativa de paradigma de la poo y programacion estructurada
Tabla comparativa de paradigma de la poo y programacion estructuradaTabla comparativa de paradigma de la poo y programacion estructurada
Tabla comparativa de paradigma de la poo y programacion estructurada
 
Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativa
 
Paradigmas de programaciónes
Paradigmas de programaciónesParadigmas de programaciónes
Paradigmas de programaciónes
 
Desarrollo de Software Orientado a Aspectos
Desarrollo de Software Orientado a AspectosDesarrollo de Software Orientado a Aspectos
Desarrollo de Software Orientado a Aspectos
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación Estructurada
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Presentación2
Presentación2Presentación2
Presentación2
 
PARADIGMA FUNCIONAL
PARADIGMA FUNCIONALPARADIGMA FUNCIONAL
PARADIGMA FUNCIONAL
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
 
Programacion Orientada Objetos
Programacion Orientada ObjetosProgramacion Orientada Objetos
Programacion Orientada Objetos
 

Destacado

Modelo de prototipos
Modelo de prototiposModelo de prototipos
Modelo de prototiposerickandres29
 
Modelo incremental del desarrollo de un sistema de informacion
Modelo incremental del desarrollo de un sistema de informacionModelo incremental del desarrollo de un sistema de informacion
Modelo incremental del desarrollo de un sistema de informacionrebecagutierrezgros94
 
Tema5 principiosdeldisenodelsoftware-1pp
Tema5 principiosdeldisenodelsoftware-1ppTema5 principiosdeldisenodelsoftware-1pp
Tema5 principiosdeldisenodelsoftware-1ppSam Meci
 
Principios Ingenieria
Principios IngenieriaPrincipios Ingenieria
Principios Ingenieriatoryneutral
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipoyanezcabrera
 
Modelo Cascada y Espiral
Modelo Cascada y EspiralModelo Cascada y Espiral
Modelo Cascada y Espiraljuanksi28
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de softwarekellypt1
 

Destacado (13)

Orientacion A Objetos
Orientacion A ObjetosOrientacion A Objetos
Orientacion A Objetos
 
Modelo de prototipos
Modelo de prototiposModelo de prototipos
Modelo de prototipos
 
Capas de la ingenieria de software
Capas de la ingenieria de softwareCapas de la ingenieria de software
Capas de la ingenieria de software
 
Modelo incremental del desarrollo de un sistema de informacion
Modelo incremental del desarrollo de un sistema de informacionModelo incremental del desarrollo de un sistema de informacion
Modelo incremental del desarrollo de un sistema de informacion
 
Modelos
ModelosModelos
Modelos
 
Tema5 principiosdeldisenodelsoftware-1pp
Tema5 principiosdeldisenodelsoftware-1ppTema5 principiosdeldisenodelsoftware-1pp
Tema5 principiosdeldisenodelsoftware-1pp
 
Principios Ingenieria
Principios IngenieriaPrincipios Ingenieria
Principios Ingenieria
 
Modelo V
Modelo VModelo V
Modelo V
 
Modelo en-espiral
Modelo en-espiralModelo en-espiral
Modelo en-espiral
 
Modelo incremental
Modelo incrementalModelo incremental
Modelo incremental
 
Modelo de prototipo
Modelo de prototipoModelo de prototipo
Modelo de prototipo
 
Modelo Cascada y Espiral
Modelo Cascada y EspiralModelo Cascada y Espiral
Modelo Cascada y Espiral
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 

Similar a Clase 2

Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programaciónMay Ibarra
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacionyamy matin
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradawinny_arias
 
Programacin estructurada
Programacin estructuradaProgramacin estructurada
Programacin estructuradaKurt_williams
 
Programación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David BurbanoProgramación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David Burbano2008PA2Info3
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modularguestb97266b9
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a javawaldinelly
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadYenny Salazar
 
POOI- Unidad 1.pdf
POOI- Unidad 1.pdfPOOI- Unidad 1.pdf
POOI- Unidad 1.pdfWillGuzman3
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfEDWINERNESTOMADRIDME
 
Programación
ProgramaciónProgramación
ProgramaciónTensor
 
Fundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a ObjetosFundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a Objetosforwer1223
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Herrera poveda quilachamin_paper
Herrera poveda quilachamin_paperHerrera poveda quilachamin_paper
Herrera poveda quilachamin_paperDarwin Marcelo
 
Introobjetos
IntroobjetosIntroobjetos
Introobjetosayreonmx
 

Similar a Clase 2 (20)

Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programacin estructurada
Programacin estructuradaProgramacin estructurada
Programacin estructurada
 
Programación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David BurbanoProgramación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David Burbano
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Programacion Modular
Programacion ModularProgramacion Modular
Programacion Modular
 
Glosario de terminos
Glosario de terminosGlosario de terminos
Glosario de terminos
 
Paradigmas de Programación
Paradigmas de ProgramaciónParadigmas de Programación
Paradigmas de Programación
 
Introducción a java
Introducción a javaIntroducción a java
Introducción a java
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de Calidad
 
POOI- Unidad 1.pdf
POOI- Unidad 1.pdfPOOI- Unidad 1.pdf
POOI- Unidad 1.pdf
 
Unidad 1 clase 5 - fp
Unidad 1   clase 5 - fpUnidad 1   clase 5 - fp
Unidad 1 clase 5 - fp
 
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdfUnidad III-Programación Modular-introducción al lenguaje programable.pdf
Unidad III-Programación Modular-introducción al lenguaje programable.pdf
 
Programación
ProgramaciónProgramación
Programación
 
Fundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a ObjetosFundamentos de Diseño Orientado a Objetos
Fundamentos de Diseño Orientado a Objetos
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Herrera poveda quilachamin_paper
Herrera poveda quilachamin_paperHerrera poveda quilachamin_paper
Herrera poveda quilachamin_paper
 
Introobjetos
IntroobjetosIntroobjetos
Introobjetos
 

Clase 2

  • 1. PRINCIPIOS DE PROGRAMACIÓN Mtro. en Ingeniería de Software. Especialidaden e-commerce Ismael Jiménez Hernández
  • 2. Principios de Programación Objetivos específicos: Al termino de esta clase el alumno: • Sabrá cuantos tipos de programación existeny que es cada uno ellas. • Identificar las características de los tipos de programación. • Conocerá los lenguajes de programación que se emplean en los distintos tipos de programación. Clase 2
  • 3. Principios de Programación INTRODUCCIÓN. ProgramaciónEstructurada. Es un paradigma de programación (método disciplinado) que consiste en escribir programas en módulos de fácil comprensión utilizando subrutinas y estructuras de control. Basadaen el teoremadel programaestructurado Propuesto por Böhm-Jacopini. finales de los años 1970 Se basa de lo general a lo particular. Se realiza a través de diagramas de flujo, la cuál es representada por programas con sus entradas, procesos y salidas.
  • 4. Principios de Programación 3 Estructuras Básicas de la ProgramaciónEstructurada. 1. Estructura Secuencial (Lineal): Donde las instrucciones de un programase ejecutan después de la otra, en el mismoorden en el que aparecen en el programa. 2. Estructura Selectiva: Plantea la selecciónentre dos alternativas con base en el resultado de la evaluación de una condición. Es equivalente a la instrucción IF de los lenguajes de programación. 3. Estructura Repetitiva(Iterativa): Corresponde a la ejecución repetida de una instrucción mientras se cumpla una determinadacondición.
  • 5. Principios de Programación Programación Orientada a Eventos. Es el paradigma de programación en el que la estructura y ejecución del programa dependen de los sucesos (eventos) que ocurran en el sistema o que ellos mismos provoquen. En este estilo de programación los programadores definen los eventos a los cuales el programa reaccionara y las acciones que seguirán al presentarse cada uno, esto se conoce como manejador de eventos. • Programación orientada a eventos permite interactuar con el usuario en cualquier momento de la ejecución.
  • 6. Principios de Programación Características de la Programacióndirigidapor Eventos • Es la base de lo que llamamos interfaz de usuario (GUI), aunque puede emplearse para desarrollar interfaces entre componentes de Software como módulos del núcleo también. • Permite interactuar con el usuario en cualquier momentode la ejecución. • El flujo de ejecución del software escapa al control del programador. • Uno de los periféricos que ha cobrado mayor importancia tras la aparición de los programas orientados a eventos ha sido el ratón, gracias también en parte a la aparición de los sistemas operativos modernos con sus interfaces gráficas.
  • 7. Principios de Programación Programación Orientada a Objetos (OOP). Es un paradigma de programación que consiste en desarrollar aplicaciones basadas en objetos, con técnicas de herencia, polimorfismo, abstracción, modularidad, principio de ocultación, encapsulamiento y recolección de basura. Este estilo de programación tiene sus orígenes en Simula67, lenguaje creado por el Noruego Ole-Johan Dahl y KristenNygaard. principios de los años 1990 • En la programación estructurada solo se escriben funciones que procesan datos. • Los programadores que emplean POO, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos. “Lo que caracteriza a la POO es que intenta llevar al mundo del código lo mismoque encontramos en El Mundo Real”.
  • 8. Principios de Programación Características de la OOP. • Abstracción: Consiste en separar una entidad (elemento) de su contexto de realidad y representarlo mediante un objeto. • Encapsulamiento: Es el empaquetamiento de las variables de un objeto con la protección de sus métodos . • Modularidad: Es una propiedad que permite dividir una aplicación en partes más pequeñas llamadas módulos. • Principio de Ocultación: Es un método que permite la protección de los objetos contra la modificación, por quien no tenga privilegios de accesar a ellos. • Polimorfismo (sobrecarga de parámetros): Capacidad de los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. • Herencia: Es un mecanismo donde una clase se deriva a partir de otra de manera que pueda extender su funcionalidad, logrando con ello la reutilización y la extensibilidad. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. • Recolección de Basura: Llamado también garbage collector, es una técnica que permite desvincular la memoria asociada a los objetos que se hallan quedado en ejecución infinita. El programador no debe preocuparse por la asignación o liberación de memoria.
  • 9. Principios de Programación Programación Orientada a Aspectos (POA). Es un paradigma de programación relativamente reciente cuyo objetivo es complementar ciertos aspectos de la POO que esta no puede cumplir. El principal objetivo de la POA es la separación de las: • Funcionalidades comunes a lo largo de la aplicación. • Funcionalidades propias de cada modulo. Programación orientada a aspectos, permite encapsular las diferentes funcionalidades de una aplicación en entidades bien definidas, eliminado las dependencias entre cada uno de los módulos para que así sean fácilmente reutilizables.
  • 10. Principios de Programación Cuando una funcionalidad no puede ser encapsulada (logging, el tratamiento de transacciones, tratamiento de excepciones…) en una determinada clase sino que es compartida por varias características de la aplicación. En estos casos es necesario incrustar código de las partes de logging y del manejo de transacciones por ejemplo dentro de nuestras clases de acceso a datos, con el inconviente que se crea un acoplamiento entre los distintos módulos de nuestra aplicación y que la modificación en alguno de ellos normalmente repercute en los otros. Aquí es donde interviene la programación orientada a aspectos para tratar de desacoplar y independizar los distintos módulos de nuestra aplicación.
  • 11. Principios de Programación Características de la ProgramaciónOrientada a Aspectos. Provee un mecanismo para separar casa uno de los módulos de nuestra aplicación y poder hacer llamadas entre ellos de una manera mas limpia. • Evita que se duplique código, por ejemplo para hacer una auditoria cada vez que se modifique una de las propiedades de nuestras clases, habría que duplicar la llamada a nuestra clase de auditoria en cada una de ellas. • Mejora el testeo de nuestras aplicaciones pudiendo testear aspectos de nuestra aplicación de manera mas independiente pudiendo diferenciar mas rápidamente cual de los aspectos implicados en un modulo es el que falla. • El mantenimiento del código se vuelve mas flexible, ya que se en lugar de mostrar una ventana cada vez que salte una excepción simplemente queremos que lo indique es un fichero habría que cambiar esto en muchas partes de la aplicación.