Está en la página 1de 91

APLICACION MOVIL Y WEB

PARA LA GESTION DE EVENTOS PUBLICOS

Y COMPRA EN LINEA DE FOTOGRAFIAS.

INGENIERIA DE SOFTWARE 1

PAUL FERNANDO GRIMALDO BRAVO

214040801

09 octubre 2017

Universidad autónoma Gabriel Rene Moreno


Santa Cruz de la Sierra
Contenido
1. Perfil..............................................................................................................8

1.1 Introducción..................................................................................................8

1.2 Antecedentes................................................................................................9

1.2.1 Definiciones y conceptos..........................................................................9

1.2.2 Fundamentos..........................................................................................10

1.2.2.1 Pictumatic............................................................................................10

1.3 Justificación................................................................................................11

1.4 Descripción del problema...........................................................................11

1.5 Formulación del problema..........................................................................12

1.6 Objetivos.....................................................................................................12

1.6.1 Objetivos Generales................................................................................12

1.6.2 Objetivos Específicos..............................................................................12

1.7 Alcance.......................................................................................................13

1.7.1 Modulo usuarios...................................................................................13

1.7.1.1 Gestionar usuarios...........................................................................13

1.7.1.2 Gestionar Fotógrafos............................................................................13

1.7.2 Modulo Principal..................................................................................13

1.7.2.1 Gestionar Eventos............................................................................13

1.7.2.2 Gestionar Fotografías de eventos........................................................13

1.7.2.3 Administración de suscripciones..........................................................14

1.7.3 Modulo compras.......................................................................................14

1.7.3.1 Gestión de Pagos..................................................................................14

1.7.3.2 Gestionar Pedidos.................................................................................14

2. Marco Teórico................................................................................................16
2.1.- Introducción..................................................................................................16

2.2. - MVC: Definición...........................................................................................16

2.4 PHP................................................................................................................17

2.4.1 Características de PHP...............................................................................18

2.5 Laravel............................................................................................................19

2.5.1 Manejo de los Datos en Laravel..............................................................20

2.6 MySql WorkBench..........................................................................................22

2.6.1 Características de MySql WorkBench.........................................................22

2.7. ELEMENTOS DEL SISTEMA BASADO EN COMPUTADORAS..............25

2.7.1. Hardware.................................................................................................25

2.7.1.1 Servidor.................................................................................................25

2.7.1.2 Cliente...................................................................................................25

2.7.1.3 Medios de comunicación......................................................................25

2.7.1.4 Otros dispositivos..................................................................................25

2.7.2 Software......................................................................................................25

2.7.2.1 Servidor.................................................................................................25

2.7.2.2 Cliente...................................................................................................26

2.7.2.3 Otro software adicional.........................................................................26

2.7.3 Datos...........................................................................................................26

2.7.4 Procesos......................................................................................................27

2.7.5 Gente/Usuario.............................................................................................27

2.7.5.1 Usuario..................................................................................................27

2.7.5.2 Cliente...................................................................................................27

2.8 Metodología para el desarrollo del software..................................................27

2. 8.3 Herramientas del desarrollo....................................................................36


2. 8.4 Posibles costos.......................................................................................37

2.8.5 Posibles beneficios..................................................................................39

3. DESARROLLO DEL PROYECTO.................................................................42

3.1 Flujo de trabajo captura de requisitos............................................................42

3.1.1 Modelo de Negocio.....................................................................................42

3.1.2 Modelo de dominio......................................................................................45

3.1.3 Identificar actores y casos de uso...............................................................46

3.1.3.1 Identificar actores..................................................................................46

3.1.3.2 Identificar Casos de uso.......................................................................46

3.1.4 Detallar Caso de uso...................................................................................47

3.1.5 Estructurar Modelo de casos de uso...........................................................60

3.2 Flujo de trabajo Análisis.................................................................................61

3.2.1 Análisis de la arquitectura........................................................................61

3.2.2 Analizar un caso de uso...........................................................................65

3.3 Flujo de trabajo diseño...................................................................................65

3.3.1 Diseño de la arquitectura.........................................................................71

4.0 Manual de usuario...................................................................................74

Registro de cliente:...............................................................................................74

Registro Fotógrafo................................................................................................74

Creación de un evento.........................................................................................75

Editar Evento........................................................................................................76

Suscripción a un evento.......................................................................................77

Identificarme en fotografías..................................................................................77

Comprar fotografías..............................................................................................78

Pago físico:........................................................................................................78
Pago online:......................................................................................................80

Visualizar transacciones.......................................................................................81

Fotógrafos:...........................................................................................................83

Suscribirse a un evento........................................................................................83

Subir fotografías...................................................................................................83

Editar fotografía....................................................................................................84

Aplicación Móvil:...................................................................................................84

Inicio de sesión.....................................................................................................85

Buscar evento.......................................................................................................85

Comprar fotografías..............................................................................................87

Descargar fotografías...........................................................................................89

Identificarme en fotos...........................................................................................90
1. Perfil
1.1 Introducción
Los diferentes establecimientos albergan gran cantidad de eventos día a
día donde la cantidad de personas asistentes puede superar grandes
números fácilmente, teniendo en cuentas la cantidad de personas que
asisten la gran mayoría utiliza un Smartphone para tomar una fotografía del
evento o ya sea entre ellos, si tenemos en cuenta este factor estamos
hablando de grandes cantidades de información multimedia que se maneja
por evento.

Podemos definir un evento como un suceso de importancia que se


encuentra programado, bajo esta misma línea podemos clasificar los
eventos públicos de la siguiente manera: Religioso, sociales, culturales,
populares, deportivos, políticos, empresariales, académicos.

En la actualidad, en muchos de estos eventos públicos asisten grandes


cantidades de personas, donde se toman fotografías al evento en sí y entre
las mismas personas, las mismas que son realizadas por un fotógrafo
experto, bajo este contexto estas distintas fotografías no pueden ser
vendidas a las personas que aparecen en la misma, ya sea porque no se
pudo encontrar a la persona, o porque ya no está presente en el evento, lo
que conlleva a 2 aspectos negativos, la persona o asistente no puede
adquirir su fotografía y el fotógrafo no lograr vender las distintas fotografías
por que no encuentra a estas personas, buscando una solución para esta
problemática el presente documento mostrara la documentación de una
aplicación web y móvil, donde el fotógrafo podrá subir estas distintas
fotografías y las distintas personas comprar estas fotografías dentro de la
misma aplicación.
1.2 Antecedentes
1.2.1 Definiciones y conceptos
El proceso de tomar, vender y comprar una fotografía era algo bastante
tedioso y estresante en épocas como hace 50 años, el tener que montar
todo un equipo profesional para poder capturar un momento y luego
esperar días y días para poder obtener la fotografía dificultaba tanto a las
personas que querían obtener dicha fotografía y a los fotógrafos que
querían vender las imágenes que tomaron.

Este proceso anteriormente mencionado fue convirtiéndose menos


complejo con el paso del tiempo y con la aparición de las cámaras
compactas, lo que facilitaba dicho proceso a los fotógrafos; y se vio aún
más afectado con la aparición de los Smartphone, lo que brindaba la
posibilidad a los mismos usuarios de poder tomar una fotografía en los
distintos eventos por su propia cuenta, su parte negativa era que en sus
comienzos no tenían cámara con una muy buena resolución por lo que las
fotografías con cámaras profesionales seguían dominando, más aun con la
aparición de las impresoras portátiles, con las que los fotógrafos podían
tomar una fotografía y ese mismo momento imprimirla para su venta a los
distintos asistentes, que es el proceso que sigue perdurando hasta la
actualidad.
1.2.2 Fundamentos
1.2.2.1 Pictumatic.

Pictumatic es una propuesta innovadora para quienes se dedican al negocio


del entretenimiento, turismo, recreación o eventos sociales (fotógrafos
profesionales, empresas del sector, proveedores de impresión y anunciantes).
Asimismo, Pictumatic es la forma más cómoda para que el público general
compre fotos digitales o impresas para recordar siempre los buenos
momentos.

Pictumatic permite la compra de fotografía mediante plataforma web, o


mediante depósitos a cuentas bancarias, protege las imágenes con una marca
de agua del fotógrafo.
1.3 Justificación
En la actualidad, dentro de todas las sociedades y muy especialmente la
nuestra se genera un proceso de mejoramiento y calidad a través de la
competitividad, la cual, exige que la Universidad Autónoma Gabriel Rene
Moreno de Bolivia pueda ofrecer a la sociedad boliviana, que tengan la
preparación adecuada en el campo de la elaboración y formulación de
proyectos.

Por tal motivo las carreras de ingeniería informática e ingeniería en


sistemas exigen a sus estudiantes a que desarrollen sistemas de información
de manera general para solventar sea cual sea el área donde se deba
desarrollar dichos sistemas de información, todo mediante prácticas integradas
que deben ir desarrollando a lo largo de su formación académica.

Por lo tanto, es necesario desarrollar sistemas informáticos que permitan


mejorar el servicio en la atención a los clientes con respecto a cualquier tipo de
información que el necesite tener a su alcance, mejorando todos los procesos
de negocios que mantiene en tal organización, negocio, etc.

1.4 Descripción del problema


