Magazine

La Importancia de la Ingeniería del Software

Publicado el 11 noviembre 2014 por Instintobinario

Hoy voy a hablaros de la ingeniería del software, una rama de la informática

¿Que es la ingeniería del software?

La ingeniería del software es una disciplina que comprende todos los aspectos de la producción del software desde las etapas iniciales de la especificación del sistema hasta el mantenimiento de éste después de que se utiliza. (Definición de Ian Somerville). Es decir, la ingeniería del software es la aplicación de unas técnicas y un conocimiento para desarrollar software y no escribir código por escribir.

¿Por qué es importante la ingeniería del software?

Seguro que mucha gente a la que le gusta programar se preguntará y ¿por qué tengo que perder el tiempo haciendo diagramas de clases y diseñando la arquitectura del sistema (ya veremos todo lo que es eso en otros artículos) si yo programo de lujo y mis programas funcionan perfectamente? Seguro que estaremos de acuerdo en que cualquier persona con tiempo y que le guste programar puede hacer software que funcione y sin haber estudiado nada. Sin embargo ese software seguro que es mucho menos eficiente y mucho menos seguro que un software desarrollado usando unos procedimientos adecuados. Otro aspecto importante es la mantenibilidad. Este concepto se refiere a la capacidad que tiene un programa de ser modificado. En el mundo de la informática lo que gusta hoy, la semana que viene puede quedarse desfasado y por tanto tenemos que adaptar nuestros programas. Si tan solo hemos escrito lineas y lineas de código sin ningún criterio solo con el objetivo de que funcione el programa, cuando queramos cambiar algo nos volveremos locos y la competencia nos aplastará.

Para que entendais un poco mejor todos estos conceptos, voy a hacer una analogía con el mundo de la construcción. Una persona que sepa hacer cemento y poner ladrillos, sabrá construir una casa. Sin embargo, cuando venga una racha de viento fuerte, es posible que se la lleve por delante ya que la persona que la construyó sólo se limitó a poner un ladrillo encima de otro sin tener en cuenta los conceptos necesarios para construir una casa segura. Pues al igual que un arquitecto es esencial para construir una casa que no se venga abajo, un ingeniero del software es esencial para construir software eficiente, seguro y mantenible (que es el que la gente querrá usar).

Fases de la ingeniería del software

Para finalizar esta introducción a la ingeniería del software, explicaré un poco por encima las fases principales para la construcción de software medianamente complejo (más adelante explicaré todos estos conceptos).

Lo primero que tenemos que hacer es capturar y analizar los requisitos que tendrá nuestro programa. Puede que sea un cliente el que nos haya mandado construir un programa. Pues entonces tendremos que cumplir sus condiciones y expectativas. Sin embargo, si lo que pretendemos es desarrollar un programa para el público en general, tendremos que tener en cuenta que aspectos son necesarios para que la gente use nuestro programa en vez de otro.

A continuación debemos diseñar la arquitectura de nuestro programa. No será igual un programa que tenga que usar datos de una base de datos a uno que todos los datos que necesita están en el propio ordenador donde se instala. Es muy importante en esta fase diseñar una arquitectura capaz de adaptarse a la tecnología que se esté usando actualmente así como a nuevas tecnologías. Por ejemplo si estamos usando un fichero XML para recoger los datos, es importante que nuestra arquitectura nos permita cambiar el XML por una base de datos.

Una vez que tengamos la arquitectura diseñada, debemos profundizar más y diseñar la lógica y las relaciones entre todas las partes de nuestro sistema, para finalmente comenzar a codificar.

Cuando es programa esté acabado debemos probarlo para comprobar que cumple todos los requisitos y funciona como es previsto.

Aunque parezca que aquí acaba todo, existe otra pase que se prolonga durante toda la vida del programa que es el mantenimiento. Añadir nueva funcionalidad o modificar aspectos del programa son tareas que se realizan en la fase de mantenimiento. Las actualizaciones de Windows son un ejemplo del mantenimiento. Si la gente de Microsoft no realizará mantenimiento a Windows, nuestro sistema operativo se quedaría desfasado y sería menos funcional y menos seguro que otros.

Pues esto ha sido todo. Más adelante profundizaremos en los aspectos de la ingeniería del software. Espero que me acompañes.

El artículo La Importancia de la Ingeniería del Software apareció por primera vez en Instinto Binario.


Volver a la Portada de Logo Paperblog