Está en la página 1de 50

FACULTAD DE INGENIERÍA

ESCUELA PROFESIONAL DE INGENIERÍA DE


SISTEMAS

CURSO:
Ingeniería de Software II

TEMA:
“sistema de control de acceso y de citas para la Clínica San Jorge”

DOCENTE:
Dr. Ing. Andres Epifanía Huerta

INTEGRANTES:
Alegre Polo Jhordy Chiroque
Arroyo Maifher Sahit
Paredes Sanchez Andre Ivan
Valdez Zapata Edwin Daniel
Sánchez Valverde Luis Daniel

PERÚ-2023
INTRODUCCIÓN

Hoy en día las empresas e instituciones manejan cantidades de información exorbitantes, los
hospitales y las clínicas de hoy en día no se quedan atrás. Estos interactúan con una gran
cantidad de personas diariamente, entre personal, doctores y pacientes. La seguridad y
legitimidad de esta información es esencial en cualquiera de estos establecimientos para lo
cual hoy en día es imprescindible que los archivos cuenten con servicios informáticos.

La clínica san Jorge tiene como objetivo satisfacer de manera eficaz y eficiente las
necesidades de cuidado de salud de la comunidad, así como también brindar a toda la
comunidad la mejor atención médica basada en la evidencia científica y contenido ético,
acompañando al paciente y su familia, También colabora con la Educación del paciente, su
familia y la sociedad, brindando cuidado y promoción de actitudes saludables, por último
garantiza la revisión y actualización de los conocimientos, procesos, tecnologías y
estructuras, gestionando nuestros recursos con racionalidad económica de forma transparente
y honesta.

Actualmente la Clínica San Jorge presenta problemas al momento de hacer diligencias o


apartar una cita médica, ahorrándoles las engorrosas filas y madrugadas para poder acceder a
este centro de salud, este es uno de los más grande problemas a diario que se presenta pero
como mecanismo para resolver esta necesidad hemos optado por un sistema de control de
acceso y de citas a los diferentes usuarios, esta idea surge con el fin de realizar un sistema
innovador; y económico, con tecnología de punta; que su tiempo de vida sea, al menos a
mediano plazo; escalable; confiable; seguro y con interfaces amigables para así de esta forma
sea más sencilla para el usuario.
I. ARQUITECTURA DEL SISTEMA

¿QUE ES LA INGENIERÍA DE SOFTWARE?

La ingeniería del software es una disciplina que implica el uso de estructuras, herramientas y
técnicas para construir programas informáticos.Así mismo, incluye el análisis previo de la
situación, la redacción del proyecto, la creación del software y las pruebas necesarias para
garantizar el correcto funcionamiento del software antes de poner el sistema en
funcionamiento.

Esta ingeniería aborda todas las fases del ciclo de vida de desarrollo de cualquier tipo de
sistema de información y es aplicable a una amplia gama de ámbitos de la informática y la
ciencia de los ordenadores, como el diseño de compiladores, sistemas operativos y
tecnologías de Intranet/Internet: La empresa, la investigación científica, la medicina, la
fabricación, la logística, la banca, el control del tráfico y la meteorología son sólo algunos de
los campos en los que puede trabajar.La ingeniería de software es un campo de estudio que
abarca las estructuras, instrumentos y los métodos utilizados en el desarrollo de programas
informáticos. Por tanto, la ingeniería del software es una rama de la ingeniería que desarrolla
y gestiona sistemas de software utilizando técnicas y experimentos de la informática, la
gestión de proyectos y otras disciplinas.

SISTEMA DE INFORMACIÓN

DEFINICIÓN

Al inicio de la informática, el software era un componente más. El programa se consideraba


un arte, para el que no existían métodos, era un procedimiento que se realizaba sin
planificación alguna para entonces, todo el programa se desarrollaba con las dimensiones
propias para cada necesidad concreta, y por consiguiente, normalmente tenía muy poca
difusión, por lo que, solo quien lo necesita, escribía sobre el asunto y este mismo se
encargaba de mantenerlo.Para mediado de los años sesenta se constituye el software como
producto y es cuando aparecen las empresas que se dedican al desarrollo y distribución
masiva del mismo.

El término Ingeniería del Software, surge cuando se llevaba a cabo dos conferencias
estructuradas por la OTAN en los años en 1967 y 1968.Es para mediados de la década los 70,
cuando los sistemas informáticos incrementaron la dificultad y dan pie a la creación de las
redes de computadoras,este hecho presionó a quienes desarrollaban las computadoras
personalizadas, aunque no se sabía mucho sobre ellas; al final de esta etapa, surgieron los
microprocesadores.La cuarta época del progreso de los sistemas informáticos, comienza en
los 90 y se orienta hacia el impacto general de las computadoras y el software, en todos los
entornos.La industria del software es de gran importancia en la economía mundial. Se ponen
de manifiesto las técnicas de redes neuronales, al igual que la lógica difusa, de interés en el
campo de la Inteligencia Artificial.

TIPOS DE SISTEMA DE INFORMACIÓN:

Los tipos de sistemas de la información más populares pueden clasificarse de la siguiente


forma:

1. Sistemas de procesamiento de transacciones

Los sistemas de procesamiento de transacciones (TPS por sus siglas en inglés) son los
sistemas empresariales básicos que sirven al nivel operacional de la organización.

Un sistema de procesamiento de transacciones es un sistema computarizado que realiza y


registra las transacciones rutinarias diarias necesarias para el funcionamiento de la empresa.
Se encuentran en el nivel más bajo de la jerarquía organizacional y soportan las actividades
cotidianas del negocio.

2. Sistemas de control de procesos de negocio

Los sistemas de control de procesos de negocio (BPM por sus siglas en inglés) monitorizan y
controlan los procesos industriales o físicos, como puede ser la refinación de petróleo,
generación de energía o los sistemas de producción de acero en una planta siderúrgica.

Por ejemplo, en una refinería de petróleo se utilizan sensores electrónicos conectados a


ordenadores para monitorizar procesos químicos continuamente y hacer ajustes en tiempo real
que controlan el proceso de refinación. Un sistema de control de procesos comprende toda
una gama de equipos, programas de ordenador y procedimientos de operación.

3. Sistemas de colaboración empresarial

