Ingeniería de software
El mundo en el que vivimos hoy se basa en software y sistemas de diversos tipos, complejidades y clasificaciones. Nuestro mundo está dirigido por software. Desde los portales universitarios hasta los juegos de computadora, desde los aviones hasta las naves espaciales, desde los teléfonos celulares hasta las transacciones bancarias y la seguridad mundial, todo depende en gran medida de algún tipo de software. No podemos escapar del software.
La ingeniería de software es la disciplina de la ingeniería que se ocupa de la producción de software. No es una metodología de desarrollo de software ni otro tipo de proceso de escritura de programas. Más bien, apoya las actividades y metodologías involucradas en el desarrollo de software como un proceso. Las técnicas de ingeniería de software respaldan las especificaciones funcionales, el diseño, el costo, el cronograma, la confiabilidad y la evolución y vida útil del software desarrollado en su conjunto. Está estrechamente involucrado en los aspectos de programación, así como en la documentación y configuración de los datos necesarios para garantizar que se cumplan todas las especificaciones funcionales del proyecto.
Definición de análisis del sistema
El análisis de sistemas en ingeniería de software son, por tanto, las actividades que comprenden la ingeniería de software como un proceso en la producción de software. Es el proceso del software. Este proceso tiene 4 actividades principales. Ellos son:
- Especificación de software
- Diseño e implementación de software.
- Validación de software
- Evolución del software
Como podemos ver, estas actividades son similares a las del análisis de sistemas y el diseño de software. Dependiendo de la metodología utilizada, las actividades se pueden organizar de manera diferente. Están ordenados de forma secuencial, por ejemplo, en el conocido Modelo en Cascada, mientras que en el modelo de Desarrollo Incremental están interrelacionados.
Etapas de análisis de sistemas
Primero echemos un vistazo más de cerca a estas cuatro etapas y sus propios requisitos y subetapas, comenzando con la especificación del software.
Historia de la Ingeniería Industrial
Especificación de software
La especificación de software también se conoce como ingeniería de requisitos y se define como la identificación de los requisitos del sistema y las limitaciones dentro de las cuales el sistema operará, se desarrollará o puede evolucionar. Esta etapa asegura que el software cumpla con todas las expectativas de los usuarios. Garantiza la entrega de software de calidad al usuario al final del proceso de producción. Una vez completada la especificación del software, todas las partes elaborarán y validarán un documento de requisitos.
Las etapas de la ingeniería de requisitos son:
1. Estudios de viabilidad
Se accede a las necesidades del usuario para garantizar que las tecnologías actuales puedan manejarlas adecuadamente, sean rentables y estén dentro de los límites del presupuesto general. El estudio de viabilidad orienta la decisión final sobre si avanzar o no con el desarrollo.
2. Análisis de requisitos
Historia de la Ingeniería Social
Esto implica estipular los requisitos del sistema a partir de los sistemas existentes, las aportaciones de los usuarios potenciales y un análisis más detallado. Se desarrollan o deciden modelos y el resultado garantiza que el sistema en cuestión se comprenda correctamente.
3. Especificación de requisitos
En esta etapa, toda la información recopilada hasta el momento se traduce en un documento que establece claramente todos los requisitos del sistema, incluidos los requisitos declarados por los usuarios y las funcionalidades detalladas del sistema.
4. Validación de requisitos
Esta etapa verifica que los requisitos desarrollados sean consistentes y completos.
Ahora, echemos un vistazo más de cerca a la etapa de diseño e implementación del software.
Diseño e implementación de software
En esta etapa, la especificación del software comienza a convertirse en realidad. Se diseña el software y se desarrolla la programación. Las etapas incluyen los diseños arquitectónicos, de interfaz, de componentes y de bases de datos.
1. Diseño Arquitectónico
Esto incluye el diseño general del sistema: componentes principales, subsistemas y sus interrelaciones.
2. Diseño de interfaz
Esto implica el desarrollo de interfaces a través de las cuales los diferentes componentes del sistema se relacionan entre sí. Una vez diseñadas las interfaces, los componentes se pueden desarrollar simultáneamente.
3. Diseño de componentes
En esta etapa se diseñan los subsistemas y componentes y se establecen sus modos operativos. En caso de que se reutilicen componentes, los cambios realizados quedan documentados.
4. Diseño de base de datos
Las estructuras de datos de los sistemas se diseñan y representan en una base de datos.
Ahora, echemos un vistazo más de cerca a la validación del software.
Validación de software
Esta validación asegura que el software desarrollado cumple con las especificaciones de diseño y las expectativas del usuario del sistema. Durante este proceso se realizan diversas pruebas:
1. Pruebas de desarrollo
Los desarrolladores prueban todos los componentes y subsistemas que componen el sistema. Con el uso de la automatización de pruebas, las herramientas y componentes se prueban de forma aislada e independientemente de otros componentes.
2. Prueba del sistema
Los componentes y subsistemas ahora están acoplados para que el sistema pueda probarse como un todo. Esta prueba busca errores, comportamientos impredecibles del sistema e interacciones de componentes y verifica que se cumplan los requisitos del usuario y se cumplan los requisitos del sistema.
3. Pruebas de aceptación
El usuario proporciona datos de prueba reales que se utilizan para ejecutar el sistema en lugar de los datos simulados utilizados previamente en las pruebas de desarrollo. Con datos reales en uso, esta etapa de prueba puede descubrir deficiencias y omisiones en los requisitos.
Finalmente, echemos un vistazo más de cerca a la evolución del software.
Evolución del software
Hoy en día, los sistemas de software y hardware no se desarrollan de forma aislada. Los complejos sistemas actuales se componen de muchos subsistemas o componentes que han sido diseñados para ofrecer versatilidad. La capacidad de una pieza de software o hardware para ser flexible en su uso se está volviendo cada vez más común en el diseño de sistemas. El grado en que el software puede evolucionar reside en su flexibilidad tanto en modificación como en uso. Vivimos en un mundo de requisitos y necesidades en constante cambio, y los desarrolladores necesitan diseñar software que pueda evolucionar fácilmente con estos cambios.
Resumen de la lección
Dediquemos un par de momentos a revisar lo que hemos aprendido sobre análisis de sistemas e ingeniería de software. Primero, es importante recordar que la ingeniería de software es la disciplina de la ingeniería que se ocupa de la producción de software. A continuación, es importante recordar que el análisis de sistemas en ingeniería de software son las actividades que comprenden la ingeniería de software y el proceso de producción de software. Este proceso en la producción de software se llama proceso de software.
También aprendimos sobre las cuatro actividades principales del proceso del software:
- Especificación de software
- Diseño e implementación de software.
- Validación de software, y
- Evolución del software
Aprendimos que la actividad de especificación de software incluye la ingeniería de requisitos y se define como la identificación de los requisitos del sistema y las limitaciones dentro de las cuales el sistema operará, se desarrollará o puede evolucionar, y esta ingeniería involucra cuatro etapas propias, que incluyen:
- Estudios de viabilidad
- Análisis de requerimientos
- Especificación de requisitos, y
- Validación de requisitos
También aprendimos que la etapa de implementación del software tiene etapas que incluyen:
- Arquitectónico
- Interfaz
- componente, y
- Diseños de bases de datos
En la etapa de validación del software, conocimos que las tres pruebas realizadas se encuentran en:
- Desarrollo
- Sistema, y
- Aceptación
Y la fase de evolución del software contiene análisis sobre la flexibilidad del producto para cambiar con el tiempo.
Estas actividades ayudan a detallar y garantizar que las expectativas de los usuarios y los requisitos del sistema cumplan con las especificaciones estipuladas. Estas actividades dan soporte de ingeniería al proceso de producción del software.
Explora más sobre este tema
Selecciona un tema y sigue aprendiendo...
