Para poder comprender lo que es el
software (y consecuentemente la ingeniería del software), es importante
examinar las características del software que lo diferencian de otras cosas que
los hombres pueden construir. Cuando se construye hardware, el proceso creativo
humano (análisis, diseño, construcción, prueba) se traduce finalmente en una
forma física. Si construimos una nueva computadora, nuestro boceto inicial,
diagramas formales de diseño y prototipo de prueba, evolucionan hacia un
producto físico (pastillas de VLSI, tarjetas de circuitos impresos, fuentes de
potencia, etc.).
El
software es un elemento de sistema que es lógico, en lugar de físico. Por tanto
el software tiene unas características considerablemente distintas a las del
hardware:
- El
software se desarrolla, no se fabrica en un sentido clásico. Aunque
existen similitudes entre el desarrollo del software y la construcción del
hardware, ambas actividades son fundamentalmente diferentes. En ambas
actividades la buena calidad se adquiere mediante un buen diseño, pero la
fase de construcción del hardware puede introducir problemas de calidad
que no existen (o son fácilmente corregibles) en el software. Ambas
actividades dependen de las personas, pero la relación entre las personas
dedicadas y el trabajo realizado es completamente diferente para el
software. Ambas actividades requieren la construcción de un << producto >>, pero
los métodos son diferentes.
Los
costes del software se encuentran en la ingeniería. Esto significa que los
proyectos de software no se pueden gestionar como si fueran proyectos de
fabricación.
A
mediados de los años ochenta, se introdujo el concepto de << fábrica del
software >> en la literatura. Es importante tener en cuenta que este
término no implica que la fabricación del hardware y el desarrollo del software
sean equivalentes. En vez de ello, el concepto de fábrica de software
recomienda el uso de herramientas para el desarrollo automático del software.
- El
software no se << estropea >>.
- La
mayoría del software se construye a medida, en vez de ensamblar componentes existentes.
Consideremos la forma en que se diseña y se construye el hardware de
control para un producto basado en microprocesador. El ingeniero de diseño
construye un sencillo esquema de la circuitería digital, hace algún
análisis fundamental para asegurar que se realiza la función adecuada y va
al catálogo de ventas de componentes digitales existentes. Cada circuito
integrado (frecuentemente llamado un << CI >> o pastilla) tiene
un número de pieza, una función definida y válida, una interfaz bien
definida y un conjunto estándar de criterios de integración. Después de
seleccionar cada componente, puede solicitarse la compra.
Por
desgracia, los diseñadores del software no disponen de esa comodidad que
acabamos de describir. Con unas pocas excepciones, no existen catálogos de
componentes de software. Se puede comprar software ya desarrollado, pero sólo
como una unidad completa, no como componentes que pueden reensamblarse en
nuevos programas. Aunque se ha escrito mucho sobre << reutilización del
software >>, solo estamos comenzando a ver las primeras implementaciones
con éxito de este concepto.
No hay comentarios:
Publicar un comentario