SlideShare una empresa de Scribd logo
1 de 13
1.El diseño como etapa del proceso de producción de software
2.Diseño vs. modelo funcional
3.Diseño basado en ocultación de información
4.Diseño basado en tipos abstractos de datos
5.Diseño orientado a objetos
6.Documentación de un diseño
U N I D A D I
D I S E Ñ O D E S O F T W A R E
1. Dos diseños distintos, ¿cuál es el mejor?
2. Diseño basado en ocultación de la información (DBOI)
3. Diseño del software de control de una estación de peaje
4. Superioridad y limitaciones del DBOI
5. Diseño basado en tipos abstractos de datos (DTAD)
6. Diseño orientado a objetos (DOO)
7. Algunos tópicos complementarios
8. Incidencia de los lenguajes de programación en un diseño
9. Límites del DOO
10. Documentación de diseño
U N I D A D I
D I S E Ñ O D E S O F T W A R E
D I S E Ñ O D E S O F T W A R E
1 - D O S D I S E Ñ O S D I S T I N T O S , ¿ C U Á L E S E L M E J O R ?
ACONTINUACIÓN PRESENTAREMOS DOS
DISEÑOS DISTINTOS PARA EL MISMO
PROBLEMA Y ANALIZAREMOS
cuál de ellos es el mejor.
CONSIDEREMOS UN PROBLEMA CAJAS DE
AHORRO , AL CUAL
le adicionamos el siguiente requisito:
SE DEBE REGISTRAR EN UNA BITÁCORA CADA
DEPÓSITO MAYOR O IGUAL A $1.000.000.
RECORDEMOS QUE
DISEÑAR UN SISTEMA
DE SOFTWARE
CONSISTE EN:
1. DESCOMPONER EL SISTEMA EN
ELEMENTOS DE SOFTWARE
2. ASIGNAR UNA FUNCIONALIDAD
A CADA ELEMENTO
3. ESTABLECER LA RELACIONES
ENTRE ESOS ELEMENTOS
A C L A R A C I O N
CON EL FIN DE SIMPLIFICAR LA PRESENTACIÓN, DESCRIBIREMOS LOS DISEÑOS
EN TÉRMINOS DE CONCEPTOS DE PROGRAMACIÓN ORIENTADA A OBJETOS Y
SOLO NOS ENFOCAREMOS EN UNA PARTE DEL SISTEMA O LOS
REQUERIMIENTOS.
AUN ASÍ, DEBE QUEDAR MUY CLARO QUE UN DISEÑO NO SE DEBE DAR EN
TÉRMINOS DE UNA TECNOLOGÍA DE IMPLEMENTACIÓN PARTICULAR. LO
HACEMOS ASÍ PORQUE AUN NO HEMOS INTRODUCIDO LOS CONCEPTOS Y
NOTACIÓN ESPECÍFICOS DEL DISEÑO DE SOFTWARE.
ANALISIS
¿
C
U
Á
L
D
E
L
O
S
D
O
S
D
I
S
E
Ñ
O
S
E
S
E
L
M
E
J
O
R
?
¿
C
U
Á
L
E
S
E
L
C
R
I
T
E
R
I
O
P
A
R
A
D
E
T
E
R
M
I
N
A
R
E
L
M
E
J
O
R
D
I
S
E
Ñ
O
?
P
R
O
B
L
E
M
A
S
•
•
J U N T O S P O D E M O S
L O G R A R M Á S
PRIMER DISEÑO
•
•
•
SEGUNDO DISEÑO
La descomposición del segundo diseño consiste de dos clases: CajaAhorros y RegistroDep-
Grandes.
La interfaz de CajaAhorros es la siguiente:
• depositar(Dinero m): suma la cantidad m al saldo actual de la cuenta.
• extraer(Dinero m): resta la cantidad m al saldo actual de la cuenta si este es mayor o igual a m.
• Dinero saldo(): retorna el saldo actual de la caja de ahorros.
La interfaz de RegistroDepGrandes es la siguiente:
• El constructor de la clase recibe un parámetro de tipo CajaAhorros que guarda en una variable de estado (o variable miembro) que
llamaremos ca.
• depositar(Dinero m): si m es mayor o igual a $1.000.000 registra los datos del depósito (e.g. número de caja de ahorros, fecha, hora, etc.)
en un archivo de texto, y luego invoca ca.depositar(m); caso contrario invoca directamente ca.depositar(m).
• extraer(Dinero m): invoca ca.extraer(m).
• Dinero saldo(): invoca ca.saldo().
Notar que ambas clases tienen la misma interfaz.
La relación entre ambas clases se establece por composición de objetos . Es decir, se declara un objeto de tipo CajaAhorros y uno de tipo
RegistroDepGrandes, luego el primero se pasa como parámetro del constructor del segundo.
En términos de código se da lo siguiente (Asumimos que el constructor de una clase tiene el mismo nombre que la clase.):
CajaAhorros c;
RegistroDepGrandes r.RegistroDepGrandes(c);
De allí en más el sistema trabaja sobre r.
Por ejemplo si queremos depositar 1.000 pesos en c hacemos r.depositar(1000).
En consecuencia cuando se efectúa un depósito, r controla si el monto es mayor o igual a 1.000.000 en cuyo caso deja el registro
correspondiente pero también hace el depósito sobre c, como lo indica la función de RegistroDepGrandes.depositar().
¿Cuál de los dos diseños es el mejor? ¿Cuál es el criterio para determinar el mejor
diseño?
A N A L I S I S
El criterio es el principio de Diseño para el Cambio.
El mejor diseño es aquel que permite la implementación de cambios (modificaciones)
de manera tal que:
• Cada cambio se efectúe al menor costo posible
• La introducción de cada cambio no degrade la integridad conceptual del sistema
Entonces, para determinar cuál de los dos diseños es el mejor veremos qué costo
tendría introducir algunos cambios probables.
1. No es necesario dejar un registro de los depósitos grandes.
2. La bitácora se guarda en una base de datos (en lugar de en un archivo de texto).
3. También hay que dejar un registro de las extracciones de más de $100.000.
PARA INCORPORAR EL PRIMER
CAMBIO, EN EL PRIMER DISEÑO
LA INCORPORACIÓN DEL SEGUNDO CAMBIO EN
EL PRIMER DISEÑO
EN CUANTO AL TERCER CAMBIO, SIGUIENDO LA IDEA DEL PRIMER DISEÑO
A H O R A S U P O N G A M O S Q U E E S T E
P R O G R A M A
S E V E N D E A D I S T I N T O S B A N C O S
¡
Diseño de Software mmmmmmmmmmmmmmmmmm.pptx

