Tema 17. Herramientas de diseño y desarrollo de sistemas de información. Funcionalidad y conceptos. Entornos integrados. Gestión de la configuración del software: identificación de la configuración. Control de versiones y cambios: GIT.

Tema específico de Técnico/a Especialista en Informática

1. Herramientas de diseño y desarrollo de sistemas de información

🎯 Idea clave

  • Las herramientas de diseño y desarrollo de sistemas de información son aplicaciones, entornos y metodologías que asisten en todo el ciclo de vida del software.
  • Su finalidad principal es aumentar la productividad, reducir errores y garantizar la trazabilidad de los artefactos generados.
  • En el Servicio Andaluz de Salud (SAS), estas herramientas soportan procesos asistenciales, administrativos y de gestión de recursos.
  • Forman un ecosistema integrado que cubre desde la concepción funcional hasta la transición a operación.
  • Su importancia es crítica en entornos complejos como el SAS, donde la continuidad del servicio es prioritaria.
  • Permiten trabajar de manera coordinada en contextos grandes, distribuidos y con exigencias normativas específicas.

📚 Desarrollo

Definición conceptual. Las herramientas de diseño y desarrollo de sistemas de información constituyen un conjunto de aplicaciones, entornos, repositorios, plataformas y utilidades software que acompañan al técnico durante todo el ciclo de vida del software. No se limitan a editores de código, sino que abarcan desde la captación de requisitos hasta el mantenimiento y la evolución del sistema.

Finalidad principal. Su objetivo es incrementar la productividad de los equipos, minimizar errores en el desarrollo, facilitar la documentación técnica y funcional, y asegurar la trazabilidad de cada componente generado. En organizaciones como el SAS, estas herramientas también homogeneizan el trabajo de equipos distribuidos y garantizan la coherencia en entornos con alta exigencia de continuidad asistencial.

Contexto en el SAS. El Servicio Andaluz de Salud gestiona un ecosistema tecnológico complejo que da soporte a la actividad asistencial y administrativa de centros de salud, hospitales y servicios centrales. La Dirección General de Sistemas de Información Sanitaria (DGSIS) impulsa el uso de metodologías y herramientas alineadas con los estándares de la administración pública, adaptando enfoques como Métrica v3 a las necesidades del sector sanitario.

Componentes del ecosistema. Estas herramientas no operan de forma aislada, sino que forman un sistema integrado que incluye utilidades de configuración, servicios de apoyo, plataformas de colaboración y repositorios de código. Su valor reside en la capacidad de coordinar equipos, gestionar versiones, preparar despliegues y sostener la evolución del software en un entorno corporativo.

Aplicación en sistemas críticos. En el SAS, las herramientas de diseño y desarrollo se aplican en sistemas de alto impacto como la Historia de Salud Digital de Andalucía (HSDAND), el sistema de cita previa Diraya, la prescripción electrónica Receta XXI y los sistemas de laboratorio (LIS) y radiología (RIS/PACS). Estos sistemas exigen herramientas que aseguren la integración, la interoperabilidad y el cumplimiento normativo.

Requisitos de diseño relacional. El técnico especialista en informática del SAS debe conocer los principios del diseño relacional para proponer cambios coherentes con la arquitectura existente. Esto incluye interpretar esquemas relacionales, identificar anomalías, aplicar criterios de normalización y documentar modificaciones, especialmente en sistemas que manejan datos de salud especialmente protegidos.

Importancia de la trazabilidad. La trazabilidad es un requisito clave en el desarrollo de sistemas de información en el SAS, donde cada cambio debe estar documentado y alineado con los objetivos de continuidad asistencial. Las herramientas empleadas deben permitir registrar decisiones técnicas, gestionar versiones y garantizar que los artefactos generados sean auditables y reproducibles.

🧩 Elementos esenciales

  • Aplicaciones y entornos: Software especializado que facilita el análisis, diseño, construcción y mantenimiento de sistemas de información.
  • Metodologías: Enfoques estructurados como Métrica v3, adaptados a las necesidades del sector sanitario en el SAS.
  • Repositorios: Espacios para almacenar y gestionar código, documentación y artefactos generados durante el desarrollo.
  • Plataformas de colaboración: Herramientas que permiten la coordinación entre equipos distribuidos, esenciales en entornos complejos.
  • Utilidades de configuración: Aplicaciones que ayudan a gestionar parámetros, versiones y despliegues en sistemas críticos.
  • Trazabilidad: Capacidad de registrar y auditar cada cambio realizado en el ciclo de vida del software.
  • Integración: Funcionalidad que asegura la interoperabilidad entre sistemas heterogéneos, clave en el ecosistema del SAS.
  • Documentación: Generación automática o manual de documentos técnicos y funcionales que respaldan el desarrollo.
  • Gestión de versiones: Control de las diferentes versiones de código y artefactos para evitar conflictos y garantizar la coherencia.
  • Seguridad: Herramientas que aseguran el cumplimiento de normativas como el ENS y el RGPD en el tratamiento de datos de salud.
  • Despliegue: Procesos y herramientas que facilitan la puesta en producción de sistemas con mínima interrupción del servicio.
  • Mantenimiento: Soporte continuo para la evolución y corrección de sistemas en entornos con alta exigencia de disponibilidad.

