Ingeniería de Software: Productos y Procesos
20 Questions
0 Views

Ingeniería de Software: Productos y Procesos

Created by
@LeadingField

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuáles son los atributos que deben tener los productos de software?

Mantenibilidad, confiabilidad, eficiencia y usabilidad.

¿Cuál es la diferencia principal entre productos de software genéricos y hechos a medida?

Los productos genéricos se venden al por mayor, mientras que los hechos a medida son diseñados para un cliente específico.

¿Qué caracteriza al modelo de desarrollo evolutivo en comparación con el modelo de cascada?

El modelo de desarrollo evolutivo considera las actividades del proceso de forma concurrente, a diferencia del modelo de cascada que trata cada actividad como discreta.

¿Qué importancia tienen las características del producto en el desarrollo de software?

<p>La importancia depende del tipo de trabajo y del ambiente de uso, donde algunos atributos son más críticos que otros.</p> Signup and view all the answers

¿Qué se entiende por proceso de software?

<p>Es el conjunto de actividades involucradas en el desarrollo, administración y evolución de productos de software.</p> Signup and view all the answers

¿Cuáles son las responsabilidades éticas de los ingenieros de software?

<p>Deben ser conscientes de la ética, la responsabilidad social y profesional en la creación de software.</p> Signup and view all the answers

¿Cuál es la función principal de la visibilidad del proceso en ingeniería de software?

<p>Implicar la creación de documentos o resultados de las actividades del proceso.</p> Signup and view all the answers

¿Cuál es una de las mayores fuentes de gasto en el desarrollo de software?

<p>La mayor parte del gasto se destina a productos de software genéricos.</p> Signup and view all the answers

¿Qué implica que un software sea mantenible?

<p>Significa que el software debe evolucionar y seguir cumpliendo con sus requerimientos a lo largo del tiempo.</p> Signup and view all the answers

¿Por qué el software debe ser confiable?

<p>El software no debe causar fallos físicos o económicos que afecten a los usuarios o al sistema.</p> Signup and view all the answers

¿Cuáles son las fases del modelo de cascada?

<p>Las fases son: definición de requerimientos, diseño del sistema y del software, implementación y unit test, integración y pruebas del sistema, operación y mantenimiento.</p> Signup and view all the answers

Nombra al menos dos características del proceso de desarrollo de software.

<p>Debe ser definido y visible.</p> Signup and view all the answers

¿Qué problemas puede tener el modelo de proceso de software?

<p>Especificaciones incompletas o anómalas y la nula existencia de distinción entre especificación, diseño y construcción.</p> Signup and view all the answers

¿Qué es el prototipado throw-away?

<p>Es un enfoque donde se inicia con especificaciones poco entendidas para aclarar requisitos del sistema.</p> Signup and view all the answers

Menciona una ventaja del modelo en espiral.

<p>Centra su atención en reutilizar componentes y eliminar errores en fases iniciales.</p> Signup and view all the answers

¿Cuál es el enfoque del desarrollo evolutivo?

<p>La especificación y el desarrollo están intercalados, lo que permite mayor flexibilidad.</p> Signup and view all the answers

¿Qué se entiende por modelos de procesos híbridos?

<p>Son modelos que permiten usar diferentes enfoques para varios subsistemas de un sistema grande.</p> Signup and view all the answers

¿Qué riesgos se asocian con el modelo de cascada?

<p>Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseño.</p> Signup and view all the answers

¿Cuáles son las fases del modelo en espiral?

<p>Planeamiento de objetivos, identificación y reducción de riesgos, desarrollo y validación, planeación.</p> Signup and view all the answers

¿Qué problemas presenta el desarrollo evolutivo?

<p>Poca visibilidad en el proceso y sistemas pobremente especificados.</p> Signup and view all the answers

Study Notes

Ingeniería de Software

  • La Ingeniería de Software se enfoca en las teorías, métodos y herramientas para el desarrollo, la administración y la evolución de productos de software.
  • Los productos de software consisten en programas y documentación.
  • Los atributos de los productos deben ser mantenibles, confiables, eficientes y fáciles de usar.
  • Un proceso de software implica todas las actividades involucradas en su desarrollo.

Productos de Software

  • Los productos de software se clasifican en genéricos y hechos a medida.
  • Los productos genéricos son desarrollados para su venta masiva.
  • Los productos hechos a medida se adaptan a las necesidades específicas de un cliente o desarrollador.
  • La mayoría del gasto en software se destina a productos genéricos, pero el esfuerzo en los sistemas hechos a medida es mayor.
  • Características de los productos de software:
    • Mantenible: El software debe evolucionar y seguir cumpliendo con los requerimientos.
    • Confiable: El software no debe causar fallos físicos o económicos.
    • Eficiente: El software no debe desperdiciar recursos del sistema.
    • Fácil de usar: El software debe proporcionar una interfaz intuitiva para el usuario.
  • La importancia de las características depende del tipo de trabajo y ambiente. Por ejemplo, en software crítico de tiempo real, la confiabilidad y eficiencia son cruciales.
  • Los costos aumentan exponencialmente al requerir niveles estrictos de determinadas características.

