METODOLIGIAS DE DESARROLLO DE SOFTWARE
Presentado por: EDINSON BOTERO OSORIO
Análisis y desarrollo de software (2627090)
SENA regional quindio
Presentado al instructor
CARLOS ALBERTO FUEL TULCAN
Evidencia GA1-220501093-AA1-EV01.
18 de octubre 2022
EVIDENCIA A SOLUCIONAR
3.2.1 Actividad de aprendizaje: GA1-220501093-AA1 estructurar el plan de
actividades de análisis a partir de las características del proyecto y el modelo de
desarrollo seleccionado.
En esta actividad de aprendizaje se abordan las técnicas de validación de requisitos:
revisiones, los prototipos y los casos de prueba.
Duración: 96 horas.
Materiales de formación: Para el desarrollo de esta actividad es importante la lectura
y análisis del material de formación: “Metodologías de desarrollo de software”.
Evidencias:
A continuación, se describen las acciones y las correspondientes evidencias que
conforman la actividad de aprendizaje:
Evidencia conocimiento: GA1-220501093-AA1-EV01 taller sobre metodologías de
desarrollo de software
Las metodologías de desarrollo son indispensables en los grupos de trabajo y
organizaciones relacionadas con la industria de software, partiendo de la
información abordada en este componente desarrollar el taller sobre metodologías
de desarrollo de software propuesto.
Elementos para tener en cuenta en el taller:
Seleccionar diferentes fuentes de información relacionadas con las
metodologías de desarrollo de software.
Detallar las características que identifican a los marcos de trabajo
tradicionales y los marcos de trabajo ágiles.
Utilizar imágenes de construcción propia o que tengan los derechos
respectivos de uso.
Lineamientos para la entrega del producto:
Producto para entregar:
Documento con el desarrollo del taller propuesto.
Formato: PDF o Word.
Extensión: libre.
Para hacer el envío del producto remítase al área de la actividad correspondiente y
acceda al espacio para el envío de la evidencia: taller sobre metodologías de
desarrollo de software. GA1-220501093AA1-EV01.
INTRODUCCION
Se observa la gran habilidad que ha tenido la industria del software porque desde
su creación ha venido adoptando prácticas y tecnologías cada vez más complejas
con el fin de lograr satisfacer las necesidades de los usuarios empleando cada vez
menos tiempo
Desde 1968 se logran plantear mecanismos que permitan a la industria del software
adaptarse a los cambios mejorando cada dia su interface, agilidad, procesamiento
y la calidad de los productos y servicios desarrollados con mejoras continuas de
desarrollo.
Las metodologías de desarrollo de software tienen como objetivo presentar un
conjunto de técnicas tradicionales y modernas de modelado de sistemas que
permitan desarrollar software de calidad, incluyendo heurísticas de construcción y
criterios de comparación de modelos de sistemas.
METODOLOGIA DEL SOFTWARE
Parte de la lógica que se utiliza para estructurar, planificar y controlar el proceso de
desarrollo en sistemas de información dan claridad e indican que un conjunto de
procedimientos genéricos y lógicos que se utilizan para alcanzar un objetivo particular
usando un conjunto de habilidades y conocimiento.
Las metodologías de desarrollo de software siempre parten de un componente teórico y
cuando son usadas por los equipos de trabajo conllevan a la utilización de un conjunto de
técnicas y métodos que al final determinarán las tareas generales y específicas que se
deberían realizar para alcanzar un objetivo
Los marcos de trabajo tradicionales o metodologías tradicionales se caracterizan por
centrar la mayor parte de su esfuerzo en la planeación y control del proceso, lo que conlleva
a una documentación exhaustiva y precisa de los artefactos que describen los requisitos y
los modelos del sistema en las etapas iniciales del desarrollo del proyecto
Metodologías que se enmarcan en los marcos tradicionales de desarrollo de software.
Modelo en cascada es una metodología secuencial para la gestión de proyectos que se
divide en fases. Cada fase comienza cuando ha terminado la anterior.
Se compone de cinco (5) etapas principales que se asocian con actividades fundamentales
en el proceso de desarrollo de software, las cuales son:
Implementación
Funcionamiento y mantenimiento
Verificación
Diseño
Análisis
Etapas del modelo cascada
VENTAJAS
La definición clara de fases permite el desarrollo de una estructura sencilla
que es ideal para proyectos sencillos y cortos.
Siguiendo este modelo se genera una muy buena documentación del
proceso y es posible definir hitos claros.
Es más fácil realizar la estimación de costos al inicio del proyecto.
Es fácil elaborar cronogramas de trabajo en base al desarrollo de las
actividades de cada fase.
DESVENTAJAS
No se acopla muy bien a proyectos complejos con múltiples equipos
trabajando en paralelo ya que las fases normalmente se traslapan y es difícil
diferenciarlas.
Es difícil introducir cambios en el transcurso del proyecto.
Los usuarios finales y clientes normalmente son integrados al final del
proceso lo que impide tener realimentación y ajustes en etapas tempranas.
Existen fallos que solo son detectados cuando el sistema entra en
funcionamiento, lo que puede ser desastroso para un proyecto que sigue este
modelo.
Existen metodologías que son un marco de trabajo tradicional sin embargo este
espacio muestra las características principales de los mas reconocidos en las
empresas de software
El modelo en cascada define cuatro grupos de roles típicos los cuales se mencionan
a continuación:
Desarrolladores: Es el rol más importante en la metodología cascada ya que son los
encargados directos de la creación de código.
Testers: Encargados de encontrar fallas en los productos finales y retornar el
software a los desarrolladores para arreglar todos los defectos.
Analista del negocio: Encargado de la realización de estrategias de negocio que le
permitan al producto software alcanzar popularidad en el mercado digital.
Administrador del proyecto: Es responsable de la calidad final del software.
Administra el proyecto y lo subdivide en tareas entre los miembros del equipo.
Proceso racional unificado RUP: es un proceso basado en la metodología de
cascada, diferenciándose en los tres enfoques principales de sus características, la
importancia del proyecto para el usuario, la arquitectura y organización y por último
la óptima ejecución del producto.
Igual que el método anterior, este también está dividido en fases. El inicio, en la cual
se establecen los criterios de reconocimiento de problemas y requerimientos y
también de la tecnología que se usará. La fase de elaboración donde se determina
la estructura del proyecto y el refinamiento de los requerimientos. La construcción
se centra en las actividades relacionadas con la estructura y aplicación del producto
final y por ultimo la fase de transición en la que se hacen las pruebas y verificaciones
de la calidad y garantía del producto final.
2. Modelos agiles
Estos hacen énfasis en la comunicación del desarrollador con el cliente para
establecer las normas y requerimientos necesarios en el producto final, por lo tanto,
estos modelos no son de documentación sino en la importancia de la estructura y
diseño funcional del resultado.
Extreme Programming XP: Este modelo se basa en la relación comunicativa entre
el cliente y el desarrollado que busca el éxito del software dejando que durante el
tiempo de desarrollo este tenga cambios en los requerimientos, adhesiones de
nuevas funciones y el análisis de posibles riesgos en el producto.
Desarrollo rápido de aplicaciones RAD: se centra en el desarrollo de aplicaciones
mediante la realización de iteraciones frecuentes y la realimentación constante,
permitiendo desarrollarlo en menor tiempo, cumpliendo con los requerimientos de
los clientes y permitiendo la reutilización de códigos para realizar cambios
pertinentes. En sus fases primeramente está la definición y finalización de los
requerimientos del proyecto cunado ambas partes discuten sobre los objetivos usos
y necesidades para el programa. Mientras que en la fase de construcción de
prototipos los cuales son construidos, verificados y aprobados por la validación del
cliente llegando a una tercera fase de transformación a modelos totalmente
funcionales. Dejando que durante la cuarta fase se enfoca en la realización de
pruebas exhaustivas para garantizar que todos los elementos construidos funcionan
bien individualmente y también de forma colectiva. Por último, en esta fase se
realizan todas las actividades de lanzamiento del producto lo que involucra el cargue
inicial de datos y entrenamiento a los usuarios.
Scrum: Estos fomentan el trabajo y el concejo colectivo durante el desarrollo del
programa con el objetivo de conseguir los objetivos concretos de forma rápida.
Basado en tres pilares de construcción, la transparencia, haciendo referencia al
seguimiento del proceso mediante documentos o reuniones explicativas. La
Inspección que permite que cualquiera pueda estar enterado de las actividades
realizadas por otros y en general conocer el estado actual de los procesos y la
adaptación de las actividades de mejoras que permitan modificar todo tipo de
proceso para conseguir los más altos estándares de calidad
Hay otros roles denro del marco del trabajo scrum
Dueño del producto (Product
Owner)
persona con amplio conocimiento en el
negocio del cliente, sus necesidades y las
tendencias del mercado para el área
específica. Este rol está encargado de
maximizar el valor de negocio entregado
al cliente y es el único responsable del
control del Product Backlog
(requerimientos) y su priorización. Este
también representa al cliente en algunos
procesos de demostración de avances y
determina cuándo aprobar o no una
entrega.
Scrum Master
es un rol que se encarga de facilitar los
procesos al interior del equipo de trabajo
removiendo cualquier impedimento y
apoyando procesos de empoderamiento
personal, debe velar porque los
elementos propios del marco de trabajo
Scrum se apliquen de manera correcta.
Equipo de desarrollo
(Developer Team)
son los responsables de la
transformación de los requerimientos en
código ejecutable a ser usado por el
cliente, pero también son responsables
de la planificación de las iteraciones,
establecimiento de características para
tener en cuenta en la verificación de un
requerimiento terminado y presentación
de avances a los clientes. Generalmente
es un equipo auto organizado y auto
gestionado.
Planeación de proyectos de software
Información general de Scrum Un proyecto Scrum implica un esfuerzo de
colaboración para crear un nuevo Producto o, servicio, o cualquier otro resultado
como se define en el Declaración de la Visión del Proyecto. Los proyectos se ven
afectados por las limitaciones de tiempo, costo, alcance, calidad, recursos,
capacidades organizativas, y otras limitaciones que los hacen difíciles de planificar,
ejecutar, administrar y finalmente tener éxito. Sin embargo, la implementación
exitosa de los resultados de un proyecto acabado le proporciona ventajas
económicas significativas a una organización. Por lo tanto, es importante que las
organizaciones seleccionen y practiquen una metodología adecuada de gestión de
proyectos.
Scrum es una de las metodologías ágiles más populares. Es una metodología de
adaptación, iterativa, rápida, flexible y eficaz, diseñada para ofrecer un valor
significativo de forma rápida en todo el proyecto. Scrum garantiza transparencia en
la comunicación y crea un ambiente de responsabilidad colectiva y de progreso
continuo. El marco de Scrum, tal como se define en la Guía SBOK™, está
estructurado de tal manera que es compatible con los Producto os y el desarrollo
de servicio en todo tipo de industrias y en cualquier tipo de proyecto,
independientemente de su complejidad.
Una fortaleza clave de Scrum radica en el uso de equipos multi-funcionales, auto-
organizados, y con poder que dividen su trabajo en ciclos de trabajo cortos y
concentrados llamados Sprints. Figura 1-1 proporciona una visión general de flujo
de un proyecto Scrum