SlideShare una empresa de Scribd logo
1 de 21
LA INGENIERIA Y PATRONES DE DISEÑO
DISEÑO
Es el lugar donde las reglas de la creatividad (requerimientos de los
participantes, necesidades del negocio y consideraciones técnicas) se unen para
formular un sistema.

El diseño crea un modelo de software que proporciona detalles sobre la
arquitectura del software, estructuras de datos, interfaces y componentes que
se necesitan para implementar el sistema.
El diseño es importante porque permite
modelar el sistema que se va a construir.
Este modelo se evalúa respecto a la calidad y
su mejora antes de generar código, después se
efectúan pruebas y se involucra a los usuarios
finales.
LA INGENIERIA Y PATRONES DE DISEÑO
DISEÑO
LA INGENIERIA Y PATRONES DE DISEÑO
DISEÑO
El diseño de software comienza luego de que se ha analizado y modelado los
requerimientos. El modelo de requerimientos proporciona información necesaria
para crear los cuatro modelos de diseño necesarios para una especificación
completa.
LA INGENIERIA Y PATRONES DE DISEÑO
DISEÑO
 El diseño de datos o clases transforma los modelos de clases en diseño de
clases y estructura de datos requeridas. Parte del diseño de clase puede
realizarse junto con el diseño de la arquitectura del software.
 El diseño de la arquitectura define relaciones entre la estructura del software,
estilos y patrones de diseño que pueden usarse para lograr los requerimientos.
 El diseño de interfaz describe como el software se comunica con los sistemas y
humanos que lo usan. Implica flujo de información y comportamientos.
 El diseño en nivel de componentes transforma elementos estructurales en
descripción de componentes en cuanto a procedimientos.
La importancia del diseño de software es que introduce calidad a la ingeniería del
software.
LA INGENIERIA Y PATRONES DE DISEÑO
DISEÑO
Lineamientos para lograr un buen diseño de software
 Debe tener una arquitectura (empleo de estilos o patrones arquitectónicos)
 Debe ser modular (dividido de manera lógica en elementos o subsistemas)
 Debe contener distintas representaciones de
datos, arquitectura, interfaces
 Debe conducir a estructuras de datos
apropiadas para las clases a implementar
LA INGENIERIA Y PATRONES DE DISEÑO
DISEÑO
Lineamientos para lograr un buen diseño de software
 Debe contener
independientes

componentes

que

tengan

características

funcionales

 Debe conducir a interfaces que reduzcan la complejidad de las conexiones
entre los componentes y el ambiente externo.
 Debe obtenerse con el uso de un método
motivado por la información obtenida durante el
análisis de los requerimientos del software
 Debe representarse con una notación
comunique con eficacia su significado

que
LA INGENIERIA Y PATRONES DE DISEÑO
DISEÑO
Conceptos importantes del diseño de software
Abstracción: una abstracción de procedimientos es una secuencia de
instrucciones que tienen una función específica y limitada pero se omiten los
detalles específicos.
Patrones: Un patrón de diseño describe una estructura de diseño que resuelve un
problema particular dentro de un contexto específico. Se debe tomar en cuenta si
el patrón es aplicable al trabajo que se realiza, si puede volverse a usar y si sirve
de guía para desarrollar un patrón distinto en estructura.
División de problemas: Cualquier problema complejo
puede manejarse con más facilidad si se subdivide en
elementos que optimicen
su solución de manera
independiente.
La modularidad es el ejemplo más común.
LA INGENIERIA Y PATRONES DE DISEÑO
DISEÑO
Conceptos importantes del diseño de software
Ocultamiento de la información: implica que se define un conjunto de módulos
independientes que intercambien sólo la información necesaria para lograr la
función del software.

