« Deep Ocean. Video Musical | Main | Biografía de Vangelis... y en español!!! »
martes, diciembre 18, 2007
Plataformas Software
En estas últimas semanas he estado reflexionando e investigando un poco sobre las plataformas software.
Aquí va un apunte interesante: una definición y sus ventajas.
Definición de Plataforma:
Una plataforma software es un conjunto de artefactos (componentes o subsistemas) que forman una estructura común a partir de la cual podemos derivar (desarrollar, construir) sistemas de una forma eficiente.
Los sistemas derivados de una plataforma no sólo comparten código, sino requisitos y arquitectura. Se da por tanto un proceso de reutilización natural de los artefactos de la plataforma en los diferentes sistemas.
Ventajas de una plataforma software:
- Reducción del coste de operación. Uno de los parámetros fundamentales en la ingeniería y en la estrategia empresarial es la justificación económica. Una plataforma software nos permitirá reducir el coste de operar en el campo del desarrollo del software, ya que nos permitirá reducir costes tanto a nivel de desarrollo, como de mantenimiento. El elemento esencial aquí es el de reutilización de los artefactos que componen la plataforma.
- Mejora de la calidad. Al ser usados los artefactos de la plataforma en muchos sistemas, éstos son revisados y testeados de forma intensiva, por lo que es más fácil hacer que dichos artefactos tengan un número muy reducido de errores, buen rendimiento, etc.
- Reducción del tiempo de desarrollo. Tener la capacidad de poder desarrollar proyectos en menos tiempo no tiene sólo un impacto económico directo en el coste individual de los proyectos, sino que tiene varios indirectos: al hacernos más competitivos podemos optar a realizar más proyectos y a ser por tanto más productivos. Para esto es fundamental una plataforma estable y adaptada a la problemática a la que se quiere aplicar.
- Gestión centralizada de la evolución. La introducción de un nuevo artefacto en la plataforma da la posibilidad de que todos los sistemas derivados de la plataforma usen ese nuevo artefacto. Esta gestión centralizada permite a los sistemas evolucionar de forma ordenada.
- Reducción de la complejidad global. El hecho de usar una plataforma bien definida con una serie de artefactos reconocibles y conocidos reduce la complejidad significativamente tanto a nivel de desarrollo, como de gestión del desarrollo, mantenimiento, etc.
- Mejoras en las estimaciones de costes. Calcular costes para sistemas derivados de la plataforma es más sencillo y tiene menos riesgo porque se tienen ya resultados de otros sistemas derivados de la plataforma y que por tanto pueden ser comparables.
- Interfaz común. Todos los sistemas derivados de la plataforma tendrán en común bastantes elementos en cuanto a su funcionamiento e interfaz, lo que hace que los usuarios aprendan rápido y se sientan cómodos ante nuevos sistemas derivados de la misma plataforma.
- Estandarización del conocimiento técnico. El conocimiento de los técnicos de la organización se estandariza al estar todos los sistemas (o casi todos) basados en la plataforma y sus artefactos. Esto hace fácil que los técnicos puedan comprender y por lo tanto desarrollar y mantener el conjunto de sistemas generados por la organización, facilitando a su vez la movilidad del personal entre los diferentes proyectos atendiendo a las necesidades corporativas.
También tienen una clara desventaja (entre otras): Inversión en el desarrollo y mantenimiento de la plataforma. Se supone que una vez construida una plataforma la inversión realizada se recupera al utilizarla en 3-5 proyectos.