jalcaldea / Practica_DAS

Repositorio para la práctica de DAS
4 stars 0 forks source link

Segunda parte - Diseño #4

Closed jalcaldea closed 10 years ago

jalcaldea commented 10 years ago

Hay que hacer el diseño correspondiente a la segunda parte de la práctica. En cuanto estén los UMLs se puede actualizar esto para colgarlos aquí.

jalcaldea commented 10 years ago

Que os parece si seguimos por aquí @baos99 y @AdrianGJ en lugar de #14 va?

Y lo dicho, después de comer voy a buscar cómo hacer los diseño.

baos99 commented 10 years ago

@KekoAlk , vale seguimos por aquí. Yo despues de comer también buscaré a ver como se hacen los diseños ya que no tengo ni idea.

jiep commented 10 years ago

He encontrado un trabajo fin de carrera donde se diseña e implementa un framework. Y aunque lo diseñe con la arquitectura MVC, puede ser interesante.

jalcaldea commented 10 years ago

@jiep Un framework, no deja de ser una clase o conjunto de clases que da funcionalidad pero que por sí sola no hace nada.

En java existen muchos, el paquete utils mismamente, así que, el que sea un framework, librería o interfaz (da igual como lo llamemos) nos es indiferente, el proceso va a ser el mismo que si diseñásemos una aplicación.

Lo verdaderamente importante es cómo realizamos el diseño a partir de una arquitectura previa.

jiep commented 10 years ago

@KekoAlk si en lo qué es un framework estamos de acuerdo.

Lo que quería destacar es justo lo que has puesto en la última línea, y ver qué pasos se han seguido para obtener el diseño.

jalcaldea commented 10 years ago

En ese caso, mi querido @jiep en vez de colgar el pdf entero y ponerlo tal cual, podrías haber dicho que has encontrado algo y especificar que parte nos puede valer, son 175 páginas de las cuales nos valen como mucho 20 (entre la 99 y la 121 ) y ni eso..

jalcaldea commented 10 years ago

Llevo un buen rato buscando con la esperanza de encontrar una especie de método o metodología que seguir y nada de nada. He tenido que ponerme a pensar en cómo se haría...

Lo más parecido a una conclusión ha sido al darme cuenta que en el requisito en el que "La plataforma se implementará siguiendo la arquitectura de pizarra" en realidad se descompone en muchos más requisitos, y se me ha ocurrido que podemos separar esos requisitos (ya lo he hecho: Requisitos Separados ) y a la hora de diseñar, seguir los procesos que ya conocíamos para la parte de la arquitectura sólo y más adelante completar ese diseño con los otros requisitos.

Mirad Requisitos Separados y decidme que os parece la organización así de los requisitos y la manera de diseñar.

baos99 commented 10 years ago

@KekoAlk, la separación la veo bien, pero no entiendo como dices de diseñarlo

jalcaldea commented 10 years ago

Pues primero haríamos la parte correspondiente al diseño a la arquitectura (Estos requisitos) y luego añadiriamos las funcionalidades correspondientes los otros.

AdrianGJ commented 10 years ago

"La comunicación entre la pizarra y el agente (modelo cliente-servidor) será a través del protocolo HTTP" sería mas bien organizacional ¿no?

jalcaldea commented 10 years ago

Yo solo he copiado y pegado de antes... Y estaba puesto así, en realidad creo que es más externo que organizacional, es algo que va implicito en la arquitectura, no es algo que se imponga desde nosotros ( si queremos hacer un cliente-servidor tiene que ser por HTTP o por uno definido por nosotros) en el segundo caso si lo pondría como organizacional.

PD: Tenéis alguna herramienta para hacer UMLs? Para poder pasarlos por aqui.

EDITO: Aquí vienen unos cuantos: http://www.devcurry.com/2010/06/free-open-source-uml-tools.html

baos99 commented 10 years ago

Yo creo que el de HTTP es externo ya que pienso que es un requisito de interoperabilidad.

jalcaldea commented 10 years ago

Ya he hecho un primer diagrama de Casos de Uso, pero sólo de la parte correspondiente a la pizarra: Casos de uso

