====== Construcción y mantenimiento de Software ====== Este es un espacio para el registro del conocimiento y la información relacionada con el Desarrollo de software dentro del Departamento. ===== Objetivo ===== El objetivo de éste articulo es socializar el ciclo de construcción de software que deberán seguir funcionarios y contratistas del Departamento Administrativo del Servicio Civil Distrital. ===== Glosario ===== ^ Ambiente de Desarrollo | El entorno de desarrollo va desde el comienzo del ciclo de vida del software hasta la obtención de una versión preliminar que será la que pasa al entorno de pruebas | ^ Ambiente de Producción | Es la versión definitiva de la aplicación. Los usuarios finales tienen acceso a la aplicación implantada en este entorno, el cual contiene los datos reales. | ^ Ambiente de Prueba | Es un ambiente previo a la producción. Describe la ubicación en la que se ven previamente los cambios y desarrollos de software y son ajustados antes de poner en producción o realizar despliegue. | ^ Área Funcional | Es en la que se desarrollan las actividades objeto de negocio de la empresa, ya sea la prestación de un servicio o la elaboración de un producto | ^ Desarrollo | Construir (Codificar) de manera eficaz los requisitos (requerimientos) del cliente apoyándose en documentación detallada. | ^ Despliegue | Liberación de la aplicación al ambiente de producción. | ^ Diseño Funcional | Interpretación grafica que permite dar una visión clara de las funcionalidades de un producto. | ^ Diseño Técnico | Refiere a los aspectos de carácter estético y de diseño de: interfaces graficas del usuario, claridad, originalidad, usabilidad. | ^ Diseño y desarrollo DyD | Conjunto de procesos que transforman los requisitos para un objeto en requisitos más detallados para ese objeto. | ^ Documento | Medio para soportar la información. | ^ Líder Funcional | Conoce el negocio y los procesos del cliente para entender y descubrir sus necesidades de información y con base a los mismos, definir los requerimientos y funcionalidades del software que les dé solución, diseñando y documentando en detalle dichos requisitos funcionales. ^ OTICS | Oficina de Tecnologías de la Información y las Comunicaciones. | ^ Producto | Salida de una organización que puede producirse sin que se lleve a cabo ninguna transacción entre la organización y el cliente. (© ISO 2015) | ^ Prueba | Proceso encargado de la ejecución de un programa con el objetivo de detectar errores. | ^ Prueba Unitaria | Pruebas realizadas por el desarrollador a pequeñas cantidades del código. | ^ QA | Quality Assurance, es decir al aseguramiento de la calidad. Esto puede ser aplicado a productos y servicios que sean manufacturados o prestados. | ^ Requerimiento | Necesidad documentada sobre el contenido, forma o funcionalidad de un producto o servicio. | ^ Revisión | Determinación de la conveniencia, adecuación o eficacia de un objeto para lograr unos objetivos establecidos | ^ Salida | Resultado de un proceso. (© ISO 2015) | ^ Servicio | Salida de una organización con al menos una actividad, necesariamente llevada a cabo entre la organización y el cliente. (© ISO 2015) | ^ Software | Conjunto de programas y rutinas que permiten a la computadora realizar determinadas tareas. | ^ Validación | Validación Confirmación mediante la aportación de evidencia objetiva de que se han cumplido los requisitos para una utilización o aplicación específica prevista. (© ISO 2015) | ^ Verificación | Confirmación mediante la aportación de evidencia objetiva de que se han cumplido los requisitos especificados. (© ISO 2015) | ^ Versionamiento | El número que permite saber la cantidad de documentación sobre un tema. | ===== Planificación de diseño y desarrollo ===== {{:wiki:planeacio_ndyd.png|}} ===== Políticas operacionales ===== - Ítem de lista ordenadaDurante la ejecución de este procedimiento, se debe aplicar la Política General de Gestión de TI - Toda solicitud de desarrollo o modificación de software debe ser registrada a través de la herramienta de mesa de servicio. - Toda adquisición, modificación o ajuste de desarrollo de software o de los aplicativos que hay en el DASCD, debe ser tramitada inicialmente en la OTIC con un requerimiento a través de la mesa de servicios OTIC, para definir la viabilidad del proyecto. - El Jefe de OTIC valida la viabilidad de los requerimientos de acuerdo con el alcance, recursos y tiempo de la solución. - El software debe poder ser implementado sobre la plataforma tecnológica que tiene el Departamento Administrativo del Servicio Civil Distrital - El software a desarrollar debe ofrecer una solución o cubrir una necesidad a los procesos misionales, de apoyo, estratégicos y de evaluación de la Entidad - Los despliegues realizados por el desarrollador siempre deben pasar por un proceso de pruebas (ambiente de pruebas) realizado por el analista de pruebas y QA para validar si cumple o no con los requerimientos acordados y de esta manera ser liberado al ambiente de pre-producción. - Los despliegues en pre-producción deben pasar por un proceso de pruebas de certificación por parte del líder funcional quien debe validar si el despliegue cumple con los requerimientos acordados. - La aprobación del despliegue en pre-producción debe dar lugar al despliegue en producción. - Todo desarrollo probado y aprobado debe contar con documentación explicativa y diagrama de flujo. - Cuando se hace una solicitud o requerimiento de desarrollo o modificación de software, se debe establecer una fecha de entrega pactada con el solicitante, dependiendo de la complejidad del software a desarrollar. Sin embargo, esta fecha puede extenderse por motivos propios de la ejecución del software, siempre y cuando se mantenga informado al solicitante. - Se debe aplicar la política general de seguridad de la información y el Manual de Seguridad digital - Con el fin de asegurar que el diseño y desarrollo en la construcción y mantenimiento de Software se realice acorde con las necesidades de los clientes y/o partes interesadas pertinentes, se ha homologado la implementación y mantenimiento de un proceso de Diseño y Desarrollo con el presente procedimiento. La siguiente figura representa de manera esquemática la relación entre las distintas etapas del control de diseño y desarrollo. - La verificación del diseño y desarrollo puede ser una operación progresiva que se lleve a cabo durante un cierto número de etapas, según la complejidad del software. En todos los casos la verificación de las Especificaciones Técnicas y otra documentación del diseño y desarrollo, incluirá la verificación del cumplimiento de los requisitos (elementos de entrada para el Diseño y Desarrollo). El registro de la verificación del diseño corresponde a las actividades 1-5 del presente procedimiento y, los registros serán. Orden de servicio en la Mesa de Servicios OTIC - La validación deberá incluir la implementación del Software. En este caso, se hará un seguimiento del grado de cumplimiento de la solicitud para un desarrollo nuevo o mejora a un desarrollo existente, lo cual quedará registrado de acuerdo a lo definido en las actividades 19-21 y, los registros serán: Registro en la Herramienta de seguimiento, Correo electrónico. - Si en el transcurso del diseño y desarrollo del Software se considera apropiado realizar cambios, estos deberán ser documentados según lo estipulado en las actividades 11-28 por los responsables designados, los registros del control de cambios del Diseño y Desarrollo serán: Orden de servicio en Mesa de Servicios OTIC, Registro de proyecto en la Herramienta de seguimiento, Correo electrónico, A-TIC-FM-014, Herramienta de seguimiento TAIGA - Repositorio de código fuente, A-TIC-FM-014 Acta de entrega de desarrollo, Herramienta de seguimiento TAIGA. - Con los resultados en la Herramienta de seguimiento TAIGA, se podrá concluir la validación del diseño y desarrollo del Software, registrando las conclusiones y acciones a tomar (de ser necesario) actividad 14 y/o 28. ===== Flujo de actividades ===== {{:wiki:procedimientoconstruccionsoftware.png|}} ===== Documentación adicional ===== * [[https://docs.google.com/document/d/1-c1z68hp0fKlqTBcD7OBYEVBDXDoFPxB/edit?usp=sharing&ouid=102778341941056329276&rtpof=true&sd=true|Documento de construcción y mantinimiento de software V7 A-TIC-PR-005]] * [[https://drive.google.com/file/d/1gVvxB5Y8dxq_XJt9kUxaLsNfbFSRwB9Q/view?usp=sharing|Estándares de desarrollo de software]] * [[https://drive.google.com/file/d/1tVqyKgHUNMVRaJd9ACsUwn_IwFaerv4R/view?usp=sharing|Protocolo de despliegues en producción]] * [[https://drive.google.com/file/d/1slgO2ht5fXYkThwMwBIoIik1k47FkTk2/view?usp=sharing|Protocolo de restauración de base de datos]] * [[https://docs.google.com/document/d/1YCP497bpenaQqCqDi_db7vyEGb62Zr8Z/edit?usp=sharing&ouid=102778341941056329276&rtpof=true&sd=true|Formato de viabilidad de requerimientos]] * [[https://docs.google.com/document/d/1nnlRmgvy6-USlzvuzY-GBTm0mzRM3cIrqDaubbzFMII/edit?usp=sharing|Formato de despliegues en producción]]