CARACTERÍSTICAS ADICIONALES DE SEMAT Carlos Mario Zapata J. 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software GENERALIDADES El núcleo en la Esencia (accionable, extensible y práctico) Separación de Intereses 4/14/2017 Teoría y Métodos de la Ingeniería de Software
El núcleo de la Esencia Las prácticas son independientes entre sí y se puede agregar tantas como se quiera Se pueden agregar nuevos elementos Los estados de los alfas permiten determinar el estado de salud y progreso del esfuerzo independientemente del método de desarrollo empleado Se basa en tarjetas y listas de chequeo que todo el equipo de desarrollo puede usar 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Teoría y Métodos de la Ingeniería de Software Extensiones al núcleo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Separación de intereses “Es lo que algunas veces llamé ‘Separación de intereses’, la cual, aún sin ser perfectamente posible, es la única técnica disponible para ordenar los propios pensamientos. Es lo que quiero decir con ‘enfocar nuestra atención en algún aspecto’: esto no significa ignorar los otros aspectos, sino hacer justicia al hecho de que, desde este punto de vista, el otro es irrelevante”. Edsger Dijkstra, 1974 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Separación de intereses Sistemas con módulos no solapados Un interés distinto por cada módulo Genera extensibilidad y mantenibilidad Se posee un núcleo y se hacen extensiones que no complican el núcleo Tres tipos: Separar el núcleo de las prácticas Separar los alfas de los productos de trabajo Separar la esencia de los detalles 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Separación entre núcleo y prácticas Seguir las modas en los métodos no es la solución Necesitamos reutilizar lo que sirve y tan solo desechar lo que no sirve Se separan unas prácticas de otras para entender y adoptar El núcleo es el resultado del estudio de las prácticas Las prácticas extienden el núcleo sin modificarlo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Separación entre núcleo y prácticas Ventajas: El núcleo es estable Provee un lenguaje común No depende del esfuerzo, la complejidad, el método, el sistema o el tamaño Los métodos evolucionan práctica por práctica Las prácticas son unidades modulares Los métodos pueden intercambiar prácticas 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Separación entre alfas y productos de trabajo Los métodos de desarrollo se basan en artefactos El progreso del esfuerzo se suele medir con el progreso en los artefactos En el agilismo, el software funcional también parece insuficiente como medida de progreso Se requiere un análisis de todas las dimensiones del esfuerzo Los alfas son esas dimensiones 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Separación entre alfas y productos de trabajo Usos de los alfas: Hacer avanzar el equipo Determinar el estado actual del esfuerzo, planear los estados siguientes y rastrear el progreso Adaptar la forma de trabajo Establecer acuerdos sobre el nivel de compromiso del equipo 4/14/2017 Teoría y Métodos de la Ingeniería de Software
Separación entre la esencia y los detalles La funcionalidad del núcleo obliga la separación en capas Las capas ayudan a la formación (ya sea en Academia o Industria) Las tarjetas contribuyen a mantener lo fundamental a mano Las guías detalladas constituyen material de consulta cuando es necesario (antes de pasar a libros o artículos) 4/14/2017 Teoría y Métodos de la Ingeniería de Software