SlideShare una empresa de Scribd logo
1 de 25
(c) P. Gomez-Gil, INAOEP. 2009 1
DISEÑO DE SOFTWARE
1ª. Parte
NOTAS DEL CURSO
Ingeniería de Software I
DRA. MARIA DEL PILAR GÓMEZ GIL
INAOEP
Versión:25-10-2009
(c) P. Gomez-Gil, INAOEP. 2009 2
Pasando del Análisis al Diseño
[Pressman 05]
(c) P. Gomez-Gil, INAOEP. 2009 3
Diseño
 Es el proceso de aplicar varias
técnicas y principios con el propósito
de definir un dispositivo, proceso o
sistema con suficiente detalle que
permita su realización física.
 Diseño es mas que programar o
escribir código…
(c) P. Gomez-Gil, INAOEP. 2009 4
Guías para un Diseño de Calidad
. . .Hay una diferencia entre hacer que
un software trabaje, y hacerlo que
trabaje correctamente. . .
(c) P. Gomez-Gil, INAOEP. 2009 5
Guías para un Diseño de Calidad (cont.)
1. Un buen diseño debe tener una arquitectura que:
1. Se ha creado utilizando estilos o patrones “reconocidos”
2. Esta hecho de componentes
3. Se puede implementar de una manera evolutiva, facilitando la
implementación y las pruebas
2. Un buen diseño es modular, es decir, puede partirse de
manera lógica en elementos o subsistemas.
3. Un buen diseño contiene representaciones
diferenciales de datos, arquitectura, interfaces y
componentes.
(c) P. Gomez-Gil, INAOEP. 2009 6
Guías para un Diseño de Calidad (cont.)
4. Un buen diseño debe conducir a estructuras
de datos que son apropiadas para las clases a
implementarse, y que resultan de patrones
reconocidos.
5. Un buen diseño debe llevar a componentes
que presentan características funcionales
independientes.
6. Un buen diseño debe conducir a interfaces que
reducen la complejidad de las conexiones
entre componentes y el medio externo.
(c) P. Gomez-Gil, INAOEP. 2009 7
Guías para un Diseño de Calidad
(cont.)
 Un buen diseño debe llevarse a cabo
utilizando métodos repetibles y que es
conducida por la información obtenida en el
análisis.
 Un buen diseño debe representarse usando
una notación que es efectiva en la manera que
comunica el significado del diseño.
(c) P. Gomez-Gil, INAOEP. 2009 8
Atributos de Calidad en el Diseño
 Funcionalidad
 Usabilidad
 Confiabilidad
 Desempeño
 Sustentabilidad …y que significa todo esto??
Conceptos fundamentales de Diseño
1. Abstracción
2. Refinamiento
3. Arquitectura
4. Modularidad
5. Patrones
6. Clases del diseño
(c) P. Gomez-Gil, INAOEP. 2009 9
(c) P. Gomez-Gil, INAOEP. 2009 10
Conceptos fundamentales de diseño:
Abstracción y Refinamiento
1. ABSTRACCIÓN
La solución a cualquier problema se presenta en
varios niveles de abstracción. En el nivel mas alto se
presenta una solución general. En el nivel mas bajo se
presenta una solución que puede implementarse
directamente.
2. REFINAMIENTO
La arquitectura de un programa se desarrolla a través
del detallado sucesivo de niveles.
(c) P. Gomez-Gil, INAOEP. 2009 11
Conceptos fundamentales de diseño:
3. Arquitectura
 La arquitectura de software se refiere a la estructura
global del software y la manera en que esta estructura
proporciona integridad conceptual al sistema.
 Representa los componentes que tiene el software,
como interactúan y la estructura de los datos que usan
estos componentes
 El uso de patrones arquitectónicos permitirán a los
diseñadores reutilizar componentes
 La arquitectura del diseño se puede representar
utilizando diferentes modelos: Estructurales, Plantillas,
Dinámicos, de procesos, y funcionales.
Conceptos fundamentales de diseño:
4. Modularidad
 Es un atributo del software que permite que un programa
sea manejable intelectualmente hablando.
 Teóricamente el aumento en el número de módulos
disminuye la complejidad, y por lo tanto el esfuerzo de
resolver un problema; entonces con un número infinito
de módulos tendríamos un problema de complejidad
cero.
 Sin embargo el aumento en el número de módulos
