Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

POLITÉCNICO GRANCOLOMBIANO

ACTIVIDAD COLABORATIVA INGENIERIA DE SOFTWARE

PRIMERA ENTREGA

GRUPO B01 - 11

INTEGRANTES

NICOOL DAYANA CUECA VELANDIA


DANIEL ESTEBAN MÉNDEZ DÍAZ
JIMMY ALEXANDER RIVAS MENDEZ
YEINER DAVID ZABALETA DIAZ
JUAN DAVID CAÑATE CADAVID
JEIMMY LILIANA RACHE CAMARGO

PROFESOR

AVELLANEDA VARGAS MARGARITA

12 DE SEPTIEMBRE DE 2023
TABLA DE CONTENIDO

Introducción .......................................................................................................................................... 2
Objetivos Generales .............................................................................................................................. 4
Objetivos Especificos ............................................................................................................................ 4
Modelos del Proceso de Software ........................................................................................................ 5
• Modelo en cascada: ................................................................................................................... 6
• Modelo en espiral: ..................................................................................................................... 6
• Modelo incremental: ................................................................................................................. 6
• Modelo ágil: ............................................................................................................................... 7
Fases de los Modelos de Software .................................................................................................... 7
Características del Modelo Scrum................................................................................................. 10
Riesgos del Modelo Scrum ............................................................................................................. 13
Mitigación de Riesgos ................................................................................................................. 13
Modelo del Proyecto ....................................................................................................................... 14
Ventajas: ...................................................................................................................................... 15
Desventajas: ................................................................................................................................. 16
Riesgos: ........................................................................................................................................ 16
Cronograma de actividades............................................................................................................ 17
Distribución de roles: .................................................................................................................. 17
Organigrama Jerárquico............................................................................................................ 19
Cronograma de actividades........................................................................................................ 19
Requerimientos Funcionales .......................................................................................................... 20
Requerimientos No Funcionales .................................................................................................... 21
Casos de Uso .................................................................................................................................... 23
Diagrama de clases.......................................................................................................................... 28
Bibliografía ...................................................................................................................................... 28

Introducción
En la era digital actual, la demanda de soluciones tecnológicas que faciliten la gestión

de servicios y la satisfacción de necesidades específicas es cada vez más evidente, mediante

este proyecto se busca aplicar los conocimientos y herramientas centrándose en el proceso de

desarrollo de software, teniendo en cuenta las necesidades dadas por el cliente hasta las fases

previas para la construcción del software requerido. Uno de los campos que ha

experimentado una transformación significativa es el sector de la salud. La necesidad de

acceder rápidamente a profesionales de la salud y agendar citas de manera eficiente se ha

convertido en una prioridad para muchos individuos. En respuesta a esta demanda, nuestro

proyecto de Ingeniería del Software se enfoca en la creación de una herramienta que aborda

de manera efectiva esta necesidad crítica.

Teniendo este contexto, se presentan las necesidades de un cliente que busca un

software que le permita gestionar profesionales de la salud, dependiendo de una agenda

definida en la cual ofrecen servicios, permitiendo a los usuarios buscar el o la profesional,

consultar sus agendas, reservar sesiones y hacer las transacciones de pago en línea, con la

finalidad de la compresión de las necesidades y expectativas del cliente puestas en un

software.

Por medio de este proyecto se desarrollan las competencias en la planificación, diseño

y arquitectura de sistemas software, colocando aprueba la capacidad de traducir los

requerimientos del cliente en un diseño efectivo que ofrezca una experiencia sin

complicaciones. Para abordar este desafío, hemos optado por el modelo de desarrollo de

software incremental. Este enfoque se ha seleccionado cuidadosamente debido a su capacidad

para adaptarse a requisitos cambiantes, su capacidad para entregar funcionalidades en etapas

tempranas y su énfasis en la retroalimentación continua del cliente y del usuario final.


Este documento aspira a ser una valiosa herramienta de referencia para aquellos

involucrados en el mundo de la ingeniería de software, proporcionando una visión completa

de los diferentes modelos de software y su relevancia en la creación de soluciones

informáticas efectivas y eficientes, además de explorar los modelos en sí, se brindarán

ejemplos prácticos y recomendaciones para su implementación exitosa en proyectos reales.

