viernes, 11 de noviembre de 2011

Taller 5. Reporte del Estado

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

5 comentarios:

  1. Grupo:
    Carlos 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)

    ResponderEliminar
  2. GRUPO:
    LUIS 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;

    ResponderEliminar
  3. Taller realizado por:
    Andres 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

    ResponderEliminar
  4. Arquitecto 1.Verificar que items de un product estan en programacion.

    SELECT 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]));

    ResponderEliminar
  5. Victor Santafé:

    GERENTE 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%

    ResponderEliminar