genera un aumento en el costo por comunicación entre
módulos.
(c) P. Gomez-Gil, INAOEP. 2009 12
(c) P. Gomez-Gil, INAOEP. 2009 13
Número de módulos vs. costo
COSTO O ESFUERZO
NÚMERO DE MÓDULOS
costo por
interface
costo por módulo
Región de
mínimo costo
(c) P. Gomez-Gil, INAOEP. 2009 14
Otras características de modularidad
COHESIÓN
Es la medida de la fuerza funcional de un módulo o
clase. Se busca que la clase tenga la cohesión mas
alta posible, lo cual ocurre cuando todos sus
elementos contribuyen a la ejecución de una misma
tarea.
ACOPLAMIENTO
Es la medida de la interdependencia relativa entre
clases. Se busca que exista el mínimo posible de
acoplamiento entre clases, lo cual sucede cuando
las clases se comunican solamente por medio de
mensajes.
(c) P. Gomez-Gil, INAOEP. 2009 15
Conceptos fundamentales de diseño:
5. Patrones
Un patrón de diseño describe una estructura de
diseño que resuelve un problema de diseño
particular, dentro de un contexto específico.
Un patrón de diseño provee información que
permite al diseñador determinar si el patrón es
aplicable, si puede re-usarse y si se puede usar
como guía para desarrollar algún patrón similar
con estructura diferente.
(c) P. Gomez-Gil, INAOEP. 2009 16
Conceptos Fundamentales del diseño (cont.)
6. Clases de Diseño
 Las clases generadas en el análisis definen el dominio
del problema.
 En el diseño, las clases se definen de manera que se
refinan las clases obtenidas en el análisis a fin de que se
puedan implementar,
 El diseño crea un nuevo conjunto de clases que permiten
implementar la infraestructura de software que va a
sostener la solución.
(c) P. Gomez-Gil, INAOEP. 2009 17
Niveles de clases del diseño
Se sugieren 5 niveles de clases de diseño:
 Clases para el manejo de la interfaz con el
usuario
 Clases para el dominio del negocio
 Clases para el proceso
 Clases para la persistencia
 Clases de administración y control del sistema
Características de clases “bien
formadas”
 Completa y suficiente. Una clase de diseño debe tener
todos los atributos y métodos razonablemente esperados para
existir.
 Primitividad. Los métodos se deben enfocar en resolver UN
servicio de la clase. Una vez que se ha implementado un
servicio a través de un método, la clase no debe proveer
ninguna otra manera de hacer la misma cosa
 Alta cohesión. Una clase con un diseño cohesivo tiene un
conjunto pequeño y enfocado de responsabilidades y enfoca
exclusivamente sus atributos y métodos a cumplir esas
responsabilidades
 Bajo acoplamiento. Aunque las clases tienen que colaborar
entre sí, esta colaboración debe ser lo mínimo necesario
(c) P. Gomez-Gil, INAOEP. 2009 18
El modelo de diseño
 Puede verse desde 2 posibles dimensiones: proceso y
abstracción
 La dimensión del proceso indica la evolución del modelo
confirme se van ejecutado el proceso de desarrollo de
software
 La dimensión de abstracción representa el nivel de
detalle que surge cuando cada elemento del modelo de
análisis se va transformando en su equivalente de
diseño, y posteriormente se va refinando iterativamente
 La línea punteada en la figura indica la frontera (difusa)
entre análisis y diseño
(c) P. Gomez-Gil, INAOEP. 2009 19
(c) P. Gomez-Gil, INAOEP. 2009 20
Dimensiones del modelo de diseño
[Pressman 05]
Elementos de diseño de datos
 Crea el modelo de datos e información,
representado en un nivel de abstracción alto, y
se va refinando progresivamente
 En la implementación este modelo de datos se
traduce en bases de datos, las cuales en un
futuro formarán “warehouses” que permitirán el
manejo de sistemas administradores de
conocimiento de la empresa
(c) P. Gomez-Gil, INAOEP. 2009 21
Elementos de diseño de arquitectura
 El modelo de arquitectura se obtiene