Es de conocimiento de toda empresa y/o todo negocio lo imprescindible que es
la gestión automatizada en el momento de la gestión de pedidos que realicen
los clientes, en la gestión de los productos que tienen que vender y ofertar, en
el manejo de ofertas que brindara a los diferentes clientes top que maneja el
negocio. Por lo cual se debe tener toda esta información automatizada y
disponible para todos los clientes.

Viendo y analizando los procesos que maneja este tipo de negocio se


logró identificar ciertos problemas que tiene por no manejar la información de
manera automatizada.

 Los fotógrafos no pueden vender de manera rápida sus fotografías


por que pierden contacto con los clientes.
 Algunos fotógrafos pueden quedarse sin material de impresión
instantánea lo que también les quita la posibilidad de poder vender
sus fotografías
 El cliente no sabe cómo obtener las fotografías fuera del evento.
 Los clientes que deseen comprar más fotografías pueden no contar
con el monto requerido, pero poder realizar la transacción en algún
otro momento, donde pierden contacto con el fotógrafo.
 Existiendo gran cantidad de fotografías que se toman, en X
momentos los clientes no saben o no tienen un medio con el cual
saber que están apareciendo en una fotografía para realizar una
compra.

1.5 Formulación del problema


Desarrollar una aplicación web donde se puedan subir fotos referentes a un
evento, y realizar transacciones para adquirir las fotografías que
pertenezcan a un respectivo usuario.

1.6 Objetivos
1.6.1 Objetivos Generales
Aplicación móvil y web para la gestión de eventos públicos y compra en línea
de fotografías

1.6.2 Objetivos Específicos


• Recabar información del funcionamiento del negocio fotográfico en eventos
mediante entrevistas con fotógrafos, clientes.

• Analizar la información obtenida en la investigación para cubrir los


requerimientos del negocio.

• Identificar los requisitos funcionales de la aplicación a través de los


requerimientos del usuario.

• Diseñar e implementar una base de datos utilizando un SGBD “MySQL


WorkBench”, capaz de soportar todos los requerimientos que se están
estableciendo.
• Diseñar una interfaz gráfica fácil de manejar para los clientes que vayan
comprar las fotografías y para los fotógrafos para administrar dichos eventos.

• Implementar la aplicación utilizando un lenguaje de programación PHP 5.6


y un framework de desarrollo Laravel 5.3 para la parte web, y el lenguaje de
programación JAVA para la aplicación móvil.

• Realizar pruebas pertinentes y necesarias sobre el buen funcionamiento del


sistema, analizando que cumplan todos los requerimientos planteados previos
al desarrollo.

1.7 Alcance
Los módulos identificados serían los siguientes:

Modulo usuarios.

Modulo Principal.

Modulo compras.

1.7.1 Modulo usuarios.


1.7.1.1 Gestionar usuarios
Permite manejar toda la información de los usuarios finales del negocio.

1.7.1.2 Gestionar Fotógrafos


Permite administrar toda la información de los fotógrafos suscritos a la
aplicación.

1.7.2 Modulo Principal


1.7.2.1 Gestionar Eventos
Permite administrar toda la información referente a los distintos eventos.

1.7.2.2 Gestionar Fotografías de eventos


Permitirá administrar las fotografías de todos los eventos realizados, así
como la privacidad que tienen.
1.7.2.3 Administración de suscripciones
Permitirá administrar las suscriciones que ha realizado un usuario del
sistema.

1.7.3 Modulo compras


1.7.3.1 Gestión de Pagos
Permite administrar la información de los pagos por las fotografías

1.7.3.2 Gestionar Pedidos


Mantendrá toda la información sobre los pedidos que está realizando el
cliente, así como el detalle y la factura que este pueda tener al momento de
realizar la cancelación del pedido
CAPITULO 2
2. Marco Teórico
2.1.- Introducción
El objetivo de muchos sistemas informáticos es para recuperar datos de
un almacén de datos y mostrar para el usuario. Después de que el usuario
cambia los datos, el sistema almacena los cambios en el almacén de datos.
Debido a que el flujo de información clave se encuentra entre el almacén de
datos y la interfaz de usuario, que podría estar inclinado a vincular estas dos
piezas juntas para reducir la cantidad de código y mejorar el rendimiento de las
aplicaciones. Sin embargo, este enfoque aparentemente natural tiene algunos
problemas significativos. Un problema es que la interfaz de usuario tiende a
cambiar con mucha más frecuencia que el sistema de almacenamiento de
datos. Otro problema con el acoplamiento de los datos y piezas de interfaz de
usuario es que las aplicaciones de negocios tienden a incorporar lógica de
negocio que va mucho más allá de la transmisión de datos.

2.2. - MVC: Definición


 Modelo: El modelo gestiona el comportamiento y los datos del dominio de
aplicación, responde a las solicitudes de información sobre su estado (por
lo general de la vista), y responde a las instrucciones para cambiar de
estado (por lo general desde el controlador).
 Vista: La vista administra la visualización de la información.
 Controlador: El controlador interpreta el ratón y el teclado entradas desde
el usuario, informando el modelo y / o el fin de cambiar según sea
apropiado.
Es importante tener en cuenta que tanto la vista y el controlador dependen del
modelo. Sin embargo, el modelo depende ni la vista ni el controlador. Esta es
una de las principales ventajas de la separación. Esta separación permite que
el modelo se construyó y probó independiente de la presentación visual. La
separación entre la vista y el controlador es secundaria en muchas
aplicaciones de cliente enriquecido, y de hecho, muchos marcos de interfaz de
usuario de la aplicación de las funciones como un solo objeto. En las
aplicaciones Web, por otro lado, la separación entre la vista (el navegador) y el
controlador (los componentes del lado del servidor que controla la solicitud
HTTP) está muy bien definida.

Modelo-Vista-Controlador es un patrón de diseño fundamental para la


separación de la lógica de la interfaz de usuario de la lógica de negocio.
Desafortunadamente, la popularidad de la pauta ha dado lugar a una serie de
descripciones defectuosas. En particular, el término "control" se ha utilizado
para referirse a cosas diferentes en diferentes contextos. Afortunadamente, la
llegada de las aplicaciones web ha ayudado a resolver algunas de las
ambigüedades, porque la separación entre la vista y el controlador es tan
evidente.

2.4 PHP
PHP es un lenguaje de programación de uso general de código del lado
del servidor originalmente diseñado para el desarrollo web de contenido
dinámico. Fue uno de los primeros lenguajes de programación del lado del
servidor que se podían incorporar directamente en el documento HTML en
lugar de llamar a un archivo externo que procese los datos. El código es
interpretado por un servidor web con un módulo de procesador de PHP que
genera la página web resultante. PHP ha evolucionado por lo que ahora
incluye también una interfaz de línea de comandos que puede ser usada en
aplicaciones gráficas independientes. Puede ser usado en la mayoría de los
servidores web al igual que en casi todos los sistemas operativos y plataformas
sin ningún costo.
Fue creado originalmente por Rasmus Lerdorf en el año 1995.
Actualmente el lenguaje sigue siendo desarrollado con nuevas funciones por el
grupo PHP.2 Este lenguaje forma parte del software libre publicado bajo la
licencia PHP, que es incompatible con la Licencia Pública General de GNU
debido a las restricciones del uso del término PHP.

2.4.1 Características de PHP


 Orientado al desarrollo de aplicaciones web dinámicas con acceso a
información almacenada en una base de datos.
 Es considerado un lenguaje fácil de aprender, ya que en su desarrollo se
simplificaron distintas especificaciones, como es el caso de la definición de
las variables primitivas, ejemplo que se hace evidente en el uso de php
arrays.
 El código fuente escrito en PHP es invisible al navegador web y al cliente,
ya que es el servidor el que se encarga de ejecutar el código y enviar su
resultado HTML al navegador.
 Capacidad de conexión con la mayoría de los motores de base de datos
que se utilizan en la actualidad, destaca su conectividad con MySQL y
PostgreSQL.
 Capacidad de expandir su potencial utilizando módulos (llamados ext's o
extensiones).
 Posee una amplia documentación en su sitio web oficial, entre la cual se
destaca que todas las funciones del sistema están explicadas y
ejemplificadas en un único archivo de ayuda.
 Es libre, por lo que se presenta como una alternativa de fácil acceso para
todos.
 Permite aplicar técnicas de programación orientada a objetos.
 No requiere definición de tipos de variables aunque sus variables se
pueden evaluar también por el tipo que estén manejando en tiempo de
ejecución.
 Tiene manejo de excepciones (desde PHP5).
 Si bien PHP no obliga a quien lo usa a seguir una determinada metodología
a la hora de programar, aun haciéndolo, el programador puede aplicar en
su trabajo cualquier técnica de programación o de desarrollo que le permita
escribir código ordenado, estructurado y manejable. Un ejemplo de esto son
los desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista
Controlador (MVC), que permiten separar el tratamiento y acceso a los
datos, la lógica de control y la interfaz de usuario en tres componentes
independientes.
 Debido a su flexibilidad ha tenido una gran acogida como lenguaje base
para las aplicaciones WEB de manejo de contenido, y es su uso principal.

2.5 Laravel
Laravel es un nuevo y poderoso Framework PHP desarrollado por Taylor
Otwell, que promete llevar al lenguaje PHP a un nuevo nivel.

