1. Tipos de metodología
1.1. Ágiles
1.2. Estructuradas
1.3. Orientadas a objetos
2. Técnicas BPM
2.1. Funciones
2.1.1. Colaboración entre roles
2.1.2. Construcción de patrones de procesos
2.1.3. Simulación de escenarios de ejecución de procesos
2.1.4. Uso de métricas de optimización del negocio
2.2. Ciclo de vida
2.2.1. Modelar
2.2.2. Automatizar
2.2.3. Integrar
2.2.4. Ejecutar
2.2.5. Monitorizar
2.2.6. Optimizar
2.3. Conceptos
2.3.1. Orquestación
2.3.1.1. Control por parte de una única entidad
2.3.1.2. Servicios para generar nuevo proceso
2.3.1.3. Sistema jerárquico
2.3.1.4. Atómico
2.3.2. Coreografía
2.3.2.1. Colaboración entre componentes
2.3.2.2. Protocolos de intercambio de mensajes
2.3.2.3. Existencia de diferentes flujos de control
2.4. Objetivo
2.4.1. Optimización y mejora de desempeño en procesos
3. BPMN - Notación Modelado Proceso Negocio
3.1. Lenguaje BPEL
3.1.1. Mecanismo de correlación de mensajes
3.1.2. Variables XML y WSDL
3.1.3. Modelo de lenguaje extensible de componentes
3.1.4. Construcciones de programación estructurada
3.1.5. Sistema de ámbito con encapsulamiento por lógica
3.1.6. Ámbitos serializados para control de acceso a variables
3.2. Características
3.2.1. Workflows
3.2.2. Busca ofrecer notación estándar
3.2.2.1. Legible
3.2.2.2. Entendible
4. Definición
4.1. Conjunto de procedimientos, métodos, técnicas, herramientas y soporte documental para la realización de software
4.2. Componentes
4.2.1. Procedimientos definen
4.2.1.1. Secuencia de técnicas a aplicar
4.2.1.2. Productos
4.2.1.3. Controles
4.2.1.4. Directrices
4.2.2. Métodos o técnicas
4.2.2.1. Descripción del modelo
4.2.2.2. Reglas
4.2.2.3. Recomendaciones
4.2.2.4. Guías de proceso
4.2.3. Herramientas
4.2.3.1. Automatización de métodos y técnicas
4.2.4. Soporte documental
4.2.4.1. Conjunto de entregables de utilidad tanto para mantenimiento como para nuevas incorporaciones
4.3. Objetivo
4.3.1. Mejorar el desarrollo de aplicaciones
4.3.2. Identificar productos intermedios
4.3.3. Estándar en organización
4.4. Características
4.4.1. Reglas predefinidas
4.4.2. Cobertura total del ciclo de desarrollo del sistema
4.4.3. Verificaciones intermedias
4.4.4. Planificación y control
4.4.5. Comunicación efectiva
4.4.6. Fácil formación
4.4.7. Documentación
4.4.8. Herramientas CASE
4.4.9. Contiene actividades de mejora del proceso
4.4.10. Soporte de reutilización
4.5. Requisitos
4.5.1. Documentada
4.5.2. Repetible
4.5.3. Enseñable
4.5.4. Basada en técnicas probadas
4.5.5. Validada
4.5.6. Apropiada
4.6. Ventajas
4.6.1. Lenguaje común
4.6.2. Externalización del desarrollo
4.6.3. Tener marco de trabajo
5. Herramientas CASE
5.1. Herramientas para la automatización de fases en el ciclo de vida del desarrollo del software
5.2. Clasificación
5.2.1. Por fase de soporte
5.2.1.1. Upper CASE
5.2.1.1.1. Soporte a nivel de planificación estratégica y gestión
5.2.1.2. Middle CASE
5.2.1.2.1. Automatización de análisis/diseño
5.2.1.3. Lower CASE
5.2.1.3.1. Automatización en programación/pruebas/mantenimiento
5.2.1.4. Herramientas de ingeniería inversa
5.2.1.4.1. Interpretación de código fuente
5.2.1.5. Herramientas de ingeniería de ida y vuelta
5.2.1.5.1. Mezcla de Lower e ingeniería inversa
5.2.1.6. Herramientas de ámbito específico
5.2.2. Por tipo de soporte
5.2.2.1. Parcial
5.2.2.1.1. Tool CASE
5.2.2.2. Completo
5.2.2.2.1. I-CASE
5.3. Tipos por Función
5.3.1. Para creación de diagramas y especificaciones
5.3.2. Generadores de pantallas, informes, prototipado de interfaz y repositorios
5.3.3. Análisis, diseño y verificación
5.3.4. Herramientas de programación
5.3.5. Generadores de código
5.3.6. Mantenimiento
5.3.7. Planificación y gestión de proyectos
5.4. Objetivos
5.4.1. Acelerar el proceso de desarrollo
5.4.2. Mejorar la calidad del resultado
5.5. Inconvenientes
5.5.1. Adquisición de hardware y software para ejecutar herramienta
5.5.2. Formación y consultoría esencial en primeros proyectos
5.5.3. Aspectos organizacionales que impactan en la metodología de trabajo del equipo
5.6. Ventajas
5.6.1. Aumento productividad
5.6.2. Reducción en tiempo de desarrollo y costes con el tiempo
5.6.3. Generación automática de código
5.6.4. Mejora de la calidad
5.6.4.1. Fácil adaptación a necesidades
5.6.4.2. Satisfacción de requisitos
5.6.4.3. Menor número de errores
5.6.4.4. Reusabilidad y modificación óptimos
5.6.5. Mejora de la documentación
5.6.6. Mejora del mantenimiento
6. Patrones
6.1. Solución repetible a problema común
6.2. Objetivo
6.2.1. Ofrecer catálogos de elementos reusables
6.2.2. Evitar reiteración
6.2.3. Formalizar vocabulario común
6.2.4. Estandarizar realización de diseño
6.2.5. Facilitar aprendizaje
6.3. Categorías
6.3.1. De arquitectura
6.3.1.1. Estructura fundamental
6.3.2. De diseño
6.3.2.1. Estructura de diseño
6.3.3. Dialectos
6.3.3.1. Específicos de un lenguaje - Bajo nivel
6.4. Antipatrones
6.4.1. Patrones que conducen a una solución erronea
6.4.2. Tipos
6.4.2.1. De gestión de proyecto
6.4.2.2. Generales de diseño de software
6.4.2.3. De diseño OO
6.4.2.4. De programación
6.4.2.5. Metodológicos
6.4.2.6. De gestión de la configuración
6.5. Características
6.5.1. Efectividad probada
6.5.2. Reutilizable