Es lo mismo un “Proyecto” que un “Plan de Trabajo”?

Anuncio
FAQ PROYECTO ES:E PARTE 1
A continuación se recopilan las respuestas que se han dado a las preguntas que
han surgido durante las dos semanas pasadas:
1 ¿Cuántos Diagramas hay que hacer? ¿ Pueden aparecer clases de un diagrama
en otro? ........................................................................................................................... 2
2 ¿Cómo se modelan “Swinlane” y “Diagrama de Flujo”? ........................................... 2
3 ¿Es lo mismo “Flujo de Trabajo” que “Proceso”? ..................................................... 3
4 ¿Cual es la relación entre “Actividad” y “Artefacto”? ................................................ 3
5 ¿Es lo mismo un “Proyecto” que un “Plan de Trabajo”? ........................................... 3
6 ¿Un “Grupo de tareas” solo agrupa “Tareas”? ......................................................... 3
7 ¿Una “Dependencia” es solo entre “Tareas”? .......................................................... 3
8 ¿Cómo se relacionan los atributos de los distintos tipos de tarea? ¿Cómo pongo
las restricciones OCL si tengo una super clase y clases derivadas? .............................. 3
8.1
Atributos sólo en las clases hijas ...................................................................... 4
8.2
Generalizar los atributos I ................................................................................. 4
8.3
Generalizar los atributos II ................................................................................ 4
9 ¿Cómo se calcula el porcentaje completado (pc)de una “Tarea”? ........................... 5
10
¿Es lo mismo porcentaje completado que porcentaje de asignación? ¿Están
relacionados? .................................................................................................................. 6
11
¿Varía el porcentaje de asignación de un recurso a lo largo de una tarea? ......... 6
12
¿Cómo se calcula el número de unidades? .......................................................... 6
13
¿Cuál es la restricción sobre el porcentaje de asignación de un recurso? .......... 6
14
¿Cuál es la diferencia entre “rol de clase en la asociación” y una “clase”? .......... 6
15
¿He de poner atributos en las clases de Proceso? .............................................. 7
16
¿Cómo especifico las restricciones?..................................................................... 7
17
¿Como cálculo el máximo y el mínimo? ............................................................... 8
18
¿Pueden aparecer relaciones como elementos derivados? ................................. 8
19
¿Qué es el “Insert Caption” de la plantilla .dot? .................................................... 8
20
¿Qué pasa si al pegar la imagen del diagrama en el .doc no me cabe o queda
muy pequeña? ................................................................................................................. 8
1 ¿Cuántos Diagramas hay que hacer? ¿ Pueden aparecer
clases de un diagrama en otro?
El enunciado pide dos diagramas de clases, uno para los conceptos de “Proceso” y otro
para conceptos de “Proyecto”.
El dominio se puede ver como Proceso + Proyecto. Algunos conceptos de Proyecto se
relacionan con los conceptos del Proceso, por tanto, en el diagrama de clases de
Proyecto pueden aparecer conceptos de Proceso que hay en el diagrama de Proyecto
Notar que el modelo de clases en Rose es solo UNO (las clases aparecen una sola vez
en el Browser) y corresponden al dominio de Proceso + Proyecto.
En principio os pedimos dividir el modelado en dos diagramas, uno para Proceso y otro
para Proyecto. Estos diagramas están en un UNICO fichero .mdl. Pero en este fichero
.mdl podríamos hacer todos los diagramas de clases que quisiésemos. Una clase o una
relación puede estar en varios diagramas (Rose se encarga de mantener sincronizados
todos los diagramas). Cada diagrama es como una vista o foto particular del modelo.
Por claridad, si se estima oportuno, se pueden añadir más diagramas (tantos como se
quiera), aunque solo hayamos pedido dos. Lo importante es que el diagrama se
entienda.
2 ¿Cómo se modelan “Swinlane” y “Diagrama de Flujo”?
Swinlane y Diagrama de Flujo NO son conceptos del dominio. Un Diagrama de Flujo
(Diagrama UML de Actividad) es una manera de representar un flujo de trabajo. Una
Swimlane es un elemento del Diagrama UML de Actividad (Diagrama de Flujo) . En las
transparencias LESE03-01 pág. 12 aparece entre paréntesis. Los conceptos a modelar
para “Proceso” son los que aparecen en dicha transparencia:





