AP - 049 - Desarrollo de software

AP DESARROLLO DE SOFTWARE
049 Nivel: 3 Año: 2012 División Sudamericana

1. Tener la especialidad Computación V – Especializado.

2. Decir qué es software y cuáles son sus funciones en el control y manipulación de la información.

El software es el conjunto de programas, datos y procedimientos que permiten el funcionamiento de una computadora, distinguiéndose del hardware que es la parte física.

Funciones en el control y manipulación de la información

  • Procesamiento de Datos: Ejecuta operaciones y cálculos para transformar datos en información útil.
  • Almacenamiento y Recuperación: Organiza y guarda datos, facilitando su acceso y modificación cuando sea necesario.
  • Comunicación: Permite la interacción entre el usuario y el sistema, así como la conexión con otros dispositivos y redes.
  • Automatización de Tareas: Ejecuta procesos de forma automatizada, mejorando la eficiencia y reduciendo errores humanos.

3. Definir qué es lenguaje de programación y describir la diferencia entre programación de alto y bajo nivel.

Un lenguaje de programación es un sistema formal de notación que permite a los desarrolladores expresar algoritmos y estructuras de datos para que sean entendidos y ejecutados por una computadora. Estos lenguajes traducen las instrucciones escritas en una sintaxis comprensible para los humanos a un formato que la máquina puede procesar.

Diferencias entre programación de alto y bajo Nivel

  • Alto Nivel:

    Los lenguajes de alto nivel están diseñados para ser más legibles y comprensibles para los programadores. Se enfocan en abstraer detalles complejos del hardware, facilitando la escritura, mantenimiento y portabilidad del código. Ejemplos de estos lenguajes son Python, Java y C#.

  • Bajo Nivel:

    Los lenguajes de bajo nivel están más cercanos a la estructura y funcionamiento del hardware. Permiten un control detallado sobre los recursos de la computadora, pero a costa de una mayor complejidad en la programación. El lenguaje ensamblador y el código máquina son ejemplos de lenguajes de bajo nivel.

4. Definir los siguientes tipos de estudios de programación:

  1. Programación Estructurada
  2. La programación estructurada es un paradigma que organiza el código mediante el uso de estructuras de control (secuencias, condicionales y bucles) y subrutinas o funciones. Su objetivo es facilitar la legibilidad, el mantenimiento y la modularidad del software, evitando el uso excesivo de saltos incondicionales (como el "goto").

  3. Programación Funcional
  4. La programación funcional se basa en el uso de funciones puras que evitan estados y datos mutables. Se centra en la transformación de datos mediante la aplicación y composición de funciones, lo que favorece un código más predecible y facilita la concurrencia.

  5. Programación Orientada a Objetivos
  6. También conocida como programación orientada a objetos, este paradigma organiza el desarrollo del software en torno a "objetos" que combinan datos y comportamientos. Permite la reutilización de código y la abstracción a través de conceptos como la encapsulación, herencia y polimorfismo.

  7. Programación Orientada a Eventos
  8. En la programación orientada a eventos, el flujo del programa se determina en función de eventos o acciones (como clics del usuario, entradas de teclado o señales del sistema). Este enfoque es especialmente útil en el desarrollo de interfaces gráficas de usuario y aplicaciones interactivas.

5. Definir los siguientes términos:

  1. Código binario: Es el sistema de representación de datos e instrucciones en una computadora, utilizando únicamente dos dígitos: 0 y 1. Cada bit es una unidad mínima de información.
  2. Alcance: En programación, el alcance se refiere a la región del código donde una variable o identificador es accesible y se puede utilizar, determinando su visibilidad y duración.
  3. Diagrama de flujo: Es una representación gráfica que muestra la secuencia de pasos y decisiones en un proceso o algoritmo, utilizando símbolos específicos para facilitar la comprensión de la lógica.
  4. Programación: Es el proceso de diseñar, escribir, probar y mantener instrucciones o algoritmos que permiten a una computadora realizar tareas específicas.
  5. Base de datos: Es una colección organizada de datos almacenados de forma estructurada, que facilita su acceso, manipulación, actualización y administración.
  6. Compilación: Es el proceso mediante el cual se traduce el código fuente escrito en un lenguaje de alto nivel a un lenguaje de bajo nivel (código máquina) que la computadora puede ejecutar.

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

  1. Análisis de Requisitos: Identificar y documentar las necesidades y expectativas de los usuarios y stakeholders.
  2. Diseño: Planificar la estructura y arquitectura del software, definiendo componentes, interfaces y tecnologías a utilizar.
  3. Desarrollo (Codificación): Escribir el código fuente basado en el diseño, utilizando un lenguaje de programación adecuado.
  4. Pruebas (Testing): Verificar que el software funcione correctamente, identificando y corrigiendo errores o fallas.
  5. Implementación (Despliegue): Instalar y poner en funcionamiento el software en el entorno de producción.
  6. Mantenimiento: Actualizar y mejorar el software a lo largo del tiempo, corrigiendo errores y adaptándose a nuevos requerimientos.

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

