En los grupos, y utilizando el modelo de datos diseñado para la identificación y el control de la configuración, deben pensar y diseñar, al menos 2 reportes que sean de utilidad para cada uno de los siguientes roles:
El gerente del proyecto
El arquitecto de software
Un programador del equipo de desarrollo
El comité de control de cambios
El resultado se socializa ante el grupo y se registra en el BLog
El gerente del proyecto
El arquitecto de software
Un programador del equipo de desarrollo
El comité de control de cambios
El resultado se socializa ante el grupo y se registra en el BLog
Grupo:
ResponderEliminarCarlos Gomez
Diego Dominguez
Igor Rodriguez
Tatiana Montoya
Comite de control de Cambios:
Solicitudes cerradas, a que cliente pertenecen y en que fecha
se cerraron.
SELECT T5.t3_estado, T5.t3_titulo, T5.t3_descripcion, T5.t3_nombre, T5.t3_fechaf, T5.t4_idci, T5.t4_idversion FROM
(SELECT T3.t1_idsolicitud,T4.idSolicitud, T3.t1_estado AS t3_estado, T3.t1_titulo AS t3_titulo, T3.t1_descripcion AS t3_descripcion, T3.t2_nombre AS t3_nombre,
T4.fechaf AS t3_fechaf, T4.idCi AS t4_idci, T4.idversion AS t4_idversion FROM
(SELECT T1.estado AS t1_estado, T1.idcliente, T1.titulo AS t1_titulo, T1.descripcion AS t1_descripcion, T1.idSolicitud AS t1_idsolicitud T2.idCliente, T2.nombre AS
t2_nombre,T2.idversion As t2_idversion,T2.idCi AS t2_idci, T4.nombre FROM
(SELECT estado,idcliente,titulo,descripcion,idSolicitud FROM solicitudes WHERE estado='cerradas') AS T1
INNER JOIN clientes AS T2 ON T1.idcliente=T2.idCliente) AS T3
INNER JOIN informacionTecnica AS T4 ON T4.idSolicitud=T3.t1_idsolicitud) AS T5
INNER JOIN CI AS T6 ON T6.idCi=T5.t4_idci AND T6.idversion=T5.t4_idversion
Gerente del proyecto:
El cliente que más solicitudes ha generado.
SELECT COUNT(solicitudes.idCliente) AS cantidad, clientes.idCliente, cliente.nombre FROM solicitudes GROUP BY cantidad ORDER BY cantidad DESC LIMIT 0,1
INNER JOIN clientes ON solicitudes.idcliente=clientes.idCliente
Programador:
que solicitud le corresponde a que programador.
SELECT solicitudes.idSolicitud, solicitudes.titulo, solicitudes.descripcion, iT.idUsuario, usuarios.nombre FROM solicitudes
INNER JOIN informacionTecnica AS iT ON iT.idSolicitud=solicitudes.idSolicitud
INNER JOIN usuarios ON usuarios.idUsuario=iT.idUsuario WHERE usuarios.idUsuario='888'
Arquitecto:
En que version va cada elemento de configuración:
SELECT idCi, nombre, idversion FROM CI AS T1 WHERE idversion=(SELECT MAX(idversion) FROM CI AS T2 WHERE T1.idCi=T2.idCi)
GRUPO:
ResponderEliminarLUIS FERNANDO BENAVIDES
DANNY DURAN VESGA
ORLANDO ARRIETA
/* Gerente
Elementos de configuración y las personas que son responsables de los mismos */
select ci.nombre,ci.estado,ci.iteraccion,ci.localozacion,p.nombre,r.nombre
from ci inner join persona as p on ci.idpersona=p.idpersona
inner join roles on p.idrol=roles.idrol
order by ci.fecha;
/*Desarrollador
Obtiene todos las solicitudes de cambio de los elementos de configuración
que se han asignado a un desarrollador*/
select ci.nombre,ci.version,ci.fecha,cr.prioridad,cr.estado
from ci inner join icchanged as icc on ci.idci=icc.idci
inner join changerequest as cr on cr.idrequest=icc.idrequest
inner join persona as p on p.idpersona=ci.idpersona
where p.idpersona=@idpersona
order by cr.prioridad,ci.fecha;
/*Arquitecto
Obtiene los elementos de configuración así como la persona responsable y su puesto
de trabajo*/
select ci.nombre,ci.estado,ci.version,ci.localozacion,p.nombre,r.nombre,pt.nombre
from ci inner join persona as p on p.idpersona=ci.idpersona
inner join puestopersona as pp on pp.idpersona=p.idpersona
inner join puestotrabajo as pt on pt.idpuesto=pp.idpuesto
where ci.estado=@estado
order by p.nombre;
/*Comite de Control de cambios
Obtiene las solicitudes de cambio sobre elementos de configuración que aún no
han sido asignados a un responsable*/
select ci.nombre,ci.version,ci.estado,ci.fecha,cr.prioridad,cr.version,cr.estado
from ci inner join icchange as icc on icc.idci=ci.idci
inner join changerequest as cr on cr.id=icc.idrequest
inner join change as ch on ch.idchangerequest=cr.id
where ch.idpersona=null;
Taller realizado por:
ResponderEliminarAndres hernnadez Badel
Juan Carlos Rhenales
Alvaro Somerson
Rol PROGRAMADOR
consulta: muestre todas las solicitudes de cambio asignadas a un programador con Cedula X
Select per.nombre,ic.nombre,ic.version,ic.fecha,ic.location,ic.medio,ic.status,sc.descripcion,sc.fecha,sc.prioridad
from producto p,item_de_configuracion ic, item_afectados ia, solicitud_cambios sc, persona per
where p.idproducto=ic.idproducto and ic.id=ia.id and ia.id_sol=sc.id_sol and sc.asignado_a=per.id_p and per.id_p=x
//*******************************************************************************************************************************************//
Rol COMITE DE CONTROL DE CAMBIO
consulta: muestre todas las solitudes de cambios de un producto x cuyo estado sea "pendiente"
SELECT P.NOMBRE,SC.DESCRIPCION,SC.FECHA,PER.NOMBRE
from producto p,item_de_configuracion ic, item_afectados ia, solicitud_cambios sc, persona per
where p.idproducto=ic.idproducto and ic.id=ia.id and ia.id_sol=sc.id_sol and sc.asignado_a=per.id_p and p.idproducto=X
and sc.estado="PENDIENTE"
order by sc.fecha
//*******************************************************************************************************************************************//
ROL GERENTE
MUESTRE CUANTAS SOLICITUDES DE CAMBIO HAN TENIDO TODOS LOE ELEMENTOS DE CONFURACION DE UN PRODUCTO X
SELECT IC.NOMBRE,COUNT(IA.id)
FROM PRODUCTO P,ITEM_DE_CONFIGURACION IC,ITEM_AFECTADOS IA,SOLICITUD_CAMBIO SC
WHERE P.IDPRODUCTO=IC.IDPRODUCTO AND IC.ID=IA.ID AND IA.ID_SOL=SC.ID_SOL AND P.IDPRODUCTO=X AND SC.ESTADO="ACEPTADA" OR SC.ESTADO="APROBADA"
GROUP BY IC.NOMBRE
//*******************************************************************************************************************************************//
ROL ARQUITECTO
Consulta: Dado un item X de configuracion muestre su trazabilidad
select nombre,version,date,status,medio
from item_de_configuracion
where trace_to=X
Arquitecto 1.Verificar que items de un product estan en programacion.
ResponderEliminarSELECT producto.*, items.id_item, items.nombre, items.version, items.estado, items.traces_to, items.produced_with, items.derived_from, items.consists_of
FROM producto INNER JOIN items ON producto.Id_producto = items.id_producto
WHERE (((items.id_item)=[IDENTIFICACION DEL PRODUCTO]) AND ((items.estado)="EN_PROGRAMACION"));
Arquitecto 2. Verificar el estado de cada empleado dependiendo de su estado.
---> la especialidad especifica si es programador, arquitecto, diseñador, etc.
---> el estado identifica si esta disponible, ocupado, retirado.
SELECT personas.Id_persona, personas.nombre, personas.especialidad, personas.estado
FROM personas
WHERE (((personas.especialidad)=[ESPECIALIDAD]) AND ((personas.estado)=[ESTADO]));
Gerente 1.
Identificar a que clientes se le ha distribuido un producto
SELECT personas.nombre, personas.Id_persona, personas.especialidad, items.id_item, items.nombre, producto.Id_producto, producto.nombre, producto.version, [items-personas].rol_persona
FROM producto INNER JOIN (personas INNER JOIN (items INNER JOIN [items-personas] ON items.id_item = [items-personas].id_item) ON personas.Id_persona = [items-personas].id_persona) ON producto.Id_producto = items.id_producto
WHERE (((producto.Id_producto)=[identificacion del producto]) AND (([items-personas].rol_persona)=[cliente]));
Gerente 2. Identificar que empleados han participado en la elaboración de un items.
SELECT personas.*, [items-personas].Id, [items-personas].fecha, [items-personas].rol_persona, items.id_item, items.nombre, items.version
FROM personas INNER JOIN (items INNER JOIN [items-personas] ON items.id_item = [items-personas].id_item) ON personas.Id_persona = [items-personas].id_persona
WHERE ((([items-personas].rol_persona)<>"CLIENTES") AND ((items.id_item)="identificacion de items[]"));
Programador 1. Buscar aquellos items que en la actualidad un programador está desarrollando.
SELECT personas.Id_persona, personas.nombre, [items-personas].*, items.id_item, items.nombre, items.version, items.fecha, items.estado
FROM personas INNER JOIN (items INNER JOIN [items-personas] ON items.id_item = [items-personas].id_item) ON personas.Id_persona = [items-personas].id_persona
WHERE (((personas.Id_persona)=[IDENTIFICACION DE PERSONA]) AND ((items.estado)=[PROGRAMANDO]));
Programador 2. Buscar los ítems que un programador tiene asignado.
SELECT personas.Id_persona, personas.nombre, [items-personas].*, items.id_item, items.nombre, items.version, items.fecha, items.estado
FROM personas INNER JOIN (items INNER JOIN [items-personas] ON items.id_item=[items-personas].id_item) ON personas.Id_persona=[items-personas].id_persona
WHERE (((personas.Id_persona)=[IDENTIFICACION DE PERSONA]) AND ((items.estado)=[ASIGNADO]));
Comité de cambios 1. Buscar todos los items que hacen parte de un producto.
SELECT producto.Id_producto, producto.nombre, producto.version, items.*
FROM producto INNER JOIN items ON producto.Id_producto = items.id_producto
WHERE (((producto.Id_producto)=[IDE_PRODUCTO]));
Comité de cambios 2. Mirar la informacion de un items particular.
SELECT producto.*, items.*
FROM producto INNER JOIN items ON producto.Id_producto = items.id_producto
WHERE (((items.id_item)=[ID_ITEM]));
Victor Santafé:
ResponderEliminarGERENTE DEL PROYECTO
Empleados desocupados
SELECT id, nombre FROM Usuarios WHERE id NOT IN
(SELECT DISTINCT us.id FROM
(((Usuarios us INNER JOIN ElementosMetadados em ON us.id=parseInt(em.valor))
INNER JOIN Metadados met ON em.idMetadato=met.id)
INNER JOIN ElementosConfiguracion ec ON ec.id=em.idElemento)
WHERE
ec.idEstado = %Activo% AND
met.idCategoria=%Bajo responsabilidad de%
ARQUITECTO DE SOFTWARE
Items de configuración que se encuentran relacionados a un item específico que se desea cambiar
SELECT ec.id, ec.nombre FROM
((ElementosConfiguracion ec INNER JOIN ElementosMetadados em ON ec.id=em.idElemento)
INNER JOIN Metadados met ON em.idMetadato=met.id))
WHERE
em.valor=%idElementoConfiguracion% AND
(met.idCategoria=%producido con% OR met.idCategoria=%derivado de% OR met.idCategoria=%consiste en%)
UN PROGRAMADOR DEL EQUIPO DE DESARROLLO
Otras personas con las cuales comparte la responsabilidad de un item de configuración específico:
SELECT id, nombre FROM Usuarios WHERE id IN
(SELECT parseInt(em.valor) FROM
(ElementosMetadados em INNER JOIN Metadados met ON em.idMetadato=met.id)
WHERE
em.idElemento=%el id del elemento% AND
met.idCategoria=%Bajo responsabilidad de%)
EL COMITÉ DE CONTROL DE CAMBIOS
Conocer el estado de un item de configuración derivado de una solicitud de cambio.
SELECT ec.nombre, ee.nombre FROM
(((SolicitudesCambio sc INNER JOIN SolicitudElementos se ON sc.id=se.idSolicitud)
INNER JOIN ElementosConfiguracion ec ON se.idElemento=ec.id)
INNER JOIN ElementosEstados ee ON ec.idEstado=ee.id)
WHERE sc.id=%el id de la solicitud%