• No se han encontrado resultados

Proceso de Desarrollo OO

N/A
N/A
Protected

Academic year: 2018

Share "Proceso de Desarrollo OO"

Copied!
77
0
0

Texto completo

(1)

Proceso de Desarrollo OO

(2)
(3)
(4)
(5)

Analisis v.s. Diseño

• El Análisis pone énfasis en una

investigación del problema y los requisitos, en vez de ponerlo en la solución.

– Es adecuado clasificarlo como análisis de requisitos o análisis de los objetos del dominio.

– Se resume en la frase “hacer lo correcto”. – Se resume en la frase “hacer lo correcto”.

• El diseño pone énfasis en una solución conceptual que satisface los requisitos en vez de ponerlo en la implementación.

– Es adecuado clasificarlo como diseño de objetos.

(6)

Diseño

• La finalidad del Diseño orientado a objetos es definir los objetos

software y sus colaboraciones. Una manera habitual para ilustrar estas colaboraciones es el diagrama de Interacción (vista dinámica) y

Interacción (vista dinámica) y

(7)
(8)
(9)
(10)

Diseño

• El diseño orientado a objetos

presta especial atención a la

definición de objetos software

y en cómo colaboran para

(11)
(12)

Diseño

• El diseño de objetos se se

describe como:

(13)

Diseño

• La decisión de qué metodos,

donde colocarlos y cómo

deberían interactuar los objetos

es muy importante.

• Es una etapa crítica; es la parte

• Es una etapa crítica; es la parte

esencial de lo que entendemos

por desarrollar un sistema

(14)

Modelo de Diseño

• GRASP

• Diagramas de Interacción

(RCU).

(15)
(16)

GRASP

• Acrónimo de: General

Responsibility Assignment Software

Patterns. (Patrones generales de software par a asignar

responsabilidades). responsabilidades).

• El nombre sugiere la importancia de aprehender (grasping en ingles)

estos principios para diseñar con

(17)

¿Qué es un patrón? (1)

• Los desarrolladores orientados a objetos con experiencia acumulan un repertorio tanto de principios generales como de soluciones

basadas en aplicar ciertos estilos que basadas en aplicar ciertos estilos que les guían en la creación de software. • Estos estilis y principios puestos en

un formato estructurado que

describa el problema y la solución, y se les da un nombre, podrían

(18)
(19)

¿Qué es un patrón? (2)

• Un patrón es una descripción de un problema y la solución, a la que se da un nombre y que se puede

aplicar a nuevos contextos;

• idealmente proporciona consejos sobre el modo de aplicarlo en varias circunstancias y considera los

(20)

Qué es un patrón? (3)

• El término patrón sugiere algo repetitivo,

• El termino nuevo patrón podría considerarse un oxímoron.

(21)

Qué es un patrón? (4)

(22)

Resumiendo lo anterior (1)

• La asignación habilidosa de responsabilidades es

extremadamente importante en el diseño de objetos.

• La decisión acerca de la asignación • La decisión acerca de la asignación

de responsabilidades tiene lugar

durante la creación de los diagramas de interacción y con seguridad

(23)

Resumiendo lo anterior (2)

• Los patrones son pares

problema/solución con nombre que codifican buenos consejos y

principios relacionados con

frecuencia con la asignación de frecuencia con la asignación de responsabilidades.

• Los patrones GRASP describen los principios fundamentales del diseño de objetos y la asignación de

(24)

Los patrones GRASP son los

siguientes:

• Experto en Información. • Creador.

• Controlador.

• Bajo Acoplamiento (Evaluativo)

• Alta Cohesión

• Alta Cohesión (Evaluativo)

• Polimorfismo

• Fabricación Pura • Indirección

(25)

Experto en Información

• Problema:

– ¿Un principio general del diseño de objetos y la asignación de

responsabilidades?

• Solución:

– Asigne una responsabilidad al experto en información, -la clase que tiene la

(26)

Ejemplo:

• Problema

– ¿Quién debe tener la responsabilidad de permitir conocer el total de la venta?

(27)

Ejemplo: (2)

(28)

Ejemplo: (2)

(29)
(30)

Curiosidades sobre Experto en

Información.

• En el campo del software orientado a objetos, todos los objetos están

“vivos” o “animados”, y pueden tener responsabilidades o hacer cosas.

• Hacen cosas relacionadas con la información que conocen, yo lo denomino el principio de

(31)

Creador

• Problema:

– ¿Qué objeto debería crear otro(s) objeto(s)?

• Solución:

– Asigne a la clase B la responsabilidad de

crear una instancia de la clase A si se cumple alguno de los puntos siguientes:

crear una instancia de la clase A si se cumple alguno de los puntos siguientes:

• B contiene a A • B agrega a A

• B tiene los datos de inicialización de A (Experto en A)

• B registra a A

(32)

Patrones relacionados

• Bajo Acoplamiento

• Factoría

(33)

Ejemplo:

• Cuando se realice un pago

¿Qué clase debería crear la

instancia de Pago y asociarla

con la Venta?

(34)
(35)

Ejemplo:

(36)

Ejemplo:

(37)

Ejemplo:

(38)

Ejemplo:

• ¿Cuál solución es más

adecuada?

A

