SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Conceptos de Diseño
Ramiro Estigarribia Canese
¿Qué es el diseño de SW?
➔ El diseño de software agrupa el conjunto de
principios, conceptos y prácticas que llevan al
desarrollo de un sistema de alta calidad.
➔ El diseño crea una representación del software,
pero, a diferencia del modelo de los requerimientos,
proporciona detalles sobre arquitectura del
software, estructuras de datos, interfaces y
componentes que se necesitan para implementar el
sistema.
Edificios vs Software.
➔ Vitruvio, romano crítico de arquitectura, afirmaba
que los edificios bien diseñados eran aquellos que
tenían resistencia, funcionalidad y elegancia.
Lo mismo se aplica al buen software.
➔ Resistencia: un programa no debe tener ningún
error que impida su funcionamiento.
➔ Funcionalidad: un programa debe se apropiado
para los fines que persigue.
➔ 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 análisis y
se obtiene una comprensión más amplia.
➔ Hasta hoy: las metodologías de diseño de software
carecen de profundidad, flexibilidad, exactitud y
naturaleza cuantitativa, que normalmente se
asocian con las ingenierías más clásicas.
➔ No obstante, sí existen métodos para diseñar
software, se dispone de criterios para el diseño con
calidad y se aplica la notación del diseño.
¿Cuándo Comienza?
Comienza una vez que se han analizado y modelado
los requerimientos.
Cada uno de los elementos del modelo de
requerimientos (capítulos 6 y 7) proporciona
información necesaria para crear los cuatro modelos
del diseño.
El trabajo de diseño es alimentado por el modelo de
requerimientos, manifestado por elementos basados
en el escenario, en la clase, orientados al flujo, y del
comportamiento.
Modelos del diseño.
➔ La importancia del diseño del software se
resume en una palabra: calidad.
➔ Da representaciones del software que pueden
evaluarse en su 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.
Atributos de Calidad
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 y
severidad de las fallas, la precisión de los
resultados, y la habilidad para recuperarse de las
fallas.”
Atributos de Calidad
4. Desempeño “Se mide con la velocidad de
procesamiento, tiempo de respuesta, consumo de
recursos, rendimiento y eficacia.”
5. Soportabilidad: Facilidad de mantenimiento,
Resistencia a pruebas. - Compatibilidad. -
Configurabilida. - Facilidad de instalación. -
Facilidad localización de problemas.
El Proceso del Diseño.
El diseño de software es un proceso iterativo por
medio del cual se traducen los requerimientos
“en un plano” para construir el software.
Al principio, el plano ilustra una visión holística del
software. Es decir, el diseño se representa en un nivel
alto de abstracción.
A medida que tienen lugar las iteraciones del diseño,
las mejoras posteriores conducen a niveles menores
de abstracción. Éstos también pueden rastrearse
hasta los requerimientos, pero la conexión es más
sutil.
Evolución del Diseño de SW.
➔ Es un proceso continuo que ya ha cubierto seis
décadas. Los primeros trabajos de diseño se
concentraban en criterios para el desarrollo de
programas modulares.
➔ Los trabajos posteriores propusieron métodos para
traducir la estructura de los datos a una definición
de diseño.
➔ Los enfoques más nuevos propusieron un enfoque
orientado a objeto para diseñar derivaciones.
➔ En los últimos tiempos, el énfasis al desarrollar
software se pone en la arquitectura de éste y en los
patrones de diseño.
Conceptos de Diseño.
Durante la historia de la ingeniería de software, ha
evolucionado un conjunto de conceptos.
Aunque con el paso de los años ha variado el grado
de interés en cada concepto, todos han soportado la
prueba del tiempo.
Todos ayudan a responder las preguntas siguientes:
➔ ¿Qué criterios se usan para dividir el software en
sus componentes individuales?
➔ ¿Cómo se extraen los detalles?
➔ ¿Cuáles son los criterios que definen la calidad?
Abstracción.
Existen diversos grados de abstracción , entre mayor
sea el grado de la misma se considera una solución
general, entre menor sea su grado se hace referencia
a elementos de mayor especificidad.
• 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).
Arquitectura.
➔ Representa la estructura general del software y la
forma como interactúan sus componentes.
➔ “En un sentido más amplio, no solo se describe los
componentes y relaciones, también se pueden
representar elementos más importantes del
sistema”
➔ Una meta del diseño del software es obtener una
aproximación arquitectónica de un sistema.
➔ Un conjunto de patrones arquitectónicos permite
que el ingeniero de software resuelva problemas de
diseño comunes.
Patrones de Diseño.
Brad Appleton define un patrón de diseño de la
manera siguiente:
“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 de diseño 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 en funciones o estructura.
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.
Modularidad.
➔ Es la manifestación de la división de problemas.
➔ El software se divide en componentes con nombres
distintos y abordables por separado, en ocasiones
llamados módulos, que se integran para satisfacer
los requerimientos del problema.
➔ El software monolítico (un programa grande
compuesto de un solo módulo) no es fácil de
entender para un ingeniero de software.
➔ En función de las circunstancias, el diseño debe
descomponerse en muchos módulos con la
esperanza de que sea más fácil entenderlo.
Relación entre número de
módulos y éxito.
Relación entre número
de módulos y éxito.
➔ Las curvas que aparecen en la figura constituyen
una guía útil al considerar la modularidad.
➔ Deben hacerse módulos, pero con cuidado para
permanecer en la cercanía de M.
➔ Debe evitarse hacer pocos o muchos módulos.
➔ Debe hacerse un diseño (y el programa resultante)
con módulos, de manera que el desarrollo pueda
planearse con más facilidad, que sea posible definir
y desarrollar los incrementos del software, que los
cambios se realicen con más facilidad, que las
pruebas y la depuración se efectúen con mayor
eficiencia.
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.
➔ Implica que la modularidad efectiva se logra
definiendo módulos independientes que
intercambien sólo aquella información necesaria
para lograr la función del software.
Independencia Funcional
El concepto de independencia funcional es resultado
directo de la separación de problemas y de
los conceptos de abstracción y ocultamiento de
información.
La independencia funcional se logra desarrollando
módulos con funciones “miopes” que tengan “aversión”
a la interacción excesiva con otros módulos.
Dicho de otro modo, debe diseñarse software de
manera que cada módulo tenga una interfaz sencilla
cuando se vea desde otras partes de la estructura del
programa.
Refinamiento
El refinamiento es un proceso de elaboración.
Se comienza con un enunciado de la función (o
descripción de la información), definida en un nivel de
abstracción alto.
Es decir, el enunciado describe la función o
información de manera conceptual, pero no dice nada
sobre los trabajos internos de la función o de la
estructura interna de la información.
Después se trabaja sobre el enunciado original, dando
más y más detalles conforme tiene lugar el
refinamiento (elaboración) sucesivo.
Rediseño
➔ “Es el proceso de cambiar un sistema de software
en forma tal que no se altera el comportamiento
externo del código [diseño], pero sí se mejora su
estructura interna.”
➔ Cuando se rediseña el software, se examina el
diseño existente en busca de redundancias,
algoritmos ineficientes, estructuras de datos mal
construidas y cualquier otra falla del diseño que
pueda corregirse para obtener un diseño mejor.
➔ El resultado será un software más fácil de integrar,
de probar y de mantener.
Resumen y Conclusiones.
El diseño del software comienza cuando termina la
primera iteración de la ingeniería de requerimientos.
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 del software 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.
Los conceptos de diseño han evolucionado en los
primeros 60 años de trabajo de la ingeniería
de software.

