Las funciones y sub-funciones del perfil profesional de este técnico superior son las siguientes:
I. Averiguar las necesidades de información de los usuarios y otras partes interesadas en el sistema, identificar los procesos y sus actividades, su cultura organizacional, los diferentes roles y responsabilidades. Modelizar las reglas de negocio y de proceso y consensuarlo con las partes interesadas, para definir el alcance del producto software a desarrollar, estimar su tamaño y la documentación de los requerimientos en una especificación, para su posterior negociación, verificación y validación de los mismos con los interesados.
Esto comprende:
Relevar requerimientos de los usuarios. Interpretar el proceso del negocio.
Definir el alcance funcional del software y estimar su tamaño. Elaborar la especificación de requerimientos de software.
Verificar y validar los requisitos especificados.
II. Modelizar artefactos de software a partir de especificaciones, refinándolas en caso necesario, para determinar el diseño detallado y las características de una solución que las satisfaga en el contexto de la arquitectura del sistema de software del cual van a formar parte.
Esto comprende:
Interpretar críticamente las especificaciones recibidas.
Interpretar la arquitectura del sistema en el cual se inserta la asignación.
Aplicar patrones de diseño si corresponde.
Diseñar la solución.
Representar el diseño. Verificar el diseño.
III. Construir los artefactos de software que implementen el diseño realizado, aplicando patrones o reutilizando códigos en la medida en que resulte posible. Al hacer esto, y en función de lo acordado para el proyecto, optimizará el desempeño de lo que construya, aplicando buenas prácticas de programación y documentación.
Esto comprende:
Reutilizar elementos ya existentes. Redactar código.
Optimizar el código.
Controlar cambios y versiones. Utilizar ambientes de desarrollo.
IV. Verificar los artefactos de software construidos considerando las necesidades de cobertura de la prueba. Para ello diseña los casos considerando el entorno de pruebas y ejecuta pruebas unitarias, así como registra los datos y resultados. De ser necesario, realiza acciones correctivas sobre el código hasta satisfacerse de que cumpla con las especificaciones recibidas.
Esto comprende:
Considerar las necesidades de cobertura de la prueba. Diseñar los casos de prueba.
Preparar el entorno de pruebas. Realizar pruebas unitarias.
Registrar casos de prueba, datos y resultados de pruebas y acciones correctivas.
V. Revisar el código de artefactos de software para resolver defectos o mejorarlo. Este código puede ser propio o ajeno. Esta actividad comprende revisiones cruzadas con otros integrantes del proyecto para asegurar la calidad del producto. Algunas asignaciones requieren una revisión de código ya existente para poder ampliar funcionalidades o refactorizarlo.
Esto comprende:
Interpretar código.
Diagnosticar defectos.
Depurar defectos.
VI. Documentar sus actividades y los resultados obtenidos aportando elementos para asegurar la calidad de los proyectos de acuerdo a normas y estándares establecidos. Esto comprende:
Registrar actividades realizadas.
Documentar todos los productos de su labor.
VII. Gestionar sus actividades dentro del equipo de trabajo del proyecto. Ello comprende la planificación (organización y control) de las tareas a realizar, el oportuno reporte de avances y dificultades y el registro y reflexión sobre lo realizado para capitalizar experiencias y estimar métricas aplicables a su actividad.
Esto comprende:
Obtener métricas a partir de los registros de actividades. Reportar avances y dificultades.
Planificar sus actividades. Controlar sus actividades.
VIII. Generar soporte documental para el usuario, implantar la solución de software en la organización, administrar los requerimientos y las solicitudes de cambio.
Esto comprende:
Producir guías, manuales o procedimientos que asistan a los usuarios. Capacitar en la utilización del software.
Gestionar las solicitudes de cambio de requerimientos, analizar el impacto de los cambios y registrar las decisiones que se tomen acerca de introducir un cambio, diferirlo para otra versión o descartarlo.