Más contenido relacionado

Similar a Diseño de Software mmmmmmmmmmmmmmmmmm.pptx

Ejemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con accessEjemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con access
univ of pamplona
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
Darwin Durand
 

Similar a Diseño de Software mmmmmmmmmmmmmmmmmm.pptx (20)

C++ Meetup Madrid
C++ Meetup MadridC++ Meetup Madrid
C++ Meetup Madrid
 
Jh actualiizado
Jh actualiizadoJh actualiizado
Jh actualiizado
 
Modelo de datos.
Modelo de datos.Modelo de datos.
Modelo de datos.
 
Por qué hacemos persistencia de datos
Por qué hacemos persistencia de datosPor qué hacemos persistencia de datos
Por qué hacemos persistencia de datos
 
C# for Beginners
C# for BeginnersC# for Beginners
C# for Beginners
 
Roa y millan
Roa y millanRoa y millan
Roa y millan
 
Jessik
JessikJessik
Jessik
 
Jessik
JessikJessik
Jessik
 
Copia de entorno de grado (1)
Copia de entorno de grado (1)Copia de entorno de grado (1)
Copia de entorno de grado (1)
 
Programación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions NavisionProgramación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions Navision
 
Ejemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con accessEjemplo arquitectura 3 capas con access
Ejemplo arquitectura 3 capas con access
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
1
11
1
 
base de datos #1
base de datos #1base de datos #1
base de datos #1
 
Creación de una Base de datos
Creación de una Base de datos Creación de una Base de datos
Creación de una Base de datos
 
AOP - OSUM springperu(1era Reunion)
AOP - OSUM springperu(1era Reunion)AOP - OSUM springperu(1era Reunion)
AOP - OSUM springperu(1era Reunion)
 
base de datos #1
base de datos #1base de datos #1
base de datos #1
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
 