Los sistemas de colaboración empresarial (ERP por sus siglas en inglés) son uno de los tipos
de sistemas de información más utilizados. Ayudan a los directivos de una empresa a
controlar el flujo de información en sus organizaciones.

Se trata de uno de los tipos de sistemas de información que no son específicos de un nivel
concreto en la organización, sino que proporcionan un soporte importante para una amplia
gama de usuarios. Estos sistemas de información están diseñados para soportar tareas de
oficina como sistemas multimedia, correos electrónicos, videoconferencias y transferencias
de archivos.

4. Sistemas de Información de Gestión

Los sistemas de información de gestión (MIS por sus siglas en inglés) son un tipo de sistemas
de información que recopilan y procesan información de diferentes fuentes para ayudar en la
toma de decisiones en lo referente a la gestión de la organización.

Los sistemas de información de gestión proporcionan información en forma de informes y


estadísticas. El siguiente nivel en la jerarquía organizacional está ocupado por gerentes y
supervisores de bajo nivel. Este nivel contiene los sistemas informáticos que están destinados
a ayudar a la gestión operativa en la supervisión y control de las actividades de procesamiento
de transacciones que se producen a nivel administrativo.

Los sistemas de información de gestión utilizan los datos recogidos por el TPS para
proporcionar a los supervisores los informes de control necesarios. Los sistemas de
información de gestión son los tipos de sistemas de información que toman los datos internos
del sistema y los resumen en formatos útiles como informes de gestión para utilizarlos como
apoyo a las actividades de gestión y la toma de decisiones.

5. Sistemas de apoyo a la toma de decisiones

Un sistema de apoyo a la toma de decisiones o de soporte a la decisión (DSS por sus siglas en
inglés) es un sistema basado en ordenadores destinado a ser utilizado por un gerente
particular o por un grupo de gerentes a cualquier nivel organizacional para tomar una decisión
en el proceso de resolver una problemática semiestructurada. Los sistemas de apoyo a la toma
de decisiones son un tipo de sistema computerizado de información organizacional que ayuda
al gerente en la toma de decisiones cuando necesita modelar, formular, calcular, comparar,
seleccionar la mejor opción o predecir los escenarios.

Los sistemas de apoyo a la toma de decisiones están específicamente diseñados para ayudar al
equipo directivo a tomar decisiones en situaciones en las que existe incertidumbre sobre los
posibles resultados o consecuencias. Ayuda a los gerentes a tomar decisiones complejas.
6. Sistemas de Información Ejecutiva

Los sistemas de información ejecutiva (EIS por sus siglas en inglés) proporcionan un acceso
rápido a la información interna y externa, presentada a menudo en formato gráfico, pero con
la capacidad de presentar datos básicos más detallados si es necesario. Los sistemas de
información ejecutiva proporcionan información crítica de una amplia variedad de fuentes
internas y externas en formatos fáciles de usar para ejecutivos y gerentes.

Un sistema de información ejecutiva proporciona a los altos directivos un sistema para ayudar
a tomar decisiones estratégicas. Está diseñado para generar información que sea lo
suficientemente abstracta como para presentar toda la operación de la empresa en una versión
simplificada para satisfacer a la alta dirección.

CARACTERÍSTICAS DE LOS SISTEMAS DE INFORMACIÓN


Las principales características de un sistema de información son:

➢ Se utiliza para recolectar, almacenar e incorporar datos.


➢ Puede ser un sistema formal, cuando utiliza medios basados en ordenadores o
estructuras sólidas para alcanzar la meta o el objetivo, o un sistema informal, cuando
utiliza estructuras más elementales o artesanales como, por ejemplo, un lápiz y un
papel.
➢ Almacena información cualitativa (información no numérica) e información
cuantitativa (variables numéricas).
➢ Está formado por datos que son introducidos manual o automáticamente para crear
una base de datos.
➢ Utiliza encuestas, cuestionarios, observaciones de campo, censos o investigaciones
para obtener datos.
➢ Debe ser evaluado y medido para ser actualizado o para corregir posibles errores.
➢ Debe ser seguro para evitar que la información recopilada sea extraviada o robada.
➢ Requiere de algún tipo de retroalimentación, esto quiere decir que la información sale
del sistema y vuelve a ingresar con mayor elaboración o con más información.
● Datos de la empresa o negocio (Visión, mision, Objetivos, organigrama)

Nombre de la empresa: Clinica San Jorge

Misión de la empresa: Satisfacer de manera eficaz y eficiente las necesidades de


cuidado de salud de la comunidad.

Brindar a toda la comunidad la mejor atención médica basada en la evidencia


científica y contenido ético, acompañando al paciente y su familia.

Colaborar con la Educación del paciente, su familia y la sociedad, brindando cuidado


y promoción de actitudes saludables.

Garantizar la revisión y actualización de los conocimientos, procesos, tecnologías y


estructuras, gestionando nuestros recursos con racionalidad económica de forma
transparente y honesta.

Visión de la empresa: Crear y sostener un sistema integral de salud privada, que


ofrezca un espacio de crecimiento y desarrollo profesional enfocado en la excelencia y
calidez en la asistencia al paciente y su familia.

Ser una Organización Modelo en Gestión y Asistencia en el cuidado de la Salud

Valores de la empresa: Trabajo en equipo: Trabajar con un objetivo común,


respetando y valorando las diferentes opiniones, fortaleciendo las relaciones
interpersonales y priorizando el éxito del equipo en beneficio del resultado por sobre
el éxito individual.

Equidad: En la utilización de los recursos y servicios de la institución sin distinción de


edad, género, grupo social, ideología y credo, estado de salud o enfermedad.

Responsabilidad: Construir las tareas orientadas al logro de los mejores resultados.


Asumir un rol activo en la labor diaria tanto en la clínica como dentro de la sociedad.

Ética: Mantener una conducta transparente, honesta y ocupada por el confort de todas
las personas con las que interactuamos.

Compromiso: Desarrollar todas las tareas, enfocando el esfuerzo en brindar atención


de calidad a nuestros pacientes y su familia.

Eficiencia: Lograr los objetivos utilizando procesos y métodos de trabajo que


optimicen el desempeño con la mejor utilización de los recursos.
Organigrama de la empresa:

Organigrama disponible en:


http://www.sanatoriosanjorge.com.ar/sanjorge/documentos/Organigrama.pdf

● Descripción del Problema a sistematizar


La clínica San Jorge sostiene una visión, la cual se preocupa por dar un buen servicio
al cliente; para lograr eso debe optimizar el servicio y tomar en cuenta varios detalles
importantes de cada cliente, por ello se ve necesario el desarrollo de un sistema de
control de citas médicas. Este sistema colabora con datos importantes y nos permitirá
dar la mejor atención posible al cliente.
● Identificación de los requerimientos

No Descripción

Consultas / Informes

R01 Informe Récord de pacientes

R02 Informe Citas por fecha


R03 Informe Citas por paciente
por fecha

No Descripción

Almacenamiento

R04 Datos de Pacientes:C_PNOMBRE, C_SNOMBRE,


C_PAPELIDO, C_SAPELLIDO, C_SEXO,
D_FNAC, C_CEDULA, C_TELEFONO,
C_COMPANIA, C_TELCOMPANIA,
D_FREGISTRO

R05 Datos de Citas: C_MOTIVO, N_IDCITA,


D_FREGISTRO, D_FCITA, C_HCITA, M_NOTA,
C_ESTATUS, C_CEDULA.

R06 Datos Encabezado del Records: N_IDRECORD, C_CEDULA


y D_FREGISTRO

R07 Datos Detalles del Record: N_IDRECORD,


N_IDDETALLERECORD, C_TRATAMIENTOMEDICO,
N_IDENFERMEDADESPACIENTE,
N_IDMEDICAMENTOSPACIENTE,
N_IDALERGIASPACIENTE y M_NOTA

R08 Datos por enfermedades de paciente:


N_IDENFERMEDADESPACIENTE, N_IDENFERMEDAD
y M_NOTA

R09 Datos por Medicamentos que toma el paciente:


N_IDMEDICAMENTOSPACIENTE,
N_IDMEDICAMENTO y M_NOTA

R10 Datos por Alergias que padece el paciente:


N_IDALERGIASPACIENTE, N_IDALERGIA y M_NOTA

R11 Datos de Enfermedades: N_IDENFERMEDAD y


C_ENFERMEDAD
R12 Datos de Medicamentos: N_IDMEDICAMENTO y
C_MEDICAMENTO

R13 Datos de Alergias: N_IDALERGIA y C_ALERGIA

No Descripción

No Descripción

Procesamiento

Calculo de Edad del Paciente:


( (Fecha del Sistema - D_FNAC)
R14
/ 365))

● Especificación de casos de uso.

Nombre: Manejo de Pacientes

Alias:

Actores: Usuario del Sistema, Cliente

Función: Permitir el mantenimiento del catálogo de pacientes.

El Usuario del Sistema puede registrar pacientes nuevos, ingresando


sus datos. El sistema debe validar:

1. Que se ingrese una cédula.


Descripció
n: 2. Que se ingrese el primer nombre y el primer apellido.
3. Se asigne un Sexo.
4. Se ingresa la fecha de nacimiento del paciente.
5. Se ingresa un teléfono de contacto.
6. Se ingrese la fecha de registro, esta será tomada de la fecha del
sistema.

También es posible modificar o eliminar un paciente.

Referencia
s:

Nombre: Manejo de Citas

Alias:

Actores: Usuario del Sistema, Cliente

Función: Permitir el mantenimiento del catalogo de citas.

El Usuario del Sistema puede registrar nuevas citas, ingresando sus


datos. El sistema debe validar:

1. Que se ingrese un motivo de la cita.


2. Que se ingrese un código para la cita, es generado por el sistema.
3. Se ingrese una fecha de registro, esta será tomada del sistema...
4. Se ingresa la fecha en que se realizará la cita.
5. Se ingresa la hora de la cita.
6. Se ingresa la cédula del paciente.
Descripció
7. Se ingrese el estatus de la cita, por defecto "abierta"
n:

También es posible modificar el registro de un paciente o eliminarlo.

Referencias
:
Nombre: Manejo de Records

Alias:

Actores: Usuario del Sistema, Cliente

Función: Permitir el mantenimiento del catálogo de Records Médicos.

El Usuario del Sistema puede registrar el récords médicos,


ingresando sus datos. El sistema debe validar:

1. Se genere un número de record automático.


2. Se ingresa un número de cédula del paciente.
3. Se ingresa una fecha de registro, esta fecha es generada por el
sistema.
4. Se indica si el paciente está en tratamiento médico.
Descripció 5. Se ingresa un comentario.
n:

También es posible modificar o eliminar un Récord Médico.

Referencia
s:

Nombre: Manejo de Enfermedades

Alias:

Actores: Usuario del Sistema, Cliente

Función: Permitir el mantenimiento del catálogo de enfermedades.


El Usuario del Sistema puede registrar enfermedades en el catálogo
de enfermedades. El sistema debe validar:

1. Se genera un número de enfermedades automático.


2. Se ingresa un nombre de enfermedad.
Descripció
n:
También es posible modificar o eliminar una enfermedad.

Referencia
s:

Nombre: Manejo de Medicamentos

Alias:

Actores: Usuario del Sistema, Cliente

Función: Permitir el mantenimiento del catálogo de medicamentos.

El Usuario del Sistema puede registrar medicamentos en el catálogo


de medicamentos. El sistema debe validar:

1. Se genere un número de medicamento automático.


2. Se ingresa un nombre del medicamento.
Descripció
n:
También es posible modificar o eliminar un medicamento.

Referencia
s:

Nombre: Manejo de Alergias

Alias:
Actores: Usuario del Sistema, Cliente

Función: Permitir el mantenimiento del catálogo de alergias.

El Usuario del Sistema puede registrar nuevas alergias en el catálogo.


El sistema debe validar:

1. Se genere un número de alergia automático.


2. Se ingrese un nombre de alergia.
Descripción
:
También es posible modificar o eliminar una alergia.

Referencias
:

Nombre: Manejo de Enfermedades por Record

Alias:

Actores: Usuario del Sistema, Cliente

Función: Permitir el mantenimiento de enfermedades por Record

Descripción El usuario del Sistema puede crear y asociar enfermedades con el