Más contenido relacionado

La actualidad más candente

Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Softwarearacelij
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de softwareGuillermo Lemus
 
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto softwareMetodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto softwareAndres Hoyos Mosquera
 
Retos y soluciones de trabajar con requerimientos de software
Retos y soluciones de trabajar con requerimientos de softwareRetos y soluciones de trabajar con requerimientos de software
Retos y soluciones de trabajar con requerimientos de softwareSoftware Guru
 
Estrategias de aplicaciones para las pruebas de integración
Estrategias  de aplicaciones para las pruebas de integraciónEstrategias  de aplicaciones para las pruebas de integración
Estrategias de aplicaciones para las pruebas de integraciónPablo Navarrete
 
Extreme Programming-Fases
Extreme Programming-FasesExtreme Programming-Fases
Extreme Programming-FasesBelghy Chisag
 
Calidad De Software
Calidad De SoftwareCalidad De Software
Calidad De SoftwareJimmy Campo
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosFranklin Parrales Bravo
 
Introducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosIntroducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosWilfredo Mogollón
 
Aseguramiento de la calidad del software SQA
Aseguramiento de la calidad del software SQAAseguramiento de la calidad del software SQA
Aseguramiento de la calidad del software SQAAnita Ortiz
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoJesús E. CuRias
 
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 callclauddiaa
 
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONESPRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONESFranklin Parrales Bravo
 

La actualidad más candente (20)

Pruebas De Software
Pruebas De SoftwarePruebas De Software
Pruebas De Software
 
Lenguaje unificado de modelado
Lenguaje unificado de modeladoLenguaje unificado de modelado
Lenguaje unificado de modelado
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto softwareMetodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
 
Retos y soluciones de trabajar con requerimientos de software
Retos y soluciones de trabajar con requerimientos de softwareRetos y soluciones de trabajar con requerimientos de software
Retos y soluciones de trabajar con requerimientos de software
 
Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
 