Fundamentos de Bases de datos
Fundamentos de Bases de datosFundamentos de Bases de datos
Fundamentos de Bases de datos
 

Más de aulasdigitales24

Las cuatro P en el desarrollo de software.pptx
Las cuatro P en el desarrollo de software.pptxLas cuatro P en el desarrollo de software.pptx
Las cuatro P en el desarrollo de software.pptx
aulasdigitales24
 
Ejercicio practico11mmmmmmmmmmmmmmm.pptx
Ejercicio practico11mmmmmmmmmmmmmmm.pptxEjercicio practico11mmmmmmmmmmmmmmm.pptx
Ejercicio practico11mmmmmmmmmmmmmmm.pptx
aulasdigitales24
 
Diseño basado en ocultación de la información (DBOI).pptx
Diseño basado en ocultación de la información (DBOI).pptxDiseño basado en ocultación de la información (DBOI).pptx
Diseño basado en ocultación de la información (DBOI).pptx
aulasdigitales24
 
1-Dos diseños distintos,-cuál es el mejor.pptx
1-Dos diseños distintos,-cuál es el mejor.pptx1-Dos diseños distintos,-cuál es el mejor.pptx
1-Dos diseños distintos,-cuál es el mejor.pptx
aulasdigitales24
 
Placa madre PARTE 1mmmmmmmmmmmmmmmmm.ppsx
Placa madre PARTE 1mmmmmmmmmmmmmmmmm.ppsxPlaca madre PARTE 1mmmmmmmmmmmmmmmmm.ppsx
Placa madre PARTE 1mmmmmmmmmmmmmmmmm.ppsx
aulasdigitales24
 
1- Introduccion- clasificacindelasestructurasdedatos.pptx
1- Introduccion- clasificacindelasestructurasdedatos.pptx1- Introduccion- clasificacindelasestructurasdedatos.pptx
1- Introduccion- clasificacindelasestructurasdedatos.pptx
aulasdigitales24
 
2- Modelos de capas una analogia.pptx
2- Modelos de capas una     analogia.pptx2- Modelos de capas una     analogia.pptx
2- Modelos de capas una analogia.pptx
aulasdigitales24
 
Cómo LIMPIAR el estaño viejo de un PIN.pptx
Cómo LIMPIAR el estaño viejo de un PIN.pptxCómo LIMPIAR el estaño viejo de un PIN.pptx
Cómo LIMPIAR el estaño viejo de un PIN.pptx
aulasdigitales24
 
practica Desmontaje del Samsung Galaxy S8.pptx
practica Desmontaje del Samsung Galaxy S8.pptxpractica Desmontaje del Samsung Galaxy S8.pptx
practica Desmontaje del Samsung Galaxy S8.pptx
aulasdigitales24
 
Tema 1-1Calidad de software.pptx kkkkkkkkk
Tema 1-1Calidad de software.pptx kkkkkkkkkTema 1-1Calidad de software.pptx kkkkkkkkk
Tema 1-1Calidad de software.pptx kkkkkkkkk
aulasdigitales24
 

Más de aulasdigitales24 (15)

Las cuatro P en el desarrollo de software.pptx
Las cuatro P en el desarrollo de software.pptxLas cuatro P en el desarrollo de software.pptx
Las cuatro P en el desarrollo de software.pptx
 
Ejercicio practico11mmmmmmmmmmmmmmm.pptx
Ejercicio practico11mmmmmmmmmmmmmmm.pptxEjercicio practico11mmmmmmmmmmmmmmm.pptx
Ejercicio practico11mmmmmmmmmmmmmmm.pptx
 
Diseño basado en ocultación de la información (DBOI).pptx
Diseño basado en ocultación de la información (DBOI).pptxDiseño basado en ocultación de la información (DBOI).pptx
Diseño basado en ocultación de la información (DBOI).pptx
 
1-Dos diseños distintos,-cuál es el mejor.pptx
1-Dos diseños distintos,-cuál es el mejor.pptx1-Dos diseños distintos,-cuál es el mejor.pptx
1-Dos diseños distintos,-cuál es el mejor.pptx
 
Placa madre PARTE 1mmmmmmmmmmmmmmmmm.ppsx
Placa madre PARTE 1mmmmmmmmmmmmmmmmm.ppsxPlaca madre PARTE 1mmmmmmmmmmmmmmmmm.ppsx
Placa madre PARTE 1mmmmmmmmmmmmmmmmm.ppsx
 
