Ingeniería en Desarrollo de Software Diseño y Arquitectura de Software 4to Semestre Alumno: Daniel Pineda de la Riva Matricula: es162006588 Docente: Mtra. Lluvia Lorena Salas Téllez Unidad 2 Actividad 1: Estilos y patrones aplicables a la arquitectura de software.
Estilo arquitectónico asignado
Arquitectura orientada a objetos
Características - Los objetos ocultan los detalles internos de su aplicación, la funcionalidad es expuesta únicamente a través de métodos, lo cual facilita la actualización de objetos. -Se aplica el concepto de herencia para adquirir propiedades de otros objetos utilizando su funcionalidad adaptándola en ocasiones para definir un nuevo comportamiento. -Los objetos pueden llegar a componerse de otros objetos y ocultan las propiedades internas de otras clases o se exponen únicamente como interfaces. -Se aplica la reutilización mediante las características propias de la programación orientada a objetos: encapsulación, polimorfismo y herencia. -Describe cada uno de los objetos que contienen las propiedades y los métodos adecuados para procesar la información conforme a un requerimiento específico. -El acceso a un
determinado objeto se logra mediante operaciones conocidas como métodos.
Ámbito de aplicación -Bases de datos orientadas a objetos: es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: encapsulamiento herencia y polimorfismo. - Modelamiento y simulación de agentes: os agentes son modelados como objetos. Es decir, estos van a tener asociados unos atributos, un comportamiento, unas reglas para modificar su comportamiento y también van a poder interactuar con otros agentes. -Diseño de interfaz de usuario: Cada elemento dentro de una interfaz de usuario se puede considerar como un objeto, por ejemplo: un botón, el campo de texto, el área de texto, una etiqueta puesto que tienen atributos y funciones particulares para cada uno. Serialización: La serialización consiste en un proceso de codificación de
Importancia
Principios
Ventajas
Desventajas
-Un objeto es responsable de preservar la integridad de su representación (usualmente manteniendo algún invariante).
-Principio de abierto cerrado: Un módulo debe ser abierto para extensión pero cerrado para modificación.
-Reusabilidad mediante el polimorfismo y la abstracción que permite cambiar la implementación y, a su vez, la funcionalidad del objeto de una manera transparente al usuario.
-La aplicación es distribuida sobre una red heterogénea, el uso en aplicaciones distribuidas requiere acceso remoto a los objetos.
-Abstracción: ocultamiento de los detalles de implementación, que a su vez, permite realizar las pruebas necesarias de una forma más sencilla.
-Es necesario implementar una fuerte dependencia entre los componentes del sistema.
-La representación se oculta a otros objetos.
Debemos ser capaz de modificar los módulos sin modificar la fuente de código de dicho modulo. La abstracción es la clave para el OCP. - Principio de sustitución de Liskov o LSP: según el cual las clases se deben diseñar de forma que cualquier clase derivada sea aceptable donde lo sea su superclase. - Principio de inversión de dependencias: Es decir el uso de clases abstractas o interfaces para que las clases clientes que utilicen estas abstracciones no conozcan nada de las implementacion es que se harían en las clases que extienden de las abstractas o implementan las interfaces. - Principio de segregación de
-Al ser los objetos una representación del mundo real es mas comprensible su implementación.
-Se requiere un alto rendimiento, existe una relativa ineficiencia en aplicaciones de este tipo.
un objeto en un medio de almacenamiento con el fin de transmitirlo a través de un canal de comunicación o una conexión en red como una serie de bytes o en un formato más legible (XML, JSON).
interfase: Los clientes de una clase no deberían depender de interfaces que no utilizan.
REFERENCIAS: Fernando Alonso Amo. (2005). Introducción a la Ingeniería de Software. España: Delta María Isabel Alfonso Galipienso. (2005). Ingeniería del software. Madrid: Pearson. Guillermo Pantaleo. (2016). Ingeniería de Software. Argentina: Alfaomega.