🧠 Recuerda

  • Las herramientas de diseño y desarrollo no son solo editores de código, sino un ecosistema integrado.
  • Su finalidad incluye aumentar la productividad, reducir errores y garantizar la trazabilidad.
  • En el SAS, estas herramientas soportan sistemas críticos como la historia clínica digital o la prescripción electrónica.
  • La Dirección General de Sistemas de Información Sanitaria impulsa su uso alineado con estándares públicos.
  • El técnico especialista en informática debe conocer principios de diseño relacional y normalización.
  • La trazabilidad y la documentación son requisitos clave en el desarrollo de sistemas sanitarios.
  • Las herramientas deben facilitar la colaboración entre equipos distribuidos y la gestión de versiones.
  • La continuidad del servicio y el cumplimiento normativo son prioridades en el SAS.
  • El ecosistema de herramientas abarca desde la concepción funcional hasta la operación y mantenimiento.
  • La integración y la interoperabilidad son esenciales en entornos con múltiples sistemas heterogéneos.

2. Funcionalidad y conceptos

🎯 Idea clave

  • Las herramientas de diseño y desarrollo de sistemas de información asisten a los profesionales TIC en todo el ciclo de vida del software, desde la captación de requisitos hasta el mantenimiento.
  • Su finalidad principal es aumentar la productividad, reducir errores y garantizar la trazabilidad en entornos distribuidos y complejos como el Servicio Andaluz de Salud.
  • Estas herramientas no son los sistemas entregados al usuario final, sino el utillaje profesional utilizado por los equipos de desarrollo.
  • En el SAS, forman un ecosistema corporativo que cubre modelado, construcción, documentación, integración, pruebas y despliegue.
  • Su valor reside en facilitar la coordinación entre equipos, la homogeneización de procesos y la continuidad del servicio en entornos con altas exigencias.
  • La clasificación por finalidad ayuda a entender su papel en la arquitectura corporativa del SAS.

📚 Desarrollo

Definición y alcance. Las herramientas de diseño y desarrollo de sistemas de información son el conjunto de aplicaciones, entornos, repositorios y utilidades software que apoyan a los técnicos en las actividades técnicas de modelado, especificación, codificación, integración, prueba y documentación. Su objetivo es asistir en todo el ciclo de vida del software, desde la concepción funcional hasta la transición a operación, pasando por la construcción y el gobierno de la calidad.

Finalidad corporativa. En el Servicio Andaluz de Salud, estas herramientas adquieren especial relevancia debido a la complejidad de su arquitectura corporativa. No solo facilitan el desarrollo de soluciones digitales, sino que aseguran su integración, verificación, documentación y homogeneización en un entorno distribuido y con fuertes exigencias de continuidad de servicio. Su uso permite trabajar de manera coordinada en un contexto grande, con múltiples equipos y procesos asistenciales interconectados.

Impacto en la productividad. La implementación de estas herramientas tiene un impacto directo en la productividad de los equipos TIC. Al automatizar tareas repetitivas, reducir errores y garantizar la trazabilidad de cada artefacto generado, se optimizan los recursos y se mejora la calidad del producto final. Además, facilitan la colaboración entre equipos distribuidos, un aspecto crítico en organizaciones como el SAS, donde los sistemas soportan procesos asistenciales, administrativos y de gestión.

Evolución histórica. Tradicionalmente, estas herramientas se englobaban bajo el término CASE (Computer-Aided Software Engineering), que distinguía entre Upper-CASE (apoyo a fases iniciales como análisis y diseño), Lower-CASE (apoyo a codificación y pruebas) e Integrated-CASE (cobertura de todo el ciclo). Aunque el término ha caído en desuso, las funcionalidades que describía siguen vigentes en las herramientas modernas, ahora más especializadas y adaptadas a las necesidades actuales.