Proceso
Flujo de Trabajo
Actividad
Rol
Artefacto
3 ¿Es lo mismo “Flujo de Trabajo” que “Proceso”?
Proceso no es sinónimo de Flujo de Trabajo. Un Proceso puede tener muchos flujos de
trabajo (o uno solo). El Flujo de Trabajo define el orden y secuencia en la que se han de
ejecutar las actividades del proceso. Es como una colección de actividades. El Flujo de
Trabajo es el que determina la secuencia de actividades. Forma parte del proceso
4 ¿Cual es la relación entre “Actividad” y “Artefacto”?
Un Actividad puede tener muchos artefactos de entrada y de salida.
Un Artefacto puede ser de entrada y de salida a la vez en la misma actividad.
Un Artefacto puede ser la salida de una actividad y entrada para otra. Ver cuestión 14
5 ¿Es lo mismo un “Proyecto” que un “Plan de Trabajo”?
Para esta práctica Proyecto es sinónimo de Plan de Trabajo (ver Glosario en el
Enunciado).
En la vida real un Proyecto es mucho más que un plan de trabajo, es el elemento
organizativo que instancia en el tiempo de un proceso, coordina un grupo de personas
para realizar un trabajo y producir un Producto siguiendo las instrucciones de un
proceso.
Además del plan de trabajo, un plan de proyecto contiene o hace referencia a otros
planes que permiten llevar a cabo la gestión del proyecto: plan de gestión de requisitos,
plan de gestión del cambio, plan de gestión de la configuración, plan de gestión de
riesgos....etc. Todo esto esta fuera del alcance de la práctica
6 ¿Un “Grupo de tareas” solo agrupa “Tareas”?
Un Grupo de Tareas puede agrupar cualquier elemento del proyecto: tarea, hito o otro
grupo de tareas.
7 ¿Una “Dependencia” es solo entre “Tareas”?
Una Dependencia es entre dos elementos cualesquiera del proyecto: entre dos tareas,
entre hito y tarea, entre tarea y grupo de tareas, entre hito y grupo de tareas, … (Ver
LESE03-01 pág. 16)
8 ¿Cómo se relacionan los atributos de los distintos tipos
de tarea? ¿Cómo pongo las restricciones OCL si tengo
una super clase y clases derivadas?
Una Tarea puede ser de diferentes tipos EsfuerzoFijo, NumUnidadesFijo, DuracionFija.
Las propiedades esfuerzo y duración se calculan una en función de la otra atendiendo a
la formula esfuerzo = duración * unidades
Según el tipo concreto de tarea, unas veces unos atributos son derivados y otras veces
no. A veces la duración se calcula a partir del esfuerzo y el numero de unidades, a
veces el esfuerzo se calcula a partir de la duración y el numero de unidades... etc
Para especificar dichos atributos que unas veces son derivados y otras no, varias
alternativas que daremos por validas:
8.1 Atributos sólo en las clases hijas
Consiste en poner solo los atributos en las clases que concretas, normalmente las que
aparecen en el extremo de la generalización (EsfuezoFijo, Duración Fija, Hito, etc...)
Esto tiene el inconveniente de que si defines restricciones formales sobre las clases
superiores, las clases superiores no tienen todos los atributos
8.2 Generalizar los atributos I
Si generalizas poniendo los atributos en las clases generales, y la forma en la que se
derivan (calculan) los atributos depende de la clase concreta, puedes poner en la clase
padre todos esos atributos como derivados y en las clases hijas especificar como se
derivan. Para ello, en aquellas clases hijas que tienen una propiedad fija, como por
ejemplo la "duración", para ser formalmente correcto con el OCL, puedes necesitar
añadir un atributo que sea "duraciónAttr" u otro nombre y definir que /duración heredado
es el valor de duraccionAttr
clase A
/duración
clase B
duraciónAttr
/duracion
{ duracion = duraciónAttr}
El inconveniente de esta aproximación es que nos estamos aproximando al mundo del
diseño, ya que tiene en cuenta que los atributos derivados serán operaciones de la
clase cuando se lleve a cabo el diseño.
8.3 Generalizar los atributos II
parecido a la anterior pero más conceptual y utilizando el operador de alcance de clase
clase A
/duración
clase B
duración /* sin derivar */
{A::duración = B::duración}
Igualmente habría que especificar la forma en que se derivan en la clases hijas,
utilizando el operador de alcance de clase para evitar ambigüedades (Ver Manual OCL
en la web sección 5.8)
La solución 8.2 esta cercana al mundo del diseño. La 8.1 es más conceptual pero
puede tener problemas a la hora de definir restricciones sobre las clases padre. Ambas
las daremos por buenas. La solución 8.3 es un buen compromiso.
Lo importante para nosotros es que especifiques que en unas clases los atributos son
derivados y en otras no. No vamos a ser muy restrictivos a la hora de corregir esta
parte. Cuanto mejor lo hagas mejor lo valoraremos.
9 ¿Cómo se calcula el porcentaje completado (pc)de una
“Tarea”?
El pc es una propiedad de la tarea. Es un atributo al que se da valor después de definir
la tarea. No hace falta formula para calcularlo
A la hora de crear el objeto vale 0, durante la vida del objeto se le puede asignar un
valor entre 0 y 100%.
En la vida real, en las aplicaciones de gestión de proyectos, tipo MS Project, el pc se
introduce después de definir el plan de trabajo. El plan de trabajo se define como el
esquema a seguir, pero luego, otra cosa es lo que realmente ha ocurrido durante el
desarrollo del proyecto.
Durante el desarrollo del proyecto pueden ocurrir imprevistos, riesgos que se
materializan, incidencias o simplemente que no hemos previsto bien la duración de una
tarea, con lo que se puede dar , y se da el caso de que al llegar la fecha de fin de una
tarea no hayamos completado el 100% de la tarea.
Por ejemplo: haces un plan de trabajo para estudiar un examen durante una semana (5
días). Te auto-asignas al 100% a la tarea “estudiar examen”. El esfuerzo es 5 días * 1
unidad = 5 días.hombre. Durante la semana estudias pero surgen imprevistos, te
distraes. Resulta que al final de la semana solo has completado el 50% del temario.
Suspendes el exámen ;-)
10 ¿Es lo mismo porcentaje completado que porcentaje de
asignación? ¿Están relacionados?
No es lo mismo. El porcentaje de asignación de un recurso, representa la dedicación a
una tarea como porcentaje de su jornada laboral. Una asignación del 50% en una
jornada laboral de 8h representa que el recurso se dedica 4h de su jornada a dicha
tarea. Equivale a 0.5 unidades.
Esto no tiene que ver con el porcentaje completado. Ver cuestión 9. El porcentaje
completado es un valor que se introduce después de definir el plan de trabajo.
El plan de trabajo es como un propósito de buenas intenciones, el porcentaje
completado indica en cuanto se ha cumplido el plan y se introduce a posteriori.
Es una forma de medir el progreso en el plan de trabajo. Por el hecho de que un
recurso este asignado a una tarea no quiere decir que la vaya a cumplir al 100% (ver
ejemplo cuestion 9) . Las personas no son maquinas. El valor de pc se utiliza para
medir el grado de progreso y re-planificar en consecuencia
11 ¿Varía el porcentaje de asignación de un recurso a lo largo
de una tarea?
Para esta práctica, se pude asumir que el porcentaje de asignación de un recurso a una
tarea es constante a lo largo de toda la duración de la tarea.
12 ¿Cómo se calcula el número de unidades?
El número de unidades, que es la suma de los porcentajes de asignación de todos los
recursos asignados a una tarea. Miras las transparencias de LESE03-01 pag-20 para
un ejemplo de como se suman las unidades para calcular los esfuerzo en una tarea de
tipo FixedDuration.
13 ¿Cuál es la restricción sobre el porcentaje de asignación
de un recurso?
Para toda instancia de recurso se ha de cumplir que la suma de sus asignaciones no ha
de superar el 100% (8h diarias).
14 ¿Cuál es la diferencia entre “rol de clase en la
asociación” y una “clase”?
En las asociaciones entre clase NO confundir "rol de la clase en la asociación" con
clase
En una asociación entre dos clases A y B, el rol de una en clase asociación describe el
"papel" que desempeña un objeto de dicha clase en la asociación.
Ver transparencias de teoría:
- Clase Persona, Clase Ciudad
- Asociación entre Persona y Ciudad.
- Persona desempeña el rol de "residente" de Ciudad
- Ciudad desempeña el rol de "ciudad-de-residencia" para Residente
Físicamente, si generásemos código, las asociaciones se materializan como atributos
que son del tipo de la clase asociada al otro extremo y cuyo nombre es el del rol de la
clase al otro extremo.
Ciudad tendría un atributo que es de tipo Persona (una colección o “array[ ]” al
ser “*”) que se llamaría igual que el rol de la asociación, es decir "residente".
A su vez, Persona tendría un atributo de tipo Ciudad que se llamaría "ciudad-deresidencia"
Ver LESE01-02 pag 33 y los ejercicios que se hicieron en clase a partir de LESE02-01
15 ¿He de poner atributos en las clases de Proceso?
En principio os pedimos dividir el modelado en dos diagramas, uno para Proceso y otro
para Proyecto. Estos diagramas están en un UNICO fichero .mdl.
El diagrama de Proceso muestra solo conceptos, relaciones y si es el caso, elementos
derivados. No hace falta especificar atributos.
El diagrama de Proyecto muestra los conceptos del proyecto, sus propiedades
(atributos), relaciones, restricciones OCL y elementos derivados.
16 ¿Cómo especifico las restricciones?
Las restricciones se especifican en OCL en el mdl. Se pueden escribir en la
Documentation Window del elemento al que afectan o en un Note Item anclado al
elemento que afectan. Se identifican con un identifcador R1, R2... y en el documento a
entregar se explican en la tabla (una por restricción) otra vez en lenguage OCL (copiar
el del mdl) y en lenguaje Natural. Las tablas se identifican con el mismo id R1, R2... del
mdl.
Un consejo es utilizar la documentation window siempre que se pueda (clases y
atributos) y las Note Item para cuando la restricción se aplique a mas de un
elemento.(las Documentation window son una por elemento)
Ver Enunciado de la práctica (en la web) y la plantilla .dot del documento word que
tenéis que utilizar (descargarla en vuestro ordenador y crear el documento a partir de
ella: doble click sobre el .dot y save as...).
En la plantilla .dot tenéis instrucciones de como utilizar Rose para generar
automáticamente un documento word con todo lo que escribís en las Documentation
Windows.
17 ¿Como cálculo el máximo y el mínimo?
Usando OCL , existe la operación max y min, pero solo aplica a dos reales o enteros.
Para calcularlo sobre una colección, quien quiera, puede utilizar el iterador OCL
(sección 6.5 del manual OCL). Lo valoraremos positivamente, pero no es obligatorio.
18 ¿Pueden aparecer relaciones como elementos derivados?
Si. Ver LESE02-01 pag 47.
19 ¿Qué es el “Insert Caption” de la plantilla .dot?
Es del menú Insertar/Titulo en el MS Word castellano.
20 ¿Qué pasa si al pegar la imagen del diagrama en el .doc no
me cabe o queda muy pequeña?
Puedes seleccionar/pegar distintos elementos del diagrama y pegarlos por partes en
varías figuras.
Descargar