Tiene un aspecto raro, pero con los requisitos que tenemos es lo que ha salido, no he podido incluir el RF 2 (Requisitos separados) porque no sabia como plantearlo, aunque creo que se incluye en el caso "Comprobar nivel".

Aquí tenéis el archivo fuente.

PD: He usado Violet UML Editor, es bastante ligero y multiplataforma ya que esta implementado en Java.

jalcaldea commented 10 years ago

He modificado ligeramente el diagrama anterior añadiendo en caso de uso "Gestionar Permisos" dando así una mejor cabida a tener distintos niveles de agentes: casodeuso Por otra parte he añadido lo elementos de la plataforma, que básicamente eliminan el actor agente para dar lugar a los usuarios y la plataforma en sí. Lo he dejado de esta manera: casodeuso2 No me acaba de convencer el papel del "Usuario" pues en realidad debería ser el de "Plataforma" pero pensándolo un poco "Plataforma" es un superusuario, el usuario con todos los permisos, así que creo que se podría reestructurar de alguna manera, pero no se exactamente cómo (si no lo habria hecho ya :stuck_out_tongue_winking_eye: ). Lo dejo para ver si se os ocurre algo a vosotros.

Aquí tenéis el archivo fuente :package: .

PD: @AdrianGJ Te lo dedico :octocat: :octocat: :octocat: :octocat: // :grin:

jalcaldea commented 10 years ago

Feliz Año a todos!!

Le he estado dando vueltas esta noche, y he llegado a esta conclusión: casodeuso2_1

Creo que ahora, aun representando la misma idea, es mucho más conciso.

Tenéis aquí los archivos :package: fuente.

baos99 commented 10 years ago

He hecho 3 diagramas de actividad, pero como no me acuerdo mucho, y dado que es una libreria y eso, no estoy muuy seguro de que estén bien. Echadles un vistazo y me decis algo para continuar y hacer los demás. [El de Comprobar Nivel] comprobar nivel [El de Crear Usuario] crear usuario [El de Iniciar Sesion] iniciar sesion

jalcaldea commented 10 years ago

Cómo no me digas de qué es cada uno, no me entero. :tongue:

jalcaldea commented 10 years ago

Vale ya lo has puesto =D

Le falta la BD por algún lado, en plan conectar a la BD buscar información, obtener información, comprobar información.

P.E: El el primero entre los dos estados, yo le metería, conectar con la BD y buscar información usuario.

baos99 commented 10 years ago

Vale, pero entonces la actividad de Obtener datos sobraria no?

jalcaldea commented 10 years ago

no, tiene que obtener los datos de usuario, despues comprobar en la BD esos dato y luego mostrarlos.

baos99 commented 10 years ago

mm ok, es verdad. Pero para los diagramas de leer, escribir y demás, no hace falta poner todo lo de iniciar sesion y demás no?

jalcaldea commented 10 years ago

Hace falta hacer una llamada a "comprobar usuario" o algo asi le puse, lo que comprueba los permisos.

baos99 commented 10 years ago

Aquí los diagramas corregidos y 2 o 3 más que he hecho, los demás los termino esta noche (los de actividad).

[Iniciar sesion] iniciar sesion [Crear usuario] crear usuario [comprobar nivel] comprobar nivel [actualizar pizarra] actualizar pizarra [estadisticas] estadisticas [configurar pizarra] configurar pizarra

El de configurar pizarra quiero cambiar lo de configurar pizarra y dividirlo en un par de estados, pero no se que poner

jalcaldea commented 10 years ago

Estan genial!! Lo único que en el 2do has cambiado Nivel válido e invalido, estan al reves! =D

EDITO: En alguno más lo has liado, pero se entiende.

baos99 commented 10 years ago

Es verdad jaja, ahora lo cambio. Entonces esta noche termino todos los de actividad

baos99 commented 10 years ago

Bueno, subo los diagramas de actividad y me contais que os parecen y si tengo que cambiar algo. [actualizar pizarra] actualizar pizarra

[buscar] buscar

[comparar] comparar

[configurar pizarra] configurar pizarra

[crear carpeta] crear carpeta

[comprobar nivel] comprobar nivel

[crear usuario] crear usuario

[escribir (in)] escribir in