El UML (Unified Modeling Language) es un lenguaje de modelado estandarizado que se utiliza para visualizar, especificar, construir y documentar los distintos aspectos de un sistema de software. Su aplicación abarca varias fases del desarrollo:

  • Análisis: Se utilizan diagramas de casos de uso para identificar y representar las interacciones entre el sistema y sus usuarios o actores, ayudando a comprender los requerimientos funcionales.
  • Diseño: A través de diagramas de clases, secuencia, colaboración y otros, UML permite estructurar la arquitectura del sistema, definir relaciones entre componentes y detallar el comportamiento interno.
  • Implementación: Los modelos UML actúan como guía para la codificación, facilitando la traducción de los diseños a código y asegurando que la estructura conceptual se mantenga en la implementación.
  • Pruebas y Mantenimiento: La documentación visual con UML ayuda a entender el sistema durante las pruebas y facilita futuras modificaciones, permitiendo identificar áreas críticas y planificar mejoras.

8. ¿Qué técnicas se aplican mejor en el desarrollo de Ágiles (software liviano y rápido)? Presentar un estudio sobre esta técnica.

El desarrollo ágil se caracteriza por ser un proceso flexible y adaptable que permite entregar software liviano y funcional en períodos cortos. Esto se logra mediante la aplicación de diversas técnicas que promueven la colaboración, la iteración constante y la mejora continua.

  • Scrum: Es un marco de trabajo que organiza el proceso de desarrollo en ciclos cortos llamados sprints. Define roles específicos como el Scrum Master, el Product Owner y el Equipo de Desarrollo, y promueve reuniones diarias (daily stand-ups) para asegurar la coordinación y revisión constante del progreso.
  • Kanban: Se basa en la visualización del flujo de trabajo a través de tableros que muestran las tareas en diferentes etapas. Esto permite identificar cuellos de botella, optimizar la asignación de tareas y mantener un flujo de trabajo continuo.
  • Extreme Programming (XP): Promueve prácticas como la programación en parejas (pair programming), el desarrollo guiado por pruebas (TDD), la integración continua y la refactorización constante. Estas prácticas ayudan a mejorar la calidad del código y facilitan la adaptación a cambios en los requerimientos.
  • Desarrollo Lean: Se enfoca en eliminar desperdicios en el proceso de desarrollo, maximizando el valor entregado al cliente y optimizando los recursos disponibles. Este enfoque ayuda a crear un flujo de trabajo más eficiente y centrado en las necesidades reales.

Aplicación de Técnicas Ágiles

Diversos estudios y casos en la industria del software han demostrado que la implementación de técnicas ágiles ofrece múltiples beneficios:

  1. Flexibilidad y Adaptación Rápida: Las metodologías ágiles permiten responder de manera ágil a cambios en los requerimientos y en el entorno del proyecto, reduciendo el riesgo y el costo asociado a modificaciones tardías.
  2. Entrega Continua de Valor: Al trabajar en iteraciones, se pueden entregar versiones incrementales del producto, lo que posibilita la obtención de retroalimentación temprana y ajustes oportunos para satisfacer las necesidades del cliente.
  3. Mejora en la Colaboración y Comunicación: Las reuniones diarias, revisiones de sprint y retrospectivas fomentan una comunicación constante entre todos los miembros del equipo y con los stakeholders, aumentando la transparencia y la eficiencia en el proceso.
  4. Alta Calidad del Software: Prácticas como TDD y la integración continua permiten detectar y corregir errores de forma temprana, lo que resulta en un producto final de mayor calidad y estabilidad.

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

¿Donde se puede aplicar RUP?

El Rational Unified Process (RUP) es un marco de trabajo adaptable y disciplinado, ideal para proyectos de desarrollo de software que:

  • Tienen una complejidad mediana a alta.
  • Requieren un proceso iterativo y estructurado.
  • Poseen requisitos cambiantes o en evolución.
  • Necesitan una gestión de riesgos y control de calidad a lo largo de su ciclo de vida.

Fases del RUP

  1. Inicio (Inception): Se define el alcance del proyecto, se identifican los requerimientos principales y los riesgos, y se establece la viabilidad del proyecto mediante un caso de negocio preliminar.
  2. Elaboración (Elaboration): Se profundiza en el análisis de los requerimientos, se define la arquitectura base del sistema y se mitigan los riesgos identificados, creando una base sólida para el desarrollo.
  3. Construcción (Construction): Se desarrolla e integra el software a través de iteraciones, incrementando progresivamente la funcionalidad y asegurando la calidad mediante pruebas continuas.
  4. Transición (Transition): Se prepara el software para su despliegue y entrega al usuario final, realizando ajustes finales, corrección de errores y capacitación para asegurar una transición exitosa.

Comentarios

Entradas más populares de este blog

HD - 002 - Técnicas de lavandería

AP - 046 - Código semáforo

AR - 050 -Campamento I