1.1 Preguntas frecuentes sobre la Ing.
Del Software
1.1.1 ¿Qué es Software?
Software 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.
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.
Los ingenieros de software se concentran en el desarrollo de productos de software (software que
se vende a clientes). Existen 2 tipos de productos de software:
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.
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.
1.1.2 ¿Qué es la ingeniería del software?
Es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software
desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después
que se utiliza.
1.1.3 ¿Cuál es la diferencia entre ingeniería del software y ciencia de la
computación?
Ciencia de la computación se refiere a las teorías y métodos subyacentes a las computadoras y los
sistemas de software, mientras que la ingeniería del software se refiere a los problemas prácticos
de producir software.
1.1.4 ¿Cuál es la diferencia entre ingeniería del software e ingeniería de
sistemas?
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.
1.1.5 ¿Qué es un proceso del software?
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:
1. Especificación del software donde los clientes e ingenieros definen el software a producir y
las restricciones sobre su operación.
2. Desarrollo del software donde el software se diseña y programa.
3. Validación del software donde el software se valida para asegurar que es lo que el cliente
requiere.
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.
1.1.6 ¿Qué es un modelo de procesos del software?
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:
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.
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. 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:
1. El enfoque en cascada. Considera las actividades anteriores y las representa como fases de
procesos separados.
2. Desarrollo iterativo. Este enfoque entrelaza las actividades de especificación, desarrollo y
validación.
3. Ingeniería del software basada en componentes (CBSE). Esta técnica supone que las partes
del sistema existen.
1.1.7 ¿Cuáles son los costos de la ingeniería del software?
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.
1.1.8 ¿Qué son los métodos de la ingeniería del software?
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:
1.1.9 ¿Qué es CASE?
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. 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.
1.1.10 ¿Cuáles son los atributos de un buen software?
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:
1.1.11 ¿Cuáles son los retos fundamentales que afronta la ingeniería del
software?
Afronta 3 retos fundamentales:
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.
2. El reto de la entrega. Es reducir los tiempos de entrega para sistemas grandes y complejos
sin comprometer la calidad del sistema.
3. El reto de la confianza. Es desarrollar técnicas que demuestren que los usuarios pueden
confiar en el software.