Capítulo 2
1. En la introducción de este capítulo, Baetj er afirma que: “El proceso genera interacción entre usuarios y diseñadores, entre usuarios y herramientas cambiantes [tecnología].” [tecnología].” Enliste cinco preguntas que a) los diseñadores deben responder a los usuarios, b) los usuarios deben plantear a los diseñadores, c) los usuarios deben hacerse a sí mismos sobre e l producto de software que ha de elaborarse, d) los diseñadores deben plantearse acerca del producto de software que va a construirse y del proceso que se usará para ello. a) ¿Qué haría el software? ¿Cómo estaría protegido el software? ¿Cuánto costara el software? ¿Cuánto tardara en estar listo el software? ¿Cuáles son los principales beneficios que el software me brinda? b) ¿Cuánto tiempo durara el software? ¿Cómo se hará el mantenimiento y cada cuánto? ¿Cómo será su funcionabilidad? funcionabilidad? ¿Me podrían ir mostrando el proceso que lleva el software? c) ¿Estoy dando toda la información necesaria para la creación del software? ¿El diseñador me estará comprendiendo bien mis necesidades? d) ¿El cliente me dijo todo lo que necesito saber? ¿Qué tipo de modelo debería usar? ¿Puede que cambien los requerimientos con el pasar del tiempo? ¿Qué tipo de capacitación debería recibir el c liente? ¿El software será compatible con el sistema oper ativo que usan? 2. Trate de desarrollar un conjunto de acciones para la actividad de comunicación. Seleccione una acción y defina un conjunto de tareas para ella. El conjunto de acciones preparadas de antemano para lograr objetivos específicos. Preguntas claves para un plan de comunicación: Qué queremos conseguir, Cuáles son nuestros objetivos y las ideas? Cuál es el mensaje que queremos transmitir? A quiénes vamos a dirigir nuestra comunicación? Qué queremos que hagan con la información? Cuáles son los medios apropiados que va a utilizar para dicha comunicación? Cómo vamos a ejecutar el plan?
3. Un problema común durante la comunicación ocurre cuando se e ncuentra a dos participantes que tienen ideas en conflicto sobre lo que debe ser el software, es decir, que tienen requerimientos mutuamente conflictivos. Desarrolle un patrón del proceso (esto sería un patrón de la etapa) con el empleo de la plantilla presentada en la sección 2.1.3 que aborda este problema y sugiera un enfoque eficaz para él. Patrón de etapas: Especificación de software: Se debe definir la funcionalidad y restricciones operacionales que debe cumplir el software. Patrón de tarea: Diseño e Implementación: Se diseña y construye e l software de acuerdo a la especificación. Patrón de fase: Validación: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente. Evolución: El software debe evolucionar, para adaptarse a las necesidades del cliente. Además de estas actividades fundamentales, Pressman menciona un conjunto de “actividades protectoras”, que se aplican a lo largo de todo el proceso del software. Ellas se señalan a
continuación: Seguimiento y control de proyecto de software. Revisiones técnicas formales. Garantía de calidad del software. Gestión de configuración del software. Preparación y producción de documentos. Gestión de reutilización. Mediciones. 4. Investigue un poco sobre el PPS y haga una breve presentación que describa los tipos de mediciones que se pide hacer a un ingeniero individual de software y la forma en la que pueden usarse para mejorar la eficacia personal. Los PPS permiten que el equipo planee, diseñe y construya software en forma disciplinada, al mismo tiempo que mide cuantitativamente el proceso y e l producto. La etapa post mórtem es el escenario de las mejoras del proceso. 5. El uso de scripts (mecanismo requerido en el PES) no es apreciado de manera universal en la comunidad del software. Haga una lista de pros y contras e n relación con los scripts y sugiera al menos dos situaciones en las que serían útiles, y otras dos en las que generarían menos beneficios. Ventajas Define estándares aplicables. Controla la programación de actividades del proyecto. Utilidad
Planificación de Desarrollo. 7. Dé tres ejemplos de proyectos de software que podrían efectuarse co n el modelo de cascada. Sea específico. Proyecto de control e consultas médicas (creación de turnos y fichas delpaciente).
Proyecto de control inventarios (registro de entradas y salidas de mercadería).
Proyecto de control de personal (registro de entrada y salida)
8. Proporcione tres ejemplos de proyectos de software que podrían abordarse con el modelo de hacer prototipos. Sea específico. Aplicaciones que involucren interacción humano/maquina o uso extensivo de graficas por computadoras
Aplicaciones de algoritmos matemáticos
Sistemas en los que los resultados pueden se r examinados fácilmente sin interacción en tiempo real Software de Simulación caja re gistradora de un supermercado.
9. ¿Qué adaptaciones del proceso se requerirían si el proyecto evolucionara en un sistema o producto que se entregase? Que el software se adapte a nuevos cambios, los requisitos son inevitables, no sólo después de entregado en producto sino también durante el proceso de desarrollo. 10. Diga tres ejemplos de proyectos de software que podrían realizarse con e l modelo incremental. Sea específico. Un sistema operativo
Sistema de control de satélites
Diseño de un cajero automático simple.
11. Conforme avanza hacia fuera por el flujo de proceso en espiral, ¿qué puede decirse sobre el software que se está desarrollando o que e stá en mantenimiento? Se puede decir que en este modelo el software debe enfocarse en la evolución real a que puede someterse de manera constante y que se evaluaran los riesgos que podrían llegar a tener si no hace un trabajo con existo. 12. ¿Es posible combinar modelos de proceso? Si es así, diga un ejemplo. Si es posible, el modelo de espiral es un buen ejemplo porque lleva la secuencia del modelo de cascada, al finalizar el ciclo hay un prototipo y luego empieza nuevamente haciendo un bucle hasta obtener el software con todos los re querimientos deseados por el cliente.
13. El modelo de proceso concurrente define un conjunto de “estados”. Describa con sus propias palabras qué es lo que representan, y después indique cómo entran en juego dentro de l modelo
de proceso concurrente. Es la representación de un estado que puede cambiar de procedimiento y volver a generar un estado si es que el cliente requiere de un cambio al software de tal manera que puede generar un mismo estado n veces necesarias al re querimiento del cliente. El modelado concurrente proporciona un panorama apropiado del estado actual del proyecto. Cada actividad, acción o tarea de la red existe simultáneamente con otras actividades, acc iones o tareas. 14. ¿Cuáles son las ventajas y desventajas de desarrollar software en el que la calidad no es “suficientemente buena”? Es decir, ¿qué pasa cuando se pone el énfasis en la velocidad de desarrollo sobre la calidad del producto? Ventajas Se diseña específicamente para las necesidades que se tienen.
Se puede cambiar y modificar con el tiempo. Desventajas
Puede que el software este lleno de errores y es poco fiable.
No tienen una presentación y dependen de los desarrolladores.
16. ¿Es posible demostrar que un componente de software, o incluso un programa completo, es correcto? Entonces, ¿por qué no todos lo hacen? Porque no todos utilizan la misma metodología de hacer prototipos. 17. ¿Son lo mismo el proceso unificado y el UML? Explique su respuesta. No, porque uml es un lenguaje que se utiliza para modelar un sistema. Y RUP es una me todología tradicional pesada que me indica unos pasos a seguir para desarrollar mi sistema.
Capitulo 3
1. Vuelva a leer el “Manifiesto para el desarrollo ágil de software” al principio de este capitulo. ¿puede pensar en una situación en la que uno o más de los cuatro “valores” pudieran causar problemas al equipo de software? Al saber que las condiciones del mercado c ambian con rapidez, las necesidades de los usuarios finales cambian, se generaría un ambiente con problemas iniciando por no definir bien los requerimientos y para esto se debería ser ágil y responder a esto, pues de lo contrario estaríamos con un equipo sin control. 2.
Describa con sus propias palabras la agilidad (para proyectos de software).
Es una habilidad para adaptarse a diferentes cambios y en diferentes t iempos en el proceso de desarrollo de software sin afectar este. 3.
¿Por qué un proceso iterativo hace más fácil administrar el cambio?
Porque a comparación de otros modelos de procesos tradicionales este tipo iterativo no nos causara demoras al tener una falla y retornar al inicio del proyecto sino que como es iterativo se retornara a verificar una iteración antes. ¿Es iterativo todo proceso agilizado en este capítulo? El capitulo trata de procesos ágiles por consiguiente e stos tipos de procesos si son iterativos e incrementales. ¿Es posible terminar un proyecto en solo una iteración y aun así conseguir que sea ágil? Dependiendo de las condicionantes y los requerimientos del proyecto si pero teóric amente estos procesos como Scrum es de un mes natural o hasta de 2 semanas si e s necesario. 4. ¿Podría describirse cada uno de los procesos ágiles con el uso de las actividades estructurales generales mencionadas en el capítulo 2? Construya una tabla que mapee las actividades generales en las actividades definidas para cada proceso ágil.
5. Proponga un “principio de agilidad” más que ayudaría al equipo de ingeniería de software a ser aún más maniobrable. Generar la importancia del cliente para su software presentando iteraciones las cuales pueda evaluar y examinar a su gusto. 6. Seleccione un principio de agilidad mencionado en la sección 3.3.1 y trate de determinar si está incluido en cada uno de los modelos de proce so presentados en este capítulo.
La prioridad mas alta es satisfacer al cliente atreves de la entrega pronta y continua de software valioso. Este principio si esta presente en e stos modelos de procesos pues necesariamente tenemos que entregar avances de software que funcione y de igual manera su pronta entrega. 7. ¿Por qué cambian tanto los requerimientos? Después de Todo, ¿La gente no sabe lo que quiere? El software se caracteriza por su adaptabilidad en el tiempo sin embargo podría no satisfacer al propietario es así que se generan nuevos requerimientos por el cambio y crecimiento de la empresa, como también si se estaría desarrollando por primera vez en una empresa los requerimientos cambiarían por la mala comunicación con los clientes o también por la mala coordinación y dinámica del grupo de trabajo del proyecto llegando a no entender lo que se quiere. 8. La mayoría de los modelos de proceso ágil recomiendan la comunicación cara a cara. No obstante los miembros del equipo de software y sus clientes t al vez estén alejados geográficamente. ¿Piensa usted que esto implica que debe evitarse la separación geográfica? ¿Se le ocurren formas de resolver este problema? Pienso que como personas vinculadas a la tecnología esto no debería ser un impedimento sin embargo quisiera poner el ejemplo del sistema inte grado de la universidad andina del cusco el cual tubo problemas justo en este aspecto, llegando a una conclusión que si es necesario reco pilar información para obtener los requerimientos exactos utilizar las nuevas formas de comunicación que existen como Facebook, twittter, skype, Email, Video llamadas, mensajes de texto, etc. 9. Escriba una historia de usuario XP que describa la característica de “lugares favoritos” o “marcadores” disponibles en la mayoría de navegadores web. Historia de Usuario Numero:1
Nombre: característica de “lugares favoritos” o “marcadores” disponibles en la mayoría de
navegadores web. Usuario: Administrador Modificación de historia numero:
Iteración Asignada:
Prioridad de negocio: Baja
Puntos Estimados:
Riesgo de Desarrollo: Medio
Puntos Reales:
Descripción: Los navegadores que tenemos en la act ualidad nos ofrecen varias funciones como la de almacenar las direcciones o urls de los sitios, así de esta forma nos brinda la posibilidad de marcar favoritos e ingresar de esta manera inmediatamente a tus sitios favoritos. Observaciones
10. ¿Qué es una solución en punta XP? Es una creación inmediata de un prototipo operativo de la porción enco ntrada en el proceso de diseño al inicio de la implementación. 11. Describa con sus propias palabras los conceptos de rediseño y programación en parejas de XP. Es una manera de cambiar el software pero que no altere la parte externa sino nada más el interior del software, en otras palabras que te nga la misma interfaz y que se modifique y me jore el código del software. Es lógico que dos personas piensen más que uno, este proceso es conocido por ello tr abajar código y a la vez revisarlo o c entrarse en el problema y el otro en el diseño luego así integr arlo al trabajo de los demás grupos. 12. Haga otras lecturas y describa lo que es una caja de tiempo ¿Cómo ayuda a un equipo DAS para que entregue incrementos de software en un corto periodo? Una caja de tiempo nos ayudara a guardar información del presente en la parte de recolección de información y aprendizaje respetando así el tiempo que se asigno a dichas tareas. Ayudando así en problemas futuros a no volver a recolectar y aprender información sino continuar con estos antecedentes. 13. ¿Se logra el mismo resultado con la regla de 80% del MDSD y con el enfoque de la caja de tiempo del DAS? La regla del 80% es eficaz en cuanto a tiempo y la caja de tiempo del DAS también es por ello que concluyo que si se logra el mismo re sultado pues estos son adaptables. 14. Con el formato de patrón de proceso presentado en el capítulo 2, desarrolle uno para cualquiera de los patrones Scrum presentados en la secc ión 3.5.2. Nombre del patrón: sprint Fuerzas: lugar donde aremos las tareas del t rabajo Tipo: ·
Patrón de Etapa:
Adaptación y modificación del problema ·
Patrón de Tarea:
Definir los requerimientos. ·
Patrón de Fase:
Modelos del trabajo. Contexto Inicial: Planeación y comunicación de la tarea. Problema: ocurrencias estructurales de las tareas
Solución: adaptar los problemas y modificarlos. Contexto Resultante: será eficaz en proyectos de plazos de entrega muy apretados Patrones Relacionados: 15. ¿Por qué se llama a Cristal familia de métodos ágiles? Es una forma de compartir recursos limitados y comunicación con un objet ivo único el cual es estregar software que funcione, siendo esta familia efectiva para diferentes tipos de proyectos. 16. Con el formato de característica DIC descrito en la sección 3.5.5, defina un conjunto de características para el navegador web. Luego desarrolle un conjunto de características para el primer conjunto.
el un Navegador Web: ·
Mejora la velocidad de otros navegadores.
·
Actualiza su versión para ser mas optimo.
·
Tiene vistas interactivas a diferencia de otros.
17. Visite el sitio oficial de la modelación ágil y elabore la lista completa de todos los principios fundamentales y secundarios del MA. Principios fundamentales: ·
Suponer simplicidad
·
Aceptar el cambio
·
Cambio Incremental
·
Modelo con un propósito
·
Modelos Múltiples
·
Trabajo de Calidad
·
Retroalimentación rápida
·
Trabajo Software es su objetivo principal
Principios secundarios: ·
Comunicación abierta y honesta
·
El Contenido es más importante que la representación
18. El conjunto de herramientas propuestas en la sección 3.6 da apoyo a muchos de los aspectos “suaves” de los métodos ágiles. Debido a que la comunicación es tan importante, recomiende un
conjunto de herramientas reales que podría utilizarse para que los participantes de un equipo ágil se comuniquen mejor. ·
Usar herramientas adecuadas para la comunicación.
· Usar la interactividad al momento de explicar y/o exponer los problemas o soluciones planteadas por los equipos de trabajo.
Conocer o tener un glosario específico para el trabajo desarrollado