Se abordarán también las ventajas y limitaciones de cada modelo, y se destacarán las

situaciones en las que cada uno puede ser más apropiado. En este informe, detallaremos la

planificación y ejecución de este proyecto, incluyendo el proceso de desarrollo incremental,

sus ventajas y desventajas, así como los riesgos asociados. Además, presentaremos una visión

general de la solución propuesta y su potencial impacto en la mejora del acceso a la atención

médica. Esperamos que este informe sirva como guía y referencia para la ejecución exitosa

de este proyecto y como una contribución significativa al sector de la salud y la tecnología.

Objetivos Generales

Se busca diseñar un sistema de que permita gestionar profesionales de la salud y sus

servicios, que permita a os usuarios la capacidad de buscar, seleccionar, reservar y pagar por

los servicios médicos, este sistema debe satisfacer las necesidades del cliente garantizando

una experiencia fluida, optimizando la gestión de los servicios de salud, al igual que la

accesibilidad y la calidad de la atención médica.

Objetivos Especificos

• Desarrollar funciones que permita a los profesionales de la salud registrar los

servicios que ofrecen y gestionar su agenda.


• Diseñar un sistema que facilite generar consultas y reportes, tales como reportes de

profesionales de salud registrados, usuarios registrados, agenda de un profesional

especifico, agenda de usuario y poder consultar los servicios más solicitados.

• Definir una estructura de datos eficiente para registrar información relevante de los

clientes, abarcando aspectos como nombres completos, género, edades, direcciones de

residencia y direcciones de correo electrónico.

• Desarrollar un sistema que permita a todos los usuarios crear cuentas con un proceso

de inicio de sesión seguro, identificando claramente si son profesionales proveedores

de servicios de salud o clientes.

• Proporcionar a los profesionales de la salud una herramienta de gestión efectiva,

sistema debe permitir a los profesionales de la salud gestionar sus agendas, recibir

notificaciones de citas y acceder a la información relevante del paciente de manera

eficiente.

Modelos del Proceso de Software

Estos son representaciones abstractas y estructuradas de diferentes pasos u tareas a

llevarse a cabo en el desarrollo del software o sistema informática, en estos modelos se

evalúa desde la concepción de la idea hasta la entrega final del producto y su mantenimiento,

los modelos son parte fundamental ya que permiten ser guía para planificar y controlar el

desarrollo. Por otro lado, pueden variar en complejidad e y enfoqué, estos se pueden

gestionar por medio de diferentes enfoques y metodología. Estos modelos son marcos

conceptuales que proporcionan directrices y procesos para la planificación, el diseño, la

implementación, las pruebas y la entrega de software de alta calidad. (Pressman, 2010).


Existen diferentes modelos de procesos de software que se utilizan en el desarrollo de

software. Estos modelos proporcionan una estructura y guía para organizar y gestionar el

proceso de desarrollo de software. Algunos de los modelos más comunes incluyen:

• Modelo en cascada:

Este es uno de los modelos más antiguos y tradicionales. En este modelo, el proceso de

desarrollo se divide en etapas secuenciales, donde cada etapa se completa antes de pasar a la

siguiente. Las etapas típicas en el modelo en cascada incluyen requisitos, diseño,

implementación, pruebas y mantenimiento.

• Modelo en espiral:

Este modelo se basa en la idea de iteración y retroalimentación continua. Se divide en ciclos

donde cada ciclo comienza con la identificación de los objetivos y riesgos, seguido del

desarrollo, la evaluación y la planificación de la siguiente iteración. Este enfoque permite la

adaptación a medida que se obtiene más información y se gestionan los riesgos.

• Modelo incremental:

Este modelo se centra en la entrega rápida y continua de funcionalidades. El desarrollo se

divide en incrementos o versiones, donde cada incremento agrega nuevas funcionalidades al

producto. Esto permite una retroalimentación temprana y la posibilidad de realizar ajustes a

medida que se avanza en el proceso.


• Modelo ágil:

Los modelos ágiles, como Scrum y Kanban, se centran en la colaboración, la adaptabilidad y

la entrega rápida de software funcional. Estos modelos se basan en ciclos cortos de desarrollo

llamados "sprints" y se enfocan en la entrega continua de valor al cliente.