: récord médico de un paciente. Puede modificar y eliminar sus datos.

Referencias
:

Nombre: Manejo de Medicamentos Por Record

Alias:

Actores: Usuario del Sistema, Cliente


Función: Permitir el mantenimiento de medicamentos por Record

El usuario del sistema puede crear y asociar el uso de medicamento


Descripción con el récord médico de un paciente. Puede modificar y eliminar sus
: datos.

Referencias
:

Nombre: Manejo de Alergias Por Record

Alias:

Actores: Usuario del Sistema, Cliente

Función: Permitir el mantenimiento de alergias por Record

Descripción El usuario del sistema puede crear y asociar alergias con el record
: médico de un paciente. Puede modificar y eliminar sus datos.

Referencias:

● Casos de uso general.


● diagrama de clases
● Diagramas de Interacción de los Sub Casos de Uso

Diagrama de secuencia (caso ingresar paciente)


Diagrama de colaboración (caso ingresar paciente)

Diagrama de secuencia (modificar paciente)


Diagrama de colaboracion (modificar paciente)
I. MARCO TEÓRICO

2.1. ¿Que es un proyecto de software?

Un proyecto software es todo el procedimiento del desarrollo de software, desde la


recogida de requisitos, pasando por las pruebas y el mantenimiento, y llevado a cabo
en acorde a las metodologías de ejecución, en un momento concreto en el tiempo para
lograr el producto software deseado (1).

Un proyecto de software es un viaje difícil, y la actividad de planeación crea un


“mapa” que guía al equipo mientras viaja. El mapa llamado plan del proyecto de
software define el trabajo de ingeniería de software al describir las tareas técnicas por
realizar, los riesgos probables, los recursos que se requieren, los productos del trabajo
que se obtendrán y una programación de las actividades (2).

2.2. Modelos de proyecto de software

Los modelos genéricos no son descripciones definitivas de procesos de software; son


abstracciones útiles que pueden ser utilizadas para explicar diferentes enfoques del
desarrollo de software (Pons-Giandini, y otros, 2010). Algunos de los modelos más
conocidos son: (3)

1. Prototipo.

2. Desarrollo basado en componentes (reutilización).

3. Desarrollo en espiral.

4. Modelo RAD (Rapid Application Development).

5. Modelo en cascada
PROTOTIPO

Su objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de
los mismos. Este modelo inicia con la recolección de requerimientos del cliente, con
base en estos se define el conjunto de objetivos para el software, se identifican los
requisitos conocidos y con base en estos se desarrolla rápidamente un prototipo o
maqueta que posteriormente evalúa el cliente utilizándolo y ayudando a refinar de
nuevo los requisitos del software a desarrollar; este proceso se seguirá repitiendo hasta
que el cliente quede satisfecho con el desarrollo del software (Salazar-Aguirre, y
otros, 2011). La Fig.1 muestra cómo se realiza el modelo de construcción de
prototipos, iniciando en el momento en que los analistas del sistema. (3)

Ventajas

1. Genera una buena comunicación con los clientes.

2. Recomendado para proyectos de pequeño y mediano alcance.

Desventajas

1. Las planificaciones pudieran sufrir cambios.

2. Dificultades para mantener el sistema en proyectos grandes y en la respuesta a


cambios en los requisitos del usuario.

3. Períodos de desarrollo largos.


DESARROLLO BASADO EN COMPONENTES (REUTILIZACIÓN)

1. Los compromisos en los requisitos son inevitables, por lo cual puede que el
software no cumpla las expectativas del cliente.

2. Las actualizaciones de los componentes adquiridos no están en manos de los


desarrolladores del sistema.

3. Alto costo, si la adaptación de nuevos paquetes es costosa.

4. Dificultades para asegurar el versionamiento si los suministradores de


componentes no mejoran continuamente sus productos. (3)

DESARROLLO EN ESPIRAL

El modelo de desarrollo en espiral es actualmente uno de los más conocidos y fue


propuesto por Barry Boehm en 1986. El ciclo de desarrollo se representa como una
espiral, en lugar de una serie de actividades sucesivas con retrospectiva de una
actividad a otra. Este enfoque entrelaza las actividades de especificación,desarrollo y
validación. Es decir, surge de un sistema inicial que se desarrolla rápidamente a partir
de especificaciones abstractas. En la Fig.2 se muestran las fases que propone el
modelo Desarrollo en espiral. (3)
Ventajas

1. Buena comunicación con los clientes a partir de que combina las ventajas de
prototipo y cascada.

2. Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema.
Pueden empezar a usarlo desde el primer incremento.

3. Recomendado para proyectos de gran alcance.

4. Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede


distribuir en cada incremento.

5. 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. (3)

Desventajas

1. Cada incremento debe ser pequeño para limitar el riesgo y debe aumentar la
funcionalidad.

2. Es difícil establecer las correspondencias de los requisitos contra los


incrementos y detectar las unidades o servicios genéricos para todo el sistema.

3. Dificultades para mantener las planificaciones, y concebir y graficar el sistema


globalmente.

MODELO RAD

Desarrollo Rápido de Aplicaciones (por sus siglas en inglés) es un modelo de proceso


de desarrollo de software relativamente corto (dura entre 60 y 90 días). Se utiliza la
construcción de software basada en componentes, utilizando herramientas de software
que permitan de forma ágil y efectiva realizar una aplicación con altos estándares de
calidad. La Fig.3 muestra las etapas del modelo RAD. El Modelo RAD comprende las
siguientes etapas: (3)

1. Modelado de gestión: Se genera la información que conduce el proceso de


gestión, se identifica a dónde va la información y quién la procesa.

2. Modelado de datos: Se definen los almacenes de datos y cómo se relacionan


los almacenes entre sí.
3. Modelado del proceso: Se utiliza para añadir, modificar, suprimir o recuperar
un objeto de datos.

4. Generación de aplicaciones: Se utiliza una herramienta de cuarta generación


que permite crear el software y facilitar la construcción del programa.

5. Pruebas y entrega: El proceso de desarrollo finaliza realizando pruebas de


calidad del software diseñado con la herramienta RAD, posteriormente se
realiza la implementación de la aplicación

Ventajas

1. Los usuarios pueden revisar el sistema sistemáticamente.

