SlideShare una empresa de Scribd logo
9. Diseño de Software
Prof. Ramiro Estigarribia Canese
Link a la presentación
¿Qué es el diseño de SW?
➔ El diseño crea una representación del software.
➔ Proporciona detalles sobre la arquitectura, estructuras
de datos, interfaces y componentes que se necesitan
para implementar el sistema.
Comparación entre:
Edificios y Software.
★ Vitruvio (romano/arquitecto): afirmaba que los
edificios bien diseñados son aquellos que tienen resistencia,
funcionalidad y elegancia.
Lo mismo se aplica al software.
1. Resistencia: un programa no debe tener ningún error que
impida su funcionamiento.
2. Funcionalidad: un programa debe ser apropiado para los fines
que persigue.
3. Elegancia: la experiencia de usar el programa debe
ser placentera.
I.S. vs Otras Ingenierías.
➔ El diseño del software cambia conforme evolucionan los
métodos, surgen mejores técnicas y se obtiene una
comprensión más amplia.
➔ Hasta hoy: las metodologías de diseño de software carecen de
profundidad, flexibilidad y exactitud de las ingenierías clásicas.
➔ La importancia del diseño del software se
resume en una palabra: calidad.
➔ Es la única manera de traducir un producto terminado
a los requerimientos de los participantes.
➔ Sin diseño se corre el riesgo de obtener un sistema
inestable, que falle cuando se hagan cambios
pequeños.
Importancia del Diseño.
1. Funcionalidad: Se estima al evaluar el conjunto de
características y la seguridad del sistema en su totalidad.
2. Facilidad de uso: Se valora al considerar los factores humanos,
la estética, consistencia y documentación.
3. Confiabilidad: Se evalúa al medir la frecuencia de las fallas, la
precisión de los resultados, y la habilidad para recuperarse de
las fallas.
4. Desempeño: La velocidad de procesamiento, tiempo de
respuesta, rendimiento y eficacia.
5. Soportabilidad: Facilidad de mantenimiento.
Atributos de Calidad
Abstracción en Sistemas.
Existen diversos grados de abstracción.
Entre mayor es: se considera una solución general.
Entre menor es: se considera una solución específica.
➔ Abstracción procedimental: Permiten describir procesos
omitiendo detalles específicos.(ej: encender automóvil)
➔ Abstracción de datos: Describe las características de un
objeto. (automóvil, no siendo necesario describir en
detalle su especificación para reconocerlo).
¿Qué es la Arquitectura de Software?
➔ Representa la estructura general del software y la forma
como interactúan sus componentes.
➔ Una meta del diseño del software es obtener una
aproximación arquitectónica de un sistema.
➔ Permite que el ingeniero resuelva problemas comunes.
¿Qué son Patrones de Diseño?
Brad Appleton define así: “Es una mezcla con nombre
propio de puntos de vista que contienen la esencia de una
solución demostrada para un problema”.
El objetivo de cada patrón es proporcionar una descripción
que permita determinar:
1. Si es aplicable al trabajo en cuestión.
2. Si puede volverse a usar.
3. Si sirve como guía para desarrollar un patrón distinto.
División de Problemas.
➔ Es un concepto de diseño que sugiere que cualquier
problema complejo puede manejarse con más facilidad
si se subdivide en elementos susceptibles de resolverse
u optimizarse de manera independiente.
➔ Al separar un problema en sus piezas más pequeñas y
por ello más manejables, se requiere menos esfuerzo y
tiempo para resolverlo.
¿Qué es la Modularidad?
➔ Es la manifestación de la división de problemas.
➔ El software se divide en componentes con nombres
distintos y abordables por separado, que se integran para
satisfacer los requerimientos del problema.
➔ El software monolítico (un solo módulo) no es fácil de
entender para un ingeniero de software.
Relación entre:
Número de módulos y éxito.
➔ Las curvas de la figura son una guía al considerar la
modularidad.
➔ Deben hacerse módulos, pero con cuidado para permanecer
en la cercanía de M.
➔ Se debe buscar un número intermedio.
➔ Debe hacerse un diseño (y el programa resultante) con
módulos, de manera que el desarrollo pueda planearse con
más facilidad.
Relación entre:
Número de módulos y éxito.
Ocultamiento de Información.
➔ El principio del ocultamiento de información sugiere que los
módulos se “caracterizan por decisiones de diseño que se
oculten (cada una) de las demás”.
➔ En otras palabras, deben especificarse y diseñarse módulos,
de forma que la información (algoritmos y datos) contenida en
un módulo sea inaccesible para los que no necesiten de ella.
➔ La modularidad efectiva se logra definiendo módulos
independientes que intercambien sólo aquella información
necesaria para el software.
Resumen y Conclusiones.
➔ El objetivo del diseño del software es aplicar un conjunto de
principios, conceptos y prácticas que llevan al desarrollo de un
sistema o producto de alta calidad.
➔ La meta del diseño es crear un modelo de software que
implantará correctamente todos los requerimientos del
usuario y causará placer a quienes lo utilicen.
Resumen y Conclusiones.
➔ Los diseñadores deben elegir entre muchas alternativas de
diseño y llegar a la solución que mejor se adapte a las
necesidades de los participantes en el proyecto.
➔ El proceso de diseño va de una visión “panorámica” del
software a otra más cercana que define el detalle requerido
para implementar un sistema.
Cuestionario