Fases de los Modelos de Software

El modelo en cascada se compone de varias fases secuenciales. donde cada fase debe

completarse antes de pasar a la siguiente. Las fases típicas del modelo en cascada incluyen:

a. Requisitos: Identificación y documentación de los requisitos del software, incluyendo

las necesidades de los usuarios y el alcance del proyecto.

b. Diseño: Creación de un diseño detallado que establece la arquitectura y la estructura

del software en base a los requisitos.

c. Implementación: Codificación y desarrollo del software, creando los módulos y

funciones necesarios.

d. Pruebas: Realización de pruebas exhaustivas para verificar el cumplimiento de los

requisitos y corregir errores.

e. Despliegue: Entrega e instalación del software en el entorno de producción,

asegurando su funcionamiento en el mundo real y brindando capacitación y soporte.

f. Mantenimiento: Enfoque en la mejora continua, corrección de errores y

actualizaciones según las necesidades del usuario.

El modelo en espiral es una metodología que repite ciclos para permitir el desarrollo

incremental y la gestión de riesgos de manera iterativa:


a. Determinación de objetivos: Definición de los objetivos del proyecto y

identificación de requisitos.

b. Análisis de riesgos: Evaluación y gestión de riesgos, identificación de problemas y

estrategias para mitigarlos.

c. Desarrollo y validación: Implementación incremental, creación de prototipos,

desarrollo y pruebas en cada ciclo, con revisiones y validaciones.

d. Planificación: Definición del plan para el siguiente ciclo, evaluación de resultados y

decisiones sobre alcance y recursos.

El modelo ágil se compone de varios elementos y prácticas que promueven una forma de

trabajo colaborativa y flexible. Aunque las prácticas pueden variar según la metodología ágil

específica que se esté utilizando, a continuación, se presentan algunos componentes comunes

del modelo ágil:

a. Iteraciones o sprints: El trabajo se divide en ciclos más cortos llamados iteraciones o

sprints, con objetivos específicos que suelen durar de una a cuatro semanas.

b. producto: Una lista priorizada de todas las funcionalidades y requisitos del producto

que se actualiza constantemente y se utiliza para planificar las tareas en cada

iteración.

c. Reuniones diarias de seguimiento: Reuniones breves llamadas "daily stand-ups"

donde los miembros del equipo comparten lo que hicieron, lo que planean hacer y si

tienen impedimentos.

d. Roles y responsabilidades definidos: El equipo ágil tiene roles claramente definidos,

como Scrum Master, Product Owner y miembros del equipo de desarrollo, cada uno

con responsabilidades específicas.


e. Entrega continua: Se prioriza la entrega constante de incrementos de software

funcional y de calidad en lugar de esperar al final del proyecto.

f. Feedback y adaptación continua: Se busca la retroalimentación constante de

clientes y stakeholders para realizar ajustes y mejoras continuas en el producto.

g. Enfoque en colaboración y comunicación: El trabajo en equipo, la comunicación

efectiva y la colaboración son esenciales, promoviendo la interacción constante entre

los miembros del equipo y la transparencia en todas las etapas del proyecto.

El modelo incremental se compone de varias etapas que se repiten de manera iterativa,

permitiendo el desarrollo gradual del software. Aunque las etapas pueden variar según la

implementación específica, las siguientes son comunes en el modelo incremental:

a. Requisitos iniciales: Identificar las necesidades iniciales del usuario y documentar

los requisitos básicos.

b. Diseño y desarrollo del núcleo: Crear la base del software con los componentes

clave.

c. Entrega del incremento: Implementar y entregar una versión funcional del software.

d. Evaluación y retroalimentación: Recopilar comentarios del usuario y evaluar el

software.

e. Planificación del siguiente incremento: Planificar nuevas características y asignar

recursos en base a la retroalimentación recibida.


Características del Modelo Scrum

a. Iterativo e incremental: Scrum divide el proyecto en iteraciones llamadas "sprints"

de 1 a 4 semanas, generando incrementos del producto que agregan valor al cliente.

b. Roles definidos: Define tres roles clave: el Product Owner, el Scrum Master y el

Equipo de Desarrollo, cada uno con responsabilidades claras para el éxito del

proyecto.

c. Eventos estructurados: Establece eventos regulares como Planificación del Sprint,