2. Los entregables pueden ser fácilmente trasladados a otra plataforma.

3. El desarrollo se realiza a un nivel de abstracción mayor.

4. Visibilidad temprana y mayor flexibilidad.

5. Menor codificación manual y mayor involucramiento de los usuarios.

6. Posiblemente menos fallas y menor costo

7. Ciclos de desarrollo más pequeños.


Desventajas

1. Para proyectos grandes, aunque por escalas, requiere recursos humanos


suficientes como para crear el número correcto de equipos.

2. Requiere clientes y desarrolladores comprometidos en las rápidas actividades.


Si no hay compromiso los proyectos fracasarán.

3. Costo de herramientas integradas y equipo necesario.

4. Progreso más difícil de medir.

5. Menos eficiente y menor precisión científica.

6. Dependencia en componentes de terceros: funcionalidad de más o de menos,


problemas legales. (3)

MODELO EN CASCADA

Este modelo toma las actividades fundamentales del proceso de especificación,


desarrollo, validación y evolución y las representa como fases separadas del proceso.
La interacción entre fases puede observarse en la Fig.4.

El modelo en cascada consta de las siguientes fases:

1. Definición de los requisitos: Los servicios, restricciones y objetivos son


establecidos con los usuarios del sistema. Se busca hacer esta definición en
detalle. (3)

2. Diseño de software: Se particiona en sistemas de software o hardware. Se


establece la arquitectura total del sistema. Se identifican y describen las
abstracciones y relaciones de los componentes del sistema. (3)
3. Implementación y pruebas unitarias: Construcción de los módulos y unidades
de software. Se realizan pruebas de cada unidad. (3)

4. Integración y pruebas del sistema: Se integran todas las unidades. Se prueban


en conjunto. Se entrega el conjunto probado al cliente. (3)

5. Operación y mantenimiento: Generalmente es la fase más larga. El sistema es


puesto en marcha y se realiza la corrección de errores descubiertos. Se realizan
mejoras de implementación. Se identifican nuevos requisitos. (3)

Ventajas

1. Permite estimar calendarios y presupuestos con mayor precisión.

2. Facilita un nivel de satisfacción del cliente más elevado que otros enfoques.

3. Es fácil de manejar los planes de proyectos.

4. Alto nivel de seguridad y confiabilidad. (3)

Desventajas

1. Las iteraciones son costosas e implican rehacer trabajo debido a la producción


y aprobación de documentos.

2. Aunque son pocas iteraciones, es normal congelar parte del desarrollo y


continuar con las siguientes fases.

3. Los problemas se dejan para su posterior resolución, lo que lleva a que estos
sean ignorados o corregidos de una forma poco elegante.

4. Existe una alta probabilidad de que el software no cumpla con los requisitos
del usuario por el largo tiempo de entrega del producto.

5. Es inflexible a la hora de evolucionar para incorporar nuevos requisitos. Es


difícil responder a cambios en los requisitos. (3)
4. Gestión de proyecto de software

La gestión de proyectos de software hace referencia a la rama de la gestión de


proyectos dedicada a la planificación, programación, asignación de recursos,
ejecución, seguimiento y entrega de proyectos de software y web. (4)

La gestión de proyectos en ingeniería de software difiere de la gestión de proyectos


tradicional en que los proyectos de software tienen un proceso de ciclo de vida único
que requiere varias rondas de pruebas, actualizaciones y comentarios de los clientes.
La mayoría de los proyectos relacionados con TI se gestionan al estilo Agile, para
seguir el ritmo cada vez más rápido del negocio e iterar en función de los comentarios
de los clientes y las partes interesadas. (4)

El papel y la responsabilidad de un gestor de proyectos de software

Los gestores de proyectos de software puede que tengan que realizar cualquiera de las
siguientes tareas:

1. Planificación: se refiere a armar el anteproyecto de todo el proyecto desde la


conceptualización hasta la realización. Definirá el alcance, asignará los
recursos necesarios, propondrá el cronograma, delineará el plan de ejecución,
trazará una estrategia de comunicación e indicará los pasos necesarios para las
pruebas y el mantenimiento. (4)

2. Dirección: un gestor de proyectos de software deberá reunir y dirigir el equipo


del proyecto, que probablemente estará formado por desarrolladores, analistas,
probadores, diseñadores gráficos y redactores técnicos. Esto requiere
excelentes habilidades de comunicación, liderazgo e interpersonales. (4)

3. Ejecución: el gestor de proyectos participará en la ejecución exitosa de cada


etapa del proyecto y las supervisará. Esto incluye el seguimiento del progreso,
los controles frecuentes del equipo y la elaboración de informes de estado. (4)

4. Gestión del tiempo: cumplir con el cronograma resulta fundamental para la


finalización exitosa de cualquier proyecto, pero es especialmente complejo
cuando se trata de gestionar proyectos de software porque es casi seguro que
se producirán cambios en el plan original a medida que evoluciona el proyecto.
Los gestores de proyectos de software deben ser expertos en gestión de riesgos
y planificación de contingencias para garantizar el avance cuando hay
obstáculos o cambios. (4)

5. Presupuesto: al igual que los gestores de proyectos tradicionales, los gestores


de proyectos de software tienen la tarea de elaborar un presupuesto para un
proyecto y luego ceñirse a él lo máximo posible, moderando el gasto y
reasignando fondos cuando sea necesario. (4)

6. Mantenimiento: la gestión de proyectos de software normalmente fomenta las


pruebas constantes del producto para descubrir y corregir pronto los errores,
ajustar el producto final a las necesidades del cliente y mantener el proyecto
bien encaminado. El gestor de proyectos de software es responsable de
garantizar que se realicen pruebas, evaluaciones y correcciones adecuadas y
coherentes. (4)

Gestionar un proyecto de software.

Un artículo reciente publicado en Forbes sugiere que hay ocho formas de mejorar y
simplificar el proceso de gestión de proyectos de software; estas ocho sugerencias
incluyen: (4)

1. Liberar al equipo del trabajo que no es de desarrollo para permitir que se


centre en el desarrollo

2. Motivar al equipo compartiendo los casos de éxito de otros, como los de los
gigantes tecnológicos, que inspirarán y entusiasmarán al equipo.

3. Evitar modificar la tarea una vez asignada

