miércoles, 17 de octubre de 2012

Proyecto

 1. CASO DE ESTUDIO DISTRIBUIDORA J.RUIZ


En la Distribuidora de productos farmacéuticos J. RUIZ se muestran variedades de medicamentos los cuales se ofrecen a diferentes precios con sus respectivos descuentos, la distribuidora cuenta con un administrador que maneja la ventas y compras de los diferentes productos, un contador que es el encargado de llevar la cuentas de las entradas y salidas de efectivo del negocio, la secretaria o recepcionista que se ocupa de atender las llamadas de los clientes pidiendo los diferentes productos que se comercializan y escribe tal pedido emitiendo una factura, y finalmente la encargada de bodega en cuyo caso recibe las diferentes facturas por la recepcionista, hace la salida de los productos vía delivery, también es la encargada de verificar el mal estado de los medicamentos según sus pruebas realizadas en el laboratorio y revisión de fechas de vencimiento. 
 En la distribuidora se vende a las Farmacias en efectivo y crédito, también se aplica un descuento del 5% hasta el 15% dependiendo del tipo de medicamento y también en dependencia del pago de la farmacia, se le otorga un mes de plazo para el pago de las facturas para que de esta manera pueda obtener su descuento, de otra manera la farmacia pierde el descuento.
Algunos de los medicamentos que se venden son los siguientes:
Dolofin, Neurobion, Atroven para nebulizar, Atroven Spray
Espasmocivalgina, Kiddy pharmaton, Glicerina Adulto
Dolovitalgia, Acetaminofen, etc

En la distribuidora J.RUIZ necesita un administrador para el sitio web, en el cual tenga una base de datos dinámicas para que la clientela pueda ver los medicamentos que distribuyen y elegir comprar o no, disfrutar de descuentos si el cliente es exclusivo o no, por otro lado llevar un registro de los productos, en el cual se pueda registrar nuevos productos, el proveedor, el comprador, fecha de vencimiento para su retiro de la bodega y también conocer el estado del cliente.


2.Diagrama de  Control.

3.Diagrama de Caso de Uso



4.Diagrama de Contexto





5.Diagrama de Proceso




6.Diagrama de Flujo de Dato


domingo, 14 de octubre de 2012

Sistemático #2


 Dada la tabla de riesgos(modificada a nuestra realidad económica). Establezca ejemplos de cada categoría.



CATASTRÓFICA: Fecha de entrega inalcanzable, que el programador del software excede el limite de tiempo al no entregar el mismo en el tiempo solicitado.

CRITICA: Pequeños retrasos en modificación de software, al dares cuenta de un error hay que modificar la estructura del software y eso hace un retraso de su entrega.

MARGINAL: Planificación temporal realista alcanzable, es un tiempo determinado, un plazo para la terminación del software.

DESPRECIABLE: software fácil de dar soporte, cuando a la hora de realizar el sw van quedando pequeños errores y cada error con el tiempo se va haciendo grande el modo que debe realizarse otra vez al software.



Preparar material didáctico acerca de la Garantía de Calidad y Gestión de Software



Garantía de la Calidad del Software
Es una actividad de protección, que se aplica a lo largo de todo el proceso del software (Control de procesos), en definitiva abarca todo el desarrollo de software, análisis, diseño, control de código fuente, revisiones de código etc… La garantía de la calidad del software (SQA) es un patrón de acciones planificado y sistemático que se requieren para asegurar la calidad del software.
La garantía de la calidad del software  comprende una gran variedad de tares, los ingenieros de software que realiza trabajo técnico y un grupo de SQA que tiene la responsabilidad de la planificación de garantía de calidad, supervision mantenimiento de registro, análisis e informe.


Fiabilidad del Software
Se trata de medidas estadísticas, en la que se mide el tiempo de funcionamiento del software sin fallos en un determinado ambiente, de tal  manera que satisfaga las necesidades de los usuarios y cumpla con sus objetivos. Si el programa es propenso a fallos no es fiable,  los fallos se producen por falta de concordancia con los requisitos del software, en las que se pueden clasificar de ser simplemente desconcertantes o catastróficos, por ejemplo un fallo puede ser corregido en segundos mientras otros pueden tardar meses.
Los fallos se pueden dar tanto en el software como el hardware. En el hardware son más probables los fallos por ser físico están propensos a polvo, desgaste físico, efecto de la temperatura del ambiente, corrosión etc.