[escritura/lectura (rd)] escritura lectura rd

[estadisticas] estadisticas

[gestionar permisos] gestionar permisos nivel

[iniciar sesion] iniciar sesion

[leer (out)] leer out

[mostrar estado] mostrar estado

jalcaldea commented 10 years ago

Bueno, ya tenemos el primer diagrama de clases, éste se corresponde con la parte de requisitos (al igua que todos los anteriores) y por lo tanto no dispone de ningún método.

clases

La idea es, el agente se conecta a la pizarra mediante una URL o IP con los datos de un usuario (userid y pass) y la pizarra o servidor le devuelve el usuario (con todos sus datos ) en caso de que la conexión se realice bien y que los datos del usuario sean correctos.

En cuanto a la clase Estado es un mecanismo simple, tiene una lista con carpetas y archivos, y cada carpeta se puede componer de mas carpetas o archivos, de forma que si yo llamase al método:

leer("/home/jesus/Documentos/memoria.tex");

Los pasos que seguiría serían:

  1. Buscaría en Estado un elemento de tipo Carpeta y con nombre "home".
  2. Dentro de esa carpeta buscaría un elemento de tipo Carpeta y con nombre "jesús".
  3. Dentro de esta segunda carpeta buscaría un elemento de tipo Carpeta y con nombre "Documentos".
  4. Dentro de esta carpeta buscaría un elemento de tipo Problema y con nombre "memoria.tex".
  5. Devuelve el archivo.

Lo que viene siendo un sistema de archivos.

jalcaldea commented 10 years ago

Y ya esta el de diseño, falta hacer añadir algún método mas, pero a grandes rasgos, ya está.

clases_2

PD: Tan solo falta por hacer los diagramas de secuencia. ¿Quien se encarga de ir pasándolos a LaTeX?

jiep commented 10 years ago

Yo los paso

jalcaldea commented 10 years ago

:+1: "Supervisor" !!

baos99 commented 10 years ago

No se muy bien como hacer los de secuencia, ya que en internet cada uno los hace de una forma, me he guiado en estos 3 con los apuntes de MP del año pasado, pro no se seguir con escribir en la pizarra y demás. Voy a seguir mirando como se hacen.

[iniciarsesion] iniciarsesion

[mostrarestadisticas] mostrarestadisticas

[mostrarestadisticasGenerales] mostrarestadisticasgenerales

EDITO: Los 2 de mostrar estadisticas están mal, falta que estabezcan conexión, y ya los hago todos así, que creo que estan bien de esa forma

baos99 commented 10 years ago

Bueno estos son los diagramas que he hecho, comentad si os parecen bien y tal, o que fallos hay.

[buscar] buscar

[configurarpizarra] configurarpizarra

[comparar] comparar

[crearcarpeta] crearcarpeta

[crearusuario] crearusuario

[escribir] escribir

[escrituralectura] escrituralectura

[gestionarpermisos] gestionarpermisos

[iniciarsesion] iniciarsesion

[leer] leer

[mostarestado] mostarestado

![mostrarestadisticas] mostrarestadisticas

[mostrarestadisticasgenerales] mostrarestadisticasgenerales

NOTA 1: Ficheros Fuente: https://dl.dropboxusercontent.com/u/50718367/Diagramas.rar
Estan hechos con el violetUML que dijo anteriormente @KekoAlk .

NOTA 2: El diagrama de actividad de Crear Usuario estaba mal, ya que si no tiene permiso, no se crea usuario y, por tanto, no se actualiza la BD

NOTA 3 En el primer objeto de los diagramas, que pone I:, al pasarlo a la memoria hay que poner L: de Library, que me he confundido.

El correcto sería así: crear usuario

EDITO: He hecho los dos diagramas de secuencia que me faltaban, aquí estan:

[comprobarnivel] comprobarnivel

[actualizarestado] actualizarestado

AdrianGJ commented 10 years ago

Parecen estar bien en contenido. Lo único que se te ha colado una mayúscula al final "EStadísticas".

Y lo de establecer conexión en todas las operaciones quizás se podría explicar al principio y no sería necesario repetirlo tantas veces. Aunque es cierto que así queda más visible.

jalcaldea commented 10 years ago

Acabado