Desarrollar aplicaciones usando Laravel es muy sencillo, fundamentalmente


debido a su expresiva sintaxis, sus generadores de código, y su ORM incluido
de paquete llamado Eloquent ORM.
Laravel, propone una forma de desarrollar aplicaciones web de un modo
mucho más ágil. Por ejemplo, en Laravel opcionalmente podemos usar el
patrón de diseño MVC (Modelo-Vista-Controlador) tradicional, donde al igual
que otros fameworks PHP, el controlador es programado como una clase.

Por lo tanto, un Controlador es una clase PHP que dispone de métodos


públicos que son el punto de entrada final de una petición HTTP (Request
PHP) a nuestra aplicación. Pero, Lavarel propone además una forma distinta y
más directa de responder a la solicitud HTTP

¿Modelo-Vista-Controlador? ó ...

Laravel 'entrega la opción' de seguir usando la metodología tradicional MVC.


Sin embargo, el framework propone una vía más rápida en PHP, la cual
consiste en programar la interacción HTTP directamente como una función
anómina asociada a una Ruta.

Esto tiene la ventaja de reducir la cantidad de código, especialmente cuando


sólo necesitamos incluir una funcionalidad.

Así, donde antes necesitabamos programar una clase, ahora en Laravel sólo
requerimos escribir una función en PHP.

2.5.1 Manejo de los Datos en Laravel


Laravel incluye una valiosa pieza de software, llamada Eloquent ORM. Este
ORM se funda en patrón active record y su funcionamiento es en extremo
sencillo.

Un ORM (Object Relational Mapper) en PHP es un software que permite tratar


la capa de persistencia de los datos, como simples accesos a métodos de una
Clase u Objeto en PHP.

La funcionalidad interna del ORM es mapear los objetos de PHP a las tablas
en la base de datos, para el caso en que la persistencia de los datos de la
aplicación es proporcionada por una DB.
En Laravel es opcional el uso de Eloquent, pues también dispone de otros
recursos que nos facilitan interactuar con los datos, o especificamente la
creación de modelos.

La forma de interactuar con los datos en un patrón de diseño MVC, es


mediante la creación de Modelos. Los Modelos son clases en PHP que
encapsulan toda el trabajo con los datos de una aplicación.
2.6 MySql WorkBench
MySQL Workbench es una herramienta que permite modelar diagramas de
entidad-relación para bases de datos MySQL. Puedes utilizarla para diseñar el
esquema de una base de datos nueva, documentar una ya existente o realizar
una migración compleja.

La aplicación elabora una representación visual de las tablas, vistas,


procedimientos almacenados y claves extranjeras de la base de datos.
Además, es capaz de sincronizar el modelo en desarrollo con la base de datos
real.

MySQL Workbench también puede generar el script necesario para crear la


base de datos que se ha dibujado en el esquema; es compatible con los
modelos de base de datos de DBDesigner 4 y soporta las novedades
incorporadas en MySQL 5.

2.6.1 Características de MySql WorkBench


Las características destacadas de MySQL Workbench 5.2 son:

 General

 Conexión a base de datos & Instance Management

 Wizard driven action items

 Fully scriptable with Python and Lua

 Soporte para plugins personalizados

 Editor de SQL

 Schema object browsing

 SQL syntax highlighter and statement parser


 Multiple-, editable result sets

 SQL snippets collections

 SSH connection tunneling

 Soporte Unicode

 Modelado de datos

 Diagrama entidad relación

 Drag'n'Drop visual modeling

 Reverse engineering from SQL Scripts and live database

 Forward engineering to SQL Scripts and live database

 Sincronización de esquema

 Printing of models

 Import from fabFORCE.net DBDesigner4

 Database administration

 Start and stop of database instances

 Instance configuration

 Database account management

 Instance variables browsing

 Log file browsing

 Data dump export/import


1.
2.
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7. ELEMENTOS DEL SISTEMA BASADO EN COMPUTADORAS
2.7.1. Hardware
2.7.1.1 Servidor
 Memoria RAM 8Gb.

 Disco Duro 1 Tb.

 Tarjeta Madre Intel

 Micro Procesador CD-ROM

2.7.1.2 Cliente
 1 computadora con los requisitos básicos del sistema

 Un celular con sistema operativo android

 Impresora

 Cables de red

2.7.1.3 Medios de comunicación


 Switch, (para la conexión de red)

 Wi-Fi (para la comunicación inalámbrica de la información)


2.7.1.4 Otros dispositivos
 Ninguno
1.
2.
3.
4.
5.
6.
7.
7.1.
2.7.2 Software
2.7.2.1 Servidor
 MySQL

 Lenguaje de programación PHP en usando el Framework de Laravel en su

versión 5.4

 Sistema operativo Windows 10

2.7.2.2 Cliente
 Sistema Operativo Windows 10

 Lenguaje de programación PHP en usando el Framework de Laravel en su

versión 5.3

2.7.2.3 Otro software adicional


 Microsoft Office Excel

 Microsoft Office Word

 Photoshop

 Paint
2.7.3 Datos
Clientes. -

Nombre, Apellido, Fecha de nacimiento, email, sexo, estado

Fotógrafos. -

Nombre, apellido, ubicación, teléfono, email, sexo, estado

Eventos. -

Nombre, descripción, ubicación, hora de inicio, fecha, banner, token

Fotografía. -

Fuente, estado, precio, privacidad

Compras. -

Tipo, total, forma de pago, fecha

Compras físicas. -

Resolución, ubicación de entrega.

2.7.4 Procesos
Registro: En el proceso de registro participan los fotógrafos y los clientes,
cada uno se registra a la plataforma por su propia cuenta, con todos sus datos
personales.

Creación de pedidos: Los clientes pueden seleccionar varias fotografías para


crear un único pedido y procesar un solo pago por todas las fotografías que
desea.

Compras: Los clientes pueden comprar las fotografías que ellos desean
utilizando plataformas accesibles como PAYPAL.

2.7.5 Gente/Usuario
El equipo humano que desarrolla el software está conformado por:

1. Paul Grimaldo
2.7.5.1 Usuario
Fotógrafos: Se encarga de subir las fotografías de todos los eventos a los
cuales está asistiendo.

2.7.5.2 Cliente
Como cliente puedo suscribirme a eventos, seleccionar varias fotografías y
comprarlas a través de la plataforma.

2.8 Metodología para el desarrollo del software


2.8.1 Características del PUDS
El Proceso Unificado es un proceso de desarrollo de software. Un proceso de
desarrollo de software es el conjunto de actividades necesarias para
transformar los requisitos de un usuario en un Sistema Software. El Proceso
Unificado es un marco de trabajo genérico que puede especializarse para una
gran variedad de sistemas software, para diferentes áreas de aplicación,
diferentes tipos de organizaciones, diferentes niveles de aptitud y diferentes
tamaños de proyecto.
Los aspectos que definen al Proceso Unificado se resumen en tres frases
clave:

Dirigido por casos de uso

Un Caso de Uso es un fragmento de funcionalidad del Sistema que


proporciona al Usuario n resultado importante. Todos los Casos de Uso juntos
constituyen el Modelo de Casos de Uso, el cual describe la funcionalidad total
del Sistema. Sin embargo, los Casos de Uso no son solo una herramienta para
especificar los requisitos de un Sistema, también guían su diseño,
implementación, y prueba, esto es, guían el proceso de desarrollo.

Centrado en la arquitectura
La Arquitectura surge de las necesidades de la empresa, y se refleja en los
casos de Uso, sin embargo, también se ve influida por muchos otros factores,
como el Hardware, Sistema Operativo, Sistema de Gestión de Base de Datos,
los protocoles de Red, etc. La Arquitectura es una vista del diseño completo
con las características más importantes resaltas, dejando los detalles de lado.
La relación entre los Casos de Uso y la Arquitectura se debe a que, cada
producto tiene tanto una función como una forma, ninguna es suficiente por sí
misma. Estas dos fuerzas deben equilibrarse para obtener un producto con
éxito. A medida que los Casos de Uso se especifican y maduran, se descubre
más de la arquitectura. Esto, a su vez, lleva a la maduración de más casos de
uso. Este proceso continua hasta que se considere que la arquitectura es
estable.

Iterativo e incremental

Es práctico dividir el trabajo en partes más pequeñas o mini proyectos. Cada


mini proyecto es una iteración que resulta en un incremento. Las iteraciones
hacen referencia a pasos en el flujo de trabajo, y los incrementos al crecimiento
del producto.
Estos tres conceptos son de igual importancia. La Arquitectura proporciona la
estructura sobre el cual guiar las iteraciones, mientras que los Casos de Uso
definen los objetivos y dirigen el trabajo de cada Iteración.
El Proceso Unificado se repite a lo largo de una serie de ciclos de constituyen
la vida de un Sistema, cada ciclo concluye una versión del producto. Cada ciclo
consta de cuatro fases: Inicio, Elaboración, Construcción, Transición.
Durante la Fase de Inicio, se desarrolla una descripción del producto final a
partir de una buena idea y se presenta el análisis de negocio para el producto.
Durante la Fase de Elaboración, se especifican en detalle la mayoría de los
casos de uso del producto y se diseña la arquitectura del Sistema.
Durante la Fase de Construcción, se crea le producto. En esta fase, la línea
base de la arquitectura crece hasta convertirse en el sistema completo.
La Fase de Transición, cubre el periodo durante el cual el producto se
convierte en versión beta. Esta fase conlleva actividades como la fabricación,
formación del cliente, el proporcionar una línea de ayuda y asistencia, y la
corrección de los defectos que se encuentren tras la entrega.
Las cuatro P en el desarrollo de software: persona, proyecto, producto y
proceso
El resultado final de un Proyecto Software es un producto que toma forma
durante su desarrollo gracias a la intervención de muchos tipos distintos de
personas.
 Personas: Los principales autores de un proyecto Software son los
