martes, 21 de mayo de 2013

Índice de Apuntes


  1. Preguntas
  2. Algunas Definiciones
  3. Especificación de Requerimientos
  4. Reingenieria
  5. Ciclo de Vida del Software
  6. Documento de Requerimientos
  7. Mantenimiento de Software
  8. Ingeniero vs Técnico (Conclusión)

Preguntas.(Apuntes)



Cuestionario1.
 
1.- ¿Qué es un sistema?
Es un conjunto de elementos que trabajan unidos para lograr un fin común.
2.- ¿Qué es la ingeniería?
Es el uso de los conocimientos científicos para transformar ideas en realidad.
3.- ¿Qué es la ingeniería de software?
Ingeniería de software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)
Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de software o producción de software (Bohem, 1976).
Ingeniería de software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).

4.- ¿Para que utilizamos un documento de requerimientos?
Para llevar un control de lo que quiere el cliente, además de entregar al usuario información detallada sobre la obtención de requerimientos estimar el tamaño, costo y tiempo, evaluar el producto final y es una base para el control de cambios.
5.- ¿Qué elementos conforman el documento de requerimientos?
Introducción, descripción general, requerimientos especificos, especificación de requerimientos funcionales, no funcionales y de sistema además de un breve resumen de cada una de ellas.



Cuestionario2.

1.-¿Qué es el soporte de software?
Es el mantenimiento que se le da al software en este caso va dirigido al usuario para resolver dudas o inquietudes acerca del sistema.
2.- ¿Qué es el mantenimiento de software?
Es el proceso general de cambiar un sistema después de que este ha sido entregado, se aplica principalmente a software a la medida pues el equipo de desarrollo están implicados antes y después de la entrega.
3.- ¿Cuáles son las diferencias entre el soporte de software y el mantenimiento de software?
La principal diferencia es a quien va dirigido, el soporte resuelve cuestiones de uso y las dudas del usuario respecto al software. En el mantenimiento se enfoca más hacia el software mejorando o reparando el software en caso de que surja un error o fallo.
4.- ¿Cuáles son los tipos de mantenimiento de software? Describa brevemente cada uno
Correctivo: Repara defectos que pueda tener el software.
Adaptativo: Adecua el software a diferentes entornos operativos.
Perfectivo: Añade o modifica funcionalidades extras al software.
Preventivo: Facilita el mantenimiento futuro del software.
5.- Haga un diagrama de cascada del ciclo de vida de desarrollo de software y ubique el mantenimiento de software. Justifique su respuesta


6.- ¿Qué es la reingeniería de procesos de negocios?
Es un proceso mediante el cual en función de las necesidades del cliente se rediseña radicalmente los procesos de negocios de principio a fin con el objetivo de alcanzar mejoras espectaculares en medidas criticas de movimiento (costos, calidad, servicios y rapidez)
7.- ¿Qué es la reingeniería de software?
Es una reconstrucción de sistemas automáticos obsoletos en otros más modernos y efectivos.
8.- ¿Cuál es la diferencia entre la reingeniería de procesos de negocios  y la reingeniería de procesos de software?
En la reingeniería de procesos de negocios se tira a la basura el proceso actual para diseñar uno mejor, en la reingeniería de software se reutiliza el código ya existente.
9.- Mencione las etapas del modelo de la reingeniería de software. Describa brevemente cada una.
Análisis de inventarios: Al ordenar esta información de acuerdo a la importancia para el negocio aparecen los candidatos para la reingeniería.
Reestructuración de documentos: Crear documentación consume mucho tiempo. La documentación debe actualizarse. El sistema es crucial para el negocio y debe volver a documentarse por completo.
Ingeniería inversa: Es el proceso de analizar un programa con la finalidad de crear una representación del programa en un mayor grado de abstracción que el código fuente.
Reestructuración del código: Se analiza para generar un diseño que produzca la misma función que el programa original pero con mayor calidad.
Reestructuración de los datos: La finalidad es extraer elementos y objeos de datos para obtener información acerca del flujo de datos y comprender las estructuras de datos existentes que se han implementado.
10.- ¿Qué es la ingeniería inversa y cuándo es viable usarla?
 Trata de tomar algo para analizar su funcionamiento en detalle, generalmente para intentar crear un dispositivo o programa que haga la misma o similar tarea sin copiar la original. Es más viable utilizarlo en proyectos pequeños.


Bibliografía.
Ingeniería de software (sexta edición), Ian SommervilleAddison Wesley.
Ingeniería del software. Un enfoque práctico (sexta edición), R. S. PressmanMcGraw Hill Higher Education.

Canning R. “The Maintenance ‘Iceberg’”, en EDP Analyser, vol. 10, núm. 10 Octubre de 1972

Definiciones.(Apuntes)



Llamativo:
Un software llamativo puede entenderse de diferentes maneras; ya que puede ser llamativo por su aspecto externo, lo cual sería una interfaz gráfica que llame mucho la atención de los usuarios en general.
Otra interpretación de llamativo puede ser con respecto al contenido, la interfaz gráfica puede no ser la mejor de todas, pero si hay un contenido que atraiga mucho la atención, eso también es llamativo.
Disponibilidad:
 La capacidad de que el sistema esté total o parcialmente operativo al mismo tiempo que es requerido para manejar eficazmente las fallas que puedan afectar la disponibilidad del sistema.