principalmente de 3 fuentes:
1. Información acerca del dominio de
aplicación del software a construirse
2. Elementos del modelo de análisis tales
como diagramas de flujo o clases generadas
en el análisis sus relaciones y
colaboraciones
3. Disponibilidad de patrones de arquitectura
(c) P. Gomez-Gil, INAOEP. 2009 22
Elementos de diseño de interfaz
 Los elementos de diseño de interfaz describen
como la información fluye entrando y saliendo del
sistema, y como se comunican a través de los
componentes definidos como parte de la
arquitectura
 Hay 3 elementos importantes en el diseño de
interfaces:
1. Interfaz con el usuario
2. Interfaces externas con otros sistemas, dispositivos,
redes u otros productores o consumidores de
información
3. Interfaces internas entre los diferentes componentes
de diseño
(c) P. Gomez-Gil, INAOEP. 2009 23
Diseño de interfaces externas
 Requiere información definitiva sobre la
entidad a la cual la información se manda
o recibe.
 Debe incluir pruebas de errores y
características de seguridad
(c) P. Gomez-Gil, INAOEP. 2009 24
Diseño de interfaces internas
 Está fuertemente relacionado con el diseño a nivel
componentes (diseño detallado)
 En algunos casos, una interface se diseña de igual
manera que una clase.
 Según la OMG “una interfaz es un especificador
de operaciones externamente visibles (publicas)
de una clase, componente u otro clasificador
(incluyendo subsistemas) sin la especificación de
una estructura interna”
 Una interfaz es un conjunto de operaciones que
describe alguna parte del comportamiento de un
sistema y las operaciones necesarias para
accesar esas operaciones
(c) P. Gomez-Gil, INAOEP. 2009 25

Más contenido relacionado

Similar a diseno1.ppt (20)

Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
diseno Componente3.ppt
diseno Componente3.pptdiseno Componente3.ppt
diseno Componente3.ppt
 
Orientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDDOrientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDD
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Tipos de modelos de procesos
Tipos de modelos de procesosTipos de modelos de procesos
Tipos de modelos de procesos
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
COCOMO
COCOMOCOCOMO
COCOMO
 
Cocomo 1
Cocomo 1Cocomo 1
Cocomo 1
 
Conceptosdemodelado.pdf
Conceptosdemodelado.pdfConceptosdemodelado.pdf
Conceptosdemodelado.pdf
 
Patrones de-diseño
Patrones de-diseñoPatrones de-diseño
Patrones de-diseño
 
Is.exp.329466
Is.exp.329466Is.exp.329466
Is.exp.329466
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian Oblitas
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Cocomo
CocomoCocomo
Cocomo
 
Tarea 13
Tarea 13Tarea 13
Tarea 13
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
Luis
LuisLuis
Luis
 

Último

CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdfCLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdfDanielaPrezMartnez3
 
Anexo Nivel 3 Ficha Lectura pptjsbdkks
Anexo  Nivel 3 Ficha  Lectura pptjsbdkksAnexo  Nivel 3 Ficha  Lectura pptjsbdkks
Anexo Nivel 3 Ficha Lectura pptjsbdkkscristinacastro892534
 
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfSlaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfslaimenbarakat
 
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNALPOESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNALEvaMaraMorenoLago1
 
Sofia Ospina Architecture and Design Portfolio
Sofia Ospina Architecture and Design PortfolioSofia Ospina Architecture and Design Portfolio
Sofia Ospina Architecture and Design Portfoliosofiospina94
 
Arquitectos del Movimiento Moderno Pt. 2.pdf
Arquitectos del Movimiento Moderno Pt. 2.pdfArquitectos del Movimiento Moderno Pt. 2.pdf
Arquitectos del Movimiento Moderno Pt. 2.pdfLeonardoDantasRivas
 
Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30SantiagoAgudelo47
 
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptxATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptxEdisonCondesoDelgado1
 
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...chechei12040303
 
tema ilustrado 9 el inicio del reinado de juan carlos I
tema ilustrado 9 el inicio del reinado de juan carlos Itema ilustrado 9 el inicio del reinado de juan carlos I
tema ilustrado 9 el inicio del reinado de juan carlos Iirenecarmona12
 
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDADGROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDADGersonManuelRodrigue1
 
La Bauhaus y la nueva tipografía en el diseño gráfico
La Bauhaus y la nueva tipografía en el diseño gráficoLa Bauhaus y la nueva tipografía en el diseño gráfico
La Bauhaus y la nueva tipografía en el diseño gráficoCristianLobo10
 
Fundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principalesFundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principalesLuis Fernando Salgado
 
secuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulossecuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulosRosarioLloglla
 
Triptico de los derechos humanos pe señorees jaja
Triptico de los derechos humanos pe señorees jajaTriptico de los derechos humanos pe señorees jaja
Triptico de los derechos humanos pe señorees jajadayannanicolzuluetab
 
GRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivosGRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivosCristianGmez22034
 
Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....estefaniaortizsalina
 
Afiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezAfiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezPaola575380
 
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docxPLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docxLeo Florez
 
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfINICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfBrbara57940
 

Último (20)

CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdfCLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
CLASE 2 PSICOTERAPIA COGNITIVO CONDUCTUAL.pdf
 
Anexo Nivel 3 Ficha Lectura pptjsbdkks
Anexo  Nivel 3 Ficha  Lectura pptjsbdkksAnexo  Nivel 3 Ficha  Lectura pptjsbdkks
Anexo Nivel 3 Ficha Lectura pptjsbdkks
 
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfSlaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
 
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNALPOESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
 
Sofia Ospina Architecture and Design Portfolio
Sofia Ospina Architecture and Design PortfolioSofia Ospina Architecture and Design Portfolio
Sofia Ospina Architecture and Design Portfolio
 
Arquitectos del Movimiento Moderno Pt. 2.pdf
Arquitectos del Movimiento Moderno Pt. 2.pdfArquitectos del Movimiento Moderno Pt. 2.pdf
Arquitectos del Movimiento Moderno Pt. 2.pdf
 
Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30Portafolio Santiago Agudelo Duran 2024 -30
Portafolio Santiago Agudelo Duran 2024 -30
 
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptxATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
ATENCION INTEGRAL DEL ADULTO Y ADULTO MAYOR.pptx
 
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
 
tema ilustrado 9 el inicio del reinado de juan carlos I
tema ilustrado 9 el inicio del reinado de juan carlos Itema ilustrado 9 el inicio del reinado de juan carlos I
tema ilustrado 9 el inicio del reinado de juan carlos I
 
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDADGROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
 
La Bauhaus y la nueva tipografía en el diseño gráfico
La Bauhaus y la nueva tipografía en el diseño gráficoLa Bauhaus y la nueva tipografía en el diseño gráfico
La Bauhaus y la nueva tipografía en el diseño gráfico
 
Fundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principalesFundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principales
 
secuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulossecuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulos
 
Triptico de los derechos humanos pe señorees jaja
Triptico de los derechos humanos pe señorees jajaTriptico de los derechos humanos pe señorees jaja
Triptico de los derechos humanos pe señorees jaja
 
GRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivosGRUPO 1.pptx problemas oportunidades objetivos
GRUPO 1.pptx problemas oportunidades objetivos
 
Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....
 
Afiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezAfiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola Perez
 
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docxPLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
 
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfINICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
 

