jueves, 14 de febrero de 2013

conceptos basicos, importancio e historia de la ingenieria de software


Conceptos básicos de la ingeniería de software

Sin importar cualquiera que sea el tipo de software a ser desarrollado sea de sistemas (Son programas que sirven a otros programas en el trabajo de desarrollo como compiladores, editores, ..), tiempo real (Software encargado de analizar datos del mundo en forma real tales como análisis de datos, control automatizado, monitoreo de datos), gestión (a esta categoría se incluye el software comercial a nivel empresarial nominas, inventarios), ingeniería y científico (es software que posee un amplio manejo numérico usado en biología, astronomía, CAD, …), empotrado (software que se encuentra residente en memoria, tales como : controles automáticos en los vehículos, sistemas de background, partes del sistema operativo, …), computación personal (software comercial de uso local como procesadores de texto, hojas electrónicas, navegadores web, calendarios, agendas, recetarios, …), inteligencia artificial (software de procesamiento especial sistemas expertos, sistemas basados en el conocimiento, generalmente no usan algoritmos numéricos). Todos los tipos de software mencionados requieren que los analistas, diseñadores y desarrolladores apliquen características y elementos de calidad para que se logren productos a las necesidades del usuario, estas necesidades se comienzan a encontrar un camino de solución a través de la aplicación de elementos de calidad, así se presentan dos de los más valiosos como son la eficiencia y la eficacia.

El uso eficiente y eficaz de la tecnología de los computadores es un objetivo que aún está distante. Para representar lo anterior, sólo basta señalar los reportes de fracasos y dificultades de muchos proyectos en los que se pretende involucrar a la tecnología de los computadores.

La ingeniería del software pretende utilizar los recursos computacionales de tal manera que se produzcan soluciones eficientes y eficaces a los problemas informáticos, el éxito de un proyecto involucra elementos como la planeación, la administración y la utilización de metodologías de desarrollo de software.

A través de la planeación se determinan los recursos necesarios para el desarrollo del proyecto, la factibilidad del mismo y el tiempo estimado de desarrollo; unido a ello con la administración se controla, evalúa y corrige la dirección de acuerdo a las contingencias y demás elementos que se vayan presentando durante el desarrollo; finalmente, a través del uso de una metodología se busca lograr el acople de los participantes y la garantía de una determinada calidad. Debe notarse que las metodologías de desarrollote software sólo constituyen uno de los mecanismos que actualmente se utilizan para alcanzar software de calidad; no debemos dejar de lado aspectos de la dirección de proyectos que también buscan calidad en el proceso de desarrollo y en el producto final.

Considerando que la calidad es un término bastante impreciso se ha decidido establecer este tema como punto de partida. Como complemento se trata el tema del manejo de la complejidad puesto que es un tópico fundamental dentro de una metodología, que es la herramienta fundamental con la que se pretende guiar el proceso de elaboración de un producto software de alta calidad.

 
Importancia de la ingeniería de software

La ingeniería de software se centra en los métodos, herramientas y procedimientos para establecer un control en el desarrollo del software, lo que permite construir software de calidad de forma productiva y evitando posibles errores humanos. De hecho, la predecibilidad de los resultados es uno de los factores que garantizan la calidad de los sistemas. Un mercado emergente en nuestro país, que refleja cómo el personal directivo de las empresas cada vez se preocupa más de la repercusión de los procesos de ingeniería de software en sus objetivos de negocio.

El IEEE (Institute of Electrical and Electronics Engineers) define la ingeniería de software como la rama de la ingeniería que aplica los principios de la ciencia de computación y las matemáticas para lograr soluciones eficaces económicamente a los problemas de desarrollo de software. Desde el punto de vista que nos atañe, es decir, la calidad y pruebas de software, se puede decir que se trata de la industrialización del software, que supone convertir el proceso de desarrollo y, en particular, la fase de pruebas del software en un proceso automatizado “para conseguir minimizar el impacto de lo que llamaríamos el error humano y facilitar la mejora continua”, según especifica Ana Ascasso, responsable de soluciones de calidad de Compuware en España.
Automatizar procesos en el desarrollo del software supone mejorar las aplicaciones, disminuir las posibles incidencias en el mismo, lo que, para las empresas va a suponer, optimizar las funcionalidades y maximizar el rendimiento de sus productos software y de su cartera de servicios. Si bien durante muchos años, el outsourcing de pruebas se percibió como un nicho hiper-especializado ocupado por pocos actores, en la actualidad cada vez más compañías y asociaciones, como la Escuela Técnica Superior de Ingenieros Industriales, Gesein o ATI (Asociación de Técnicos de Informática), están muy involucrados en esta tecnología. Muestra de ello es el éxito
Actualmente casi todos los paises dependen de sistemas complejos basados en computadora.
Más y más productos incorporan computadoras y Software en estos sistemas representan una proposición grande y creciente del costo total del sistema. Por lo tanto, producir software costeable es esencial para el funcionamiento de la economía nacional e internacional.
La ingeniería de software es una disciplina de la ingeniería cuya meta es el desarrollo costeable de sistemas de software. Este es abstracto e intangible. No esta restringido por materiales, o gobernado por leyes físicas o por procesos de manufactura. De alguna forma, esto simplifica la ingeniería de software ya que no existen limitaciones físicas del potencial del software. Sin embargo, esta falta de restricciones naturales significa que el software puede llegar a ser extremadamente complejo y, por lo tanto, muy difícil de entender.