El estándar de calidad ISO 9001
Es un conjunto de normas para la calidad y gestión, es cada vez el más importante estándar internacional, ha sido adoptado por más de 130 países alrededor del mundo, en  la cual los usuarios pueden juzgar la competencia de un desarrollo de software.
La desventaja es que el ISO 9001 no es un estándar específico para el desarrollo de software, pero define principios generales que pueden aplicarse al software, el estándar ISO 9001 no define los procesos de calidad que deben usarse.
Para la industria del software los estándares relevantes son.
  • ISO 9001 desarrollo de un producto que implique diseño
  • ISO 9000-3 es un documento específico que interpreta el ISO 9001 para el desarrollo de software
  • ISO 9004-2 proporciona directrices para el servicio de facilidades del software como soporte de usuario.


Gestión de configuración de software


Es el conjunto de procesos destinados a asegurar la calidad de todo producto obtenido durante cualquiera de las etapas del desarrollo de un sistema de información (S.I.), a través del estricto control de los cambios realizados sobre los mismos y de la disponibilidad constante de una versión estable de cada elemento para toda persona involucrada en el citado desarrollo.

Es una especialización de la Gestión de configuración a todas las actividades en el sector del desarrollo de software.
SCM trata y controla:
  • La elaboración de código fuente por varios desarrolladores simultáneamente,
  • El seguimiento del estado de las versiones y sus cambios y
  • la conducción de la integración de las partes del software en un solo producto de software.
Para la realización de SCM hay diferentes herramientas. Pero herramientas que pretenden ofrecer una solución total al problema a menudo no cumplen con los requisitos técnicos como:
  • apoyo a diferentes plataformas
  • iniciar el proceso de build
  • conexión a los bancos de datos existentes
  • integración a la organización existente

Elementos de configuración software:

  • Ejecutables.
  • Código Fuente.
  • Modelos de datos.
  • Modelos de procesos.
  • Especificaciones de requisitos.
  • Pruebas.
Y para cada uno de estos elementos se almacenará al menos:
  • Nombre.
  • Versión.
  • Estado.
  • Localización.







Sistemático #1


Características del software:

      1.       El software se desarrolla o construye; no se manufactura en el sentido clásico.

A pesar de que existen similitudes entre el desarrollo del software y la manufactura del hardware, las dos actividades serian diferentes en lo fundamental. En ambas la alta calidad se alcanza por medio del buen diseño, la fase de manufactura del hardware puede incluir problemas de calidad existentes en el software.

       2.       El software no se desgasta.

El software es inmune a los males ambientales que desgasten el hardware. Por lo tanto la curva de tasas de fallas para el software debería tener la forma de la “curva idealizada”. Los defectos sin descubrir causan tasas de fallas altas en las primeras etapas de vida de un programa. Sin embargo, los errores se corrigen y la curva se aplana: el software no se desgasta, pero si se deteriora.

       3.       A pesar de que la industria tiene una tendencia hacia la construcción por componentes, la mayoría del software aun se construye a la medida.

Un componente de software se debe diseñar e implementar de forma que puede utilizarse en muchos programas diferentes.

Los componentes re utilizables modernos encapsulan tanto los datos como el proceso se aplican a estos, lo que permite al ingeniero de software crear nuevas aplicaciones nuevas a partir de partes re utilizables.


Mediante un dibujo establezca los escenarios donde se reflejan los mitos y realidades del software
en cuanto a a gestión , cliente y equipo desarrolladores.


1)software











                                                                2)Añadir personal 


--------------------->


                                                                3)Declarar objetivos





------------------------------------------------->







                                                                  

Explique las capas de desarrollo del software. (Dibujo del pastel)