Más contenido relacionado

La actualidad más candente

Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
Wilfredo Mogollón
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de RequerimientosUTPL UTPL
 
Factores de calidad según mc call
Factores de calidad según mc callFactores de calidad según mc call
Factores de calidad según mc call
clauddiaa
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareGustavo Cuen
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Indagación de los requerimientos
Indagación de los requerimientosIndagación de los requerimientos
Indagación de los requerimientos
UCATEBA
 
proceso unificado de desarrollo
proceso unificado de desarrollo proceso unificado de desarrollo
proceso unificado de desarrollo
Andrea Marcela García García
 
1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño
Luis Fernando Aguas Bucheli
 
Antecedentes MSF
Antecedentes MSFAntecedentes MSF
Antecedentes MSF
Jonathan Serrano
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
Tensor
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwaresergio
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmiSandrea Rodriguez
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
Ares Atzarel Hernández Rodríguez
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
manuel alfredo chacon valero
 
3. conceptos de calidad del software
3. conceptos de calidad del software3. conceptos de calidad del software
3. conceptos de calidad del softwareJuan Pablo Carvallo
 
Requerimientos del software
Requerimientos del software Requerimientos del software
Requerimientos del software
Rosa Virginia Ortega Loaiza
 
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
SaraEAlcntaraR
 

La actualidad más candente (20)

Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de Requerimientos
 
Factores de calidad según mc call
Factores de calidad según mc callFactores de calidad según mc call
Factores de calidad según mc call
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de softwareAtributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Indagación de los requerimientos
Indagación de los requerimientosIndagación de los requerimientos
Indagación de los requerimientos
 
proceso unificado de desarrollo
proceso unificado de desarrollo proceso unificado de desarrollo
proceso unificado de desarrollo
 
1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño1-Unidad 1. Arquitectura de Diseño
1-Unidad 1. Arquitectura de Diseño
 
Antecedentes MSF
Antecedentes MSFAntecedentes MSF
Antecedentes MSF
 
prueba de aplicaciones convencionales
prueba de aplicaciones convencionalesprueba de aplicaciones convencionales
prueba de aplicaciones convencionales
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
 
Proceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de softwareProceso, modelos y metodos de ingenieria de software
Proceso, modelos y metodos de ingenieria de software
 
DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmi
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
3. conceptos de calidad del software
3. conceptos de calidad del software3. conceptos de calidad del software
3. conceptos de calidad del software
 
Requerimientos del software
Requerimientos del software Requerimientos del software
Requerimientos del software
 
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
 

Similar a Diseño de software

8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
Ramiro Estigarribia Canese
 
Fundamentos
FundamentosFundamentos
Fundamentos
Monica Naranjo
 
Juan velasquez
Juan velasquezJuan velasquez
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
AlessandreMndez
 
Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015
Lucero Mtz
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseñolandeta_p
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
alfmuny
 
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
gabrielpea60
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
PedroLuces3
 