Reunión Diaria del Scrum, Revisión del Sprint y Retrospectiva del Sprint,

manteniendo la transparencia y la comunicación del equipo.

d. Artefactos clave: Utiliza artefactos como el Product Backlog (lista priorizada de

elementos del producto) y el Sprint Backlog (lista de tareas del sprint) para gestionar

el trabajo y mantener la visibilidad del progreso.

e. Colaboración Cliente-Desarrollo: Promueve la colaboración cercana con el cliente a

lo largo del desarrollo, ya que los requisitos pueden no estar completamente definidos

inicialmente, asegurando que el producto final cumpla con las expectativas del

cliente.

Beneficios del Modelo Scrum

a. Flexibilidad y adaptabilidad: Scrum permite al equipo adaptarse a los cambios de

requisitos y prioridades a medida que se desarrolla el proyecto. Esto ayuda a satisfacer

las necesidades cambiantes del cliente ya entregar un producto de mayor valor.

b. Mayor transparencia y comunicación: Scrum promueve la transparencia al hacer

visible el trabajo realizado y los objetivos a alcanzar. La comunicación regular y


abierta entre el equipo y los stakeholders ayuda a alinear las expectativas y resolver

problemas de manera más eficiente.

c. Entrega temprana y continua de valor: Scrum se centra en entregar incrementos de

producto funcional en cada sprint. Esto permite que el cliente obtenga valor tangible

de manera temprana y brinda la oportunidad de recibir retroalimentación constante

para mejorar el producto.

d. Mayor colaboración y compromiso del equipo: Scrum fomenta la colaboración y la

responsabilidad compartida en el equipo. La participación activa de todos los

miembros del equipo ayuda a maximizar la creatividad y la resolución de

problemas.12, lo que conduce a una mayor calidad del producto.

e. Mejor gestión del riesgo: Scrum permite una gestión más efectiva del riesgo al

identificar y abordar los problemas de manera temprana en cada sprint. Esto reduce la

posibilidad de desviaciones significativas en el proyecto y aumenta la probabilidad de

éxito.

El modelo Scrum, al igual que cualquier otro enfoque de gestión de proyectos, tiene sus

propios riesgos asociados. Algunos posibles riesgos del modelo Scrum incluyen:

a. Falta de experiencia en Scrum: Si el equipo no tiene experiencia previa con Scrum,

puede ser difícil implementar el modelo de manera efectiva. Esto puede resultar en

una mala planificación, falta de comprensión de los roles y responsabilidades, y una

ejecución deficiente del proceso.

b. Cambios frecuentes en los requisitos: Scrum se basa en la adaptabilidad y la

capacidad de responder a los cambios de requisitos. Sin embargo, si los cambios son
demasiado frecuentes o drásticos, puede haber dificultades para mantener el enfoque y

la estabilidad en el desarrollo del proyecto.

c. Falta de compromiso del equipo: Scrum requiere un alto nivel de compromiso y

colaboración por parte de todos los miembros del equipo. Si alguno de los miembros

no está comprometido o no comprende completamente su rol, puede afectar

negativamente la productividad y el éxito del proyecto.

d. Gestión inadecuada del backlog: El backlog de producto es una parte fundamental

de Scrum1, y su gestión adecuada es crucial. Si el backlog no se prioriza

correctamente o no se mantiene actualizado, puede haber problemas de planificación

y entrega ineficiente de valor al cliente.

e. Falta de apoyo y comprensión de la alta dirección: Scrum requiere un cambio de

mentalidad y una cultura organizativa que apoye los principios ágiles. Si la alta

dirección no respalda y comprende plenamente los beneficios de Scrum, puede haber

resistencia al cambio y dificultades para implementar el modelo de manera efectiva.

f. Estimación y Planificación Incorrectas: Los equipos de desarrollo pueden tener

dificultades para estimar correctamente el tiempo necesario para completar las tareas.

Esto se puede dar por la falta de criterios dentro de las Historias o por falta de

definición de arquitectura o negocio, lo cual puede generar mayores plazos de entrega

y por ello afectando al cliente.


Riesgos del Modelo Scrum

Aunque la gestión del riesgo es clave en cualquier desarrollo de proyecto, Scrum