4. Intentar adherirse al plan (hasta que sea necesario cambiarlo)

5. Fomentar la organización siendo organizado

6. Agilizar la productividad a través de una delegación efectiva

7. Conocer al equipo y establecer una relación

8. Desglosar el plan y asignar tareas diarias específicas (4)


5. Metodologías de desarrollo de software

Programación extrema (XP)

La programación extrema usa un enfoque orientado a objetos (véase el apéndice 2)


como paradigma preferido de desarrollo, y engloba un conjunto de reglas y prácticas
que ocurren en el contexto de cuatro actividades estructurales: planeación, diseño,
codificación y pruebas. La figura 3.2 ilustra el proceso XP y resalta algunas de las
ideas y tareas clave que se asocian con cada actividad estructural. En los párrafos que
siguen se resumen las actividades de XP clave. (5)

Como se dijo en la sección anterior, el más usado de todos los modelos ágiles de
proceso es la programación extrema (XP). Pero se han propuesto muchos otros y están
en uso en toda la industria. Entre ellos se encuentran los siguientes: (5)

● Desarrollo adaptativo de software (DAS)


● Scrum
● Método de desarrollo de sistemas dinámicos (MDSD)
● Cristal
● Desarrollo impulsado por las características (DIC)
● Desarrollo esbelto de software (DES)
● Modelado ágil (MA)
● Proceso unificado ágil (PUA)
Desarrollo adaptativo de software (DAS)

El desarrollo adaptativo de software (DAS) fue propuesto por Jim Highsmith [Hig00]
como una técnica para elaborar software y sistemas complejos. Los fundamentos
filosóficos del DAS se centran en la colaboración humana y en la organización propia
del equipo. Highsmith argumenta que un enfoque de desarrollo adaptativo basado en
la colaboración es “tanto una fuente de orden en nuestras complejas interacciones,
como de disciplina e ingeniería”. Él define un “ciclo de vida” del DAS (véase la
figura 3.3) que incorpora tres fases: especulación, colaboración y aprendizaje. (5)

Scrum

Scrum (nombre que proviene de cierta jugada que tiene lugar durante un partido de
rugby)13 es un método de desarrollo ágil de software concebido por Jeff Sutherland y
su equipo de desarrollo a principios de la década de 1990. En años recientes,
Schwaber y Beedle [Sch01a] han desarrollado más los métodos Scrum. (5)

Los principios Scrum son congruentes con el manifiesto ágil y se utilizan para guiar
actividades de desarrollo dentro de un proceso de análisis que incorpora las siguientes
actividades estructurales: requerimientos, análisis, diseño, evolución y entrega. Dentro
de cada actividad estructural, las tareas del trabajo ocurren con un patrón del proceso
(que se estudia en el párrafo (5)

siguiente) llamado sprint. El trabajo realizado dentro de un sprint (el número de éstos
que requiere cada actividad estructural variará en función de la complejidad y tamaño
del producto) se adapta al problema en cuestión y se define —y con frecuencia se
modifica en tiempo real por parte del equipo Scrum. El flujo general del proceso
Scrum se ilustra en la figura 3.4. Scrum acentúa el uso de un conjunto de patrones de
proceso del software [Noy02] que han demostrado ser eficaces para proyectos con
plazos de entrega muy apretados, requerimientos cambiantes y negocios críticos. Cada
uno de estos patrones de proceso define un grupo de acciones de desarrollo: (5)

Método de desarrollo de sistemas dinámicos (MDSD)

El método de desarrollo de sistemas dinámicos (MDSD) [Sta97] es un enfoque de


desarrollo ágil de software que “proporciona una estructura para construir y dar
mantenimiento a sistemas que cumplan restricciones apretadas de tiempo mediante la
realización de prototipos incrementales en un ambiente controlado de proyectos”
[CCS02]. La filosofía MDSD está tomada de una versión modificada de la regla de
Pareto: 80 por ciento de una aplicación puede entregarse en 20 por ciento del tiempo
que tomaría entregarla completa (100 por ciento). (5)

El MDSD es un proceso iterativo de software en el que cada iteración sigue la regla de


80 por ciento. Es decir, se requiere sólo suficiente trabajo para cada incremento con
objeto de facilitar el paso al siguiente. Los detalles restantes se terminan más tarde,
cuando se conocen los requerimientos del negocio y se han pedido y efectuado
cambios. (5)
Cristal

Alistar Cockburn [Coc05] creó la familia Cristal de métodos ágiles15 a fin de obtener
un enfoque de desarrollo de software que premia la “maniobrabilidad” durante lo que
Cockburn caracteriza como “un juego cooperativo con recursos limitados, de
invención y comunicación, con el objetivo primario de entregar software útil que
funcione y con la meta secundaria de plantear el siguiente juego” [Coc02]. (5)

Para lograr la maniobrabilidad, Cockburn y Highsmith definieron un conjunto de


metodologías, cada una con elementos fundamentales comunes a todos, y roles,
patrones de proceso, producto del trabajo y prácticas que son únicas para cada uno. La
familia Cristal en realidad es un conjunto de ejemplos de procesos ágiles que han
demostrado ser efectivos para diferentes tipos de proyectos. El objetivo es permitir
que equipos ágiles seleccionen al miembro de la familia Cristal más apropiado para su
proyecto y ambiente. (5)

Desarrollo impulsado por las características (DIC)

El desarrollo impulsado por las características (DIC) lo concibió originalmente Peter


Coad y sus colegas [Coa99] como modelo práctico de proceso para la ingeniería de
software orientada a objetos. Stephen Palmer y John Felsing [Pal02] ampliaron y
mejoraron el trabajo de Coad con la descripción de un proceso adaptativo y ágil
aplicable a proyectos de software de tamaño moderado y grande. (5)

Igual que otros proyectos ágiles, DIC adopta una filosofía que: 1) pone el énfasis en la
colaboración entre los integrantes de un equipo DIC; 2) administra la complejidad de
los problemas y del proyecto con el uso de la descomposición basada en las
características, seguida de la integración de incrementos de software, y 3) comunica
los detalles técnicos en forma verbal, gráfica y con medios basados en texto. El DIC
pone el énfasis en las actividades de aseguramiento de la calidad del software
mediante el estímulo de la estrategia de desarrollo incremental, el uso de inspecciones
del diseño y del código, la aplicación de auditorías de aseguramiento de la calidad del
software (véase el capítulo 16), el conjunto de mediciones y el uso de patrones (para
el análisis, diseño y construcción). (5)
Desarrollo esbelto de software (DES)

