jueves, 20 de septiembre de 2012

¿Que es la Ingenieria de Software?

INGENIERIA DE SOFTWARE
 
La Ingeniería del Software es la disciplina de la Informática que ofrece técnicas y métodos para el desarrollo, la operación y mantenimiento de sistemas software de calidad, y que permite, mediante la aplicación de un enfoque sistemático, disciplinado y cuantificable, la obtención de software fiable y eficiente de una forma rentable.

¿Como se origino?
Desde los años 40's la aplicaciones y usos de las computadoras han crecido de forma constante. Hoy en día el software juega un papel central en casi todos los aspectos de la vida cotidiana: gobierno, finanzas, educación, transporte, medicina, etc... De forma paralela, la complejidad de los sistemas ha crecido de forma dramática, y anualmente se gastan miles de millones de dolares en cuestiones de desarrollo de software. 

La primera discusión formal relativa a la ingeniería de software se llevó a cabo en 1968. Hoy en día, el término se utiliza ampliamente sin embargo es necesario definir más claramente su significado.

Ingeniería: Disciplina y profesión enfocada a la aplicación de conocimiento científico y técnico y que utiliza recursos físicos para diseñar e implementar diversos artefactos (estructuras, máquinas, dispositivos, sistemas y procesos) para realizar un objetivo deseado y alcanzar criterios especificados.

Ingeniero: Un ingeniero es un profesional cuya educación lo prepara para usar matemáticas, ciencias y tecnología del momento para crear productos que son importantes para el bienestar del público.

Profesionalización de la Ingeniería de Software: Muchos de los estados en EUA tienen regulaciones con respecto a la práctica de la ingeniería y no permiten que la gente se llame “ingeniero” a menos que hayan
demostrado ser competentes en su especialidad profesional.
Hoy en día todavía no existe una profesión de “ingeniero de software” como tal aunque cada vez hay más
esfuerzos encaminados hacia allá.

Un programador no es equivalente a un ingeniero de software. “Todo mundo” puede sentarse a programar.
Esto no garantiza que se pueda crear una solución compleja en tiempo, costo y calidad. 

El desarrollar software sin conocer técnicas de ingeniería representa un enfoque “artesanal” de desarrollo que hoy en día sigue siendo común. Los esfuerzos de profesionalización mencionados atrás (certificaciones de individuos y de empresas) buscan reducir este enfoque “artesanal” en el desarrollo.