permite reducir los riesgos a fracasar teniendo así 3 tipos de riesgo básicos:

1. Riesgo de Mercado

2. Riesgo Técnico

3. Riesgo Financiero

Mitigación de Riesgos

Riesgo de mercado: Scrum permite entregas continuas y feedback temprano, lo que reduce

el riesgo de desarrollar un producto que el mercado no necesita. Los cambios y nuevas

funcionalidades se pueden agregar gradualmente para adaptarse a las demandas cambiantes

del cliente.

Riesgo técnico: A través de sesiones de planeación y prototipos, Scrum ayuda a identificar y

mitigar riesgos técnicos al tomar decisiones informadas y prever desafíos técnicos. Además,

tener una arquitectura previa establecida reduce la incertidumbre técnica.

Riesgo financiero: Scrum acelera la recuperación de la inversión al proporcionar entregas

incrementales, lo que permite que el cliente vea y valore el producto antes. Esto disminuye el

tiempo necesario para llevar el producto al mercado.

Scrum también destaca los riesgos adicionales, como la falta de comprensión del cliente

o problemas con productos de terceros. Estos riesgos se visibilizan tempranamente a través de

iteraciones cortas, lo que permite abordarlos y tomar medidas para evitar que se conviertan en
obstáculos importantes para el proyecto. La gestión de riesgos se basa en los principios

fundamentales de Scrum.

Modelo del Proyecto

El modelo que se eligió para implementar en el proyecto es el Incremental, este modelo

se caracteriza por dividir el desarrollo del software en iteraciones o ciclos cortos, cada uno de

los cuales se enfoca en entregar un conjunto de funcionalidades que satisfacen los

requerimientos del cliente. Al final de cada iteración, se realizan pruebas y se obtiene

retroalimentación del cliente, lo que permite corregir errores y mejorar el software.

Asimismo, permite construir el proyecto en etapas incrementales en donde cada etapa

agrega funcionalidad. Estas etapas, consisten en requerimientos, diseño, codificación, pruebas

y entrega. Lo que permite entregar al cliente un producto más rápido en comparación del

modelo en cascada.

• Reduce los riegos ya que provee visibilidad sobre el progreso de las nuevas versiones.

• Provee retroalimentación a través de la funcionalidad mostrada.

• Permite atacar los mayores riesgos desde el inicio.

• Se pueden hacer implementaciones parciales si se cuenta con la suficiente

Funcionalidad.

• Las pruebas y la integración son constantes.

• El progreso se puede medir en periodo cortos de tiempo.

• Resulta más sencillo acomodar cambios al acortar el tamaño de los incrementos.

• Se puede planear en base a la funcionalidad que se quiere entregar primero.

• Por su versatilidad requiere de una planeación cuidadosa tanto a nivel administrativo

como técnico.
El desarrollo incremental e iterativo es también una parte esencial de un tipo de

programación conocido como Extreme Programming y los demás frameworks de desarrollo

rápido de software.

FIGURA 1. Diagrama de secuencias.

Ventajas:

• La solución se va mejorando en forma progresiva a través de las múltiples iteraciones,

• incrementa el entendimiento del problema y de la solución por medio de los

refinamientos sucesivos.

• Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden

empezar a usarlo desde el primer incremento. Los clientes pueden aclarar los

requisitos que no tengan claros, conforme ven las entregas del sistema.

• Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir en

cada incremento.

• Las partes más importantes del sistema son entregadas primero, por lo cual se realizan

más pruebas en estos módulos y se disminuye el riesgo de fallos.


• Permite adaptarse a los cambios de requerimientos de forma flexible. El proyecto

tiene un plazo de entrega ajustado.

• El modelo iterativo incremental permite entregar el software de forma incremental, lo

que facilita el cumplimiento de los plazos.

Desventajas:

• Requiere de mucha planeación, tanto administrativa como técnica

• Requiere de metas claras para conocer el estado del proyecto.

• Es un proceso de desarrollo de software, creado en respuesta a las debilidades del

modelo tradicional de cascada.

Riesgos:

• El riesgo de no cumplir con los requerimientos del cliente: Este riesgo se puede

mitigar mediante la comunicación constante con el cliente y la realización de pruebas

a lo largo del desarrollo.

