Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas con los tiempos.

Iniciado por Diferencial, 17 de Enero de 2007, 02:14:25 PM

« anterior - próximo »

Diferencial

Como sabeis vosotros de antemano cuanto vais a tardar en realizar una tarea. Es decir como ejemplo gestión de clientes alta,baja,modificación etc...
PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.

Buffon

Uf primero hazte el diseño conceptual, luego el modelo de sequencia con sus contratos (para el ejemplo que has puesto unos 20 min) y más o menos calculas.

[Cliente]
dni
nombre

[Empresa]
cif
nombre

                                     pertenece
Relación [b]Cliente[/b] * --------------------- 0..1 [b]Empresa[/b]
[i]Un cliente puede pertenecer a una sola empresa pero una Empresa puede tener varios clientes.[/i]


Caso de uso

Gerente -------------------------- [ Alta Cliente ]

Modelo de sequencia del caso de uso Alta cliente.



Gerente ----------------------------------------Sistema
   ||                                                   ||
   ||       crearCliente(Dni)                    ||
   || ------------------------------------------------>||
   ||                :Cliente                        ||
   ||                                                   ||
   ||       insertarCliente(Cliente,Cif)      ||
   || ------------------------------------------------>||


Contrato crearCliente(Dni:String):Cliente
Semantica damos de alta un cliente
Precondiciones: No existe un cliente con dni = Dni
Postcondiciones: hemos dado de alta un cliente

traducido

Contrato crearCliente(Dni:String):Cliente
Semantica damos de alta un cliente
Precondiciones: Cliente.allInstances->select(c|c.dni=Dni)->isEmpty()
Postcondiciones: cl.oclIsNew() and cl.oclIsTypeOf(Cliente) and cl.Dni = dni.
Salida result = cl

----

Contrato insertarCliente(c:Cliente, Cif:String)
Semantica damos de alta un cliente en la empresa
Precondiciones: Existe una empresa con cif = Cif
Postcondiciones: hemos dado de alta un cliente en la empresa

traducido

Contrato insertarCliente(c:Cliente,Cif:String)
Precondiciones: Empresa.allInstances->exists(e|e.cif=Cif)
Postcondiciones: p.oclIsNew() and p.oclIsTypeOf(Pertenece) and p.Cliente = c and p.Empresa.cif = Cif.


Lo interesante de hacerlo con el traducido es aprender a ver las diferencias entre Precondicion y Postcondición en un lenguaje formal y saber que pasos has de hacer para pasar de uno a otro, entonces calculas el tiempo que necesitas.

Edito
Al final lo que hace mucha gente es decir ... mmm Alta cliente .. unas 2 horas xD

Diferencial

:D si es verdad, pero ultimamente me estan machacando mucho con el planning y claro yo no se como calcular algo asi porque puede que tarde un rato como puede que tarde 10 horas pero vamos que tu exposición usando casos etc esta bastante bien.
PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.