Herramientas instrumentales. Es importante destacar que estas herramientas son instrumentales: no constituyen los sistemas entregados al usuario final, sino el soporte profesional utilizado por los equipos de desarrollo. Su madurez y calidad influyen directamente en la eficiencia del proceso de construcción y en la sostenibilidad del software a lo largo del tiempo.

Clasificación por finalidad. Para facilitar su estudio, estas herramientas pueden clasificarse según su finalidad en el SAS. Un primer grupo se orienta a la gestión del ciclo de vida del software y de proyectos, mientras que otros cubren áreas como la documentación, la configuración, la identidad y accesos, la monitorización, el soporte a usuarios o la integración y despliegue. Esta clasificación ayuda a entender que el diseño y desarrollo de sistemas en el SAS depende de un ecosistema coordinado, no de una única herramienta.

Ejemplo corporativo. En el SAS, JIRA actúa como herramienta central de organización del trabajo de desarrollo, dando soporte a la gestión del ciclo de vida del software y de proyectos. Su uso está extendido en los equipos provinciales TIC y en los contratos de desarrollo de software e infraestructuras, lo que refleja su papel clave en la arquitectura corporativa.

🧩 Elementos esenciales

  • Herramientas de diseño y desarrollo: Conjunto de aplicaciones y entornos que asisten en el ciclo de vida del software, desde el análisis hasta el mantenimiento.
  • Finalidad principal: Aumentar la productividad, reducir errores y garantizar la trazabilidad en entornos distribuidos.
  • Ecosistema corporativo: En el SAS, estas herramientas forman un sistema coordinado que cubre modelado, construcción, documentación, integración y despliegue.
  • Impacto en la calidad: Su uso mejora la eficiencia del proceso de desarrollo y la sostenibilidad del software a largo plazo.
  • Clasificación por finalidad: Gestión del ciclo de vida, documentación, configuración, identidad, monitorización, soporte e integración.
  • Herramientas CASE: Antecedentes históricos que automatizaban tareas del ciclo de vida, hoy evolucionados hacia soluciones más especializadas.
  • JIRA en el SAS: Herramienta central para la gestión de proyectos y el ciclo de vida del software en la organización.
  • Coordinación de equipos: Facilitan la colaboración en entornos complejos y distribuidos, como los del SAS.
  • Integración y verificación: Aseguran que las soluciones digitales se ajusten a la arquitectura corporativa y cumplan con los estándares de calidad.
  • Documentación y trazabilidad: Garantizan que cada decisión y artefacto generado quede registrado y sea accesible.
  • Continuidad del servicio: Su uso es crítico en entornos con altas exigencias de disponibilidad, como los sistemas asistenciales del SAS.
  • Herramientas instrumentales: No son el producto final, sino el soporte profesional utilizado por los equipos de desarrollo.

🧠 Recuerda

  • Las herramientas de diseño y desarrollo son esenciales para optimizar el ciclo de vida del software en el SAS.
  • Su finalidad incluye aumentar la productividad, reducir errores y garantizar la trazabilidad.
  • En el SAS, forman un ecosistema corporativo que cubre múltiples áreas, desde el modelado hasta el despliegue.
  • JIRA es la herramienta central para la gestión de proyectos y el ciclo de vida del software en la organización.
  • Estas herramientas no son el sistema entregado al usuario, sino el utillaje profesional de los equipos TIC.
  • Su clasificación por finalidad ayuda a entender su papel en la arquitectura corporativa.
  • La coordinación entre equipos y la continuidad del servicio son aspectos críticos en el SAS.
  • La documentación y la trazabilidad son elementos clave para la sostenibilidad del software.
  • El término CASE, aunque en desuso, describe funcionalidades aún vigentes en las herramientas modernas.
  • Su impacto en la calidad y eficiencia del desarrollo es directo y medible.

3. Entornos integrados

🎯 Idea clave

  • Un entorno de desarrollo integrado (IDE) es una aplicación que consolida en una única interfaz herramientas esenciales para el desarrollo de software, como editor de código, compilador, depurador y gestor de versiones.
  • La integración en un IDE implica comprensión semántica del código, diferenciándose de editores de texto avanzados que operan a nivel sintáctico.
  • En el Servicio Andaluz de Salud (SAS), los entornos integrados no se limitan al plano local, sino que incluyen un plano corporativo con herramientas coordinadas para trazabilidad, automatización y gobierno del ciclo de vida.
  • El SAS emplea un ecosistema tecnológico integrado que combina IDE locales con plataformas como JIRA, Confluence y Web Técnica para gestionar procesos, documentación y configuración.
  • La doble dimensión de los entornos integrados en el SAS abarca tanto el desarrollo técnico individual como la coordinación corporativa de proyectos.
  • La aplicación práctica para opositores exige entender que un entorno integrado no es solo una herramienta, sino un sistema de herramientas interconectadas.

