Jetzt loslegen. Gratis!
oder registrieren mit Ihrer E-Mail-Adresse
Metodología von Mind Map: Metodología

1. De desarrollo

1.1. Acompañando a los ciclos de vida del software se encuentran las metodologías de desarrollo, las cuales no solo controlan aspectos técnicos del proyecto, sino también buscan manejar temas como comunicación, manejo de costos, manejo de recurso humano, entre otros aspectos que van más allá de la parte técnica y tecnológica del desarrollo de un producto de software.

1.1.1. Scrum

1.1.1.1. Es la metodología de desarrollo más utilizada actualmente. Basada en el ciclo de vida ágil, y por ende, los principios del manifiesto ágil. En esta metodología se trabaja con ventanas de tiempo llamadas "sprint". Cada sprint se realiza una iteración del ciclo de vida ágil, y normalmente la duración de un sprint es de dos semanas. La metodología está orientada a tener nuevas funcionalidades de código o correcciones al final de cada sprint, teniendo pequeños entregables de manera continua. La interacción con el cliente es vital en esta metodología, para recibir retroalimentación del entregable de cada sprint.

1.1.1.1.1. En la metodología scrum se suelen manejar tres roles esenciales dentro del equipo de trabajo: product owner, scrum master y scrum team. Suele basarse en el concepto de tablero kanban, uso de backlog, tickets, daily meetings, entre otros, para hacer la gestión del proyecto. El producto owner es quien más interactúa con los clientes y externos al equipo de desarrollo. Suele ser quien crea nuevos requerimientos en el backlog. El scrum master toma la información consignada en el backlog y la divide en pequeñas tareas a través de tickets (user stories).

1.1.2. Python

1.1.2.1. Python es un lenguaje poderoso y fácil de aprender. Posee estructuras de datos de alto nivel y un enfoque simple de orientación a objetos. Python permite dividir los programas en módulos que pueden ser reutilizados por otros programas. Adicionalmente, viene con una gran colección de módulos propios para realizar tareas de entrada y salida, llamadas al sistema, sockets, interfaces gráficas, etc. Python es un lenguaje interpretado. Esto quiere decir que para ejecutar un programa en este lenguaje se requiere la instalación de un intérprete y se ejecuta línea a línea. El intérprete puede ser usado interactivamente, lo cual hace fácil experimentar con características del lenguaje.

2. Ciclos de vida

2.1. Es una manera de controlar el avance y maduración de un proyecto de software al dividirlo en etapas de acuerdo a la concentración de tareas y roles del equipo de trabajo.

2.1.1. Fases

2.1.1.1. Planeación

2.1.1.2. Análisis de Requerimientos

2.1.1.3. Diseño

2.1.1.4. Implementación

2.1.1.5. Pruebas

2.1.1.6. Despliegue

2.1.1.7. Matenimiento y mejoras

2.1.2. Modelos

2.1.2.1. Cascada

2.1.2.1.1. Asume todas las fases de manera lineal, es decir, cada fase inicia una vez se hayan terminado las anteriores.

2.1.2.2. Modelo V

2.1.2.2.1. Para cada fase existe un equivalente de pruebas y validaciones que ejecutadas en dicho orden van dando puntos de chequeo que apuntan a alta calidad del producto.

2.1.2.3. Ciclo Iterativo

2.1.2.3.1. La idea es dividir el proyecto completo en pequeños entregables o grupos de funcionalidades completadas, lo que se conoce como iteraciones. Cada iteración suele tener las fases de planeación, diseño, implementación, pruebas y despliegue. Acá aparece con fuerza el concepto de versionamiento.

2.1.2.4. Ciclo en Espiral

2.1.2.4.1. La entrega de los productos de software se basa de nuevo en el concepto de iteraciones. Cada iteración de la espiral tiene las fases de identificación (similar a planeación), diseño, construcción y evaluación. En esencia busca que de manera incremental se construya el software basado en cambios detectados a tiempo.

2.1.2.5. Ciclo Ágil

2.1.2.5.1. Lo importante es la satisfacción del cliente, la facilidad al cambio, retroalimentación constante, y versatilidad del equipo.

2.1.3. Causas del fracaso

2.1.3.1. Mala comunicación entre el equipo de trabajo. Mala estimación de costos y tiempos para el desarrollo del proyecto. Baja calidad en el producto desarrollado a nivel de código. No cumplir con los momentos claves del cronograma o con entregas parciales. Mal manejo de la documentación, esto debe ser equilibrado.

3. Problemas algorítmicos

3.1. Etapas

3.1.1. Análisis del problema

3.1.1.1. Entender de manera clara el problema que se está resolviendo.

3.1.2. Especificación del problema

3.1.2.1. Descripción clara y precisa de: Las entradas del problema. Las salidas del problema. Las condiciones, es decir la dependencia que mantendrán las salidas obtenidas con las entradas recibidas.

3.1.3. Diseño del algoritmo

3.1.3.1. Es la fase en la que se construye el algoritmo que permitirá encontrar la solución al problema.

3.1.4. Prueba del algoritmo y re finamiento

3.1.4.1. Proceso de seguimiento del algoritmo para veri car que cumple con la especi cación. Si no se cumple con la especi cación se va refi nando hasta lograr el objetivo.

3.1.5. Codi ficación

3.1.5.1. Proceso en el cual se escribe el algoritmo en un lenguaje de programación, utilizando alguna herramienta de programación.

3.1.6. Prueba y veri ficación

3.1.6.1. Proceso en el cual se corrigen los errores de sintaxis y de lógica del programa, hasta lograr que el programa resuelva el problema de forma exitosa.