• El riesgo de no cumplir con los plazos de entrega: Este riesgo se puede mitigar

mediante la planificación cuidadosa de las iteraciones y la asignación de los recursos

necesarios.

Para gestionar estos riesgos que se pueden generar con respecto al metodo y teniendo en

cuenta el proyecto, propongo las siguientes estrategias:


• Revisión constante de los requerimientos con el cliente: Lo cual permitirá asegurar

que el software se desarrolla de acuerdo con las necesidades del cliente.

• Realización de pruebas unitarias de integración y funcionales a lo largo del desarrollo.

Esto permitirá detectar y corregir errores de forma temprana.

• Planificación cuidadosa de las iteraciones teniendo en cuenta la capacidad del equipo

y asignación de los recursos necesarios para el cumplimiento del tiempo programado.

Esto permitirá asegurar que el proyecto se desarrolla de forma eficiente.

Cronograma de actividades

La planificación y ejecución de un proyecto de desarrollo de software es un proceso

esencial para asegurar su éxito, por ello se presenta el cronograma de actividades, que ofrece

una una visión general de las tareas clave, los roles involucrados y el calendario que guiará el

desarrollo de un software de alta calidad.

Distribución de roles:

✓ Gerente de proyecto: Nicool Dayana Cueca

✓ Analista de negocios: Daniel Esteban Méndez.

✓ Arquitecto de software: Jimmy Alexander Rivas

✓ Desarrollador1: Yeiner David Zabaleta

✓ Desarrollador2: Juan David Cañate

✓ Tester: Jeimmy Liliana Rache


Gerente de Proyecto: Es la persona responsable de planificar, coordinar y supervisar

las actividades correspondientes a un proyecto. Debe asegurarse de que el proyecto se

complete a tiempo, dentro del presupuesto y se cumplan los objetivos establecidos. También

se encarga de la comunicación con los stakeholders y la gestión de riesgos.

Analista de Negocios: Este rol se encarga de realizar el entendimiento de las

necesidades y objetivos de una organización y traducirlos en requisitos para cada para

proyecto. Trabaja en conjunto con los stakeholders para identificar oportunidades de mejora y

proponer soluciones que beneficien a la empresa.

Arquitecto de Software: El Arquitecto diseña toda la estructura y la arquitectura del

sistema de software. Determina cuales son las mejores tecnologías a utilizar, la distribución

en los componentes y asegura que el software cumpla con los estándares de calidad y

Escalabilidad necesarios.

Desarrollador: Miembro del equipo de desarrollo de software encargado de escribir

código y crear funcionalidades de acuerdo con los requisitos del proyecto. Puede ser

responsable de áreas específicas del desarrollo.

Tester: Es responsable de evaluar y probar el software en busca de defectos y

problemas. Realiza pruebas funcionales y de rendimiento para garantizar que el software

cumple con los estándares de calidad antes de su lanzamiento. También reporta y documenta

los errores encontrados para su corrección.


Organigrama Jerárquico.

Imagen 1. Organigrama Jerárquico

GrupoB01. (2023). Organigrama Jerárquico [1]. Archivo personal.

Cronograma de actividades.

Fase Duración Roles Actividades principales


estimada
Inicio 2 semanas - Gerente de Proyecto - Definición de Objetivos y Alcance
- Analista de Negocios del Proyecto
- Análisis de Requerimientos
- Definición del Equipo
- Planificación Inicial

Elaboración 4-6 semanas - Arquitecto de Software - Diseño Arquitectónico


- Desarrolladores - Desarrollo de Prototipo
- Desarrollo Iterativo
- Desarrollo de la Interfaz de
Usuario
Construcción 8-10 semanas - Desarrolladores - Desarrollo de Funcionalidades
- Tester Específicas
- Implementación de Roles y
Permisos
- Integración de Bases de Datos
- Pruebas Unitarias y de Integración
Transición 2-4 semanas - Gerente de Proyecto - Pruebas de Aceptación del Cliente
- Tester - Capacitación y Documentación
- Implementación y Despliegue
- Soporte Inicial
Cierre 1 semana - Gerente de Proyecto - Evaluación Pos-implementación
- Todos los miembros del - Entrega Final
equipo - Documentación Final
- Cierre de Proyecto