arquitectos, desarrolladores, ingenieros de prueba y el personal de gestión.
 Proyecto: Elemento organizativo a través del cual se gestiona el desarrollo
del software.
 Producto: Artefactos que se crean durante la vida del proyecto.
 Proceso: Un proceso de ingeniería de software es una definición del
conjunto completo de actividades necesarias para transformar los requisitos
de usuario en un producto.
Herramientas: Software que se utiliza para automatizar las actividades
definidas en el proceso.

Una organización enfrenta una tarea esencial siempre que hace una persona
pase de recurso "latente" a un puesto de "trabajador". La palabra "trabajador"
es usada para denominar a los puestos, a los cuales se pueden asignar
persona, el termino rol para hablar de los papeles que cumple un trabajador.
Un trabajador puede asumir roles en relación con otros trabajadores en
diferentes flujos de trabajos. Cada trabajador es responsable de un conjunto de
actividades necesarias para el diseño de un subsistema.
El producto es más que código
En el contexto de proceso unificado, el producto que se obtiene es un sistema
software. El término producto aquí se hace referencia al sistema entero, y no
solo al código que se entrega.
Un sistema son todos los artefactos que se necesitan para representarlos en
una forma comprensible para maquinas u hombres, para las maquinas, los
trabajadores y los interesados.
Artefactos
Es un término general para cualquier información creada, producida, cambiada
o utilizada por los trabajadores en el desarrollo del sistema.
Básicamente, hay dos tipos de artefactos: artefactos de ingeniería y artefactos
de gestión.
Los de ingenierías creadas durante las distintas fases de proceso
(requisitos, análisis, diseño, implementación y prueba). Los de gestión tienen
un tiempo de vida corto, lo que dura la vida del proyecto; A este conjunto
pertenecen artefactos como el análisis de negocios, el plan de desarrollo
(incluyendo el plan de versiones e interacciones).
Un sistema posee una colección de modelos
Cada trabajador necesita una perspectiva diferente del sistema, las
perspectivas recogidas de todos los trabajadores se encuentran en unidades
más grandes, es decir, modelos de modo que un trabajador pueda tomar una
perspectiva concreta del conjunto de modelos.

El Proceso Unificado proporciona un conjunto de modelos cuidadosamente


seleccionando con cual empezar. Este conjunto de modelos hace claro el
sistema para todos los trabajadores, incluyendo a los clientes, usuarios y jefes
del proyecto.

¿Qué es un modelo?
Es una abstracción del sistema, especificando el sistema modelado desde un
punto de vista y determinando el nivel de abstracción. Son abstracciones que
construyen los arquitectos y desarrolladores.

Relación entre modelos


Un sistema contiene todas las y restricciones entre los elementos incluidos
entre diferentes modelos. El hecho de que los elementos en dos
modelos estén conectados no cambia en los modelos que pertenecen.
2. 8.2 Características de UML
En todas las disciplinas de la Ingeniería se hace evidente la importancia de los
modelos ya que describen el aspecto y la conducta de "algo". Ese "algo" puede
existir, estar en un estado de desarrollo o estar, todavía, en un estado de
planeación.
Es en este momento cuando los diseñadores del modelo deben investigar los
requerimientos del producto terminado y dichos requerimientos pueden incluir
áreas tales como funcionalidad, performance y confiabilidad. Además, a
menudo, el modelo es dividido en un número de vistas, cada una de las cuales
describe un aspecto específico del producto o sistema en construcción.
El modelado sirve no solamente para los grandes sistemas, aun en
aplicaciones de pequeño tamaño se obtienen beneficios de modelado, sin
embargo es un hecho que entre más grande y más complejo es el sistema,
más importante es el papel de que juega el modelado por una simple razón: "El
hombre hace modelos de sistemas complejos porque no puede entenderlos en
su totalidad".

LENGUAJE UNIFICADO DE MODELADO (UNIFIED MODELING


LANGUAGE - UML)
UML es un popular lenguaje de modelado de sistemas de software. Se trata de
un lenguaje gráfico para construir, documentar, visualizar y especificar un
sistema de software. Entre otras palabras, UML se utiliza para definir un
sistema de software.
Los principales beneficios de UML son:
 Mejores tiempos totales de desarrollo (de 50 % o más).
 Modelar sistemas (y no sólo de software) utilizando conceptos orientados a
objetos.
 Establecer conceptos y artefactos ejecutables.
 Encaminar el desarrollo del escalamiento en sistemas complejos de misión
crítica.
 Crear un lenguaje de modelado utilizado tanto por humanos como por
máquinas.
 Mejor soporte a la planeación y al control de proyectos.
 Alta reutilización y minimización de costos.
Un modelo es expresado en un lenguaje de modelado. Un lenguaje de
modelado consiste en vistas, diagramas, elementos de modelo - los símbolos
utilizados en los modelos - y un conjunto de mecanismos generales o reglas
que indican cómo utilizar los elementos. Las reglas son sintácticas, semánticas
y pragmáticas.

Vistas: Las vistas muestran diferentes aspectos del sistema modelado. Una
vista no es una gráfica, pero sí una abstracción que consiste en un número de
diagramas y todos esos diagramas juntos muestran una "fotografía" completa
del sistema. Las vistas también ligan el lenguaje de modelado a los métodos o
procesos elegidos para el desarrollo. Las diferentes vistas que UML tiene son:
 Vista Use-Case: Una vista que muestra la funcionalidad del sistema como
la perciben los actores externos.
 Vista Lógica: Muestra cómo se diseña la funcionalidad dentro del sistema,
en términos de la estructura estática y la conducta dinámica del sistema.
 Vista de Componentes: Muestra la organización de los componentes de
código.
 Vista Concurrente: Muestra la concurrencia en el sistema, direccionando los
problemas con la comunicación y sincronización que están presentes en un
sistema concurrente.
 Vista de Distribución: muestra la distribución del sistema en la arquitectura
física con computadoras y dispositivos llamados nodos.
Diagramas: Los diagramas son las gráficas que describen el contenido de una
vista. UML tiene nueve tipos de diagramas que son utilizados en combinación
para proveer todas las vistas de un sistema: diagramas de caso de uso, de
clases, de objetos, de estados, de secuencia, de colaboración, de actividad, de
componentes y de distribución.
Símbolos o elementos del modelo: Los conceptos utilizados en los
diagramas son los elementos de modelo que representan conceptos comunes
orientados a objetos, tales como clases, objetos y mensajes, y las relaciones
entre estos conceptos incluyendo la asociación, dependencia y generalización.
Un elemento de modelo es utilizado en varios diagramas diferentes, pero
siempre tiene el mismo significado y simbología.
Reglas o mecanismos generales: Proveen comentarios extras, información o
semántica acerca del elemento de modelo; además proveen mecanismos de
extensión para adaptar o extender UML a un método o proceso específico,
organización o usuario.
UML posee la riqueza suficiente como para crear un modelo del sistema,
pudiendo modelar los procesos de negocios, funciones, esquemas de bases de
datos, expresiones de lenguajes de programación, etc. Para ello utiliza varios
tipos diferentes de diagramas, por ejemplo, en UML 2.0 hay 13 tipos de
diagramas.
Estos diagramas se pueden diferenciar en tres categorías:

Diagramas de estructura
1) Diagrama de clases
2) Diagrama de componentes
3) Diagrama de objetos
4) Diagrama de estructura compuesta (UML 2.0)
5) Diagrama de despliegue
6) Diagrama de paquetes
Diagrama de comportamiento
1) Diagrama de actividades
2) Diagrama de casos de uso
3) Diagrama de estados
Diagramas de interacción
1) Diagrama de secuencia
2) Diagrama de comunicación
3) Diagrama de tiempos (UML 2.0)
4) Diagrama de vista de interacción (UML 2.0)

Referencias sobre el tema

Lenguaje Unificado de Modelado – James Rumbaugh, Ivar Jacobson, Grady


Booch
Ingeniería de software ---- Roger Pressman
Proceso de Desarrollo Unificado--- James Rumbaugh, Ivar Jacobson, Grady
Booch
2. 8.3 Herramientas del desarrollo
2. 8.3.1 Software
El Software necesario para el desarrollo e implementación adecuado y
satisfactorio de este Sistema de información es:
NOMBRE VERSION

SISTEMA OPERATIVO Windows 7 Ultimate

GESTOR DE BASE DE DATOS PostgresSQL

LENGUAJE DE PROGRAMACION PHP

PLATAFORMA DE DESARROLLO Yii Framework PHP


PLATAFORMA DE MODELADO VISUAL Enterprise Architect v10.0

2. 8.3.2 Hardware
Las recomendaciones mínimas de Hardware requerido para el soporte del
Software necesario para el desarrollo del Sistema de Información mencionado
son:
NOMBRE VERSION CARACTERISTICAS

