1. ¿Cuál es la diferencia entre ingeniería del software e ingeniería de sistemas?
1.1. La ingeniería de sistema se refiere a todos los aspectos del desarrollo y de la evolución de sistemas complejos donde el software desempeña un papel principal. Por lo tanto, la ingeniería de sistema comprende el desarrollo de hardware, políticas y procesos de diseño y distribución de sistemas, así como la ingeniería del software.
2. ¿Qué es un proceso del software?
2.1. Es un conjunto de actividades (llevadas a cabo por los ingenieros de software) y resultados asociados que producen un producto de software. Existen 4 actividades fundamentales de procesos:
2.1.1. 1. Especificación del software donde los clientes e ingenieros definen el software a producir y las restricciones sobre su operación.
2.1.2. 2. Desarrollo del software donde el software se diseña y programa.
2.1.3. 3. Validación del software donde el software se valida para asegurar que es lo que el cliente requiere.
2.1.4. 4. Evolución del software donde el software se modifica para adaptarlo a los cambios requeridos por el cliente y el mercado. Diferentes tipos de sistemas necesitan diferentes procesos de desarrollo.
3. ¿Qué es un modelo de procesos del software?
3.1. Es una descripción simplificada de un proceso del software que presenta una visión de ese proceso. Algunos tipos de modelos que se pueden producir son:
3.1.1. 1. Un modelo de flujo de trabajo. Muestra la secuencia de actividades (representan acciones humanas) en el proceso junto con sus entradas, salidas y dependencias.
3.1.2. 2. Un modelo de flujo de datos o de actividad. Representa el proceso como un conjunto de actividades, cada una de las cuales realiza una transformación en los datos.
3.1.3. 3. Un modelo de rol/acción. Representa los roles de las personas involucradas en el proceso del software y las actividades de las que son responsables. La mayor parte de los modelos de procesos del software se basan en uno de los 3 modelos generales o paradigmas de desarrollo de software:
3.1.3.1. 1. El enfoque en cascada. Considera las actividades anteriores y las representa como fases de procesos separados.
3.1.3.2. 2. Desarrollo iterativo. Este enfoque entrelaza las actividades de especificación, desarrollo y validación.
3.1.3.3. 3. Ingeniería del software basada en componentes (CBSE). Esta técnica supone que las partes del sistema existen.
4. ¿Cuáles son los costos de la ingeniería del software?
4.1. La distribución de costos a través de las diferentes actividades en el proceso del software depende del proceso utilizado y del tipo de software que se vaya a desarrollar. Sin embargo, cada uno de los diferentes enfoques genéricos (modelo en cascada, desarrollo iterativo, ingeniería del software basada en componentes y, costos de desarrollo y evolución para software de larga vida) al desarrollo del software tiene un perfil de distribución de costos diferente a través de las actividades del proceso del software.
5. ¿Qué son los métodos de la ingeniería del software?
5.1. Es un enfoque estructurado para el desarrollo de software cuyo propósito es facilitar la producción de software de alta calidad de una forma costeable. Los métodos orientados a funciones y los orientados a objetos se han integrado en un solo enfoque unificado, basado en el Lenguaje de Modelado Unificado (UML). Los métodos incluyen varios componentes diferentes
6. ¿Qué es CASE?
6.1. CASE (Ingeniería del Software Asistida por Computadora) existen diferentes tipos de programas que se utilizan para ayudar a las actividades del proceso del software, como el análisis de requerimientos, el modelado de sistemas, la depuración y las pruebas.
6.2. En la actualidad, todos los métodos vienen con tecnología CASE asociada, ej. Los generadores de informes que ayudan a crear la documentación del sistema.
7. ¿Cuáles son los atributos de un buen software?
7.1. Los productos de software tienen un cierto número de atributos asociados que reflejan la calidad de ese software. Estos atributos no están asociados directamente con lo que hace el software, más bien, reflejan su comportamiento durante su ejecución y en la estructura y organización del programa fuente y en la documentación asociada. Ej.: tiempo de respuesta del software a una pregunta del usuario y la compresión del programa fuente. A continuación, características esenciales de un sistema de software bien diseñado
8. 11. ¿Cuáles son los retos fundamentales que afronta la ingeniería del software?
8.1. 1. El reto de la heterogeneidad. Es desarrollar técnicas para construir software confiable que sea lo suficientemente flexible para adecuarse a sistemas que operen como sistemas distribuidos en redes que incluyen diferentes tipos de computadoras y soporte; o integrar software nuevo con sistemas más viejos escritos en diferentes lenguajes de programación. Todos los anteriores conocido como heterogeneidad.
8.2. 2. El reto de la entrega. Es reducir los tiempos de entrega para sistemas grandes y complejos sin comprometer la calidad del sistema. 3
8.3. El reto de la confianza. Es desarrollar técnicas que demuestren que los usuarios pueden confiar en el software.
9. ¿ Que es software?
9.1. Son los programas de computadora junto con los documentos asociados y la configuración de datos que se necesitan para hacer que estos programas operen de manera correcta.
9.2. Sistema de Software consiste en diversos programas independientes, archivos de configuración que se utilizan para ejecutar estos programas, un sistema de documentación que describe la estructura del sistema, la documentación para el usuario que explica cómo utilizar el sistema y sitios web que permiten al usuario descargar información de productos recientes.
9.3. Existen 2 tipos de productos de software:
9.3.1. Productos genéricos: son sistemas aislados producidos por una organización de desarrollo y que se venden al mercado abierto a cualquier cliente que le sea posible comprarlos. Ej.: software para PC como procesadores de texto, paquetes de dibujo, etc. La empresa desarrolladora controla sus especificaciones con respecto al desarrollo del software
9.3.2. Productos personalizados(o hechos a medida): son sistemas requeridos por un cliente en particular. Ej.: sistemas de control para instrumentos electrónicos. Las especificaciones por lo general son controladas y desarrolladas por la organización que compra el software.