📚 Desarrollo

Definición conceptual. Un entorno de desarrollo integrado (IDE) es una aplicación software que agrupa en una única interfaz las herramientas necesarias para el ciclo completo de desarrollo: edición de código, compilación, depuración, gestión de proyectos y control de versiones. La integración permite que el IDE comprenda la estructura semántica del código, facilitando funciones avanzadas como autocompletado, refactorización y navegación entre símbolos.

Diferenciación clave. La principal distinción entre un IDE y un editor de texto avanzado radica en el nivel de integración. Mientras un editor como Visual Studio Code opera fundamentalmente a nivel de texto, un IDE como IntelliJ IDEA o Eclipse entiende tipos, clases y dependencias, ofreciendo capacidades de análisis estático y asistencia contextual. Esta diferencia es relevante para delimitar el alcance funcional de cada herramienta.

Aplicación en el SAS. En el Servicio Andaluz de Salud, los entornos integrados trascienden el ámbito local del desarrollador. El SAS trabaja dentro de un entorno corporativo integrado que combina herramientas de desarrollo individual con plataformas de gestión, documentación y automatización. Este ecosistema incluye JIRA para la planificación, Confluence para la conservación de normas y procesos, y Web Técnica para la canalización de solicitudes.

Plano local y corporativo. El SAS estructura sus entornos integrados en dos planos complementarios. El plano local se centra en el puesto de trabajo del técnico, donde se utiliza un IDE o editor enriquecido para edición, depuración y ejecución de código. El plano corporativo coordina este trabajo con repositorios, documentación, procesos de configuración y soporte, garantizando trazabilidad y automatización en el ciclo de vida del software.

Herramientas corporativas. El entorno integrado del SAS incluye herramientas como los Servicios CGES, que integran gestión TIC y la plataforma del Centro de Servicios Unificados (CSU). Además, la Junta de Andalucía aporta una infraestructura corporativa de integración continua/entrega continua (CI/CD) que soporta el desarrollo de sistemas críticos, como la Historia de Salud Digital de Andalucía (HSDA) o los sistemas de prescripción electrónica.

Metodologías y estándares. La Dirección General de Sistemas de Información Sanitaria (DGSIS) impulsa el uso de metodologías alineadas con los estándares de la administración pública, como Métrica v3. Estas metodologías se adaptan a las necesidades específicas del sector sanitario, asegurando que los entornos integrados respondan a requisitos de seguridad, interoperabilidad y escalabilidad.

Sistemas críticos. El SAS desarrolla y mantiene sistemas de información de alto impacto asistencial, como la Historia de Salud Digital de Andalucía (HSDAND), el sistema de cita previa Diraya o los sistemas de laboratorio (LIS) y radiología (RIS/PACS). Estos sistemas requieren entornos integrados robustos que garanticen confidencialidad, integridad y disponibilidad, especialmente en contextos donde la criticidad es máxima, como urgencias o prescripción electrónica.


🧩 Elementos esenciales

  • IDE (Entorno de Desarrollo Integrado): Aplicación que consolida herramientas para desarrollo, como editor, compilador, depurador y gestor de versiones, con comprensión semántica del código.
  • Editor de texto avanzado: Herramienta que opera a nivel sintáctico, sin integración profunda de funciones de desarrollo, aunque puede extenderse con plugins.
  • Plano local: Dimensión del entorno integrado centrada en el puesto de trabajo del desarrollador, con funciones de edición, depuración y ejecución.
  • Plano corporativo: Dimensión que coordina el desarrollo con repositorios, documentación, procesos y soporte, garantizando trazabilidad y automatización.
  • JIRA: Herramienta utilizada en el SAS para organizar la actividad planificada y el ciclo de vida del software.
  • Confluence: Plataforma del SAS para conservar normas, arquitectura, procesos y conocimiento corporativo.
  • Web Técnica: Canaliza solicitudes y se relaciona con sistemas de gestión de contenidos (CMS) para control de configuración.
  • Servicios CGES: Integran herramientas de gestión TIC y la plataforma del Centro de Servicios Unificados (CSU).
  • Infraestructura CI/CD: Plataforma corporativa de integración y entrega continua que soporta el desarrollo de sistemas críticos en el SAS.
  • Métrica v3: Metodología adaptada por el SAS para el análisis y diseño de sistemas, alineada con estándares de la administración pública.
  • Historia de Salud Digital de Andalucía (HSDA): Sistema crítico que ejemplifica la necesidad de entornos integrados robustos en el SAS.
  • Doble dimensión: Concepto clave que diferencia el entorno integrado de puesto del entorno integrado corporativo en el SAS.

