Libros gratuitos sobre programación

Librosweb es el sitio web hispano de referencia sobre diseño y programación. La mayor colección de libros, tutoriales, vídeos, presentaciones y otros recursos para diseñadores y programadores.
 

Diseño Ágil con TDD

Libro de desarrollo de software dirigido por las pruebas en castellano


Libro: Diseño Ágil con TDD - Carlos Blé

¿Qué es el Desarrollo Ágil?

El desarrollo ágil de software es un enfoque para la toma de decisiones en los proyectos de desarrollo de software,  el trabajo es realizado mediante la colaboración de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de toma de decisiones a corto plazo.
Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño, codificación, pruebas y documentación todo al mismo tiempo y de forma colaborativo entre el cliente y el proceso de desarrollo, se valoriza más a las personas que desarrollan que al proceso de desarrollo. Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. La mayoría de los equipos ágiles están localizados en una simple oficina abierta de espacios grandes. Los métodos ágiles también enfatizan que el software funcional es la primera medida del progreso. Es muy importante la entrega rápida, dos o cuatro semanas, al cliente. Promueve la documentación en línea y cambiante constantemente. La premisa principal es adaptarse al cambio y progresar en el desarrollo del producto software final.

Sistema Operativo I - TPN° 4 y 5

Preguntas

 Trabajo práctico N° 4 y 5


4.1. La Tabla 3.5 enumera los elementos típicos que se encuentran en un bloque de control de proceso para un sistema operativo monohilo. De éstos, ¿cuáles deben pertenecer a un bloque de control de hilo y cuáles deben pertenecer a un bloque de control de proceso para un sistema multihilo?
4.2. Enumere las razones por las que un cambio de contexto entre hilos puede ser más barato que un cambio de contexto entre procesos.
4.3. ¿Cuáles son las dos características diferentes y potencialmente independientes en el concepto de proceso?
4.4. Dé cuatro ejemplos generales del uso de hilos en un sistema multiprocesador monousuario.
4.5. ¿Qué recursos son compartidos normalmente por todos los hilos de un proceso?
4.6. Enumere tres ventajas de los ULT sobre los KLT.
4.7. Enumere dos desventajas de los ULT en comparación con los KLT.
4.8. Defina jacketing (revestimiento).
4.9. Defina brevemente las diversas arquitecturas que se nombran en la Figura 4.8.
4.10. Enumere los aspectos principales de diseño de un sistema operativo SMP.
4.11. Dé ejemplos de servicios y funciones que se encuentran en un sistema operativo monolítico típico que podrían ser subsistemas externos en un sistema operativo micronúcleo.
4.12. Enumere y explique brevemente siete ventajas potenciales de un diseño micronúcleo en comparación con un diseño monolítico.
4.13. Explique la desventaja potencial de rendimiento de un sistema operativo micronúcleo.
4.14. Enumere cuatro funciones que le gustaría encontrar incluso en un sistema operativo micronúcleo mínimo.
4.15. ¿Cuál es la forma básica de comunicación entre procesos o hilos en un sistema operativo micronúcleo?

TPN 5

5.1. Enumere cuatro aspectos de diseño para los cuales el concepto de concurrencia es relevante.
5.2. ¿En qué tres contextos aparece la concurrencia?
5.3. ¿Cuál es el requisito básico para la ejecución de procesos concurrentes?
5.4. Enumere tres grados de percepción entre procesos y defina brevemente cada uno.
5.5 ¿Cuál es la diferencia entre procesos en competencia y procesos cooperantes?
5.6. Enumere los tres problemas de control asociados con los procesos en competencia y defina brevemente cada uno.
5.7. Enumere las condiciones necesarias para la exclusión mutua.
5.8. ¿Qué operaciones pueden ser realizadas sobre un semáforo?
5.9. ¿Cuál es la diferencia entre semáforos binarios y semáforos generales?
5.10. ¿Cuál es la diferencia entre semáforos fuertes y semáforos débiles?
5.11. ¿Qué es un monitor?
5.12. ¿Cuál es la diferencia entre bloqueante y no bloqueante con respecto a los mensajes?
5.13. ¿Qué condiciones están asociadas generalmente con el problema lectores/escritores?