1- Introduccion- clasificacindelasestructurasdedatos.pptx
1- Introduccion- clasificacindelasestructurasdedatos.pptx1- Introduccion- clasificacindelasestructurasdedatos.pptx
1- Introduccion- clasificacindelasestructurasdedatos.pptx
 
1- Big O repaso .pptx
1- Big O repaso                    .pptx1- Big O repaso                    .pptx
1- Big O repaso .pptx
 
2- complejidad algorítmica .pptx
2- complejidad algorítmica         .pptx2- complejidad algorítmica         .pptx
2- complejidad algorítmica .pptx
 
2- Modelos de capas una analogia.pptx
2- Modelos de capas una     analogia.pptx2- Modelos de capas una     analogia.pptx
2- Modelos de capas una analogia.pptx
 
NOTACION BIG O para alumnos.pdf
NOTACION BIG O para            alumnos.pdfNOTACION BIG O para            alumnos.pdf
NOTACION BIG O para alumnos.pdf
 
Cómo LIMPIAR el estaño viejo de un PIN.pptx
Cómo LIMPIAR el estaño viejo de un PIN.pptxCómo LIMPIAR el estaño viejo de un PIN.pptx
Cómo LIMPIAR el estaño viejo de un PIN.pptx
 
practica Desmontaje del Samsung Galaxy S8.pptx
practica Desmontaje del Samsung Galaxy S8.pptxpractica Desmontaje del Samsung Galaxy S8.pptx
practica Desmontaje del Samsung Galaxy S8.pptx
 
Tema 1-1Calidad de software.pptx kkkkkkkkk
Tema 1-1Calidad de software.pptx kkkkkkkkkTema 1-1Calidad de software.pptx kkkkkkkkk
Tema 1-1Calidad de software.pptx kkkkkkkkk
 
Clase 1-1 Utilizacion del tester.pptx practica
Clase 1-1 Utilizacion del tester.pptx practicaClase 1-1 Utilizacion del tester.pptx practica
Clase 1-1 Utilizacion del tester.pptx practica
 
TEMA2.ppt educacion educativa como disciplina
TEMA2.ppt educacion educativa como disciplinaTEMA2.ppt educacion educativa como disciplina
TEMA2.ppt educacion educativa como disciplina
 

Último

6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Último (20)

Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 