Esto trata mas que todo del proceso a la hora de desarrollar el software, en base a esto influye en quienes lo van a realizar, es decir la persona capacitada para realizar esta acción, también muestra los materiales o herramientas a utilizar para realizar el prototipo, pero lo principal y primero es tener en cuenta que es lo que se hará, los métodos y aplicaciones que utilizaran, esto se trata mas que todo del proceso del prototipo y lo q se utilizara en el mismo.

Cuestionario #2


    1-   Dada la tabla de riesgos(modificada a nuestra realidad económica). Establezca ejemplos de cada categoría.

CATASTRÓFICA: Fecha de entrega inalcanzable, que el programador del software excede el limite de tiempo al no entregar el mismo en el tiempo solicitado.

CRITICA: Pequeños retrasos en modificación de software, al dares cuenta de un error hay que modificar la estructura del software y eso hace un retraso de su entrega.

MARGINAL: Planificación temporal realista alcanzable, es un tiempo determinado, un plazo para la terminación del software.

DESPRECIABLE: software fácil de dar soporte, cuando a la hora de realizar el sw van quedando pequeños errores y cada error con el tiempo se va haciendo grande el modo que debe realizarse otra vez al software.

     2-   Cuales condiciones son necesaria cumplir, para que el sw que estamos realizando sea con garantía y calidad?

El software debe ser confiable, eficiente, de modo que pueda trasladarse de un programa a otro, que sea viable, etc… de manera tal que se cumplan todas las condiciones que el cliente pida.


      3-   Que proceso es que realiza durante la gestión de configuración de software?

       Cada producto, en función de su naturaleza, va pasando por diferentes estados en los debe superar varias revisiones o aprobaciones. El conjunto de estados por los que va pasando un producto se registra en el sistema de gestión de configuración, según vaya evolucionando el mismo, hasta alcanzar el estado de producto final aprobado.
      En el momento en que un participante genere un producto, seleccionado como elemento de configuración en el Plan de Gestión de Configuración, deberá identificarlo y registrarlo en el sistema de gestión de la configuración. Del mismo modo, cuando modifique un producto que ya está registrado en el sistema de gestión de configuración, deberá incluirlo en el sistema de gestión de configuración indicando su versión y estado.
  
    Productos

   Entrada
·  Información sobre el producto (externo).
·  Registro del sistema de gestión de configuración de los productos resultantes de la tarea de 
      o Nombre
      o Versión
      o Estado
      o Localización

   Salida
·  Registro de los productos creados o modificados:
     o Nombre
     o Versión
     o Estado
     o Localización

Cuestionario #1


-                           1-    Sabiendo las características del software. Ejemplifique como se aplicaría a un software contable?

primeramente enfocarse en el análisis de que es lo que se quiere, osea, que tipo de contabilidad quiere construir, de acuerdo al tiempo en que lo vaya haciendo implementar lo que quieres que haga el software en este caso el sistema contable, que empresa lo va a utilizar, también influye mucho los recursos que tenga dicha empresa.

            2-      Mencione las diferencias entre un tipo de aplicación de software y otro de los tanto    estudiados en clases.

que el lineal secuencial es un poco mas completo que el modelo de construcción de prototipo, ya que en el lineal secuencial el trabajador o proyectante se enfoca con mas cuidado en el diseño y realización del sistema, paso por paso hasta que pueda implementarlo, en cambio el modelo de construcción de prototipo es un poco menos amplio por así decirse, osea, que en este modelo solo ocurre la idea del proyecto, luego la consulta con el cliente, lo discuten, hacen un análisis y diseño rápido y luego pasa a la construccion y entrega del prototipo, esta forma es como mas informal y rápida, algo que no debe ser así, xq con relación a esto pueden ocurrir muchos fallos.

            3-      Explique en que consiste el gráfico del pastel?

Esto trata mas que todo del proceso a la hora de desarrollar el software, en base a esto influye en quienes lo van a realizar, es decir la persona capacitada para realizar esta acción, tambien muestra los materiales o herramientas a utilizar para realizar el prototipo, pero lo principal y primero es tener en cuenta que es lo que se hará, los métodos y aplicaciones que utilizaran, esto se trata mas que todo del proceso del prototipo y lo q se utilizara en el mismo.

          4 -   Fases genéricas que se practican durante el proceso de software?      

