SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
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

Métricas de procesos y proyectos
Métricas de procesos y proyectosMétricas de procesos y proyectos
Métricas de procesos y proyectos
jose_macias
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
monik1002
 
Planeacion y elaboración de proyectos de software
Planeacion y elaboración de proyectos de softwarePlaneacion y elaboración de proyectos de software
Planeacion y elaboración de proyectos de software
Ttomas Carvajal
 
La calidad del software
La calidad del softwareLa calidad del software
La calidad del software
duberlisg
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de software
Angel Reyes
 
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
sergio
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de software
Edgardo Rojas
 

La actualidad más candente (20)

Métricas de procesos y proyectos
Métricas de procesos y proyectosMétricas de procesos y proyectos
Métricas de procesos y proyectos
 
Proyecto de software
Proyecto de softwareProyecto de software
Proyecto de software
 
Modelos de software ventajas y desventajas
Modelos de software ventajas y desventajasModelos de software ventajas y desventajas
Modelos de software ventajas y desventajas
 
Especificación y resultados de las pruebas de software
Especificación y resultados de las pruebas de softwareEspecificación y resultados de las pruebas de software
Especificación y resultados de las pruebas de software
 
Metodología rup
Metodología rupMetodología rup
Metodología rup
 
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
 
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE (GCS)
 
Antecedentes MSF
Antecedentes MSFAntecedentes MSF
Antecedentes MSF
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del software
 
3.5.1 Tipos-de-riesgos
3.5.1 Tipos-de-riesgos3.5.1 Tipos-de-riesgos
3.5.1 Tipos-de-riesgos
 
Estrategias prueba de software
Estrategias prueba de softwareEstrategias prueba de software
Estrategias prueba de software
 
ATRIBUTOS DE CALIDAD ARQUITECTURA DE SOFTWARE.pdf
ATRIBUTOS DE CALIDAD ARQUITECTURA DE SOFTWARE.pdfATRIBUTOS DE CALIDAD ARQUITECTURA DE SOFTWARE.pdf
ATRIBUTOS DE CALIDAD ARQUITECTURA DE SOFTWARE.pdf
 
Planeacion y elaboración de proyectos de software
Planeacion y elaboración de proyectos de softwarePlaneacion y elaboración de proyectos de software
Planeacion y elaboración de proyectos de software
 
La calidad del software
La calidad del softwareLa calidad del software
La calidad 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)
 
Análisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de softwareAnálisis de riesgos de un proyecto de software
Análisis de riesgos de un proyecto de software
 
Uml
UmlUml
Uml
 
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
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de software
 
Ingenieria requerimientos
Ingenieria requerimientosIngenieria requerimientos
Ingenieria requerimientos
 

Similar a 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
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ño
landeta_p
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
Liliana Pacheco
 
Ra semana 13 2
Ra semana 13 2Ra semana 13 2
Ra semana 13 2
victdiazm
 

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

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

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (12)

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

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