Proceso de Software

  • Es un conjunto estructurado de actividades para desarrollar un sistema de software.
  • Las actividades incluyen especificación, diseño, validación y evolución.
  • Las actividades varían según la organización y el tipo de sistema.
  • El proceso debe estar explícitamente modelado para una buena administración.
  • Características del proceso:
    • Definido: Debe ser bien definido y comprensible.
    • Visible: El proceso debe ser visible.
    • Asistido: Apoyado por herramientas CASE (Computer-Aided Software Engineering).
    • Aceptable: Aceptado por el personal involucrado.
    • Confiable: Los errores del proceso deben detectarse antes de convertirse en errores del producto.
    • Robusto: Debe seguir a pesar de problemas inesperados.
    • Mantenible: Debe evolucionar para cumplir con objetivos organizacionales.
    • Ágil: Debe producirse con rapidez

Modelos de Ingeniería de Proceso

  • Especificación: Establecer los requisitos y restricciones del sistema.

  • Diseño: Modelar la solución.

  • Construcción: Desarrollar el sistema.

  • Prueba: Verificar y validar el cumplimiento con las especificaciones.

  • Instalación: Entregar el sistema al usuario y asegurar su funcionamiento.

  • Mantenimiento: Reparar fallos detectados.

  • Problemas del modelo de proceso:

    • Especificaciones incompletas o anómalas.
    • Dificultad para distinguir con precisión entre especificación, diseño y construcción.
    • Imposibilidad de probar el sistema hasta su finalización.
    • Reemplazo del software durante el mantenimiento suele ser difícil.

Modelos Genéricos de Desarrollo de Software

  • Cascada: Separa las fases de especificación y desarrollo en etapas distintas.
  • Evolutivo: La especificación y el desarrollo se realizan de forma interconectada en lugar de fases discretas.
  • Prototipado: Un modelo se utiliza como prototipo para construir el sistema final.
  • Transformación Formal: Un modelo matemático se transforma formalmente en la implementación.
  • Desarrollo basado en reutilización: El modelo se ensambla a partir de componentes existentes.

Modelo de Cascada

  • Fases: Definición de requerimientos, Diseño del sistema y del software, Implementación y pruebas unitarias, Integración y pruebas del sistema, Operación y mantenimiento.
  • Dificultades: Realizar cambios entre etapas.

Desarrollo Evolutivo

  • Problemas: Poca visibilidad del proceso, Sistemas pobremente especificados, Habilidades especiales requeridas.
  • Aplicabilidad: Sistemas interactivos pequeños o medianos, Partes de sistemas grandes (por ejemplo, la interfaz de usuario), Sistemas de corta vida.

Prototipado

  • Exploratorio: El objetivo es trabajar con los clientes para obtener el sistema final a partir de una especificación inicial. Se necesita comenzar con especificaciones claras.
  • Throw-away: El objetivo es entender los requisitos. Se puede comenzar con especificaciones poco claras.

Problemas y Riesgos de los Modelos

  • Cascada: Alto riesgo para sistemas nuevos con especificaciones y diseño complejos, bajo riesgo para desarrollos bien comprendidos.
  • Prototipado: Bajo riesgo para aplicar en proyectos nuevos, alto riesgo por falta de visibilidad.
  • Evolutivo: Alto riesgo necesita tecnologia avanzada y experiencia del equipo.

Modelos Híbridos

  • Los sistemas grandes suelen estar compuestos de varios subsistemas.
  • No es necesario usar el mismo modelo de proceso para todos los subsistemas.
  • El prototipado es recomendado para especificaciones de alto riesgo.
  • El modelo de cascada se usa en desarrollos bien comprendidos.

Modelo en Espiral

  • Fases: Planeación de objetivos, Identificación y reducción de riesgos, Desarrollo y validación, Planificación (siguiente iteración).
  • Ventajas: Reutilización, eliminación de errores tempranos, Integración de desarrollo con mantenimiento, marco de desarrollo HW/SW.
  • Problemas: Desarrollo contractual, experiencia en la identificación de riesgos, refinamiento del modelo para aplicación generalizada.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Description

Este cuestionario explora los conceptos fundamentales de la ingeniería de software, enfocándose en los diferentes tipos de productos, sus características y los procesos involucrados en su desarrollo. Aprende sobre las distinciones entre software genérico y hecho a medida, así como la importancia de la mantenibilidad y confiabilidad en los productos de software.

More Like This

Use Quizgecko on...
Browser
Browser