DEFINICIÓN à Ing. De sistemas, planificación de proyectos, análisis de requisitos
DESARROLLO à Diseño de software, programación(generación de código), prueba y     evaluación del sistema.
MANTENIMIENTO à Corrección, adaptación, mejora, prevención.

        5-      Proponga una situación donde tenga que hacer el uso de hito que se expresa en el marco de trabajo común de la ing. De software?

Hito: herramienta que admin. En forma integrada y centralizada los requerimientos que llegan a las áreas de soporte de las empresas.
Situación: decisión importante para las empresas o para un proyecto.
-Evento significativo para el desarrollo de un proyecto.

    6-   Realice un packing explicando gráficamente cada mito de la ing. del software




1)software











                                                                2)Añadir personal 


--------------------->


                                                                3)Declarar objetivos





------------------------------------------------->






Gestión de configuracion


Gestión de configuración de software


Es el conjunto de procesos destinados a asegurar la calidad de todo producto obtenido durante cualquiera de las etapas del desarrollo de un sistema de información (S.I.), a través del estricto control de los cambios realizados sobre los mismos y de la disponibilidad constante de una versión estable de cada elemento para toda persona involucrada en el citado desarrollo.

Es una especialización de la Gestión de configuración a todas las actividades en el sector del desarrollo de software.
SCM trata y controla:
  • La elaboración de código fuente por varios desarrolladores simultáneamente,
  • El seguimiento del estado de las versiones y sus cambios y
  • la conducción de la integración de las partes del software en un solo producto de software.
Para la realización de SCM hay diferentes herramientas. Pero herramientas que pretenden ofrecer una solución total al problema a menudo no cumplen con los requisitos técnicos como:
  • apoyo a diferentes plataformas
  • iniciar el proceso de build
  • conexión a los bancos de datos existentes
  • integración a la organización existente

Elementos de configuración software:

  • Ejecutables.
  • Código Fuente.
  • Modelos de datos.
  • Modelos de procesos.
  • Especificaciones de requisitos.
  • Pruebas.
Y para cada uno de estos elementos se almacenará al menos:
  • Nombre.
  • Versión.
  • Estado.
  • Localización.

Garantía de la calidad


Calidad


La calidad es el grado de relación que tiene el producto para satisfacer las necesidades del usuario. Un software que cumple con todos los requisitos con su usuario, y que sus procesos se ejecuten correctamente, la cual garantiza una buena Calidad. Hay que recordar que no todos es perfecto y no se puede llegar a tener un software de calidad total, sino un software de calidad. Debe de cumplir  estándares como la norma ISO 9001.

Existen dos tipos de calidad:
  1. de Diseño: Son características que especifican los ingenieros del software. Lo que Calidad contribuye a la calidad del diseño son el Grado de Materiales, tolerancia y las especificaciones del rendimiento, esto permite que la calidad del diseño aumente.
  2. Calidad de Concordancia: Se cumplen las especificaciones del diseño, cuando mayor sea el grado de cumplimiento más alto será el nivel de calidad de concordancia, se centra principalmente en la implementación.


Garantía de la Calidad del Software
Es una actividad de protección, que se aplica a lo largo de todo el proceso del software (Control de procesos), en definitiva abarca todo el desarrollo de software, análisis, diseño, control de código fuente, revisiones de código etc… La garantía de la calidad del software (SQA) es un patrón de acciones planificado y sistemático que se requieren para asegurar la calidad del software.
La garantía de la calidad del software  comprende una gran variedad de tares, los ingenieros de software que realiza trabajo técnico y un grupo de SQA que tiene la responsabilidad de la planificación de garantía de calidad, supervision mantenimiento de registro, análisis e informe.