(39)

Ejemplo:

• El patrón que veremos a

continuación nos ayudará a

decidir:

(40)

Bajo Acoplamiento

• Problema:

– ¿Cómo dar soporte a las bajas

dependencias y al incremento de la reutilización?

• Solución:

(41)

¿Cuándo existe acoplamiento?

• El tipoX tiene un atributo que hace referencia a

una instancia de tipoY.

• Un objeto de tipoX invoca los servicios de un

objeto de tipoY.

• El tipoX tiene un método que comprende un

• El tipoX tiene un método que comprende un

parámetro de tipoY o el objeto de retorno sea

una instancia del tipoY.

• El tipoX es una subclase, directa o indirecta del

tipoY.

• El tipoY es una interfaz y el tipoX implementa

(42)

Ejemplo:

(43)

Ejemplo:

• ¿Cuál solución es más adecuada?, en otras palabras…

• ¿Qué solución presenta menor acoplamiento?

A

(44)

Alta Cohesión

• Problema:

– ¿Cómo mantener la complejidad manejable?

• Solución:

– Asigne responsabilidades de manera que la cohesión

(45)

¿Cuándo se tiene cohesión?

• La cohesión es una medida de la fuerza con que se relacionan y el grado en que se focalizan las

responsabilidades de un elemento.

• Un elemento con responsabilidades altamente relacionadas y que no

(46)

Ejemplo

• ¿Qué diseño favorece más la cohesión?

A A

(47)

Alta Cohesión

• Como regla empírica, una clase

con alta cohesión tiene un

número relativamente pequeño

de metodos, con funcionalidad

altamente relacionada y no

altamente relacionada y no

realiza mucho trabajo.

(48)

El Yin y el Yang

• Una mala cohesión causa

normalmente un mal acoplamiento y viceversa.

• Imagine una clase que dibuja un • Imagine una clase que dibuja un

elemento GUI, maneja sus eventos, almacena datos en BD e invoca

servicio de objetos remotos. (no cohesiva y muy acoplada a

(49)

Controlador

• Problema:

– ¿Quién gestiona un evento del sistema?

• Solución:

– Asigne la responsabilidad de gestionar un mensaje o evento del sistema a una – Asigne la responsabilidad de gestionar

un mensaje o evento del sistema a una clase que represente una de estas dos opciones:

• Representa el sistema global, dispositivo o un subsistema (controlador de

fachada)

• Representa un escenario de caso de uso en el que tiene lugar el evento del

(50)

¿Evento del sistema?

• Cuando un cajero utiliza un

terminal de PDV y presiona el botón “Finalizar Venta”, esta generando un evento del sistema para que el sistema ejecute el cierre de la venta. sistema ejecute el cierre de la venta.

• Cuando un escritor utiliza in

procesador de texto y presiona el

botón “Comprobar Ortografía”, esta generando un evento del sistema,

(51)

Controlador

• Un

evento del sistema

de

entrada es un evento generado

por un actor externo.

• Evento del sistema ≡ Operación del sistema

(52)

Controlador

• Un controlador

NO

es un

objeto que pertenece a la

interfaz de usuario.

• Los elementos GUI deben

delegar el manejo de

(53)
(54)
(55)

Controlador de fachada

(56)

Controlador de caso de uso o

sesión

(57)

Ejemplo:

(58)
(59)
(60)

Importante

• La aplicación no tiene que tener obligatoriamente un solo

controlador de fachada saturado, puede utilizar controladores de casos de uso.

casos de uso.

• Diseñe el controlador de manera que, ante todo, delegue el

cumplimiento de cada

(61)
(62)
(63)

Ejemplo y ejercicio

• Comente los siguientes

diagramas de Interacción sobre

su cumplimento en cuanto a

patrones de diseño.

patrones de diseño.

• Realice una réplica de los

mismos utilizando la

(64)

Diagrama de Colaboración

object Carreras

:Administra dorCarrera s c :Ca rrer a

introducirDatosDeCarrera(idCarrera, nombre)

1: crearCarrera(idCarrera, nombre)

:Car rera s

(65)

Diagrama de Colaboración

object Alumno

:Administra dorCarrera s :Car rer a a :Alumno

introducirDatosDeAlumno(nControl, nombre, direccion, idCarrera)

2: introducirDatosDeAlumno(nControl, nombre, direccion) 3: crear(nControl, nombre, direccion)

:Car rera s

:Alumnos :CatalogoAlumnos

1: carrera= buscar(idCarrera)

3.1: añadir(a)

(66)
(67)
(68)
(69)
(70)
(71)
(72)
(73)
(74)
(75)
(76)
(77)

Referencias

Documento similar

If certification of devices under the MDR has not been finalised before expiry of the Directive’s certificate, and where the device does not present an unacceptable risk to health

In addition to the requirements set out in Chapter VII MDR, also other MDR requirements should apply to ‘legacy devices’, provided that those requirements

The notified body that issued the AIMDD or MDD certificate may confirm in writing (after having reviewed manufacturer’s description of the (proposed) change) that the

En estos últimos años, he tenido el privilegio, durante varias prolongadas visitas al extranjero, de hacer investigaciones sobre el teatro, y muchas veces he tenido la ocasión

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre