Ingeniería del Software: Modelado de Requisitos, Desarrollo y Pruebas

Modelado y Expresión de Requisitos

Basados en el Escenario

  • Casos de Uso

    • Cuándo usarlo: Cuando necesitas describir las funcionalidades del sistema desde el punto de vista de los actores. Útil en la etapa inicial del proyecto para capturar los requisitos funcionales y entender cómo los usuarios interactúan con el sistema.

    • Ejemplo: Modelar cómo un usuario realiza una cotización en un sistema de seguros.

De Comportamiento

  • Diagramas de Estado

    • Cuándo usarlo: Cuando necesitas modelar los diferentes estados por los que puede pasar un objeto y las transiciones entre estos estados en respuesta a eventos. Útil para entender el ciclo de vida de objetos clave.

    • Ejemplo: Modelar los estados de una cotización desde su creación hasta su finalización.

  • Diagramas de Secuencia

    • Cuándo usarlo: Cuando necesitas visualizar la interacción entre objetos a lo largo del tiempo. Útil para modelar cómo los objetos colaboran para llevar a cabo un proceso específico.

    • Ejemplo: Modelar la interacción entre un usuario y el sistema durante el proceso de cotización de un seguro.


Orientados a Clases

  • Diagramas de Clases

    • Cuándo usarlo: Cuando necesitas definir la estructura estática del sistema, mostrando las clases, atributos, métodos y las relaciones entre las clases. Útil en la etapa de diseño del sistema para asegurar que todos los elementos necesarios están presentes.

    • Ejemplo: Modelar las clases relacionadas con el sistema de cotización (como Usuario, Cotización, Aseguradora).

  • Diagramas de Colaboración

    • Cuándo usarlo: Cuando necesitas mostrar cómo las clases y objetos colaboran para cumplir los requisitos del sistema. Útil para entender la interacción entre diferentes partes del sistema.

    • Ejemplo: Modelar cómo diferentes clases interactúan para procesar una solicitud de cotización.

Orientados al Flujo

  • Diagramas de Flujo de Datos

    • Cuándo usarlo: Cuando necesitas visualizar la transformación y movimiento de datos a medida que avanzan en el sistema. Útil para analizar cómo se procesan los datos y asegurarse de que todos los datos necesarios son capturados y transformados correctamente.

    • Ejemplo: Modelar el flujo de datos desde la entrada del usuario hasta la generación de una cotización.


Modelos de proceso de desarrollo Los modelos ayudan a organizar las actividades y decisiones durante el desarrollo.

Cascada:

Etapas lineales (planificación → desarrollo → pruebas).

  • Ventaja: Simplicidad y claridad.
  • Desventaja: Poco flexible, requiere tener los requerimientos muy definidos desde el principio.

Incremental:

Desarrollo en pequeños bloques funcionales.

  • Ventaja: Se pueden entregar versiones parciales funcionales rápidamente.
  • Desventaja: Requiere buena planificación para integrar los incrementos.

Evolutivo:

Iteraciones para mejorar y extender el sistema.

  • Ventaja: Adaptable a cambios durante el desarrollo.
  • Desventaja: Puede ser difícil controlar el alcance del proyecto.

Prototipos:

Se crea un modelo inicial para obtener retroalimentación.

  • Ventaja: Permite ajustar los requerimientos tempranamente.
  • Desventaja: Los usuarios pueden confundir el prototipo con el producto final.

Espiral:

Combina iteraciones con análisis de riesgos en cada ciclo.

  • Ventaja: Útil para proyectos complejos con alto grado de incertidumbre.
  • Desventaja: Puede ser costoso y complicado de gestionar.


Descripción Dinámica:

Se centra en cómo el sistema cambia con el tiempo debido a eventos o acciones. Representa transiciones entre estados o cómo los datos fluyen y se transforman. Incluye diagramas de actividad, secuencia, o transición de estados. Claves: Se mencionan estados, eventos o acciones desencadenantes. Se modela el comportamiento o las respuestas del sistema a estímulos externos/internos.

Descripción Estática:

Se enfoca en la estructura del sistema: entidades, atributos, relaciones y operaciones. Representa lo que no cambia con el tiempo. Claves: Se mencionan clases, objetos, atributos o funciones. Se describe cómo están organizados los datos o las propiedades de los componentes.

Tipos de pruebas:

1. Unitarias: Verifican componentes individuales (por ejemplo, un módulo de cálculo de descuentos). 2. De integración: Aseguran que los módulos funcionen bien juntos. 3. Funcionales: Comprueban que el sistema cumpla con los requerimientos del cliente. 4. De rendimiento: Evalúan la velocidad, escalabilidad y eficiencia del sistema.

Componentes de un sistema de información

Datos: Entradas básicas, como números o texto sin contexto. Información: Datos procesados que tienen significado y relevancia. Conocimiento: Uso de la información para tomar decisiones.


3. Clasificación de sistemas de información

Sistemas empresariales:

  • Procesamiento de transacciones (TPS): Manejan operaciones rutinarias.
  • Planificación de recursos empresariales (ERP): Integran procesos internos.

Sistemas de soporte a las decisiones:

  • Información administrativa: Generan reportes y análisis para gerentes.
  • Soporte a decisiones: Ayudan en decisiones complejas con simulaciones y modelos.

Sistemas de negocios especializados:

  • Administración del conocimiento: Organizan información valiosa.
  • Inteligencia artificial y sistemas expertos: Simulan procesos humanos de decisión.
  • Realidad virtual: Simulaciones inmersivas para capacitación o análisis.

4. Procesos en un sistema de información

Entrada: Recopilación de datos (datos del cliente y el vehículo). Procesamiento: Transformación de datos en información significativa (cálculo de costos). Salida: Resultados útiles para los usuarios (tabla comparativa de cotizaciones). Retroalimentación: Ajustes basados en resultados o nuevas entradas (registros de cotizaciones anteriores para mejorar recomendaciones).


6. Tipos de procesamiento (El procesamiento describe cómo el sistema trabaja con los datos.)

1. Por lotes (Batch):

Se procesan grandes cantidades de datos de una sola vez, en momentos específicos. Ejemplo: Procesar todas las cotizaciones del día durante la noche.

  • Ventaja: Eficiente para grandes volúmenes.
  • Desventaja: No permite resultados inmediatos.

2. En línea (OLTP – Online Transaction Processing):

Procesa datos en tiempo real, cada vez que se ingresa una solicitud. Ejemplo: Generar una cotización de seguro inmediatamente después de ingresar los datos.

  • Ventaja: Respuestas rápidas y actualizadas.
  • Desventaja: Puede ser costoso y requiere infraestructura robusta.

3. Tiempo real:

Similar al procesamiento en línea, pero con alta prioridad y mínima latencia. Ejemplo: Control de tráfico aéreo.

  • Ventaja: Ideal para sistemas críticos.
  • Desventaja: Requiere alta precisión y disponibilidad constante.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.