Independencia funcional: trabajar con
módulos independientes es más fácil porque
su función se subdivide la las interfaces se
simplifican. Son más fáciles de mantener
porque los efectos causados por la
modificación son limitados.
Refinamiento: es un proceso de elaboración,
se comienza con el enunciado de la función y
se continua dando más detalles conforme
avanza la elaboración.
LA INGENIERIA Y PATRONES DE DISEÑO
DISEÑO
Conceptos importantes del diseño de software
Rediseño: Se examina el código existente en busca de redundancias, elementos
no utilizados, algoritmos ineficientes o innecesarios, estructuras de datos mal
construidas, etc.
LA INGENIERIA Y PATRONES DE DISEÑO
Patrones
Son la base para la búsqueda de soluciones a problemas comunes en el
desarrollo de software y otros ámbitos
Ejemplo: construir una casa nieva durante todo el año, una construcción
tradicional tendría el problema de que el peso de la nieve acumulada en el
techo horizontal y paralelo al piso, sería tan grande que la derrumbaría.
Existen varias soluciones al problema, la
más optima es construir el techo de la
casa con una gran pendiente para que la
nieve caída se deslice por la misma y
termine en el piso de forma que nunca se
acumule sobre nuestro techo
LA INGENIERIA Y PATRONES DE DISEÑO
Patrones
Un patrón es una solución probada que se puede aplicar con éxito a un
determinado tipo de problemas que aparecen repetidamente en un campo.
El establecimiento de estos patrones comunes posibilita el aprovechamiento de
experiencia acumulada en el diseño de aplicaciones.

Un buen diseño no debe ser específico de una aplicación concreta, sino que debe
basarse en soluciones que han funcionado bien anteriormente.
Si nos centramos en el ámbito de diseño de bajo nivel, estamos hablando de los
patrones de diseño.
LA INGENIERIA Y PATRONES DE DISEÑO
Patrones
Características de un buen patrón:
- Resuelve un problema: los patrones capturan soluciones, no principios o
estrategias abstractas
- Es un concepto probado: Capturan soluciones, no teorías o especulaciones.
Puede cosiderarse un patrón si se ha comprobado por lo menos 3 veces.

- La solución no es obvia: Los mejores patrones generan una solución a un
problema indirectamente (enfique necesario para problemas de diseño más
dificiles)
- Describe una relación: Los patrones no describen módulos sino estructuras y
mecanismos.
- Tiene un componente humano significante: El software sirve
a las personas. Los mejores patrones aplican a la estética y a
las utilidades.
LA INGENIERIA Y PATRONES DE DISEÑO
Clases de Patrones
 Patrones generativos: Describe un contexto y un problema, pero no una solución
clara.
 Patrones de datos: describen problemas recurrentes orientados a datos y las
soluciones de modelado de datos que se pueden usar para resolverlos.
LA INGENIERIA Y PATRONES DE DISEÑO
Clases de Patrones
 Patrones arquitectónicos: describen problemas de diseño a nivel general que se
resuelven cambiando con un enfoque estructural.
 Patrones de componentes(o de diseño): enfocan problemas del desarrollo de
subsistemas y componentes
 Idiomas: describen la forma de implementar todo un algoritmo específico para
un componente de software en un lenguaje específico.

POSA: Pattern Oriented Software Architecture
LA INGENIERIA Y PATRONES DE DISEÑO
Patrones de diseño
Clasificación de los patrones de diseño según GoF: Creación, Estructurales y
Comportamiento.
• De Creación: Abstraen el proceso de creación de instancias de objetos. Ayudan a
hacer a un sistema independiente de cómo se crean, se componen y se
representan sus objetos.
• Estructurales: Tratan con la composición de clases u objetos. Se ocupan de cómo
las clases y objetos son utilizados para componer estructuras de mayor tamaño.
• De Comportamiento: Caracterizan el modo en que
las clases y objetos interactúan y se reparten la
responsabilidad. Atañen a los algoritmos y a la
asignación de responsabilidades entre objetos.
LA INGENIERIA Y PATRONES DE DISEÑO
Patrones de diseño
De acuerdo al GoF (Erich Gamma, Richard Helm, Ralph Johnson y John Vlisides) se
clasifica a 23 patrones de diseño comunes.
LA INGENIERIA Y PATRONES DE DISEÑO
Describir un patrón
Un patrón de diseño provee un esquema para refinar los subsistemas o
componentes de un sistema de software o de las relaciones entre ellos.
Describe la estructura recurrente de los componentes de comunicación, que
resuelve un problema general de diseño en un contexto particular.
El diseño basado en patrones comienza con la localización del patrón para la
aplicación que se desea construir, se busca experiencias anteriores y por último
se aplica el patrón apropiado.
Se utiliza un plantilla con la siguiente información
• Nombre del patrón: describe la esencia del patrón.
• Problema: describe el problema al que se dirige el patrón
• Motivación: proporciona un ejemplo del problema
LA INGENIERIA Y PATRONES DE DISEÑO
Describir un patrón
• Contexto: ambiente en el que reside el problema
• Fuerzas: análisis de limitaciones y restricciones
• Solución: descripción detallada de la solución propuesta para el problema
• Objetivo: describe el patrón y lo que hace
• Colaboraciones: Describe como otros patrones contribuyen a la solución
• Consecuencias: intercambios potenciales a considerarse cuando se implemente