🧠 Recuerda

  • Un IDE no es solo un editor de código, sino un conjunto integrado de herramientas para desarrollo.
  • La integración en un IDE implica comprensión semántica, no solo sintáctica.
  • En el SAS, los entornos integrados tienen una doble dimensión: local y corporativa.
  • El plano local se centra en el desarrollo individual, mientras el plano corporativo coordina procesos y documentación.
  • Herramientas como JIRA, Confluence y Web Técnica son clave en el entorno integrado del SAS.
  • La infraestructura CI/CD corporativa soporta el desarrollo de sistemas críticos en el SAS.
  • Métrica v3 es la metodología de referencia para el diseño de sistemas en el SAS.
  • Los sistemas como HSDA o Receta XXI requieren entornos integrados robustos y seguros.
  • La trazabilidad y automatización son objetivos centrales del entorno corporativo integrado.
  • La diferenciación entre IDE y editor avanzado es relevante para delimitar funcionalidades.

4. Gestión de la configuración del software: identificación de la configuración

🎯 Idea clave

  • La identificación de la configuración es la base de la gestión de la configuración del software (SCM) y permite controlar los elementos que componen un sistema.
  • Consiste en seleccionar, nombrar y organizar los elementos de configuración (Configuration Items, CI) para garantizar su trazabilidad y control.
  • Sin una identificación precisa, no es posible aplicar el control de cambios, registrar el estado del sistema ni realizar auditorías efectivas.
  • La configuración del software incluye no solo el código fuente, sino también documentación, scripts, dependencias y artefactos de despliegue.
  • Su finalidad es mantener la integridad del sistema, facilitar su evolución y asegurar la reproducibilidad de versiones.
  • En el SAS, esta disciplina es esencial para proyectos de desarrollo y mantenimiento de sistemas de información.

📚 Desarrollo

Definición de identificación de la configuración. La identificación de la configuración es la actividad inicial y fundamental de la gestión de la configuración del software (SCM). Consiste en determinar qué elementos deben considerarse objetos de control, asignarles identificadores únicos y organizarlos en estructuras coherentes, como líneas base o baselines. Esta identificación permite establecer un marco de referencia estable para el sistema, evitando ambigüedades en versiones, cambios o despliegues.

Elementos de la configuración. La configuración de un sistema software no se limita al código fuente. Incluye artefactos como especificaciones funcionales y técnicas, modelos y diagramas, scripts de base de datos, ficheros de parámetros, dependencias externas con sus versiones, artefactos de construcción y despliegue, pruebas automatizadas, documentación de operación y definiciones de infraestructura. Todos estos componentes condicionan el comportamiento, la construcción y el soporte del sistema, por lo que deben ser identificados y controlados.

Finalidad práctica. La identificación de la configuración persigue objetivos concretos: saber qué componentes integran una solución, distinguir estados sucesivos del software, relacionar artefactos técnicos con requisitos o incidencias, fijar líneas base para desarrollo y despliegue, y facilitar auditorías técnicas. En entornos como el SAS, donde múltiples equipos trabajan en sistemas críticos, esta identificación evita errores derivados de versiones inconsistentes y garantiza la trazabilidad de los cambios.

Proceso de identificación. La identificación implica seleccionar los elementos que conforman la configuración (CI), asignarles identificadores únicos y documentar sus características esenciales. Estos elementos se organizan en estructuras reconocibles, como líneas base, que representan estados estables del sistema en momentos clave (desarrollo, pruebas, producción). Sin esta estructura, el control de cambios y la gestión de versiones carecerían de fundamento técnico.

Relación con otras actividades de SCM. La identificación de la configuración es prerequisito para el resto de actividades de la SCM: control de cambios, registro de estado y auditorías. Por ejemplo, no es posible controlar un cambio si no se sabe qué elementos están afectados ni qué versión exacta se está modificando. En el SAS, esta disciplina se aplica en proyectos de desarrollo y mantenimiento, donde los pliegos técnicos exigen esquemas de versionado y repositorios documentados.

Delimitación conceptual. La identificación de la configuración no debe confundirse con el simple versionado de código ni con el uso de herramientas como GIT. Aunque estas herramientas son útiles, la identificación va más allá: define qué elementos están bajo control, cómo se nombran, cómo se relacionan y qué estados son reconocibles. Tampoco se reduce a asignar números de versión, sino que abarca la documentación de atributos y relaciones entre componentes.

