Please enable JavaScript.
Coggle requires JavaScript to display documents.
Metodologías de Desarrollo de Software (Cascada (Ingeniería y Análisis del…
Metodologías de
Desarrollo de Software
Cascada
Ingeniería y Análisis del Sistema
Debido a que el software es siempre parte de un sistema mayor el trabajo comienza estableciendo los requisitos de todos los elementos del sistema y luego asignando algún subconjunto de estos requisitos al software.
Análisis de los Requisitos
Este proceso se centrae intensifica especialmente en el software. El analista debe comprender el ámbito de la información del software, así como la función, el rendimiento y las interfaces requeridas.
Diseño
Se enfoca en cuatro atributos distintos del programa: la estructura de los datos, la arquitectura del software, el detalle procedimental,y la caracterización de la interfaz. Se traducen los requisitos en una representación del software con la calidad requerida antes de que comience la codificación.
Codificación
El diseño debe traducirse en una forma legible para la maquina. Aquí se implementa el código fuente, haciendo uso de prototipos así como pruebas y ensayos para corregir errores. Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y componentes reutilizables dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido.
Pruebas
Una vez que se ha generado el código comienza la prueba del programa. La prueba se centra en la lógica interna del software, y en las funciones externas, realizando pruebas que aseguren que la entrada definida produce los resultados que se requieren.
Mantenimiento
El software sufrirá cambios después que se entrega al cliente. Los cambios ocurrirán debido a que hayan encontrado errores, a que el software deba adaptarse a cambios del entorno externo, o debido a que el cliente requiera ampiaciones funcionales o del rendimiento.
Incremental
Paradigma incremental
:star:
Son las mismas fases que en el paradigma en
Cascada
pero corrige la problemática de la linealidad. Incluye incrementos y nuevas funcionalidades.
Paradigma RAD
Modelado de Gestión
El flujo de información entre funciones de gestión se modela de forma que responda a las siguientes preguntas: ¿Que información conduce el proceso de gestión? ¿Que información se genera? ¿Quien la genera? ¿A donde va la información? ¿Quien la procesa?
Modelado de Datos
El flujo de información se refina como un conjunto de objetos de datos necesarios para apoyar a la empresa. Se definen las características de cada una de los objetos y las relaciones entre estos objetos.
Modelado de Proceso
Las descripciones del proceso se crean para añadir, modificar, suprimir, o recuperar un objeto de datos.
Generación de Aplicaciones
El proceso RAD trabaja para volver a utilizar componentes de programas ya existentes cuando esto es posible o se crean componentes reutilizables cuando es necesario.
Pruebas y Entrega
Como el proceso RAD enfatiza la reutilización, esto reduce el tiempo de pruebas. Se deben probar todos los componentes nuevos y ejercitar todas las interfaces a fondo.
Evolutivo
Prototipo
Requerimientos
Análisis de requisitos del sistema y análisis de requisitos del software.
Diseño
Desarrollo e implementación del prototipo.
Codificación y Test Unitario
Incluye prueba del prototipo, refinamiento iterativo del prototipo y refinamiento de las especificaciones del prototipo.
Integración del Sistema
Incluye diseño e implementación del sistema final.
Explotación
Operación y mantenimiento.
Espiral
Planificación
Determinación de objetivos, alternativas y restricciones.
Análisis de Riesgo
Análisis de alternativas e identificación/resolución de riesgos.
Ingeniería
Desarrollo del producto del siguiente nivel.
Evaluación del Cliente
Valorización de los resultados de la ingeniería.
Adaptativo
eXtreme Programming
Simplicidad
Se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento. Se refactoriza el código a medida que crece. También se aplica la simplicidad en la documentación.
Comunicación
El código comunica mejor entre más simple sea. Los programadores se comunican constantemente gracias a la programación por parejas.
Retroalimentación
Al estar el cliente integrado al proyecto, su opinión sobre el estado del proyecto se conoce en tiempo real.
Coraje
Hay que ser valiente para confiar en que la programación en parejas beneficia la calidad del código sin repercutir negativamente en la productividad.
Respeto
Los miembros del equipo se respetan unos a otros porque los programadores no pueden realizar cambios que hagan que las pruebas existentes fallen o que demore el trabajo de sus compañeros.
SCRUM
Planificación de la Iteración
Se realiza la reunión de planificación de iteración en dos partes: Selección de requisitos (4 horas máximo) y planificación de la iteración (4 horas máximo).
Ejecución de la Iteración
Cada día se realiza una reunión de sincronización de 15 minutos. Existe un facilitador que se encarga que el equipo pueda cumplir con su compromiso y de que no se merme su productividad: Elimina obstáculos y protege al equipo de interrupciones.
Inspección y Adaptación
El último día de iteración se realiza una reunión de revisión, en dos partes: Demostración (4 horas máximo) y retrospectiva (4 horas máximo).
Adaptive Software Development
Especulación
Compuesta por 5 pasos: Inicio para determinar la misión del proyecto.Determinar marco temporal del proyecto. Determinar número de iteraciones y su duración. Determinar objetivo de cada iteración. Asignar funcionalidad a cada iteración.
Colaboración
Se realiza el desarrollo concurrente del trabajo de construcción y gestión del producto. Se mantiene un componente cíclico.
Aprendizaje
Consiste en capturar lo que se ha aprendido, tanto positivo como negativo. En cada iteración se revisa: Calidad del producto desde el punto de vista del cliente. Calidad del producto desde el punto de vista de los desarrolladores. Funcionalidad desarrollada. Estado del proyecto.
Crystal Methods
Metodologías
Crystal Clear
Equipos de hasta 8 personas o menos.
Crystal Yellow
Equipos de entre 9 y 20 personas
Crystal Orange
Equipos de entre 21 y 50 personas
Crystal Red
Equipos de entre 51 y 100 personas
Crystal Maroon
Equipos de entre 101 y 200 personas
Valores
Entrega frecuente
Consiste en entregar software a los clientes con frecuencia, no solamente compilar el código. La frecuencia dependerá del proyecto, pero puede ser diaria, semanal o mensual.
Comunicación osmótica
Todos juntos en el mismo cuarto. Una variante especial es disponer en la sala de un experto diseñador senior y discutir respecto del tema que se trate.
Mejora reflexiva
Tomarse un pequeño tiempo (unas pocas horas cada o una vez al mes) para pensar bien qué se está haciendo, cotejar notas, reflexionar, discutir.
Seguridad personal
Hablar con los compañeros cuando algo molesta dentro del grupo.
Acceso a usuarios expertos
Tener alguna comunicación con expertos desarrolladores. Y como mínimo, semanalmente debe haber reuniones y los usuarios deben estar accesibles.
Roles
Patrocinador
Produce la Declaración de Misión con Prioridades de Compromiso (Tradeoff). Consigue los recursos y define la totalidad del proyecto.
Usuario experto
Junto con el Experto en Negocios produce la Lista de Actores / Objetivos y el archivo de casos de uso y requerimientos. Debe familiarizarse con el uso del sistema, sugerir modos de operación, información a visualizar simultáneamente, navegación, etc.
Diseñador principal
Produce la Descripción Arquitectónica. Se supone que debe ser al menos un profesional de Nivel 3.
Nivel 1
: Es capaz de “seguir los procedimientos”.
Nivel 2
: Es capaz de “apartarse de los procedimientos específicos” y encontrar otros distintos.
Nivel 3
: Es capaz de manejar con fluidez, mezclar e inventar procedimientos.
Programador
Produce, junto con el diseñador principal, los borradores de pantallas, el modelo común de dominio, las notas y diagramas de diseño, el código fuente, el código de migración, las pruebas y el sistema empaquetado.
Experto en negocios
Junto con el usuario experto produce la lista de actores/objetivos y el archivo de casos de uso y requerimientos.Debe conocer las reglas y políticas del negocio.
Coordinador
Con la ayuda del equipo, produce el mapa de proyecto, el plan de entrega, el estado del proyecto, la lista de riesgos, etc.
Verificador
Produce el reporte de bugs. Puede ser un programador en tiempo parcial, o un equipo de varias personas.
Escritor
Produce el manual de usuario
:star2::
Manifiesto Ágil
Valores
Estamos descubriendo formas mejores de desarrollar software tanto por nuestra propia experiencia como ayudando a terceros. A través de este trabajo hemos aprendido a valorar..
1:
Individuos e interacciones sobre procesos y herramientas.
2:
"Software" funcionando sobre documentación exhaustiva.
3:
Colaboración con el cliente sobre negociación contractual.
4:
Respuesta ante el cambio sobre seguir un plan. Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.
Principios
1:
*Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de ‘software’ con valor.
2:
Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
3:
Entregamos ‘software’ funcional frecuentemente, entre dos semanas y dos meses, preferentemente en el periodo de tiempo más corto posible.
4:
Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.
5:
Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.
6:
El método más eficiente y efectivo de comunicar información al equipo de desarrollo, y entre los miembros del equipo, es la conversación cara a cara.
7:
El ‘software’ funcionando es la medida principal de progreso.
8:
Los procesos ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
9:
La atención continua a la excelencia técnica y al buen diseño mejora la agilidad.
10:
La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
11:
Las mejores arquitecturas, requisitos y diseños emergen de equipos auto organizados.
12:
A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.