• Implementación: identifica aspectos escenciales para la implementación
• Usos conocidos: da ejemplos de usos reales del patrón de diseño
• Patrones relacionados: referencias de patrones relacionados.
LA INGENIERIA Y PATRONES DE DISEÑO
Diseño basado en patrones
Un
diseñador
de
software
comienza con un modelo de
requerimientos que muestra una
representación
abstracta
del
problema, sin embargo hace poco
para
representar
al
diseño
explícitamente.
Se deben considera los atributos
de calidad y se debe extraer el
problema.
LA INGENIERIA Y PATRONES DE DISEÑO
Diseño basado en patrones (Tareas de diseño)
1. Examinar el modelo de requerimientos y desarrollar una jerarquía del problema
2. Determinar si se ha desarrollado un patrón confiable para el problema
3. A partir de un problema amplio determinar si para el mismo se dispone de uno
más patrones arquitectónicos
4. Estudiar los problemas a nivel de subsistema o componente. Buscar los patrones
más adecuados
5. Estudiar el contexto para garantizar que el patrón da una solución al problema

6. Refinar el diseño a medida que se obtienen los patrones, usando criterios de
calidad
LA INGENIERIA Y PATRONES DE DISEÑO
Diseño basado en patrones (Tareas de diseño)
Bases de Datos

Aplicación

Implementación

Infraestructura

Nombre patrón

Nombre patrón

Datos /
contenido
•

Problema

•

Problema

Nombre patrón
Nombre patrón

Nombre patrón

Arquitectura
•

Problema

Nombre patrón

•

Problema

Nombre patrón

Nombre patrón

Componentes

•

Problema

•

Nombre patrón

Nombre patrón

Problema

Nombre patrón

Interfaz
•

Problema

Nombre patrón

Nombre patrón

Más contenido relacionado

La actualidad más candente

Presentación Modelo de Datos
Presentación Modelo de DatosPresentación Modelo de Datos
Presentación Modelo de DatosEnrique Cabello
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezVanessa Ramirez
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2David Motta Baldarrago
 
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Dj Mada - Tres Valles, Veracruz
 
Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)Anel Sosa
 
Metodologias de diseño de bd
Metodologias de diseño de bdMetodologias de diseño de bd
Metodologias de diseño de bdArnold Ortiz
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionJosé Antonio Sandoval Acosta
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de softwareAdes27
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareRoberth Loaiza
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Julicamargo
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software Brihany Rossell
 

La actualidad más candente (20)

Presentación Modelo de Datos
Presentación Modelo de DatosPresentación Modelo de Datos
Presentación Modelo de Datos
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
UML
UMLUML
UML
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 
Paralelismo
ParalelismoParalelismo
Paralelismo
 
Metodología ICONIX
Metodología ICONIXMetodología ICONIX
Metodología ICONIX
 
Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2Modelo Del Negocio con RUP y UML Parte 2
Modelo Del Negocio con RUP y UML Parte 2
 
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
 
Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)Componentes y evolucion del modelado de negocios(investigacion)
Componentes y evolucion del modelado de negocios(investigacion)
 
Metodologias de diseño de bd
Metodologias de diseño de bdMetodologias de diseño de bd
Metodologias de diseño de bd
 
UML - Analisis de Sistemas
UML - Analisis de SistemasUML - Analisis de Sistemas
UML - Analisis de Sistemas
 
Taller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccionTaller de Base de datos - Unidad 1 SGBD introduccion
Taller de Base de datos - Unidad 1 SGBD introduccion
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de software
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
 
Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.Características, componentes y arquitectura de los dbms.
Características, componentes y arquitectura de los dbms.
 
modelos del proceso del software
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
 

Similar a 1 3 ingenieria software y patrones de diseño

12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptxGonzaloMartinezSilve
 
Comunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertidoComunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertidoJamil Cajamarca
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareJosé Antonio Sandoval Acosta
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteCAMILO
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivarrolex_ueb
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivarChino CT
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivarChino CT
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivarChino CT
 
2.4 DISEÑO BASADO EN PATRONES.pptx
2.4 DISEÑO BASADO EN PATRONES.pptx2.4 DISEÑO BASADO EN PATRONES.pptx
2.4 DISEÑO BASADO EN PATRONES.pptxGonzaloMartinezSilve
 

Similar a 1 3 ingenieria software y patrones de diseño (20)

Fundamentos
FundamentosFundamentos
Fundamentos
 
Clase ii patrones de diseño
Clase ii patrones de diseñoClase ii patrones de diseño
Clase ii patrones de diseño
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Introducción Patrones de Diseño
Introducción Patrones de DiseñoIntroducción Patrones de Diseño
Introducción Patrones de Diseño
 
chuy
chuy chuy
chuy
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx
 
Comunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertidoComunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertido
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de Coste
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivar
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivar
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivar
 
Universidad estatal de bolivar
Universidad estatal de bolivarUniversidad estatal de bolivar
Universidad estatal de bolivar
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
2.4 DISEÑO BASADO EN PATRONES.pptx
2.4 DISEÑO BASADO EN PATRONES.pptx2.4 DISEÑO BASADO EN PATRONES.pptx
2.4 DISEÑO BASADO EN PATRONES.pptx
 

Más de landeta_p

4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologiaslandeta_p
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónicolandeta_p
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónicolandeta_p
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
2 diseño de la arquitectura
2 diseño de la arquitectura2 diseño de la arquitectura
2 diseño de la arquitecturalandeta_p
 
1 4 estandares
1 4 estandares1 4 estandares
1 4 estandareslandeta_p
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccionlandeta_p
 

Más de landeta_p (10)

4 1 personalizacion de metodologias
4 1 personalizacion de metodologias4 1 personalizacion de metodologias
4 1 personalizacion de metodologias
 
3 2 bpm
3 2 bpm3 2 bpm
3 2 bpm
 
3 1 mde mda
3 1 mde mda3 1 mde mda
3 1 mde mda
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
 
2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico2 1 1_diseño arquitectónico
2 1 1_diseño arquitectónico
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
2 diseño de la arquitectura
2 diseño de la arquitectura2 diseño de la arquitectura
2 diseño de la arquitectura
 
1 4 estandares
1 4 estandares1 4 estandares
1 4 estandares
 
1_1 Introduccion
1_1 Introduccion1_1 Introduccion
1_1 Introduccion
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (19)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