Requerimientos Funcionales

Los requerimientos funcionales identificados a partir de los requerimientos del cliente

son:

Requerimiento Detalle
Autenticación de Usuarios Todos los usuarios deben tener una cuenta con login y
contraseña e identificar si es un profesional proveedor de
servicios o un cliente.

Registro de Profesionales de la Debe ser posible registrar a los profesionales de la salud,


Salud incluyendo su nombre completo, tipo de servicio que
ofrecen, dirección, costos de los servicios, horario y
agenda, duración de la sesión de servicio y capacidad
para atender a varios usuarios a la vez.
También se debe permitir la identificación como
personas naturales o jurídicas, si es necesario.
Registro de Clientes Se debe permitir el registro de clientes, recopilando
información como nombre completo, género, edad,
dirección de residencia y correo electrónico.
Búsqueda de Profesionales de Los clientes deben poder buscar profesionales de la salud
la Salud por nombre, tipo de servicio y ubicación.
Consulta de Agenda de Permite a los clientes programar citas con profesionales
Profesionales de manera conveniente y eficiente

Reserva de sesion con Garantiza que se cumplan las citas programadas


Profesionales
Pago de sesion Los clientes puedes pagar en linea la sesion que tienen
agendada para agilizar la administración de
transacciones en tu plataforma
Modificación de Citas Los clientes pueden modificar la fecha y hora de sus
sesiones reservadas.

Restricción de Citas Un cliente no puede agendar más de una sesión a la vez.


Registro y Consulta de permite a los profesionales registrarse en la plataforma,
Servicios de Profesionales promocionar sus servicios y gestionar su agenda de
manera efectiva.
Generación de Consultas y El sistema debe permitir generar consultas y reportes,
Reportes como el reporte de profesionales de la salud registrados,
el reporte de usuarios registrados, la agenda de un
profesional específico, la agenda de un usuario
específico y la consulta de los servicios más solicitados.

Requerimientos No Funcionales

Los requerimientos No funcionales identificados a partir de los requerimientos del

cliente son:

Requerimiento Detalle
Rendimiento Tiempo de respuesta: El sistema debe tener un tiempo de
respuesta promedio de menos de 2 segundos para cualquier
acción realizada por el usuario, como búsqueda de profesionales
o reserva de sesiones.

Capacidad de carga: El sistema debe ser capaz de manejar


simultáneamente al menos 1000 usuarios sin experimentar una
degradación significativa del rendimiento.

Disponibilidad Disponibilidad del sistema: El sistema debe estar disponible las


24 horas del día, los 7 días de la semana, con un tiempo de
inactividad planificado de no más de una hora al mes para
mantenimiento.

Respuesta ante fallos: En caso de una interrupción inesperada,


el sistema debe ser capaz de recuperarse automáticamente en un
máximo de 5 minutos.

Estabilidad Estabilidad del sistema: El sistema debe ser capaz de funcionar


de manera estable durante al menos 30 días consecutivos sin
errores críticos que requieran una intervención manual.
Integridad de Datos Respaldo y recuperación de datos: Se debe realizar una copia
de seguridad diaria de la base de datos del sistema, y se debe
contar con un procedimiento de recuperación en caso de pérdida
de datos que permita recuperar los datos en un máximo de 4
horas.
Mantenibilidad Facilidad de mantenimiento: El sistema debe estar diseñado de
manera que los parches de seguridad y las actualizaciones
puedan implementarse sin interrupciones en el servicio y con un
tiempo de inactividad planificado mínimo.
Seguridad Acceso seguro: Se debe implementar la autenticación de dos
factores (2FA) para garantizar que el acceso al sistema sea
seguro.

Protección de datos sensibles: Los datos personales y médicos


de los usuarios deben almacenarse y transmitirse de forma
cifrada (por ejemplo, utilizando SSL/TLS).

Eficiencia Optimización de recursos: El sistema debe utilizar los recursos


del servidor de manera eficiente para minimizar el consumo de
CPU y memoria, garantizando así un rendimiento óptimo.

Escalabilidad Escalabilidad horizontal: El sistema debe ser capaz de escalar


horizontalmente para manejar un aumento repentino en el
número de usuarios sin afectar el rendimiento. Esto debe lograrse
mediante el uso de servicios en la nube o tecnologías similares.

