El porqué de la ingeniería de software


Autor: Jose Alfredo Castillo - Estudiante de la UFG

La Ingeniería de Software es una de las ramas de las ciencias de la computación que estudia la creación de software confiable y de calidad, basándose en métodos y técnicas de ingeniería. Brindando soporte operacional y de mantenimiento, el campo de estudio de la ingeniería de software.

Algunos autores consideran que "desarrollo de software" es un término más apropiado que "ingeniería de software" para el proceso de crear software. Personas como Pete McBreen (autor de Software Craftmanship) cree que el término IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software.

¿Qué es software?

En la conceptualización general, hablar de software es equivalente a hablar de un programa, sin embargo, el software es mucho mas que los programas (códigos fuentes), puesto que engloba los documentos, configuraciones, conjuntos de datos, conexiones, etc.

El problema de asociar el software solo a los programas, radica en que se dejan de lado algunos elementos que son clave para el aseguramiento del buen funcionamiento del aplicativo.

Muchas veces se considera el software solo a las pantallas, la base de datos, los reportes, pero se deja de lado la documentación. La documentación es sumamente importante en la ingeniería de software, pues, es pilar fundamental para garantizar el buen desarrollo, implementación y mantenimiento del software.


Otro concepto que debemos de tener claro en ¿Qué es un sistema?

Es un conjunto de partes o elementos organizados y relacionados, que interactúan entre sí para lograr un objetivo. Los sistemas reciben datos (entrada), energía o materia del ambiente y proveen (salida) información, energía o materia.


Ingeniería del software

Debe comprenderse esta disciplina como el proceso de la producción de software desde su inicio, su desarrollo, sus pruebas, documentación, implementación y mantenimiento.

Un concepto formal es:

La ingeniería es el estudio y la aplicación de las distintas ramas de la tecnología. El profesional en este ámbito recibe el nombre de ingeniero.


Surgimiento:

  • En los comienzos, el programador era el usuario y los problemas a resolver eran bien conocidos y simples.
  • El termino Ingeniería de software aparece por primera vez en 1698.

En la ingeniería de software, se debe estar muy enfocado en la temática y estar atentos ante cualquier inconveniente que un aplicativo tenga. Es por ello que:
  • Al solucionar un problema complejo, se debe analizar (en subproblemas más simples) y desarrollar una síntesis (de una solución al problema a partir de las soluciones a los subproblemas).
  • Esto, nos lleva a recurrir en: Técnicas, métodos, algunas herramientas (mejorar resultado o eficiencia), procedimientos y paradigmas.

¿Con qué otras disciplinas está relacionada?

La ingeniería de software (IS) esta relacionada con:
  • Programación -Programa-Producto-Sistema.
  • Ingeniería: “Construcción de artefactos cumpliendo con restricciones”. Arte más que Ciencia (hacer más que saber) y Plazo, Costo, Calidad, Otras
  • En la administración:  Proyectos, Recursos Humanos.
La Ingenierías tienen relación directa con las ciencias exactas como La Matemática, la Física y la Química. 

Los campos que tienen la ingeniera y sus distintas áreas  son:

- Del mar: Ingeniería oceánica, Ingeniería naval etc.

- Ciencias de la tierra: Ingeniería ambiental, Ingeniería de montes etc.

- Del aire y del espacio: Ingeniería aeroespacial, Ingeniería astro-náutica.

- Administrativas y diseño: Ingeniería civil, Ingeniería mecánica.

- Derivada de la física y química: Ingeniería agrícola, ingeniería física.

- Derivadas de las ciencias biológicas y la medicina: Ingeniería biológica, ingeniería biónica.

- De la agricultura y el ambiente: Ingeniería agronómica, Ingeniería forestal.

- Por objeto de aplicación: Ingeniería del papel, ingeniería de la madera.

- De las ciencias de la computación: Ingeniería de sistemas, ingeniería de software.

- Novedosas: ingeniería materiales, nano-ingeniería

¿Qué implicancias tiene la IS sobre la ética y responsabilidad?

Repercusiones de fallas en el software

  • Pérdidas financieras.
  • Riesgo a la seguridad.
  • etc.

Más allá de las fallas

  • Impacto social.
  • Calidad de vida.
  • Cuestiones legales.

¿Cómo debe actuar los ingenieros de software?

  • Actuarán en forma congruente con el interés social.
  • Actuarán de manera que se concilien los mejores intereses de sus clientes y empresarios, congruentemente con el interés social.
  • Asegurarán que sus productos y modificaciones correspondientes cumplen los estándares profesionales más altos posibles.
  • Mantendrán integridad e independencia en su juicio profesional.

  • Gerentes y líderes promoverán y se suscribirán a un enfoque ético en la administración del desarrollo y mantenimiento de software.
  • Incrementarán la integridad y reputación de la profesión congruentemente con el interés social.
  • Apoyarán y serán justos con sus colegas.
  • Participarán toda su vida en el aprendizaje relacionado con la práctica de su profesión y promoverán un enfoque ético en la práctica de la profesión.

Ademas, se deben de considerar lo siguiente:

Factores que influyen en la calidad y productividad del sistema

  1. Capacidad individual.
  2. Entendimiento del problema.
  3. Comunicación del grupo.
  4. Complejidad del producto.
  5. Habilidades necesarias.
  6. Facilidades y recursos.
  7. Metas no adecuadas.
  8. Control de cambios.
  9. Notación Adecuada.
  10. Entrenamiento Adecuado.
  11. Habilidades administrativas.

Cambios y Tendencias



Este tema es muy amplio, pero he tratado de explicarles los aspectos más relevantes de esta temática.
Por el momento esto seria todo; sin embargo, esperen más aportes sobre la ingeniería de software, seguiré publicando más foro.

Saludos.

Comentarios