Especialidad de Desarrollo de Software

Actividades Profesionales

Requisitos

  1. Tener la especialidad de Computación V.

    Respuesta: Computación V enseña fundamentos avanzados (lógica de programación, estructuras de datos, algoritmos básicos) que son prerrequisitos para Desarrollo de Software, especialidad enfocada en la creación de programas reales. Sin esa base, conceptos como variables, bucles, funciones y herramientas de desarrollo quedarían sin contexto. — La progresión pedagógica respeta una complejidad creciente. Computación I-V cubre desde los fundamentos hasta la programación intermedia. Desarrollo de Software exige IDE, control de versiones (git), depuración y ciclo de vida de software. Sin dominio previo de lógica y algoritmos, el Conquistador se trabaría. En camporis tech, los talleres escalonados siguen esta lógica.

  2. Citar qué es un software y cuáles son sus funcionalidades para el control y la manipulación de la información.

    Respuesta: El software es el conjunto de instrucciones (programas) que le dicen a la computadora qué hacer. Sus funcionalidades incluyen: almacenar información en bases de datos, procesar datos (cálculos, transformaciones), presentar resultados (interfaz), comunicar entre sistemas (redes/API) y automatizar tareas repetitivas con reglas lógicas. — El software se diferencia del hardware (componentes físicos). Categorías: básico (sistemas operativos), aplicaciones (Word, Excel, juegos), embebido (en electrodomésticos). Los lenguajes (Python, JavaScript, Java) sirven para crearlos. SaaS (Software as a Service) es un modelo moderno basado en la nube. Sin software, el hardware es inerte: es lo que da utilidad a la computadora.

  3. Definir lenguaje de programación y descubrir la diferencia entre programación de alto y bajo nivel.

    Respuesta: Un lenguaje de programación es el idioma usado para escribir software. El bajo nivel (Assembly, código máquina) está cerca del hardware, es rápido pero difícil. El alto nivel (Python, Java, JavaScript) está cerca del humano, es fácil de leer y escribir, y es traducido por el compilador o intérprete para la máquina. — El bajo nivel tiene instrucciones directas al procesador (MOV, ADD, JMP). El alto nivel abstrae (print, if, for). El compilador (C, Rust) traduce todo de una vez; el intérprete (Python) ejecuta línea por línea. C se considera de nivel medio (cercano al hardware pero portable). JavaScript domina la web; Python lidera la ciencia de datos; Java es robusto en las empresas.

  4. Definir los siguientes tipos de estudios de programación:
    • Programación estructurada
    • Programación funcional
    • Programación orientada a objetos
    • Programación orientada a eventos

    Respuesta: 1) Programación estructurada: paradigma que organiza el código en tres estructuras básicas de control — secuencia, decisión (condiciones, if/else) y repetición (bucles) — evitando saltos desordenados (goto). Favorece la claridad y el mantenimiento. Ejemplos de lenguajes: C y Pascal. 2) Programación funcional: paradigma que trata las funciones como ciudadanas de primera clase (pueden pasarse como argumentos y devolverse), enfatiza las funciones puras sin efectos secundarios y la inmutabilidad de los datos. Ejemplos: Haskell y Lisp. 3) Programación orientada a objetos: paradigma que modela el problema mediante objetos que reúnen datos (atributos) y comportamientos (métodos), usando conceptos como clases, herencia, encapsulamiento y polimorfismo. Ejemplos: Java y Python. 4) Programación orientada a eventos: paradigma en que el flujo del programa está determinado por eventos — acciones del usuario (clic, tecla presionada, movimiento del ratón) o mensajes del sistema — gestionados por funciones llamadas "manejadores de eventos" (event handlers). Ejemplo típico: JavaScript en páginas web. — Cada paradigma tiene su nicho ideal. La estructurada es la base histórica. La funcional crece en popularidad (Scala, Elixir). La OOP domina el software corporativo. Los eventos rigen las interfaces gráficas y la web. Los lenguajes modernos (Python, JavaScript) admiten múltiples paradigmas. Conocer cada uno amplía las herramientas mentales del programador para resolver problemas distintos.

  5. Definir los términos siguientes:
    • Código binario
    • Ámbito
    • Diagrama de flujo
    • Programación
    • Base de datos
    • Compilación

    Respuesta: 1) Código binario: forma más básica de representación de datos e instrucciones en la computadora, usando solo dos dígitos, 0 y 1 (bits). Es el lenguaje de máquina que el procesador ejecuta directamente. 2) Ámbito (scope): alcance o región del programa en que una variable (o identificador) es visible y puede usarse. Puede ser global (accesible en todo el programa) o local (accesible solo dentro de un bloque o función). 3) Diagrama de flujo: representación gráfica de la lógica o del flujo de un programa o proceso, usando símbolos estandarizados (rectángulos para acciones, rombos para decisiones, flechas para el flujo) que muestran la secuencia de pasos. 4) Programación: acto de escribir, en un lenguaje que la computadora entienda, el conjunto de instrucciones (código) que define cómo el programa debe resolver un problema o ejecutar una tarea. 5) Base de datos: sistema o conjunto organizado para almacenar, relacionar y recuperar información de forma estructurada, generalmente gestionado por un SGBD (Sistema de Gestión de Bases de Datos), como MySQL o PostgreSQL. 6) Compilación: proceso de traducir el código fuente, escrito en un lenguaje de programación legible por el ser humano, a código de máquina o ejecutable que la computadora puede correr. Lo realiza un programa llamado compilador. — El binario es la base del hardware (cada bit es 0/1). El ámbito (scope) evita conflictos entre variables (local vs global). El diagrama de flujo usa símbolos estandarizados (rombo=decisión, rectángulo=proceso). SQL gestiona bases relacionales. La compilación genera archivos .exe o .o. NoSQL (MongoDB, Redis) es una alternativa moderna. Conocer los términos facilita la comunicación técnica.

  6. Conocer cuáles son los principales pasos para crear un software.

    Respuesta: 1) Levantamiento de requisitos (entender el problema). 2) Análisis y modelado (planificar la arquitectura). 3) Codificación (escribir el código). 4) Pruebas (validar el funcionamiento). 5) Implantación (publicar para su uso). 6) Mantenimiento (corregir errores y evolucionar). Estos pasos forman el ciclo de vida del desarrollo de software. — Los modelos de ciclo de vida incluyen cascada (waterfall), iterativo, ágil (Scrum, Kanban). Cada paso genera documentación. Las pruebas incluyen unitarias (TDD), de integración y de usuario. El despliegue usa CI/CD (Git, Jenkins, Docker). El mantenimiento representa el 60-70 % del costo total. En camporis tech, los miniproyectos siguen estos pasos para una experiencia práctica real.

  7. Describir el uso de UML para las fases de desarrollo de un software.

    Respuesta: UML (Unified Modeling Language) es el lenguaje visual estándar para modelar software. Usa diagramas (de caso de uso, de clases, de secuencia, de actividades) para documentar requisitos, diseñar la arquitectura y visualizar el comportamiento. Cada fase del desarrollo tiene diagramas específicos que facilitan la comunicación entre programadores y stakeholders. — UML fue estandarizado por la OMG en los años 1990. Tiene 14 tipos de diagramas: estructurales (de clases, de componentes) y de comportamiento (de secuencia, de actividades). Herramientas como StarUML, draw.io y PlantUML facilitan su creación. El análisis usa el caso de uso; el diseño usa las clases; la integración usa la secuencia. La documentación UML es viva y evoluciona con el proyecto.

  8. ¿Qué técnicas se aplican mejor en el desarrollo Ágil? Presentar un estudio de caso sobre esa técnica.

    Respuesta: Las técnicas más aplicadas en el desarrollo Ágil son: Scrum (ciclos cortos llamados sprints, con los roles de Product Owner, Scrum Master y Equipo de Desarrollo, reuniones diarias y entregas incrementales); Kanban (tablero visual con columnas Por Hacer / Haciendo / Hecho y límite de trabajo en curso); y XP / Extreme Programming (TDD, programación en pareja, integración continua y releases frecuentes). Estudio de caso: Spotify adaptó Scrum creando Squads (equipos pequeños y autónomos), Tribes, Chapters y Guilds, lo que permite entregar funcionalidades con rapidez manteniendo la autonomía de los equipos; otro ejemplo es el uso de Scrum por parte del equipo que redujo plazos y aumentó la calidad entregando en sprints quincenales. La parte de 'presentar un estudio de caso' es la actividad práctica asociada. — El Manifiesto Ágil (2001) priorizó los individuos sobre los procesos. Scrum tiene ceremonias: planning, daily, review, retrospective. Kanban surgió en Toyota. XP enfatiza la calidad técnica. Spotify, Netflix y Magazine Luiza usan Ágil. Los sprints duran de 1 a 4 semanas. Las user stories describen los requisitos desde el punto de vista del usuario final.

  9. ¿En qué proyectos de desarrollo es posible aplicar el RUP y cuáles son sus fases?

    Respuesta: El RUP (Rational Unified Process) se aplica en proyectos de mediano y gran porte, con requisitos complejos, equipos grandes y necesidad de documentación detallada y trazabilidad — por ejemplo, sistemas bancarios, ERP, sistemas gubernamentales y software crítico. Sus cuatro fases son: 1) Concepción/Iniciación (definir alcance, visión y viabilidad), 2) Elaboración (definir la arquitectura y mitigar los principales riesgos), 3) Construcción (codificar y probar la mayor parte del sistema) y 4) Transición (entregar el producto al usuario, capacitar y ajustar). Cada fase se desarrolla en iteraciones. — RUP fue creado por Rational (IBM) basándose en UML. Es iterativo e incremental, con flujos de trabajo (modelado de negocio, requisitos, análisis, implementación, pruebas). Más pesado que Scrum, pero garantiza rigor. Adecuado para proyectos con regulación (salud, finanzas, gobierno). Hoy está en desuso parcial, sustituido por métodos ágiles en proyectos menores y más dinámicos.