Sqap ejemplos
Sqap ejemplosSqap ejemplos
Sqap ejemplos
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Estrategias de aplicaciones para las pruebas de integración
Estrategias  de aplicaciones para las pruebas de integraciónEstrategias  de aplicaciones para las pruebas de integración
Estrategias de aplicaciones para las pruebas de integración
 
Extreme Programming-Fases
Extreme Programming-FasesExtreme Programming-Fases
Extreme Programming-Fases
 
Calidad De Software
Calidad De SoftwareCalidad De Software
Calidad De Software
 
IDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitosIDR Unidad 4: Validación y gestión de requisitos
IDR Unidad 4: Validación y gestión de requisitos
 
Introducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a ObjetosIntroducción al Análisis Orientado a Objetos
Introducción al Análisis Orientado a Objetos
 
Aseguramiento de la calidad del software SQA
Aseguramiento de la calidad del software SQAAseguramiento de la calidad del software SQA
Aseguramiento de la calidad del software SQA
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigo
 
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
 
Herramientas case full informacion
Herramientas case full informacionHerramientas case full informacion
Herramientas case full informacion
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONESPRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
 

Similar a 8.conceptos de diseño

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
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de softwareLuis Jesus Curbata
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdfssuser20fade
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareandres Mora
 
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
 
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
 
Diseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanDiseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanArianna Peralta
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosWilfredo Mogollón
 

Similar a 8.conceptos de diseño (20)

Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
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
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
Guillermo cárdenas
Guillermo cárdenasGuillermo cárdenas
Guillermo cárdenas
 
Guillermo cárdenas
Guillermo cárdenasGuillermo cárdenas
Guillermo cárdenas
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura 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
 
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
 
Diseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanDiseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizan
 
Ingeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetosIngeniería de software y el paradigma orientado a objetos
Ingeniería de software y el paradigma orientado a objetos
 

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.pdfRamiro 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

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
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
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
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
 
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
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
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
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 

Último (20)

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
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
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
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
 
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...
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
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
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 