Fiabilidad del Software
Se trata de medidas estadísticas, en la que se mide el tiempo de funcionamiento del software sin fallos en un determinado ambiente, de tal  manera que satisfaga las necesidades de los usuarios y cumpla con sus objetivos. Si el programa es propenso a fallos no es fiable,  los fallos se producen por falta de concordancia con los requisitos del software, en las que se pueden clasificar de ser simplemente desconcertantes o catastróficos, por ejemplo un fallo puede ser corregido en segundos mientras otros pueden tardar meses.
Los fallos se pueden dar tanto en el software como el hardware. En el hardware son más probables los fallos por ser físico están propensos a polvo, desgaste físico, efecto de la temperatura del ambiente, corrosión etc.


El estándar de calidad ISO 9001
Es un conjunto de normas para la calidad y gestión, es cada vez el más importante estándar internacional, ha sido adoptado por más de 130 países alrededor del mundo, en  la cual los usuarios pueden juzgar la competencia de un desarrollo de software.
La desventaja es que el ISO 9001 no es un estándar específico para el desarrollo de software, pero define principios generales que pueden aplicarse al software, el estándar ISO 9001 no define los procesos de calidad que deben usarse.
Para la industria del software los estándares relevantes son.
  • ISO 9001 desarrollo de un producto que implique diseño
  • ISO 9000-3 es un documento específico que interpreta el ISO 9001 para el desarrollo de software
  • ISO 9004-2 proporciona directrices para el servicio de facilidades del software como soporte de usuario

Análisis y gestion del riesgo

Que entiende por riesgo? a manera general y edificada a la ingeniería del software? 

Riesgo es todo aquello que esta dispenso al peligro, a manera general son los problemas que pueden ocurrir a la hora de realizar el software.


Pequeñar retraso de modificaciones de software:

Estas ocurren cuando las visitas de segundos no son programadas previamente y se relacionan a la solicitud del cliente, no alegando a tiempo por posibles (falta de recursos, tiempo, financieros, personal, material).

Algunas reducciones de rendimiento tecnico ocurre cuando re definimos el alcance de software.

Estrategias frente al riesgo:


Estrategias reactivas
Método:
  •     Evaluar las consecuencias del riesgo cuando este ya se ha producido (ya no es un riesgo)
  •     Actuar en consecuencia
Consecuencias de una estrategia reactiva:
  •     Apagado de incendios
  •     Gabinetes de crisis
  •     Se pone el proyecto en peligro

Estrategias pro activas
Método
  •     Evaluación previa y sistemática de riesgos
  •     Evaluación de consecuencias
  •     Plan de evitación y minimalización de consecuencias
  •     Plan de contingencias
Consecuencias
  •     Evasión del riesgo
  •     Menor tiempo de reacción
  •     Justificación frente a los superiores







Metricas


Que es una métrica?
Es toda medición realizada tanto sobre los programas y su documentación asociada como sobre el propio proceso de desarrollo y mantenimiento de software.
Un ejemplo de métrica de un programa es la cantidad de líneas de código; un ejemplo de métrica del proceso de desarrollo es el número de horas-hombre que se han necesitado para completar la primera versión pasada a producción.
La estimación precisa de ciertas métricas como el esfuerzo de desarrollo es indispensable para la adecuada planificación de las actividades de desarrollo y mantenimiento. La selección y cálculo de métricas es también la base de la investigación empírica de la ingeniería de software.

En que consiste el termino miles de lineas de código?
Cuando se programa en base de datos un botón tiene que programar lineas de código y ahí es donde se origina y se dice que son miles de lineas de código (lo que es cada linea horizontal que se realiza en la interfaz del objeto donde se programa).

A que software se pueden aplicar estas métricas?
A los software que requieren para desarrollo un lenguaje de programación ya sea en C, C++, Cchar, Java, etc...

Orientadas al tamaño:
  • Errores por KLDC (mil lineas de código)
  • Defectos por KLDC.
  • Costos por KLDC.
  • Pagina de documentación por KLDC.
  • Errores por persona-mes.
  • Productividad=KLDC/persona-mes
  • calidad=errores/KLDC

Orientadas a la función:
  • PF=CuentaTotal*[0.65+0.1*sum(F)]
  • Prod=PF/persona-mes
  • Calidad=N° de errores(defectos)/PF
  • Costo medio=pto/PF
  • Documento=Pag documento/PF        NOTA: KLDC se sustituye por PF.