Diseño de Software mmmmmmmmmmmmmmmmmm.pptx

  • 1. 1.El diseño como etapa del proceso de producción de software 2.Diseño vs. modelo funcional 3.Diseño basado en ocultación de información 4.Diseño basado en tipos abstractos de datos 5.Diseño orientado a objetos 6.Documentación de un diseño U N I D A D I D I S E Ñ O D E S O F T W A R E
  • 2. 1. Dos diseños distintos, ¿cuál es el mejor? 2. Diseño basado en ocultación de la información (DBOI) 3. Diseño del software de control de una estación de peaje 4. Superioridad y limitaciones del DBOI 5. Diseño basado en tipos abstractos de datos (DTAD) 6. Diseño orientado a objetos (DOO) 7. Algunos tópicos complementarios 8. Incidencia de los lenguajes de programación en un diseño 9. Límites del DOO 10. Documentación de diseño U N I D A D I D I S E Ñ O D E S O F T W A R E
  • 3. D I S E Ñ O D E S O F T W A R E 1 - D O S D I S E Ñ O S D I S T I N T O S , ¿ C U Á L E S E L M E J O R ?
  • 4. ACONTINUACIÓN PRESENTAREMOS DOS DISEÑOS DISTINTOS PARA EL MISMO PROBLEMA Y ANALIZAREMOS cuál de ellos es el mejor. CONSIDEREMOS UN PROBLEMA CAJAS DE AHORRO , AL CUAL le adicionamos el siguiente requisito: SE DEBE REGISTRAR EN UNA BITÁCORA CADA DEPÓSITO MAYOR O IGUAL A $1.000.000.
  • 5. RECORDEMOS QUE DISEÑAR UN SISTEMA DE SOFTWARE CONSISTE EN: 1. DESCOMPONER EL SISTEMA EN ELEMENTOS DE SOFTWARE 2. ASIGNAR UNA FUNCIONALIDAD A CADA ELEMENTO 3. ESTABLECER LA RELACIONES ENTRE ESOS ELEMENTOS
  • 6. A C L A R A C I O N CON EL FIN DE SIMPLIFICAR LA PRESENTACIÓN, DESCRIBIREMOS LOS DISEÑOS EN TÉRMINOS DE CONCEPTOS DE PROGRAMACIÓN ORIENTADA A OBJETOS Y SOLO NOS ENFOCAREMOS EN UNA PARTE DEL SISTEMA O LOS REQUERIMIENTOS. AUN ASÍ, DEBE QUEDAR MUY CLARO QUE UN DISEÑO NO SE DEBE DAR EN TÉRMINOS DE UNA TECNOLOGÍA DE IMPLEMENTACIÓN PARTICULAR. LO HACEMOS ASÍ PORQUE AUN NO HEMOS INTRODUCIDO LOS CONCEPTOS Y NOTACIÓN ESPECÍFICOS DEL DISEÑO DE SOFTWARE.
  • 8. J U N T O S P O D E M O S L O G R A R M Á S PRIMER DISEÑO • • •
  • 9. SEGUNDO DISEÑO La descomposición del segundo diseño consiste de dos clases: CajaAhorros y RegistroDep- Grandes. La interfaz de CajaAhorros es la siguiente: • depositar(Dinero m): suma la cantidad m al saldo actual de la cuenta. • extraer(Dinero m): resta la cantidad m al saldo actual de la cuenta si este es mayor o igual a m. • Dinero saldo(): retorna el saldo actual de la caja de ahorros. La interfaz de RegistroDepGrandes es la siguiente: • El constructor de la clase recibe un parámetro de tipo CajaAhorros que guarda en una variable de estado (o variable miembro) que llamaremos ca. • depositar(Dinero m): si m es mayor o igual a $1.000.000 registra los datos del depósito (e.g. número de caja de ahorros, fecha, hora, etc.) en un archivo de texto, y luego invoca ca.depositar(m); caso contrario invoca directamente ca.depositar(m). • extraer(Dinero m): invoca ca.extraer(m). • Dinero saldo(): invoca ca.saldo(). Notar que ambas clases tienen la misma interfaz. La relación entre ambas clases se establece por composición de objetos . Es decir, se declara un objeto de tipo CajaAhorros y uno de tipo RegistroDepGrandes, luego el primero se pasa como parámetro del constructor del segundo. En términos de código se da lo siguiente (Asumimos que el constructor de una clase tiene el mismo nombre que la clase.): CajaAhorros c; RegistroDepGrandes r.RegistroDepGrandes(c); De allí en más el sistema trabaja sobre r. Por ejemplo si queremos depositar 1.000 pesos en c hacemos r.depositar(1000). En consecuencia cuando se efectúa un depósito, r controla si el monto es mayor o igual a 1.000.000 en cuyo caso deja el registro correspondiente pero también hace el depósito sobre c, como lo indica la función de RegistroDepGrandes.depositar().
  • 10. ¿Cuál de los dos diseños es el mejor? ¿Cuál es el criterio para determinar el mejor diseño? A N A L I S I S El criterio es el principio de Diseño para el Cambio. El mejor diseño es aquel que permite la implementación de cambios (modificaciones) de manera tal que: • Cada cambio se efectúe al menor costo posible • La introducción de cada cambio no degrade la integridad conceptual del sistema Entonces, para determinar cuál de los dos diseños es el mejor veremos qué costo tendría introducir algunos cambios probables. 1. No es necesario dejar un registro de los depósitos grandes. 2. La bitácora se guarda en una base de datos (en lugar de en un archivo de texto). 3. También hay que dejar un registro de las extracciones de más de $100.000.
  • 11. PARA INCORPORAR EL PRIMER CAMBIO, EN EL PRIMER DISEÑO LA INCORPORACIÓN DEL SEGUNDO CAMBIO EN EL PRIMER DISEÑO EN CUANTO AL TERCER CAMBIO, SIGUIENDO LA IDEA DEL PRIMER DISEÑO
  • 12. A H O R A S U P O N G A M O S Q U E E S T E P R O G R A M A S E V E N D E A D I S T I N T O S B A N C O S ¡