8.conceptos de diseño

  • 1. Conceptos de Diseño Ramiro Estigarribia Canese
  • 2. ¿Qué es el diseño de SW? ➔ El diseño de software agrupa el conjunto de principios, conceptos y prácticas que llevan al desarrollo de un sistema de alta calidad. ➔ El diseño crea una representación del software, pero, a diferencia del modelo de los requerimientos, proporciona detalles sobre arquitectura del software, estructuras de datos, interfaces y componentes que se necesitan para implementar el sistema.
  • 3. Edificios vs Software. ➔ Vitruvio, romano crítico de arquitectura, afirmaba que los edificios bien diseñados eran aquellos que tenían resistencia, funcionalidad y elegancia. Lo mismo se aplica al buen software. ➔ Resistencia: un programa no debe tener ningún error que impida su funcionamiento. ➔ Funcionalidad: un programa debe se apropiado para los fines que persigue. ➔ 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 análisis y se obtiene una comprensión más amplia. ➔ Hasta hoy: las metodologías de diseño de software carecen de profundidad, flexibilidad, exactitud y naturaleza cuantitativa, que normalmente se asocian con las ingenierías más clásicas. ➔ No obstante, sí existen métodos para diseñar software, se dispone de criterios para el diseño con calidad y se aplica la notación del diseño.
  • 5. ¿Cuándo Comienza? Comienza una vez que se han analizado y modelado los requerimientos. Cada uno de los elementos del modelo de requerimientos (capítulos 6 y 7) proporciona información necesaria para crear los cuatro modelos del diseño. El trabajo de diseño es alimentado por el modelo de requerimientos, manifestado por elementos basados en el escenario, en la clase, orientados al flujo, y del comportamiento.
  • 7. ➔ La importancia del diseño del software se resume en una palabra: calidad. ➔ Da representaciones del software que pueden evaluarse en su 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.
  • 8. Atributos de Calidad 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 y severidad de las fallas, la precisión de los resultados, y la habilidad para recuperarse de las fallas.”
  • 9. Atributos de Calidad 4. Desempeño “Se mide con la velocidad de procesamiento, tiempo de respuesta, consumo de recursos, rendimiento y eficacia.” 5. Soportabilidad: Facilidad de mantenimiento, Resistencia a pruebas. - Compatibilidad. - Configurabilida. - Facilidad de instalación. - Facilidad localización de problemas.
  • 10. El Proceso del Diseño. El diseño de software es un proceso iterativo por medio del cual se traducen los requerimientos “en un plano” para construir el software. Al principio, el plano ilustra una visión holística del software. Es decir, el diseño se representa en un nivel alto de abstracción. A medida que tienen lugar las iteraciones del diseño, las mejoras posteriores conducen a niveles menores de abstracción. Éstos también pueden rastrearse hasta los requerimientos, pero la conexión es más sutil.
  • 11. Evolución del Diseño de SW. ➔ Es un proceso continuo que ya ha cubierto seis décadas. Los primeros trabajos de diseño se concentraban en criterios para el desarrollo de programas modulares. ➔ Los trabajos posteriores propusieron métodos para traducir la estructura de los datos a una definición de diseño. ➔ Los enfoques más nuevos propusieron un enfoque orientado a objeto para diseñar derivaciones. ➔ En los últimos tiempos, el énfasis al desarrollar software se pone en la arquitectura de éste y en los patrones de diseño.
  • 12. Conceptos de Diseño. Durante la historia de la ingeniería de software, ha evolucionado un conjunto de conceptos. Aunque con el paso de los años ha variado el grado de interés en cada concepto, todos han soportado la prueba del tiempo. Todos ayudan a responder las preguntas siguientes: ➔ ¿Qué criterios se usan para dividir el software en sus componentes individuales? ➔ ¿Cómo se extraen los detalles? ➔ ¿Cuáles son los criterios que definen la calidad?
  • 13. Abstracción. Existen diversos grados de abstracción , entre mayor sea el grado de la misma se considera una solución general, entre menor sea su grado se hace referencia a elementos de mayor especificidad. • 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).
  • 14. Arquitectura. ➔ Representa la estructura general del software y la forma como interactúan sus componentes. ➔ “En un sentido más amplio, no solo se describe los componentes y relaciones, también se pueden representar elementos más importantes del sistema” ➔ Una meta del diseño del software es obtener una aproximación arquitectónica de un sistema. ➔ Un conjunto de patrones arquitectónicos permite que el ingeniero de software resuelva problemas de diseño comunes.
  • 15. Patrones de Diseño. Brad Appleton define un patrón de diseño de la manera siguiente: “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 de diseño 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 en funciones o estructura.
  • 16. 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.
  • 17. Modularidad. ➔ Es la manifestación de la división de problemas. ➔ El software se divide en componentes con nombres distintos y abordables por separado, en ocasiones llamados módulos, que se integran para satisfacer los requerimientos del problema. ➔ El software monolítico (un programa grande compuesto de un solo módulo) no es fácil de entender para un ingeniero de software. ➔ En función de las circunstancias, el diseño debe descomponerse en muchos módulos con la esperanza de que sea más fácil entenderlo.
  • 18. Relación entre número de módulos y éxito.
  • 19. Relación entre número de módulos y éxito. ➔ Las curvas que aparecen en la figura constituyen una guía útil al considerar la modularidad. ➔ Deben hacerse módulos, pero con cuidado para permanecer en la cercanía de M. ➔ Debe evitarse hacer pocos o muchos módulos. ➔ Debe hacerse un diseño (y el programa resultante) con módulos, de manera que el desarrollo pueda planearse con más facilidad, que sea posible definir y desarrollar los incrementos del software, que los cambios se realicen con más facilidad, que las pruebas y la depuración se efectúen con mayor eficiencia.
  • 20. 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. ➔ Implica que la modularidad efectiva se logra definiendo módulos independientes que intercambien sólo aquella información necesaria para lograr la función del software.
  • 21. Independencia Funcional El concepto de independencia funcional es resultado directo de la separación de problemas y de los conceptos de abstracción y ocultamiento de información. La independencia funcional se logra desarrollando módulos con funciones “miopes” que tengan “aversión” a la interacción excesiva con otros módulos. Dicho de otro modo, debe diseñarse software de manera que cada módulo tenga una interfaz sencilla cuando se vea desde otras partes de la estructura del programa.
  • 22. Refinamiento El refinamiento es un proceso de elaboración. Se comienza con un enunciado de la función (o descripción de la información), definida en un nivel de abstracción alto. Es decir, el enunciado describe la función o información de manera conceptual, pero no dice nada sobre los trabajos internos de la función o de la estructura interna de la información. Después se trabaja sobre el enunciado original, dando más y más detalles conforme tiene lugar el refinamiento (elaboración) sucesivo.
  • 23. Rediseño ➔ “Es el proceso de cambiar un sistema de software en forma tal que no se altera el comportamiento externo del código [diseño], pero sí se mejora su estructura interna.” ➔ Cuando se rediseña el software, se examina el diseño existente en busca de redundancias, algoritmos ineficientes, estructuras de datos mal construidas y cualquier otra falla del diseño que pueda corregirse para obtener un diseño mejor. ➔ El resultado será un software más fácil de integrar, de probar y de mantener.
  • 24. Resumen y Conclusiones. El diseño del software comienza cuando termina la primera iteración de la ingeniería de requerimientos. 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.
  • 25. Resumen y Conclusiones. Los diseñadores del software 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. Los conceptos de diseño han evolucionado en los primeros 60 años de trabajo de la ingeniería de software.