Tendencias actuales del desarrollo de software
Ing.
Victor Albinagorta Ordoñez. Ingeniería de Software
- 2. Situación
actual de Software La industria del desarrollo del software se encuentra
muy adelantada comparándola con su estado hace unos pocos años. Las
herramientas CASE son cada vez más poderosas y permiten analizar, diseñar,
generar, probar y mantener los productos de software de una manera
integrada y controlada.
- 3. El
World Wide Web se ha popularizado tanto en los últimos cinco años que se
ha convertido en la interfaz de usuario de facto para los productos de
software y ha obligado al uso de tecnologías nuevas. Las bases de datos
son cada vez más sofisticadas y soportan des- de un usuario en
computadoras de bolsillo a miles de usuarios en mainframes. Poco a poco,
el desarrollo hecho a medida se va abandonando y los negocios compran
productos de software muy probado, genérico y con una buena base instalada
de clientes. Situación actual de Software
- 4. ¿Cómo
hemos llegado hasta aquí? El estado actual del desarrollo del software ha
sido alcanzado después de cuatro décadas de trabajo en las siguientes
áreas: v
Lenguajes de programación v
Interfaz de usuario v Entornos de programación v
Software de base v Visión del desarrollo v
Ingeniería de software v
Métodos de análisis y diseño v
Equipos de desarrollo
- 5. Evolución
de los lenguajes de programación Los lenguajes han evolucionado mucho
desde los primeros lenguajes procedimentales como Basic, C, Fortran, RPG,
Cobol y Pascal, pasando por los lenguajes orientados a las bases de datos
(Xba-se, SQL, 4GL), los lenguajes orientados a objeto (Ada, Smalltalk,
C++, Modula) y terminando en un lenguaje estándar orientado a objeto como
Java.
- 6. Evolución
de la interfaz de usuario En un principio, la interfaz de usuario era muy
rudimentaria al ser impresa en papel. Recién en los años 80, empezaron a
utilizarse monitores, lo que permitió tener mayor facilidad en la
navegación por los datos de la pantalla. Desde principios de los años 90
aparecen los sistemas de ventanas con objetos gráficos que realizan
funciones disparadas por eventos del teclado y de otros dispositivos como
el ratón.
- 7. Evolución
de los entornos de programación En un principio los compi- ladores,
depuradores y editores no estaban integrados, haciendo la tarea de
programación muy morosa. Poco a poco, el editor, compilador y depurador
fueron integrados en el mismo entorno. Actualmente estos entornos
integrados cuentan con ayuda inte- ractiva y en línea, editores
inteligentes sensibles al contexto y control multiusuario de versiones.
- 8. Software
de base Los sistemas operativos actuales soportan desde computación en
casa hasta redes corporativas de computadoras con procesamiento paralelo.
Las bases de datos se pueden escalar desde un usuario hasta miles de
usuarios y manejar datos hasta el orden de los terabytes. Las aplicaciones
de oficina han evolucionado hasta quedar completamente integradas
- 9. Evolución
en la visión del desarrollo Se comenzó con centros de cómputo en cada
empresa que desarrollaba su software a medida; sin embargo, esto obligó a
tener un ejército de profesionales trabajando en el mantenimiento de estas
aplicaciones. Las empresas cambiaron su enfoque y comenzaron a buscar
software genérico bien probado y desarrollado por empresas especializadas.
Aquí la industria del software empezó a desarrollarse brindando sistemas
genéricos para su comercialización. Por otro lado, las empresas contratan
el desarrollo de sus sistemas a medida con empresas de software
(out-sourcing) para evitar los problemas del desarrollo en casa.
Actualmente las empresas de software comercializan el servicio completo de
sistemas (software, hardware y operación) a cambio de un precio por
transacción.
- 10. Evolución
en la ingeniería de software Los entornos de ingeniería de software
comenzaron con la generación de aplicaciones; luego, evolucionaron para
dar soporte al análisis y diseño y posteriormente integraron ambas. En los
entornos de ingeniería de software actuales se han integrado el manejo de
requerimientos, análisis, diseño, generación, pruebas y manejo de cambios
para dar soporte a todas las etapas del proceso de desarrollo de software.
- 11. Evolución
en los métodos de análisis y diseño Ha habido una evolución larga en los
métodos de desarrollo. Primero los métodos se centraron sólo en el
análisis y luego sólo en el diseño, pa- ra posteriormente integrarse.
Actualmente se contemplan también la construcción, pruebas e
implementación. Se han utilizado cuatro enfoques principales a través de
los años: las funciones, los datos, transformaciones matemáticas y los
objetos. Los métodos funcionales y de datos han sido muy populares
especialmente para sistemas de información
- 12. Evolución
en los equipos de desarrollo De los equipos de programadores dedicados al
diseño, codificación y pruebas se pasó a equipos con especializaciones:
analistas, diseñadores, programadores, probadores. Poco a poco se
evolucionó hasta los equipos que usan "marcos de trabajo de
mejoramiento continuo" bajo modelos de calidad para el proceso y el
producto de software. Los estándares más conocidos son CMM- SW (Software
Capability Maturity Model) e ISO 9000-3. Actualmente existen muchos
centros de desarrollo de software certificados con ISO 9000 y/o CMM que
han conseguido la optimización de sus procesos industriales de software.
- 13. La
industria del software debe ser competitiva en estos tiempos de
globalización y para ello debe alcanzar las siguientes metas:
- 14. Mayor
productividad Mediante herramientas de programación con soporte de asistentes
y componentes de software reusables, como MS Visual Studio y Oracle
Portal. Interoperabilidad Las aplicaciones de diversas empresas deben
operar entre sí. Para ello se han desarrollado estándares como CORBA y
DCOM+.
- 15. Interfaz
de usuario única El futuro tiene computadoras personales, agendas
electrónicas, teléfonos móviles y televisores conectados a Internet usando
páginas Web como interfaz de usuario. Lenguajes de programación estándar
Java como el lenguaje estándar de programación de todo propósito y XML
como el lenguaje estándar para interfaces de usuario.
- 16. Métodos
de desarrollo orientados a objeto afianzados Al ser Java un lenguaje
estándar orientado a objeto y UML el lenguaje estándar de los diagramas orientados
a objeto, se puede afirmar que los métodos de desarrollo orientados a
objeto como Rational Unified Process se han afianzado.
- 17. Software
eficiente, usable y mantenible Se imponen "marcos de trabajo de
mejoramiento continuo". CMM e ISO 9000 son los estándares que los
negocios exigen que la industria del software cumpla.
- 18. Herramientas
de ingeniería de software integradas Las herramientas integradas de
programación, control de versiones, manejo de la configuración,
modelamiento y manejo del proceso de software ya son una realidad,
teniendo como ejemplos al conjunto de herramientas integradas por Rational
Unified Process, Requisite Pro, Rational Rose, SoDA, Clear CASE, Test
Studio y Clear Quest.
- 19. El
futuro del desarrollo de software El desarrollo de software será
simplificado en el futuro por el uso de herramientas más poderosas de
programación integradas a otras herramientas de software que soporten las
demás actividades. Las actividades del proceso del software serán guiadas
por "marcos de trabajo", basados en el mejoramiento continuo que
engloban diferentes métodos especializados en cada actividad. El
desarrollo de software se centrará en organizaciones especializadas en
desarrollo de software con certificaciones ISO 9000, CMM o equivalentes.
Los sistemas heredados basados en viejas tecnologías deben ser integrados
a los nuevos sistemas y una especialización requerida será la del
integrador de sistemas. En cambio, cada vez menos desarrolladores de
software serán necesarios, dando lugar a más especialistas en
administración de sistemas. Esto se puede comprobar en la tabla 1 y la
tabla 2, donde el 34% de los empleos de computación están en la industria
del software y el 66% está empleado en otros tipos de industrias según
datos de la oficina federal de empleo de USA.
- 20. ¿Cómo nos afecta en el contexto nacional? Muchos productos de la tecnología de punta que se mencionan en este artículo han bajado sus precios en los últimos años, de manera que ya es accesible para el desarrollo de software para todo tipo de presupuestos. Es una necesidad mejorar la educación superior sobre "marcos de trabajo de mejoramiento continuo" ya que tienen un mayor espectro que los métodos de desarrollo tradicionales, debido a su enfoque en el proceso y el producto de software. Por otra parte, hay cada vez más espacio para profesionales especializados en la administración de sistemas y se reduce el espacio para profesionales de desarrollo de software. Es por eso que la educación debería bifurcarse en dos especialidades principales: el desarrollo de software y la administración de sistemas de software Finalmente, aunque los "centros de desarrollo de software certificados" están todavía lejanos a nuestra realidad, deberíamos empezar ahora con el proceso de certificación en organizaciones de desarrollo de software para tener un mercado asegurado en el futuro.
Actividad:
- Haga la lectura del siguiente texto y de su propio punto de vista sobre el tema.