diff --git a/Ingenieria de Software/16_4.org b/Ingenieria de Software/16_4.org new file mode 100644 index 0000000..7da16de --- /dev/null +++ b/Ingenieria de Software/16_4.org @@ -0,0 +1,70 @@ +#+title: 16 4 + +* Producto +** Documentacion +Para poder hacer un sistema necesitamos poder hacer un analisis de los requerimientos necesarios por el cliente. En esto se engloba la creacion de documentacion (manuales, diagramas de clases). + +** Programas +Cuando hacemos el sistema creamos distintos artefactos, ejecutables, etc. + +** Datos +El diseño logico de datos. + +* Ciclos de vida +** Hardware +#+begin_quote +Un disco duro se rompe o con su tiempo de vida o por errores de fabricacion +#+end_quote + +[[src][title]] + +** Software +Cuando hacemos un sistema nunca vamos a tener una version final al primer intento por lo cual vamos a necesitar editar el codigo para poder adecuar el sistema a los nuevos requerimientos. + +Llegado a un punto el software si no fue hecho con la idea de soportar cambios en un futuro + +Si no se hace de esa forma llegado a un punto el desarrollo del sistema va a sufrir de un mal diseño a lo largo del tiempo por lo cual el cliente queda con las opciones de o hacer una reingenieria o cambiar el sistema. + +*Por lo que encontrar un error en una etapa tardia es 50x más caro que en una temprana* + +* Proceso +** Incremental +- Cascada \\ + ir => A => D => C => P => I + +- Incremental \\ + Repite el desarrollo cascada pero con la diferencia de que luego de terminar la implementacion vuelve a empezar otra etapa cascada para ponerle más caracteristicas al sistema. + +- ORA \\ + Desde el *ir* se puede dividir el trabajo entre diferentes equipos, de forma paralela + +** Iteractivos +- Prototipos \\ + +- Espiral \\ +** Iterativos & Incremental +- Unificado \\ + +- ICONIX \\ + +** Agile +- XP \\ + +- Scrum \\ + +- Kanban \\ + + +* Principios del agile +1. Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor. +2. Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo. Los procesos ágiles se doblegan al cambio como ventaja competitiva para el cliente. +3. Entregar con frecuencia software que funcione, en periodos de un par de semanas hasta un par de meses, con preferencia en los periodos breves. +4. Las personas del negocio y los desarrolladores deben trabajar juntos de forma cotidiana a través del proyecto. +5. Construcción de proyectos en torno a individuos motivados, dándoles la oportunidad y el respaldo que necesitan y procurándoles confianza para que realicen la tarea. +6. La forma más eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de desarrollo es mediante la conversación cara a cara. +7. El software que funciona es la principal medida del progreso. +8. Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores, desarrolladores y usuarios deben mantener un ritmo constante de forma indefinida. +9. La atención continua a la excelencia técnica enaltece la agilidad. +10. La simplicidad como arte de maximizar la cantidad de trabajo que se hace, es esencial. +11. Las mejores arquitecturas, requisitos y diseños emergen de equipos que se autoorganizan. +12. En intervalos regulares, el equipo reflexiona sobre la forma de ser más efectivo y ajusta su conducta en consecuencia.