Operatividad:
Lo mínimo que debe hacer un programa es funcionar; es decir, producir los resultados esperados independientemente de cualquier otra característica.
Ágil:
Un software ágil es aquel que cumple sus funciones correctamente y no tarda mucho tiempo en ejecutarlas.
Facilidad de uso:
 El calificativo «amigable con el usuario» se ha convertido en omnipresente en las discusiones sobre productos de software. Si un programa no es «amigable con el usuario», frecuentemente está abocado al fracaso, incluso aunque las funciones que realice sean valiosas. La facilidad de uso es un intento de cuantificar «lo amigable que puede ser con el usuario » y se puede medir en función de cuatro características: (1) habilidad intelectual y/o física requerida para aprender el sistema; (2) el tiempo requerido para llegar a ser moderadamente eficiente en el uso del sistema; (3) aumento neto en productividad (sobre el enfoque que el sistema reemplaza) medida cuando alguien utiliza el sistema moderadamente y eficientemente; y (4) valoración subjetiva (a veces obtenida mediante un cuestionario) de la disposición de los usuarios hacia el sistema. En el Capítulo 15 se estudia más detalladamente este aspecto. Los cuatro factores anteriores son sólo un ejemplo de todos los que se han propuesto como medidas de la calidad del software.


FURPS
Hewlett-Packard [GRA87] ha desarrollado un conjunto de factores de calidad del software al que se le ha dado el acrónimo de FURPS: funcionalidad, facilidad de uso, fiabilidad, rendimiento y capacidad de soporte.
Los factores de calidad FURPS provienen de trabajos anteriores, definiendo los siguientes atributos para cada uno de los cinco factores principales:
·         La funcionalidad se valora evaluando el conjunto de características y capacidades del programa, la generalidad de las funciones entregadas y la seguridad del sistema global.
·         La facilidad de uso se valora considerando factores humanos, la estética, la consistencia y la documentación general.
·         La fiabilidad se evalúa midiendo la frecuencia y gravedad de los fallos, la exactitud de las salidas (resultados), el tiempo de medio de fallos (TMDF), la capacidad de recuperación de un fallo y la capacidad de predicción del programa.
·         El rendimiento se mide por la velocidad de procesamiento, el tiempo de respuesta, consumo de recursos, rendimiento efectivo total y eficacia.
·         La capacidad de soporte combina la capacidad de ampliar el programa (extensibilidad), adaptabilidad y servicios (estos tres atributos representan un término más común -mantenimiento-), así como capacidad de hacer pruebas, compatibilidad, capacidad de configuración (la capacidad de organizar y controlar elementos de la configuración del software), la facilidad de instalación de un sistema y la facilidad con que se pueden localizar los problemas.
Los factores de calidad FURPS y atributos descritos anteriormente pueden usarse para establecer métricas de la calidad para todas las actividades del proceso del software. 19.1.3. Factores de calidad ISO 9126 El estándar ISO 9126 ha sido desarrollado en un intento de identificar los atributos clave de calidad pira el software.
El estándar identifica seis atributos clave de calidad:
·         Funcionalidad. El grado en que el software satisface las necesidades indicadas por los siguientes subatributos: idoneidad, corrección, interoperatividad, conformidad y seguridad.
·         Confiabilidad. Cantidad de tiempo que el software está disponible para su uso. Está referido por los siguientes subatributos: madurez, tolerancia a fallos y facilidad de recuperación.
·         Usabilidad. Grado en que el software es fácil de usar. Viene reflejado por los siguientes subatributos: facilidad de comprensión, facilidad de aprendizaje y operatividad.
·         Eficiencia. Grado en que el software hace Óptimo el uso de los recursos del sistema. Está indicado por los siguientes subatributos: tiempo de uso y recursos utilizados.
·         Facilidad de mantenimiento. La facilidad con que una modificación puede ser realizada. Está indicada por los siguientes subatributos: facilidad de análisis, facilidad de cambio, estabilidad y facilidad de prueba.
·         Portabilidad. La facilidad con que el software puede ser llevado de un entorno a otro. Está referido por los siguientes subatributos: facilidad de instalación, facilidad de ajuste, facilidad de adaptación al cambio.
Los factores ISO 9 126 no necesariamente son utilizados para medidas directas. En cualquier caso, facilitan una valiosa base para medidas indirectas y una excelente lista para determinar la calidad de un sistema.

Fuentes:

Apuntes



1.- El sistema muestra opciones de administrador de usuario al usuario.
a    1)Alta
b    2)Baja
c    3) Cambio
d    4)   Consulta

2.-El usuario selecciona opciones y envía al sistema
3.-El sistema :
·         Si el usuario selecciona alta realizar flujo secundario “alta de usuario”
·         Si el usuario selecciona baja realizar flujo secundario “baja de usuario”
·         Si el usuario selecciona cambio realizar flujo secundario “cambio de usuario”
·         Si el usuario selecciona consulta realizar flujo secundario “consulta de usuario”
·         De lo contrario realizar flujo alterno “selección errónea”
Alta usuario
1.       El usuario ingresa datos personales.
2.       El usuario captura datos
3.       El sistema verifica y envía a base de datos.
4.       La base de datos verifica usuario e ingresa datos
5.       La base de datos confirma ingreso de usuario
6.       El sistema informa al usuario el ingreso de datos

Baja usuario
1.       El sistema solicita datos al usuario
2.       El usuario captura datos
3.       El sistema verifica y elimina en la base de datos
4.       La base de datos confirma baja del usuario
5.       El sistema informa al usuario la baja

Cambio usuario
1.       El sistema solicita datos al usuario
2.       El usuario captura datos
3.       El sistema verifica y cambia en la base de datos
4.       La base de datos confirma cambio de usuario
5.       El sistema informa al usuario del cambio
Consulta
1.       El sistema solicita datos
2.       El usuario captura datos
3.       El sistema verifica
4.       El sistema despliega datos