Aplicación en el SAS. En el Servicio Andaluz de Salud, la gestión de la configuración es una disciplina transversal en proyectos de desarrollo de software. Los pliegos de prescripciones técnicas detallan exigencias sobre identificación, versionado y trazabilidad de los elementos de configuración. Los técnicos especialistas en informática participan activamente en la identificación de versiones desplegadas, la asociación de incidencias a CIs concretos y la operación de repositorios de configuración.

Importancia para el mantenimiento. Una identificación correcta facilita el mantenimiento del sistema al permitir reconstruir estados anteriores, auditar cambios y evitar errores por mezclas inconsistentes de versiones. En sistemas complejos, como los del SAS, donde la evolución es constante, esta disciplina asegura que los cambios se implementen sobre una base técnica sólida y documentada.


🧩 Elementos esenciales

  • Configuration Items (CI): Elementos seleccionados para estar bajo control de la gestión de configuración, como código fuente, documentación o scripts.
  • Identificadores únicos: Códigos o nombres asignados a cada CI para distinguirlos inequívocamente y evitar ambigüedades.
  • Líneas base (baselines): Estados estables y documentados del sistema en momentos clave (ej.: desarrollo, pruebas, producción).
  • Artefactos de configuración: Componentes que forman parte de la configuración, como especificaciones, modelos, dependencias o pruebas automatizadas.
  • Trazabilidad: Capacidad de relacionar cada CI con requisitos, cambios, incidencias o versiones específicas del sistema.
  • Documentación de atributos: Registro de características esenciales de cada CI, como versión, estado, relaciones o responsables.
  • Estructura de configuración: Organización jerárquica o relacional de los CIs para facilitar su gestión y control.
  • Repositorios de configuración: Herramientas o sistemas donde se almacenan y versionan los CIs, como GIT o sistemas corporativos del SAS.
  • Control de versiones: Proceso que permite gestionar cambios en los CIs y mantener un histórico de modificaciones.
  • Auditoría de configuración: Verificación de que los CIs cumplen con los requisitos establecidos y que su estado es coherente.
  • Integración con ITSM: En el SAS, los CIs en producción mantienen trazabilidad con su origen en desarrollo mediante herramientas de gestión de servicios TI.
  • Pliegos técnicos: Documentos del SAS que exigen esquemas de identificación y versionado en proyectos de desarrollo y mantenimiento.

🧠 Recuerda

  • La identificación de la configuración es la base de la gestión de la configuración del software (SCM).
  • No se limita al código fuente: incluye documentación, scripts, dependencias y artefactos de despliegue.
  • Permite saber qué componentes integran un sistema y en qué estado se encuentran.
  • Facilita la trazabilidad de cambios, incidencias y versiones.
  • Es esencial para auditorías técnicas y reconstrucción de estados anteriores.
  • En el SAS, es una disciplina aplicada en proyectos de desarrollo y mantenimiento de sistemas.
  • Los técnicos especialistas en informática trabajan con CIs, líneas base y repositorios de configuración.
  • No debe confundirse con el simple versionado de código ni con el uso de herramientas como GIT.
  • La identificación correcta evita errores por versiones inconsistentes o mezclas de artefactos.
  • Es prerequisito para el control de cambios, el registro de estado y las auditorías.

5. Control de versiones y cambios: GIT

🎯 Idea clave

  • Git es un sistema de control de versiones distribuido (DVCS) diseñado para gestionar la evolución de archivos y directorios, especialmente en desarrollo de software.
  • Permite registrar cambios con autoría, fecha y contexto, facilitando la recuperación de versiones anteriores y la coordinación de trabajo en equipo.
  • Su arquitectura distribuida elimina la dependencia de un servidor central, otorgando flexibilidad y resiliencia en entornos profesionales.
  • Integra funcionalidades avanzadas como gestión de ramas, fusión de cambios, resolución de conflictos y anotación de líneas de código.
  • Es la base tecnológica de plataformas colaborativas como GitHub, GitLab y Azure Repos, ampliamente utilizadas en la Administración pública.
  • El Esquema Nacional de Seguridad exige que el código fuente esté bajo control de versiones con acceso protegido.

📚 Desarrollo

Definición y origen. Git es un sistema de control de versiones distribuido (DVCS) creado por Linus Torvalds en 2005 para gestionar el desarrollo del kernel de Linux. Surgió como respuesta a la necesidad de un sistema eficiente, distribuido y capaz de manejar repositorios de gran tamaño, tras la retirada del acceso gratuito a BitKeeper. Su diseño prioriza el rendimiento, la integridad criptográfica del historial y la capacidad de trabajar sin conexión, características que lo han consolidado como estándar global en el desarrollo de software [2][6].