Historia de la ingeniería de software

Desde sus inicios en la década de 1940, escribir software ha evolucionado hasta convertirse en una profesión que se ocupa de cómo crear software y maximizar su calidad. La calidad puede referirse a cuán mantenible es el software, su estabilidad, velocidad, usabilidad, comprobabilidad, legibilidad, tamaño, costo, seguridad y número de fallas o "bugs", así como, entre muchos otros atributos, a cualidades menos medibles como elegancia, concisión y satisfacción del cliente. La mejor manera de crear software de alta calidad es un problema separado y controvertido cubriendo el diseño de software, principios para escribir código, llamados "mejores prácticas", así como cuestiones más amplias de gestión como tamaño óptimo del equipo de trabajo, el proceso, la mejor manera de entregar el software a tiempo y tan rápidamente como sea posible, la "cultura" del lugar de trabajo, prácticas de contratación y así sucesivamente. Todo esto cae bajo la rúbrica general de ingeniería de software.
Hay un número de áreas donde es notable la evolución de la ingeniería de software:
  • Surgimiento como una profesión: A principios de los 1980, la ingeniería del software ya habían surgido como una genuina profesión, para estar al lado de las ciencias de la computación y la ingeniería tradicional.
  • El papel de la mujer: en las década de los años 1940, 1950 y 1960, a menudo los hombres llenaron los roles más prestigiosos y mejor pagados en la ingeniería de hardware, pero a menudo delegaron la escritura de software a las mujeres. Grace Murray Hopper, Jamie Fenton y muchas otras mujeres anónimas llenaban muchos trabajos de programación durante las primeras décadas de la ingeniería de software. Hoy en día, menos mujeres trabajan en ingeniería de software que en otras profesiones, una situación cuya causa no se identifica claramente. A menudo es atribuido a la discriminación sexual, ciber cultura o sesgo en la educación. Muchas organizaciones académicas y profesionales consideran esta situación desequilibrada y están tratando de resolverlo.
  • Procesos: Los procesos se han convertido en una gran parte de la ingeniería de software y son aclamados por su potencial para mejorar el software y duramente criticados por su potencial para constreñir a los programadores.
  • Costo de hardware: el costo relativo del software versus el hardware ha cambiado sustancialmente en los últimos 50 años. Cuando los mainframes eran costosos y requerían una gran cantidad de personal se soporte, las pocas organizaciones que los compraban también tuvieron los recursos para financiar proyectos de ingeniería de software a la medida, grandes y costosos. Los computadores son ahora mucho más numerosos y mucho más potentes, lo cual tiene varios efectos en el software. El mercado más grande puede soportar grandes proyectos para crear software comercialmente, como los hechos por empresas como Microsoft. Las máquinas baratas permiten a cada programador tener un terminal capaz de una compilación bastante rápida. Los programas en cuestión pueden usar técnicas como la recolección de basura, que los hacen más fáciles y rápidos de escribir. Por otro lado, menos organizaciones están interesadas en emplear programadores para grandes proyectos de software a la medida, y en su lugar utilizan software comercial tanto como sea posible.


Bibliografia

Ing. Sistemas. Juan Pablo Giraldo Rendón 2008, http://www.monografias.com/trabajos15/ingenieria-software/ingenieria-software2.shtml

http://es.wikipedia.org/wiki/Historia_de_la_ingenier%C3%ADa_del_software

http://isoftwareunesum.wordpress.com/2011/04/28/importancia-del-software/

1 comentario:

  1. Hola. LA verdad es que me parece muy interesante saber todo lo que hablan. Me gustaría conseguir más información acerca de los Programas ERP. Les mando saludos.

    ResponderEliminar