Espectro de gestion

Conceptos del espectro de gestión:

Personal: Es el conjunto de personas que ejercen diversos cargos durante el proceso de desarrollo del     producto de software que fue asignado a un proyecto.

Producto: Es el software que se va desarrollando a medida, incluye ejecutable, código fuente, documento de análisis y diseño, formatos de pruebas, contratos, temas de capacitación.

Proceso: Es el conjunto de tareas y fases que se aplican conforme el/los modelo/s de desarrollo de software seleccionados.

Proyecto: Es el documento soporte que justifica el desarrollo del software para un fin especifico. Contiene al estudio de factibilidad y viabilidad del mercado, lo técnico-operativo, lo financiero-económico e impacto legal, social y ambiental.


Practicas criticas:

  • Gestión formal del regreso.
  • Coste empírico y estimación de planificación.
  • Gestión de proyectos basados en matrices.
  • Seguimiento del valor ganado.
  • Seguimiento de costo frente a objetos de calidad.
  • Gestión del programa de personal.

          Defectos:                                                                         Objetivos:
1-Incompatibilidad(SO)                          1-Seleccionar adecuadamente el SO a fin de que sea compatible.
2-Gráficas no muy detallistas                   2-Buscar actualizaciones.
3-Tiempo de ejecución lento.                  3-Que sean mas livianos y estables para una rápida ejecución.

4-Consumo excesivo de recursos.           4-Realizar una programación adecuada para optimizar recursos.
5-Conflicto con otros programas.            5-Realizar análisis de los programas para asegurar su buen función.

Modelos de desarrollo de software

Modelo lineal secuencial:



Modelo de construcción de prototipo:



Modelo Desarrollo rápido de aplicaciones (DRA):




Modelo de desarrollo de software concurrente:




Modelo de desarrollo basado en componentes:


Construcción de componentes(funciones, procedimientos, palabras reservadas):
  • Identificar candidatos.
  • Buscar en biblioteca.
  • Extraer disponibles.
  • Importar no disponible.
  • Poner nuevos en biblioteca.
  • Construir haciendo uso de estos.




El producto de software


Características de los Productos de Software:


  • Mantenibles

          Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones.

  • Confiabilidad.

          El software no debe causar danos físicos o económicos en el caso de fallos.

  • Eficiencia.

          El software no debe desperdiciar los recursos del sistema.

  • Utilización adecuada.

          El software debe contar con una interfaz de usuario adecuada y su documentación.


Mitos y Realidades del Software:


Mitos del Cliente:



1. Mito.- “Una declaración superficial de los objetivos es suficiente para empezar a escribir los programas”.
Realidad.- La mala definición inicial es la principal causa de baja calidad.
Se requiere un conocimiento formal y detallado de los hechos y procesos y amplia comunicación
con el cliente.

2. Mito.- “Los cambios en el software son faciles y sencillos”.
Realidad.- Es verdad que los requisitos del software cambien, pero el impacto del cambio varía según el
momento en que se introduzca.


Mitos de los Desarrolladores:

1. Mito.- “Terminando de escribir el programa y haciendo que funcione, nuestro trabajo habrá terminado”.
Realidad.- Entre el 50 y 70% del esfuerzo total dedicado a un programa se realiza después de entregarlo al
cliente por primera vez.

2. Mito.- “Lo único que se entrega al terminar el proyecto es el programa funcionando”.
Realidad.- El software funcionando es solo una parte de una configuración del software.
La documentación es la base de un buen desarrollo y guías para las tareas de mantenimiento.

Capas de proceso de desarrollo de software:



Fases genéricas y actividades protectoras:





Marco de trabajo común:


Actividades protectoras:
  • Seguimiento y control del proyecto del software.
  • Revisiones técnicas formales.
  • Garantía de la calidad del software.
  • Gestión de configuración del software.
  • Preparación y producción de documentos.
  • Gestión de reutilizacion.
  • Mediciones.
  • Gestión de Riesgos.