diseno1.ppt

  • 1. (c) P. Gomez-Gil, INAOEP. 2009 1 DISEÑO DE SOFTWARE 1ª. Parte NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP Versión:25-10-2009
  • 2. (c) P. Gomez-Gil, INAOEP. 2009 2 Pasando del Análisis al Diseño [Pressman 05]
  • 3. (c) P. Gomez-Gil, INAOEP. 2009 3 Diseño  Es el proceso de aplicar varias técnicas y principios con el propósito de definir un dispositivo, proceso o sistema con suficiente detalle que permita su realización física.  Diseño es mas que programar o escribir código…
  • 4. (c) P. Gomez-Gil, INAOEP. 2009 4 Guías para un Diseño de Calidad . . .Hay una diferencia entre hacer que un software trabaje, y hacerlo que trabaje correctamente. . .
  • 5. (c) P. Gomez-Gil, INAOEP. 2009 5 Guías para un Diseño de Calidad (cont.) 1. Un buen diseño debe tener una arquitectura que: 1. Se ha creado utilizando estilos o patrones “reconocidos” 2. Esta hecho de componentes 3. Se puede implementar de una manera evolutiva, facilitando la implementación y las pruebas 2. Un buen diseño es modular, es decir, puede partirse de manera lógica en elementos o subsistemas. 3. Un buen diseño contiene representaciones diferenciales de datos, arquitectura, interfaces y componentes.
  • 6. (c) P. Gomez-Gil, INAOEP. 2009 6 Guías para un Diseño de Calidad (cont.) 4. Un buen diseño debe conducir a estructuras de datos que son apropiadas para las clases a implementarse, y que resultan de patrones reconocidos. 5. Un buen diseño debe llevar a componentes que presentan características funcionales independientes. 6. Un buen diseño debe conducir a interfaces que reducen la complejidad de las conexiones entre componentes y el medio externo.
  • 7. (c) P. Gomez-Gil, INAOEP. 2009 7 Guías para un Diseño de Calidad (cont.)  Un buen diseño debe llevarse a cabo utilizando métodos repetibles y que es conducida por la información obtenida en el análisis.  Un buen diseño debe representarse usando una notación que es efectiva en la manera que comunica el significado del diseño.
  • 8. (c) P. Gomez-Gil, INAOEP. 2009 8 Atributos de Calidad en el Diseño  Funcionalidad  Usabilidad  Confiabilidad  Desempeño  Sustentabilidad …y que significa todo esto??
  • 9. Conceptos fundamentales de Diseño 1. Abstracción 2. Refinamiento 3. Arquitectura 4. Modularidad 5. Patrones 6. Clases del diseño (c) P. Gomez-Gil, INAOEP. 2009 9
  • 10. (c) P. Gomez-Gil, INAOEP. 2009 10 Conceptos fundamentales de diseño: Abstracción y Refinamiento 1. ABSTRACCIÓN La solución a cualquier problema se presenta en varios niveles de abstracción. En el nivel mas alto se presenta una solución general. En el nivel mas bajo se presenta una solución que puede implementarse directamente. 2. REFINAMIENTO La arquitectura de un programa se desarrolla a través del detallado sucesivo de niveles.
  • 11. (c) P. Gomez-Gil, INAOEP. 2009 11 Conceptos fundamentales de diseño: 3. Arquitectura  La arquitectura de software se refiere a la estructura global del software y la manera en que esta estructura proporciona integridad conceptual al sistema.  Representa los componentes que tiene el software, como interactúan y la estructura de los datos que usan estos componentes  El uso de patrones arquitectónicos permitirán a los diseñadores reutilizar componentes  La arquitectura del diseño se puede representar utilizando diferentes modelos: Estructurales, Plantillas, Dinámicos, de procesos, y funcionales.
  • 12. Conceptos fundamentales de diseño: 4. Modularidad  Es un atributo del software que permite que un programa sea manejable intelectualmente hablando.  Teóricamente el aumento en el número de módulos disminuye la complejidad, y por lo tanto el esfuerzo de resolver un problema; entonces con un número infinito de módulos tendríamos un problema de complejidad cero.  Sin embargo el aumento en el número de módulos genera un aumento en el costo por comunicación entre módulos. (c) P. Gomez-Gil, INAOEP. 2009 12
  • 13. (c) P. Gomez-Gil, INAOEP. 2009 13 Número de módulos vs. costo COSTO O ESFUERZO NÚMERO DE MÓDULOS costo por interface costo por módulo Región de mínimo costo
  • 14. (c) P. Gomez-Gil, INAOEP. 2009 14 Otras características de modularidad COHESIÓN Es la medida de la fuerza funcional de un módulo o clase. Se busca que la clase tenga la cohesión mas alta posible, lo cual ocurre cuando todos sus elementos contribuyen a la ejecución de una misma tarea. ACOPLAMIENTO Es la medida de la interdependencia relativa entre clases. Se busca que exista el mínimo posible de acoplamiento entre clases, lo cual sucede cuando las clases se comunican solamente por medio de mensajes.
  • 15. (c) P. Gomez-Gil, INAOEP. 2009 15 Conceptos fundamentales de diseño: 5. Patrones Un patrón de diseño describe una estructura de diseño que resuelve un problema de diseño particular, dentro de un contexto específico. Un patrón de diseño provee información que permite al diseñador determinar si el patrón es aplicable, si puede re-usarse y si se puede usar como guía para desarrollar algún patrón similar con estructura diferente.
  • 16. (c) P. Gomez-Gil, INAOEP. 2009 16 Conceptos Fundamentales del diseño (cont.) 6. Clases de Diseño  Las clases generadas en el análisis definen el dominio del problema.  En el diseño, las clases se definen de manera que se refinan las clases obtenidas en el análisis a fin de que se puedan implementar,  El diseño crea un nuevo conjunto de clases que permiten implementar la infraestructura de software que va a sostener la solución.
  • 17. (c) P. Gomez-Gil, INAOEP. 2009 17 Niveles de clases del diseño Se sugieren 5 niveles de clases de diseño:  Clases para el manejo de la interfaz con el usuario  Clases para el dominio del negocio  Clases para el proceso  Clases para la persistencia  Clases de administración y control del sistema
  • 18. Características de clases “bien formadas”  Completa y suficiente. Una clase de diseño debe tener todos los atributos y métodos razonablemente esperados para existir.  Primitividad. Los métodos se deben enfocar en resolver UN servicio de la clase. Una vez que se ha implementado un servicio a través de un método, la clase no debe proveer ninguna otra manera de hacer la misma cosa  Alta cohesión. Una clase con un diseño cohesivo tiene un conjunto pequeño y enfocado de responsabilidades y enfoca exclusivamente sus atributos y métodos a cumplir esas responsabilidades  Bajo acoplamiento. Aunque las clases tienen que colaborar entre sí, esta colaboración debe ser lo mínimo necesario (c) P. Gomez-Gil, INAOEP. 2009 18
  • 19. El modelo de diseño  Puede verse desde 2 posibles dimensiones: proceso y abstracción  La dimensión del proceso indica la evolución del modelo confirme se van ejecutado el proceso de desarrollo de software  La dimensión de abstracción representa el nivel de detalle que surge cuando cada elemento del modelo de análisis se va transformando en su equivalente de diseño, y posteriormente se va refinando iterativamente  La línea punteada en la figura indica la frontera (difusa) entre análisis y diseño (c) P. Gomez-Gil, INAOEP. 2009 19
  • 20. (c) P. Gomez-Gil, INAOEP. 2009 20 Dimensiones del modelo de diseño [Pressman 05]
  • 21. Elementos de diseño de datos  Crea el modelo de datos e información, representado en un nivel de abstracción alto, y se va refinando progresivamente  En la implementación este modelo de datos se traduce en bases de datos, las cuales en un futuro formarán “warehouses” que permitirán el manejo de sistemas administradores de conocimiento de la empresa (c) P. Gomez-Gil, INAOEP. 2009 21
  • 22. Elementos de diseño de arquitectura  El modelo de arquitectura se obtiene principalmente de 3 fuentes: 1. Información acerca del dominio de aplicación del software a construirse 2. Elementos del modelo de análisis tales como diagramas de flujo o clases generadas en el análisis sus relaciones y colaboraciones 3. Disponibilidad de patrones de arquitectura (c) P. Gomez-Gil, INAOEP. 2009 22
  • 23. Elementos de diseño de interfaz  Los elementos de diseño de interfaz describen como la información fluye entrando y saliendo del sistema, y como se comunican a través de los componentes definidos como parte de la arquitectura  Hay 3 elementos importantes en el diseño de interfaces: 1. Interfaz con el usuario 2. Interfaces externas con otros sistemas, dispositivos, redes u otros productores o consumidores de información 3. Interfaces internas entre los diferentes componentes de diseño (c) P. Gomez-Gil, INAOEP. 2009 23
  • 24. Diseño de interfaces externas  Requiere información definitiva sobre la entidad a la cual la información se manda o recibe.  Debe incluir pruebas de errores y características de seguridad (c) P. Gomez-Gil, INAOEP. 2009 24
  • 25. Diseño de interfaces internas  Está fuertemente relacionado con el diseño a nivel componentes (diseño detallado)  En algunos casos, una interface se diseña de igual manera que una clase.  Según la OMG “una interfaz es un especificador de operaciones externamente visibles (publicas) de una clase, componente u otro clasificador (incluyendo subsistemas) sin la especificación de una estructura interna”  Una interfaz es un conjunto de operaciones que describe alguna parte del comportamiento de un sistema y las operaciones necesarias para accesar esas operaciones (c) P. Gomez-Gil, INAOEP. 2009 25