Compatibilidad Compatibilidad con navegadores: El sistema debe ser


compatible con los navegadores web más comunes, como
Chrome, Firefox, Safari y Edge, en sus versiones más recientes.

Compatibilidad con dispositivos: El sistema debe ser accesible


y usable en dispositivos móviles y tabletas, y debe ser responsivo
para adaptarse a diferentes tamaños de pantalla.

Interoperabilidad Estándares de comunicación: El sistema debe seguir


estándares de comunicación ampliamente aceptados en la
industria de la salud, como HL7 (Health Level Seven) para el
intercambio de datos médicos.

Integración con sistemas externos: El sistema debe ser capaz


de integrarse de manera efectiva con otros sistemas de salud
externos, como sistemas de registros médicos electrónicos
(EHR) y sistemas de facturación de seguros.
Casos de Uso
Diagrama de clases

A continuación, presentamos el diagrama de clases identificado en nuestro proyecto

de software. Este diagrama es esencial, ya que simplifica la visualización de la estructura del

sistema y sus relaciones, mejorando la comunicación del equipo, facilitando la detección

temprana de errores y apoyando la toma de decisiones durante la ejecución del proyecto, lo

que es fundamental para el desarrollo exitoso del software.

Bibliografía
• Sharma, P., & Sharma, P. (2022). Top 9 software development models to choose

from: Phases and applications. Cynoteck. https://cynoteck.com/es/blog-post/top-

software-development-models-to-choose-from/

• Berry, P. (s. f.). Diferencia entre el modelo de cascada y el modelo en espiral (con

cuadro comparativo) - Tecnología - 2023. surveillancepackages.

https://es1.surveillancepackages.com/difference-between-waterfall-model-and-spiral-

model-88

• Benedet, M., & Benedet, M. (2023b, marzo 21). Metodología ScRum: ventajas y

desventajas. Legaltech. https://blog.lemontech.com/metodologia-scrum-ventajas-

desventajas/

• Pérez, A. (2021, 8 septiembre). ¿Qué es un SCRUM? características y ventajas. OBS

Business School. https://www.obsbusiness.school/blog/que-es-un-scrum-

caracteristicas-y-ventajas

• Dominguez, A. (2021). Product owner ó scrum master. Alberto Domínguez.

https://www.albertodominguez.co/scrum-master-product-owner/

• Cruz, A. L. (2020, December 30). Metodología Scrum para el desarrollo de software

ágil. Eniun. https://www.eniun.com/metodologia-scrum-desarrollo-software-agil/

• Desarrollo iterativo e incremental. (2008, September 27). Proyectos Ágiles.

https://proyectosagiles.org/desarrollo-iterativo-incremental/

• Desarrollo iterativo e incremental. (2019, September 22). Se hace camino al andar.

https://blog.jmbeas.es/2019/09/22/desarrollo-iterativo-e-incremental/

• NimbleWork, P. R. (2022, December 22). Desarrollo Iterativo E Incremental -

Metodología ágil. Nimblework; NimbleWork, Inc.

https://www.nimblework.com/es/agile/desarrollo-iterativo-e-incremental/
• Ortiz, E. (2022, March 18). Metodología SCRUM: Descubre que es y como

implementarlo. Cloud Computing y Servicios Gestionados IT.

https://www.ilimit.com/blog/metodologia-scrum/

• érez, A. (2016, May 3). Los riesgos de la metodología Scrum. OBS Business School.

https://www.obsbusiness.school/blog/los-riesgos-de-la-metodologia-scrum.

• Wiegers, K., & Beatty, J. (2013). Software requirements. Pearson Education.

• Van Lamsweerde, A. (2009). Requirements engineering: From system goals to UML

models to software (Vol. 10, p. 34). Chichester, UK: John Wiley & Sons.

• Cockburn, A. (2001). Writing effective use cases. Pearson Education India.

• Lázaro, J. C. G. Diagramas de Clases y Casos de Uso.

• Zapata, C. M., & González, G. (2008). Especificación formal en OCL de reglas de

consistencia entre los diagramas de clases y casos de uso de UML y el modelo de

interfaces. Revista Ingenierías Universidad de Medellín, 7(12), 169-191.

También podría gustarte