Varias Guías
Varias Guías
A continuación se describen las principales características de un proyecto que influyen en la determinación del MCV más
adecuado y se describen los MCV habituales proporcionándose un análisis de ventajas e inconvenientes.
ELEMENTOS DE SELECCIÓN
Como principales criterios de selección tendremos que evaluar las siguientes características de nuestro proyecto:
Estabilidad de los requisitos.
Comprensión de requisitos.
Tamaño del proyecto.
Novedad y experiencia en el área de aplicación.
Plazo para el desarrollo del proyecto.
CASCADA O CLÁSICO
Se avanza de una fase a la siguiente de una forma secuencial estableciéndose revisiones al final de cada etapa, siendo
necesario completar cada una de ellas para pasar a la siguiente.
Típicamente se definen las siguientes fases: Análisis, Diseño, Codificación, Pruebas e Integración, Implantación y
aceptación, y Mantenimiento.
Ventajas:
Organización de las etapas de un modo lógico.
Facilita la organización y gestión del proyecto.
Aplicación sencilla.
Inconvenientes:
Dificultad para establecer al principio todos los requisitos.
Inseguridad por parte del cliente que quiere ir viendo los avances en el producto.
EVOLUTIVO
Se lleva a cabo una implementación parcial del producto con los requisitos conocidos, que se utiliza para comprender la
totalidad de los requisitos. La solución evoluciona en iteraciones hasta cumplir con las necesidades.
Ventajas:
Buen punto de partida para identificar mejoras.
Se pueden ir refinando los requisitos en las iteraciones, por lo que no es necesario que los requisitos estén
completamente definidos al inicio del desarrollo.
Mitiga los riesgos por malentendidos durante la etapa de especificación de requisitos.
Inconvenientes:
Necesidad de flexibilidad en los desarrollos para poder incorporar las evoluciones.
Problemas de arquitectura o mantenibilidad por la introducción de modificaciones en los ciclos.
Puede crear falsas expectativas en los clientes en cuanto a la disponibilidad del producto final
Se basa en la realización de ciclos secuenciales que van incrementando las funcionalidades del producto. En este modelo
se entrega un producto operativo con cada incremento. Se asume que los requisitos están claros.
Ventajas:
Se genera un producto operativo de forma rápida y de forma temprana.
Flexibilidad en alcance y requisitos.
Facilita las pruebas y gestión de riesgos.
Fácil gestión.
Inconvenientes:
Es necesaria una definición de los incrementos.
Puede crear falsas expectativas en los clientes en cuanto a la disponibilidad del producto final.
EN ESPIRAL
Puede verse como un modelo evolutivo que conjuga la naturaleza del modelo de incremental con los aspectos controlados
y sistemáticos del Modelo Cascada y el agregado de la gestión de riesgo, el énfasis en la calidad y mejora del sistema.
Se basa en aplicar un proceso de iteraciones de cuatro cuadrantes con las siguientes actividades:
1. Crear planes para identificar los objetivos del Software (requisitos) y determinar sus restricciones.
2. Análisis de riesgos de las alternativas para conseguir los objetivos.
3. Desarrollar y probar.
4. Planificar el siguiente ciclo. En este cuadrante además se lleva el control del proyecto que se define en 2
dimensiones, el coste (dimensión radial) y el grado de avance del proyecto (dimensión angular).
Algunas variaciones del modelo son el de 6 regiones y el modelo WIN WIN en el que se enfatiza la participación del
cliente.
Nota de aplicación práctica: El IEEE clasifica al desarrollo en espiral como modelo no operativo en sus clasificaciones
de MCV.
Ventajas:
Adaptabilidad del sistema a cambios.
Reduce los riesgos del proyecto e incluye objetivos de calidad (descarta soluciones no adecuadas en fases
tempranas).
Integra desarrollo y mantenimiento.
No es un ciclo de vida rígido.
Inconvenientes
Dispara los tiempos de desarrollo y es un modelo costoso.
Requiere amplia experiencia.
No se puede determinar a priori el número de iteraciones con lo que la planificación es imposible.
Tendremos que analizar las ventajas e inconvenientes de las metodologías tradicionales y las metodologías ágiles, y en
función de las características de nuestro proyecto decidir qué tipo aplicamos.
Los elementos de un proyecto a tener en cuenta para decidir el tipo de metodología son:
Criticidad del proyecto.
Experiencia del equipo de desarrollo.
Tamaño y distribución del equipo.
Estabilidad de los requisitos.
Cultura organizativa.
La estabilidad y claridad de los requisitos podría ser un buen punto para elegir la metodología. Con requisitos muy
definidos al principio podemos acudir a metodologías tradicionales. En los otros extremos, cuando no existe tanta claridad
debería utilizarse una aproximación adaptativa o ágil y cuando hay mucha incertidumbre se recurre a la programación
extrema. No obstante, lo anterior es discutible, dado que hay nichos en los que las metodologías agiles funcionan muy
bien con requisitos estables, y hay otros ambientes donde pierden su efectividad o deben ser modificadas con requisitos
menos claros.
METODOLOGÍAS TRADICIONALES.
Características:
Adecuados si:
Alta criticidad.
Equipos de desarrollo grandes o con poca experiencia.
Requisitos estables.
Cultura organizativa orientada a una fuerte planificación.
Si empleamos una metodología tradicional, típicamente aplicaremos MetricaV3 que cubre tanto desarrollo estructurado
como orientado a objetos.
En desarrollo estructurado tendremos que proporcionar modelos de flujos de datos, procesos y estructuras de los datos a
través de los diagramas de flujos de datos, diccionario de datos, especificaciones de proceso, diagramas entidad-relación
y diagramas de transición de estados (ver guías de los principales diagramas).
En desarrollo orientado a objetos, típicamente, tendremos que proporcionar diagramas de casos de uso, clases,
interacción y estados (ver guías de los principales diagramas).
Características:
Adecuados si:
Baja criticidad.
Equipos de desarrollo pequeños y con experiencia.
Los requisitos cambian con mucha frecuencia.
Cultura organizativa no orientada a una fuerte planificación.
Plazos de desarrollo muy ajustados.
CARACTERÍSTICAS
Los valores de la programación extrema son: simplicidad, comunicación, retroalimentación ( feedback) y coraje y
respeto.
Desarrollo iterativo e incremental.
Pruebas unitarias continuas, frecuentemente repetidas y automatizadas. Uso de herramientas de prueba como
JUnit, NUnit o PHPUnit.
Programación en parejas.
Integración del equipo de programación con el cliente.
Corrección de todos los errores antes de añadir nueva funcionalidad.
Refactorización y simplicidad del código.
Propiedad del código compartida. Todo el personal puede corregir y extender cualquier parte del proyecto.
Versiones pequeñas.
Trabajar a ritmo sostenible sin días muertos y sin horas extra.
El sistema se define mediante metáforas o historias compartidas que actúan como vocabulario para hablar sobre
el dominio del problema.
ROLES
Programador.
Cliente: Escribe las historias de usuario.
Tester.
Tracker: se encarga del seguimiento del proyecto, estimación real vs planificada, comunicación de resultados,
etc.
Coach: Responsable del proceso global. Guía al equipo en el proceso.
Consultor: ayuda al equipo a resolver un problema específico.
Gestor (Big Boss): Es el dueño o el promotor con poder decisión sobre el proyecto. Su labor es la
coordinación.
Historias de usuarios: tarjetas en las cuales el cliente describe brevemente las características que el sistema
debe poseer, sean requisitos funcionales o no funcionales. (Cada una debe llevar entre 1 a 3 semanas máximo
de desarrollo).
Tareas de ingeniería (Task cards): son tarjetas con las tareas concretas que implementan la historia de
usuario, asignación, descripción de la tarea y fecha de inicio y fin.
Tarjetas CRC (Clase – Responsabilidad - Colaborador): se usan para el diseño del sistema y contienen la
información del nombre de la clase, sus responsabilidades y sus colaboradores.
Soluciones temporales (Spike Solutions): se usan para requerimientos de cliente que presentan problemas
desde el punto de vista de diseño e implementación. Se trata de pequeñas aplicaciones desconectadas del
proyecto que proponen una solución potencial. Pueden ser muy simples.
Consultar el documento Scrum y Kanban para obtener más información sobre otras metodologías.
PLANIFICACIÓN
Tareas previas
A la hora de planificar nuestro proyecto se deberá haber decidido previamente una
metodología y un ciclo de vida a aplicar (más información en el apartado
“Metodologías y Ciclos de Vida”) y habrá que ser coherentes con la elección que se
realice. Es decir, si escogemos Métrica como metodología y un ciclo de vida en
cascada, la planificación debe reflejar precisamente eso.
El diagrama de Gantt.
Mucho cuidado con los plazos que se nos establezca en el enunciado pues
deben guiar nuestra planificación. Si nos dicen que debe estar en 6 meses no
puedes plantear un Gantt de un año.
1
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
o También hay tareas de carácter legal que hay que llevar a cabo en un
proyecto, sin ir más lejos, todas las destinadas a contratar los bienes y
servicios necesarios. Es importante incluir estas tareas en el momento.
o O tareas relacionadas con la formación, elaborar manuales de usuario,
impartir cursos … etc.
o Si se elige alguna forma de implantación especial como los pilotos es
recomendable plasmarlo igualmente en la planificación.
2
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
(*) Si optáis por aplicar una metodología ágil, una forma de indicarlo en el gantt puede ser como la que se observa en la figura. Por
ejemplo, podéis aplicar Scrum en una fase o en todo el proyecto, indicando los Sprints en los que se dividirán las distintas fases.
3
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
Si preguntan por factores críticos de éxito, lo ideal es realizar una lista adaptada al
examen, que refleje las particularidades del enunciado. No obstante, a modo de
ejemplo, citamos aquí algunos factores críticos de éxito posibles en numerosos
proyectos.
1
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
o Portabilidad, para permitir la reutilización de los desarrollos ya
realizados en la AAPP.
Seguridad para conseguir la confianza de los usuarios.
Disponibilidad, especialmente importante en:
o Arquitecturas centralizadas.
o Aplicaciones que funcionan en zonas con diferentes horarios.
o Aplicaciones que deban ser 24x7 (registro electrónico).
Formación a los actores principales del sistema.
Calidad.
Mantenibilidad de todos los desarrollos.
En el caso de una agencia: asegurar la obtención del informe anual para el
Congreso de los Diputados.
Formación a los usuarios.
Formación al equipo de desarrollo.
Comunicación y promoción del nuevo servicio.
Reuniones de seguimiento del proyecto.
Comunicación fluida entre todos los actores.
Participación satisfactoria de los usuarios expertos en la fase de análisis.
Adecuación a los estándares.
2
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
Decisiones iniciales.
Consiste en una “carcasa” desarrollada mediante aplicación pero que obtiene datos
de la web. Su complejidad es mayor ya que tiene la desventaja de la dependencia
de la plataforma y las restricciones de la web. Sin embargo es util para vistas
complejas y actualizaciones constantes.
Si nos inclinamos por el uso de Apps nativas, habrá que pagar una licencia anual
para el desarrollo y despliegue con las plataformas más populares:
3.- Despliegue.
1
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
Las aplicaciones híbridas aúnan lo mejor de los otros dos modelos, nativo y web.
Este tipo de aplicaciones permite el uso de tecnologías multiplataforma como HTML,
Javascript y CSS pero permiten acceder a buena parte de los dispositivos y
sensores del teléfono. Buena parte de la infraestructura es tipo web y la
comunicación con los elementos del teléfono se hace mediante comunicadores tales
como phonegap (http://phonegap.com). Un buen ejemplo de aplicaciones híbridas es
Facebook. Se descarga de la app store y cuenta con todas las características de una
aplicación nativa pero requiere ser actualizada ocasionalmente.
2
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
Nos queda por contaros los que es y representa el phonegap, es decir, el vínculo
que une la tecnología web con los elementos propios del teléfono. El phonegap
tiene dos objetivos:
TECNOLOGÍAS.
Algunas de las herramientas más utilizadas hoy en día para crear aplicaciones
híbridas son:
3
DESARROLLO DE APLICACIONES NATIVAS PARA MÓVILES
DECISIONES INICIALES
- Necesitemos acceso a las utilidades del sistema operativo del dispositivo: cámara, geolocalización, acelerómetro etc.
Inconvenientes:
- Desarrollo más complejo.
- Mayores costes: suele aumentar el presupuesto en un 20-40%.
- Para abarcar al 95% de los usuarios, tendremos que desarrollar en las 3 plataformas más importantes (iOS, Android y
Windows).
Gestiones previas.
Habrá que pagar una licencia anual para el desarrollo y despliegue con las plataformas más populares:
En función de su dimensión, el tiempo que habrá que planificar para la fase de construcción (desarrollo) sería:
- Simple: Datos offline, sin conexión con servidores. Entre 2 y 4 semanas.
- Medio: Datos estáticos con conexión a un servidor externo. Entre 4 y 8 semanas.
- Complejo: Si tiene bases de datos, integración web, sistemas de pago o redes sociales. Entre 8 y 12 semanas.
- Experto: Procesos de negocio con integraciones complejas. Unas 15 semanas.
Despliegue.
La subida a producción, sobre todo a Apple Store, requiere una revisión basada en aspectos técnicos, de usabilidad y
contenido. En el caso de Apple, puede tardar alrededor de unos 7 días en enviar el informe. Si no pasase la revisión, habrá
que corregir los "errores" y volver a enviarlo. En el caso de los informes sobre otras plataformas, los tiempos y requisitos
suelen ser menores.
TECNOLOGÍAS DE DESARROLLO
iOS.
- Todavía existen aplicaciones que han sido desarrolladas con Objective-C, sin embargo la tendencia actual es utilizar
Swift.
- Entorno de desarrollo: Xcode.
- Pruebas y despliegue con Instruments.
- Herramientas adicionales: Interface Builder.
Android.
- Programación Java Native Android.
- Posibles entornos de desarrollo: Android Studio, Eclipse, AVD Manager.
- Pruebas con JMETER y TestUnit.
Windows.
- Desarrollo con Microsoft Visual Studio o Windows App Studio.
Xamarin es una plataforma de Microsoft para el desarrollo de aplicaciones móviles, que permite construir aplicaciones nativas
iOS, Android y Windows utilizando .NET (normalmente con lenguaje C#).
Su principal ventaja es que permite la reutilización de gran parte del código entre las plataformas (según la
documentación de Microsoft es habitual conseguir más de un 75% de reutilización). Para ello se utilizan PCLs (Portable
Class Libraries), en las cuales se ubica el código común, como puede ser el acceso a bases de datos (normalmente SQLite),
llamadas a servicios web, gestión de logs, interfaces de usuario comunes (mediante Xamarin.Forms) etc. Este código no
varía entre plataformas.
Xamarin.Forms proporciona un conjunto de APIs que permiten construir componentes de interfaz de usuario comunes para
todas las plataformas. Estos componentes serán renderizados adecuadamente en cada plataforma de forma automática, es
decir, internamente se realiza la transformación del código común a controles nativos específicos de cada plataforma.
Además del código común, será necesario disponer de código específico para cada plataforma para aquellos aspectos de la
aplicación que no puedan ser gestionados de manera global. A continuación se muestran un par de ejemplos de elementos
que requieren implementaciones específicas, puesto que la forma de manejarlos varía entre plataformas:
Notificaciones push Mediante Apple Push Notification Service Mediante Google Cloud Messaging
Geolocalización Mediante CoreLocation framework Mediante Android Location Service API
Ventajas:
- Reutilización de código.
- Entorno de desarrollo conocido si tenemos personal con conocimientos de .NET.
Desventajas:
- Curva de aprendizaje sobre el desarrollo de aplicaciones nativas en iOS, Android y Windows, ya que serán necesarios
conocimientos específicos de las plataformas para desarrollar ciertas funcionalidades y/o para mejorar la experiencia de
usuario.
- Integración compleja de SDKs.
Para todas las plataformas existen simuladores en los que poder realizar las pruebas. Como ejemplos tenemos el iOS
Simulator, o los emuladores Android. Esto permite realizar pruebas de forma más rápida y fácil durante el desarrollo.
Sin embargo, una vez realizadas estas pruebas, es necesario probar también en dispositivos físicos, puesto que algunos
errores no se producen al ejecutar la aplicación en los simuladores. Por otra parte, en el caso de Android la posibilidad de
que aparezcan errores es mayor, ya que el número de modelos de dispositivos que existen es enorme. Para evitar este
problema, es necesario realizar pruebas en el mayor número de modelos posible (Motorola, Samsung, Nexus etc.).
Por último, es necesario tener en cuenta las diferentes versiones de los Sistemas Operativos que vayamos a soportar (por
ejemplo, iOS 9 e iOS 10, Android Lollipop, Android Marshmallow, Android Nougat etc.), ya que algunos errores son
específicos de una versión de SO concreta.
FUNCIONALIDADES EXTRA
Notificaciones:
Esta funcionalidad sólo tendría sentido para las aplicaciones nativas.
Consiste en poder enviar a los usuarios actualizaciones o notificaciones referentes a la aplicación.
Existen dos formas: o programarlo o contratar el servicio con plataformas específicas. La primera opción es más costosa de
desarrollar y de mantener. La segunda opción está más extendida, con las plataformas Push como por ejemplo Apple Push
Notification Server, C2DM de Android o Google Cloud Messagging entre otras.
Firma móvil:
Consiste en proporcionar al móvil la capacidad de firmar digitalmente.
Básicamente habría que instalar un cliente o applet de firma electrónica para el sistema operativo móvil que se pretende.
Para lograr esta funcionalidad, existen soluciones de mercado como Viafirma platform, pero además, desde la Administración
se ha lanzado la aplicación “Cliente @firma móvil” disponible para plataformas con sistema operativo Android, iOS y
Windows, (más información en el documento “Cliente @firma móvil” de la carpeta Material Adicional).
Para más información sobre firma móvil, se puede consultar en el apartado de “Identificación y Autenticación” del apartado
Transversal.
Decisiones iniciales.
Al ser web móvil sólo habría que asegurar que funciona correctamente en los
navegadores web móviles (Firefox, Opera, Mirem etc).
2.- Despliegue.
Tecnologías de desarrollo.
1
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
dispositivo móvil. Además se desacopla de los elementos diseñados con
futuribles dispositivos móviles que puedan aparecer. Hay que tener en
cuenta que es una tecnología muy nueva y por tanto aún no está lo
suficientemente expandida, lo que podría provocar aumentos en los
tiempos de desarrollo y pruebas.
2
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
Al contrario que las aplicaciones nativas, las aplicaciones web se pueden ejecutar en
múltiples dispositivos evitando así las complejidades de tener que crear varias
aplicaciones. El proceso de desarrollo es más sencillo ya que emplean tecnologías
ya conocidas como HTML, CSS y Javascript. Estas aplicaciones se pueden
encontrar con los tradicionales buscadores. No necesitan de la aprobación de ningún
fabricante para ser publicadas.
Como desventajas tenemos que el acceso a los elementos del teléfono son
limitados. Además, estas aplicaciones no se pueden vender en los market place.
Herramientas.
3
MÓDULOS SOFTWARE HABITUALES.
De cara a la resolución del supuesto práctico, es importante conocer varios productos comerciales (código abierto o
propietarios) que permitan cubrir las funcionalidades más típicas: gestión de contenidos, gestión de portales, gestión de
documentos, etc. Conocer varias alternativas dentro de cada una de esas categorías, con sus principales características,
tecnologías soportadas, etc., resulta fundamental de cara a la resolución del cuarto ejercicio.
Es también muy importante conocer las soluciones reutilizables disponibles en el Centro de Transferencia de Tecnología
(CTT) del Portal de Administración Electrónica (PAe: https://administracionelectronica.gob.es) que puedan cubrir las
funcionalidades requeridas sin tener que recurrir a una solución comercial. Las principales ventajas de estas soluciones son:
i) que el control de la misma está dentro de la administración y no en una empresa externa; ii) que ya están adaptadas a
la normativa de administración electrónica; y iii) que el grado de parametrización necesario es menor (precisamente por la
adaptación al negocio de la administración), reduciéndose por tanto los esfuerzos requeridos para su implantación.
Respecto a la opción de la reutilización, ha de asegurarse de que la tecnología subyacente sea coherente con la integración
planteada en la resolución del supuesto; es decir: si se trata de tecnología Java, .NET, etc., el conjunto de la solución
desarrollada debe ser coherente con la opción elegida. Muy importante también: si se trata de un software ofrecido como
SaaS, ha de plasmarse adecuadamente en la arquitectura lógica como un servicio externo y no en nuestra capa de negocio,
debiendo estudiar si la solución ofrece la posibilidad de integración vía Web Services (WS) u otros mecanismos, de modo
que se pueda integrar con el resto de nuestra solución.
Por último, respecto a la reutilización hay que estudiar cada solución reutilizable en particular, ya que en ningún caso
sustituyen en funcionalidades a una solución comercial, puesto que suelen enfocarse a una necesidad concreta que puede
no abarcar nuestras necesidades.
→ Ver más información en el documento "Aplicaciones reutilizables" en la sección 04. Transversal > 01. Servicios
Red SARA.
En los documentos de la sección actual se recogen los principales productos existentes que permiten llevar a cabo las
funcionalidades típicas. Las categorías en las que se han agrupado las soluciones son las siguientes:
Gestores de contenido.
Gestores de portales.
Gestores documentales.
Sistemas de Workflow (WF).
Herramientas de Business Intelligence (BI).
Herramientas Enterprise Service Bus (ESB).
Herramientas varias.
Herramientas para integración continua.
Nota: Es importante tener en cuenta que la diferencia entre gestor de contenido y gestor de portal (e incluso gestor
documental en algunos casos) no resulta clara. Por ello, gran parte de los productos que se han clasificado como gestores
de contenido también se pueden considerar gestores de portales y a la inversa.
Un Sistema Gestor de Contenidos (CMS, Content Management System) facilita la gestión de los contenidos y simplifica su
administración. Normalmente, se utiliza para administrar contenidos de una página web, también denominándose en este
caso Web Content Manager (WCM).
Consiste en una interfaz que controla una o varias BBDD donde se encuentra el contenido. El sistema permite manejar de
manera independiente el contenido y la presentación (o diseño) de la página. Así, es posible manejar el contenido y darle
en cualquier momento un diseño distinto al sitio web sin tener que darle formato al contenido de nuevo, además de permitir
a varios editores la publicación fácil y controlada.
Entre las alternativas reutilizables para la implantación de un gestor de contenidos están:
ROLSAC (Tecnología: Java. Responsable: Gobierno de las Islas Baleares).
ACCEDA (Tecnología: PHP/SaaS con web services. Responsable: MINHAP).
→ Ver más información el documento "Aplicaciones reutilizables" en la sección 04. Transversal > 01.
Servicios Red SARA, así como en el CTT-PAe.
En el mercado existen diferentes soluciones de gestores de contenido. De cara a la preparación del cuarto examen, es
importante tener en cuenta las siguientes premisas:
¿El gestor de contenidos es de software abierto o es propietario? Esta cuestión resulta crucial para poder determinar
si en el presupuesto de nuestro sistema debemos incluir la licencia por la utilización de esa herramienta.
Nota: aunque elijamos una alternativa de código abierto, puede que decidamos contratar soporte y, en ese caso,
deberíamos considerarlo en el presupuesto.
¿Qué tecnología utiliza el gestor de contenidos? Las típicas son PHP y Java, pero también podemos encontrar, por
ejemplo: .NET, Python o Ruby on Rails.
Nota: al elegir el gestor de contenidos debemos considerar la tecnología que utiliza. No tiene sentido que
planteemos un sistema .NET y que incluyamos un gestor de contenidos en Java. Todo el sistema debe ser coherente.
¿Qué BD, sistema operativo, servidor de aplicaciones, etc., soporta el gestor de contenidos? Tal y como se ha
comentado en el punto anterior, debemos asegurarnos de que el planteamiento de nuestro sistema sea coherente.
Por tanto, de cara a la elección del gestor de contenidos se deberá tener en cuenta con qué BBDD es compatible,
con qué servidores, etc.
A continuación, se incluye un detalle con los principales gestores de contenido disponibles en el mercado (tanto de código
abierto como propietario).
Recomendación: Teniendo en cuenta la amplia oferta de soluciones existente, lo más interesante es que seleccionéis al
menos uno para cada tecnología y conozcáis sus principales características de cara a la resolución del supuesto práctico .
Nota: aunque otros productos como pueden ser empleados como CMS, debido a sus funcionalidades más amplias, se han
encuadrado en gestores de portales, por ejemplo: Liferay, IBM WebSphere…
OpenCMS Multiplataforma Java Código abierto Puntos destacados: Sitios web creados con
Multi-idioma (UTF-8) (LGPL) OpenCMS:
- Cuenta con una extensa red de
Soporte de tecnología AJAX
proveedores Abengoa
Motor de búsqueda Lucene
- Existen abundante documentación.
Edición directamente en http://www.abengoa.com
Puntos a mejorar:
producción (Direct Edit).
Posibilidad de editar los F.C. Barcelona:
- La licencia es LGPL y no presenta un
contenidos desde el front- http://www.fcbarcelona.es/
copyleft fuerte, pues permite enlazar
office sin necesidad de con módulos privativos.
acceder al back-office - La comunidad del proyecto no es
Previsualización de los demasiado activa
cambios - La instalación y actualización del
Posibilidad de programar la sistema no está automatizada
puesta en producción de un
cambio (time warp)
Cacheo avanzado
Posibilidad de construir una
secuencia de tareas para
facilitar el trabajo en grupo,
de forma que se puedan
Permiten la creación y administración de portales web, facilitando la integración con las aplicaciones existentes y agilizando
la construcción del mismo.
Al igual que en el caso de los gestores de contenidos, en el mercado existen diferentes soluciones de gestores de portales.
De cara a la preparación del cuarto examen, es importante tener en cuenta las siguientes premisas:
¿El gestor de portales es de código abierto o es propietario? Esta cuestión resulta crucial para poder determinar si
en el presupuesto de nuestro sistema debemos incluir la licencia por la adquisición o utilización de esa herramienta.
Nota: aunque elijamos una alternativa de código abierto, puede que decidamos contratar soporte y, en ese caso,
deberíamos considerarlo en el presupuesto.
¿Qué tecnología utiliza el gestor de portales?
Nota: al elegir el gestor de portales debemos considerar la tecnología que utiliza. No tiene sentido que planteemos
un sistema .NET y que incluyamos un gestor de portales basado en Java. Todo el sistema debe ser coherente.
¿Qué BD, sistema operativo, servidor de aplicaciones, etc., soporta el gestor de portales? Tal y como se ha
comentado en el punto anterior, debemos asegurarnos de que el planteamiento de nuestro sistema sea coherente.
Por tanto, de cara a la elección del gestor de portales se deberá tener en cuenta con qué BBDD es compatible, con
qué servidores, etc.
A continuación, se incluye un resumen con los principales gestores de portales disponibles en el mercado (tanto de código
abierto como propietario).
Recomendación: Teniendo en cuenta la amplia oferta de soluciones existente, lo más interesante es que seleccionéis al
menos uno para cada tecnología y conozcáis sus principales características de cara a la resolución del supuesto práctico.
Microsoft Office Dispone de los elementos más NET SW Si en el organismo donde se quiere implantar la solución utilizan .NET,
SharePoint Server esenciales de un portal: Framework propietario SharePoint sería una buena solución.
(MOSS) o Gestión de contenidos
(documentos, páginas
web, centro de Sin embargo, un sistema de alto volumen de transacciones no es buena idea
registros) para esta plataforma, especialmente si los datos se almacenan en las listas
o Integración de de SharePoint (no diseñadas para este tipo de carga). Del mismo modo, no
aplicaciones debe utilizarse SharePoint para aplicaciones intensivas en cuanto al uso de
(desarrollos .NET) datos, tales como procesos por lotes o software de procesamiento en
o Tecnologías de paralelo. SharePoint tampoco suele ser la plataforma adecuada para la
búsquedas integración de aplicaciones. Un proyecto de integración de Microsoft debe
o Diferentes basarse en BizTalk Server.
arquitecturas de
sistemas
Requiere SQL Server
Necesita Windows Server con
IIS para el rol de presentación.
Requiere Active Directory para la
validación de Windows Server
IBM WebSphere Funciona bajo Linux, Microsoft Java SW Es válido en entornos de alto rendimiento, así como si se requiere un entorno
Portal Server Windows, HP-UX, Solaris, i5/OS, propietario escalable.
and z/OS.
Una de sus principales desventajas es su dificultad de implantación, así como
Requiere un directorio LDAP.
la importante inversión que hay que realizar tanto en tecnología como en
Requiere BD IBM DB2
personal cualificado.
Se integra con Lotus Web
Content Manager
Dispone de tecnologías
complementarias: gestión de
contenidos, mashups, entornos
de colaboración sociales,
seguridad y gestión.
Soporta estándar JSR 286.
Este tipo de herramientas permiten administrar el flujo de documentos (o activos digitales) de todo tipo en una organización,
recuperar información desde ellos, determinar el tiempo que los documentos deben guardarse, eliminar los que ya no sirven
y asegurar la conservación indefinida de los documentos. En definitiva, facilitan y gestionan el almacenamiento seguro, la
indexación y la recuperación de contenidos documentales. Están especializados en el escaneado de documentos, indexación,
optimización del almacenamiento, archivo y gestión de procesos y flujos de trabajo.
Entre las alternativas reutilizables para la implantación de un gestor documental están:
Espacios de Colaboración (Tecnología: Java. Basado en Liferay. Responsable: MINHAP).
Inside (Tecnología: Java. Responsable: MINHAP).
G-Inside (Tecnología: SaaS con web services. Responsable: MINHAP).
@Doc (Tecnología: Java. Responsable: Ministerio de la Presidencia).
→ Ver más información el documento “Aplicaciones reutilizables" en la sección 04. Transversal > 01. Servicios
Red SARA, así como en el CTT-PAe.
En el mercado existen diferentes soluciones de gestores documentales. De cara a la preparación del cuarto examen, es
importante tener en cuenta las siguientes premisas:
¿El gestor documental de software abierto o es propietario? Esta cuestión resulta crucial para poder determinar si
en el presupuesto de nuestro sistema debemos incluir la licencia por la adquisición o utilización de esa herramienta.
Nota: aunque elijamos una alternativa de código abierto, puede que decidamos contratar soporte y, en ese caso,
deberíamos considerarlo en el presupuesto.
¿Qué tecnología utiliza el gestor documental?
Nota: al elegir el gestor documental debemos considerar la tecnología que utiliza. No tiene sentido que planteemos
un sistema .NET y que incluyamos un gestor documental en Java. Todo el sistema debe ser coherente.
¿Qué BD, sistema operativo, servidor de aplicaciones, etc. soporta el gestor documental? Tal y como se ha
comentado en el punto anterior, debemos asegurarnos de que el planteamiento de nuestro sistema sea coherente.
Por tanto, de cara a la elección del gestor documental se deberá tener en cuenta con qué BBDD es compatible, con
qué servidores, etc.
A continuación, se incluye un detalle con los principales gestores documentales disponibles en el mercado (tanto de código
abierto como propietario).
Recomendación: Teniendo en cuenta la amplia oferta de soluciones existente, lo más interesante es que seleccionéis al
menos uno para cada tecnología y conozcáis sus principales características de cara a la resolución del supuesto práctico.
Nota: En el caso de que sea necesario plantear un gestor documental en la resolución del cuarto examen, es interesante
que la solución escogida permita cumplir con las NTIs (Normas Técnicas de Interoperabilidad) correspondientes.
Es importante tener en cuenta que, a la hora de diseñar el flujo de trabajo, generalmente se utiliza la notación gráfica
BPMN. Esta notación permite modelar procesos que corren dentro de aplicaciones. Posteriormente, esta representación
gráfica se debe transformar a un flujo ejecutable por una herramienta. Para ello, podemos utilizar:
a. El metalenguaje BPML
b. El lenguaje XPDL
c. El lenguaje BPEL
JBoss jBPM • Utiliza jPDL como su Java Apache jBPM es un motor de flujo de trabajo que toma
propio lenguaje de License descripciones gráficas de proceso como
definición de 2.0 entrada.
procesos
Se basa en la Máquina Virtual de Procesos
• Puede ejecutar los
que es el fundamento de la comunidad JBoss,
procesos de negocio
para soportar múltiples lenguajes de proceso
que se describen en
de forma nativa.
BPMN 2.0
• Basado en el Proporciona varias herramientas, tanto para
estándar BPEL de los desarrolladores (Eclipse) y usuarios finales
OASIS (basado en la web) para crear, implementar,
• Multiplataforma ejecutar y gestionar los procesos de negocio a
lo largo de su ciclo de vida.
Alfresco tiene integrado el motor jBPM.
Se distribuye a través de jBoss.
Activiti • Utiliza BPMN 2.0 Java Apache Alfresco tiene integrado el motor Activiti.
como lenguaje de License
definición de 2.0
procesos Se distribuye a través de Alfresco o de la
• Multiplataforma comunidad Activiti
Open ESB • Permite integrar Java CDDL Java Business Integration (JBI) es una
sistemas legacy especificación desarrollada bajo la Java
Community Process (JCP) con el objetivo de
• Compatible con
implementar en Java una Enterprise
JBI, XML, XML Application Integration (EAI), siguiendo los
Schema, WSDL, principios de la Arquitectura Orientada a
BPEL Servicio (SOA), Open ESB es una
• Pertenecía a Sun implementación libre basada en JBI.
pero ahora lo
gestiona la
OpenESB Otras soluciones open source son:
Community (año Mule, WSO2, ServiceMix o Jboss Fuse.
2010)
En el siguiente enlace se muestra un cuadro resumen muy interesante con diferentes motores BPEL y BPMN:
http://en.wikipedia.org/wiki/Comparison_of_BPEL_engines
Utilizar los propios datos de una organización como punto de partida para la toma de
decisiones.
Realizar una optimización de procesos.
Realizar reportes operacionales.
Las herramientas de business intelligence pueden ser de cinco estilos diferentes:
Reporte empresarial.
Cubos de análisis.
Vistas Ad Hoc Query y análisis.
Data mining y análisis estadísticos.
Entrega de reportes y alertas.
1
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo Superior de
Sistemas y Tecnologías de la Información de la
Administración del Estado
2
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo Superior de
Sistemas y Tecnologías de la Información de la
Administración del Estado
Un tipo de sistemas que no está muy extendido en la Administración pero que puede
ser interesante tener en cuenta en algunas situaciones son los clasificadores
automáticos de documentos. Su utilización aporta las siguientes mejoras:
Estos sistemas son útiles cuando se reciben documentos de texto libre por parte de los
ciudadanos, y se encargan de clasificarlos de forma automática y reenviarlos a la
unidad encargada de tratar cada tipo de documento o procedimiento.
1. Carga de documentos
2. OCR
3
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo Superior de
Sistemas y Tecnologías de la Información de la
Administración del Estado
4. Módulo de clasificación
4
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo Superior de
Sistemas y Tecnologías de la Información de la
Administración del Estado
5
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo Superior de
Sistemas y Tecnologías de la Información de la
Administración del Estado
HERRAMIENTAS ESB
Un ESB es el elemento software que media entre las aplicaciones de una organización y
permite la comunicación entre ellas. Idealmente el ESB tendría que ser capaz de sustituir
todo contacto directo con las aplicaciones en el bus, de modo que toda la comunicación
tenga lugar a través del bus.
Permite:
Nota: Sería muy raro que en el cuarto examen plantearan un sistema en el que fuera
necesario la inclusión de un ESB. En cualquier caso, siempre es positivo llevar preparados
todas las posibles opciones.
1
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo Superior de
Sistemas y Tecnologías de la Información de la
Administración del Estado
2
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo Superior de
Sistemas y Tecnologías de la Información de la
Administración del Estado
WSDL, otros propios del universo Java como JBI (Java
Business Integration) y OSGi.
Open ESB Corre bajo Windows, Java Código Es el único ESB de código abierto que soporta los estándar
Linux y Mac OS abierto JSR-208 (JBI, Java Business Integration), XML, XML
Permite integrar (CDDL) Schema, WSDL, BPEL
sistemas legacy en los
procesos de negocio
Mule Multiplataforma (JVM) Java Código Es un ESB más ligero.
Arquitectura escalable abierto Basado en java pero puede gestionar peticiones de otras
(CPAL) plataformas (como .NET) mediante servicios web o sockets.
WSO2 Soporta la creación de Java Código Es un ESB simple, ligero y de alto rendimiento
servicios proxy de forma abierto
gráfica
3
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo Superior de
Sistemas y Tecnologías de la Información de la
Administración del Estado
HERRAMIENTAS VARIAS
1
INTEGRACIÓN DE COMPONENTES, SERVICIOS Y APLICACIONES
El objetivo de esta guía es enumerar las diferentes opciones que tenemos a la hora de conseguir que varias
aplicaciones trabajen de forma conjunta, sin entrar a describir en profundidad las diversas tecnologías. Se
consideran las situaciones en las que puede ser conveniente emplear cada tecnología, así como los
escenarios de uso habituales.
Actualmente es la tecnología por excelencia para integrar aplicaciones. Es la primera opción que debemos
contemplar, salvo que se den circunstancias que desaconsejen su uso.
Existen multitud de especificaciones en torno a los servicios web, mayoritariamente emitidas por los
consorcios W3C y OASIS. En la mayoría de los casos, es suficiente con emplear el conjunto de protocolos
incluidos en el WS-I Basic Profile (perfil básico definido por la Organización para la Interoperabilidad de
Servicios Web): SOAP para describir el formato de los mensajes y WSDL como descriptor de los servicios
son los protocolos principales.
Los WS son neutrales desde el punto de vista del lenguaje de programación y las plataformas de ejecución.
Existen implementaciones certificadas en el perfil básico WS-I para múltiples plataformas y lenguajes: Zend
Framework para PHP, gSOAP para C/C++, ASP.Net 2.0 o WCF para la plataforma .Net, etc. En el entorno
JavaEE, las implementaciones de la API JAX-WS (JSR 224) son conformes al perfil básico WS-I. Apache
Axis 2 es una implementación bastante popular de la JSR 224, distribuida bajo licencia libre Apache Software
Foundation.
SOAP es independiente del transporte. Lo que se entiende normalmente al hablar de WS es SOAP sobre
HTTP o HTTPS, pero también sería válido el intercambio de mensajes SOAP sobre FTP, SMTP,
directamente sobre conexiones TCP/UDP, etc. La principal ventaja de SOAP sobre HTTP es que no presenta
problemas para atravesar los firewalls, ya que estos se configuran habitualmente para dejar pasar el tráfico
HTTP.
REST nace como una alternativa para simplificar la comunicación entre procesos. Está basado en un
esquema cliente-servidor, y utiliza el protocolo HTTP como modelo central de comunicación. Mientras que
trabajar con SOAP en JavaScript, por ejemplo, implicar escribir una importante cantidad de código porque la
estructura XML debe ser creada cada vez, REST resuelve este conflicto basándose en simples direcciones
URL. En casi todas las situaciones los servicios se comunicarán vía URL, a través de comandos GET, POST,
PUT y DELETE. Esta notable sencillez es el gran punto fuerte de REST. Prácticamente no tiene costos de
aprendizaje, y de manera directa se pueden desarrollar servicios web sin la necesidad de pesados protocoles
de comunicación.
Si bien ambos proveen la misma funcionalidad (comunicar dos servicios web), sus raíces son distintas. REST
está basado en un esquema cliente-servidor, mientras que SOAP es un protocolo dedicado al intercambio de
datos entre dos puntos dedicados. Esto ya saca a relucir una diferencia importante desde el punto de vista
arquitectónico. Con respecto a seguridad, ninguno es particularmente más “seguro” que el otro, aunque
SOAP cuenta con extensiones que garantizan seguridad punto a punto. Si tiene ventajas SOAP desde el
punto de vista de transacciones, contemplando nociones como Two-Phase commit, y otros enfoques para el
manejo de transacciones distribuidas. REST, priorizando un protocolo simple y ligero, adolece de este tipo de
cuestiones. En cuanto a la posibilidad de adaptarse a diferentes plataformas, si bien REST depende del
protocolo HTTP, SOAP ofrece muchas extensiones, con sutiles diferencias entre sí, y comunicarlas a todas
en un lenguaje común no es tan simple en muchas ocasiones. Luego, REST parece salir mejor parado de
esta situación, teniendo como única precondición la comunicación via URLs.
REST permite inúmeros formatos de datos, dando por ejemplo al desarrollador la posibilidad de utilizar JSON
que normalmente es más rápido y como permite la utilización de JSON, permite también un mejor soporte a
los clientes del explorador. SOAP solamente permite XML.
Es importante, a la hora de plantear una integración a través de Servicios Web, identificar claramente al
proveedor del servicio (despliega y escucha) y al consumidor del servicio (invoca al servicio).
Deben ser tenidos en cuenta como posible alternativa al uso de WS. Los principales son los siguientes:
Envío de ficheros.- Es el mecanismo de integración más primitivo, en el que una aplicación genera un
fichero con un formato preestablecido y lo deposita en una ruta determinada (posiblemente mediante envío
FTP a un servidor remoto); otra aplicación lee este fichero y lo procesa, y genera ficheros de respuesta que
luego pueden ser recogidos por la primera aplicación. Aunque presenta desventajas evidentes que lo hacen
poco mantenible (falta de formatos estandarizados, alto grado de acoplamiento entre las aplicaciones,...),
puede ser una buena solución cuando se requiere una transmisión y procesado de grandes volumenes de
datos, especialmente en entornos de comunicación cerrados (en los que las aplicaciones que van a generar y
consumir la información se conocen de antemano). En el ámbito tributario y de la Seguridad Social, todavía
existen mecanismos de este tipo para la consulta y/o envío masivo de información, utilizados frecuentemente
por empresas y otros organsimos públicos.
Base de datos compartida.- Supone una mejor respecto al envío de ficheros. Múltiples aplicaciones
comparten un esquema de datos sobre una misma base de datos física. Evita duplicidad en el
almacenamiento y la transferencia de datos entre aplicaciones. El empleo de vistas lógicas permite cierto
grado de aislamiento entre las aplicaciones. Es una buena solución para compartir información e integrar
aplicaciones dentro de la propia organización. Es complicado implementar un patrón de interacción del tipo
petición-respuesta.
Remote Procedure Call (RPC).- Nombre genérico para todos los mecanismos en los que un programa es
capaz de llamar a una rutina de otro programa que se está ejecutando en una máquina remota y obtener una
respuesta. En su día fueron populares los estándares DCOM o CORBA. SOAP es un tipo de mecanismo
RPC; de hecho, es la evolución del antiguo estandar XML-RPC. La única ventaja que pueden presentar estos
mecanismos clásicos respecto a los servicios web es que introducen menos sobrecarga de información (las
cabeceras SOAP y la serialización XML no resulta óptima para transmitir grandes volumenes de información).
No obstante, no hay demasiados motivos para considerar este tipo de integración, salvo que haya que dar
soporte a la integración de aplicaciones heredadas (legacy) que no permitan otro tipo de interacción.
Son productos software cuya finalidad es facilitar la integración de aplicaciones heterogéneas. Son
características habituales de este tipo de productos:
Independencia del fabricante, la plataforma o el lenguaje de programación de las aplicaciones,
ofreciendo adaptadores para múltiples transportes y protocolos (HTTP, FTP, REST, SOAP, SAP
RFC, DCOM, CORBA, objetos Java simples,...)
Mapeo entre productores y consumidores de información y enrutado de mensajes dinámico y basado
en reglas.
Encolado y priorización de mensajes.
Orquestación de servicios.
Calidad de servicio: validación de mensajes, seguridad (autenticación, encriptación), entrega
confiable, gestión de transacciones,etc.
Herramientas de gestión: monitorización, métricas, auditoría, registro de eventos,etc.
Básicamente, los productos que se definen como middleware de integración caen en una de las siguientes
categorías: Buses de Servicios Empresariales (Enterprise Service Bus o ESB) o Colas/Brokers de
Mensajería Asíncrona (Message Queues o MQ). Los primeros están más orientados al paradigma
petición/respuesta, mientras que los segundos se orientan hacia el paradigma publicación/subscripción. Para
una descripción más detallada de los ESB, véase la guía “Módulos Software > Herramientas ESB”.
Servicios comunes dentro de la Organización.- En los sistemas de información de todos los organismos
administrativos existen aplicaciones horizontales cuya finalidad es ofrecer un determinado servicio a otro
conjunto de aplicaciones internas. Ejemplos de este tipo de servicios son el registro electrónico, el gestor
documental/archivo de expedientes, el portafirmas electrónico, servicios de autenticación mediante certificado
electrónico, servicio de notificaciones electrónicas, plataforma de envío de SMS, etc. Es recomendable que
todos estos componentes de servicio horizontales implementen una interfaz WS, de forma que se consiga
maximizar la interoperabilidad con distintas plataformas y lenguajes de programación y minimizar la
dependencia con las aplicaciones consumidoras. Es habitual encapsular las llamadas a estos WS comunes
en librerías que puedan ser integradas y utilizadas fácilmente por las aplicaciones.
En el caso concreto de los gestores de contenidos, es habitual usar el estándar CMIS (Content Management
Interoperability Services), que es una extensión de SOAP.
Plataforma de Intermediación.- Como caso particular de servicio horizontal accesible a través de la Red
SARA, la Plataforma de Intermediación se utiliza para recabar, previa autorización, determinada información
sobre ciudadanos que obra en poder de otros organismos: datos fiscales y de la seguridad social, titulaciones
académicas oficiales, datos catastrales,... La obtención de datos se realiza mediante llamadas a WS
síncronas o asíncronas. El proveedor de información debe publicar también sus propios WS para que la
Plataforma de Intermediación los invoque cuando sea necesario.
Federación de sistemas de información.- Puede aparecer también el caso de una Administración que
tenga que compartir determinados registros o catálogos de información con otras administraciones de ámbito
nacional o internacional, con el fin de crear un registro o catálogo federado: catálogos de biblioteca, historial
sanitario, registros policiales, catálogo de bienes protegidos, etc. En estos escenarios, cada administración
mantiene su propio sistema, pero debe habilitar mecanismos de integración que permitan al resto de
administraciones extender sus servicios de búsqueda y consulta. Lo habitual es que se defina una interfaz y
un formato de intercambio normalizados, y puede haber un organismo que haga de intermediario o pasarela
de consultas.
Alternativas software.
Producto cerrado o desarrollo a medida.
PRODUCTO CERRADO.
Ventajas:
Más económico.
Puesta en producción rápida.
No necesidad de recursos humanos para desarrollo ni mantenimiento.
Inconvenientes:
Menos flexibilidad, adaptado a necesidades generales.
Dependencia de proveedores externos, y por lo tanto, posibles problemas
para evoluciones, soporte y continuidad del producto.
Modificaciones y adaptaciones caras y complejas.
DESARROLLO A MEDIDA.
Ventajas:
Flexibilidad, adaptado a nuestras necesidades concretas.
Control sobre el producto.
No dependencia de proveedores externos.
1
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
Inconvenientes:
Más caro.
Mayor tiempo hasta solución en producción.
Necesidad de recursos humanos.
Mayores costes de mantenimiento debido a las especificidades.
PRODUCTO PARAMETRIZABLE.
Ventajas:
Mayor control.
Mayor conocimiento interno sobre el funcionamiento del sistema.
Reducción de dependencia con empresas externas.
Mejor adaptación a las necesidades de la organización.
No es necesario formalizar un contrato.
Inconvenientes:
Requiere disponibilidad de personal suficiente y cualificado.
Menor flexibilidad para adaptar el número de recursos a las necesidades de
cada momento.
Ventajas:
No necesidad de disponer de una plantilla numerosa de personal cualificado.
Se puede disponer de personal experto en ámbitos muy específicos.
Inconvenientes:
Se pierde control.
Menor conocimiento interno sobre el funcionamiento del sistema.
Dependencia con empresas externas.
Mayor coste.
Tiempo necesario para la realización de la contratación de los servicios.
DESARROLLO MIXTO.
2
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
Alternativas hardware.
Financiación: Compra, alquiler o equipos usados.
Factores a tener en cuenta:
Presupuesto actual y previsto.
Conocimiento de los requisitos.
Riesgos de obsolescencia.
COMPRA.
Adecuado si:
Disponibilidad de presupuesto suficiente en la actualidad y previsto.
No se contemplan cambios a corto/medio plazo.
Bajos riesgos de obsolescencia.
ALQUILER.
Adecuado si:
No se dispone de presupuesto suficiente para comprar.
Cambios previstos a corto/medio plazo.
Requisitos no estables.
Altos riesgos de obsolescencia.
EQUIPOS USADOS.
OFICINAS DE LA ORGANIZACIÓN.
Ventajas:
Control del HW.
Facilita intervenciones por parte de los empleados de la organización.
Inconvenientes:
Espacio dedicado para alojar el equipamiento hardware y acondicionamiento
del mismo.
3
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
LOCALIZACIÓN EXTERNA.
Nube.
Análisis de alternativas
Para un análisis de alternativas a bajo nivel de productos podríamos plantear una
matriz de evaluación.
4
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
ANÁLISIS DAFO.
Conceptos importantes.
Para elaborar un DAFO hay que realizar un análisis externo y un análisis interno.
Análisis externo.
Amenazas: toda fuerza del entorno que puede impedir la implantación del sistema o
bien reducir su efectividad, o incrementar los riesgos de la misma, o los recursos que
se requieren para su implantación, o bien reducir los beneficios esperados.
Análisis interno.
1
Grupo de apoyo a la preparación de la XXIII
convocatoria de oposiciones al Cuerpo
Superior de Sistemas y Tecnologías de la
Información de la Administración del Estado
Propuestas para un DAFO.
AMENAZAS OPORTUNIDADES
DEBILIDADES FORTALEZAS