Full transcript
0:04bien comenzamos la primera disciplina de
0:07esta metología que es el modelo del
0:09dominio esta recordamos que se enfoca en
0:12la realidad en el mundo Real Quiero
0:16quiero antes de empezar a hacer el
0:17proyecto antes de empezar a tomar
0:19requisitos análisis diseños antes de
0:22tomar cualquier decisión Quiero ver cuál
0:23es el
0:24contexto del mundo real en el que voy a
0:28empotrar mi tema software Hardware y
0:32cómo va a colaborar con la organización
0:34est y sobre todo va a el
0:37vocabulario que vamos a respetar durante
0:39todo el proyecto este sería el
0:42modelo este este esta esta disciplina
0:47debería llevarse a cabo por el comercial
0:48o el gerente de la empresa que el que ha
0:51estado en conversaciones con el cliente
0:53hasta que han encontrado una forma
0:55viable de llevar a cabo el desarrollo de
0:58este producto en el caso de que el
1:00comercial o el gerente la línea de venta
1:04no sé qué tal no hubiera hecho nada de
1:06esto entonces eh la metodología te
1:09sugiere que lo primero que hagas es esto
1:11antes de empezar con requisitos y con
1:14nada bien Vamos a ver la definición los
1:17objetivos la actividad el modelo del
1:19dominio en Sí cómo queda Y las
1:22conclusiones bien el modelo del dominio
1:25lo que hace es describir los conceptos
1:26más importantes tipos de objetos HM pero
1:30estamos hablando del mundo real no
1:31estamos hablando de objetos software
1:33estamos hablando de eh puerta ventana Eh
1:37bueno Si
1:39fuera si fuera que vamos a hacer un
1:42software
1:44para para edición de planos de un
1:47arquitecto de civil me refiero o sea
1:49para diseñar casas para un diseñador
1:52Bueno pues entonces pues que me cuente
1:54que me cuente las cosas que tiene que
1:55tiene que tiene pensado
1:57eh él quiere hablar de distintos
2:00materiales en las paredes pues papel
2:03pintado que si pinturas que si ladrillo
2:06visto que si no sé qué bueno é me tiene
2:08que estar contando el vocabulario de de
2:11su mundo de cómo él hace diseños para
2:13para casa vale si es decorador bueno
2:16pues son tipos de objetos pero son
2:18reales no no estamos hablando de
2:20software todavía Nadie duda o nadie
2:23niega que a lo mejor en el Software que
2:25hagamos para un decorador de casas al
2:29final tengamos
2:30en nuestro software tengamos clase
2:32puerta clase ventana Por qué Porque nos
2:34inspiramos un poco en la realidad en ese
2:36vocabulario Vale entonces vamos a
2:38centrarnos en el mundo real y vamos a
2:40olvidarnos de que vamos a posterior y
2:42hacer un sistema software con unos
2:43requisitos y código nos olvidamos de
2:45requisitos y de bien pues entonces aquí
2:48vamos a contemplar objetos de negocio
2:51que representan cosas que son
2:52manipuladas objetos del mundo real y
2:54conceptos de un
2:56sistema hacer un seguimiento como unas
2:59actas una
3:00asignatura algo de lo que estamos
3:02haciendo un seguimiento eventos que
3:05ocurren eventos que ocurren Pues que ha
3:09habido un movimiento que ha habido un
3:11desplazamiento que ha habido
3:13un un aprobado que ha habido un suspenso
3:17eventos que
3:18ocurren las cosas relevantes en el libro
3:22hablan de esto eh en la asignatura que
3:24estudiamos de análisis y diseño dent
3:26objetos técnicas de análisis son las que
3:28justamente podamos explicar aquí que era
3:30eh eh A través del lenguaje formal que
3:34era a priori subrayando sustantivos y
3:37verbos para los nombres de clases y
3:39métodos Pero tenía problemas con los
3:40sinónimos las anáforas cu pero nos vale
3:43el enfoque clásico que era un listado de
3:45cosas que normalmente sugieren la
3:49existencia de una clase Como por ejemplo
3:52organizaciones personas roles eh eh
3:55cosas tangibles dispositivos eh Y ten
3:59dan una lista de larga como estudamos en
4:00su momento también Hablamos allí del
4:03Análisis del dominio que no lo hagan
4:05solo los informáticos sino que se haga
4:07con un experto en El dominio más bien
4:09que lo haga el experto en El dominio y
4:11el informático le supervisa para que
4:13llegue al nivel de detalle oportuno o
4:15para por supervisarlo y también allí
4:18hablamos de análisis eh Por reparto de
4:21responsabilidades pues todas esas cosas
4:23son aplicables justo en este punto para
4:26encontrar los conceptos importantes Cuál
4:28es el objetivo es comprender la
4:30estructura y dinámica de la organización
4:32donde vamos a meter nuestro
4:34sistema él cuando me cuenta su
4:36organización me va a estar contando los
4:38problemas que tiene la oración y esto lo
4:40hacemos a mano y aquí se producen muchos
4:41errores y muchas veces esto esta
4:44información Se pierde y yo quiero tener
4:46constancia O tengo muchísima información
4:48pero no no no no puedo hacer
4:51estadísticas porque no tengo personal
4:53para hacer estadísticas que me interesan
4:55para eh que dirigir la empresa en otro
4:58sentido bueno pu todas estas cosas son
5:02son de lo que haale el modelo del
5:03dominio del mundo real de acuerdo
5:06también permite tener una comprensión
5:08común de la organización porque cuando
5:11acaba el señor de contarme el cliente
5:13acaba de contarme cómo él ve su
5:14organización Bueno pues ya la
5:16compartimos él y nosotros Así que
5:18tenemos el mismo vocabulario y nos
5:20ahorramos muchísimos problemas pero
5:22muchísimos y y además de alguna forma ya
5:27están obteniéndose requisitos si estar
5:29centrado en los requisitos del sistema
5:31Hardware Software ya estamos capturando
5:34eh requisitos del sistema futuro pero
5:37nosotros solo hablamos del modelo del
5:39dominio de la realidad bien cómo se
5:43hace esta actividad Normalmente se hacen
5:46talleres al decir talleres me refiero un
5:48despacho una mesa con una buena pizarra
5:50o una buena pantalla para una
5:53herramienta Case y dos tres cuatro
5:55personas como muchísimo y empezar a
5:57contar y a contar qué es lo que hacéis
5:59que tenéis que es importante que no es
6:01importante y hay que aprender a
6:04preguntarle de mil formas las mismas
6:08cosas para ver si cuando él se explica
6:10saca algo nuevo porque muchas veces lo
6:12que ocurre es que el cliente eh sin
6:15creer se está olvidando lo da por hecho
6:18cosas que son fundamentales entonces Hay
6:21que preguntar preguntar y preguntar eh
6:23él lo cuenta Luego se lo cuentas tú te
6:26quedas trabajando con ella y porque esto
6:28no está relacionado entonces vuelves a
6:29quedar con él que te explique dudas vale
6:32Así hasta que haya un convencimiento
6:34mutuo de ambas partes de los clientes y
6:37del equipo de desarrollo de que de que
6:39hemos encontrado los los sustantivos
6:43eh relevantes de de su organización y
6:46comprendemos la
6:48organización bien cómo sería un modelo
6:50del dominio Bueno pues a
6:53priori no hay no hay un formato mientras
6:56que con otras actividades que veremos en
6:58en la metodología unificado te van
7:00diciendo y esta actividad Tiene que
7:02sacar un diagrama de tal Y este un
7:04diagrama de tal Y está todo clarísimo
7:06Esto está muy abierto el modelo del
7:08dominio es tratar de capturar la
7:11organización y y y las cosas relevantes
7:15para ello cualquier tipo de diagrama
7:18cualquier tipo de diagrama a priori
7:20diagrama de clases diagrama de objetos
7:22diagrama de Estados diagrama de
7:23actividad todos son viables hombre
7:26diagramas de de
7:29lo diagramas de despliegue o diagramas
7:32de componentes para el Hardware y el
7:33software pues francamente en un modelo
7:36de dominio que estamos viendo la
7:37realidad donde yo emparé mi sistema Pues
7:40en su realidad si hay equipos Hardware y
7:44Software entonces tendrán sentido estos
7:46diagramas Si no los hay como la mayoría
7:49de las veces Bueno pues entonces no no
7:53tienen necesidad de hacer diagramas de
7:55des diagramas de despliegue y diagramas
7:57de componentes los diagramas que que se
8:00necesit este diagrama Este es el
8:03diagrama del modelo del dominio para el
8:05juego de las tres en raya y bueno yo
8:07trato de representar aquí las cosas
8:08relevantes de un tres enraya hay un
8:11jugador que juega de cero a n partidas
8:15cada partida tiene un turno tiene un
8:17tablero y tiene una y puede poner piezas
8:22que es un evento eh para colocar piezas
8:25puede ser de dos maneras o bien por
8:26poner o bien por mover son los dos tipos
8:29de eventos que aquí ocurren las cosas
8:31que ocurren las TR ures que se mueven o
8:34se ponen pie ambos están asociados a una
8:38o dos coordenadas
8:39correspondient luego por otro lado el
8:41tablero está lleno de coordenadas las
8:43cuales tienen una pieza las cuales
8:46tienen un color y le he llamado color
8:48acro nombre a los ceros y las x y y la x
8:51se me ha perdido falta x vale Bueno pues
8:54analizando las coordenadas me puedo
8:56encontrar un Tic Tac toe por una pieza
8:59colocada en un momento dado al poner o a
9:01mover Yo me encuentro que está asociado
9:03a a un tres en Raya que bien puede ser o
9:06en fila o en columna o en diagonal la
9:08cual puede ser principal o secundaria
9:10Bueno yo lo que pretendo
9:13es que alguien que vea este diagrama
9:16empiece a saber las cosas fundamentales
9:20no con todo detalle de la organización y
9:22para el juego la estés en raya bueno
9:24tendrá más o menos acierto pero es esto
9:27hay un jugador un juego un tablero un
9:29turn hay formas de hacer el Tic Tac toe
9:32y los eventos son que se ha movido una
9:34pieza o que se ha puesto una pieza y
9:36poco más no hay
9:40más conclusiones
9:43Bueno Este ejemplo es muy muy pequeño
9:45muy muy pequeño ahora haremos más
9:49diagramas para para otro ejemplo el del
9:52clon solitario de
9:54Windows pero si fuera esto nada más las
9:58conclusiones bueno lo que se pretende es
10:00comprender el contexto del sistema con
10:01un conocimiento crucial en la
10:03identificación de casos de uso vale si
10:06yo con el diagrama anterior yo sé cuáles
10:08son los casos de uso que hay ahí porque
10:11están estrechamente relacionados con los
10:13eventos que están produciéndose poner
10:16pieza mover pieza no hay mucho más vale
10:20bien por otro lado conseguimos el
10:22glosario que ayuda a usuarios clientes y
10:24desarrolladores a otros implicados tener
10:26un vocabulario común entonces y nombrar
10:29esos objetos nos ayuda a desarrollar un
10:31glosario de términos que permit a que
10:32cada uno trabaje en el sistema
10:33comunicarse mejor donde la confusión
10:36abunda la ingeniería es difícil sino
10:38imposible y para construir un sistema
10:40software de cualquier tamaño los
10:42ingenieros actuales deben mezclar el
10:44lenguaje de todos los participantes de
10:46una forma consistente no puede ser que
10:49el cliente habla de una manera y tú
10:50hables de otra porque entonces es un
10:53caos en el ejemplo que vamos a ver ahora
10:55del clck El solitario de Windows el
10:58famoso solitario
10:59que bueno reparte las las cartas en
11:02lotes por abajo y persigue poner del As
11:06al rey con ciertas reglas y ciertos
11:09momentos bueno en cualquier juego de
11:11cartas mi experiencia que es el el
11:14ejercicio al que recurro habitualmente
11:16te das cuenta que gracias
11:18al al modelado del dominio pues
11:21Tonterías como por ejemplo palo un palo
11:25Qué es un palo Bueno pues es que hay
11:27gente que entiende que un palo es oros o
11:32copas o espadas o bastos o diamantes
11:34picas pero es que hay otros que cuando
11:37dicen palo se están refiriendo al as de
11:40copas dos de copas tres de copas así
11:42hasta el rey de copas entonces un palo
11:44Qué es como un brochazo de color a una
11:47carta o es un conjunto de cartas o sea
11:50es parte de una carta o es una colección
11:52que reúne cartas y qué ocurre Pues que
11:55en el lenguaje natural nosotros hablamos
11:57de formas muy relajadas pero nosotros
11:59tenemos que aclarar estos conceptos te
12:02imaginas Y yo lo he visto en más de una
12:04consultoría un proyecto en el que
12:06Durante un mes mes y medio dos meses
12:08hasta que surja
12:09eh el descubrimiento de que es que uno
12:12le estaba llamando palo a una cosa otro
12:14a otra tú te imaginas leer el código de
12:17una persona que le llama palo a 10
12:20cartas cuando tú piensas que palo es
12:22oros copas bueno es que lo lees es que
12:24no te enteras de nada todo esto por qué
12:25es por no hab estar elegido un
12:26vocabulario común y entonces hay un
12:29derroche de esfuerzo código de baja
12:31calidad eh cosas innecesarias solo por
12:34no haber parado brevemente porque esta
12:38tarea no lleva mucho tiempo dicen es que
12:41son metodologías pesadas bueno
12:45eh
12:46yo yo prefiero con mucho parar un
12:49momentito hacer esto y ya todos tenemos
12:52el vocabulario común y ya estoy bastante
12:55más tranquilo de de que lo que piensa
12:58todo equipo de desarrollo es lo mismo no
13:01va cada uno por un lado como ocurre en
13:03muchos proyectos y esos son causa de los
13:06grandes dramas de muchos proyectos vale
13:09pero es que además además de de que me
13:13va a permitir establecer la comprensión
13:15común el común Lo como quieras es que
13:18todo este trabajo que vamos a hacer va a
13:20ser para que otras actividades
13:22posteriores de requisitos y de análisis
13:25incluso no empieza con un fol en blanco
13:27empiezan ya con un Mon un montón de
13:29trabajo hecho pero sin haber estado
13:31pensando en requisitos y mucho menos en
13:32análisis pensando en el mundo real de
13:35acuerdo