2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx
Fernando Espinoza Muñoz
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
ssuser20fade
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
Luis Jesus Curbata
 
12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx
GonzaloMartinezSilve
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de software
michellvillegas3
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
Ramiro Estigarribia Canese
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
Ra semana 13 2
Ra semana 13 2Ra semana 13 2
Ra semana 13 2victdiazm
 
Patrones de-diseño
Patrones de-diseñoPatrones de-diseño
Patrones de-diseño
Ris Fernandez
 
fundamentos para el diseño de software
fundamentos para el diseño de softwarefundamentos para el diseño de software
fundamentos para el diseño de software
MaraPilarNava
 

Similar a Diseño de software (20)

8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
 
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
Presentación Diseño de Software Gabriel Augusto Peña Antonetti CI 27687011
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
 
2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx2017.10.16-senati-powerpoint sesion8.pptx
2017.10.16-senati-powerpoint sesion8.pptx
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
 
12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx12-150203140754-conversion-gate02.pptx
12-150203140754-conversion-gate02.pptx
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de software
 
12.diseño basado en patrones
12.diseño basado en patrones12.diseño basado en patrones
12.diseño basado en patrones
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Ra semana 13 2
Ra semana 13 2Ra semana 13 2
Ra semana 13 2
 
Patrones de-diseño
Patrones de-diseñoPatrones de-diseño
Patrones de-diseño
 
fundamentos para el diseño de software
fundamentos para el diseño de softwarefundamentos para el diseño de software
fundamentos para el diseño de software
 

Más de Ramiro Estigarribia Canese

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
Ramiro Estigarribia Canese
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
Ramiro Estigarribia Canese
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
Ramiro Estigarribia Canese
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
Ramiro Estigarribia Canese
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
Ramiro Estigarribia Canese
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
Ramiro Estigarribia Canese
 
Servicios web
Servicios webServicios web
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
Ramiro Estigarribia Canese
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
Ramiro Estigarribia Canese
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
Ramiro Estigarribia Canese
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
Ramiro Estigarribia Canese
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
Ramiro Estigarribia Canese
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
Ramiro Estigarribia Canese
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
Ramiro Estigarribia Canese
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
Ramiro Estigarribia Canese
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
Ramiro Estigarribia Canese
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
Ramiro Estigarribia Canese
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
Ramiro Estigarribia Canese
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
Ramiro Estigarribia Canese
 
Comprensión de los requerimientos
Comprensión de los requerimientosComprensión de los requerimientos
Comprensión de los requerimientos
Ramiro Estigarribia Canese
 

Más de Ramiro Estigarribia Canese (20)

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
Servicios web
Servicios webServicios web
Servicios web
 
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
 
Comprensión de los requerimientos
Comprensión de los requerimientosComprensión de los requerimientos
Comprensión de los requerimientos
 

Último

Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 

Último (20)

Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 

Diseño de software

  • 1. 9. Diseño de Software Prof. Ramiro Estigarribia Canese Link a la presentación
  • 2. ¿Qué es el diseño de SW? ➔ El diseño crea una representación del software. ➔ Proporciona detalles sobre la arquitectura, estructuras de datos, interfaces y componentes que se necesitan para implementar el sistema.
  • 3. Comparación entre: Edificios y Software. ★ Vitruvio (romano/arquitecto): afirmaba que los edificios bien diseñados son aquellos que tienen resistencia, funcionalidad y elegancia. Lo mismo se aplica al software. 1. Resistencia: un programa no debe tener ningún error que impida su funcionamiento. 2. Funcionalidad: un programa debe ser apropiado para los fines que persigue. 3. Elegancia: la experiencia de usar el programa debe ser placentera.
  • 4. I.S. vs Otras Ingenierías. ➔ El diseño del software cambia conforme evolucionan los métodos, surgen mejores técnicas y se obtiene una comprensión más amplia. ➔ Hasta hoy: las metodologías de diseño de software carecen de profundidad, flexibilidad y exactitud de las ingenierías clásicas.
  • 5. ➔ La importancia del diseño del software se resume en una palabra: calidad. ➔ Es la única manera de traducir un producto terminado a los requerimientos de los participantes. ➔ Sin diseño se corre el riesgo de obtener un sistema inestable, que falle cuando se hagan cambios pequeños. Importancia del Diseño.
  • 6. 1. Funcionalidad: Se estima al evaluar el conjunto de características y la seguridad del sistema en su totalidad. 2. Facilidad de uso: Se valora al considerar los factores humanos, la estética, consistencia y documentación. 3. Confiabilidad: Se evalúa al medir la frecuencia de las fallas, la precisión de los resultados, y la habilidad para recuperarse de las fallas. 4. Desempeño: La velocidad de procesamiento, tiempo de respuesta, rendimiento y eficacia. 5. Soportabilidad: Facilidad de mantenimiento. Atributos de Calidad
  • 7. Abstracción en Sistemas. Existen diversos grados de abstracción. Entre mayor es: se considera una solución general. Entre menor es: se considera una solución específica. ➔ Abstracción procedimental: Permiten describir procesos omitiendo detalles específicos.(ej: encender automóvil) ➔ Abstracción de datos: Describe las características de un objeto. (automóvil, no siendo necesario describir en detalle su especificación para reconocerlo).
  • 8. ¿Qué es la Arquitectura de Software? ➔ Representa la estructura general del software y la forma como interactúan sus componentes. ➔ Una meta del diseño del software es obtener una aproximación arquitectónica de un sistema. ➔ Permite que el ingeniero resuelva problemas comunes.
  • 9. ¿Qué son Patrones de Diseño? Brad Appleton define así: “Es una mezcla con nombre propio de puntos de vista que contienen la esencia de una solución demostrada para un problema”. El objetivo de cada patrón es proporcionar una descripción que permita determinar: 1. Si es aplicable al trabajo en cuestión. 2. Si puede volverse a usar. 3. Si sirve como guía para desarrollar un patrón distinto.
  • 10. División de Problemas. ➔ Es un concepto de diseño que sugiere que cualquier problema complejo puede manejarse con más facilidad si se subdivide en elementos susceptibles de resolverse u optimizarse de manera independiente. ➔ Al separar un problema en sus piezas más pequeñas y por ello más manejables, se requiere menos esfuerzo y tiempo para resolverlo.
  • 11. ¿Qué es la Modularidad? ➔ Es la manifestación de la división de problemas. ➔ El software se divide en componentes con nombres distintos y abordables por separado, que se integran para satisfacer los requerimientos del problema. ➔ El software monolítico (un solo módulo) no es fácil de entender para un ingeniero de software.
  • 12. Relación entre: Número de módulos y éxito.
  • 13. ➔ Las curvas de la figura son una guía al considerar la modularidad. ➔ Deben hacerse módulos, pero con cuidado para permanecer en la cercanía de M. ➔ Se debe buscar un número intermedio. ➔ Debe hacerse un diseño (y el programa resultante) con módulos, de manera que el desarrollo pueda planearse con más facilidad. Relación entre: Número de módulos y éxito.
  • 14. Ocultamiento de Información. ➔ El principio del ocultamiento de información sugiere que los módulos se “caracterizan por decisiones de diseño que se oculten (cada una) de las demás”. ➔ En otras palabras, deben especificarse y diseñarse módulos, de forma que la información (algoritmos y datos) contenida en un módulo sea inaccesible para los que no necesiten de ella. ➔ La modularidad efectiva se logra definiendo módulos independientes que intercambien sólo aquella información necesaria para el software.
  • 15. Resumen y Conclusiones. ➔ El objetivo del diseño del software es aplicar un conjunto de principios, conceptos y prácticas que llevan al desarrollo de un sistema o producto de alta calidad. ➔ La meta del diseño es crear un modelo de software que implantará correctamente todos los requerimientos del usuario y causará placer a quienes lo utilicen.
  • 16. Resumen y Conclusiones. ➔ Los diseñadores deben elegir entre muchas alternativas de diseño y llegar a la solución que mejor se adapte a las necesidades de los participantes en el proyecto. ➔ El proceso de diseño va de una visión “panorámica” del software a otra más cercana que define el detalle requerido para implementar un sistema. Cuestionario