1 3 ingenieria software y patrones de diseño

  • 1. LA INGENIERIA Y PATRONES DE DISEÑO DISEÑO Es el lugar donde las reglas de la creatividad (requerimientos de los participantes, necesidades del negocio y consideraciones técnicas) se unen para formular un sistema. El diseño crea un modelo de software que proporciona detalles sobre la arquitectura del software, estructuras de datos, interfaces y componentes que se necesitan para implementar el sistema. El diseño es importante porque permite modelar el sistema que se va a construir. Este modelo se evalúa respecto a la calidad y su mejora antes de generar código, después se efectúan pruebas y se involucra a los usuarios finales.
  • 2. LA INGENIERIA Y PATRONES DE DISEÑO DISEÑO
  • 3. LA INGENIERIA Y PATRONES DE DISEÑO DISEÑO El diseño de software comienza luego de que se ha analizado y modelado los requerimientos. El modelo de requerimientos proporciona información necesaria para crear los cuatro modelos de diseño necesarios para una especificación completa.
  • 4. LA INGENIERIA Y PATRONES DE DISEÑO DISEÑO  El diseño de datos o clases transforma los modelos de clases en diseño de clases y estructura de datos requeridas. Parte del diseño de clase puede realizarse junto con el diseño de la arquitectura del software.  El diseño de la arquitectura define relaciones entre la estructura del software, estilos y patrones de diseño que pueden usarse para lograr los requerimientos.  El diseño de interfaz describe como el software se comunica con los sistemas y humanos que lo usan. Implica flujo de información y comportamientos.  El diseño en nivel de componentes transforma elementos estructurales en descripción de componentes en cuanto a procedimientos. La importancia del diseño de software es que introduce calidad a la ingeniería del software.
  • 5. LA INGENIERIA Y PATRONES DE DISEÑO DISEÑO Lineamientos para lograr un buen diseño de software  Debe tener una arquitectura (empleo de estilos o patrones arquitectónicos)  Debe ser modular (dividido de manera lógica en elementos o subsistemas)  Debe contener distintas representaciones de datos, arquitectura, interfaces  Debe conducir a estructuras de datos apropiadas para las clases a implementar
  • 6. LA INGENIERIA Y PATRONES DE DISEÑO DISEÑO Lineamientos para lograr un buen diseño de software  Debe contener independientes componentes que tengan características funcionales  Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los componentes y el ambiente externo.  Debe obtenerse con el uso de un método motivado por la información obtenida durante el análisis de los requerimientos del software  Debe representarse con una notación comunique con eficacia su significado que
  • 7. LA INGENIERIA Y PATRONES DE DISEÑO DISEÑO Conceptos importantes del diseño de software Abstracción: una abstracción de procedimientos es una secuencia de instrucciones que tienen una función específica y limitada pero se omiten los detalles específicos. Patrones: Un patrón de diseño describe una estructura de diseño que resuelve un problema particular dentro de un contexto específico. Se debe tomar en cuenta si el patrón es aplicable al trabajo que se realiza, si puede volverse a usar y si sirve de guía para desarrollar un patrón distinto en estructura. División de problemas: Cualquier problema complejo puede manejarse con más facilidad si se subdivide en elementos que optimicen su solución de manera independiente. La modularidad es el ejemplo más común.
  • 8. LA INGENIERIA Y PATRONES DE DISEÑO DISEÑO Conceptos importantes del diseño de software Ocultamiento de la información: implica que se define un conjunto de módulos independientes que intercambien sólo la información necesaria para lograr la función del software. Independencia funcional: trabajar con módulos independientes es más fácil porque su función se subdivide la las interfaces se simplifican. Son más fáciles de mantener porque los efectos causados por la modificación son limitados. Refinamiento: es un proceso de elaboración, se comienza con el enunciado de la función y se continua dando más detalles conforme avanza la elaboración.
  • 9. LA INGENIERIA Y PATRONES DE DISEÑO DISEÑO Conceptos importantes del diseño de software Rediseño: Se examina el código existente en busca de redundancias, elementos no utilizados, algoritmos ineficientes o innecesarios, estructuras de datos mal construidas, etc.
  • 10. LA INGENIERIA Y PATRONES DE DISEÑO Patrones Son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos Ejemplo: construir una casa nieva durante todo el año, una construcción tradicional tendría el problema de que el peso de la nieve acumulada en el techo horizontal y paralelo al piso, sería tan grande que la derrumbaría. Existen varias soluciones al problema, la más optima es construir el techo de la casa con una gran pendiente para que la nieve caída se deslice por la misma y termine en el piso de forma que nunca se acumule sobre nuestro techo
  • 11. LA INGENIERIA Y PATRONES DE DISEÑO Patrones Un patrón es una solución probada que se puede aplicar con éxito a un determinado tipo de problemas que aparecen repetidamente en un campo. El establecimiento de estos patrones comunes posibilita el aprovechamiento de experiencia acumulada en el diseño de aplicaciones. Un buen diseño no debe ser específico de una aplicación concreta, sino que debe basarse en soluciones que han funcionado bien anteriormente. Si nos centramos en el ámbito de diseño de bajo nivel, estamos hablando de los patrones de diseño.
  • 12. LA INGENIERIA Y PATRONES DE DISEÑO Patrones Características de un buen patrón: - Resuelve un problema: los patrones capturan soluciones, no principios o estrategias abstractas - Es un concepto probado: Capturan soluciones, no teorías o especulaciones. Puede cosiderarse un patrón si se ha comprobado por lo menos 3 veces. - La solución no es obvia: Los mejores patrones generan una solución a un problema indirectamente (enfique necesario para problemas de diseño más dificiles) - Describe una relación: Los patrones no describen módulos sino estructuras y mecanismos. - Tiene un componente humano significante: El software sirve a las personas. Los mejores patrones aplican a la estética y a las utilidades.
  • 13. LA INGENIERIA Y PATRONES DE DISEÑO Clases de Patrones  Patrones generativos: Describe un contexto y un problema, pero no una solución clara.  Patrones de datos: describen problemas recurrentes orientados a datos y las soluciones de modelado de datos que se pueden usar para resolverlos.
  • 14. LA INGENIERIA Y PATRONES DE DISEÑO Clases de Patrones  Patrones arquitectónicos: describen problemas de diseño a nivel general que se resuelven cambiando con un enfoque estructural.  Patrones de componentes(o de diseño): enfocan problemas del desarrollo de subsistemas y componentes  Idiomas: describen la forma de implementar todo un algoritmo específico para un componente de software en un lenguaje específico. POSA: Pattern Oriented Software Architecture
  • 15. LA INGENIERIA Y PATRONES DE DISEÑO Patrones de diseño Clasificación de los patrones de diseño según GoF: Creación, Estructurales y Comportamiento. • De Creación: Abstraen el proceso de creación de instancias de objetos. Ayudan a hacer a un sistema independiente de cómo se crean, se componen y se representan sus objetos. • Estructurales: Tratan con la composición de clases u objetos. Se ocupan de cómo las clases y objetos son utilizados para componer estructuras de mayor tamaño. • De Comportamiento: Caracterizan el modo en que las clases y objetos interactúan y se reparten la responsabilidad. Atañen a los algoritmos y a la asignación de responsabilidades entre objetos.
  • 16. LA INGENIERIA Y PATRONES DE DISEÑO Patrones de diseño De acuerdo al GoF (Erich Gamma, Richard Helm, Ralph Johnson y John Vlisides) se clasifica a 23 patrones de diseño comunes.
  • 17. LA INGENIERIA Y PATRONES DE DISEÑO Describir un patrón Un patrón de diseño provee un esquema para refinar los subsistemas o componentes de un sistema de software o de las relaciones entre ellos. Describe la estructura recurrente de los componentes de comunicación, que resuelve un problema general de diseño en un contexto particular. El diseño basado en patrones comienza con la localización del patrón para la aplicación que se desea construir, se busca experiencias anteriores y por último se aplica el patrón apropiado. Se utiliza un plantilla con la siguiente información • Nombre del patrón: describe la esencia del patrón. • Problema: describe el problema al que se dirige el patrón • Motivación: proporciona un ejemplo del problema
  • 18. LA INGENIERIA Y PATRONES DE DISEÑO Describir un patrón • Contexto: ambiente en el que reside el problema • Fuerzas: análisis de limitaciones y restricciones • Solución: descripción detallada de la solución propuesta para el problema • Objetivo: describe el patrón y lo que hace • Colaboraciones: Describe como otros patrones contribuyen a la solución • Consecuencias: intercambios potenciales a considerarse cuando se implemente • Implementación: identifica aspectos escenciales para la implementación • Usos conocidos: da ejemplos de usos reales del patrón de diseño • Patrones relacionados: referencias de patrones relacionados.
  • 19. LA INGENIERIA Y PATRONES DE DISEÑO Diseño basado en patrones Un diseñador de software comienza con un modelo de requerimientos que muestra una representación abstracta del problema, sin embargo hace poco para representar al diseño explícitamente. Se deben considera los atributos de calidad y se debe extraer el problema.
  • 20. LA INGENIERIA Y PATRONES DE DISEÑO Diseño basado en patrones (Tareas de diseño) 1. Examinar el modelo de requerimientos y desarrollar una jerarquía del problema 2. Determinar si se ha desarrollado un patrón confiable para el problema 3. A partir de un problema amplio determinar si para el mismo se dispone de uno más patrones arquitectónicos 4. Estudiar los problemas a nivel de subsistema o componente. Buscar los patrones más adecuados 5. Estudiar el contexto para garantizar que el patrón da una solución al problema 6. Refinar el diseño a medida que se obtienen los patrones, usando criterios de calidad
  • 21. LA INGENIERIA Y PATRONES DE DISEÑO Diseño basado en patrones (Tareas de diseño) Bases de Datos Aplicación Implementación Infraestructura Nombre patrón Nombre patrón Datos / contenido • Problema • Problema Nombre patrón Nombre patrón Nombre patrón Arquitectura • Problema Nombre patrón • Problema Nombre patrón Nombre patrón Componentes • Problema • Nombre patrón Nombre patrón Problema Nombre patrón Interfaz • Problema Nombre patrón Nombre patrón