Imperative Software Developer (ISD)
Programador de lenguajes imperativos
Definición
Profesional que realiza, de manera individual o integrado en un equipo de trabajo, las tareas de implementación de software, bajo el paradigma imperativo, de todos los módulos de aplicaciones básicas o de algunos módulos de aplicaciones complejas según un proceso de ingeniería del software
Competencias desarrolladas
- Capacidad de diseño básico e implementación de aplicaciones informáticas mediante técnicas de desarrollo, integración y reutilización del paradigma imperativo
- Capacidad para proponer y evaluar diferentes alternativas de programación imperativa para resolver un problema concreto
- Capacidad para evaluar de manera básica las posibilidades funcionales de las herramientas de programación imperativa, los sistemas operativos, bases de datos y hardware para la producción y explotación del software desarrollado
Actividades realizadas
- Usar los conceptos, sintaxis y semántica de la notación algorítmica
- Diseñar e implementar de forma precisa el comportamiento de programas que resuelven problemas concretos especificados de manera formal mediante la aplicación de conceptos, métodos y técnicas imperativas de programación
- Aplicar esquemas algorítmicos y diseño descendente como técnicas eficaces para afrontar la resolución de problemas complejos
- Usar métodos y herramientas (IDE) para escribir, compilar, montar y probar un programa adecuadamente y de manera rigurosa para dar cumplimiento a la calidad especificada
- Utilizar con fluidez la sintaxis, semántica y funcionalidades de varios lenguajes de programación imperativa
- Escribir y documentar adecuadamente, según las buenas prácticas y especificaciones establecidas, el código fuente producido
- Analizar código fuente fiable para reutilizarlo en las implementaciones propias
- Construir pruebas unitarias y usar herramientas de depuración para los módulos implementados para asegurar la calidad de los programas producidos y su adecuación a las especificaciones establecidas
- Evaluar y comparar los métodos, grados de complejidad y eficacia de los diferentes algoritmos que pueden resolver un mismo problema especificado, así como la idoneidad de ejecución compilada o interpretada
- Interpretar correctamente la estructura modular y de datos de cualquier aplicación, así como los algoritmos y programas escritos por terceros, sobre todo los componentes de bibliotecas más aceptados y utilizados