PROCESADOR Intel Core i7 

PLACA BASE AsRock  

MEMORIA RAM Kingstone DDR3 de Capacidad 4 GB

TARJETA DE VIDEO NVIDIA GeForce  

DISCO DURO Toshiba 1 TB (TeraByte)

2. 8.4 Posibles costos


Tabla de costos para la puesta en marcha

Para que el desarrollo del Sistema Software se necesitara lo siguiente:


Hardware

El hardware requerido para que el computador soporte al Sistema Software en


Desarrollo, oscila bajo los siguientes costos unitarios:
NOMBRE VERSION CAPACIDAD COSTO ($)

PROCESADOR Intel i3-4150 3.5 GHz 113,00 $

MEMORIA RAM KingstoneDDR3 4GB 37,00 $

TARJETA DE VIDEO GeForce GTX 650 Ti 2GB 120,00 $


DISCO DURO Seagate Desktop HDD 1TB 57,00 $

ASRock 960GM-VGS3
PLACA BASE   42,00 $
FX

CASE COMBO Delux DLC-MU305   50,00 $

  419,00 $

Software

Las licencias requeridas para ciertas plataformas de funcionamiento continuo


irrestricto, y de seguridad oscilan bajo los siguientes costos:
NOMBRE VERSION COSTO ($)

SISTEMA OPERATIVO Windows 7 Ultimate 32 Bits 319,99 $

GESTOR DE BASE DE
PostgresSQL 2000,00 $
DATOS

ANTIVIRUS ESET Smart Internet Security 7 79,99 $

ANTIVIRUS PARA SERVIDOR ESET END Point Security 39,99 $

LECTOR DE DOCUMENTOS ADOBE Reader PDF xi OpenSource

  2439,97 $

Sumando el total de todos los costos, se necesitara invertir un total de $


2858,97 Dólares americanos para la puesta en marcha del sistema.
Recurso humano

El recurso humano es una parte fundamental para el desarrollo del Sistema


Software y su costo de trabajo se especifica en la siguiente tabla:

OCUPACION CANTIDAD COSTO/MES


- C/U

ANALISTA 2 300,00 $

DISEÑADOR 2 400,00 $

DESARROLLADOR 2 300,00 $

2.8.5 Posibles beneficios


Tabla de beneficios para los clientes

NOMBRE DESCRIPCION

Minimizar el tiempo de actividades realizadas por la empresa,


gracias a la liberación y generación de información,
TIEMPO
principalmente en la búsqueda de documento o archivo
especifico
Con una interfaz sencilla y de rápido acceso, para el mejor
entendimiento del usuario se reducirá el esfuerzo de los
usuarios para la generación de informes e indicadores, que
permiten corregir las fallas difíciles de detectar y controlar con
ESFUERZO
un sistema manual.
El recurso humano no tendrá que exceder su esfuerzo para
algunas actividades que se tenían que hacer de forma
manual.
Mejor manejo de inventario. Ya que las actividades se
pueden hacer en un menor tiempo y con menos esfuerzo por
COSTO
ende el costo será menor que al realizar las actividades de
forma manual.
POSIBLES Al utilizar nueva tecnología con lo que se podrá tener una
CLIENTES atención más rápida y eficaz, clientes nuevos podrán llegar a
la empresa sin necesidad de una publicidad por un medio de
comunicación que conlleva a gastos para la misma.
La tecnología móvil será la que promueva a la empresa.
CAPITULO 3
3. DESARROLLO DEL PROYECTO
3.1 Flujo de trabajo captura de requisitos
3.1.1 Modelo de Negocio
COMPRA DE FOTOGRAFIA POR PARTE DE UN USUARIO
act Compra Fotografia

Cliente Sistema

InicioDeActivi dad

Introduce Codigo Ev ento

Validar Codigo
[no]

CodigoValido?

[si]

Carga Foto Ev ento

Selecciona Fotos a
Comprar

Prepara metodo de pago


[no]

Datos Validos?

[si]

Prepara entrega de
compra

Recibe comprobante y
compra

FinalDeActividad

CARGA DE FOTOGRAFÍAS A SERVIDOR


act Subida de fotografias

Fotografo Sistema

InicioDeActividad

Sucribirse a ev ento

Recepciona y v alida
suscripcion

Sube fotografias al
sistema

Asigna precio por


fotografia

Asigna metodo de pago

Valida datos de subida

Env ia notificacion

FinalDeActividad

CREACIÓN DE EVENTO
act Creacion Ev ento

Admin Sistema

InicioDeActividad

Introduce datos de ev ento

[no]

Datos validos?

[si]

Genera QR

Habilita Ev ento

FinalDeActividad
3.1.2 Modelo de dominio
class Base de Datos

(id_fotografo = id)
«FK»

detalle_persona_ev ento

passw ord_resets «column»


*PK id: INT EGER
«column» id_persona: INTEGER
token: VARCHAR(255) FK id_evento: INTEGER
email: VARCHAR(55)
created_at: TIMESTAMP «FK»
+ FK_detalle_persona_evento_eventos(INT EGER)
+PK_Fotografo + FK_detalle_persona_evento_persona(INTEGER)
fotografos
«PK»
1 «column» + PK_detalle_persona_evento(INTEGER) ev entos
*pfK id: INT EGER
telefono: INTEGER+FK_detalle_persona_evento_persona
+FK_detalle_persona_evento_eventos
1..* 1..*
users «column»
direccion: VARCHAR(120)
*PK id: INT EGER
id_persona: INTEGER
«column» nombre: VARCHAR(100)
+PK_Evento
*PK id: INT EGER descripcion: VARCHAR(250)
email: VARCHAR(50) «PK» (id_evento = id) horaInicio: VARCHAR(50)
password: VARCHAR(255) + PK_Fotografo(INTEGER) fecha: DATET IME
«FK» 1
remember_token: VARCHAR(255) codigoqr: BLOB
tipo: INTEGER estado: TINYINT
FK id_persona: INTEGER tipo: VARCHAR(50)
+FK_fotografos_persona 1 ubicacion: VARCHAR(50)
FK id_cliente: INTEGER
«FK» (id_evento = id) banner: BLOB
+ FK_users_persona(INT EGER)
«FK» token: VARCHAR(255)
«PK»
+ PK_users(INTEGER) +FK_Evento_usuario
«FK»
+FK_users_persona 1..* 1..* + FK_Evento_usuario(INTEGER)
«PK»
+ PK_Evento(INTEGER)
(id_persona = id)
«FK» +PK_Evento 1
(id_cliente = id)
«FK»
«FK» (id_evento = id)
+PK_persona +PK_persona
1 1
«FK»
persona +PK_persona

1 +FK_Imagenes_Evento
+FK_imagenes_fotografo
1..* 1..*
«column» +PK_Usuario 1
*PK id: INT EGER
fotos
nombre: VARCHAR(50) usuarios
apellido: VARCHAR(50)
«column»
sexo: VARCHAR(1) «column»
*PK id: INTEGER
fperfil: BLOB +PK_persona fechanac: DATE
FK id_evento: INT EGER
estado: VARCHAR(50) *pfK id: INT EGER
«FK» src: VARCHAR(200)
faceid: VARCHAR(100) 1 1 id_persona: INTEGER
estado: T INYINT
+PK_Imagenes
(id_foto = id)
+FK_usuarios_persona .precio: FLOAT(5)
«PK» «PK» +PK_Usuario «FK» privacidad: INTEGER
(id_usuario = id) 1
+ PK_persona(INTEGER) + PK_Usuario(INTEGER) FK id_fotografo: INTEGER
1 «FK»

«FK»
+ FK_Imagenes_Evento(INTEGER)
+PK_Usuario 1 + FK_imagenes_fotografo(INTEGER)
«PK»
+ PK_Imagenes(INTEGER)
+FK_photo_usuario_usuarios
+FK_photo_usuario_fotos
1..* 1..*
+PK_Imagenes 1
photo_usuario

«column»
*PK id: INTEGER
«FK» FK id_foto: INTEGER
(id_user = id)
FK id_usuario: INTEGER

«FK»
+ FK_photo_usuario_fotos(INTEGER)
+ FK_photo_usuario_usuarios(INTEGER)
«PK»
+FK_compra_usuario 1..* + PK_photo_usuario(INTEGER) (id_foto = id) «FK»

compras

«column»
*PK id: INT EGER
compra_fisicas tipo: VARCHAR(50)
FK id_user: INTEGER
«column» total: FLOAT(5)
*pfK id: INTEGER formadepago: VARCHAR(50) +FK_pago_imagenes 1..
ubicacion: VARCHAR(100) fecha: DATE
resolucion: VARCHAR(50) estado: VARCHAR(20) compra_detalles
token: VARCHAR(255)
FK id_compra: INTEGER +PK_compra
(id_compra = id) +PK_compra (id_compra
+FK_pago_compra
«FK» = id) «column»
1 «FK» 1 + FK_compra_usuario(INT EGER) 1 «FK» *PK id: INT EGER
1
«FK» +FK_compra_fisicas_compras * codcontrol: VARCHAR(50)
«PK» FK id_foto: INT EGER
+ FK_compra_fisicas_compras(INTEGER)
+ PK_compra(INTEGER) FK id_compra: INTEGER
«PK»
+ PK_compra_fisica(INTEGER)
«FK»
+ FK_pago_compra(INTEGER)
+ FK_pago_imagenes(INTEGER)
«PK»
+ PK_pago(INTEGER)
«unique»
+ UQ_compra_detalle_codcontrol(VARCHAR)
3.1.3 Identificar actores y casos de uso
3.1.3.1 Identificar actores
 Fotógrafos
 Usuarios finales
 Administradores
 Sistema