El desarrollo esbelto de software (DES) adapta los principios de la manufactura


esbelta al mundo de la ingeniería de software. Los principios de esbeltez que inspiran
al proceso DES se resumen como sigue ([Pop03], [Pop06a]): eliminar el desperdicio,
generar calidad, crear conocimiento, aplazar el compromiso, entregar rápido, respetar
a las personas y optimizar al todo. (5)

Modelado ágil (MA)

Hay muchas situaciones en las que los ingenieros de software deben construir
sistemas grandes de importancia crítica para el negocio. El alcance y complejidad de
tales sistemas debe modelarse de modo que: (5)

1. todos los actores entiendan mejor cuáles son las necesidades que deben
satisfacerse,
2. el problema pueda dividirse con eficacia entre las personas que deben
resolverlo, y
3. se asegure la calidad a medida que se hace la ingeniería y se construye el
sistema. (5)
6. Programación orientada a objetos

La programación orientada a objetos es un modelo de programación informática que


organiza el diseño de software en torno a datos u objetos, en lugar de funciones y
lógica. Un objeto se puede definir como un campo de datos que tiene atributos y
comportamientos únicos.

La programación orientada a objetos se centra en los objetos que los desarrolladores


quieren manipular en lugar de enfocarse en la lógica necesaria para manipularlos. Este
enfoque de programación es adecuado para programas que son grandes, complejos y
se actualizan o mantienen activamente.

Los beneficios adicionales de la programación orientada a objetos incluyen la


reutilización, la escalabilidad y la eficiencia del código. Incluso cuando se utilizan
microservicios, los desarrolladores deben seguir aplicando los principios de la
programación orientada a objetos.

El primer paso en POO es recopilar todos los objetos que un programador desea
manipular e identificar cómo se relacionan entre sí, un ejercicio que a menudo se
conoce como modelado de datos.

Los ejemplos de un objeto pueden variar desde entidades físicas, como un ser humano
que se describe por propiedades como nombre y dirección, hasta pequeños programas
informáticos, como widgets.

Principios de POO

La programación orientada a objetos se basa en los siguientes principios:

● Encapsulación. La implementación y el estado de cada objeto se mantienen de


forma privada dentro de un límite definido o clase. Otros objetos no tienen acceso
a esta clase o la autoridad para realizar cambios, pero pueden llamar a una lista de
funciones o métodos públicos. Esta característica de ocultación de datos
proporciona una mayor seguridad al programa y evita la corrupción de datos no
intencionada.

● Abstracción. Los objetos sólo revelan mecanismos internos que son relevantes
para el uso de otros objetos, ocultando cualquier código de implementación
innecesario. Este concepto ayuda a los desarrolladores a realizar cambios y
adiciones más fácilmente a lo largo del tiempo.
● Herencia. Se pueden asignar relaciones y subclases entre objetos, lo que permite a
los desarrolladores reutilizar una lógica común sin dejar de mantener una jerarquía
única. Esta propiedad de POO obliga a un análisis de datos más completo, reduce
el tiempo de desarrollo y asegura un mayor nivel de precisión.

● Polimorfismo. Los objetos pueden adoptar más de una forma según el contexto.
El programa determinará qué significado o uso es necesario para cada ejecución
de ese objeto, reduciendo la necesidad de duplicar código.

VENTAJAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS

● Fomenta la reutilización y ampliación del código.

● Permite crear sistemas más complejos.

● La programación se asemeja al mundo real.

● Agiliza el desarrollo de software.

● Facilita el trabajo en equipo.

Lenguajes de programación orientados a objetos

Si bien Simula se acredita como el primer lenguaje de programación orientado a


objetos, los lenguajes de programación orientada a objetos más populares son:

● Java

● JavaScript

● Python

● C++

● Visual Basic .NET

● Ruby

● Scala

● PHP
6.1. Lenguaje de Programación a Utilizar en el

Proyecto JAVA

La tecnología Java se usa para desarrollar aplicaciones para un amplio alcance de


entornos, desde dispositivos del consumidor hasta sistemas empresariales
heterogéneos.

Como cualquier lenguaje de programación, el lenguaje Java tiene su propia


estructura, reglas de sintaxis y paradigma de programación. El paradigma de
programación del lenguaje Java se basa en el concepto de programación orientada
a objetos (OOP), que las funciones del lenguaje soportan.

El lenguaje Java es un derivado del lenguaje C, por lo que sus reglas de sintaxis
se parecen mucho a C: por ejemplo, los bloques de códigos se modularizan en
métodos y se delimitan con llaves ({ y }) y las variables se declaran antes de que
se usen.

Estructuralmente, el lenguaje Java comienza con paquetes. Un paquete es el


mecanismo de espacio de nombres del lenguaje Java. Dentro de los paquetes se
encuentran las clases y dentro de las clases se encuentran métodos, variables,
constantes, entre otros.
7. Métricas de proceso y proyectos de software

7.1 Métricas de proceso

Son medidas cuantitativas que permiten a los ingenieros de software obtener una
visión de la eficacia del proceso de software y los proyectos que llevan a cabo
utilizando el proceso como marco de trabajo.

Se comienza definiendo un conjunto limitado de medidas del proceso que puedan


recopilarse con facilidad, se normaliza empleando métricas orientadas al tamaño o la
función.

Para mejorar el proceso, se miden sus atributos específicos .Hay que destacar que el
proceso es sólo uno de varios factores controlables en la mejora de la calidad del
software y el desempeño organizacional.

La eficacia de un proceso de software se mide indirectamente. Los resultados


incluyen medidas de errores descubiertos antes de liberar el software.

-Los defectos que detectan y reportan los usuarios finales.

– Los productos de trabajo entregados (productividad).

– El esfuerzo humano gastado.

– el tiempo de la planificación consumido.

– Concordancia con la planificación y otras medidas.

