Ingeniería de software

 Introducción 

La ingeniería de software es una disciplina de la computación que busca encontrar principios que permitan el desarrollo de sistemas de software complejos y de gran tamaño.

La ingeniería del software es la rama de las ciencias de la computación que busca principios que sirvan como guía al desarrollo de sistemas de software complejos y de gran tamaño.

El desarrollo de estos sistemas requiere el esfuerzo de más de una persona a lo largo de un periodo extendido de tiempo durante el cual los requisitos del sistema propuesto pueden verse alterados y el personal asignado para el proyecto puede variar.


Características 

  • Los componentes del software son diseñados para un dominio específico y para una aplicación específica a partir de componentes genéricos prefabricados.
  • Existe una falta de métricas para medir las propiedades del software. El tiempo entre fallos o el número de líneas del código no son buenas métricas.
  • Los errores y la dependencia del software. Hay 3 razones principales por las cuales los sistemas "caen":
    • Falta de respaldos
    • Hackeo
    • Error humano
Además de ya tener el software terminado, es difícil conocer si tiene errores hasta no haberlo sometido a una serie de pruebas que pongan en juego las aplicaciones del software. Esta etapa es crucial debido a que estamos en un mundo globalizado en el cual un error de software puede terminar en grandes problemas. 

modalidad CASE 

En el caso de la planificación y desarrollo de un software se recomienda que sea en la modalidad CASE, en la cual se asiste por una computadora. En este modelo se utiliza las siguientes herramientas:
  • Sistema de planificación
  • Sistema de gestión
  • Sistema de documentación
  • Sistema de prototipado y simulación
  • Sistema de programación

Ciclo de vida 

Una vez el software ha sido desarrollado entra en un ciclo de utilización y mantenimiento, dicho ciclo continúa durante el resto de la vida útil del software. A diferencia de otros productos, la fase de mantenimiento es tan solo para la corrección de errores, en este caso suele consistir en correcciones y actualizaciones.

Creación 

Para crear un software existen diferentes metodologías como las siguientes:
  • Modelo de cascada: proceso secuencial
  • Modelo incremental: se da una primera cara del software con funcionalidad limitada y se trabaja sobre el para llegar al producto final
  • Modelo iterativo: el primer sistema esta incompleto y posteriormente se la van añadiendo características
  • Proceso unificado racional: redefine los pasos de la fase de desarrollo y proporcionan nuevas directrices para llevar a cabo el proyecto
  • Prototipado rápido: se da una prueba rápida y simple que sirve para presentarsela al cliente e ir reconociendo los requerimientos
  • Desarrollo de Open Source: se utiliza una plantilla de Open Source a la cual se le agrega la funcionalidad necesaria
  • Métodos ágiles: existe una gran variedad de métodos ágiles pero se resume en tener un equipo que trabaja en conjunto y al mismo tiempo por un fin


Conclusión 

Nuestra sociedad es dependiente a los sistemas de computadoras y software. Basta con pensar en la economía, la salud pública, el gobierno, las fuerzas de seguridad o el transporte para entender esta noción. Por ello es importante entender qué es lo que hay detrás de la creación de los software utilizados.





Comentarios

Entradas populares de este blog

Arquitectura de computadoras. Ensamblado y Desensamblado

Fintech, Blockchain y Criptomonedas

Plática con Luis Guillot