3.1.3.2 Identificar Casos de uso


 CU1. Gestionar fotógrafos
 CU2. Gestionar usuarios
 CU3. Gestionar pedido
 CU4. Gestionar compra
 CU5. Gestionar eventos
 CU6. Gestionar fotografías
 CU7. Asignar Privacidad
 CU8. Inicio de sesión
 CU9. Cierre de sesión
 CU10. Gestionar Notificaciones
 CU11. Administrar Suscripción
 CU12. Compra Física
 CU13. Visualizar Transacciones
3.1.4 Detallar Caso de uso
CU1. Gestionar fotógrafos

uc CU1 Gestionar Fotografo

CU1 Gestionar
fotografo

Fotografo
(from Casos de uso)
(from Actores)

Caso de uso CU1. Gestionar fotógrafos


Propósito Administrar toda la información necesaria
correspondiente a los fotógrafos.
Descripción Cuando se presenta un nuevo fotógrafo este mismo
puede crear su cuenta, editarla y darle de baja en algún
momento.
Actores Fotógrafo
Actor iniciador Fotógrafo
Precondición Ninguna
Proceso Para registrar una nueva cuenta, bastara con ubicar
registrar y rellenar los datos solicitados.
1.-Nombre
2.-Apellido
3.-CI
4.-Sexo
5.-Telefono
6.-Direccion
7.-Foto de perfil
Una vez guardados los datos, puede ingresar al
sistema.
Modificar:
Bastara con seleccionar editar perfil, luego rellenar los
mismos datos y guardar.
Eliminar:
El fotógrafo hará clic en el botón dar cuenta de baja y la
cuenta será suspendida.

Postcondición Ninguno
Excepción El usuario ya está previamente creado, no podrá crearlo
con un identificador duplicado.
CU2. Gestionar usuarios

uc CU2. Gestionar usuarios

CU2 Gestionar
usuarios

Cliente
(from Casos de uso)
(from Actores)

Caso de uso CU2. Gestionar usuarios


Propósito Administrar toda la información necesaria
correspondiente a los clientes .
Descripción Cuando se presenta un nuevo usuario este mismo
puede crear su cuenta, editarla y darle de baja en algún
momento.
Actores Cliente
Actor iniciador Cliente
Precondición Ninguna
Proceso Para registrar una nueva cuenta, bastara con ubicar
registrar y rellenar los datos solicitados.
1.-Nombre
2.-Apellido
3.-email
4.-Sexo
5.-Fecha de nacimiento
6.-password
7.-Foto de perfil
Una vez guardados los datos, puede ingresar al
sistema.
Modificar:
Bastara con seleccionar editar perfil, luego rellenar los
mismos datos y guardar.
Eliminar:
El cliente hará clic en el botón dar cuenta de baja y la
cuenta será suspendida.

Postcondición Ninguno
Excepción El usuario ya está previamente creado, no podrá crearlo
con un identificador duplicado.

CU3. Gestionar pedido

uc CU3. Gestionar pedido

CU10 Gestionar
fotografias

(from Casos de uso)


«include»

CU3 Gestionar
Pedido

«extend» CU4 Gestionar


Cliente
Compra
(from Casos de uso)
(from Actores)

(from Casos de uso)

Caso de uso CU3. Gestionar pedido


Propósito Administrar toda la información necesaria
correspondiente a los pedidos de compra .
Descripción Cuando el usuario desea comprar varias fotografías
estas se van agregando a un carrito que contiene todo
el pedido de compra.
Actores Cliente
Actor iniciador Cliente
Precondición CU10. Gestionar fotografías
Proceso El usuario seleccionara todas las fotografías que desea
comprar 1 a 1, lo que ira creando el pedido de compra

1. Clic en la fotografía
2. Clic en agregar al pedido
Modificar:
Clic en editar el carrito, editar pedido
Eliminar:
Clic en la X encima de la fotografía dentro de los
pedidos para sacar la fotografía de los mismos.

Postcondición CU4. Gestionar Compra


Excepción No ha seleccionado ninguna fotografía
Las fotografías seleccionadas ya están compradas por
el usuario.

CU4. Gestionar compra

uc CU4. Gestionar compra

CU3 Gestionar
Pedido

(from Casos de uso)

«extend»

CU4 Gestionar
Compra

Cliente

(from Actores) (from Casos de uso)

Caso de uso CU4. Gestionar compra


Propósito Administrar toda la información necesaria
correspondiente a la compra de las fotografías.
Descripción Cuando el usuario termina de crear el pedido este
selecciona una forma de pago, para poder obtener las
fotografías con su respectivo método de pago.
Actores Cliente
Actor iniciador Cliente
Precondición Ninguna
Proceso 1.El usuario elige la forma de pago.
2.El usuario elige el tipo de compra
3.El usuario realiza la transacción con los datos
solicitados dependientes de la forma de pago.
4. El usuario realiza la transacción y recibe sus
fotografias

Postcondición CU4. Gestionar Compra


Excepción No ha seleccionado ninguna fotografía
Las fotografías seleccionadas ya están compradas por
el usuario.
CU5. Gestionar eventos

uc CU5. Gestionar ev entos

CU5 Gestionar
Ev ento

Cliente
(from Casos de uso)
(from Actores)

Caso de uso CU5. Gestionar eventos


Propósito Administrar toda la información necesaria
correspondiente a la eventos
Descripción El cliente puede crear eventos de cualquier tipo y
administrar la información referente a este evento
creado.
Actores Cliente
Actor iniciador Cliente
Precondición Ninguna
Proceso 1. El cliente selecciona crear evento
2. Ingresa los datos solicitados del evento
-Nombre del evento
-Descripción
-Hora de inicio
-Fecha
-Imagen Generado QR
-Ubicación
-Estado (al crearse es Activo)
-Tipo de evento
3. El sistema validad los datos y habilita el evento
Modificar.
1. Selecciona el evento a modificar del listado de
eventos habilitados para el usuario.
2. Ingresar los nuevos datos y guardar los cambios.
Eliminar.
1. Selecciona e evento a modificar del listado de
eventos habilitados para el usuario.
2. Elige la opción eliminar y se deshabilita el
evento.
Postcondición Ninguna
Excepción Ninguna

CU6. Gestionar fotografías

uc CU6. Gestionar fotografías

CU5 Gestionar
Ev ento

(from Casos de uso)


«include»

CU6 Gestionar
fotografías

Fotografo
(from Casos de uso)
(from Actores)

Caso de uso CU6. Gestionar Fotografías


Propósito Administrar toda la información necesaria
correspondiente a las fotografías de un evento
especifico
Descripción El fotógrafo puede suscribirse a un evento y subir todas
las fotografías de ese evento.
Actores Fotógrafo
Actor iniciador Fotógrafo
Precondición CU5. Gestionar Evento
Proceso El fotógrafo visualiza el evento en el sistema y le
selecciona suscribirse
Selecciona subir imágenes del evento
Selecciona todas las imágenes a subir
El sistema procesa las imágenes y da respuesta
El fotógrafo establece un precio por cada fotografía
El fotógrafo guarda todos los cambios realizados
Modificar.
El fotógrafo al haber recibido la respuesta del sistema
selecciona modificar fotografía
Modifica el precio de la fotografía
Guarda los cambios
Eliminar:
Antes de subir las fotografías verifica que son las
requeridas
Clic en la X encima de la imagen para descartarla de la
subida.
Postcondición Ninguna
Excepción La extensión del archivo no es correspondiente a una
fotografía

CU7. Asignar Privacidad

uc CU7. Asignar Priv acidad

CU6 Gestionar
fotografías

(from Casos de uso)


«include»

CU7 Asignar
Priv acidad

Fotografo

(from Actores) (from Casos de uso)

Caso de uso CU7. Asignar Privacidad


Propósito Administrar toda la información necesaria
correspondiente a la privacidad de cada imagen
correspondiente a un evento
Descripción El fotógrafo puede editar la privacidad de cada
fotografía
Para que estén disponibles a ciertos tipos de usuarios
Actores Fotógrafo
Actor iniciador Fotógrafo
Precondición CU6. Gestionar fotografías
Proceso El fotógrafo visualiza todas las fotografías de un evento
especifico y selecciona una o un grupo de fotografías
Selecciona la opción editar privacidad
Selecciona cualquier posible valor:
1. Privada
2. Público
Postcondición Ninguna
Excepción Ninguna

CU8. Inicio de sesión

uc CU8. Inicio de sesión

CU1 Gestionar
fotografo

Fotografo
(from Actores) (from Casos de uso)
«include»

CU8 Inicio de sesión

Usuario (from Casos de uso)


«include»
(from Actores)
Cliente
CU2 Gestionar
(from Actores) usuarios

(from Casos de uso)

Caso de uso CU8. Inicio de sesión