Modelo distribuido. A diferencia de los sistemas centralizados, Git opera bajo un modelo distribuido donde cada desarrollador posee una copia completa del repositorio, incluyendo todo su historial. Esto elimina la dependencia de un servidor central para operaciones básicas, como consultar el historial o realizar commits, y permite trabajar de forma autónoma. La sincronización con otros repositorios se realiza mediante operaciones como pull y push, que descargan y envían cambios, respectivamente. Este enfoque mejora la resiliencia y flexibilidad en entornos colaborativos [2][5].

Gestión de cambios. Git registra cada modificación mediante commits, que son instantáneas del estado del proyecto identificadas por un hash SHA-1 único. Estos commits incluyen metadatos como el autor, la fecha y un mensaje descriptivo, lo que facilita la trazabilidad de los cambios. La zona intermedia conocida como staging area permite preparar los cambios antes de confirmarlos, ofreciendo un control granular sobre qué modificaciones se incluyen en cada commit. Herramientas como git diff y git log permiten comparar estados y revisar el historial, respectivamente [3][6].

Ramas y flujos de trabajo. Git destaca por su capacidad para gestionar ramas (branches), que son punteros ligeros a commits específicos. Crear y fusionar ramas es una operación eficiente, lo que fomenta el desarrollo paralelo de funcionalidades, corrección de errores o experimentación. Los flujos de trabajo más comunes incluyen Git Flow, con ramas dedicadas a desarrollo, características, lanzamientos y correcciones; GitHub Flow, centrado en ramas de características y pull requests; y Trunk-Based Development, que prioriza la integración continua en la rama principal. La fusión de ramas puede realizarse mediante merge o rebase, aunque esta última reescribe el historial y debe usarse con precaución en ramas compartidas [3][6].

Integración con plataformas. Git es la tecnología subyacente de plataformas colaborativas como GitHub, GitLab, Bitbucket y Azure Repos, que amplían sus funcionalidades con herramientas para revisión de código, automatización de pruebas, despliegue continuo y gestión de proyectos. En el ámbito de la Administración pública española, GitLab es una de las plataformas de referencia, especialmente en entornos on-premise. Estas plataformas facilitan la colaboración mediante mecanismos como pull requests o merge requests, que permiten proponer, revisar y discutir cambios antes de su integración [1][3].

Herramientas avanzadas. Git incorpora funcionalidades avanzadas para gestionar escenarios complejos. El comando git blame muestra el autor y commit responsable de cada línea de un archivo, útil para auditorías o depuración. git cherry-pick permite aplicar commits específicos a otras ramas, mientras que git stash guarda temporalmente cambios no confirmados. Los hooks ejecutan scripts en eventos del repositorio, como pre-commit o post-merge, automatizando tareas como pruebas o notificaciones. Además, Git soporta la inclusión de repositorios dentro de otros mediante submodules o subtrees, y permite etiquetar commits estables con tags para marcar versiones de entrega [1][6].

Requisitos normativos. El Esquema Nacional de Seguridad (ENS), regulado por el Real Decreto 311/2022, exige que el código fuente de los sistemas de información de la Administración pública esté bajo control de versiones con acceso protegido. Esta medida garantiza la trazabilidad, la integridad y la disponibilidad del código, alineándose con los principios de gestión de la configuración del software. Git cumple con este requisito al proporcionar un historial completo, identificación de autores y mecanismos de control de acceso, siendo una herramienta clave en el cumplimiento de las políticas de seguridad TIC del Servicio Andaluz de Salud [3][7].

