Universidad de Ibagué, Coruniversitaria.
Programa Ingeniería de Sistemas

Ingeniería del Software

Inicio

Generalidades

Ejercicios

Talleres

Proyecto

 

 "¿Por qué esta magnífica tecnología científica, que ahorra trabajo y nos hace la vida más fácil, nos aporta tan poca felicidad?
La respuesta es esta, simplemente:
Porque aún no hemos aprendido a usarla con acierto."  (Albert Einstein)

 CONCEPTOS FUNDAMENTALES DE  INGENIERÍA  DEL  SOFTWARE

 La ingeniería de software es una actividad de modelado, para solución de problemas aplicando el método de la ingeniería, para adquisición de conocimiento y administración de la fundamentación.

 El desarrollo de software incluye, por lo general, cinco actividades: Obtención de requerimientos, Análisis, Diseño del sistema, Diseño de objetos e Implementación.  En ingeniería de software también se deben tener en cuenta conceptos muy importantes como:

 Proyecto
 Proceso
 Sistemas y modelos
 Participantes
 Productos de trabajo
 Actividades, tareas y recursos
 Objetivos
 Requerimientos y restricciones
 Notaciones, métodos y metodologías,

 Responsabilidad profesional y código de ética.
(http://www.ati.es/novatica/1999/140/docs140.html)


  La integración y aplicación de los conceptos anteriores permiten el desarrollo eficiente de proyectos de Ingeniería de Software, interdisciplinarios y con variable nivel de complejidad, como por ej:

  • Desarrollar un sistema para el procesamiento de datos que podría tener lugar en un sistema de correo electrónico. Modelar el procesamiento de envío y recibo de correos de forma separada.

  • Diseñar un formulario electrónico que se pueda utilizar para registrar los comentarios de una revisión de estándares de calidad y para hacer comentarios a los revisores por medio del e-mail ...

* En la práctica, en la ingeniería de software comúnmente se menosprecia el valor de una metodología para crear el software. Esto, a mi juicio, está demeritando la incipiente profesión de Ingeniero de Software en particular, la del especialista en Tecnología de Información en general, y a las empresas de consultoría en software, ya que generalmente se cede al "chantaje" profesional del jefe o del cliente quien ordena la construcción del software, con argumentos como "no hay tiempo para eso, pónte a programar!".

Para reflexionar, pregunto, lo siguiente:

¿Qué pasaría, si el ingeniero civil o el arquitecto construye una casa o un edificio sin hacer sus planos, proyectos o maquetas? ¿Crees que la obra pueda concluirse cubriendo las necesidades, con la calidad necesaria y a tiempo?
Simplemente observa la calidad de las viviendas "en obra negra perpetua" en la mayoría de las calles de México.
Y todavía más allá, ¿Permitirías que tu propio cirujano te interviniera sin hacer los estudios respectivos para obtener las evidencias del problema de salud que te aqueja?  O ¿permitirías a tu abogado que te defendiera sin conocer las pruebas y sin un plan para tu defensa? Entonces, ¿por qué los ingenieros en software a veces cedemos al "chantaje de la falta de tiempo" y construimos software sin el análisis y diseño expresado en un proyecto, más allá de las ideas existentes "en nuestra cabeza"?  ¿Por qué lo intentamos hacer sobre la marcha, pero nunca lo concluimos pues ya no hay tiempo?
¿Dónde quedó la ética profesional?...

Sugiero que consultes, como referencia, el Código de Etica del Ingeniero en Software y de la Práctica Profesional en el site de la Association for Computing Machinery aquí:
http://www.acm.org/serving/ethics.html.

* (Zavala R. 2000.  Diseño de un Sistema de Información Geográfica sobre internet. Tesis de Maestría en Ciencias de la Computación. Universidad Autónoma Metropolitana-Azcapotzalco. México, D.F.)
 

 Descripción, ejemplos y características de diferentes categorías de software
(http://tecnomaestros.awardspace.com/tipos_software.php)

 

 Ejercicios 'Amistosos':

  1. ¿Cuál es el propósito del modelado?

  2. ¿Qué es más importante: el producto o el proceso?

  3. Un lenguaje de programación es una notación para la representación de algoritmos y estructuras de datos. Liste dos ventajas y dos desventajas del uso de un lenguaje de programación como notación única a lo largo del proceso de desarrollo.

  4. Considere una tarea con la que no esté familiarizado, como el diseño de un automóvil con cero emisiones de contaminantes. ¿Cómo podría atacar el problema?.

  5. Especifique cuáles de los siguientes enunciados son requerimientos funcionales y cuáles son no funcionales: a) El distribuidor de boletas para el Estadio Murillo Toro debe permitir que un aficionado compre pases mensuales. b) El distribuidor de boletas debe estar escrito en Java .net. c) El distribuidor de boletas debe ser fácil de usar.

  6. Proporcione cinco ejemplos de proyectos de desarrollo de software que sean adecuados para construir prototipos. Nombre dos aplicaciones que fueran más difíciles para construir prototipos.

  7. Describa tres situaciones reales de la vida en las que el cliente y el usuario final son el mismo.

 


Inicio | Biografía | Cursos | Para pensar... | Para reflexionar... | Para reir | Enlaces

 
Profesor Gustavo Martínez Villalobos
Email: gustavo.martinez@unibague.edu.co
Facultad de Ingeniería de Sistemas, Coruniversitaria
Ibagué, Tolima, COLOMBIA