Orgenes. La Ingeniera del Software, trmino utilizado por primera vez por Fritz Bauer
en la primera conferencia sobre desarrollo de software patrocinada por el Comit de
Ciencia de la OTAN celebrada en Garmisch, Alemania, en octubre de 1968.
En sus inicios, la industria del software adopt un enfoque organizativo tayloriano, al
igual que la mayora de las industrias del momento. Este enfoque propugna la
especializacin de funciones como mtodo organizativo. Bajo tal enfoque, el proceso de
construccin de software se concibe como un conjunto de tareas altamente especializadas
donde est claramente definido el papel de cada categora profesional:
El analista tiene que delimitar el anlisis para ver lo que se quiere hacer
inicialmente y despus darle al usuario nuevas opciones de uso
El analista tiene como cometido analizar un problema y describirlo con el
propsito de ser solucionado mediante un sistema informtico.
El diseador realiza, en base al anlisis, el diseo de la solucin
El programador cuya funcin consiste en trasladar las especificaciones del
diseador en cdigo ejecutable por la computadora.
Significados. Puede definirse segn Alan Davis como "la aplicacin inteligente de
principios probados, tcnicas, lenguajes y herramientas para la creacin y mantenimiento,
dentro de un coste razonable, de software que satisfaga las necesidades de los usuarios".
Pero el trmino ingeniera de software tuvo una variedad de significados diferentes en
diferentes tiempos de su evolucin, como las siguientes:
Direccin. (de proyectos) Para dirigir los recursos hacia el resultado deseado.
Anlisis de Requisitos. Para determinar el comportamiento que se espera del
software.
Garanta de calidad. Para garantizar las expectativas del cliente.
Diseo. Para que exista una mnima certeza de que el software es viable y eficaz
con la tecnologa existente.
Gestin de configuracin. Para controlar el caos a medida que el software crece.
Estas funciones han sido adoptadas en muchos casos por analistas, pero no son materia
especfica de esta profesin. En algunas organizaciones (y en algunos pases) la profesin
ya no existe, es sustituida por otras figuras tales como el ingeniero de software, el jefe de
proyecto, el modelador de software, o el analista-programador. Esta ltima figura es muy
popular ya que resuelve los tpicos problemas de comunicacin que existan entre
analistas y programadores. Estos problemas se deben a la extrema idealizacin de la
especializacin de funciones.
Es deseable tambin que el analista de sistemas tenga conocimientos (al menos bsicos)
de usabilidad. Ya que cualquier sistema que no est al servicio de los usuarios o diseado
pensado en el usuario, no tiene mucho sentido.
Debate sobre quin es ingeniero de software. Algunas personas piensan que Desarrollo
de Software es un trmino ms apropiado que Ingeniera de Software para el proceso de
crear software. Personas como Pete McBreen (autor de "Software Craftmanship") cree
que el trmino IS implica niveles de rigor y prueba de procesos que no son apropiados
para todo tipo de desarrollo de software.
Otras personas creen que el campo de la IS es suficientemente maduro para garantizar el
ttulo de "ingeniera". El criterio ms comn para distinguir al ingeniero de software es el
conocimiento y aplicacin de las tcnicas y herramientas de las metodologas de la
Ingeniera del Software (tpicamente estudiadas en las ingenieras informticas y, en
algunos casos, en otras carreras tcnicas).
La ingeniera de software en nuestros das. La ingeniera de software afecta a la
economa y las sociedades de muchas maneras.
1.
Principales caractersticas.
El software se desarrolla. No se fabrica en un sentido clsico.
Aunque el desarrollo de software en la actualidad con las herramientas cases ayudan a la
productividad del software, hay una diferencia entre desarrollo y manufactura del
software, bsicamente en la relacin entre la gente utilizada y el trabajo realizado. Ambas
actividades construyen un producto, pero con enfoques diferentes, los costos de software
se concentran en la ingeniera, lo que significa que los proyectos de software no se pueden
manejar como si fueran proyectos de manufactura.
El software no se estropea. Se deteriora. (Se hace obsoleto)
Una diferencia vital radica en que quien define los requerimientos del software, en los
genricos; es la organizacin que desarrolla el software y en los personalizado; por la
organizacin que compra el software.
No obstante, la lnea de separacin entre estos dos tipos es ms tenue, cada vez ms
compaas de software empiezan un sistema genrico y lo adaptan a las necesidades de
un cliente en particular. Como los sistemas de planificacin de recursos empresariales.
(ERP)
Categoras del software. Independiente de los tipos de software, estos clasifican en:
Software de sistemas. Es una coleccin de programas para servir a otros
programas., se caracterizan por una interaccin muy alta con el hardware de la
computadora. (Desde los sistemas operativos, compiladores, manejadores de base
de datos, hasta los controladores de red y telecomunicacin)
Software de aplicacin. Programas independientes que resuelven una necesidad
especifica de negocios. (Sistemas de informacin)
Software cientfico y de ingeniera. Programas que consumen mucho tiempo de
procesamiento por los clculos excesivos en muchos casos en tiempo real.
(Diseo asistido por computadora y la simulacin de sistemas)
Software empotrado. El que reside en la memoria de solo lectura del sistema.
(Control del teclado del horno de microondas o de un automvil)
Software de lnea de productos. Diseado para proporcionar una capacidad
especifica para muchos clientes. (Control de inventarios o registros contables)
Aplicaciones basadas en Web. Aplicaciones estticas y dinmicas. (Para
distribucin de informacin o comercio electrnico)
Software de inteligencia artificial. Para resolver problemas complejos con
algoritmos no numricos. (Robtica o los sistemas expertos)
Computacin ubicua. Aplicaciones distribuidas de cualquier tipo de software en
ambientes inalmbricos y con diferentes dispositivos de entrada-salida.
Mitos del Administrador. Son los encargados que el tiempo, costo y niveles de calidad se
cumplan. Con frecuencia los administradores se aferran a falsas creencias para aminorar
la presin.
Mito. Ya se tienen documentado los estndares y procedimientos para la
construccin del software. Es lo nico que necesito para la administracin del
proyecto.
10
11
12
Sin olvidar que todo software debe desarrollarse econmico, eficiente y con
estndares predefinidos de calidad.
2.7. Software de alta calidad. Un software de alta calidad es un producto bien hecho y
por supuesto debe crear un cliente completamente satisfecho.
14
Ahora un producto bien echo es el cumple con las especificaciones de fabricacin y que
adems cubre o supera las necesidades y expectativas del cliente. Para entender mejor
estos trminos es necesario ver varios conceptos generales de calidad y especficamente de
calidad de software.
Calidad. Es dar prioridad a los intereses del consumidor, estudiar y mejorar
constantemente todo proceso de trabajo, de manera que el producto o servicio final
sobrepase las expectativas del consumidor. (Dr. W. Edwards Deming)
Puntos de Vista de la calidad. La calidad involucra a dos actores, con puntos de vista
diferentes y a veces contrarios que se conjugan en la calidad de productos o servicios.
El cliente. (Calidad de percepcin)
El fabricante. (Calidad de hecho)
Calidad de percepcin. Cuando se satisface o se superan las expectativas del cliente.
Calidad de hecho. Si se logran cubrir las especificaciones o requerimientos propios del
producto.
La calidad es cumplir con lo que quiera el
cliente.
Obviamente el fabricante debe tener un cliente contento y adems con sus especificaciones
de desarrollo, debe superar las expectativas del cliente. Ahora si el producto es un sistema
de informacin. (Software)
Calidad de software. Es la concordancia con los requisitos funcionales y de rendimiento
explcitamente establecidos con los estndares de desarrollo explcitamente documentados
y con las caractersticas implcitas que se espera de todo software desarrollado
profesionalmente. (Fcil de usar, probar y mantener)
En resumen un software con calidad, es aquel que deje a un cliente 100% satisfecho con su
nuevo sistema de informacin.
15
17
18
Concluimos que un software de calidad es que sea 100% til al usuario, sin
defectos, fiable y que de acuerdo al cliente se deben cubrir factores de operacin,
revisin y transicin, para cubrir el objetivo final de la calidad de software tener
clientes satisfechos. Sin olvidar que el desarrollo de software se debe llevar a cabo
bajo la dimensin de calidad, es decir producir un software libere de errores.
19