🧩 Elementos esenciales

  • Git: Sistema de control de versiones distribuido (DVCS) creado por Linus Torvalds en 2005 para gestionar el desarrollo del kernel de Linux.
  • DVCS: Modelo distribuido donde cada desarrollador tiene una copia completa del repositorio con todo su historial, eliminando la dependencia de un servidor central.
  • Commit: Instantánea del estado del proyecto, identificada por un hash SHA-1 único, que registra cambios con autor, fecha y mensaje.
  • Branch: Puntero ligero a un commit que permite desarrollar funcionalidades o correcciones de forma aislada y paralela.
  • HEAD: Puntero que indica el commit actual en el working directory, determinando el estado del repositorio local.
  • Staging area: Zona intermedia entre el working directory y el repositorio donde se preparan los cambios antes de confirmarlos con git add.
  • Merge: Operación que integra cambios de una rama en otra, pudiendo generar conflictos que deben resolverse manualmente.
  • Rebase: Reescribe el historial moviendo commits a otra base, produciendo un historial lineal pero evitando su uso en ramas compartidas.
  • Tag: Referencia estable a un commit que marca versiones de entrega o hitos importantes en el desarrollo.
  • Pull Request/Merge Request: Mecanismo de propuesta de integración de cambios con revisión por pares, típico en plataformas como GitHub o GitLab.
  • Git Flow: Flujo de trabajo con ramas main, develop, feature, release y hotfix, adecuado para proyectos con lanzamientos periódicos.
  • GitHub Flow: Flujo simplificado con rama main y ramas de características, orientado a integración continua y despliegue continuo (CD).
  • Trunk-Based Development: Estrategia donde todo el desarrollo se realiza en la rama principal, usando feature flags para gestionar funcionalidades incompletas.
  • .gitignore: Archivo que lista patrones de ficheros o directorios que Git debe ignorar, como archivos temporales o de configuración local.
  • ENS MP.SW.1: Medida del Esquema Nacional de Seguridad que exige el control de versiones del código fuente con acceso protegido.

🧠 Recuerda

  • Git es un sistema distribuido, no centralizado: cada copia local contiene todo el historial del repositorio.
  • Los commits son inmutables y se identifican por un hash SHA-1, garantizando la integridad del historial.
  • Las ramas en Git son baratas y rápidas de crear, lo que fomenta el desarrollo paralelo y la experimentación.
  • El staging area permite preparar commits de forma granular, añadiendo solo los cambios deseados.
  • merge y rebase son dos formas de integrar cambios, pero rebase reescribe el historial y debe usarse con precaución.
  • GitLab es la plataforma de referencia en la Administración pública española, especialmente en entornos on-premise.
  • El Esquema Nacional de Seguridad exige que el código fuente esté bajo control de versiones con acceso protegido.
  • git blame es útil para identificar el autor y commit responsable de cada línea de código.
  • Los hooks permiten automatizar tareas como pruebas o notificaciones en eventos del repositorio.
  • Git no es lo mismo que GitHub o GitLab: es el sistema de control de versiones subyacente que estas plataformas utilizan.

Prueba la demo si quieres ver el resto

Has visto un tema abierto completo. En la demo puedes comprobar cómo encajan el temario, las preguntas justificadas y los simulacros dentro de OposAs.

Qué vas a probar

Una demo pensada para decidir con criterio

Temario, test y simulacro conectados

La idea no es solo leer un tema: es estudiar con continuidad y comprobar cómo se relaciona con el resto de herramientas.

Preguntas justificadas

Verás explicaciones de la correcta y de las incorrectas para estudiar con más criterio, no solo para memorizar.

Acceso rápido

Con tu nombre y tu email, eliges categoría y te enviamos el acceso por correo sin compromiso.

Gratis Sin compromiso Acceso por email

Solicita ya tu acceso Demo

Sólo tu email, tu nombre y apellidos (si quieres), elige categoría y prueba antes de decidir. Es gratis.

Acceso solicitado

Revisa tu correo y también spam.

En tienes el enlace para terminar el autoregistro.

Ábrelo antes de 1 hora.

OposAs
Detrás de OposAs
Serafín revisando discos, creador de OposAs

Fuera del código también hay música, discos y radio. La misma forma de hacer las cosas: con alma, pasión y criterio.

Construí OposAs para practicar test y entender cada fallo sin pelearme con "tochos de textos infinitos".

Preparando Técnico Especialista en Informática del SAS, echaba en falta una forma más clara y atractiva de estudiar: hacer test, corregirlos bien y aprender de verdad con cada justificación.

Practicar test, aprender por qué la correcta lo es y, sobre todo, por qué las incorrectas no lo son.

OposAs está pensado para practicar test y aprender mientras corriges, sin tragarte textos interminables antes de empezar. Cuando fallas, la justificación te ayuda a entender la correcta y, sobre todo, las incorrectas: ahí suele estar el aprendizaje.

No hay una empresa detrás. Hay una persona que construyó desde cero una herramienta que “me valió para aprobar las oposiciones de TEI”, donde estudiar no se convierta en algo “pesado” sino “llevadero”.

La música forma parte de mi manera de hacer las cosas. También llevo proyectos personales como salalondon.es y jazzchill.es. Música 24/7 para cuando y donde quieras 🎶❤️.

salalondon.es jazzchill.es

De opositor a opositor, Serafín.