Propósito Permitir el ingreso al sistema
Descripción Valida los datos de los usuarios existentes que intentan
ingresan al sistema.
Actores Usuario
Actor iniciador Usuario
Precondición CU1. Gestionar fotógrafo
CU2. Gestionar usuarios
Proceso 1. Ingresan correo
2. Introducen pass
3. Valida datos
4. Ingresa al sistema
Postcondición Ninguna
Excepción 3. Los datos ingresados son incorrectos

CU9. Cierre de sesión

uc CU9. Cierre de sesión

CU9 Cierre de sesion

Usuario
(from Casos de uso)
(from Actores)

Cliente
Fotografo
(from Actores)
(from Actores)

Caso de Uso CU9. Cerrar sesión


Propósito Salir del sistema.
Confirmará si desea abandonar el sistema por parte del
Descripción
usuario actual.
Actores Usuario.
Actor Iniciador Usuario.
Precondición Ninguna
1. Clic en perfil usuario
Proceso
2. Cerrar sesión
Postcondición Ninguna
Excepciones

CU10. Gestionar Notificaciones


uc CU10. Gestionar Notificaciones

CU5 Gestionar
CU10 Gestionar
notificaciones «include» Ev ento

Sistema
(from Casos de uso) (from Casos de uso)
(from Actores)

Caso de Uso CU10. Gestionar notificaciones


Propósito Enviar notificaciones
El sistema realiza el reconocimiento facial para entregar
Descripción
todas las fotos donde aparece.
Actores Sistema
Actor Iniciador Sistema
Precondición CU5 Gestionar Evento
1. El sistema realiza el reconocimiento facial y al
Proceso
encontrar coincidencia enviar una notificación
Postcondición Ninguna
Excepciones

CU11. Administrar suscripción


uc CU11. Administrar suscripción

CU5 Gestionar
Ev ento

Cliente (from Casos de uso)


«include»
(from Actores)

CU11. Administrar
suscripción
Fotografo

(from Actores) Usuario


(from Casos de uso)
(from Actores)

Caso de Uso CU11. Administrar suscripción


Propósito Suscribirse a un evento para estar informado
El usuario al ingresar puede suscribirse a un evento, si
Descripción es fotógrafo para subir las fotografías, si es usuario
normal para ver las fotografías de ese evento.
Actores Sistema
Actor Iniciador Sistema
Precondición CU5 Gestionar Evento
Fotógrafo:
1.El fotógrafo le da clic en suscribirse
2.El sistema le responde aceptando la suscripción
Cancelar suscripción
1. El fotógrafo ingresa al sistema
2. Administra sus eventos
3. Clic en el evento y en cancelar suscripción
Proceso Usuario:
1.El usuario ingresa el token
2.El sistema validad el token
3.El sistema suscribe al usuario al evento
Cancelar:
1. El usuario ingresa al sistema
2. Administra sus eventos
3. Clic en el evento y en cancelar suscripción
Postcondición Ninguna
Usuario:
Excepciones
El token ingresado no corresponde a algún evento

CU12. Compra Física


uc CU12. Compra Fisica

CU4 Gestionar
Compra

(from Casos de uso)

CU12. Compra Fisica

(from Casos de uso)

Cliente
(from Actores)

Caso de Uso CU12. Compra Física


Proporcionar un mecanismo para poder realizar la
Propósito
compra web, y recibir la compra de manera física
El usuario puede comprar las fotografías desde la
Descripción plataforma y proporcionar datos para que se realice la
entrega de manera física.
Actores Cliente
Actor Iniciador Cliente
Precondición Ninguno
Cliente:
El cliente selecciona compra física.
Ingresa los datos referentes a la resolución que desea
para sus fotografías y la ubicación donde quiere que se
Proceso
realice la entrega.
Validad la compra mediante la plataforma PAYPAL.
El sistema responde con los datos de la compra y con
el detalle de cada fotógrafo para su contacto.
Postcondición Ninguna
Excepciones Ninguna
CU13. Visualizar transacciones

uc CU13. Visualizar transacciones

CU13. Visualizar
transacciones CU4 Gestionar
«include» Compra

(from Casos de uso)


(from Casos de uso)

Cliente

(from Actores)

Caso de Uso CU13. Visualizar transacciones


Proporcionar un medio para tener un control sobre las
Propósito
transaciones
El usuario puede ver las transacciones realizadas por el
Descripción
junto con todos los detalles de esa compra
Actores Cliente
Actor Iniciador Cliente
Precondición Ninguno
Cliente:
El cliente seleccionar mis transacciones
El sistema responde y entra todas las transacciones
Proceso
Detalle:
Para visualizar el detalle ingresa al eventoid, lo validad

Postcondición Ninguna
Excepciones Ninguna
3.1.5 Estructurar Modelo de casos de uso
uc GeneralCasos de USo

CU7 Asignar
Priv acidad Fotografo
(from Actores)
CU1 Gestionar
(from Casos de uso) fotografo
CU8 Inicio de sesión «include»

(from Casos de uso)


«include»
(from Casos de uso) «include»
CU2 Gestionar
Usuario usuarios
CU9 Cierre de sesion
(from Actores)
CU6 Gestionar
fotografías (from Casos de uso)
(from Casos de uso)
CU12. Compra Fisica

(from Casos de uso)

(from Casos de uso)


CU11. Administrar
Cliente CU4 Gestionar
suscripción
Compra
(from Actores)
CU13. Visualizar «include»
«include»
(from Casos de uso) transacciones
(from Casos de uso)

«include» (from Casos de uso) «extend»

Sistema
(from Actores)
CU3 Gestionar
CU5 Gestionar Pedido
Ev ento CU10 Gestionar
«include» notificaciones

«include» (from Casos de uso)


(from Casos de uso)
(from Casos de uso)
3.2 Flujo de trabajo Análisis
3.2.1 Análisis de la arquitectura
3.2.1.1 Identificar Paquetes
Paquete usuarios

sd Paquete Usuarios Este paquete estará encargado de la


Paquete Usuarios administración de todos clientes y fotógrafos que
asisten a los eventos.

(from Analisis)

Paquete principal

sd Paquete prinicpal Este paquete maneja toda la información faltante

Paquete prinicpal como ser gestión del evento, gestión de


privacidad, etc.

(from Analisis)

Paquete Compras

pkg Paquete Compras Paquete encargado de la administración del

Paquete Compras pedido del cliente y de las compras que realizara


el mismo.

(from Analisis)
3.2.1.2 Vista de un paquete
Paquete Usuarios

sd Paquete Usuarios

CU1 Gestionar CU2 Gestionar


fotografo usuarios

(from Casos de uso) (from Casos de uso)

«trace» «trace»

Paquete Usuarios

(from Analisis)

Paquete Principal

sd Paquete prinicpal

CU5 Gestionar
Ev ento

CU10 Gestionar «include»


notificaciones
(from Casos de uso) «include»
«include»

(from Casos de uso) CU11. Administrar


suscripción
«trace»
«trace»
(from Casos de uso) CU6 Gestionar
«trace» fotografías
Paquete prinicpal
«trace»
CU8 Inicio de sesión (from Casos de uso)
«trace»

(from Casos de uso) «include»


(from Analisis)
«trace»
«trace»

CU13. Visualizar
CU9 Cierre de sesion
transacciones CU7 Asignar
Priv acidad

(from Casos de uso) (from Casos de uso)


(from Casos de uso)
Paquete Compra

pkg Paquete Compras

Paquete Compra

CU3 Gestionar
Pedido

«extend»
CU4 Gestionar
(from Casos de uso) Compra

(from Casos de uso)


«include»

CU13. Visualizar
transacciones
Cliente
(from Actores) (from Casos de uso)
(from Paquetes)

3.2.1.3 Encapsular casos de uso


Paquete Usuarios

pkg Paquete Usuarios

Paquete Usuarios

CU1 Gestionar
Fotografo fotografo
Cliente (from Actores)
(from Actores)
(from Casos de uso)

CU2 Gestionar
usuarios
Usuario

(from Actores)
(from Casos de uso)

(from Paquetes)
Paquete Principal

pkg Paquete Principal

Paquete Principal

CU10 Gestionar
notificaciones
«include»
CU5 Gestionar
Sistema Ev ento
(from Casos de uso)
(from Actores)

(from Casos de uso)

«include» «include»

Cliente CU11. Administrar CU6 Gestionar


(from Actores) suscripción fotografías

(from Casos de uso) (from Casos de uso)

«include»
Usuario
(from Actores)
CU9 Cierre de sesion CU7 Asignar
Priv acidad

Fotografo
(from Casos de uso) (from Actores) (from Casos de uso)
CU8 Inicio de sesión

(from Casos de uso)


(from Paquetes)
Paquete Compra

pkg Paquete Compras

Paquete Compra

CU3 Gestionar
Pedido

«extend»
CU4 Gestionar
(from Casos de uso) Compra

(from Casos de uso)


«include»

CU13. Visualizar
transacciones
Cliente

(from Actores) (from Casos de uso)


(from Paquetes)

3.2.2 Analizar un caso de uso


3.3 Flujo de trabajo diseño
CU1. Gestionar fotógrafos

sd CU1. Gestionar fotógrafos

1.4: store(datos[])
1.2: validate(datos[]) 2.4: update(id)
Ce fotografos
2.2: validate(id) 3.3: destroy(id)
3.2: validate(id)

