Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ASIGNATURA:
Sistemas de Información
ACTIVIDAD # 6
ágil.
herencia y el polimorfismo.
INTEGRANTES:
CURSO/PARALELO:
Cuarto “B”
DOCENTE
2023
incrementos pequeños en vez de lanzamientos tan grandes. Los equipos ágiles evalúan
del cambio.
de trabajo colaborativa ya que les permite a los equipos trabajar conjuntamente con un
Agile también establece las pruebas en todo el proceso del ciclo de desarrollo.
Esto les permite a los equipos hacer cambios cuando sea necesario, alertar entre sí sobre
potenciales problemas y por ende les da la suficiente confianza para crear y lanzar
continuación, se muestran.
Mientras estos últimos son muy esenciales, las interacciones individuales son
al final.
valor al cambio y promueve las iteraciones cortas para permitir que las modificaciones
funcionamiento:
1. Dividir las tareas más grandes en pequeñas piezas para una mejor
realización.
continua de valor.
sostenible.
aplicación completa de una sola vez. Al día de hoy, Agile ha reemplazado el modelo de
desarrollo de software Waterfall en la mayoría de las empresas. Sin embargo, podría ser
Conceptualización
En el primer paso del ciclo de vida ágil, el product owner define el alcance del
proyecto. En el caso de múltiples proyectos, los más críticos son lo que se priorizan.
Dependiendo de la estructura de la organización, el personal puede ser asignado a más
de un proyecto a la vez.
y formular la documentación básica que se basa en los objetivos del proyecto finalizado.
pueden apostar a completar los requisitos más críticos ya que pueden irse agregando
Creación
cada integrante del equipo y asigna a los mejores al proyecto. El product owner se
UML. En esta fase también se construye la arquitectura del proyecto. Luego, los
elementos diseñados se muestran a las partes interesadas para que hagan sus
aportaciones.
mantenga en marcha.
Construcción
básicamente se hace todo el trabajo. Normalmente es la etapa con más duración, con el
en código.
crear una aplicación funcional e implementar todas las mejoras para la satisfacción del
cliente.
Lanzamiento
Cuando el equipo trabaja en esta etapa, el producto ya debería estar casi listo
para su lanzamiento. Sin embargo, antes de que esto pase, el equipo de control de
calidad (QA) deberá probar la aplicación para asegurarse de que sea totalmente
también se hace con el fin de estar seguros de que no haya ningún defecto ni bug en el
código; si se llega a encontrar alguno, tendrá que ser reportado y arreglado rápidamente
por el equipo de desarrolladores. El código limpio es una muy esencial en esta etapa
complete, la iteración final del producto puede tomarse y ser enviada para producción.
Producción y mantenimiento
Una vez la aplicación se lance de manera efectiva y esté disponible para los
desarrolladores proporciona soporte continuo para asegurarse de que todo vaya perfecto
en las operaciones del sistema y puedan arreglarse todo tipo de bugs y defectos
clientes y resolver todo tipo de dudas para asegurarse de que el producto se utilice de
recolectada durante esta etapa para planificar diferentes funciones para las siguientes
iteraciones.
Retiro
La aplicación puede estar destinada a retirarse por dos razones: la sustitución por
usuarios sobre el retiro de la aplicación. Luego, se deberá asegurar una migración más
fluida del sistema. Finalmente, el equipo de desarrolladores deberá completar todas las
la aplicación existente.
acuerdo a los requerimientos determinados del proyecto. Éstas son ‘sub ciclos’ que
específicas.
Desarrollar: Una vez se lleve a cabo el plan, este equipo trabaja en el diseño y
siguiente sprint.
Las reuniones de planificación del sprint son útiles, pero el equipo también
debería reunirse regularmente (si es posible, a diario) para hacer un balance del progreso
componentes clave del ciclo de vida ágil y una forma probada de mantener el proceso
software. Las metodologías ágiles pretenden ofrecer el producto adecuado, con una
retroalimentación frecuente del cliente y la corrección del curso según sea necesario.
Con ello, Agile pretende corregir los problemas que plantean los enfoques
periodos de tiempo, durante los cuales los requisitos de los clientes cambian con
Los principios básicos sobre los que se fundamenta el desarrollo ágil son tres.
Cliente: por supuesto, la colaboración del cliente en todas y cada una de las
etapas que forman parte del proceso es muy importante. Por lo tanto, la relación entre el
precisamente el mercado del Siglo XXI uno de los más variables y, además, los cambios
forma precisa a los requisitos cambiantes, tanto del mercado como de los clientes. El
y del cliente, entregando valor de manera iterativa en Sprints cortos. Busca minimizar
junto con prácticas técnicas como DevOps, permiten entregas frecuentes y adaptación
utilizadas.
Aceptamos los cambios en los requisitos, incluso en las últimas fases del
hasta un par de meses, con preferencia por la escala de tiempo más corta.
agilidad.
es esencial.
autoorganizados.
Para que las metodologías de desarrollo ágil se puedan considerar como tal, es
requisito imprescindible que cumplan estos cuatro aspectos. Por un lado, los individuos
y las interacciones que llevan a cabo entre ellos son más importantes que los propios
procesos y las herramientas. Por otro lado, prima que el software esté implementado y
las necesidades cambiantes, tanto del cliente como del mercado. Es decir, hay que
ellas con sus propias características y ventajas. En función del proyecto a desarrollar y
de las necesidades concretas del equipo de desarrolladores, se puede optar por una u
entrega software funcional de la manera más eficiente posible. Sin embargo, cada
método varía en la forma en que define los pasos del desarrollo de software. Los
Scrum
Programación extrema
Crystal
Kanban
Scrum: es un marco Ágil liviano que los gerentes de proyectos pueden usar para
producto crea una cartera de productos que les permite trabajar con su equipo para
de todo lo que se necesita lograr para ofrecer un sistema de software que funcione
funcionales. Una vez que se define la cartera de productos, no se puede agregar ninguna
funcionales de software durante cada sprint, a menudo dentro de los 30 días. Después de
puede incorporar las diversas prácticas generales promovidas por los otros métodos
Ágiles.
Ventajas de Scrum Desventajas de Scrum
uso de un mapeo de flujo de valor efectivo para garantizar que el equipo brinde valor al
cliente. Es flexible y cambiante; no tiene pautas o reglas rígidas. El método Lean utiliza
Fomento de la integridad
Eliminación de desechos
Entendimiento el todo
manteniendo una coordinación entre equipos que asegure que lo aprendido por
un equipo sea comunicado al resto y no tenga que ser aprendido de nuevo por
comercialización.
Scrum. FDD fue desarrollada por Jeff De Luca y Peter Coad en el año 1997.
anterior). Todas las metodologías ágiles siguen una serie de principios que hacen
que se parezcan entre sí. Sin embargo, FDD ofrece soluciones sobre cómo
Uno de los libros más populares sobre el método FDD fue publicado por
Development“.
El método Lean: se basa en una retroalimentación rápida y confiable entre los
eficientes. Para lograr esto, proporciona a los individuos y equipos pequeños autoridad
eliminar el desperdicio, el método Lean pide a los usuarios que solo seleccionen
con el código y se concentra en garantizar que cada miembro del equipo sea lo más
productivo posible.
desarrollo para definir y priorizar las historias de usuario solicitadas. Sin embargo,
depende del equipo entregar las historias de usuario de mayor prioridad en forma de
Ventajas de XP Desventajas de XP
las interacciones que ocurren mientras se trabaja en un proyecto Agile, así como en la
basa en la constatación de que cada proyecto posee características únicas que requieren
Crystal Clear y Crystal Yellow. Cada modelo tiene sus propias características únicas que
son impulsadas por diferentes factores, incluidas las prioridades del proyecto, el tamaño
equipo y la sencillez.
enfatizando la entrega continua— sin crear más estrés en el ciclo de vida de desarrollo
de software (SDLC). Se ha vuelto popular entre los equipos que también practican el
Kanban está diseñado para ayudar a los equipos a trabajar de manera más eficiente entre
sí. Fomenta la colaboración continua e intenta definir el mejor flujo de trabajo posible
presenta un riesgo para la finalización exitosa del proyecto. Los ocho principios son:
Colaboración
Tiempo de entrega
Control demostrado
Desarrollo iterativo
ser reversibles. Los requisitos del sistema se priorizan utilizando las reglas de
M - debe tener
S - debería tener
Cada iteración debe incluir elementos menos críticos que se puedan eliminar para que
etc.) especialmente si no se
finalización
desarrollo ágil orientada al comportamiento. Fue creada por Dan North en 2003 como
una evolución de la metodología TDD. Dan North pretendía que las personas no
contienen los requisitos y los criterios de aceptación del comportamiento del sistema.
Indican qué necesita la funcionalidad para ponerse en marcha, qué hará a continuación y
BDD ayuda a los equipos a comunicar con mayor precisión los requisitos, a
descubrir los defectos con antelación y a construir un software que siga siendo
sostenible en el tiempo.
los principios de Ágil. En los últimos años, ha aumentado la lista de organizaciones que
atribuyen a esta metodología su éxito. Algunos de los nombres más importantes de los
Agile Coach
Entre los nuevos roles, se destaca el Agile Coach, una posición con autoridad y
que cuenta con los atributos para proveer dirección y foco la dinámica de los equipos.
entrega).
perfil se destacan:
la indagación,
la escucha activa,
Scrum Master
SCRUM es el framework de gestión ágil de proyectos de mayor crecimiento,
en potenciar a los integrantes del proceso y sus interacciones, para lograr los objetivos
propuestos.
clientes pueden cambiar de idea sobre lo que quieren o necesitan y, en consecuencia, los
planificada.
El Scrum Master desempeña el rol de coach del equipo desarrollo y del dueño de
producto, es un maestro y mentor de las prácticas Scrum. Destraba frenos del equipo, es
organización
solución.
proyecto.
Entre las principales hard skills específicas que hoy se solicitan en los
vida y funcionamiento.
framework SCRUM.
ágil
Product Owner
los stakeholders y su foco es entender que es lo que da más valor al negocio a través de
para todos.
“Para la mayoría de las empresas que se mudan a Agile, este es un rol nuevo y
Scale Agile, Inc, agregando que el rol tiene relaciones y responsabilidades significativas
tiempo completo.
Por ello, en Scrum.org enfatizan que para que los Product Owners tengan éxito,
Equipo de Desarrollo
En Scrum, el Development Team contempla varios roles con diversas
necesarias para transformar una idea o un requisito en un producto tangible para los
usuarios finales.
Diseñador de producto
Escritor
Programador
Tester
del Team también deben contar con habilidades blandas para autoorganizarse y que
cuando ocurra un problema, el equipo es capaz y esté facultado para tomar medidas
correctivas.
Los miembros del Team también deben contar con habilidades para
medidas correctivas.
Para BMC, las responsabilidades clave del Equipo de Desarrollo son realizar
El Team también participa de una reunión regular (Daily Scrum) para comunicar
el progreso del proyecto con los compañeros y el Scrum Master, garantizando de esta
manera la transparencia y permitiendo que el equipo de desarrollo incorpore los
cambios necesarios en futuros sprints, en función de los comentarios del propietario del
producto.
Product Manager
márgenes de beneficio.
Entre las principales funciones que debe desarrollar un Product Manager para
comercialización y distribución.
Identificar una necesidad de mercado, y en función de ella, evaluar el
para optimizarlo.
incidencias.
Obtener la mayor rentabilidad e ingresos posibles.
informadas y fundamentadas.
PRACTICAS
periódicamente tanto tarea como procesos para la mejora tanto de productos como sus
Lean, Extreme Programming (XP)… unificadas bajo el paraguas de Agile. Sin embargo,
en dos partes del proceso: al inicio, a la hora de recopilar información y poner ideas en
Esto cambia con Agile, donde el cliente se involucra en todas y cada una de las
etapas lo que garantiza que el producto final realmente satisfaga las necesidades del
usuario final. También ayuda a que los desarrolladores pueden hacer ajustes durante el
Reuniones diarias
aunque otras metodologías de Agile emplean alguna que otra variación. Los controles
diarios consisten en una breve reunión de no más de 15 minutos para que cada miembro
del equipo pueda actualizar a todos los demás sobre en qué están trabajando ese día.
productiva. Mejores prácticas de comunicación que han ido avanzando al mismo tiempo
Priorización de tareas
Decidir qué tareas completar y en qué orden es un aspecto esencial del desarrollo
Agile. Hay muchos métodos diferentes para establecer estas prioridades como
Configuración de Sprint
Los sprints son períodos de tiempo limitado durante los cuales un equipo intenta
tareas que no se pueden realizar hasta que se complete otra tarea anterior para evitar
cuellos de botella. Una vez que se completa el sprint, el equipo debe tener una reunión
ARTEFACTOS
Los principales artefactos del scrum ágil son el backlog del producto, el backlog
antiguas.
Los artefactos del scrum ágil son información que un equipo de scrum y las
partes interesadas utilizan para detallar el producto en desarrollo, las acciones para
producirlo y las tareas realizadas durante el proyecto. Estos artefactos ofrecen metadatos
que dan una idea del rendimiento de un sprint. Son herramientas esenciales para todos
inspección y adaptación.
prioridad
Los principales artefactos del scrum ágil son el backlog del producto, el backlog
Contiene elementos que han sido parte de sprints anteriores y tareas que han
Backlog de Sprint:
Subset del backlog del producto seleccionado para desarrollarse en el siguiente
incremento.
prioridades cambiantes.
sprint.
sprint.
Artefactos Ampliados:
Diagrama de Evolución:
experiencias anteriores.
Definición de "Hecho:
Planificación y Creación:
Producto.
Realización de Tareas:
Definición de "Hecho".
Revisión y Análisis:
Actualización y Repetición:
Importancia de la Transparencia:
Todos los equipos deben tener acceso y visibilidad a los artefactos para mejorar
la eficiencia.
sprints.
En el desarrollo ágil, la correcta implementación de roles, prácticas y artefactos
es esencial para el éxito del proyecto. Estos elementos proporcionan una estructura
de valor al cliente. Su uso adecuado no solo impulsa la eficiencia operativa, sino que
básicos
de programación, pero con eso no basta. Si se quiere que el sistema sea robusto y
diseñada. Se debe seguir un proceso robusto, que incluya las actividades principales. Si
cuando se trata de un equipo de desarrollo formado por varias personas. Para este curso
[Larman99]. Este proceso no fija una metodología estricta, sino que define una serie de
actividades que pueden realizarse en cada fase, las cuales deben adaptarse según las
condiciones del proyecto que se esté llevando a cabo. Se ha escogido seguir este
proceso debido a que aplica los últimos avances en Ingeniería del Software, y a que
dudas y/o problemas con los que se enfrenta el desarrollador. Su mayor aportación
consiste en atar los cabos sueltos que anteriores métodos dejan. La notación que se usa
para los distintos modelos, tal y como se ha dicho anteriormente, es la proporcionada
objetos. El uso de UML permite integrar con mayor facilidad en el equipo de desarrollo
esté planteando su uso). Se va a abarcar todo el ciclo de vida, empezando por los
de un ciclo de vida iterativo incremental, el cual permite una gran flexibilidad a la hora
dirigido por casos de uso, es decir, por la funcionalidad que ofrece el sistema a los
futuros usuarios del mismo. Así no se pierde de vista la motivación principal que
Visión General
sistema software de tamaño medio-alto. El proceso está formado por una serie de
distintos elementos. En este apartado se va a presentar una visión general para poder
tener una idea del proceso a alto nivel, y más adelante se verán los pasos que componen
cada fase. Las tres fases al nivel más alto son las siguientes:
sistema.
programación.
trata en cada ciclo, y se tiene pronto en el proceso una parte del sistema
ampliada con un Borrador de Modelo Conceptual y con una definición de Casos de Uso
de alto nivel. En esta fase se decidiría si se aborda la construcción del sistema mediante
1. Definir el Plan.
5. Implementar un Prototipo.
de las fases de Análisis y de Diseño, que se verán más adelante. De estas actividades no
relacionada con los Casos de Uso, pues son éstos los que van a servir de punto de
siguientes puntos:
Propósito.
UML, pero se ha incluido este punto para resaltar que la actividad de definición de
secuencia de eventos de un actor (un agente externo) que usa un sistema para completar
un proceso [Jacobson92]. Es una historia o una forma particular de usar un sistema. Los
notación de UML para los Diagramas de Casos de Uso. Nótese que UML no define un
formato para describir un caso de uso. Tan sólo define la manera de representar la
formato textual que se va a usar en este texto para definir los casos de uso se va a definir
caso de uso por medio de Diagramas de Secuencia se verá más adelanté. En un primer
momento interesa abordar un caso de uso desde un nivel de abstracción alto, es lo que
siguientes pasos:
1. Después de listar las funciones del sistema, se definen los límites del sistema
Casos de Uso.
5. Los casos de uso más críticos, importantes y que conllevan un mayor riesgo,
expandido esencial del resto de casos de uso para cuando sean tratados en posteriores
ciclos de desarrollo, para no tratar toda la complejidad del problema de una sola vez.
partes del sistema abordar en cada ciclo de desarrollo se va a tomar basándose en los
uno o más casos de uso, o versiones simplificadas de casos de uso. Se asigna una
versión simplificada cuando el caso de uso completo es demasiado complejo para ser
ordenarlos según prioridad. Las características de un caso de uso específico que van a
hacer que un caso de uso tenga una prioridad alta son las siguientes:
relativamente bajo.
riesgo.
Para realizar la clasificación se puede asignar a cada caso de uso una valoración
numérica de cada uno de estos puntos, para conseguir una puntuación total aplicando
clasificación:
Fase de Construcción: Análisis
sobre los conceptos relacionados con el subconjunto de casos de uso que se esté
tratando. Se intenta llegar a una buena comprensión del problema por parte del equipo
actualizar los modelos que se tengan según lo que se haya implementado, pues siempre
construye. Una vez se tienen los modelos acordes con lo implementado se empieza el
nuevo ciclo de desarrollo con la fase de Análisis. En esta fase se trabaja con los modelos
4. Refinar el Glosario.
Modelo Conceptual
Una parte de la investigación sobre el dominio del problema consiste en
identificar los conceptos que lo conforman. Para representar estos conceptos se va a usar
modelo, es mejor crear un modelo con muchos conceptos que quedarse corto y olvidar
Creación del Modelo Conceptual Para crear el Modelo Conceptual se siguen los
siguientes pasos:
2. Representarlos en un diagrama.
3. Añadir las asociaciones necesarias para ilustrar las relaciones entre conceptos
atributos necesarios para satisfacer las necesidades de información de los casos de uso
que se estén desarrollando en ese momento. Los atributos deben tomar valor en tipos
simples (número, texto, etc.), pues los tipos complejos deberían ser modelados como
ocasiones:
Tiene otros atributos. Por ejemplo un precio de oferta puede tener fecha
de fin.
Es una cantidad con una unidad. Ejemplo: El precio, que puede estar en
pesetas o en euros.
Una vez definidos los atributos se tiene ya un Modelo Conceptual. Este modelo
comportamiento del sistema, visto éste como una caja negra. Una parte de la
Análisis.
van usando clases procedentes del Modelo Conceptual, junto con otras creadas para
Métodos.
Navegabilidad.
Dependencias
funcionando que se puede probar con los futuros usuarios, e incluso poner en
producción si se ha planificado una instalación gradual. Una vez se tiene una versión
estable se pasa al siguiente ciclo de desarrollo para incrementar el sistema con los casos
polimorfismo
orientado a objetos en el que el código se organiza en objetos que encapsulan los datos y
las funciones que los manipulan. Otro paradigma es la programación funcional donde el
código se organiza en funciones puras que dados unos datos de entrada genera un
resultado y en vez de cambiar de estado a los datos existentes genera nuevos datos
imperativa y con las novedades incluidas en Java 8 con las lambdas, streams, o los
Encapsulación
encapsulación.
por las funciones destinadas a tal efecto. La encapsulación permite que los datos
conserven un estado válido y consistente, trata de evitar que cualquier código pueda
modificar una estructura de datos con el consiguiente problema de generación de
inconsistencias.
accesibles de forma directa, sino que para acceder a los datos o manipularlos se ha de
Abstracción
de un objeto que al programa le interesa. Las clases son la abstracción de los conceptos
que maneja la aplicación, pueden ser conceptos que existan en el mundo real pero
clases también pueden ser conceptos que no tengan una existencia física en el mundo
Un avión es un objeto físico del mundo real con multitud de propiedades, desde
interesa otras propiedades como altitud, posición GPS, dirección, velocidad aeropuerto
herencia. Al implementar una clase y para reutilizar el código una clase puede extender
En Java las clases abstractas no pueden instanciarse pero si ser extendidas por
otras clases que no sean abstractas. Una clase al implementar una interfaz ha de
reservado abstract
Polimorfismo
errores. Los lenguajes orientados lo que proporcionan es un uso sencillo y seguro del
funciones.
En una jerarquía de clases que representen diferentes figuras geométricas dos
Referencias
Cordero Vindas, E. (2008). repositorio.ulacit.ac.cr. Obtenido de Los lenguajes de
https://repositorio.ulacit.ac.cr/bitstream/handle/123456789/4663/036325.pdf?
sequence=1
Delgado, S. (28 de Junio de 2022). Las cinco mejores prácticas de Agile para un
https://www.muycomputerpro.com/2022/06/28/cinco-mejores-practicas-agile-
desarrollo-software
https://www.nimblework.com/es/agile/metodologia-agil/
https://axarnet.es/blog/desarrollo-agil#
hl=es&as_sdt=0%2C5&q=Estructura+de+los+sistemas+de+informaci
%C3%B3n+utilizando+la+encapsulaci
%C3%B3n+herencia+y+polimorfismo+&btnG=
https://www.uv.mx/personal/maymendez/files/2011/05/umltotal.pdf
HARRIS, C. (s.f.). Artefactos del scrum ágil. Obtenido de En qué consisten los
artefactos del scrum ágil y cómo pueden ayudar durante el desarrollo del
producto: https://www.atlassian.com/es/agile/scrum/artifacts#:~:text=Los
%20principales%20artefactos%20del%20scrum,ruinas%20arqueol
%C3%B3gicas%20y%20reliquias%20antiguas.
de https://devopslatam.com/que-es-el-desarrollo-agil-de-software-ciclo-de-vida-
metodologia-y-ejemplos/
https://picodotdev.github.io/blog-bitix/2021/03/los-conceptos-de-encapsulacion-
herencia-polimorfismo-y-composicion-de-la-programacion-orientada-a-objetos/
Obtenido de https://www.computerweekly.com/es/definicion/Desarrollo-de-
software-agil-o-Agile
https://www.iebschool.com/blog/que-son-metodologias-agiles-agile-scrum/