Las métricas del proceso de software ofrecen beneficios significativos conforme una
organización trabaja en mejorar su grado de madurez del proceso. Sin embargo, como
todas las métricas éstas pueden emplearse mal y crear más problemas de los que
solucionan.
proyectos de software

Un proyecto de desarrollo de software es una unidad de inversión para crear bienes y


servicios, coherente a las políticas de la empresa y sancionado por la parte económica y
técnica La gestión de proyectos de software hace referencia a la rama de la gestión de
proyectos dedicada a la planificación, programación, asignación de recursos, ejecución,
seguimiento y entrega de proyectos de software y web.

La gestión de proyectos en ingeniería de software difiere de la gestión de proyectos

tradicional en que los proyectos de software tienen un proceso de ciclo de vida único que

requiere varias rondas de pruebas, actualizaciones y comentarios de los clientes. La mayoría

de los proyectos relacionados con TI se gestionan al estilo Agil, para seguir el ritmo cada vez

más rápido del negocio e iterar en función de los comentarios de los clientes y las partes

interesadas.

El papel y la responsabilidad de un gestor de proyectos de software

Los gestores de proyectos de software puede que tengan que realizar cualquiera de las

siguientes tareas:

1. Planificación: se refiere a armar el anteproyecto de todo el proyecto desde la

conceptualización hasta la realización. Definirá el alcance, asignará los recursos

necesarios, propondrá el cronograma, delineará el plan de ejecución, trazará una

estrategia de comunicación e indicará los pasos necesarios para las pruebas y el

mantenimiento.

2. Dirección: un gestor de proyectos de software deberá reunir y dirigir el equipo del

proyecto, que probablemente estará formado por desarrolladores, analistas,

probadores, diseñadores gráficos y redactores técnicos. Esto requiere excelentes

habilidades de comunicación, liderazgo e interpersonales.


3. Ejecución: el gestor de proyectos participará en la ejecución exitosa de cada etapa

del proyecto y las supervisará. Esto incluye el seguimiento del progreso, los controles

frecuentes del equipo y la elaboración de informes de estado.

4. Gestión del tiempo: cumplir con el cronograma resulta fundamental para la

finalización exitosa de cualquier proyecto, pero es especialmente complejo cuando se

trata de gestionar proyectos de software porque es casi seguro que se producirán

cambios en el plan original a medida que evoluciona el proyecto. Los gestores de

proyectos de software deben ser expertos en gestión de riesgos y planificación de

contingencias para garantizar el avance cuando hay obstáculos o cambios.

5. Presupuesto: al igual que los gestores de proyectos tradicionales, los gestores de

proyectos de software tienen la tarea de elaborar un presupuesto para un proyecto y

luego ceñirse a él lo máximo posible, moderando el gasto y reasignando fondos

cuando sea necesario.

6. Mantenimiento: la gestión de proyectos de software normalmente fomenta las

pruebas constantes del producto para descubrir y corregir pronto los errores, ajustar el

producto final a las necesidades del cliente y mantener el proyecto bien encaminado.

El gestor de proyectos de software es responsable de garantizar que se realicen

pruebas, evaluaciones y correcciones adecuadas y coherentes.

¿Cómo gestionar con éxito un proyecto de software?

Hay ocho formas de mejorar y simplificar el proceso de gestión de proyectos de software;

estas ocho sugerencias incluyen:

● Liberar al equipo del trabajo que no es de desarrollo para permitir que se centre en

el desarrollo
● Motivar al equipo compartiendo los casos de éxito de otros, como los de los

gigantes tecnológicos, que inspirarán y entusiasmaron al equipo.

● Evitar modificar la tarea una vez asignada

● Intentar adherirse al plan (hasta que sea necesario cambiarlo)

● Fomentar la organización siendo organizado

● Agilizar la productividad a través de una delegación efectiva

● Conocer al equipo y establecer una relación

● Desglosar el plan y asignar tareas diarias específicas


III. INTERFAZ DEL SISTEMA
Enlace de UI en Figma:

https://www.figma.com/proto/amHD3lZwAGhxCUQiVYp9Fj/Untitled?node-id=0%3A1

&scaling=min-zoom&page-id=0%3A1&starting-point-node-id=2%3A2&show-proto-sid

ebar=1
CONCLUSIONES Y RECOMENDACIONES

CONCLUSIONES

● Un sistema de citas médicas facilita el proceso de asignación, cancelación y

cumplimiento de citas médicas tanto para médicos como para pacientes, evitando

largas colas en consultorios y esperas en la línea telefónica.

● El sistema brinda un servicio al paciente de alta calidad, donde él se podrá sentir

seguro y le facilitará mucho el proceso de petición de citas médicas. Le ahorrará el

tiempo que le tomaría esperando en la línea telefónica hasta que le asignen una cita o

acercándose hasta el consultorio médico directamente.

RECOMENDACIONES

● El sistema debe ser administrado con responsabilidad ya que la información que va a

contener es confidencial. A pesar de que el sistema cuenta con altos estándares de

seguridad, las personas que tengan acceso al sitio como administradores deberán ser

muy prudentes al respecto.

● Hoy en día se deberían implementar soluciones de este tipo para otros servicios

médicos como por ejemplo en laboratorios.


REFERENCIAS BIBLIOGRÁFICAS.

1. Gestión del proyecto de Software [Internet]. Tutorialspoint.com. 2021 [citado el 26 de


octubre de 2021]. Disponible en:
https://www.tutorialspoint.com/sp/software_engineering/software_project_manageme
nt.htm
2. Delgado Olivera, Lisdania de la Caridad, & Díaz Alonso, Lexys Manuel. Modelos de
Desarrollo de Software. Revista Cubana de Ciencias Informáticas, 15(1), 37-51. Epub
31 de marzo de 2021. Recuperado en 25 de octubre de 2021, de
http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-18992021000100037&ln
g=es&tlng=es.

3. ¿Qué es la gestión de proyectos de software? [Internet]. Wrike.com. 2021 [citado el


26 de octubre de 2021]. Disponible en:
https://www.wrike.com/es/project-management-guide/faq/que-es-la-gestion-de-proyec
tos-de-software/
4.
5. Roger S. Pressman. Ingenieria de Software un enfoque practico. Septima edición.
Mexico: Mc Graw Hill; pag 88-102. 2010

También podría gustarte