1: Registrarse(datos[]) 1.1: create(datos[])


2.1: edit(id)
2: Update(id)
3: Delete(id) 3.1: destroy(id) 1.3: store(datos[])
2.3: update(id)

FotografosController
Fotografo
Ci Login

Ce users

CU2. Gestionar usuarios


sd CU1. Gestionar fotógrafos

1.4: store(datos[])
1.2: validate(datos[]) 2.4: update(id)
Ce Usuario
2.2: validate(id) 3.3: destroy(id)
3.2: validate(id)

1: Registrarse(datos[]) 1.1: create(datos[])


2: Update(id) 2.1: edit(id)

3: Delete(id) 3.1: destroy(id) 1.3: store(datos[])


2.3: update(id)

UsuarioController
Usuario
Ci Login

Ce users

CU3. Gestionar pedido

sd CU3. Gestionar pedido

1.2: get(idImg)

Imagenes

1.3: getImg()
1.1: add(idImg)
1: add(idImg) 2.1: destroy(id)
2: delete(id)
1.5: store(idImg)

Cliente PedidoCompraController

CI Evento Ce detalle

2.2: validate(id)
2.3: destroy(id)

1.4: add()

Ce Compra
CU4. Gestionar compra

sd CU4. Gestionar compra

Ce Evento
1.2:validate(id)
2.2: validate(datos[])

3.2: validate(id)

1.3: getEvento(id)
1.1: buy(datos[])
1: Comprar(datos[])
1.5: store(img, event)
2: Editar(idcompra) 2.1: edit(id)
3.1: destroy(id)
3: Delete(id) 2.5: update()

1.4.1: store(datos[])
CC Compra
1.4.2: store(datos[]) Ce Detalle
Cliente
Ci Pedido
2.4.2: update(datos)
2.4.1: update(datos)
1.4: store(datos[]) 3.3.1: destroy(id)
3.3.2: destoy(id)
2.3: getCompra(id)

3.3: destroy(id)
2.4: update(datos[])

Ce Compra Fisica
Ce compra digital

Ce compra

CU5. Gestionar eventos

sd CU5. Gestionar ev entos

1.2: validate(datos[])
2.2: validate(id)
3.2: validate(id)

2.3: update(datos[])

1.1: create(datos[]) Ce Evento


1: Crear(datos[])
2.1: edit(id, datos[]) 1.3: store(datos[])
2: Actualizar(id, datos[]) 3.3: destroy(id)
3: Delete(id) 3.1: delete(id)

1.4: store(datos)
CCEventos

Cliente
CI Eventos

ubicacion

CU6. Gestionar fotografías


sd CU6. Gestionar fotografías

1.3: getEvento(id)

Ce Evento

2.3: getEvento(id)
1: uploadImgs(data[]) 1.1: create(data[])

2: EditarPrivacidad(EditupLoad) 2.1: edit(data[])


2.4: udpate(data[])
3: Delete(data[]) 3.1: destroy(data[]) 1.4: store(data[])

3.3: destroy(data[])
CC EventoController
Fotografo
CI Evento
Ce fotografia

1.2: validate(data[])
2.2: validate(data[])

3.2: validate(data[])

CU7. Asignar Privacidad

sd CU7. Asignar Priv acidad

1.3: updatePriv(data[])

2.3: udpatePriv(data[])
1.1: darPrivacidad(data[])
1: darPrivacidad(data[])
Ce Imagenes
2.1: updatePriv(data[])
2: EditPriv(data[])

CC Evento Controller
Fotografo
CIEvento

1.2: validate(data[])

2.2: validate(data[])

CU8. Inicio de sesión


sd CU8. Inicio de sesión

1.2: validate(data[])

1: Login(data[]) 1.1: onAttempt(data[]) 1.3: getuserInf(data[])

LoginController
Usuario users
Ci Login

CU9. Cierre de sesión

sd CU9. Cierre de sesión

1.1: logout()
1: logout()
Ce users
1.2: updateToken(data)
logInController
Usuario
Ci Index

CU11. Administrar suscripción


sd CU11. Administrar suscripción

1.2: validate(token)
2.2: validate(idEvento) Ce Evento
1.3: getEvento(token)

1.1: suscribirse(token) 2.3: getEvento(idEvento)


1: suscribirse(token)
2: cancelarSuscripcion(idEvento) 2.1: cancelSus(idEvento)

Cliente 1.5: addFotogEvento(idFotogrago, idEvento)

CC EventosController
Usuario
Ci Eventos
2.5: destroy(idEvento)

Fotografo
1.4: addUserEvento(idUser, idEvento)
2.4: destroy(idEvento)
Ce detalle_fotografo_evento

Ce detalle_user_evento

CU12. Compra Fisica

sd CU12. Compra Fisica

1.3: findOrfail(evento->id) evento

1.2: validate()
1.4: save()

compra
1.1: buyAllcartphysical(request)
1: buy_physical(evento->id)

1.5: save()

CompraController
Cliente
events_photography
1.6: save()

detalle_compra

compra_fisica

CU13. Visualizar transacciones


sd CU13. Visualizar transacciones

1.1: validate()

1: mistransacciones()
1.3: store()

Compracontroller
Cliente app
1.2: findOrfail()

compra
3.3.1 Diseño de la arquitectura

cmp Diseño de la arquitectura

Serv er

Data Base
«Views.blade.php»
View Access
HTTP

MySql

TCP/IP
«Controller.php»
Acceso a datos

Netw ork

Amazon Web Serv ice Rekognition

ISP

API Rekognition
Client
HTTP

HTTP

Google Serv er
API S3 Storage
Client
Web Client Mobile Client

API Google Maps

Brow ser Folius Ev ents.apk


CAPITULO 4
4.0 Manual de usuario
Registro de cliente:
Para el registro como cliente es suficiente con ingresa a la página web, luego
clic en registro cliente, y llenar los datos solicitados.

Registro Fotógrafo
Para registrarse como fotógrafo, basta con ingresar a la página web y luego
clic en registro fotógrafo, luego llenar los datos solicitados.
Creación de un evento
En la pantalla principal, clic en crear evento, esta opción validad solo para los
clientes, y rellenar los datos requeridos, incluyendo la ubicación del evento
para mayor precisión.
Editar Evento
En la pantalla principal con todos los eventos cargados, visualizar el botón
editar evento para corregir los datos del evento, luego rellenar los datos y
guardar.
Suscripción a un evento
Estando en la ventana principal clic en suscribirse a un evento, posteriormente
ingresar el código generado por el QR para suscribirse al evento

Identificarme en fotografías
Ingresar a un evento de la lista de eventos de la persona, luego clic en
identificarme para obtener las fotografías donde aparece esa persona
Comprar fotografías
Para comprar las fotografías, clic en la parte de debajo de la fotografía en el
botón que muestra añadir a un carrito, posteriormente en la parte de arriba ir a
mi carrito, y elegir el método de pago:

Pago físico:
Ingresar los datos de la resolución de la fotografía, y la ubicación de envió para
la fotografía PAYPAL.
Pago online:
Pagar las fotografías mediante PAYAPAL y recibir la confirmación mediante
correo electrónico con las fotografías compradas listas para descargar.
Visualizar transacciones
Estando en el menú principal, clic en el menú y elegir mis transacciones,
visualizar todas las compras y elegir una compra para ver los detalles de la
compra, incluyendo el enlace de descargar de la compra, si fuese compra
online.
Fotógrafos:
Suscribirse a un evento
Estando en la ventana principal clic en suscribirse a un evento, posteriormente
ingresar el código generado por el QR para suscribirse al evento

Subir fotografías
Estando dentro del evento, clic en la opción subir fotografía, y elegir todas las
fotografías que serán subidas al sistema.
Editar fotografía
Estando en el visualizador de todas las fotografías del evento, clic en el botón
superior a la fotografía con el icono de editar, posteriormente modificar los
datos requeridos, precio y PRIVACIDAD.

De igual manera clic en el icono de eliminar para descartar una fotografía

Aplicación Móvil:
La aplicación móvil es para los clientes finales, la aplicación mantiene la
siguientes características
Inicio de sesión
Ingresar los datos solicitados, y mismos con los que registraron en la pagina
web, y esperar la validación

Buscar evento
Estando en el menú de eventos clic en el icono de buscar del menú de
opciones para poder acceder a la cámara, enfocar el código QR que pertenece
al evento y estará registrado para visualizar las fotografías.
Comprar fotografías
Ingresar a un evento dándole clic en su banner, visualizar todas las fotografías
y darle clic en el botón del carrito para añadirlo al carrito de compras.

Volver al menú de eventos y clic en el icono del carrito para visualizar el menú
de compras, confirmar las fotografías a comprar, y clic en el icono de comprar
en la parte superior, luego rellenar los datos necesarios para realizar la compra
mediante PAYAL MOVIL.
Descargar fotografías
Una vez procesado el pago le llegara una notificación con la compra realizada
con un botón descargar, clic en la opción descargar, para obtener las
fotografías compradas.
Identificarme en fotos
Estando dentro del visualizador de fotografías de un evento clic en el icono de
identificarme, luego de eso esperar y se cargara las fotografías donde aparece
el respectivo usuario.

También podría gustarte