1.1. Conceptos de Ingeniería del Software

Ver comentarios

Concepto de Ingeniería de software

Es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de este después de que es utilizado. En esta definición hay dos frases claves que son:

  • Disciplina de la ingeniería: Los ingenieros hacen que las cosas funcionen. Aplican teorías, métodos y herramientas donde sean convenientes, pero las utilizan de forma selectiva y siempre tratando de descubrir soluciones a los problemas, aun cuando no existan teorías y métodos aplicados para resolverlos. Los ingenieros también saben que se debe trabajar con restricciones financieras y organizacionales, por lo que buscan soluciones tomando en cuenta estas restricciones.
  • Todos los aspectos de producción de software: La ingeniería de software no solo comprende los procesos técnicos del desarrollo de software, sino también con actividades tales como la gestión de proyectos y el desarrollo de herramientas, métodos y teorías de apoyo a la producción de software.

En general los ingenieros de software adoptan un enfoque sistemático y organizado en su trabajo, ya que es la forma más efectiva de producir software de alta calidad. Sin embargo, aunque la ingeniería consiste en seleccionar el método más apropiado para un conjunto de circunstancias, un enfoque más informal y creativo de desarrollo podría ser efectivo en algunos casos. El desarrollo informal es apropiado para el desarrollo de sistemas basados en Web, los cuales requieren una mezcla de técnicas de software y de diseño gráfico.

Mitos de la Ingeniería de Software

La continua evolución en el desarrollo del software, junto con algunas características particulares, tales como una relativa inmaterialidad, dificultan el tener una clara visión de la ingeniería del software, provocando que por parte de los usuarios y de algunos profesionales se mantengan opiniones no fundadas sobre la importancia de determinados factores en el éxito o en la calidad de un producto software.

Algunas de estas opiniones, constituyen verdaderos mitos, los cuales se han vuelto difíciles de erradicar. Por ejemplo:

  • El hardware es mucho más importante que el software: Falso, debido a que al usar una computadora nuestra interacción es fundamentalmente con el software , y solo de una manera muy limitada el usuario accede directamente a elementos hardware del equipo. Este menosprecio por el software se evidencia en quienes consideran que la relación de copias piratas o ilegales de los programas no es una acción censurable.
  • El software es fácil de desarrollar: Falso, El desarrollo de sistemas complejos es muy costoso, aunque esos sistemas no sean algo material como el hardware. De hecho el desarrollo de software exige una mayor proporción de mano de obra, frente al empleo de maquinaria, y por ello el progresivo aumento del costo de la mano de obra en los países desarrollados ha llevado a un crecimiento importante en el costo de los productos software.

Paradigma de la Ingeniería de Software

La ingeniería de software está formada por una serie de pasos que abarcan los métodos, las herramientas y los procedimientos. Estos pasos se denominan frecuentemente paradigmas de la ingeniería de software. La elección de un paradigma se realiza de acuerdo a con la naturaleza del proyecto y de la aplicación, métodos y herramientas disponibles y de tener los controles adecuados. Entre los paradigmas más conocidos están:

  • El ciclo de vida clásico.
  • El ciclo de vida clásico con prototipo.
  • Las técnicas de cuarta generación.
  • El modelo de espiral.
  • Una combinación de estilos.
  • Prototipado puro.
  • Objetual.

Calidad: El control de validad implica vigilar los procesos de desarrollo del software para asegurarse de que se siguen los procedimientos y los estándares de garantía de calidad. Existen algunos enfoques complementarios que se utilizan para comprobar la calidad de las entregas de un proyecto:

  • Revisión de la calidad del software, su documentación y los procesos utilizados en su desarrollo son revisados por un grupo de personas que se encargan de comprobar que se han seguido los estándares del proyecto y el software y que los documentos concuerden con estos estándares.
  • Valoración automática del software y los documentos producidos se procesan por algún programa y se comparan con los estándares que se aplican a ese proyecto de desarrollo en particular. Esta valoración automática comprende una medida cuantitativa de algunos atributos del software.

Definición de Proceso: Un proceso de software es un conjunto de actividades y resultados asociados que producen un producto de software. Estas actividades se llevan a cabo por los ingenieros de software. Existen cuatro actividades de procesos las cuales son fundamentales y son comunes para todos los procesos de software. Estas actividades son:

  • Especificación del software: Es donde los clientes e ingenieros definen el software a producir y las condiciones sobre su operador.
  • Desarrollo del software: Donde el software es diseñado y programado.
  • Validación del software: El software es validado para confirmar que es lo que el cliente requiere.
  • Evolución del software: el software se modifica para adaptarlo a los cambios que se requieran por el cliente y el mercado.

Método: Los métodos de la ingeniería de software indican como construir técnicamente el software. Abarcan un amplio espectro de tareas en las que se incluyen la planificación y estimación de proyectos, análisis de los requisitos del sistema y del software, diseño de estructuras de datos, arquitectura de programas y procedimientos algorítmicos, codificación, prueba, mantenimiento, documentación. En estos métodos se pueden incluir técnicas orientadas a objetos, estructuradas, de descomposición funcional. Aquí, el profesional debe escoger entre las técnicas que más le convienen para desarrollar su trabajo adecuadamente.

Herramienta: Las herramientas de ingeniería de software proporcionan un soporte automático para los métodos. En la actualidad existen herramientas para soportar métodos como los que se han mencionado anteriormente. A estas herramientas se les llama herramientas asistidas por computadora para la ingeniería de software CASE (Computer Assisted Software Engineering).

Espectro de gestión: La gestión de proyectos de software es una parte importante de la ingeniería de software. El resultado de una revisión puede dar lugar a la cancelación del proyecto. El tiempo de desarrollo para un proyecto grande de software puede ser varios años. Durante ese tiempo los objetivos organizacionales tienden obviamente a cambiar. Estos cambios pueden significar que el software ya no se necesita o que los requerimientos originales del proyecto son inapropiados. La gestión puede decidir para el desarrollo del software o cambiar el proyecto para adecuarlo a los cambios de los objetivos de la organización.

Por lo general, los gestores de proyectos tienen que seleccionar a las personas que trabajaran en el proyecto. De forma ideal, habrá personal disponible que tiene habilidades apropiadas para trabajar en el proyecto. Pero en muchos casos, los gestores tienen que establecer un equipo ideal mínimo para el proyecto. Las razones que explican esto son:

  • El presupuesto del proyecto no cubre la contratación de personal con sueldos altos, se tiene que contratar personal con menos experiencia y menor sueldo.
  • El personal con experiencia apropiada no está disponible dentro o fuera de la organización, los mejores trabajadores ya se han asignado a otros proyectos.
  • La organización desea desarrollar las habilidades de sus empleados. El personal inexperto puede ser asignado al proyecto para aprender y adquirir experiencia.

Comentarios