188
PROTOTIPO DE SISTEMA DE INFORMACIÓN PARA LA EMPRESA CREAMAX JUAN DAVID GÓMEZ CAICEDO JUAN SEBASTIÁN CELIS MAYA UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE INGENIERÍAS: ELECTRICA, ELECTRONICA, FISICA Y CIENCIAS DE LA COMPUTACIÓN INGENIERÍA DE SISTEMAS Y COMPUTACIÓN PEREIRA 2010

PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

PROTOTIPO DE SISTEMA DE INFORMACIÓN PARA LA EMPRESA

CREAMAX

JUAN DAVID GÓMEZ CAICEDO

JUAN SEBASTIÁN CELIS MAYA

UNIVERSIDAD TECNOLÓGICA DE PEREIRA

FACULTAD DE INGENIERÍAS: ELECTRICA, ELECTRONICA, FISICA Y

CIENCIAS DE LA COMPUTACIÓN

INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

PEREIRA

2010

Page 2: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

2

PROTOTIPO DE SISTEMA DE INFORMACIÓN PARA LA EMPRESA

CREAMAX

JUAN DAVID GÓMEZ CAICEDO

JUAN SEBASTIÁN CELIS MAYA

PROYECTO DE GRADO

Directora

INGENIERA

LUZ STELLA VALENCIA AYALA

UNIVERSIDAD TECNOLÓGICA DE PEREIRA

FACULTAD DE INGENIERÍAS: ELECTRICA, ELECTRONICA, FISICA Y

CIENCIAS DE LA COMPUTACIÓN

INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

PEREIRA

2010

Page 3: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

3

Nota Aceptación:

________________________________________

________________________________________

________________________________________

________________________________________

________________________________________

________________________________________

________________________________________

Firma del presidente del jurado

________________________________________

Firma del jurado

Pereira 22 de Marzo de 2010

Page 4: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

4

DEDICATORIA

¡Corran, corran todo lo que puedan! ¡A mí no me podrán agarrar! ¡Yo soy el muñeco de

jengibre! Cuento tradicional alemán.

A mis padres, Jaime Alberto Gómez y Dora Caicedo, quienes con su amor y entrega me

dieron todo lo necesario para alcanzar mis sueños.

Juan David Gómez Caicedo

Dedico mi tesis con todo mi amor y cariño a mi abuela Margarita Maya, por su constancia y

acompañamiento durante toda mi vida, por creer en mí y por darme una carrera para mi

futuro. Aunque en ocasiones se pasan momentos difíciles, su apoyo ha sido incondicional,

unido a una gran sinérgica motivación por parte suya. La quiero con todo mi corazón y este

trabajo es para ella, por formar parte de mi vida en la figura de madre, padre, abuelo y

abuela, aquí está todo lo que ella me brindó, solamente le devuelvo parte de lo que he

recibido.

Juan Sebastián Celis Maya

Page 5: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

5

AGRADECIMIENTOS

Este proyecto no hubiese sido posible sin la colaboración directa o indirecta de las personas

que me permito citar a continuación.

Agradezco a la ingeniera Luz Stella Valencia Ayala su especial dedicación, tiempo y

paciencia que ha compartido para este proyecto. Reconocemos que es un esfuerzo adicional

a su labor como profesora asumir la dirección de un proyecto de grado.

De igual manera, a la psicóloga Eliana Bermúdez Cardona por su colaboración en las fases

de corrección y redacción del documento del proyecto.

También al ingeniero Danny Orrego su soporte en las etapas de diseño del prototipo del

sistema.

A mi compañero de proyecto de grado y de carrera Juan Sebastián Celis Maya, quien sin su

amistad, apoyo, ideas y conocimientos sobre desarrollo web este proyecto nunca habría

sido posible.

Finalmente a la Universidad Tecnología de Pereira por proporcionar el espacio, la

experiencia y la información necesaria para la adquisición del conocimiento indispensable

para la elaboración este proyecto.

Juan David Gómez Caicedo

Page 6: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

6

AGRADECIMIENTOS

Esta tesis, si bien ha requerido de esfuerzo y mucha dedicación, no hubiese sido posible su

finalización sin la cooperación desinteresada de todas y cada una de las personas que a

continuación citaré y muchas de las cuales han sido un soporte muy fuerte en momentos de

angustia y desesperación.

Agradezco hoy y siempre a mi familia por su incondicionalidad, pues procuran mi bienestar

desde mi ciudad natal Tuluá en el Valle del Cauca, y está claro que si no fuese por el

esfuerzo realizado por ellos, mis estudios de ingeniería no hubiesen sido posibles. A mi

abuelita Margarita Maya, mi señora madre Monica Alexandra Celis Maya, porque a pesar

de la distancia, el ánimo, apoyo y alegría que me brindan me dan la fortaleza necesaria para

seguir adelante. En general a todos aquellos miembros de mi familia que de alguna u otra

manera tuvieron algo que ver con el triunfo que hoy celebro.

De igual manera mi más sincero agradecimiento a la ingeniera Luz Stella Valencia Ayala,

nuestra directora de proyecto de grado, quien con su apoyo y colaboración, redujo la

cantidad de piedras en el camino principalmente gracias a su experiencia y gran

conocimiento, así como también a su carisma y comprensión.

A mi compañero de proyecto de grado Juan David Gómez Caicedo, por su organización y

temple a la hora de liderar el proyecto y distribuir responsabilidades, pues sin su ayuda

constante, su trabajo y preocupación, la calidad y el tiempo de éste trabajo, hubiesen sido

cuestionables.

A la Universidad Tecnológica de Pereira en general, por brindarme lo que yo considero "mi

segundo hogar" durante cinco años de mi vida, porque aparte de las grandiosas vivencias y

el conocimiento adquirido, una gran cualidad que considero ahora tengo es la de aprender e

investigar por cuenta propia.

Juan Sebastián Celis Maya

Page 7: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

7

CONTENIDO

1. JUSTIFICACIÓN ..................................................................................................................18

2. INTRODUCCIÓN .................................................................................................................19

3. OBJETIVOS ..........................................................................................................................20

4. MARCO TEORICO ...............................................................................................................21

4.1 Aplicaciones de Internet Enriquecidas RIA (Rich Internet Applications) .................21

4.1.1 Beneficios de RIA ..................................................................................................23

4.2 XMLHttpRequest .......................................................................................................23

4.3 XML ...........................................................................................................................25

4.4 Javascript ....................................................................................................................26

4.4.1 Ejemplo de Javascript ............................................................................................28

4.5 PHP ............................................................................................................................29

4.5.1 Características principales de PHP ........................................................................31

4.5.2 Seguridad ...............................................................................................................32

4.5.3 Funcionamiento de PHP .........................................................................................32

4.5.4 Tipos de datos y variables en PHP .........................................................................33

4.5.5 Respecto a los datos complejos y el uso de objetos ...............................................34

4.5.6 Variables generales en PHP ...................................................................................35

4.5.7 Utilización de bases de datos sobre PHP ...............................................................36

4.6 MySQL ......................................................................................................................38

4.7 Sistemas de información ............................................................................................38

4.7.1 Definición general de los sistemas de información ................................................40

4.8 Modelo de prototipado evolutivo ...............................................................................40

4.9 El manifiesto ágil .......................................................................................................42

4.10 Programación extrema ...............................................................................................43

4.11 Empresa CREAMAX .................................................................................................44

5. RECOLECCIÓN DE INFORMACIÓN Y ANALISIS DE REQUERIMIENTOS ...............48

5.1 Recolección de información por medio de entrevistas...............................................48

Page 8: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

8

5.2 Ciclo de vida del prototipo del sistema ......................................................................51

5.3 Metodología de desarrollo .........................................................................................52

5.4 Historias de usuario ....................................................................................................52

5.5 Análisis de requerimientos .........................................................................................52

5.5.1 Requisitos funcionales ...........................................................................................53

5.5.1.1 Control de inventario .............................................................................................53

5.5.1.2 Creación y almacenamiento de facturas .................................................................53

5.5.1.3 Creación y almacenamiento de informes ...............................................................54

5.5.1.4 Gestión de usuarios ................................................................................................55

5.5.2 Requisitos no funcionales del sistema....................................................................55

5.5.2.1 Confiabilidad ..........................................................................................................55

5.5.2.2 Plataforma del sistema ...........................................................................................56

5.5.2.3 Usabilidad ..............................................................................................................56

5.5.2.4 Seguridad ...............................................................................................................57

5.5.2.5 Base de datos ..........................................................................................................58

5.5.2.6 Estándares de desarrollo .........................................................................................58

5.5.2.7 Mantenibilidad .......................................................................................................60

5.5.2.8 Portabilidad ............................................................................................................60

5.5.3 Aspectos globales ...................................................................................................60

5.5.3.1 Acceso web ............................................................................................................60

5.5.3.2 Disposición del servidor .........................................................................................60

5.5.4 Aspectos fuera del alcance .....................................................................................61

5.6 Casos de uso – Sistema para la empresa Creamax .....................................................61

5.6.1 Control de inventario .............................................................................................62

5.6.1.1 Agregar existencias ................................................................................................62

5.6.1.2 Eliminar existencias ...............................................................................................63

5.6.1.3 Ver inventario ........................................................................................................64

5.6.1.4 Ver detalle de existencias .......................................................................................65

5.6.1.5 Agregar producto ...................................................................................................66

5.6.1.6 Eliminar producto ..................................................................................................68

5.6.2 Generación de facturas ...........................................................................................69

5.6.2.1 Listar productos......................................................................................................70

Page 9: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

9

5.6.2.2 Verificar disponibilidad .........................................................................................70

5.6.2.3 Eliminar productos .................................................................................................71

5.6.2.4 Realizar venta .........................................................................................................71

5.6.2.5 Generar factura .......................................................................................................73

5.6.3 Generación de informes .........................................................................................74

5.6.3.1 Generar informes genéricos ...................................................................................75

5.6.3.2 Generar informe de ventas .....................................................................................76

5.6.3.3 Generar informe de accesos ...................................................................................77

5.6.3.4 Generar informe de clientes ...................................................................................78

5.6.3.5 Generar informe de sabores ...................................................................................78

5.6.3.6 Generar informe de presentaciones ........................................................................79

5.6.4 Gestión de usuarios ................................................................................................80

5.6.4.1 Modificar información personal .............................................................................80

5.6.4.2 Modificar correo electrónico personal ...................................................................82

5.6.4.3 Modificar correo o clave ........................................................................................83

5.6.4.4 Modificar claves .....................................................................................................84

5.6.4.5 Modificar permisos ................................................................................................85

5.6.5 Gestión de clientes .................................................................................................86

5.6.5.1 Crear cliente ...........................................................................................................86

5.6.5.2 Eliminar cliente ......................................................................................................88

5.6.5.3 Modificar cliente ....................................................................................................89

5.6.5.4 Buscar cliente .........................................................................................................91

5.7 Diseño modular ..........................................................................................................93

5.8 Mapa del sitio .............................................................................................................93

5.9 Diagrama de contexto ................................................................................................95

5.10 Diagrama de clases.....................................................................................................96

5.11 Diagramas de estado ..................................................................................................97

5.12 Diseño arquitectónico secuencia de ventanas estáticas ..............................................98

5.12.1 D.A.V.E. Control de inventario .............................................................................98

5.12.2 D.A.V.E. Generar factura .......................................................................................99

5.12.3 D.A.V.E. Generación de informes .........................................................................99

5.12.4 D.A.V.E. Gestión de usuarios ..............................................................................100

Page 10: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

10

5.13 Diagramas de actividad ............................................................................................100

5.13.1 Diagramas de actividad inicio de sesión ..............................................................101

5.13.2 Diagramas de actividad control de inventarios ....................................................101

5.13.3 Diagramas de actividad generación de facturas ...................................................103

5.13.4 Diagramas de actividad generación de informes .................................................104

5.13.5 Diagramas de actividad gestión de usuarios ........................................................105

5.13.6 Diagramas de actividad gestión de clientes .........................................................106

5.14 Diagramas de componentes .....................................................................................107

5.15 Modelo de distribución ............................................................................................108

5.16 Modelo de casos de prueba ......................................................................................108

6. DISEÑO DE LA BASE DE DATOS ..................................................................................113

6.1 Tablas .......................................................................................................................113

6.1.1 Usuarios ...............................................................................................................113

6.1.2 Inventario .............................................................................................................113

6.1.3 Inventario_en_consignacion ................................................................................114

6.1.4 Productos ..............................................................................................................114

6.1.5 Precios ..................................................................................................................115

6.1.6 Clientes ................................................................................................................115

6.1.7 Ventas ..................................................................................................................116

6.1.8 Accesos ................................................................................................................117

6.2 Modelo entidad-relación de la base de datos ...........................................................117

6.3 Diccionario de datos.................................................................................................118

6.3.1 Accesos ................................................................................................................119

6.3.2 Inventario .............................................................................................................119

6.3.3 Inventario_consignacion ......................................................................................119

6.3.4 Clientes ................................................................................................................120

6.3.5 Precios ..................................................................................................................120

6.3.6 Productos ..............................................................................................................121

6.3.7 Usuarios ...............................................................................................................121

6.3.8 Ventas ..................................................................................................................121

6.4 Código SQL para generación de las tablas de la base de datos ................................122

Page 11: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

11

7. DISEÑO E IMPLEMENTACIÓN DEL MÓDULO DE CONTROL DE INVENTARIO 126

7.1 Descripción ..............................................................................................................126

7.2 Archivos que componen el modulo..........................................................................126

7.3 Mapa del modulo .....................................................................................................127

7.4 Implementación ........................................................................................................128

7.4.1 Index ....................................................................................................................128

7.4.1.1 Código ..................................................................................................................128

7.4.1.2 Prototipo gráfico ..................................................................................................128

7.4.2 Agregar existencias ..............................................................................................129

7.4.2.1 Código ..................................................................................................................129

7.4.2.2 Prototipo gráfico ..................................................................................................130

7.4.3 Ver inventario ......................................................................................................131

7.4.3.1 Código ..................................................................................................................131

7.4.3.2 Prototipo gráfico ..................................................................................................132

7.4.4 Detalle ..................................................................................................................133

7.4.4.1 Prototipo gráfico ..................................................................................................133

8. DISEÑO E IMPLEMENTACIÓN DEL MÓDULO DE VENTAS ....................................135

8.1 Descripción ..............................................................................................................135

8.2 Archivos que componen el modulo..........................................................................135

8.3 Mapa del módulo .....................................................................................................136

8.4 Implementación ........................................................................................................136

8.4.1 Index ....................................................................................................................136

8.4.1.1 Prototipo gráfico ..................................................................................................136

8.4.2 Escoger productos ................................................................................................137

8.4.2.1 Código ..................................................................................................................137

8.4.2.2 Prototipo gráfico ..................................................................................................138

8.4.3 Generar factura .....................................................................................................140

8.4.3.1 Código ..................................................................................................................140

8.4.3.2 Prototipo gráfico ..................................................................................................141

9. DISEÑO E IMPLEMENTACIÓN DEL MóDULO DE CREACIÓN DE INFORMEs .....142

Page 12: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

12

9.1 Descripción ..............................................................................................................142

9.2 Archivos que componen el módulo..........................................................................142

9.3 Mapa del módulo .....................................................................................................143

9.4 Implementación ........................................................................................................143

9.4.1 Index ....................................................................................................................143

9.4.1.1 Prototipo gráfico ..................................................................................................143

9.4.2 Acceso ..................................................................................................................144

9.4.2.1 Prototipo gráfico ..................................................................................................144

9.4.3 Clientes ................................................................................................................145

9.4.3.1 Prototipo gráfico ..................................................................................................146

9.4.4 Presentaciones ......................................................................................................146

9.4.4.1 Prototipo gráfico ..................................................................................................147

9.4.5 Ventas ..................................................................................................................147

9.4.5.1 Prototipo gráfico ..................................................................................................148

10. DISEÑO E IMPLEMENTACIÓN DEL MóDULO DE GESTIÓN DE USUARIOS ........149

10.1 Descripción ..............................................................................................................149

10.2 Archivos que componen el modulo..........................................................................149

10.3 Mapa del módulo .....................................................................................................149

10.4 Implementación ........................................................................................................150

10.4.1 Modificar información personal ...........................................................................150

10.4.1.1 Prototipo gráfico ..............................................................................................150

10.4.2 Permisos ...............................................................................................................151

10.4.2.1 Prototipo gráfico ..............................................................................................151

10.4.3 Claves ...................................................................................................................151

10.4.3.1 Prototipo gráfico ..............................................................................................151

11. DISEÑO E IMPLEMENTACIÓN DEL MÓDULO DE GESTIÓN DE CLIENTES .........153

11.1 Descripción ..............................................................................................................153

11.2 Archivos que componen el módulo..........................................................................153

11.3 Mapa del modulo .....................................................................................................154

11.4 Implementación ........................................................................................................154

11.4.1 Index ....................................................................................................................154

Page 13: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

13

11.4.1.1 Prototipo gráfico ..............................................................................................154

11.4.2 Buscar ..................................................................................................................155

11.4.2.1 Código ..............................................................................................................155

11.4.2.2 Prototipo gráfico ..............................................................................................156

11.4.3 Agregar cliente .....................................................................................................157

11.4.3.1 Prototipo gráfico ..............................................................................................157

12. DOCUMENTACIÓN DEL SISTEMA, MANUALES DE USUARIO .............................159

12.1 Iniciar sesión en el sistema .......................................................................................159

12.1.1 Iniciar sesión en el sistema ...................................................................................159

12.2 Localización del menú de ventas .............................................................................160

12.3 Gestión de clientes ...................................................................................................162

12.4 Modificación de datos personales y correo electrónico ...........................................163

12.4.1 Consultas básicas del inventario de productos en detalle ....................................164

13. CONCLUSIONES Y RECOMENDACIONES ...................................................................166

14. BIBLIOGRAFÍA .................................................................................................................168

15. ANEXOS .............................................................................................................................171

Page 14: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

14

LISTA DE ILUSTRACIONES

Ilustración 1 Distribución de tecnologías de contenido dinámico sobre servidores de internet.

Septiembre de 2008. ...........................................................................................................................29

Ilustración 2 Vista del código fuente generado por las etiquetas PHP...............................................30

Ilustración 3 Proceso de solicitud y ejecución de PHP ......................................................................32

Ilustración 4 Vista del código fuente luego de la ejecución del objeto Mascota ...............................35

Ilustración 5 Arquitectura Web base consiste en un navegador, servidor web, interprete de código y

servidor de base de datos ...................................................................................................................37

Ilustración 6 Modelo general de un sistema .......................................................................................39

Ilustración 7 Desarrollo exploratorio de prototipos ...........................................................................41

Ilustración 8 Desarrollo de prototipos desechables ............................................................................42

Ilustración 9 Actividades para la recolección de información ...........................................................49

Ilustración 10 Entrevista realizada a los usuarios del sistema ...........................................................50

Ilustración 11 Casos de uso - Control de inventario ..........................................................................62

Ilustración 12 Ver inventario - diagrama de secuencia ......................................................................65

Ilustración 13 Ver detalle de existencia - diagrama de secuencia ......................................................66

Ilustración 14 Diagrama de secuencia - Agregar producto ................................................................67

Ilustración 15 Eliminar producto - diagrama de secuencia ................................................................69

Ilustración 16 Casos de uso - Generación de facturas ........................................................................69

Ilustración 17 Generar factura - diagrama de secuencia ....................................................................74

Ilustración 18 Casos de uso - Generación de informes ......................................................................74

Ilustración 19 Generar informe genérico - diagrama de secuencia ....................................................76

Ilustración 20 Casos de uso – Gestión de usuarios ............................................................................80

Ilustración 21 Modificar información personal - diagrama de secuencia ..........................................81

Ilustración 22 Casos de uso - Gestión de clientes ..............................................................................86

Ilustración 23 Crear cliente - Diagrama de secuencia ........................................................................87

Ilustración 24 Eliminar cliente - diagrama de secuencia ...................................................................89

Ilustración 25 Editar cliente - diagrama de secuencia ........................................................................91

Ilustración 26 Buscar cliente - diagrama de secuencia ......................................................................92

Ilustración 27 Mapa del sitio ..............................................................................................................93

Ilustración 28 Diagrama de contexto del sistema Creamax ...............................................................95

Ilustración 29 Diagrama de clases .....................................................................................................96

Ilustración 30 Venta - diagrama de estados .......................................................................................97

Ilustración 31 Control de inventario - secuencia de ventanas estáticas .............................................99

Ilustración 32 Generación de facturas - secuencia de ventanas estáticas ...........................................99

Ilustración 33 Generación de informes -- secuencia de ventanas estáticas ........................................99

Ilustración 34 Gestión de usuarios -- secuencia de ventanas estáticas .............................................100

Ilustración 35 Inicio de sesión -- diagramas de actividad ................................................................101

Ilustración 36 Control de inventarios -- diagramas de actividad .....................................................102

Ilustración 37 Generación de facturas -- diagramas de actividad ....................................................103

Page 15: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

15

Ilustración 38 Generación de informes -- diagramas de actividad ...................................................104

Ilustración 39 Gestión de usuarios -- diagramas de actividad ..........................................................105

Ilustración 40 Gestión de clientes -- diagramas de actividad ...........................................................106

Ilustración 41 Modelo de distribución del prototipo ........................................................................108

Ilustración 42 Modelo Entidad Relación .........................................................................................118

Ilustración 43 Modulo inventario .....................................................................................................127

Ilustración 44 Index Módulo inventario ...........................................................................................129

Ilustración 45 Módulo inventario agregar existencias .....................................................................131

Ilustración 46 Modulo inventario ver inventario .............................................................................132

Ilustración 47 Modulo inventario Detalle ........................................................................................133

Ilustración 48 Pantallas del modulo inventario ................................................................................134

Ilustración 49 Mapa del modulo de generación de facturas .............................................................136

Ilustración 50 Index modulo de ventas ............................................................................................137

Ilustración 51 Realizando una venta modulo de ventas ...................................................................139

Ilustración 52 Productos en la venta actual modulo de ventas .........................................................139

Ilustración 53 Factura generada Modulo de ventas..........................................................................141

Ilustración 54 Mapa modulo de creación de informes .....................................................................143

Ilustración 55 Modulo de informes Index ........................................................................................144

Ilustración 56 Modulo de informes Acceso al sistema ....................................................................145

Ilustración 57 Módulo de informes Clientes ...................................................................................146

Ilustración 58 Módulo de informes Diversas presentaciones de un producto .................................147

Ilustración 59 Modulo de informes Ventas realizadas ....................................................................148

Ilustración 60 Mapa del modulo de gestión de usuarios ..................................................................150

Ilustración 61 Modificar información personal Módulo gestión de usuarios ..................................150

Ilustración 62 Modificar perfiles Modulo gestión de usuarios ........................................................151

Ilustración 63 Cambio de claves de acceso Modulo gestión de usuarios .........................................152

Ilustración 64 Mapa modulo de gestión de clientes .........................................................................154

Ilustración 65 Index módulo de gestión de clientes .........................................................................155

Ilustración 66 Buscar módulo de gestión de clientes .......................................................................156

Ilustración 67 Crear cliente módulo de gestión de clientes ..............................................................158

Ilustración 68 Pantallas módulo gestión de clientes ........................................................................158

Ilustración 69 Inicio de sesión .........................................................................................................159

Ilustración 70 Localización de acceso al menú ventas .....................................................................160

Ilustración 71 Creación de una nueva venta ....................................................................................161

Ilustración 72 Formulario de creación de la información de un cliente ...........................................163

Ilustración 73 Formulario de creación de la información de un cliente ...........................................164

Ilustración 74 Consulta básica de los productos disponibles ...........................................................165

Ilustración 75 Información en detalle del producto .........................................................................165

Page 16: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

16

LISTA DE TABLAS

Tabla 1 Java script comparado con Java ............................................................................................27

Tabla 2 Tipos de datos en PHP ..........................................................................................................33

Tabla 3 Variables generales en PHP ..................................................................................................36

Tabla 4 Modelo de pruebas para la etapa inicial del sistema ...........................................................111

Tabla 5 Acceso - Diccionario de datos ............................................................................................119

Tabla 6 Inventario - Diccionario de datos ........................................................................................119

Tabla 7 Inventario en consignación - Diccionario de datos ............................................................119

Tabla 8 Clientes - Diccionario de datos ..........................................................................................120

Tabla 9 Precios - Diccionario de datos ...........................................................................................120

Tabla 10 Productos - Diccionario de datos ......................................................................................121

Tabla 11 Usuarios - Diccionario de datos ........................................................................................121

Tabla 12 Ventas - Diccionario de datos ...........................................................................................121

Page 17: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

17

LISTA DE ANEXOS

Anexo 1 Entrevista gerente de Creamax ................................................................................... pag.171

Anexo 2 Entrevista Número 1 ................................................................................................... pag.174

Anexo 3 Entrevista Número 2 ................................................................................................... pag.175

Anexo 4 Entrevista Número 3 ................................................................................................... pag.176

Anexo 5 Entrevista Número 4 ................................................................................................... pag.177

Anexo 6 Historias de usuario .................................................................................................... pag.178

Anexo 7 Reuniones con el cliente para revisiones del sistema de información ........................ pag.184

Page 18: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

18

1. JUSTIFICACIÓN

La competitividad de una empresa radica en el descubrimiento de sus habilidades, recursos,

conocimientos y atributos que le permitan centrar todos sus esfuerzos en conseguir lo que

se desea. La clave para hacer de la competitividad un estado permanente, se encuentra en la

anticipación de las necesidades y demandas del entorno empresarial y en la capacidad de

satisfacerlas de la mejor y más eficiente manera.

Por otra parte, las micro y pequeñas empresas los esfuerzos se ven comprometidos con los

procesos operativos internos, pues éstos aún no son eficientes en el sentido en que tareas

repetitivas llevadas a cabo manualmente consumen tiempo y recursos necesarios para otras

labores. Por ejemplo, concentrarse en anticipar las necesidades del mercado y superar a los

competidores.

Este es el caso de la empresa Creamax que desde 2003 ha funcionado con un sistema de

facturación manual, adicionalmente se lleva el inventario de mercancía y la contabilidad

mediante herramientas ofimáticas básicas. También usan éstos sistemas para labores como

gestión de clientes y generación de informes de ventas. Esto dificulta el crecimiento pues a

medida que la información generada en el proceso de ventas aumenta, mayor se hace la

carga para los encargados de la gestión deteniendo otros procesos propios de la actividad

comercial de la organización. En busca de concentrarse en su propio negocio y dedicarse a

la venta de suplementos nutricionales deportivos decidieron buscar estudiantes que

desarrollaran para ellos un sistema de información que cumpliera sus requerimientos.

Page 19: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

19

2. INTRODUCCIÓN

El prototipo de sistema de información para la empresa Creamax es un conjunto de elementos

orientado al tratamiento y administración de la información, generado para solucionar algunas de

las problemáticas relacionadas con la gestión de clientes, generación de informes, realización de

ventas y control de inventario de la organización. El desarrollo de este sistema se realizó mediante

diferentes fases, cada una correspondiente a una etapa del ciclo de vida del desarrollo evolutivo de

prototipos.

En la etapa de recolección de información y análisis de requerimientos, se estableció que debía

hacer el sistema pero sin definir aun los medios para lograrlo. También se respondió a una pregunta

fundamental: ¿qué es lo que quiere el cliente? y para ello, se diagnosticó la situación, seguidamente

se recopilaron los requerimientos del cliente, tanto en relación al sistema, como generales respecto

del área informática. Es decir la situación ideal, para así poder definir alternativas de solución,

según las cuales se podía avanzar desde lo que la organización poseía. La información en la etapa

de recolección fue adquirida mediante entrevistas a los diferentes usuarios.

Posteriormente en la etapa de diseño se tomaron los requerimientos y se modeló el sistema basado

en módulos. De la misma manera se planteó la estructura de la base datos, la jerarquía de módulos,

los diagramas de contexto, los diagramas de secuencia, los casos de uso, entre otras herramientas

propias del proceso de ingeniería del software que se consideraron pertinentes al momento de este

desarrollo.

Luego en la implementación se encuentran la codificación y las interfaces graficas de cada uno de

los módulos planteados en la etapa de diseño. En esta etapa se dio importancia al aspecto gráfico y

se trabajó de la mano del cliente para proveer un diseño que le agradara y se identificara con la

imagen empresarial de su organización.

Finalmente, se realizaron los manuales de usuario para los módulos funcionales del prototipo, estos

permiten al usuario conocer a fondo la funcionalidad del sistema y tener un documento de

referencia para futuras consultas. Es importante resaltar que la documentación se realizó para

permitir al usuario tener un panorama real de lo que podía o no hacer su sistema.

Page 20: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

20

3. OBJETIVOS

Objetivo general

Desarrollar la primera iteración del prototipo del sistema de información para la empresa de

productos nutritivos Creamax de la ciudad de Tuluá

Objetivos específicos

- Analizar y definir los requerimientos para la primera iteración del prototipo del sistema de

información para la empresa de productos nutritivos Creamax

- Diseñar los módulos de venta, clientes, inventario, usuarios e informes para la primera

iteración del prototipo de sistema de información

- Implementar los módulos de venta, clientes, inventario, usuarios e informes con los diseños

correspondientes a la primera iteración

- Documentar los manuales de usuario para la primera versión del prototipo

Page 21: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

21

4. MARCO TEORICO

Con el propósito de articular los lineamientos del proyecto sistema de información para la empresa

Creamax, es pertinente visualizar los principales fundamentos teóricos que van a dar soporte a cada

una de las etapas del proceso determinado para ello. En virtud de esto, se han escogido algunas

tecnologías que se vieron pertinentes a los requerimientos del cliente, entre ellas se pueden

mencionar: las aplicaciones de internet enriquecidas, el desarrollo modular, aproximación de

prototipos en espiral, entre otras.

A continuación se describen cada una de las tecnologías que se tomaron como fundamento para el

proyecto.

4.1 Aplicaciones de Internet Enriquecidas RIA (Rich Internet Applications)

“Las página web son el soporte interactivo ideal para ofrecer un servicio, facilitar información,

hacer negocios y montones de cosas nuevas de un modo más completo y directo que cualquier

otro” Vinton Cerf (1994) (Fundador de Internet Society)

RIA es el acrónimo de Aplicaciones de Internet Enriquecidas, son un nuevo tipo de aplicaciones

con ventajas adicionales a las aplicaciones web tradicionales, las RIA surgen como una

combinación de las ventajas que ofrecen los entornos web y las aplicaciones de escritorio

tradicionales.

Estas tecnologías surgen como evolución de IBM SAA (IBM System Application Architecture,

aplicaciones capaces de brindar acceso autorizado a quienes posean los permisos, en cualquier

momento, dispositivo y lugar). Se optaba por esta nueva alternativa gracias a que el hardware

asociado a los terminales cliente como, memoria, capacidad en disco y ancho de banda de

comunicaciones se hacía cada vez menos costoso y permitía liberar parte de esta carga al usuario,

brindándole acceso desde casi cualquier clase de dispositivo a las aplicaciones provenidas de los

servidores.

Page 22: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

22

Ahora bien, en la parte de desarrollo esto aumentaba la dificultad puesto que este tipo de

aplicaciones ahora no estaban confinadas en una máquina sino que estaban repartidas entre clientes

y servidores que continuamente están interactuando. También surgen transacciones de mayor

duración lo que supone mayores riesgos de excepciones y conflictos de comunicación que resolver.

Finalmente, el permitir acceso desde cualquier dispositivo, exige un mayor trabajo para los

desarrolladores gráficos pues deben preparar las aplicaciones para interactuar con fluidez en

distintas pantallas. En esencia SAA imponía altas demandas en seguridad, fiabilidad y desempeño.

Sin embargo, parte de estas dificultades se resolvieron desplazando a las aplicaciones más al

entorno web que a las aplicaciones rígidas de escritorio cliente-servidor, los estándares de los

lenguajes web permitían que sin importar el sistema, la apariencia, la funcionalidad y el rendimiento

se mantuvieran, dejando a un lado problemas de portabilidad. Ahora este problema era trasladado a

los navegadores y su compatibilidad con el sistema cliente.

Regresando a RIA, normalmente en las aplicaciones web existe una recarga constante de páginas

cada vez que el usuario navega entre los enlaces, lo cual produce un tráfico significativo entre el

servidor y el cliente debido a la constante transferencia de información entre ambos, llegando

muchas veces a recargar la página completa habiendo ocurrido un mínimo cambio.

También en las aplicaciones web tradicionales, existe la desventaja de la poca capacidad

multimedia, pues no integran los servicios básicos de reproducción teniendo que hacer uso de

programas externos para tal fin. Por ejemplo, para reproducir un video era necesario descargarlo y

reproducirlo con el software local del cliente, luego aplicaciones RIA como –Youtube- permitieron

la reproducción de contenido multimedia embebido en el navegador.

Esto en los entornos RIA disminuyen significativamente las recargas de página, ya que desde el

principio se cargan las aplicaciones completas y sólo se produce comunicación con el servidor

cuando se necesitan datos externos como bases de datos u otras aplicaciones. Aunque existen

excepciones, regresando al problema anterior de la transmisión de video, si en el caso de –Youtube-

la reproducción del video sólo se hiciera en el momento que la descarga en el cliente fuese completa

se brindaría experiencia de usuario negativa, en la medida de que el usuario estaría durante algún

tiempo esperando sin recibir su contenido.

Page 23: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

23

4.1.1 Beneficios de RIA

RIA es la nueva generación de aplicaciones, y es una tendencia ya impuesta por el mercado, pues

hace uso importante del mejoramiento en la experiencia visual, entre los beneficios se encuentran:

- Portabilidad: “característica que posee la aplicación para ejecutarse en diferentes plataformas, el

código fuente del software es capaz de reutilizarse en vez de crearse un nuevo código cuando el

software pasa de una plataforma a otra”1 , sin embargo para las aplicaciones de internet, al

manejarse por medio de lenguajes interpretados, son los navegadores los que llevan a ejecución el

código

- Menor carga para el servidor: la mayoría del procesamiento se hace en el lado del cliente

- Conectividad: posibilidad de utilizar la aplicación desde cualquier ordenador conectado a internet

- Aplicaciones interactivas: utilidades comunes como arrastrar y pegar sin necesidad de enviar

información al servidor

- Aplicaciones independientes del navegador: debido a que la lógica del negocio se encuentra

modelada en el servidor, las aplicaciones pueden funcionar independientemente del navegador. Esto

permite no obligar a los usuarios a usar un sistema determinado haciendo más versátil la aplicación

- Modelo de programación controlada por eventos: soporte de diseño orientado a los eventos,

haciendo que las llamadas al servidor sean completamente transparentes al usuario y facilitando en

buena parte al desarrollador la construcción del código de la aplicación

RIA hace uso de diferentes tecnologías que permiten el desarrollo en base de sus

beneficios. Las tecnologías que requiere son: AJAX, PHP, MySQL

4.2 XMLHttpRequest

XMLHTTPRequest es un objeto que implementa la interfaz para realizar peticiones HTTP y

HTTPS a servidores web desde el navegador del cliente. Los datos que se envían entre el cliente y

el servidor son transferidos por medio de cualquier codificación basada en texto, incluyendo: texto

plano, XML, JSON, HTML , además de permitir codificaciones particulares.

1 (Mooney, 1997)

Page 24: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

24

Un ejemplo de una función que hace uso de este objeto para permitir el envió de un mensaje del

cliente al servidor:

Function enviar(mensaje) {

Var cliente = new XMLHttpRequest( );

cliente.open ( “POST”, “/enviar”);

cliente.setRequestHeader (“Content-Type”, “text/plain;charset=UTF-8”);

cliente.send(mensaje);

}

Se puede notar que en el ejemplo anterior que XMLHttpRequest realiza las llamadas mediante el

protocolo HTTP. Los métodos que utiliza basado en HTTP pueden verse a continuación:

abort ( ) : Cancela la petición en curso

getAllResponseHeaders ( ): Devuelve el conjunto de cabeceras HTTP como una cadena

getResponseHeader ( nombrecabecera ) : Devuelve el valor de la cabezera HTTP

open ( método, URL [ asíncrona , [ usuario , [clave] ] ] ) : Especifica un método y otros atributos

opcionales de una petición del cliente. El método toma los valores de las peticiones HTTP como :

GET y POST. Ambas maneras de enviar datos al servidor, la diferencia radica en que GET los

parámetros se pasan a través de la URL mientras que por POST estos se codifican en las cabeceras

HTTP

send ( datos ) : Envía las peticiones del cliente

setRequestHeader ( etiqueta, valor ) : Añade el conjunto etiqueta-valor a la cabecera HTTP que

envía el cliente al servidor.

También del ejemplo puede notarse la mención de un juego de caracteres, esto se debe a que la

codificación y descodificación del mensaje se realiza por medio de las cabeceras MIME y HTTP.

Sin embargo como existe la flexibilidad de manejar distintas estructuras de datos, la codificación

particular del mensaje se basa en tres puntos:

Si la información que contiene el mensaje es XML, se debe marcar la cabecera HTTP mediante –

Content-Type- permitiendo que el contenido se trate bajo las reglas de estándar XML

Seguidamente, si la información contiene tipos MIME, este se debe igualmente marcar mediante –

Content-Type- pero agregando un –charset- para ser utilizado

Por último, si no corresponde a ninguno de los casos anteriores se utiliza UTF-8 para la lectura y

escritura de los mensajes enviados

Page 25: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

25

4.3 XML

“XML no es más lenguaje de programación que unas notas sobre una servilleta de papel” Charles

Simonyi

XML (Extensible Markup Languaje) o lenguaje de marcas extensible es un formato de texto

derivado de SGML (ISO 8879) que a su vez parte de GML desarrollado por IBM originalmente

diseñado para el almacenamiento de grandes cantidades de información electrónica.

Como XML surge como parte de SGML buscando unos objetivos y lineamientos claro como ser

directamente utilizable en Internet, soportar una amplia variedad de aplicaciones, compatibilidad

con los desarrollos ya establecidos con SGML, sus documentos deben ser legibles por humanos y

razonablemente claros y su marcado debe ser flexible para permitir su adaptabilidad a cada

situación.

Los documentos XML están conformados por unidades llamadas entidades, que contienen datos,

éstos están hechos por caracteres, quienes en una parte conforman la información y en otra

conforman la etiqueta. Esta última describe la porción de información allí contenida como un

componente de una estructura lógica.

Un ejemplo de un objeto XML es el siguiente:

<?xml version="1.0"?>

<transaccion ID="THX1138">

<vendedor>bluemax</vendedor>

<orden>

<producto NumerodeProducto="3263827">

<cantidad>1</cantidad>

<Precio estado="rebajado">3000000</Precio>

<descripcion>Nevera</descripcion>

Page 26: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

26

</producto>

</orden>

</transaccion>

El código anterior es una muestra de la flexibilidad que permite el XML, además de brindar una

mayor comprensión para las personas cuando se usan etiquetas y estructuras similares al lenguaje

natural. Permitiendo incluso su manipulación manual debido a que su estructura de etiquetas se basa

en la misma tecnología que hay bajo HTML.

En esencia XML provee de un mecanismo para organizar la información, una forma independiente

de la plataforma para representarla, permitiendo crear datos que sean leídos por cualquier aplicación

corriendo sobre distintas plataformas.

4.4 Javascript

“Javascript es un lenguaje pequeño y ligero interpretado multiplataforma orientado a objetos; por lo

que de forma independiente no es muy útil, está diseñado más para una incrustación en otros

productos y aplicaciones, tales como navegadores web. Dentro de un entorno anfitrión, Javascript

puede ser conectado a los objetos de su entorno para proveer un control programable de estos”.2

El núcleo de Javascript contiene un conjunto central de objetos, como Arrays (Arreglos), Date

(Fechas) y Math (Objetos matemáticos), además del conjunto común de elementos como

operadores, estructuras de control y sentencias. El núcleo de Javascript puede ser extendido para

una variedad de propósitos complementándolo con objetos adicionales, por ejemplo:

JavaScript del lado cliente extiende el núcleo del lenguaje proporcionando objetos para el control

del navegador (Web browser) y su modelo objeto documento [Document Object Model] (DOM).

Por ejemplo, las extensiones del lado del cliente permiten a una aplicación ubicar elementos en un

2 (Mozilla Developer Center, 2009)

https://developer.mozilla.org/es/Guía_JavaScript_1.5/Concepto_de_JavaScript#.C2.BFQu.C3.A9_es_JavaScr

ipt.3F

Page 27: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

27

formulario HTML y responder a los eventos de usuario tales como los clic del mouse, entradas del

formulario y navegación de páginas.

JavaScript del lado cervidor extiende el núcleo del lenguaje proporcionando objetos relevantes para

la ejecución de JavaScript en un servidor. Por ejemplo, las extensiones del lado del servidor

permiten que una aplicación se comunique con una base de datos relacional, proporcionar

continuidad de la información desde una invocación de la aplicación a otra o efectuar la

manipulación de archivos en un servidor.A través de la funcionalidad JavaScript LiveConnect, se

permite que los códigos en Java y JavaScript se comuniquen entre sí. Desde JavaScript, es posible

instanciar objetos Java y acceder a sus atributos y métodos públicos. Desde Java, puede acceder a

las propiedades, métodos y objetos JavaScript.

Una tendencia común es pensar que Javascript es Java (Ver tabla X), sin embargo Javascript es un

lenguaje en un formato mucho más liberado. No tiene que declarar todas las variables, clases y

métodos. No debe preocuparse si sus métodos son públicos, privados o protegidos y no tiene que

implementar sus interfaces. De otro lado los tipos de variables, parámetros y funciones de retorno

no son explícitamente definidos.

En contraste, JavaScript desciende en espíritu de una línea de pequeños lenguajes de definición

dinámica de tipos tales como HyperTalk y dBASE. Estos lenguajes de script ofrecen herramientas

de programación a una audiencia mucho más amplia por su fácil sintaxis, su funcionalidad

construida internamente y sus requerimientos mínimos para la creación de objetos.

Tabla 1 Java script comparado con Java

JavaScript Java

Orientado a Objetos. No distingue entre

tipos de objetos. La herencia se realiza a

través del mecanismo de prototipado y los

métodos y propiedades pueden ser

añadidos a cualquier objeto

dinámicamente.

Basado en Clases. Los objetos son divididos

en clases e instancias con toda la herencia a

través de la jerarquía de clases. Las clases e

instancias no pueden tener propiedades o

métodos añadidos dinámicamente.

Los tipos de datos variables no son

declarados (definición dinámica de tipos).

Los tipos de datos variables deben ser

declarados (definición estática de tipos).

Page 28: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

28

No puede escribir automáticamente en el

disco duro.

Puede escribir automáticamente en el disco

duro.

Fuente: los autores

4.4.1 Ejemplo de Javascript

<script type="text/javascript">

function PopUp(URL)

{

// Función para abrir ventanas PopUp desde un link HTML recibiendo la URL destino

// ubicando el PopUp en el centro de una pantalla 1280 x 800 © Juan David Gómez C.

id = 5;

day = new Date();

dayT = day.getTime();

left =screen.width/2.8;

height=screen.height/5.3;

eval("page" + id + " = window.open(URL, '" + dayT +

"','Top='+height+',Left='+left+',toolbar=0,scrollbars=YES,location=0,statusbar=0,menubar=0,resiza

ble=0,width=450,height=500');");

}

</script>

En el ejemplo anterior se puede notar las facilidades de Javascript, las variables no fueron tipadas

en su declaración, se respondió a un evento del usuario y el lenguaje se uso junto al HTML para

generar una nueva ventana.

Page 29: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

29

4.5 PHP

PHP es un lenguaje interpretado, diseñado especialmente para aumentar el dinamismo de las

páginas web. Originalmente se elaboró como un conjunto de macros sobre C que permitían la

interpretación de un número limitado de comandos para facilitar el mantenimiento de páginas web

en 1994 por Rasmus Lerdorf. A este sistema se le denominó Personal Home Page Tools. Gracias a

su aceptación además se le agregó un sistema para proceso de formularios, así en conjunto estas dos

herramientas se denominaron PHP/FI

PHP en la actualidad conserva su popularidad, según el estudio de estadísticas de uso de PHP en el

2008 de Nexen.net3 sobre 35.1 millones de servidores alojando cerca de 2.1 millones de IP en el

mes de septiembre. PHP conserva el 33,15% (ver ilustración 1) de los sitios web, seguido por

ASP.NET con el 21%.

Ilustración 1 Distribución de tecnologías de contenido dinámico sobre servidores de internet. Septiembre de 2008.

Fuente: nexen.net

3 http://www.nexen.net/chiffres_cles/phpversion/18780-php_statistics_for_august_2008.php

45%

33%

21%

1%

PHP en internet

Html plano PHP ASP.Net Ninguno

Page 30: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

30

Otro factor que popularizo el uso de PHP es su naturaleza Open Source que permite a la comunidad

trabajar constantemente sobre su desarrollo.

PHP como tal es un lenguaje de programación, su código se encuentra incrustado en los

documentos HTML, por medio de etiquetas, estas etiquetas son interpretadas del lado del servidor

web, quien en el momento de devolver la petición del cliente, remplaza estas etiquetas por el

resultado obtenido por la ejecución del código. Así el cliente solo recibe el HTML equivalente4

(Ver imagen X)

Un ejemplo de un código PHP incrustado sobre HTML puede verse a continuación:

<HTML >

<head>

<title>Hola Mundo!</title>

</head>

<body>

<?php echo "El famoso hola mundo" ?>

</body>

</HTML >

El resultado en el navegador, viendo el código fuente generado (ver ilustración 2) sería:

Ilustración 2 Vista del código fuente generado por las etiquetas PHP

Fuente: los autores

4 WELLING, Luke y THOMSON, Laura. 2001. Php And Mysql Web Development.2001

Page 31: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

31

En el ejemplo se observa que la inclusión del PHP se hace por medio de etiquetas, la instrucción

empieza por <?php y finaliza con ?>. Así <?php (Instrucciones) ?>. Estas etiquetas pueden ser

incluidas en cualquier parte del documento HTML y no hay un límite para su uso, es decir en el

documento pueden abrirse y cerrarse cuantas etiquetas sean necesarias.

4.5.1 Características principales de PHP

“Al ser un lenguaje Open Source dispone de una gran cantidad de características que lo convierten

en una herramienta idónea para la creación de páginas web dinámicas”5:

- Soporte para una gran cantidad de bases de datos: MysSQL, PostgreSQL, Oracle, MS SQL

Server, Sybase mSQL, Informix.

- Integración con bibliotecas externas, permite generar documentos en PDF (documentos de

Acrobat Reader) hasta analizar código XML.

- Perceptiblemente más fácil de mantener y poner al día comparado al código desarrollado en otros

lenguajes, debido a su similitud con C.

- Soportado por una comunidad de desarrolladores, como producto de código abierto, permitiendo

que los fallos de funcionamiento se encuentren y reparen rápidamente.

- PHP permite cualquier tarea que se pueda realizar con un script CGI, como el procesamiento de

información en formularios, foros de discusión, manipulación de cookies y páginas dinámicas.

- PHP se encuentra embebido dentro del HTML , permitiendo su edición y mantenimiento en

procesadores de texto simple

- Soporte a múltiples protocolos de Internet (HTTP, IMAP, FTP, LDAP, SNMP)

- Respecto al servidor no es necesario adoptar tecnologías específicas de sistema operativo pues es

multiplataforma

5 WELLING, Luke y THOMSON, Laura. 2001. Php And Mysql Web Development.2001

Page 32: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

32

4.5.2 Seguridad

PHP es un potente lenguaje y el intérprete, tanto incluido en el servidor Web como módulo o

ejecutado como un binario CGI, puede acceder a ficheros, ejecutar comandos y abrir

comunicaciones de red en el servidor. Todas estas características hacen que lo que se ejecute en el

servidor Web sea seguro por defecto

4.5.3 Funcionamiento de PHP

A diferencia de Javascript que se ejecuta en el cliente (Navegador) PHP se ejecuta sobre el servidor,

lo que permite acceder a los recursos disponibles en el servidor como bases de datos o recursos. El

resultado de esta ejecución es enviado al cliente como una página HTML corriente, o también cono

una página WML (Wap)

Proceso de solicitud y ejecución de PHP

Ilustración 3 Proceso de solicitud y ejecución de PHP

Cliente

Servidor Web

Codigo PHP

PHP

Solicitud

(Request)

Respuesta

(Response)

1

2

4

Fuente: los autores

Page 33: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

33

Según el gráfico los pasos para obtener la información son:

1. El usuario solicita información, esto se puede por medio de un link o directamente

solicitando la URL de la página, el navegador envía esta información a través del protocolo

HTTP

2. El servidor recibe la solicitud, por medio de la extensión .php se identifica que se debe

utilizar el intérprete para servir la solicitud

3. El intérprete ejecuta el código dentro de las etiquetas PHP y regresa un resultado HTML ,

regresa la información al servidor

4. El servidor regresa la información al cliente

5. El cliente visualiza el documento por medio de su navegador

4.5.4 Tipos de datos y variables en PHP

En PHP (al igual que en Javascript) no hace falta declarar el tipo de la variable ya que simplemente

para crear variables basta con anteponer el simbolo $ al nombre de la variable , también es

importante que la declaración es Case Sensitive, es decir que diferencia entre mayúsculas y

minúsculas, por lo tanto dos declaraciones con el mismo nombre pero con mayúculas o minúsculas

diferentes permite que sean dos variables completamente diferentes.

Los tipos de datos manejados sobre PHP son los siguientes:

Tabla 2 Tipos de datos en PHP

Tipo Descripción

Array Arreglo de objetos

Boolean Valor lógico

Page 34: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

34

Double Número en punto flotante

Integer Enteros

String Cadena de caracteres

Object Tipo especial de dato complejo

Fuente: los autores

4.5.5 Respecto a los datos complejos y el uso de objetos

Debido que PHP es orientado a objetos, es posible construir objetos con atributos, métodos propios,

herencia y refinición de funciones. El siguiente código ejemplo ilustra esta característica:

<HTML >

<head>

<title>Creando una mascota para Luis!</title>

<?php

class Mascota

{

var $Nombre=' ';

function DarNombre($varnombre)

{

$this->Nombre=$varnombre;

}

}

// Invocación de la clase

$MascotadeLuis = New Mascota;

$MascotadeLuis->DarNombre("Lucas");

?>

</head>

Page 35: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

35

<body>

<?php

echo $MascotadeLuis->Nombre;

?>

</body>

</HTML >

El navegador obtiene el siguiente resultado en HTML :

Ilustración 4 Vista del código fuente luego de la ejecución del objeto Mascota

Fuente: los autores

En el código anterior es importante destacar que las etiquetas donde se generó el objeto mascota

fueron colocadas fuera de la etiqueta <body> de HTML , y sin embargo cuando se hizo la solicitud

el atributo nombre dentro del cuerpo del documento, este fue recuperado sin ningún inconveniente.

4.5.6 Variables generales en PHP

Existen algunas variables particularmente utiles para el programador, estas permiten el paso de

información entre formularios, almacenamiento de cookies en el cliente y llamados especiales al

servidor.Estas variables pueden verse a continuación junto con su uso:

Page 36: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

36

Tabla 3 Variables generales en PHP

argv Arreglo de argumentos pasados en la ejecución del script.

$_SERVER['argc'] Número de parámetros pasados al script en su ejecución.

$_SERVER['PHP_SELF'] Nombre del script que se está ejecutando

$_COOKIE Arreglo asociativo de pares (clave, valor) pasados a través de cookies

$_GET Arreglo asociativo de pares (clave, valor) pasados a través de GET

$_POST Arreglo asociativo de pares (clave, valor) pasados a través de POST

$_FILES Arreglo asociativo que contiene información de los ficheros recibidos

mediante POST

$_ENV Arreglo asociativo de pares (clave, valor) del entorno

$_SERVER Arreglo asociativo de pares (clave, valor) del servidor

$_SESSION Arreglo asociativo de pares (clave, valor) de sesión

Fuente: los autores

Importante resaltar que GET y POST son ambas maneras de enviar datos al servidor, la diferencia

radica en que GET los parámetros se pasan a través de la URL mientras que por POST estos se

codifican en las cabeceras HTTP

4.5.7 Utilización de bases de datos sobre PHP

PHP permite la conexión a distintos manejadores de bases de datos, tanto libres como privativos,

sin embargo el uso generalizado es frente a MySQL, principalmente por ser libre, gratuito y por

venir por defecto en las instalaciones tipo LAMP (Linux, Apache, MySQl, PHP). La arquitectura

para la utilización de bases de datos es la siguiente6:

6 WELLING, Luke y THOMSON, Laura. 2001. Php And Mysql Web Development.2001

Page 37: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

37

Ilustración 5 Arquitectura Web base consiste en un navegador, servidor web, interprete de código y servidor de

base de datos

Fuente: Welling 2001

El escenario típico de transacción con una base de datos web consiste en los siguientes pasos. Estos

pasos aplicados a un ejemplo pueden verse a continuación:

1. El navegador del cliente hace un llamado HTTP a una página web en particular, por

ejemplo busca todos los libros escritos por el autor Edgar Allan Poe

2. El servidor web recibe el llamado del archivo –resultados.php-, este entrega el archivo al

intérprete PHP para su procesamiento antes de servirlo al cliente

3. El motor PHP empieza a ejecutar el código. En algún momento encuentra un comando para

conexión a la base de datos. El motor abre la conexión con el servidor MySQL y envía la

consulta apropiada

4. El servidor MySQL recibe la consulta, la procesa y envía el resultado de regreso al motor

PHP

5. El motor PHP termina la ejecución del código, y regresa los resultados de ejecución como

HTML

6. El servidor web recibe el código HTML de regreso al cliente, quien ahora puede ver la lista

de libros escritos por Edgar Allan Poe en su navegador web

Page 38: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

38

4.6 MySQL

MySQL es un sistema de administración de bases de datos (Database Management System, DBMS)

para bases de datos relacionales. Así, MySQL no es más que una aplicación que permite gestionar

las bases de datos.

Existen muchos tipos de bases de datos, desde un simple archivo hasta sistemas relacionales

orientados a objetos. MySQL, como base de datos relacional, utiliza múltiples tablas para almacenar

y organizar la información.

MySQL fue escrito en C y C++ y destaca por su gran adaptación a diferentes entornos de desarrollo,

permitiendo su interactuación con los lenguajes de programación más utilizados como PHP, PERL

y Java y su integración en distintos sistemas operativos.

También es muy destacable, la condición de open source de MySQL, que hace que su utilización

sea gratuita e incluso se pueda modificar con total libertad, pudiendo descargar su código fuente.

Esto ha favorecido muy positivamente en su desarrollo y continuas actualizaciones, para hacer de

MySQL una de las herramientas más utilizadas por los programadores orientados a Internet.

4.7 Sistemas de información

Un sistema es un conjunto de componentes que interaccionan entre sí, para lograr un objetivo.

Existen una gran variedad de sistemas, sin embargo la mayoría pueden representarse por medio de

un modelo formado por cinco bloques básicos. Los elementos de entrada, la sección de

transformación, mecanismos de control, objetivos y los elementos resultantes. Tal como se muestra

en la ilustración 6, los recursos acceden al sistema por medio de las entradas para ser transformados.

Este proceso es vigilado por los mecanismos de control con el fin de lograr los objetivos del

sistema. Una vez se ha llevado a cabo la transformación, el resultado sale del sistema a través de los

elementos de salida.

Page 39: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

39

Ilustración 6 Modelo general de un sistema

Objetivos

Mecanismos

de control

Entrada

Transformación

Salida

Fuente: los autores

Los sistemas en realidad son comunes de encontrar, pues están en la vida corriente de las personas:

una máquina expendedora de bebidas, una fábrica de productos, el cuerpo humano, un automóvil,

un archivador de documentos, una fórmula matemática, etc. En el caso de la máquina expendedora

de bebidas el elemento de entrada corresponde a las monedas que se pueden introducir. Una vez la

moneda está dentro se compara con el precio de la bebida seleccionada (objetivo del sistema)

mediante el elemento de control. Cuando la cantidad de dinero introducida al sistema es la correcta,

el mecanismo de control cambia las monedas por una bebida, la cual es entregada al usuario. De

forma similar, es posible representar el resto de los ejemplos mediante los cinco bloques básicos de

un sistema.

Mientras que hay un consenso en la definición de sistema, no lo hay en la definición de sistema de

información. En la actualidad, la expresión sistema de información se utiliza de forma común y

habitual en las organizaciones; sin embargo, existen diversas definiciones y para ellos escuelas y

autores del tema. Aún así, basándose en la definición dada de sistema, se podría realizar una

primera aproximación definiéndola como un conjunto de componentes que interactúan entre sí para

lograr un objetivo común: satisfacer las necesidades de información de una organización.

Page 40: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

40

4.7.1 Definición general de los sistemas de información

“Los sistemas de información son un conjunto de componentes interrelacionados que recolectan (o

recuperan) procesan, almacenan y distribuyen información para apoyar la toma de decisiones y el

control de una organización. Además de apoyar la toma de decisiones, la coordinación y el control,

los sistemas de información también pueden ayudar a los gerentes y trabajadores a analizar

problemas, a visualizar asuntos complejos y a crear productos nuevos”7.

La definición proporcionada por Laudon y Laudon refleja tres aspectos básicos de los sistemas de

información. Un sistema de información está formado por un conjunto de componentes. A

diferencia de otras definiciones, los autores no especifican qué componentes interactúan en el

sistema de información. Esto es debido a querer englobar los distintos sistemas de información en

una única definición. En contraposición a lo que la mayoría de personas creen, un sistema de

información puede ser formal e informal. De manera similar, es posible encontrarse con sistemas de

información basados en ordenadores (o en la tecnología de la información), y sistemas de

información que utilizan la tecnología del papel y el lápiz. Los primeros, son aquellos que se

apoyan en definiciones fijas y aceptadas de datos y procedimientos y que operan en conformidad

con reglas predefinidas, mientras que los segundos, se basan en reglas de comportamiento no

establecidas. Las conversaciones de trabajo en la máquina de cafés, o una reunión durante la comida

pueden considerarse sistemas informales.

El segundo aspecto que trata la definición de Laudon y Laudon son las actividades que realizan los

sistemas de información, más concretamente el sistema de transformación de un sistema. Las

actividades básicas de un sistema de información son la recolección (o recuperación), el procesado,

el almacenamiento y la distribución de la información introducida. En función del nivel de

complejidad del procesado, se obtendrán distintos sistemas de información.

4.8 Modelo de prototipado evolutivo

“El desarrollo evolutivo se basa en la idea de desarrollar una implementación inicial, exponiéndola

los comentarios del usuario y refinándola a través de las diferentes versiones hasta que se desarrolla

7 LAUDON y otros. Sistemas de Información Gerencial, 2004

Page 41: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

41

un sistema adecuado. Así las actividades de especificación de desarrollo y validación se entrelazan

en vez de separarse, con una rápida retroalimentación entre éstas.”8

Según Sommerville existen dos tipos de desarrollo evolutivo:

1. Desarrollo exploratorio (ver ilustración 7), el proceso consiste en trabajar con el cliente para

descubrir sus requerimientos hasta llegar al sistema final. El desarrollo empieza con las

partes del sistema que se comprenden mejor. Así el sistema ira evolucionando agregando

nuevos atributos propuestos por el cliente.

Ilustración 7 Desarrollo exploratorio de prototipos

Fuente: Los autores

2. Prototipos desechables, donde el objetivo del proceso de desarrollo evolutivo es

comprender los requerimientos del cliente y entonces desarrollar una definición mejorada

de los requerimientos para el sistema. El prototipo se concentra en probar los

requerimientos del cliente que no se entienden por completo

8 SOMMERVILLE, IAN ,Ingeniería del software.. 2005.

Diseño del prototipo Construir el prototipo Utilizar el sistema

prototipo

¿Sistema apto? Entrega del sistema

Page 42: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

42

Ilustración 8 Desarrollo de prototipos desechables

Fuente: los autores

En el desarrollo, un enfoque evolutivo es efectivo, ya que satisface las necesidades inmediatas de

los clientes. La ventaja de un proceso del software que se basa en este enfoque consiste en que los

requerimientos pueden desarrollados de forma creciente. Así tan pronto como los usuarios

desarrollen un mejor entendimiento de su problema, éste se puede reflejar en el sistema software.

Es importante resaltar que el punto de vista evolutivo del ciclo de vida del software considera a la

primera entrega como un prototipo inicial en el campo. Modificaciones y mejoras subsecuentes

resultan en nuevas entregas de prototipos más maduros. Este proceso continúa hasta que se haya

desarrollado el producto final. De esta manera, la adopción de esta óptica elimina la distinción

arbitraria entre desarrollo y mantenimiento.

4.9 El manifiesto ágil

“En marzo de 2001 diecisiete críticos de los modelos de mejora del desarrollo de software basados

en procesos, convocados por Kent Beck,, se reunieron en Salt Lake City para tratar sobre técnicas y

procesos para desarrollar software. En la reunión se acuñó el término “Métodos ágiles”9 para definir

a los métodos que estaban surgiendo como alternativa a las metodologías formales (CMMI, SPICE)

9 Beck Kent y otros, Manifesto for Agile Software Development.

Requerimientos generales

Desarrollar prototipo

Evaluar prototipo

Especificar sistema

Desarrollar software

Validar sistema

Entregar sistema al cliente

Page 43: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

43

a las que consideraban excesivamente “pesadas” y rígidas por su carácter normativo y fuerte

dependencia de planificaciones detalladas previas al desarrollo.

Principios del manifiesto ágil

“Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y

ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar:

- A los individuos y su interacción, por encima de los procesos y las herramientas

- El software que funciona, por encima de la documentación exhaustiva

- La colaboración con el cliente, por encima de la negociación contractual.

- La respuesta al cambio, por encima del seguimiento de un plan

Aunque hay valor en los elementos de la derecha, valoramos más los de la izquierda.” 10

4.10 Programación extrema

La programación extrema o eXtreme Programming (XP) es un enfoque de la ingeniería de software

formulado por Kent Beck, autor del primer libro sobre la materia, Extreme Programming

Explained: Embrace Change en 1999. La programación extrema se diferencia de las metodologías

tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad.

Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto

natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse

a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y

más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos

después en controlar los cambios en los requisitos.

Los Valores originales de la programación extrema son: simplicidad, comunicación,

retroalimentación (feedback) y coraje. Un quinto valor, respeto, fue añadido en la segunda edición

de Extreme Programming Explained. Los cinco valores se detallan a continuación:

Simplicidad:

10

Beck Kent y otros, Manifesto for Agile Software Development.

Page 44: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

44

La simplicidad es la base de la programación extrema. Se simplifica el diseño para agilizar el

desarrollo y facilitar el mantenimiento. Un diseño complejo del código junto a sucesivas

modificaciones por parte de diferentes desarrolladores hacen que la complejidad aumente

exponencialmente.

Comunicación:

La comunicación se realiza de diferentes formas. Para los programadores el código comunica mejor

cuanto más simple sea. Si el código es complejo hay que esforzarse para hacerlo inteligible. El

código autodocumentado es más fiable que los comentarios ya que éstos últimos pronto quedan

desfasados con el código a medida que es modificado. Los programadores se comunican

constantemente gracias a la programación por parejas. La comunicación con el cliente es fluida ya

que el cliente forma parte del equipo de desarrollo. El cliente decide que características tienen

prioridad y siempre debe estar disponible para solucionar dudas.

Retroalimentación (feedback):

Al estar el cliente integrado en el proyecto, su opinión sobre el estado del proyecto se conoce en

tiempo real. Al realizarse ciclos muy cortos tras los cuales se muestran resultados, se minimiza el

tener que rehacer partes que no cumplen con los requisitos y ayuda a los programadores a centrarse

en lo que es más importante.

Respeto:

El respeto se manifiesta de varias formas. Los miembros del equipo se respetan los unos a otros,

porque los programadores no pueden realizar cambios que hacen que las pruebas existentes fallen o

que demore el trabajo de sus compañeros. 11

4.11 Empresa CREAMAX12

Creamax es una empresa vallecaucana creadora y distribuidora de productos de suplemento para la

nutrición deportiva, con aproximadamente 6 años en el mercado.

Misión

11

JEFFRIES Ron, Principios de XP, Extreme Programming Installed, pag 35 12

CREAMAX, visión, misión y valores institucionales, documento interno empresarial.

Page 45: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

45

“Satisfacer totalmente las necesidades nutricionales de nuestros clientes, a través de la excelencia en

el servicio, el desarrollo integral de nuestros líderes de acción y el sentido de compromiso con

nuestra familia y nuestro País.”13

Visión

“Queremos que Creamax sea un modelo de empresa líder en servicios de nutrición, por seguridad,

oportunidad y cubrimiento total además de presencia competitiva a nivel nacional e

internacional.”14

Políticas de calidad

Clientes:

Superar las expectativas de los clientes manteniendo un portafolio actualizado de acuerdo con sus

intereses

Trabajo:

Trabajar con base en una cultura creativa, utilizando alta tecnología, aprovechando al máximo los

recursos disponibles y planificando estratégicamente

Equipo:

Desarrollar un sistema de selección que permita conformar un excelente equipo de colaboradores,

capacitado técnica y humanamente, con gran sentido de pertenencia

Investigación:

Crear un sistema de investigación que proporcione soluciones para el uso del tiempo libre acorde

con el entorno, mejorando continuamente y presentando mayores beneficios que los ofrecidos por la

competencia

Experiencia:

Aprovechar la experiencia obtenida a través del tiempo de ejercicio aumentando ventajas

competitivas y posicionando en el primer lugar a la compañía

13

CREAMAX, visión, misión y valores institucionales, documento interno empresarial 14

CREAMAX, visión, misión y valores institucionales, documento interno empresarial

Page 46: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

46

Valores corporativos

- Nuestro trabajo productivo permite el crecimiento personal, familiar y social

- Con disciplina, trabajo en equipo y autocontrol todos ganamos

- El diálogo fundamentado en la razón, es el único medio para dirimir las diferencias

- La iniciativa, la creatividad y el sentido común hacen grandes a los hombres, las

corporaciones y los países

- Actuando con lealtad, honestidad y respeto, se construye una sociedad en paz

- El corazón de Creamax es el cliente. El garantiza nuestra estabilidad y desarrollo

- Seguridad, oportunidad, confiabilidad y sensibilidad en el producto-servicio son

nuestra razón de ser

- La competencia nos renueva día a día y nos hace grandes, entre los grandes

- El cumplimiento de la constitución y las leyes de la republica, garantizan la

convivencia democrática

Portafolio de productos

A continuación se exponen los productos ofrecidos por la empresa Creamax.

Mass Muscle:

Ganador de peso hipercalórico basado en proteína de suero de leche y un alto contenido de

carbohidratos. Permite aumentar la masa muscular (o masa magra) sin grasa cuando se

consume después del ejercicio o en el momento en que se produce una ventana parabólica

(al levantarse antes de desayunar, y después de hacer ejercicio). Las personas que

consumen Mass Muscle pueden notar los cambios en su cuerpo de manera natural debido a

que éste es un producto naturista.

Creatina Monohidratada:

La creatina aumenta la capacidad de memoria muscular, tiene habilidad para neutralizar la

acidez muscular producida por el ejercicio en cerca de siete por ciento, esto por sí mismo

puede incrementar la capacidad de energía, porque las enzimas envueltas en la producción

de energía no pueden funcionar cuando el nivel de ácido láctico derivado del ejercicio es

muy alto. Éste ácido es el que produce el dolor muscular que te hace abandonar el ejercicio.

Page 47: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

47

Whey Protein:

Fórmula proteica diseñada con todos los nutrientes, vitaminas, minerales, antioxidantes y

aminoácidos esenciales para el óptimo desempeño del organismo. Contiene la fórmula

necesaria para la construcción y recuperación de masa muscular y de todos los tejidos del

cuerpo. Sirve para mejorar la calidad muscular y reducir la cantidad de grasa en el cuerpo

cuando se acompaña del ejercicio. Mejora el metabolismo y la energía corporal.

Page 48: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

48

5. RECOLECCIÓN DE INFORMACIÓN Y ANALISIS DE REQUERIMIENTOS

5.1 Recolección de información por medio de entrevistas

El primer acercamiento con el cliente lo realizó el estudiante Juan Sebastian Celis Maya,

quien reside en la ciudad de Tuluá, éste en algunas ocasiones había adquirido productos

nutricionales de la empresa Creamax. En una de sus compras notó el problema que tenían

con la impresión de facturas, pues éstas eran hechas en una hoja de cálculo. En ese

momento se acercó al señor Abdulrain Matamba Perdomo, a quien le propuso agilizar y

formalizar de alguna forma este proceso, a lo cual el señor Perdomo respondió de manera

afirmativa y aceptó adquirir un sistema que resolviera algunas de las problemáticas que

tenían en su empresa.

Una vez establecido el interés del cliente, se procede a la recolección de información, por

lo que se realizaron una serie de actividades en busca de obtener suficiente información

para establecer un sistema de acuerdo a las necesidades y expectativas de la empresa. El

sistema de recolección de esta información inicial por el que se opto fue mediante

entrevistas con los involucrados. Pues al ser una empresa con poca cantidad de personal

facilitaba este método.

Para la recolección de información se plantearon la siguiente serie de actividades:

Page 49: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

49

Ilustración 9 Actividades para la recolección de información

Determinar

objetivos

Definir

personas

entrevistadas

Establecer

preguntas

Entrevistar

gerente

Entrevistar

usuarios

Analizar

información

Requerimiento

s

Fuente: los autores

Determinar objetivos: cuando se estableció el primer acercamiento con el cliente se observó

que su principal problemática se encontraba en las áreas de procesamiento de la

información, agilidad de procesos y falta de informes que facilitaran la toma de decisiones.

Por lo tanto los objetivos de la entrevista buscan:

- Establecer los principales usuarios del sistema

- Identificar los procesos que mayor tiempo ocupa a los usuarios

- Establecer las expectativas de la gerencia

Definir personas que se entrevistaran: Creamax es una empresa con diez empleados, e

involucrados con el sistema se encuentran cinco personas. Los usuarios que se entrevistaran

según los objetivos que se plantearon en el punto anterior son:

- Elsa Patricia Castaño - Cajera

- Liliana Sanabria – Cajera

- Danny Fernando Cruz – Cajero

- Angélica María Perez – Supervisora

- Abdulrain Matamba Perdomo – Administrador de la empresa

Entrevista con el administrador: con el señor Perdomo, quien aceptó la propuesta de

desarrollo de un sistema de información para su empresa, se identificaron sus expectativas,

Page 50: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

50

las necesidades desde la parte gerencial y obtener un primer acercamiento de su visión del

sistema. Esta entrevista puede encontrarse en el anexo uno.

Entrevista con usuarios: los principales usuarios del sistema son los cajeros pues afecta

directamente su actividad laboral, son los encargados de tomar los pedidos y entregarlos al

cliente o despacharlos por medio de mensajería. La entrevista (ver ilustración 10) busca

identificar como se realizan las tareas en este momento y de que forma el sistema puede

agilizar y mejorar esta labor. Las entrevistas pueden encontrarse en el anexo dos.

Ilustración 10 Entrevista realizada a los usuarios del sistema

Entrevista para usuarios del sistema Creamax

Cargo:

¿Cuánto tiempo tarda normalmente en tomar un pedido y crear una factura para un cliente?

_____________________________________________

¿Si el cliente ha realizado compras con ustedes, usted debe preguntar de nuevo toda su

información, o poseen un compendio de cliente de donde pueda recuperarla? Si______

No_______

¿Tiene usted conocimiento de cuántas unidades puede venderle al cliente (disponibilidad

del producto)? Si____ No____

¿De qué forma se incluyen en la factura los descuentos, precios especiales o demás

eventos en el precio ?

_________________________________________________________________________

Page 51: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

51

¿Luego de la impresión, con qué nombre guarda la factura realizada?

________________________________________________________

¿Usted puede ver las facturas realizadas por otros vendedores? Si ____ No_____

¿Cuántas personas tienen acceso al computador donde usted trabaja? _______________

¿Cuántas utilizan su misma clave de acceso? ____________________________________

¿Cuando el pedido debe ser enviado por correo certificado, cómo marca la caja?

________________________________________________________________________

Fuente: los autores

5.2 Ciclo de vida del prototipo del sistema

“¿Podría decirme, por favor, qué camino debo tomar desde aquí? Eso depende, en gran medida,

de a dónde quieras ir, dijo el Gato. Eso no importa mucho, dijo Alicia. Entonces no tienes

problema con el camino que cojas, dijo el Gato. -con tal de que llegue a alguna parte-, añadió

Alicia como justificación. Oh, seguro que lo harás, dijo el Gato, con tal de que camines lo

suficiente.” Conversación de Alicia con el Gato Chesire, en “Alicia en el país de las maravillas” de

Lewis Carroll

La formalización del proceso de desarrollo se define como el ciclo de vida del desarrollo. Se puede

describir como, el periodo entre el cual se toma la decisión del desarrollo del software y la entrega

de este al cliente. Este ciclo, por lo general incluye, una fase de requisitos, fase de diseño, fase de

implementación, fase de prueba, y a veces, fase de instalación y aceptación.

Page 52: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

52

El desarrollo de este proyecto el ciclo de vida solo comprende las fases de definición de requisitos,

diseño e implementación, además de esto se opto por una aproximación en espiral para definir la

primera iteración del prototipo.

5.3 Metodología de desarrollo

La metodología escogida para el desarrollo del proyecto será una adaptación propia del equipo de

XP, debido a la necesidad de mantener una estrecha comunicación con el cliente y que el equipo de

desarrollo pueda concentrarse en el desarrollo del proyecto y no en soportar cantidades excesivas de

documentación.

Se tomaran las bases de XP, pero las reuniones con el cliente en todo los momentos no podrán

hacerse de forma personal, pues si bien uno de los postulados de XP requieren la presencia continua

del cliente, en la realidad es difícil disponer de la persona todo el tiempo que se requiera. En la

mayoría de momentos entonces, la reuniones se harán de forma virtual (usando correo electrónico o

programas de mensajería).

5.4 Historias de usuario

Las historia de usuario representan un requerimiento de software escrito en una o dos frases

utilizando el lenguaje común del usuario. Cada historia de usuario debe ser limitada, pues se debería

poder colocar en una nota adhesiva.

Las historias de usuario establecidas con el cliente pueden encontrarse en el anexo seis.

5.5 Análisis de requerimientos

A partir de las entrevistas que pueden verse con detalle en el anexo dos, tres, cuatro y cinco,

junto a las historias de usuario entregadas por el cliente se determinaron los requerimientos

Page 53: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

53

del sistema para el diseño del primer prototipo funcional del sistema de información. Estos

se encuentran a continuación:

5.5.1 Requisitos funcionales

5.5.1.1 Control de inventario

La empresa CREAMAX mantiene inventarios de sus productos terminados para satisfacer

la demanda de los clientes. Puesto que estos inventarios representan frecuentemente una

considerable inversión, las decisiones con respecto a las cantidades de inventarios son

importantes.

El sistema por petición del cliente hará uso del manejo de inventario PEPS.

El punto más destacado de este requisito es su integración con el proceso de ventas, pues

ambos deben comunicarse para no permitir la facturación de productos que no estén

disponibles en el momento.

5.5.1.2 Creación y almacenamiento de facturas

“Parte de la naturaleza inhumana de un computador es que, una vez que ha sido programado

correctamente y funciona a la perfección, es completamente honesto” Isaac Asimov.

El cliente solicita que el sistema genere facturas que cumplan con los requisitos de la

legislación colombiana, estas facturas serán impresas o la información de la transacción

será almacenada en el sistema para generar en el momento que se requiera el respectivo

documento.

Para la generación de una factura, el sistema deberá solicitar los datos del cliente al que se

le realizará el pedido, estos clientes ya deben encontrarse dentro de la base de datos del

sistema o pueden agregarse al momento de la venta. Luego al cliente establecido le son

agregados los productos que desea para la compra. La información de los productos

disponibles se obtiene desde la base de datos. Ahora bien, cuando se realiza la facturación,

Page 54: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

54

se genera el documento, se guarda un registro de la transacción y se descarga del inventario

de productos los artículos que fueron facturados.

Como el sistema guarda registro de las transacciones este debe estar en la capacidad para

recuperar transacciones realizadas con anterioridad, generando los respectivos documentos

electrónicos para su soporte.

Esto adiciona la necesidad de auditar las transacciones realizadas, por lo que usuarios con

permisos especiales deben estar en la capacidad de corregir o eliminar facturas en el caso

de errores al momento de la realización del pedido. Estos usuarios también deben controlar

los datos almacenados sobre clientes, es decir pueden editar información, agregarla o

borrarla.

5.5.1.3 Creación y almacenamiento de informes

La realización de informes busca tomar los datos almacenados y generar documentos

adicionales con información relevante acerca de ellos. Estos informes son hechos a partir de

algunos parámetros entregados por el usuario

En el sistema se requieren diversos tipos de informes, los contemplados por el cliente son

los siguientes:

- Informes administrativos: estos ayudan a controlar el sistema en general, son

usados por el administrador del sistema para tomar decisiones respecto a la

seguridad e integridad del sistema

Control de acceso de usuarios

Transacciones realizadas por hora

Registro e información de usuarios

- Informes gerenciales: los informes gerenciales facilitan la toma de decisiones a

las partes gerenciales, se relacionan directamente con los inventarios, productos

vendidos y clientes

Productos vendidos según diferentes criterios, producto de mayor venta,

producto de menor venta, promedio de productos vendidos en un intervalo

de tiempo

Page 55: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

55

Estado de inventarios

Clientes según número de pedidos, valor del pedido, ciudades, fechas de

compra

- Informes de usuario: estos informes proveen información importante para el

vendedor

Productos vendidos en el día

Ventas en un periodo de tiempo

5.5.1.4 Gestión de usuarios

El sistema debe tener una herramienta que facilite la gestión de los usuarios existentes por

parte del administrador. Esta gestión incluirá la inclusión y eliminación de los usuarios,

además de la modificación de cualquiera de los datos que componen el perfil de un usuario

dentro del sistema

5.5.2 Requisitos no funcionales del sistema

5.5.2.1 Confiabilidad

Los errores deben ser controlados

"Probar un programa sólo puede servir para hallar fallos, nunca para demostrar su

ausencia" Edsger Wybe Dijkstra

Cada error que pueda surgir debe ser controlado, es decir, en caso de surgir un error se

deben mostrar pantallas personalizadas al usuario, pero no permitir que el sistema muestre

secciones del código o descripciones detalladas de error que puedan poner en riesgo la

seguridad e integridad del sistema. Estas descripciones deben almacenarse en una bitácora

para el posterior análisis por parte del administrador.

Page 56: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

56

Control en cifras decimales

Los números que se requieran en el sistema, por ejemplo precios de productos, sumas de

precios, saldos, descuentos. Se almacenarán y operarán hasta cinco posiciones decimales.

5.5.2.2 Plataforma del sistema

Lenguaje de programación

El sistema debe ser desarrollado sobre PHP versión 4 (PHP4), pues el servidor que el

cliente adquirió para la instalación del sistema sólo soporta ésta versión. Por lo tanto el

sistema debe ser desarrollado en paradigma modular dado que esta versión de PHP posee

un inestable soporte de programación orientada a objetos, ya que carece de algunas

características básicas como ocultación de información y sobrecarga de métodos.

Servidor web

El sistema se alojara bajo el servidor del cliente, este servidor corre la versión 2.2. El

sistema deberá funcionar en perfectas condiciones bajo este servidor web.

5.5.2.3 Usabilidad

Navegador

El sistema funcionará en perfectas condiciones en los siguientes navegadores: chrome versión 4.0,

Firefox versión 3.6, Internet Explorer 8. Otros navegadores o diferentes versiones no se

garantizarán el funcionamiento del sistema.

Diseño en ventanas

El sistema debe hacer uso de AJAX para permitir crear una interfaz similar al escritorio de

los sistemas operativos gráficos. Por una, parte esto es para el cliente importante desde el

punto de vista estético y por otra parte, permite trabajar en diferentes módulos del sistema

sin tener que pasar o perder la información entre el paso de pantallas. Desde la perspectiva

Page 57: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

57

del servidor web esto mejora dramáticamente la carga de transacciones pues son menores la

cantidad de llamados de parte del cliente.

5.5.2.4 Seguridad

Autenticación

Antes de realizarse cualquier actividad dentro del sistema, los usuarios deben identificarse, para ello

se utilizará un sistema de autenticación basado en algo conocido. En este caso se hará uso de un

nombre de usuario, el cual a su vez tiene asociada una contraseña que al momento de ser solicitada

debe coincidir con la que se encuentra dentro de la base de datos.

Registro de eventos

Todo evento originado en el sistema debe ser guardado en una bitácora para facilitar procesos de

auditoría. Entiéndase como evento los siguientes acontecimientos: inicio de sesión, finalización de

sesión, excepciones generadas por el usuario, cambio de contraseña, intentos de inicio de sesión.

Perfiles de usuario

El sistema será utilizado por distintas clases de usuarios, es decir, varios cargos dentro de la

empresa hacen uso de este para tareas especificas, por ejemplo, los vendedores son los

directamente encargados de realizar las ventas y facturación, mientras los supervisores

establecen los descuentos en los precios y el ingreso de mercancía.

Según esto se establece un sistema de permisos basado en perfiles, así pues cada usuario

posee un perfil característico y este perfil le brinda el acceso a diferentes características del

sistema.

Los perfiles establecidos son:

- Administrador: los usuarios con perfil administrador tienen acceso completo al

sistema, son los únicos que pueden cambiar los perfiles a otros usuarios, también

pueden modificar, agregar o borrar información proveniente de cualquiera de los

orígenes como productos, clientes, registros de facturación o pedidos.

Page 58: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

58

- Supervisor: tiene acceso a modificar los registros de productos, información

sobre usuarios y los registros de ventas. Está orientado a la parte gerencial de la

organización.

- Vendedor: accede al sistema para realizar la facturación de los pedidos, las

únicas modificaciones que puede realizar es sobre los datos de los clientes

5.5.2.5 Base de datos

El sistema se desarrollará bajo MySQL versión 5.0.89-community

5.5.2.6 Estándares de desarrollo

Buenas prácticas de desarrollo

Seguridad: se controlará lo que puede hacer el usuario. La entrada y la salida de información del

sistema son los puntos vulnerables y se prestará especial atención a esto. Todo dato de entrada será

verificado. Por ejemplo, se hará verificación que los campos de textos sólo se les pueda ingresar

texto, o los campos que contengan números sólo puedan ingresarse números.

Optimización: la optimización consiste en que el programa consuma la menor cantidad posible de

recursos (memoria y disco). Es importante ahorrar pasos de variables innecesarios, líneas de

código, medir el rendimiento de funciones similares y utilizar las que menos recursos utilicen.

Standard de codificación: basado en las recomendaciones de estándar de codificación oficial de

php (Zend).

Page 59: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

59

- Las funciones y métodos deben comenzar con minúscula. Si son dos palabras se debe usar

la primera en mayúscula y la segunda en minúscula. Ejemplo: metodoPrueba();

- Las propiedades private o protected deben comenzar con un $_ guion, Ejemplo:

$_propiedadPrueba; , mientras que las públicas no.

- Las constantes deben ser escritas siempre en mayúsculas, separadas por _ guion bajo.

Ejemplo: EJEMPLO_DE_CONSTANTE

- Se debe omitir el tag de cierre „?>‟ en las clases (o scripts) que solo contienen código PHP

, es decir, sin código HTML embebido

- Cuando se define un parámetro opcional (inicializado como nulo) de una función/método se

debe utilizar „null‟ en lugar de „false‟ , Ejemplo: public function foo($required, $optional =

null) , excepto que el parámetro opcional sea booleano, entonces por obligación es válido

poner „true‟ o „false‟

- Las cadenas deben ser delimitadas con comillas simples y no dobles. Ejemplo: $var =

„hola mundo‟;

- Las consultas SQL pueden escribirse concatenadas y divididas en varias líneas para facilitar

su lectura. El operador „.‟ debe ir alineado del operador „=‟,

Manejo de excepciones

El manejo de excepciones es una estructura de control de los lenguajes de programación diseñada

para manejar condiciones anormales que pueden ser tratadas por el mismo programa que se

desarrolla. Todas las excepciones deben ser controladas y guardar los mensajes de error o

advertencia en un archivo de bitácora para el posterior análisis de la causa del evento.

Mensajes de aplicación

Cuando el sistema requiera mostrar información importante al usuario se mostrara en texto de

colores rojos para capturar la atención.

Page 60: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

60

5.5.2.7 Mantenibilidad

Documentación

Se requiere que el sistema tenga sus respectivos manuales que sirvan de referencia en

cualquier momento a los usuarios. Este manual debe detallar las funciones más importantes

y las funcionalidades que provee el sistema.

Además de esta documentación por parte de los usuarios, el código debe estar documentado

para facilitar su posterior análisis o corrección en casos de fallos.

5.5.2.8 Portabilidad

El sistema debe funcionar bajo cualquier sistema operativo o cualquier plataforma. Esta condición

se cumple además en la medida de cumplir el requisito de navegador de internet anteriormente

mencionado. Si la plataforma puede ejecutar algunos de los navegadores, el sistema puede trabajar a

cabalidad.

5.5.3 Aspectos globales

5.5.3.1 Acceso web

El sistema para la empresa Creamax debe ser asequible desde internet y desde un navegador web

que cumpla con los requisitos anteriormente mencionados para navegadores.

5.5.3.2 Disposición del servidor

El servidor pertenece a la empresa Creamax, este es un servidor arrendado a la empresa Hostgator

normalmente usado para hospedar páginas web y posee las siguientes características:

Procesador: Intel Xeon 3450 (Quad Core), memoria RAM: 8 GB, disco duro: 1 TB, sistema

operativo: Linux CentOS

Page 61: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

61

5.5.4 Aspectos fuera del alcance

Dentro del prototipo de información para el sistema de información para la empresa Creamax no

están contemplados los siguientes aspectos: contabilidad, distribución de productos, CRM, compras,

distribuidores, bancos y pagos, gestión de almacenes, producción, servicios y cualquier otro módulo

del que expresamente no se trate en estos requerimientos iniciales o en el documento.

5.6 Casos de uso – Sistema para la empresa Creamax

Los casos de uso son "escenarios en los cuales el usuario interactúa con el sistema que se está

definiendo para lograr cierto objetivo específico o realizar alguna tarea en particular"15

. El método

que seguimos en nuestro desarrollo es el siguiente: a partir de entrevistas con los futuros usuarios

del sistema, se intentan descubrir las diversas situaciones que se puedan presentar durante la

utilización del sistema. Por ejemplo, si el cliente menciona la necesidad de cargar archivos desde el

disco, entonces una de las situaciones de uso potenciales del sistema será: "carga un archivo de

datos”. Una vez que se obtienen la mayor parte de las situaciones (recordemos que la naturaleza

cíclica del proceso implica que posteriormente podrían aparecer nuevas situaciones que no hubiesen

sido contempladas durante la primera aproximación, y que por ello se deben realizar varias

entrevistas con el cliente), debemos intentar reagruparlas y encontrar casos de uso generales que

abarquen varias de las situaciones antes encontradas.

15

Wiegers. : Software Development Magazine p50-55, Marzo de 1997 www.sdmagazine.com

Page 62: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

62

5.6.1 Control de inventario

Ilustración 11 Casos de uso - Control de inventario

Fuente: los autores

5.6.1.1 Agregar existencias

Objetivo: permitir al usuario agregar las existencias de productos al inventario

Actor principal: administrador del sistema

Actor involucrado: no aplica

Condiciones especiales:

- Se agregarán existencias de productos previamente creados

- Sólo usuarios con permisos administrativos pueden agregar existencias

Flujo:

Acción del usuario Acción del sistema

2- Escoger producto

1- Mostrar opciones de agregación de

existencias

Page 63: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

63

3- Escoger Sabor

4- Escoger Presentación

5- Escoger Cantidad

6- Almacenar información en la base de datos

7- Mostrar confirmación de información

almacenada

Flujo alternativo: error en la digitación de la cantidad:

Acción del usuario Acción del sistema

2- Corregir error en cantidad

1- Mostrar aviso de error

3- Continuar en paso 5 del flujo normal

5.6.1.2 Eliminar existencias

Objetivo: permitir al usuario eliminar existencias de productos del inventario

Actor principal: administrador del sistema

Actor involucrado: no aplica

Condiciones especiales:

Se eliminarán existencias de productos previamente creados

- Sólo usuarios con permisos administrativos pueden realizar la eliminación de existencias

Flujo:

Page 64: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

64

Acción del usuario Acción del sistema

2- Escoger existencias a eliminar

1- Mostrar opciones de eliminación de

existencias

3- Actualizar base de datos

4- Mostrar confirmación de eliminación

5.6.1.3 Ver inventario

Objetivo: permitir al usuario ver las existencias de productos actuales

Actor principal: vendedor

Actor involucrado: no aplica

Condiciones especiales:

- Deben haber existencias de productos en el inventario

Flujo:

Acción del usuario Acción del sistema

1- Mostrar existencias de productos

Page 65: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

65

Ilustración 12 Ver inventario - diagrama de secuencia

Fuente: los autores

5.6.1.4 Ver detalle de existencias

Objetivo: clasificar la visualización de las existencias de productos en el inventario por sabores y

presentaciones

Actor principal: administrador del sistema

Actor involucrado: no aplica

Condiciones especiales:

- No aplica

Flujo:

Acción del usuario Acción del sistema

2- Escoger criterio de detalle

1- Mostrar existencias de producto y opciones

de visualización detallada

Page 66: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

66

3- Mostrar detalle de existencias

Ilustración 13 Ver detalle de existencia - diagrama de secuencia

Fuente: los autores

5.6.1.5 Agregar producto

Objetivo: permitir al usuario agregar productos del sistema

Actor principal: administrador del sistema

Actor involucrado: no aplica

Condiciones especiales:

- Sólo usuarios con permisos administrativos pueden agregar productos

Flujo:

Acción del usuario Acción del sistema

2- Escribir nombre del producto

1- Mostrar opciones para agregar productos

Page 67: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

67

3- Escribir nombre del sabor

4- Seleccionar presentaciones del producto

5- Agregar producto a la lista de productos

6- Mostrar confirmación de producto agregado

Flujo alternativo: campo de nombre vacío, campo nombre del sabor

Acción del usuario Acción del sistema

2- Escribir información faltante

1- Mostrar alerta en el campo de error

3- Continuar con el paso 5 del flujo normal

Ilustración 14 Diagrama de secuencia - Agregar producto

Fuente: los autores

Page 68: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

68

5.6.1.6 Eliminar producto

Objetivo: permitir al usuario eliminar productos del sistema

Actor principal: administrador del sistema

Actor involucrado: no aplica

Condiciones especiales:

- Únicamente se podrán eliminar productos que carezcan de existencias

- Sólo usuarios con permisos administrativos pueden realizar la eliminación de productos

Flujo:

Acción del usuario Acción del sistema

2- Escoger producto a eliminar

1- Mostrar listado de productos

3- Actualizar listado de productos

4- Mostrar confirmación de producto eliminado

Page 69: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

69

Ilustración 15 Eliminar producto - diagrama de secuencia

Fuente: los autores

5.6.2 Generación de facturas

Ilustración 16 Casos de uso - Generación de facturas

Page 70: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

70

5.6.2.1 Listar productos

Objetivo: permitir al ver los productos disponibles para la venta

Actor principal: vendedor

Actor involucrado: no aplica

Condiciones especiales:

- Deben haber existencias de productos en el inventario para poder realizar una venta

Flujo:

Acción del usuario Acción del sistema

1- Obtener productos disponibles a partir de la

información de la base de datos

2- Mostrar listado de productos

5.6.2.2 Verificar disponibilidad

Objetivo: verifica que los productos que se van a listar para la venta existan en el inventario

Actor principal: sistema

Actor involucrado: vendedor

Condiciones especiales:

- No aplica

Flujo:

Page 71: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

71

Acción del usuario Acción del sistema

1- Verificar disponibilidad de existencias de

productos en la base de datos

5.6.2.3 Eliminar productos

Objetivo: permitir al usuario eliminar productos del sistema

Actor principal: administrador del sistema

Actor involucrado: no aplica

Condiciones especiales:

- Únicamente se podrán eliminar productos que carezcan de existencias

- Solo usuarios con permisos administrativos pueden realizar la eliminación de productos

Flujo:

Acción del usuario Acción del sistema

2- Escoger producto a eliminar

1- Mostrar listado de productos

3- Actualizar listado de productos

4- Mostrar confirmación de producto eliminado

5.6.2.4 Realizar venta

Objetivo: permitir al usuario vendedor, realizar una venta a un cliente de la empresa

Page 72: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

72

Actor principal: vendedor

Actor involucrado: no aplica

Condiciones especiales:

- El cliente al que se le venden los productos debe existir en el sistema

- Los productos que se venden deben existir en el inventario

Flujo:

Acción del usuario Acción del sistema

2- Seleccionar cliente

4- Seleccionar todos los productos que se

desean para esa venta

5-Aceptar productos que se desean

7- Confirmar

1- Mostrar listado de clientes

3- Mostrar listado de productos

6- Solicitar confirmación para realizar el

registro actual de la venta

8- Registrar venta en la base de datos

9- Mostrar confirmación de venta realizada

Flujo alternativo: cancelar venta

Acción del usuario Acción del sistema

2- Confirmar la alerta

1- Solicitar confirmación de cancelar la venta en

proceso actual

3- Eliminar el registro de la venta actual en la

Page 73: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

73

base de datos

4- Regresar al usuario al inicio del modulo de

ventas

5.6.2.5 Generar factura

Objetivo: genera una factura en formato PDF a partir de una venta

Actor principal: sistema

Actor involucrado: no aplica

Condiciones especiales:

- El registro de la transacción ya se encuentra almacenado

Flujo:

Acción del usuario Acción del sistema

1- Solicita generación de la factura de la venta

actual

2- Obtener información acerca de la venta

deseada por el usuario de los registros

3- Procesar la información y producir un

archivo con los datos de la transacción

Page 74: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

74

Ilustración 17 Generar factura - diagrama de secuencia

Fuente: los autores

5.6.3 Generación de informes

Ilustración 18 Casos de uso - Generación de informes

Fuente: los autores

Page 75: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

75

5.6.3.1 Generar informes genéricos

Objetivo: presenta al usuario un informe basado en los criterios seleccionados

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Solo los usuarios con permisos administrativos pueden generar informes

- Deben haber datos registrados en el sistema para generar los informes

Flujo:

Acción del usuario Acción del sistema

2- Seleccionar tipo de informe

1- Mostrar tipos de informes a generar

3- Procesar la información y producir un

archivo con los datos de la transacción

4- Presentar reporte en formato PDF

Flujo alternativo: no hay datos sobre los cuales generar informes genéricos

Acción del usuario Acción del sistema

1- Mostrar error al usuario de falta de datos con

los cuales generar el informe

Page 76: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

76

Ilustración 19 Generar informe genérico - diagrama de secuencia

Fuente: los autores

5.6.3.2 Generar informe de ventas

Objetivo: presenta al usuario un informe de ventas

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Deben haber ventas registradas en el sistema

Flujo:

Acción del usuario Acción del sistema

Page 77: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

77

1-Selecciona la fecha de la cual desea el

informe acerca de las ventas realizadas

2- Obtiene los datos de las ventas comprendidas

en la fecha determinada por el usuario

2- Presenta reporte en formato PDF con los

datos obtenidos

5.6.3.3 Generar informe de accesos

Objetivo: presenta al usuario un informe de los accesos al sistema por parte de los usuarios

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Deben haber accesos de usuarios registrados en el sistema

Flujo:

Acción del usuario Acción del sistema

1- Solicita generar informes de acceso al

sistema

4- Guarda o imprime el archivo generado

2- Obtiene los datos acerca de los acceso al

sistema comprendidos en la fecha que

determino el usuario

3- Presenta un reporte en formato PDF de

accesos con los datos obtenidos

Page 78: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

78

5.6.3.4 Generar informe de clientes

Objetivo: presenta al usuario un informe de los clientes de la empresa registrados en el sistema

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Deben haber clientes registrados en el sistema

Flujo:

Acción del usuario Acción del sistema

1- Solicita generar informes de clientes

registrados

4- Guarda o imprime el archivo generado

2- Obtiene los datos acerca de los clientes

registrados

3- Presenta un reporte en formato PDF de los

clientes registrados

5.6.3.5 Generar informe de sabores

Objetivo: presenta al usuario un informe de los sabores que más se venden de todos los productos

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Deben haber ventas registradas en el sistema

Page 79: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

79

Flujo:

Acción del usuario Acción del sistema

1- Solicita generar informes de los sabores que

más se venden de cada producto

4- Guarda o imprime el archivo generado

2- Obtiene los datos acerca de los productos y

cual su sabor más vendidos

3- Presenta un reporte en formato PDF de los

sabores que más se vendieron de cada producto

5.6.3.6 Generar informe de presentaciones

Objetivo: presenta al usuario un informe de las presentaciones que más se venden de todos los

productos

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Deben haber ventas registradas en el sistema

Flujo:

Acción del usuario Acción del sistema

1- Solicita generar informes de las

presentaciones que más se venden de cada

producto

4- Guarda o imprime el archivo generado

2- Obtiene los datos acerca de los productos y

cuál es la presentación en que más son vendidos

3- Presenta un reporte en formato PDF de las

Page 80: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

80

presentaciones que más se vendieron de cada

producto

5.6.4 Gestión de usuarios

Ilustración 20 Casos de uso – Gestión de usuarios

Fuente: los autores

5.6.4.1 Modificar información personal

Objetivo: permite al usuario modificar sus datos personales que se encuentran almacenados en el

sistema

Actor principal: vendedor, supervisor, administrador

Actor involucrado: no aplica

Condiciones especiales:

- Deben haber ventas registradas en el sistema

Page 81: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

81

Flujo:

Acción del usuario Acción del sistema

2- Cambiar información

3- Aceptar

4- Aceptar alerta o cancelar

1- Mostrar información del usuario almacenada

3- Mostrar alerta de confirmación de cambios

5- Si se acepta la alerta, aplicar los cambios en

la base de datos, si se cancela no realizar los

cambios

6- Mostrar al usuario la pantalla de información

personal actualizada

Ilustración 21 Modificar información personal - diagrama de secuencia

Page 82: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

82

Fuente: los autores

5.6.4.2 Modificar correo electrónico personal

Objetivo: permite al usuario modificar su correo electrónico registrado en el sistema

Actor principal: vendedor, supervisor, administrador

Actor involucrado: No aplica

Condiciones especiales:

- El usuario debe estar autenticado

Flujo:

Acción del usuario Acción del sistema

2- Escribir nuevo correo electrónico

4- Activar correo

1- Mostrar correo electrónico actual

3- Enviar mensaje de activación

5- Modificar correo electrónico en la base de

datos

6- Mostrar al usuario la confirmación de

modificación de correo electrónico

Flujo alternativo: campo de correo electrónico vacío, o con el formato equivocado

Acción del usuario Acción del sistema

Page 83: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

83

2- Escribir nuevo correo electrónico

4- Activar correo

1- Mostrar error en el campo de correo

electrónico

3- Enviar mensaje de activación

5- Modificar correo electrónico en la base de

datos

6- Mostrar al usuario la confirmación de

modificación de correo electrónico

5.6.4.3 Modificar correo o clave

Objetivo: permite al usuario modificar su clave personal de acceso al sistema

Actor principal: vendedor, supervisor, administrador

Actor involucrado: No aplica

Condiciones especiales:

- El usuario debe estar autenticado

Flujo:

Acción del usuario Acción del sistema

2- Escribir clave actual

4- Escribir nueva clave

1- Solicitar clave actual

3- Solicitar nueva clave

Page 84: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

84

5- Modificar clave en la base de datos

6- Mostrar al usuario la confirmación de

modificación de clave

Flujo alternativo: clave actual inválida

Acción del usuario Acción del sistema

2- Escribir clave actual correcta

4- Escribir nueva clave

1- Mostrar error de clave actual invalida

3- Solicitar nueva clave

5- Modificar clave en la base de datos

6- Mostrar al usuario la confirmación de

modificación de clave

5.6.4.4 Modificar claves

Objetivo: permite al usuario administrador modificar las claves de los demás usuarios del sistema

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Sólo usuarios con perfil administrativo pueden modificar las claves de los demás usuarios

Flujo:

Page 85: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

85

Acción del usuario Acción del sistema

2- Seleccionar usuarios

4- Modificar clave del usuario seleccionado

1- Mostrar el listado de usuarios

3- Mostrar opciones de modificación de clave

5- Actualizar base de datos de usuarios

6- Mostrar confirmación de modificación de

clave

5.6.4.5 Modificar permisos

Objetivo: permite al usuario administrador modificar los permisos de los demás usuarios del

sistema

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Sólo usuarios con perfil administrativo pueden modificar los permisos de los demás

usuarios

Flujo:

Acción del usuario Acción del sistema

2- Seleccionar usuarios

1- Mostrar el listado de usuarios

3- Mostrar opciones de modificación de

Page 86: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

86

4- Modificar el perfil (permisos) del usuario

seleccionado

permisos

5- Actualizar base de datos de usuarios con los

nuevos permisos asignados

6- Mostrar confirmación de modificación de

permisos

5.6.5 Gestión de clientes

Ilustración 22 Casos de uso - Gestión de clientes

Fuente: los autores

5.6.5.1 Crear cliente

Objetivo: permite al usuario administrador registrar un cliente de la empresa en el sistema

Actor principal: administrador

Actor involucrado: no aplica

Page 87: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

87

Condiciones especiales:

- Sólo usuarios con perfil administrativo pueden registrar un cliente de la empresa en el

sistema

Descripción:

Flujo:

Acción del usuario Acción del sistema

1- Solicita crear un nuevo cliente

3- Escribir datos del nuevo cliente

2- Mostrar formulario de creación de cliente

4- Almacenar información del nuevo cliente en

la base de datos

5- Mostrar confirmación de creación de cliente

Flujo alternativo: error en el tipo de datos introducidos en la información del cliente

Acción del usuario Acción del sistema

2- Escribir datos del nuevo cliente

1- Mostrar error en digitación de datos

3- Almacenar cliente en la base de datos

4- Mostrar confirmación de creación de cliente

Ilustración 23 Crear cliente - Diagrama de secuencia

Page 88: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

88

Fuente: los autores

5.6.5.2 Eliminar cliente

Objetivo: permite al usuario administrador eliminar un cliente de la empresa que se encuentre en el

sistema

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Sólo usuarios con perfil administrativo pueden eliminar clientes del sistema

- El cliente a eliminar, debe existir previamente en la base de datos

Flujo:

Acción del usuario Acción del sistema

Page 89: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

89

2- Seleccionar cliente a eliminar

1- Mostrar el listado de clientes

3- Eliminar cliente de la base de datos

4- Mostrar confirmación de eliminación de

cliente

Ilustración 24 Eliminar cliente - diagrama de secuencia

Fuente: los autores

5.6.5.3 Modificar cliente

Page 90: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

90

Objetivo: permite al usuario administrador modificar un cliente de la empresa que se encuentre en

el sistema

Actor principal: administrador

Actor involucrado: no aplica

Condiciones especiales:

- Sólo usuarios con perfil administrativo pueden modificar clientes del sistema

- El cliente a modificar, debe existir previamente en la base de datos

Flujo:

Acción del usuario Acción del sistema

2- Seleccionar cliente a modificar

4- Modificar datos del cliente

5- Aceptar

7- Aceptar alerta de modificación

1- Mostrar el listado de clientes

3- Mostrar datos del cliente a modificar

6- Mostrar alerta de confirmación para

modificar los datos del cliente

8- Actualizar base de datos de clientes con los

datos introducidos

9- Mostrar confirmación de modificación

Flujo alternativo: error en el tipo de datos de modificación del cliente

Acción del usuario Acción del sistema

2- Modificar datos del cliente

1- Mostrar error de tipo de datos de

modificación

Page 91: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

91

3- Aceptar

4- Aceptar alerta de modificación

5- Mostrar alerta de confirmación para

modificar los datos del cliente

6- Actualizar base de datos de clientes con los

datos introducidos

7- Mostrar confirmación de modificación

Ilustración 25 Editar cliente - diagrama de secuencia

Fuente: los autores

5.6.5.4 Buscar cliente

Objetivo: permite al usuario buscar un cliente de la empresa que se encuentre en el sistema

Actor principal: vendedor

Actor involucrado: no aplica

Condiciones especiales:

Page 92: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

92

- El cliente a buscar, debe existir previamente en la base de datos

- Se debe tener concordancia por palabras clave en la búsqueda

Flujo:

Acción del usuario Acción del sistema

2- Escribir términos de búsqueda

1- Mostrar opciones de búsqueda

3- Examinar coincidencias en la base de datos

4- Retornar clientes que coincidan con los

criterios como resultados de búsqueda

Ilustración 26 Buscar cliente - diagrama de secuencia

Fuente: los autores

Page 93: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

93

5.7 Diseño modular

Se optó por un diseño modular, este enfoque implica dividir la programación en partes lógicas y

manejables llamadas módulos. Este tipo de programación funciona bien con el sistema requerido

porque da énfasis a las interfaces entre los módulo. Idealmente, cada módulo individual debe ser

funcionalmente cohesivo de manera que se encargue de realizar una sola función.

El diseño de programa modular tiene tres ventajas principales. Primero, los módulos son más fáciles

de escribir y de depurar porque prácticamente son independientes. Rastrear un error en un módulo

es menos complicado, debido a que un problema en un módulo no debe causar problemas en otros.

Una segunda ventaja del diseño modular es que los módulos son más fáciles de mantener.

Normalmente las modificaciones se limitarán a unos módulos y no seguirán en todo el programa.

Una tercera ventaja del diseño modular es que los módulos son más fáciles de entender, debido a

que son subsistemas independientes. Por lo tanto, un lector puede adquirir una lista del código de un

módulo y entender su función [Kendall & Kendall,2005].

En detalle, cada módulo es una carpeta que contiene cierto número de archivos los cuales son

necesarios entre sí. Los archivos contenidos en un módulo son del tipo:

- Scripts de PHP

- Archivos JavaScript y AJAX

- Imágenes

- Páginas en HTML

- Archivos de estilo en cascada CSS

5.8 Mapa del sitio

Basado en el diseño modular se planteó la siguiente estructura de directorios (ver ilustración 27) y

ficheros para el sistema. La descripción detallada de cada módulo puede encontrarse en los

capítulos siguientes acerca del diseño individual de cada uno.

Ilustración 27 Mapa del sitio

Page 94: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

94

Page 95: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

95

5.9 Diagrama de contexto

Un diagrama de flujo de datos de contexto define el campo de acción y los límites del sistema y el

proyecto. El diagrama de contexto para el sistema de información Creamax puede verse a

continuación (ver ilustración 28)

Ilustración 28 Diagrama de contexto del sistema Creamax

Fuente: los autores

Page 96: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

96

5.10 Diagrama de clases

El diagrama de Clases captura la estructura lógica del sistema - las clases y cosas que constituyen el

modelo -. Es un modelo estático, describiendo lo que existe y qué atributos y comportamiento tiene,

más que cómo se hace algo. Los diagramas de Clases son los más útiles para ilustrar las relaciones

entre las clases e interfaces.16

Ilustración 29 Diagrama de clases

16

http://www.sparxsystems.com.ar/download/ayuda/index.html?classdiagram.htm

Page 97: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

97

5.11 Diagramas de estado

Los diagramas de estados son una técnica conocida para describir el comportamiento de un sistema.

Describen todos los estados posibles en los que puede entrar un objeto particular y la manera en que

cambia el estado del objeto, como resultado de los eventos que llegan a él. En la mayor parte de las

técnicas OO, los diagramas de estados se dibujan para una sola clase, mostrando el comportamiento

de un solo objeto durante todo su ciclo de vida.

No se realizaran diagramas por cada clase del prototipo, pues no todos proporcionan información

relevante y que pueda ser interesante en el momento de la codificación.

Ilustración 30 Venta - diagrama de estados

Page 98: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

98

5.12 Diseño arquitectónico secuencia de ventanas estáticas

5.12.1 D.A.V.E. Control de inventario

Page 99: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

99

Ilustración 31 Control de inventario - secuencia de ventanas estáticas

5.12.2 D.A.V.E. Generar factura

Ilustración 32 Generación de facturas - secuencia de ventanas estáticas

5.12.3 D.A.V.E. Generación de informes

Ilustración 33 Generación de informes -- secuencia de ventanas estáticas

Page 100: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

100

5.12.4 D.A.V.E. Gestión de usuarios

Ilustración 34 Gestión de usuarios -- secuencia de ventanas estáticas

5.13 Diagramas de actividad

Page 101: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

101

Un diagrama de Actividad demuestra la serie de actividades que deben ser realizadas en un caso de

uso, así como las distintas rutas que pueden irse desencadenando.

5.13.1 Diagramas de actividad inicio de sesión

Ilustración 35 Inicio de sesión -- diagramas de actividad

5.13.2 Diagramas de actividad control de inventarios

Page 102: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

102

Ilustración 36 Control de inventarios -- diagramas de actividad

Page 103: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

103

5.13.3 Diagramas de actividad generación de facturas

Ilustración 37 Generación de facturas -- diagramas de actividad

Page 104: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

104

5.13.4 Diagramas de actividad generación de informes

Ilustración 38 Generación de informes -- diagramas de actividad

Page 105: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

105

5.13.5 Diagramas de actividad gestión de usuarios

Ilustración 39 Gestión de usuarios -- diagramas de actividad

Page 106: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

106

5.13.6 Diagramas de actividad gestión de clientes

Ilustración 40 Gestión de clientes -- diagramas de actividad

Page 107: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

107

5.14 Diagramas de componentes

Los Diagramas de Componentes ilustran las piezas del software, controladores embebidos, etc. que

conformarán un sistema. Un diagrama de Componentes tiene un nivel más alto de abstracción que

un diagrama de clase – usualmente un componente se implementa por una o más clases (u objetos)

en tiempo de ejecución. Estos son bloques de construcción, como eventualmente un componente

puede comprender una gran porción de un sistema.

Page 108: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

108

5.15 Modelo de distribución

Ilustración 41 Modelo de distribución del prototipo

5.16 Modelo de casos de prueba

El objetivo de los un casos de prueba es detallar una manera de probar el sistema, incluyendo las

entradas con las que se ha de probar, los resultados esperados y las condiciones bajo las que se

prueba.

Se tienen entonces múltiples situaciones o escenarios, que indican posibles caminos de los

algoritmos utilizados en el sistema, en los diferentes módulos.

Para probar todos los escenarios se utilizó una tabla donde se especifican todos los casos de prueba.

En esta tabla cada caso de prueba corresponde a una fila, y las columnas describen el identificador

del caso de prueba, el escenario, los valores de entrada y los resultados esperados.

Page 109: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

109

Identificador del caso

de prueba

Escenario Valores de entrada Resultados esperados

01 Realizar venta: - Cliente

- Tipo de venta

- Productos a vender

Factura en formato PDF

con:

- Datos del cliente

seleccionado

- Tipo de venta

- Todos los productos

seleccionados con sus

respectivos precios

- Numero consecutivo

de factura

02 Generar informe: Informe de ventas: Informe en formato

PDF con:

- Gráfico de barras con

el número de ventas de

los últimos 5 meses

- Los datos de las

ventas se recuperan a

partir de la totalización

de las ventas de un mes

en la base de datos.

03 Agregar cliente: - Información del

cliente:

- Nombre

- Nit

- Empresa

- Fecha de nacimiento

- Teléfono fijo

- Teléfono celular

- Mensaje de

confirmación

- Registro en la base de

datos en la tabla

clientes con todos los

datos introducidos en el

formulario.

Page 110: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

110

- Tipo de cliente

- Ciudad

- Departamento

- Contacto

04 Editar cliente: - Cliente seleccionado

Información a

modificar del cliente:

- Nombre

- Nit

- Empresa

- Fecha de nacimiento

- Teléfono fijo

- Teléfono celular

- Tipo de cliente

- Ciudad

- Departamento

- Contacto

- Mensaje de

confirmación

- Actualización en la

base de datos en la tabla

clientes con todos los

datos introducidos en el

formulario.

05 Eliminar cliente: Cliente seleccionado - Mensaje de

confirmación

- Borrado de registro en

la base de datos en la

tabla clientes con base

en el cliente

seleccionado

06 Cancelar venta - Cliente

- Tipo de venta

- Productos a vender

- Selección del botón de

cancelar

- Mensaje de

confirmación de

cancelación

- Ningún cambio en la

base de datos

Page 111: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

111

Tabla 4 Modelo de pruebas para la etapa inicial del sistema

07 Crear usuario - Nombre de usuario

- Login

- Clave

- Perfil

- Mensaje de

confirmación

- Registro en la base de

datos en la tabla

usuarios con todos los

datos introducidos en el

formulario.

08 Modificar usuario Usuario seleccionado - Mensaje de

confirmación

- Actualización de

registro en la base de

datos en la tabla

usuarios con todos los

datos introducidos en el

formulario.

09 Eliminar usuario Usuario seleccionado - Mensaje de

confirmación

- Borrado de registro en

la base de datos en la

tabla usuarios con base

en el usuario

seleccionado

10 Listar usuarios Selección de la opción

listar usuarios

Todos los usuarios

almacenados en la base

de datos

11 Listar clientes Selección de la opción

listar clientes

Todos los clientes

almacenados en la base

de datos

12 Inicio de sesión fallido Datos de inicio de

sesión erróneos

- Registro en la base de

datos del acceso fallido

- Mensaje de error de

inicio de sesión

Page 112: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

112

Page 113: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

113

6. DISEÑO DE LA BASE DE DATOS

Para el actual sistema, y basado en el diseño modular, se diseñó una base de datos que cumpliera

con las siguientes características:

- Almacenar información detallada de los clientes de la empresa

- Almacenar cada venta con un ID único para estadísticas y seguimiento

- Almacenar existencias de productos en inventario

- Almacenar usuarios con sus correspondientes permisos administrativos

- Almacenar productos de manera detallada, con diferentes presentaciones, sabores y precios

para distribuidor, mayorista y detal.

6.1 Tablas

6.1.1 Usuarios

Esta tabla tiene como objetivo almacenar la información correspondiente a los usuarios que podrán

utilizar el sistema. Contiene información relevante como nombre de usuario, clave y perfil, lo que

permite identificar a los usuarios de manera única y realizar una autenticación de los datos en el

inicio de sesión. Los campos establecidos para esta tabla pueden verse a continuación:

Nombre: nombre completo del usuario

Login: nombre de usuario para acceso al sistema

Password: clave de acceso al sistema

Perfil: perfil al que pertenece (Administrador, Vendedor, Contador)

6.1.2 Inventario

La tabla de inventario almacena los productos que se encuentran en el almacén o bodega de la

empresa, mediante un código de barras, y permitiendo la especificación del precio, el lote (con fines

administrativos) y el sabor. Los campos establecidos para esta tabla pueden verse a continuación:

Page 114: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

114

Id_producto: permite identificar de manera única la existencia del producto en cuestión (código de

barras)

Costo: identifica el precio

Lote: lote de producción al que pertenece

Sabor: especifica el sabor del producto

6.1.3 Inventario_en_consignacion

La tabla de inventario en consignación almacena uno a uno los productos que se encuentran en

consignación, mediante un código de barras, y permitiendo la especificación del costo, el lote (con

fines administrativos) y el sabor. También tiene en cuenta el cliente que posee los productos en

consignación. Los campos establecidos para esta tabla pueden verse a continuación:

Id_producto: permite identificar de manera única el producto en cuestión (código de barras)

Costo: contiene el precio del producto

Lote: lote de producción al que pertenece

Sabor: especifica el sabor del producto

Cliente: cliente al cual se le entregaron las mercancías en consignación

6.1.4 Productos

La tabla productos permite gestionar los productos que vende la empresa, identificándolos de

manera única con un ID de referencia, y almacenando información relevante como su nombre y

presentación. Adicionalmente, y con fines meramente gráficos también guarda un enlace a la

imagen del producto. Los campos establecidos para esta tabla pueden verse a continuación:

Id: identificación única para el producto (referencia)

Nombre: nombre del producto

Page 115: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

115

Presentación: tamaño y estilo de empaque

Descripción: detalle de su finalidad

Imagen: enlace a imagen del producto (útil para la interfaz gráfica)

6.1.5 Precios

La tabla precios permite diferenciar los precios que le corresponden a los clientes mayoristas,

distribuidores y detalles para poder elaborar la factura de manera pertinente. Los campos

establecidos para esta tabla pueden verse a continuación:

Tipo_cliente: identifica el tipo de cliente (mayorista, distribuidor, detal)

Id_producto: producto con el cual se relaciona el tipo de cliente

Precio: precio para el producto y el tipo de cliente anteriores

6.1.6 Clientes

El objetivo de la tabla de clientes es permitir almacenar la información importante de los clientes a

los cuales se les realizan las ventas. Los campos establecidos para esta tabla pueden verse a

continuación:

Nombre: nombre completo del cliente

Nit: número de identificación del cliente (cédula, tarjeta de identidad, cédula de extranjería, nit de

la empresa)

Empresa: nombre de la empresa de la cual es propietario (opcional)

Fecha_nacimiento: fecha de nacimiento (día/mes/año)

Departamento: ubicación geográfica por departamento

Ciudad: ubicación geográfica por ciudad

Forma_de_pago: especificá si paga de contado o a crédito

Page 116: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

116

Tipo: identifica el tipo de cliente (mayorista, distribuidor, detal)

Telefono_fijo: número telefónico de su domicilio

Telefono_celular: número telefónico móvil

Direccion: dirección del domicilio

Correo: correo electrónico

6.1.7 Ventas

La tabla de ventas almacena una a una las ventas que la empresa va realizando, guardando en cada

fila determinada la cantidad de un producto y agrupando por Id_venta, lo que permite tener un

control histórico de todas las ventas que se ejecutan a lo largo del uso del sistema en la empresa.

Los campos establecidos para esta tabla pueden verse a continuación:

Id_venta: identificador único de la venta

Nit_cliente: número de identificación del cliente (cédula, tarjeta de identidad, cédula de extranjería,

nit de la empresa)

Id_producto: producto que se compra

Cantidad: cantidad de productos que se compraron

Subtotal: valor del producto

Total: valor del producto*Cantidad

Numero_factura: consecutivo de facturación (requerimiento legal)

Descuento: identifica la cantidad (en pesos) de descuento (si lo hay) para una venta determinada

Costo_envio: especifica el costo del envío del (los) producto(s)

Vendedor: persona que realizó la venta

Fecha: fecha de la venta

Sabor: sabor del producto vendido

Consignación: indica si la venta fue del inventario en consignación

Page 117: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

117

6.1.8 Accesos

Con fines administrativos y estadísticos, la tabla accesos permite generar reportes de los accesos al

sistema por parte de los usuarios. La facilita la posibilidad de visualizar los intentos fallidos de

acceso, la dirección IP de dichos intentos y el nombre de usuario y clave usados para tal fin. Los

campos establecidos para esta tabla pueden verse a continuación:

Login: nombre de usuario

Fecha_hora: fecha y hora del acceso

Ip: dirección IP del usuario

Acceso: indicador de acceso (si/no)

Clave: muestra la clave que se utilizó en caso de que no haya podido acceder (con fines

estadísticos). En caso de que el acceso haya sido exitoso, no guarda clave

6.2 Modelo entidad-relación de la base de datos

Una base de datos relacional es un conjunto de una o más tablas estructuradas en registros (líneas) y

campos (columnas), que se vinculan entre sí por un campo en común, en ambos casos poseen las

mismas características como por ejemplo el nombre de campo, tipo y longitud; a este campo

generalmente se le denomina ID, identificador o clave.

La figura que se encuentra a continuación (ver ilustración 29), representa el modelo entidad relación

de las tablas que se establecieron en los puntos anteriores.

Page 118: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

118

Ilustración 42 Modelo Entidad Relación

Fuente: los autores

6.3 Diccionario de datos

Un diccionario de datos es un conjunto de metadatos que contiene las características lógicas y

puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre,

descripción, alias, contenido y organización.

El diccionario de datos establecido para la base de datos se encuentra a continuación:

Page 119: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

119

6.3.1 Accesos

Tabla 5 Acceso - Diccionario de datos

Campo Tipo Nulidad Comentario

login text No Nombre de usuario

fecha_hora datetime No Fecha y hora del acceso

ip varchar(17) No Dirección IP del usuario

acceso tinyint(1) No Indicador de acceso (si/no)

clave varchar(30) No Muestra la clave que se utilizo en caso de que no haya

podido acceder

6.3.2 Inventario

Tabla 6 Inventario - Diccionario de datos

Campo Tipo Nulidad Comentario

id_producto int(13) No Permite identificar de manera única la

existencia del producto en cuestión

costo float No Contiene el precio del producto

lote date No Lote de producción al que pertenece

sabor varchar(255) No Especifica el sabor del producto

6.3.3 Inventario_consignacion

Tabla 7 Inventario en consignación - Diccionario de datos

Campo Tipo Nulidad Comentario

id_producto int(13) No Permite identificar de manera única el

producto en cuestión (código de barras)

costo float No Contiene el precio del producto

lote date No Lote de producción al que pertenece

sabor varchar(255) No Especifica el sabor del producto

cliente varchar(255) No Cliente al cual se le entregaron las

Page 120: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

120

mercancías en consignación

6.3.4 Clientes

Tabla 8 Clientes - Diccionario de datos

Campo Tipo Nulidad Comentario

nombre varchar(255) No Nombre completo del cliente

nit varchar(255) No Número de identificación del cliente

empresa varchar(255) Si Nombre de la empresa de la cual es

propietario (opcional)

fecha_nacimiento date No Fecha de nacimiento

departamento text No Departamento donde está ubicado

ciudad text No Ciudad donde está ubicado

forma_de_pago tinyint(1) No Especifica si paga de contado o a

crédito

tipo text No Identifica el tipo de cliente

telefono_fijo varchar(30) No Número telefónico de su domicilio

telefono_celular varchar(30) No Número telefónico móvil

direccion varchar(255) No Dirección del domicilio

correo varchar(255) No Correo electrónico

puntos int(255) No Para plan de puntos

contacto varchar(255) No

nuevo tinyint(1) No Especifica si el usuario es nuevo

6.3.5 Precios

Tabla 9 Precios - Diccionario de datos

Campo Tipo Nulidad Comentario

tipo_cliente varchar(15) No Identifica el tipo de cliente

id_producto int(13) No Producto con el cual se relaciona

precio float No Precio para el producto

Page 121: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

121

6.3.6 Productos

Tabla 10 Productos - Diccionario de datos

Campo Tipo Nulidad Comentario

id int(13) No Identificación única para el producto

nombre varchar(255) No Nombre del producto

presentacion varchar(255) No Tamaño y estilo de empaque

descripcion varchar(255) No Detalle de su finalidad

imagen varchar(255) No Enlace a imagen del producto

6.3.7 Usuarios

Tabla 11 Usuarios - Diccionario de datos

Campo Tipo Nulidad Comentario

nombre varchar(20) No Nombre completo del usuario

login varchar(20) No Nombre de usuario para acceso al sistema

password varchar(20) No Clave de acceso al sistema

perfil text No Perfil al que pertenece (administrador, cajero,

supervisor)

6.3.8 Ventas

Tabla 12 Ventas - Diccionario de datos

Campo Tipo Nulidad Comentario

id_venta varchar(255) No Identificador único de la venta

nit_cliente varchar(255) No Número de identificación del cliente

id_producto varchar(255) No Producto que se compra

cantidad int(11) No Cantidad de productos que se

compraron

Page 122: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

122

subtotal int(11) No Valor del producto

total int(11) No Valor del producto*Cantidad

numero_factura int(11) No Consecutivo de facturación

(requerimiento legal)

descuento varchar(255) No Identifica la cantidad (en pesos) de

descuento (si lo hay) para una venta

determinada

estado varchar(255) No

vendedor varchar(255) No Persona que realizó la venta

fecha date No Fecha de la venta

sabor varchar(255) No sabor del producto vendido

consignacion varchar(255) No

6.4 Código SQL para generación de las tablas de la base de datos

El siguiente código SQL crea las tablas necesarias para el funcionamiento de la base de datos. Este

código está escrito bajo SQL estándar y para funcionar de forma correcta bajo el sistema

manejador de bases de datos MySQL versión 5.1.

[CÓDIGO SQL]

CREATE TABLE IF NOT EXISTS `accesos` (

`login` text NOT NULL,

`fecha_hora` datetime NOT NULL,

`ip` varchar(17) NOT NULL,

`acceso` tinyint(1) NOT NULL,

`clave` varchar(30) NOT NULL

)

CREATE TABLE IF NOT EXISTS `inventario` (

`id_producto` int(13) NOT NULL,

Page 123: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

123

`costo` float NOT NULL,

`lote` date NOT NULL,

`sabor` varchar(255) NOT NULL

);

CREATE TABLE IF NOT EXISTS `clientes` (

`nombre` varchar(255) NOT NULL,

`nit` varchar(255) NOT NULL,

`empresa` varchar(255) NOT NULL,

`fecha_nacimiento` date NOT NULL,

`departamento` text NOT NULL,

`ciudad` text NOT NULL,

`forma_de_pago` tinyint(1) NOT NULL,

`tipo` text NOT NULL,

`telefono_fijo` varchar(30) NOT NULL,

`telefono_celular` varchar(30) NOT NULL,

`direccion` varchar(255) NOT NULL,

`correo` varchar(255) NOT NULL,

`puntos` int(255) NOT NULL,

`contacto` varchar(255) NOT NULL,

`nuevo` tinyint(1) NOT NULL,

PRIMARY KEY (`nombre`),

FULLTEXT KEY `nombre` (`nombre`,`nit`,`empresa`,`ciudad`),

FULLTEXT KEY `nombre_2` (`nombre`,`empresa`,`ciudad`,`nit`),

FULLTEXT KEY `nombre_3` (`nombre`,`empresa`,`ciudad`,`nit`),

FULLTEXT KEY `nombre_4` (`nombre`,`nit`,`empresa`,`ciudad`)

)

Page 124: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

124

CREATE TABLE IF NOT EXISTS `precios` (

`tipo_cliente` varchar(15) NOT NULL,

`id_producto` int(13) NOT NULL,

`precio` float NOT NULL

);

CREATE TABLE IF NOT EXISTS `productos` (

`id` int(13) NOT NULL,

`nombre` varchar(255) NOT NULL,

`presentacion` varchar(255) NOT NULL,

`descripcion` varchar(255) NOT NULL,

`imagen` varchar(255) NOT NULL,

PRIMARY KEY (`id`)

)

CREATE TABLE IF NOT EXISTS `usuarios` (

`nombre` varchar(20) NOT NULL,

`login` varchar(20) NOT NULL,

`password` varchar(20) NOT NULL,

`perfil` text NOT NULL,

PRIMARY KEY (`login`)

)

CREATE TABLE IF NOT EXISTS `ventas` (

`id_venta` varchar(255) NOT NULL,

`nit_cliente` varchar(255) NOT NULL,

`id_producto` varchar(255) NOT NULL,

Page 125: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

125

`cantidad` int(11) NOT NULL,

`subtotal` int(11) NOT NULL,

`total` int(11) NOT NULL,

`numero_factura` int(11) NOT NULL,

`descuento` varchar(255) NOT NULL,

`estado` varchar(255) NOT NULL,

`vendedor` varchar(255) NOT NULL,

`fecha` date NOT NULL,

`sabor` varchar(255) NOT NULL,

`consignacion` varchar(255) NOT NULL

)

Llaves primarias de cada tabla:

ALTER TABLE `ventas` ADD PRIMARY KEY(`id_venta`);

ALTER TABLE `usuarios` ADD PRIMARY KEY(`login`);

ALTER TABLE `productos` ADD PRIMARY KEY(`id`);

ALTER TABLE `precios` ADD PRIMARY KEY(`id_producto`);

ALTER TABLE `clientes` ADD PRIMARY KEY(`nit`);

ALTER TABLE `inventario` ADD PRIMARY KEY(`id_producto`);

ALTER TABLE `accesos` ADD PRIMARY KEY(`ip`);

Page 126: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

126

7. DISEÑO E IMPLEMENTACIÓN DEL MÓDULO DE CONTROL DE

INVENTARIO

7.1 Descripción

El módulo inventario permite inspeccionar las existencias de producto que se encuentran registrados

en el prototipo del sistema, con el objetivo de que se tenga un apareamiento de datos que permita

controlar de manera concisa los elementos disponibles y vendidos. Se utiliza la identificación

mediante un sistema de código de barras que identifica a un producto de manera única y lo

diferencia de los demás. Dicho código de barras (Id) se almacena como información en la tabla de

inventarios y posteriormente en la de ventas una vez sea vendido.

El módulo de inventario permite agregar y visualizar las existencias del inventario, con el objetivo

de que se tenga claro, tanto del lado del sistema, como del lado del usuario cual es exactamente la

cantidad, sabores, presentación de producto actual, de los que están disponibles para la venta.

7.2 Archivos que componen el modulo

Un módulo es cada una de las partes de un programa que resuelve uno de los subproblemas en que

se divide el problema complejo original. Cada uno de estos módulos tiene una tarea bien definida y

algunos necesitan de otros para poder operar. Si bien un modulo puede entenderse como una parte

de un programa en cualquiera de sus formas y variados contextos, en la práctica es común

representarlos con procedimientos o archivos separados con una funcionalidad definida.

index.php: está encargado de mostrar una pantalla principal que permite al cliente visualizar

diferentes enlaces a otras pantallas con opciones como, ver el inventario, agregar existencias,

eliminar existencias... etc.

agregar_existencias.php: muestra al usuario una pantalla que permite adicionar existencias de

productos al inventario

agregar.php: establece la comunicación con la base de datos recibiendo información del archivo

"agregar_existencias.php" para agregar los elementos correspondientes

Page 127: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

127

eliminar_existencias.php: muestra al usuario la pantalla que permite eliminar existencias de

productos del inventario

eliminar.php: establece comunicación con la base de datos recibiendo información del archivo

"eliminar_existencias.php" para suprimir los elementos correspondientes

ver_inventario.php: muestra los productos en el inventario en forma de lista, agrupados por tipo de

producto y sabores bajo el parámetro cantidad.

detalle.php: muestra en detalle las existencias de un mismo producto clasificadas por sabores y

presentaciones, se su información proviene del archivo "ver_inventario.php"

7.3 Mapa del modulo

El mapa del módulo es un gráfico que se utiliza para planificar el diseño de la web, el mapa de este

modulo puede encontrarse en la ilustración que hay a continuación (ver ilustración 30)

Ilustración 43 Modulo inventario

Fuente: los autores

Page 128: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

128

7.4 Implementación

7.4.1 Index

7.4.1.1 Código

Este código fuente, está escrito únicamente en HTML , y su objetivo es mostrar las opciones del

módulo inventario por medio de enlaces. Adicionalmente y para efectos visuales, se muestra un

título con tamaño de letra más grande -en formato H1- (que indica que el módulo es el de

Inventario).

[CÓDIGO HTML ]

<HTML xmlns="http://www.w3.org/1999/xHTML ">

<head>

<meta http-equiv="Content-Type" content="text/HTML ; charset=utf-8" />

<title>Modulo Inventario</title>

</head>

<body style="background:url(bg.png)">

<h1>Modulo Inventario</h1>

<h3>

<a href="agregar_productos.php">Agregar Productos</a> |

<a href="ver_inventario.php">Ver Inventario</a>

<a href="eliminar_productos.php">Eliminar Productos</a>

<a href="eliminar_existencias.php">Eliminar Existencias</a>

</h3>

</body>

</HTML >

7.4.1.2 Prototipo gráfico

Ésta pantalla es el ingreso al módulo de inventario (ver ilustración 31). Permite al usuario

seleccionar diferentes opciones que ofrece el módulo.

Page 129: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

129

Ilustración 44 Index Módulo inventario

Fuente: prototipo de sistema de información para la empresa Creamax

7.4.2 Agregar existencias

7.4.2.1 Código

Agregar Existencias se hace -del lado del servidor- una lectura a la base de datos que permite

obtener el listado de productos con su respectiva presentación, para ser mostrada en un elemento

HTML de selección.

Consulta en la base de datos

[CÓDIGO PHP, SQL]

<select name="producto" id="producto"

onchange="seleccionarImagen(this.options[this.selectedIndex].value)">

<?

$con = mysql_connect('localhost', 'usuario', 'clave');

mysql_select_db("base_de_datos", $con);

$sql = "SELECT * FROM productos ORDER BY id";

$result = mysql_query($sql);

while ($row = mysql_fetch_array($result))

Page 130: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

130

{

echo '<option value="'.$row['id'].'">'.$row['nombre'].'

'.$row['presentacion'].'</option>';

}

?>

</select>

Presentación de la consulta

[CÓDIGO PHP, SQL]

<?php

session_start();

$producto = $_POST['producto'];

$sabor = $_POST['sabor'];

$fecha_lote = $_POST['fecha_lote'];

$cantidad = $_POST['cantidad'];

$costo = $_POST['costo'];

$con = mysql_connect('localhost', 'usuario', 'clave');

mysql_select_db("base_de_datos", $con);

$i = 0;

$j = intval($cantidad);

$sql = "INSERT INTO inventario VALUES ('$producto', '$costo', '$fecha_lote', '$sabor')";

while ($i < $j)

{

mysql_query($sql);

$i++;

}

echo "<HTML ><body style='background:url(bg.png)'>

<h1 align='center'>$i Producto(s) agregado(s) Exitosamente al Almacen </h1>

<p align='center'>Quizas desee<a href='agregar_existencias.php'> agregar otro producto al

inventario</a> | <a href='index.php'> Volver al menu principal</a></p>

</body></HTML >";

?>

7.4.2.2 Prototipo gráfico

Permite seleccionar existencias de productos para agregar al inventario (ver ilustración 32)

Page 131: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

131

Ilustración 45 Módulo inventario agregar existencias

Fuente: prototipo de sistema de información para la empresa Creamax

7.4.3 Ver inventario

7.4.3.1 Código

Visualización del inventario se construye mediante PHP, con ayuda de una tabla que contiene los

productos agrupados por id (GROUP BY id_producto) para posteriormente mostrarla como código

plano HTML .

[CÓDIGO HTML , PHP, SQL]

<table>

<tr style="background:url(1.png)">

<th scope="col">Imagen</th>

<th scope="col">Producto</th>

<th scope="col">Cantidad</th>

</tr>

<?php

Page 132: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

132

$sql = "SELECT sabor, id_producto, count(id_producto) as cantidad FROM inventario GROUP BY

id_producto";

$result = mysql_query($sql);

while($row = mysql_fetch_array($result))

{

$id_producto = $row['id_producto'];

$resultado_id = mysql_query("SELECT * FROM productos WHERE id = '$id_producto'");

$fila = mysql_fetch_array($resultado_id);

echo '<tr>

<td style="text-align: center"><a href="detalle.php?id_producto='.$id_producto.'"><img

src="'.$fila['imagen'].'" width="100" height="100" /></a></td>

<td><a href="detalle.php?id_producto='.$id_producto.'">'.$fila['nombre'].':

'.$fila['presentacion'].'</a></td>

<td>'.$row['cantidad'].'</td>

</tr>';

$total = $total + $cantidad * $precio_promedio;

}

?>

</table>

7.4.3.2 Prototipo gráfico

Permite visualizar los productos existentes en el inventario, con sus respectivas cantidades (ver

Ilustración 33)

Ilustración 46 Modulo inventario ver inventario

Page 133: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

133

7.4.4 Detalle

7.4.4.1 Prototipo gráfico

Muestra las características de cada uno de los productos que se encuentran en el momento en el

inventario (ver ilustración 34)

Ilustración 47 Modulo inventario Detalle

Fuente: prototipo de sistema de información para la empresa Creamax

Uno de los principales requisitos del cliente, es tener un sistema cuya interfaz gráfica sea basada en

ventanas (ver ilustración 35). A continuación, se muestran múltiples ventanas del módulo de

inventarios, se nota demás la posibilidad de minimizar y expandir cada una de las ventanas.

Page 134: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

134

Ilustración 48 Pantallas del modulo inventario

Fuente: prototipo de sistema de información para la empresa Creamax

Page 135: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

135

8. DISEÑO E IMPLEMENTACIÓN DEL MÓDULO DE VENTAS

8.1 Descripción

El módulo de ventas permite al usuario del sistema realizar ventas de productos existentes en el

inventario a clientes existentes en la base de datos, se utiliza un esquema de carrito de compras en el

cual se van agregando a una tabla los productos por cantidad, sabor y presentación. En cualquier

momento se podrá agregar un producto existente en el inventario a la venta, o eliminar un producto

existente de la misma; también es posible cancelar la venta en cualquier momento, ignorando todo

movimiento previamente realizado

Posterior a la selección del cliente al cual se le venderán los productos, se escogen los productos, y

se realiza la venta. En este paso, el sistema extrae los elementos del inventario (en la base de datos)

y los agrega a la tabla de ventas, en la cual se registrará con un Id único para esa venta, los

productos vendidos, el cliente, la fecha y otros detalles

En el momento en que se seleccione un producto cuya disponibilidad sea nula, el sistema avisará de

tal situación

Al finalizar la venta, se elabora una factura legal en formato PDF la cual puede ser guardada o

impresa y posteriormente entregada al cliente, enviada vía correo electrónico, o por mensajería

convencional.

8.2 Archivos que componen el modulo

index.php: muestra la pantalla principal que permite seleccionar al cliente que se le realizará la

venta, y la forma de pago

escoger_productos.php: muestra la pantalla que permite agregar productos a la venta, o eliminar

productos previamente seleccionados

agregar.php: adiciona productos a la venta actual, recibe los datos del archivo

escoger_productos.php contrastándolos con la base de datos para verificar consistencia con el

inventario

eliminar.php: suprime productos previamente seleccionados, para lo cual elimina filas de una

tabla temporal de selección.

Page 136: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

136

generar_factura.php: crea un archivo en formato PDF con los datos leídos desde la base de datos

en la tabla "Ventas" con el ID único de la venta actual.

8.3 Mapa del módulo

El mapa del módulo es un gráfico que se utiliza para planificar el diseño de la web, el mapa de este

puede encontrarse en la ilustración que hay a continuación (ver ilustración 36)

Ilustración 49 Mapa del modulo de generación de facturas

Fuente: los autores

8.4 Implementación

8.4.1 Index

8.4.1.1 Prototipo gráfico

Permite seleccionar el cliente, la forma de pago, el tipo de venta y muestra la fecha de la facturación

(ver ilustración 37)

Page 137: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

137

Ilustración 50 Index modulo de ventas

Fuente: prototipo de sistema de información para la empresa Creamax

8.4.2 Escoger productos

8.4.2.1 Código

Se almacena temporalmente un registro de productos seleccionados y se construye mediante PHP

una tabla que permite visualizarlos. Así como también, mostrar los detalles del producto

seleccionado (sabor, presentación, cantidad) y la opción de eliminarlo de la lista actual de productos

a vender.

[CÓDIGO HTML , PHP]

<table>

<tr>

<th scope="col">Eliminar</th>

<th scope="col">Imagen</th>

<th scope="col">Producto</th>

<th scope="col">Sabor</th>

<th scope="col">Cantidad</th>

<th scope="col">Precio Unitario</th>

<th scope="col">Descuento</th>

Page 138: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

138

<th scope="col">Precio Total</th>

</tr>

<?php

{

echo '<tr>

<td><form action="eliminar.php" method="post" onsubmit="return confirm(\'Estas seguro que

quieres eliminar este producto?\');">

<input type="hidden" value="'.$id_venta.'" id="id_venta" name="id_venta" />

<input type="hidden" value="'.$id_producto.'" id="id_producto" name="id_producto" />

<input type="hidden" value="'.$precio_promedio.'" id="valor_unitario"

name="valor_unitario" />

<input type="hidden" value="'.$cantidad.'" id="cantidad" name="cantidad" />

<input type="hidden" value="'.$row['sabor'].'" id="sabor" name="sabor" />

</form></td>

<td><img src="'.$fila['imagen'].'" width="100" height="100" /></td>

<td>'.$fila['nombre'].': '.$fila['presentacion'].'</td>

<td style="text-align: center">'.$row['sabor'].'</td>

<td style="text-align: center">'.$cantidad.'</td>

<td style="text-align: center">'.$precio_promedio.'</td>

<td style="text-align: center">'.($descuento).'</td>

<td style="text-align: center">'.(($cantidad*$precio_promedio)-$descuento).'</td>

</tr>';

$total = $total + $cantidad * $precio_promedio;

}

?>

8.4.2.2 Prototipo gráfico

Permite seleccionar los productos que se facturarán al cliente seleccionado (ver ilustración 38). Los

productos seleccionados se muestran en una tabla con una imagen de su presentación, nombre de

producto, sabor, cantidad, precio unitario, descuento y precio total. (ver ilustración 39).

Page 139: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

139

Ilustración 51 Realizando una venta modulo de ventas

Fuente: prototipo de sistema de información para la empresa Creamax

Ilustración 52 Productos en la venta actual modulo de ventas

Fuente: prototipo de sistema de información para la empresa Creamax

Page 140: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

140

8.4.3 Generar factura

8.4.3.1 Código

Se utilización los atributos de la clase que permite generar archivos PDF . Mediante los datos que se

tienen de la venta y el cliente -así como de la empresa- se completan los datos necesarios para crear

la factura. Adicionalmente, la clase permite distribuir los elementos en el archivo de manera visual

con la opción:

[CÓDIGO PHP]

$this->Cell(x); Donde x es un numero entero. Que indica la distancia con el elemento previo.

function Header()

{

$this->SetFontSize(13);

$this->Cell(10,100,'CREAMAX NIT: 6.199.340-6',0);

$this->Ln(5);

$this->Cell(10,100,'CALLE 46 No. 25-48 Barrio: Nuevo Principe - Tuluá. Tel 2-

2256901',0);

$this->SetFont('Arial','',6);

$this->Image('http://www.Creamax.com.co/sistema/Creamax.jpg',10,8,80); // LOGO

$this->Cell(145);

$this->Cell(0,10,'RESPONSABLES DE IVA REGIMEN COMUN',0,1,'R');

$this->Cell(145);

$this->Cell(0,10,'RESOLUCION DIAN No 210000033462 DE

2009/10/14',0,1,'R');

$this->Cell(145);

$this->Cell(0,10,'DEL No 1 AL 2000 FACTURA ELABORADA POR

COMPUTADOR',0,1,'R');

$this->Cell(145);

$this->Cell(0,10,'AGENTES RETENEDORES DE IVA PARA REGIMEN

SIMPLIFICADO',0,1,'R');

$this->Ln(15);

$this->SetFont('Arial','',12);

$this->Cell(145);

$this->Cell(40,6,'FACTURA DE VENTA',0,1,'C');

$this->Cell(145);

$this->Cell(45,6,'No. '.$numero_factura,1,1,'C');

//$this->Ln(25);

$this->SetFont('Arial','',11);

$this->Cell(145);

$this->Cell(0,10,'CONTACTO: '.$contacto,0,1,'R');

Page 141: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

141

8.4.3.2 Prototipo gráfico

Genera una factura en formato PDF (ver ilustración 40). La factura generada permite ser

descargada. Esta factura es visualizada gracias a que el lector de PDF acrobat está embebido en el

navegador.

Ilustración 53 Factura generada Modulo de ventas

Fuente: prototipo de sistema de información para la empresa Creamax

Page 142: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

142

9. DISEÑO E IMPLEMENTACIÓN DEL MÓDULO DE CREACIÓN DE

INFORMES

9.1 Descripción

Módulo encargado de entregar informes correspondientes a las estadísticas de uso del sistema con

las siguientes posibilidades:

- Informar acerca de los accesos al sistema por parte de los usuarios, así como intentos

fallidos de acceso. Clasificados por un período de tiempo determinado

- Informar acerca de la cantidad de ventas en un período de tiempo determinado y los

productos que más se venden

- Informar acerca de los clientes más fieles, así como los menos fieles

- Informar acerca del sabor más deseado, y el menos deseado

- Informar acerca de las presentaciones que tienen mayor acogida en el mercado

- Informar acerca de otros datos de interés acerca de los clientes, las ventas, o el uso del

sistema por parte de los usuarios, todo, personalizable por el usuario

Los informes se generan en formato PDF y permiten ser descargados para su posterior

almacenamiento. Adicionalmente como los datos son almacenados, estos informes pueden volver a

ser generados solicitando la información desde la base de datos.

9.2 Archivos que componen el módulo

index.php: muestra la pantalla principal que permite al usuario visualizar las opciones que tiene

para solicitar informes.

accesos.php: entrega al usuario un informe en formato PDF de los accesos al sistema

ventas.php: muestra al usuario un informe en formato PDF de las ventas

clientes.php: permite al usuario acceder a un informe en formato PDF de las estadísticas de

clientes

Page 143: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

143

sabores.php: encargado de mostrar al usuario un informe en formato PDF de los sabores que más

obtienen acogida en el mercado

presentaciones.php: encargado de mostrar al usuario un informe en formato PDF de las

presentaciones que más obtienen acogida en el mercado

9.3 Mapa del módulo

El mapa del módulo es un gráfico que se utiliza para planificar el diseño de la web, el mapa de este

puede encontrarse en la ilustración que hay a continuación (ver ilustración 41)

Ilustración 54 Mapa modulo de creación de informes

9.4 Implementación

9.4.1 Index

9.4.1.1 Prototipo gráfico

Pantalla principal del módulo de informes (ver ilustración 42), a través de esta se accede a los

diferentes informes que el sistema puede generar

Page 144: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

144

Ilustración 55 Modulo de informes Index

Fuente: prototipo de sistema de información para la empresa Creamax

9.4.2 Acceso

9.4.2.1 Prototipo gráfico

Este informe muestra al administrador los accesos que han ocurrido en el sistema, también los

intentos fallidos en el proceso de autenticación del usuario (ver ilustración 43). Es importante

resaltar que el administrador debe tener la capacidad de escoger los intervalos de tiempo de donde

se recopilará esta información. Inicialmente este informe muestra solamente mediante texto el

nombre de usuario, la fecha y la hora y la clase de evento que ocurrió.

Page 145: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

145

Ilustración 56 Modulo de informes Acceso al sistema

Fuente: prototipo de sistema de información para la empresa Creamax

9.4.3 Clientes

Este informe muestra un listado de los clientes que se encuentran registrados en el sistema, además

de la siguiente información: ventas totales, cantidad de pedidos realizados, producto preferido.

Este informe es de gran utilidad para el supervisor pues le permite conocer en qué productos puede

hacer hincapié en las ventas de forma individual para cada cliente.

Page 146: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

146

9.4.3.1 Prototipo gráfico

Ilustración 57 Módulo de informes Clientes

Fuente: prototipo de sistema de información para la empresa Creamax

9.4.4 Presentaciones

La finalidad de estos informes es mostrar un comparativo entre productos según un determinado

criterio. En este caso se muestra como sería un informe basado en la comparativa de ventas de un

mismo producto pero en distintas presentaciones, es decir, en distinto empaque o cantidad de

contenido del contenedor, a lo largo de un determinado tiempo. Estos informes son para efectos del

prototipo e ilustrar como se verían, su funcionalidad como tal aún no está implementada en el

sistema de información.

Page 147: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

147

9.4.4.1 Prototipo gráfico

Ilustración 58 Módulo de informes Diversas presentaciones de un producto

Fuente: prototipo de sistema de información para la empresa Creamax

9.4.5 Ventas

Este informe muestra mediante un gráfico de barras las ventas que se han realizado por medio del

sistema haciendo un comparativo entre diferentes meses. En el momento solo está contemplado

para mostrar los 4 meses anteriores al actual. El criterio de comparación es el precio total de todos

los productos vendidos en el mes. Ver ilustración 46.

Page 148: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

148

9.4.5.1 Prototipo gráfico

Ilustración 59 Modulo de informes Ventas realizadas

Fuente: prototipo de sistema de información para la empresa Creamax

Page 149: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

149

10. DISEÑO E IMPLEMENTACIÓN DEL MÓDULO DE GESTIÓN DE

USUARIOS

10.1 Descripción

El módulo de gestión de usuarios permite al administrador establecer los usuarios y permisos de

acceso al sistema. Entre las opciones a configurar se encuentran:

- Información personal: nombre, Apellidos, nombre de usuario, Fecha de nacimiento, Sexo

- Correo electrónico: al cual se envía información relevante de modificaciones en el sistema

- Claves personales de acceso al sistema y modificación de datos

- Permisos de usuarios (si es un usuario administrador): permite modificar los permisos de

otros usuarios en el sistema

10.2 Archivos que componen el modulo

index.php: muestra la interfaz principal que permite al usuario visualizar las opciones que tiene

para realizar cambios en la configuración del sistema.

modificar_info_personal.php: permite modificar la información personal

modificar_usuarios.php: permite al administrador modificar usuarios

claves.php: facilita al administrador hacer cambios masivos de contraseña

permisos.php: facilita al administrador hacer cambios masivos de permisos

10.3 Mapa del módulo

El mapa del modulo es un gráfico que se utiliza para planificar el diseño de la web, dicho mapa

puede encontrarse en la ilustración que hay a continuación (ver ilustración 47)

Page 150: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

150

Ilustración 60 Mapa del modulo de gestión de usuarios

Fuente: los autores

10.4 Implementación

10.4.1 Modificar información personal

10.4.1.1 Prototipo gráfico

Cada usuario tiene la opción de cambiar su información personal básica, como nombre para mostrar

(No es igual al nombre de usuario) y fecha de nacimiento.

Ilustración 61 Modificar información personal Módulo gestión de usuarios

Page 151: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

151

Fuente: prototipo de sistema de información para la empresa Creamax

10.4.2 Permisos

10.4.2.1 Prototipo gráfico

El administrador asigna los perfiles para cada uno de los usuarios al momento de la creación, pero

también puede reasignar perfiles una vez el usuario ha sido generado.

Ilustración 62 Modificar perfiles Modulo gestión de usuarios

Fuente: prototipo de sistema de información para la empresa Creamax

10.4.3 Claves

10.4.3.1 Prototipo gráfico

La siguiente pantalla permite modificar la clave personal de acceso al sistema, solicitando la clave

anterior.

Page 152: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

152

Ilustración 63 Cambio de claves de acceso Modulo gestión de usuarios

Fuente: prototipo de sistema de información para la empresa Creamax

Page 153: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

153

11. DISEÑO E IMPLEMENTACIÓN DEL MÓDULO DE GESTIÓN DE CLIENTES

11.1 Descripción

El módulo –Clientes– permite al usuario gestionar los clientes (a quienes se les venderá los

productos) de manera tal que pueda realizar las siguientes operaciones:

- Agregar un cliente: adiciona un cliente a la base de datos, esta funcionalidad solicita

al usuario los datos necesarios del cliente con el objetivo que éstos puedan ser

utilizados posteriormente en la creación de la factura

- Eliminar un cliente: suprime un cliente de la base de datos, en tal caso, el módulo

ofrece la lista de todos los usuarios, se selecciona uno de ellos y luego se elimina

- Modificar un cliente: cambia los datos existentes de un cliente, como su teléfono,

dirección de residencia, correo electrónico.

- Buscar clientes: busca un cliente con base en cualquier dato que se tenga de él,

como el nombre, el apellido, la ciudad.

La información se almacenará en la tabla "clientes" en la base de datos y permitirá tener un

control sobre los clientes de la empresa guardando información relevante para la empresa,

como por ejemplo, la información de contacto, tipo de cliente (mayorista, detal,

distribuidor).

11.2 Archivos que componen el módulo

index.php: encargado de mostrar una pantalla principal con enlaces a las pantallas de

agregar, editar y eliminar.

agregar.php: encargado de mostrar el formulario al usuario para la correspondiente

agregación de un cliente

agregar_cliente.php: encargado de recibir los datos enviados por el formulario existente

en "agregar.php" y realizar operaciones con la base de datos

Page 154: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

154

editar.php: encargado de mostrar el formulario al usuario para la correspondiente edición

de un cliente

editar_cliente.php: encargado de recibir los datos enviados por el formulario existente en

"editar.php" y realizar operaciones con la base de datos

eliminar.php: encargado de mostrar el formulario al usuario para la correspondiente

eliminación de un cliente

eliminar_cliente.php: encargado de recibir los datos enviados por el formulario existente

en "eliminar.php" y realizar operaciones con la base de datos

11.3 Mapa del modulo

Ilustración 64 Mapa modulo de gestión de clientes

Fuente: los autores

11.4 Implementación

11.4.1 Index

11.4.1.1 Prototipo gráfico

Permite seleccionar entre buscar, agregar, editar y eliminar clientes (ver ilustración 52)

Page 155: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

155

Ilustración 65 Index módulo de gestión de clientes

Fuente: prototipo de sistema de información para la empresa Creamax

11.4.2 Buscar

11.4.2.1 Código

La función encargada de proveer la búsqueda de clientes, relaciona un término de búsqueda con los

posibles campos de un registro de la tabla Clientes, de tal manera que si hay alguna concordancia, la

agregará a la lista de retorno. Dicha lista de retorno, posteriormente se entrega como HTML y se

muestra en la página del lado del usuario.

[CÓDIGO SQL, PHP]

<?php

if($terminos == "")

echo "Para realizar una búsqueda, escribe los términos que deseas buscar y haz click en

BUSCAR";

else

{

$con = mysql_connect('localhost', 'usuario', 'clave');

mysql_select_db("base_de_datos", $con);

Page 156: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

156

$sql = "SELECT * FROM clientes WHERE nombre LIKE '%".$terminos."%' OR ciudad LIKE

'%".$terminos."%' OR empresa LIKE '%".$terminos."%' OR nit LIKE '%".$terminos."%' OR

correo LIKE '%".$terminos."%' OR tipo LIKE '%".$terminos."%' OR telefono_celular LIKE

'%".$terminos."%' OR departamento LIKE '%".$terminos."%'";

$result = mysql_query($sql);

$numero_de_resultados = mysql_num_rows($result);

if ($numero_de_resultados == 0)

echo "No hay resultados para las palabras clave escogidas";

else

{

echo 'Resultados para los terminos de busqueda:'.$terminos.';

while($row = mysql_fetch_array($result))

{

echo $nombre_cliente;

}

}

}

11.4.2.2 Prototipo gráfico

Permite buscar un cliente utilizando un término de búsqueda (ver ilustración 53)

Ilustración 66 Buscar módulo de gestión de clientes

Fuente: prototipo de sistema de información para la empresa Creamax

Page 157: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

157

11.4.3 Agregar cliente

Mediante esta funcionalidad se solicitan los datos necesarios para crear un nuevo cliente en la base

de datos utilizando un formulario, que posteriormente será enviado al archivo Agregar.php Como lo

indica el parámetro -action- del elemento -form-. action=”agregar.php”

[CÓDIGO HTML ]

<form id="agregar_cliente" name="agregar_cliente" method="post" action="agregar.php">

<input type="text" name="nombre" id="nombre" />

<input type="text" name="nit" id="nit" />

<input type="text" name="empresa" id="empresa" />

<input type="text" name="fecha_nacimiento" id="fecha_nacimiento" />

<select name="departamento" id="departamento">

<option value="Amazonas">Amazonas</option>

<option value="Valle Del Cauca">Valle Del Cauca</option>

</select>

<input type="text" name="ciudad" id="ciudad" />

<input type="text" name="forma_de_pago" id="forma_de_pago" />

<input type="text" name="tipo_cliente" id="tipo_cliente" />

<input type="text" name="telefono_fijo" id="telefono_fijo" />

<input type="text" name="telefono_celular" id="telefono_celular" />

<input type="text" name="direccion" id="direccion" />

<input type="text" name="correo" id="correo" />

<input type="text" name="puntos" id="puntos" />

<input type="submit" id="enviar" value="Crear Cliente" />

</form>

11.4.3.1 Prototipo gráfico

Permite agregar un cliente (ver ilustración 54)

Page 158: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

158

Ilustración 67 Crear cliente módulo de gestión de clientes

Fuente: prototipo de sistema de información para la empresa Creamax

Ilustración 68 Pantallas módulo gestión de clientes

Page 159: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

159

12. DOCUMENTACIÓN DEL SISTEMA, MANUALES DE USUARIO

12.1 Iniciar sesión en el sistema

Nota: ingrese al sistema desde un navegador web actualizado, de lo contrario esto podría

incurrir en incorrectos funcionamientos del sistema. Los navegadores soportados son

Chrome y Mozilla Firefox

12.1.1 Iniciar sesión en el sistema

Para iniciar sesión en el sistema se debe conocer el nombre de usuario y la contraseña,

recuerde que si no conoce su contraseña debe leer el punto anterior presente en este

documento.

Para su inicio de sesión tramite los campos requeridos para ello, así como se muestra en la

ilustración 59. En la figura se encuentra demarcado un campo con un elipse distinguido con

la letra A, allí usted debe tramitar su nombre de usuario, el cual corresponde a su correo

electrónico, después de ello debe digitar su contraseña en el campo demarcado con la letra

B, posterior a estos dos pasos debe presionar el botón de ingresar demarcado en la imagen

con la letra C, así:

Ilustración 69 Inicio de sesión

Page 160: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

160

Fuente: prototipo de sistema de información para la empresa Creamax

Si ha realizado todo bien, es decir, si ha ingresado correctamente su correo electrónico

(Nombre de usuario) además de su contraseña de forma correcta, usted obtendrá el acceso

al sistema de forma automática y quedará habilitado inmediatamente para realizar las

acciones permitidas en el sistema. Para ello se recomienda apoyarse en este manual.

12.2 Localización del menú de ventas

Nota: para realizar una venta debe primero crear un cliente, dado que todas las ventas

realizadas deben estar asociadas ; Se recomienda que para crear un cliente, en caso tal de

que lo necesite, se dirija a la sección de gestión de clientes, presente más adelante en este

documento.

Después de realizar su correspondiente inicio de sesión el sistema cargará para usted un

menú correspondiente a su perfil de usuario, recuerde que su cuenta de usuario es personal

y completamente privada, no tendrá nadie más acceso a ella.

En la ilustración 60 se muestra la localización del enlace hacia el módulo correspondiente

de ventas

Ilustración 70 Localización de acceso al menú ventas

Page 161: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

161

Fuente: prototipo de sistema de información para la empresa Creamax

El módulo de ventas se refiere a la creación de una nueva venta. La ilustración 61 muestra

todo lo correspondiente al mismo; ahora se pasará a explicar de forma individual las

incidencias marcadas en la figura.

Ilustración 71 Creación de una nueva venta

Fuente: prototipo de sistema de información para la empresa Creamax

A. Se refiere al producto que se adicionará a la venta

B. Se refiere al sabor del producto que se adicionará a la venta

C. Cantidad de producto seleccionado que se adicionará

D. Precio unitario del producto

E. Descuentos sobre el valor del producto

F. Botón para agregar ese producto a la venta actual

Page 162: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

162

12.3 Gestión de clientes

Formulario de creación y/o modificación de la información de un cliente

El formulario consta del tramitado de los más importantes datos del cliente, este formulario

será idéntico, tanto para la edición, como para la creación de un cliente; Además este

formulario también es aplicable a la edición del perfil del usuario personal.

Nota: tenga en cuenta los campos marcados con un asterisco (*), estos campos son

requeridos para crear el registro del cliente.

La ilustración 62 muestra el formulario de creación y/o modificación de un cliente, a

continuación se explicaran las secciones demarcadas con letras:

A. Nombre del cliente

B. El NIT o razón social del cliente

C. Nombre de la empresa a la que pertenece el cliente

D. Fecha de nacimiento

E. Departamento donde está ubicado el cliente

F. Ciudad donde está ubicado el cliente

G. Forma de pago usual del cliente (Contado – Crédito)

H. Tipo de cliente

I. Número del teléfono fijo

J. Número del teléfono móvil o celular de la persona

K. Dirección detallada de la persona

L. Correo electrónico de contacto con el cliente

M. Puntos (Si ingresa bajo algún programa especial de compra) (Aun no implementado)

N. Información adicional para realizar contacto con el cliente

O. Botón para crear el cliente

Page 163: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

163

Ilustración 72 Formulario de creación de la información de un cliente

Fuente: prototipo de sistema de información para la empresa Creamax

12.4 Modificación de datos personales y correo electrónico

A continuación se expondrán algunas utilidades brindadas por el sistema de información de

Creamax con el objetivo de modificar la información personal y el correo electrónico para

uso del sistema.

Page 164: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

164

Modificar datos personales:

Ilustración 73 Formulario de creación de la información de un cliente

Fuente: prototipo de sistema de información para la empresa Creamax

12.4.1 Consultas básicas del inventario de productos en detalle

El sistema Creamax le brinda una herramienta de consulta de inventario de uno o varios

artículos sobre los cuales el usuario desee conocer las existencias registradas en el sistema.

Para ello, el usuario deberá hacer click en la imagen del producto que desee visualizar a

detalle. El sistema mostrará las existencias en el inventario del producto seleccionado.

Page 165: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

165

Ilustración 74 Consulta básica de los productos disponibles

Fuente: prototipo de sistema de información para la empresa Creamax

En la ilustración 65 se puede observar la información que se carga con respecto al artículo

deseado, las cantidades, la referencia, el nombre del artículo, el sabor, la presentación y las

cantidades existentes registradas en el sistema para este artículo.

Ilustración 75 Información en detalle del producto

Fuente: prototipo de sistema de información para la empresa Creamax

Page 166: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

166

13. CONCLUSIONES Y RECOMENDACIONES

- La creación del prototipo del sistema de información permitió una mayor administración

sobre los datos que eran generados en el proceso de venta de la empresa Creamax, logrando

tener un mayor control sobre la información de sus clientes, las ventas realizadas e

inventarios. Esto además facilitó a las personas encargadas de tomar decisiones, conocer en

cualquier momento el estado de los procesos de la organización confiados al sistema.

- El módulo de ventas agilizó los tiempos que tardaba un operario en realizar un pedido,

calculado en un promedio de diez minutos por solicitud, además permitió conocer de

manera oportuna las existencias de los productos registrados en el sistema que solicitaba el

cliente. Ahora el tiempo que requiere el proceso tarda en promedio tres minutos.

- En el módulo de creación de informes es importante destacar que se tuvieron dificultades

al momento de determinar qué documentos eran los más significativos para la empresa.

Este tipo de problemáticas ocurren de forma común en el desarrollo de proyectos de

software. Para solventarlo se propuso evaluar la importancia de los informes. Los más

relevantes se tomaron para la primera iteración y los siguientes se optaron para su

implementación en etapas posteriores.

- El módulo de clientes disminuyó la carga operativa y el tiempo invertido en búsquedas de

los usuarios debido a que ahora el prototipo del sistema de información se encarga de

gestionar los datos de los clientes y entre sus características se encuentra permitir la

realización de búsquedas, simplificando las operaciones y tiempos previstos para este

procedimiento.

- La creación y utilización del manual de usuario en el proceso de revisión del cliente

permitió la apropiación del sistema por parte de los usuarios, quienes en principio se

mostraban resistentes a la adaptación debido principalmente a su inexperiencia con el uso

de sistemas de información.

- Una de las bondades que se encontró en el uso del manual fue la presentación de una guía

escrita y gráfica acerca del uso de cada una de las funcionalidades del sistema, permitiendo

Page 167: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

167

a los usuarios tener una fuente de referencia en cualquier momento. De esta manera, se

pude afirmar que los manuales los manuales constituyen un aspecto fundamental en la

apropiación y evaluación del prototipo por parte del cliente.

Page 168: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

168

14. BIBLIOGRAFÍA

Ambler, S. 2005. The elements of UML 2.0 Style. New York : Cambridge University Press, 2005.

Beck, Kent. 2009. Extreme Programming. [En línea] Septiembre de 2009.

http://www.extremeprogramming.org/.

—. 1999. Extreme Programming Explained. 1999. 0201616416.

Derbaix, François. 2009. OpenBravo vs Microsoft Dynamics NAV. Opiniones e Internet. [En

línea] Octubre de 2009. http://francoisderbaix.com/2008/06/12/openbravo-vs-microsoft-dynamics-

nav/.

DesarrolloWeb.com. 2010. Breve historia de PHP. [En línea] Enero de 2010.

http://www.desarrolloweb.com/articulos/436.php.

Garey. 2007. Software Portability: Weighing Options, Making Choices. The CPA Journal. [En

línea] 2007. http://www.dr-gail.org/upload/SoftwarePortability.pdf.

Garrett, Jesse James. 2005. Ajax: A New Approach to Web Applications. [En línea] Febrero de

2005. http://www.adaptivepath.com/publications/essays/archives/000385.php.

—. 2005. Ajax: A New Approach to Web Applications. Adaptative Path. [En línea] Febrero de

2005. http://www.adaptivepath.com/ideas/essays/archives/000385.php.

GS1 Colombia. 2009. Codigo de Barras. [En línea] Noviembre de 2009.

http://www.gs1pa.org/estandares/barras.html.

—. 2010. Reglas de asignación GTIN. [En línea] Enero de 2010.

http://www.gs1co.org/documentos/gtin/GS1_reglas_asignacion_GTIN.pdf.

Ingeniería del software. Sommerville, Ian. 2005. s.l. : Pearson educación, 2005. 84-7829-074-5.

Instituto colombiano de codificacion y automatizacion comercial. 1993. Codigo de barras &

edi: Dos herramientas logisticas. Bogotá : s.n., 1993.

International Bussines Machine. 2009. New to XML. [En línea] Noviembre de 2009.

http://www.ibm.com/developerworks/xml/newto/#whatxml.

Kuhn, Markus. UTF-8 and Unicode FAQ for Unix/Linux. [En línea]

http://www.cl.cam.ac.uk/~mgk25/unicode.html.

Page 169: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

169

Laudon, Ken y Laudon, Jane. 2004. Sistemas de Información Gerencial. s.l. : Prentice Hall, 2004.

Microsoft. 2009. AJAX: The Oficial Microsoft ASP.NET Site. [En línea] Octubre de 2009.

http://ajax.asp.net/.

Mooney. 1997. Bringing Portability to the Software Process. West Virginia University. Dept. of

Statistics and Computer Science. [En línea] 1997.

http://www.cs.wvu.edu/~jdm/research/portability/reports/TR_97-1.pdf.

Mozilla Developer Center. 2009. Concepto de JavaScript. [En línea] Noviembre de 2009.

https://developer.mozilla.org/es/Gu%C3%ADa_JavaScript_1.5/Concepto_de_JavaScript#.C2.BFQu

.C3.A9_es_JavaScript.3F.

Network Working Group. 2010. UTF-8, a transformation format of ISO 10646. [En línea] Febrero

de 2010. http://www.rfc-editor.org/rfc/rfc3629.txt.

Nexen. 2009. Evolution de PHP sur Internet (September 2008). [En línea] Noviembre de 2009.

http://www.nexen.net/chiffres_cles/phpversion/.

—. 2010. PHP stats for September 2008. [En línea] Enero de 2010.

ttp://www.nexen.net/chiffres_cles/phpversion/18780-php_statistics_for_august_2008.php.

OpenBravo. Open Bravo POS: Punto de venta en software libre. [En línea]

http://www.openbravo.com/es/product/pos/.

Pérez, Javier Eguíluz. 2007. Introducción a AJAX. s.l. : Librosweb, 2007.

Pressman, R. 2005. Software Engineering a practitioner's approach. New York : McGraw-Hill,

2005.

Steinberg, Daniel y Palme, Daniel. Extreme Software Engineering. s.l. : Pearson Educatio. ISBN

0-13-047381-2.

Surveyer, Jacques. 2004. Featuring: RIAs are designed to deliver 8A's Software Simply. The open

Sourcery. [En línea] 2004. http://theopensourcery.com/xmlria.htm.

Un método de ingeniería inversa de código Java hacia diagramas de secuencias de UML 2.0.

Zapata, C y Ochoa, O. 31-42, s.l. : Revista de Escuelda de Ingeniería de Antioquía, Vol. 9.

UNIVERSIDAD SANTA MARIA. 2009. CURSO DE LA ESCUELA DE ADMINISTRACIÓN

Y CONTADURÍA. Control de inventarios. [En línea] Noviembre de 2009.

http://www.investigacion-operaciones.com/Inventario-1.htm.

W3C. 2009. Extensible Markup Language (XML). [En línea] Diciembre de 2009.

http://www.w3.org/XML/.

Page 170: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

170

—. 2010. Extensible Markup Language (XML) 1.0 (Fifth Edition. W3C Recommendation 26

November 2008. [En línea] Enero de 2010. http://www.w3.org/TR/2008/REC-xml-20081126/.

—. 2010. W3C DOM -Introduction. [En línea] Febrero de 2010.

http://www.quirksmode.org/dom/intro.html.

—. 2009. XMLHttpRequest. W3C Working Draft 19 November 2009. [En línea] Diciembre de

2009. http://www.w3.org/TR/XMLHttpRequest/.

Web Developers. 2009. Programming languages on the internet. [En línea] Octubre de 2009.

http://www.webdevelopersnotes.com/basics/languages_on_the_internet.php3.

Weitzenfeld, Alfredo. 2005. Ingenieria de software orientada a objetos con uml, java e internet.

Mexico : International Thomson Editores, 2005. 9706861904.

Welling, Luke y Thomson, Laura. 2001. Php And Mysql Web Development. s.l. : Pearson

Education (Us), 2001.

Wiegers, Karl. 1997. Software Development Magazine. 1997.

WinPOS. 2009. Sistema POS Control, Punto de venta. [En línea] Julio de 2009.

http://www.sispos.com/winpos.htm.

Page 171: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

171

15. ANEXOS

Anexo 1 Entrevista gerente de Creamax

Fecha: 18 de Octubre de 2009

Nombre: Abdulrain Matamba Perdomo

Cargo: Gerente

1) ¿A qué se dedica su empresa?

A entregar al pueblo colombiano productos nutricionales que permitan el mejoramiento de la salud

y la nutrición, en paralelo con el deporte y el alto rendimiento.

En general, nuestros productos son proteínas, creatinas, ganadores de peso y reductores

2) ¿Cuál es el sistema o método de venta actual?

Se lleva la información de los clientes en libros físicos y el inventario y facturación en hojas de

cálculo de Microsoft Excel. Tenemos una plantilla que nos permite introducir los datos del cliente

que tomamos desde los libros y luego seleccionar los productos escribiéndolos línea a línea. Un

proceso algo tedioso y que nos quita mucha productividad.

Adicionalmente hay que tener en cuenta el consecutivo y guardar todas las facturas impresas para

poder buscar información posteriormente.

3) ¿Cuántas personas (aproximadamente) usarían directamente el sistema?

3 personas.

a. El administrador

b. El vendedor

c. El contador

4) ¿Qué necesidades posee en este momento, por las cuales requiere un sistema?

Requerimos facilitar nuestro proceso de facturación y ventas, con el objetivo de optimizar nuestro

tiempo y productividad para proveer un mejor servicio, y llegar a una mayor cantidad de clientes, en

el momento en que sea una preocupación menos, el hecho de vender.

5) De esas necesidades, especifique 10 de manera prioritaria:

Page 172: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

172

a. – Facturación automatizada

b. – Inventarios reales

c. – Base de datos de clientes

d. – Almacenamiento de facturas en el sistema

e. – Que el sistema pueda ser utilizado a través de internet

f. – Que se generen rótulos para envío de cajas

g. – Facturas en formato digital (PDF ) para mayor portabilidad y posibilidad de impresión

h. – Que todos los datos de la empresa sean digitalizados para ahorrar papel

i. – Que se generen informes y reportes estadísticos de ventas y otros datos

j. – Que se procese el I.V.A.

6) ¿Por qué optar por un sistema? ¿Cuáles son los problemas puntuales que se desean

resolver?

La eficiencia y el costo de tener a varias personas a cargo de los papeles y las hojas de cálculo.

Principalmente el tiempo que toma

7) ¿Qué expectativas tiene sobre el sistema?

Que nos optimice el tiempo y nos aumente la productividad, así como automatizar la gran mayoría

de los procesos actuales.

8) Califique con prioridad de 1 a 5 (siendo 5 la más importante) las siguientes características

del sistema

a. Rápido - 2

b. Fácil de manejar - 3

c. Presentación agradable - 4

d. Portable - 1

9) Ha probado alguna(s) alternativa(s) de software? Cuál es?

No, ninguna

a. ¿Se han ajustado a sus necesidades?

----

Page 173: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

173

Resumen de la información suministrada por el señor Perdomo no incluida en las preguntas:

También me gustaría que el sistema me permitiera tener un control sobre los productos de manera

que yo pueda saber con exactitud los productos que se han vendido, a quién y cuál ha sido el

vendedor, esto con el fin de solventar un problema de seguridad que se ha venido evidenciando en

nuestra empresa.

Nos gustaría que el sistema fuera agradable a la vista, ya que hemos visto que todos los demás

sistemas tienen un aspecto gráfico muy anticuado.

Es importante destacar que el sistema debe llevar relación con la imagen corporativa e implementar

las imágenes de nuestros productos cuando se realicen las ventas y se consulte el inventario.

El sistema no debería demorarse mucho cargando para no ralentizar el proceso de venta.

Page 174: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

174

Anexo 2 Entrevista Número 1

Usuario: Elsa Patricia Castaño

Cargo: Cajero

¿Cuánto tiempo tarda normalmente en tomar un pedido y crear una factura para un cliente?

__Alrededor de 15 minutos, pues debo escribir el código de barras de cada uno

¿Si el cliente ha realizado compras con ustedes, usted debe preguntar de nuevo toda su

información, o poseen un compendio de cliente de donde pueda recuperarla? Si______

No__X_____

¿Tiene usted conocimiento de cuantas unidades puede venderle al cliente (disponibilidad

del producto)? Si__X__ No____

¿De qué forma se incluyen en la factura los descuentos, precios especiales o demás eventos

en el precio?

__________Debo escribir en la hoja de cálculo de cuanto es el descuento de cada producto

¿Luego de la impresión, con que nombre guarda la factura realizada?

___Con el nombre del cliente y la fecha del día _________

¿Usted puede ver las facturas realizadas por otros vendedores? Si __X__ No_____

¿Cuántas personas tienen acceso al computador donde usted trabaja? ____4___________

¿Cuántas utilizan su misma clave de acceso? __Todas_________________________

¿Cuando el pedido debe ser enviado por correo certificado, como marca la caja?

_______Escribo sobre una hoja la dirección que el cliente me dijo en el pedido _____

Conozco otros sistemas y me gustaría que en este se pudiera acceder a varias cosas al mismo

tiempo, debido a que en los demás solo es posible entrar a una pantalla a la vez, teniendo que cerrar

lo que se tiene y volverlo a abrir luego de hacer lo que se necesite.

Page 175: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

175

Anexo 3 Entrevista Número 2

Usuario: Liliana Sanabria

Cargo: Cajero

¿Cuánto tiempo tarda normalmente en tomar un pedido y crear una factura para un cliente?

_________Diez minutos mientras obtengo de nuevo sus datos__

¿Si el cliente realizado compras con ustedes, usted debe preguntar de nuevo toda su

información, o poseen un compendio de cliente de donde pueda recuperarla? Si______

No__X____

¿Tiene usted conocimiento de cuantas unidades puede venderle al cliente (disponibilidad

del producto)? Si____ No_X__

¿De qué forma se incluyen en la factura los descuentos, precios especiales o demás eventos

en el precio?

_________________________________________________________________________

¿Luego de la impresión, con que nombre guarda la factura realizada?

___________Con la fecha y el valor de la compra___________________

¿Usted puede ver las facturas realizadas por otros vendedores? Si _X___ No_____

¿Cuántas personas tienen acceso al computador donde usted trabaja? _____3__________

¿Cuántas utilizan su misma clave de acceso? __No estoy seguro pero creo que todos____

¿Cuando el pedido debe ser enviado por correo certificado, como marca la caja?

__________Con marcadores y cinta para que no se despegue el nombre_______

Debería haber una manera de poder manejar el sistema sólo con el teclado, pues ya tengo

experiencia con manejar otros sistemas en los que sólo utilizo el teclado y por tanto soy más

eficiente que con el mouse.

Page 176: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

176

Anexo 4 Entrevista Número 3

Usuario: Danny Fernando Cruz

Cargo: Cajero

¿Cuánto tiempo tarda normalmente en tomar un pedido y crear una factura para un cliente?

_______Entre ocho y doce minutos___________

¿Si el cliente realizado compras con ustedes, usted debe preguntar de nuevo toda su

información, o poseen un compendio de cliente de donde pueda recuperarla? Si______

No___X_

¿Tiene usted conocimiento de cuantas unidades puede venderle al cliente (disponibilidad

del producto)? Si____ No_X__

¿De qué forma se incluyen en la factura los descuentos, precios especiales o demás eventos

en el precio?

_______Debo llamar al supervisor y el coloque y autorice los precios especiales_

¿Luego de la impresión, con que nombre guarda la factura realizada?

___________Con el nombre del cliente con los dos apellidos y la fecha del día______

¿Usted puede ver las facturas realizadas por otros vendedores? Si X__ No_____

¿Cuántas personas tienen acceso al computador donde usted trabaja? ____Dos____

¿Cuántas utilizan su misma clave de acceso? Creo que todos por que usamos el mismo

usuario

¿Cuando el pedido debe ser enviado por correo certificado, cómo marca la caja?

_________Busco el nombre del cliente con su dirección y con un marcador sobre una hoja

coloco la dirección donde el cliente desea el envió _

Page 177: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

177

Anexo 5 Entrevista Número 4

Usuario: Angélica María Pérez

Cargo: Cajero

¿Cuánto tiempo tarda normalmente en tomar un pedido y crear una factura para un cliente?

____Quince minutos si el cliente no proporciona la dirección, si no solo ocho minutos

¿Si el cliente realizado compras con ustedes, usted debe preguntar de nuevo toda su

información, o poseen un compendio de cliente de donde pueda recuperarla? Si______

No_X_

¿Tiene usted conocimiento de cuantas unidades puede venderle al cliente (disponibilidad

del producto)? Si____ No_X__

¿De qué forma se incluyen en la factura los descuentos, precios especiales o demás eventos

en el precio?

_________El supervisor agrega los precios especiales en la hoja de calculo ______

¿Luego de la impresión, con que nombre guarda la factura realizada?

____Nombre completo del cliente y la fecha del día de la venta____

¿Usted puede ver las facturas realizadas por otros vendedores? Si _X_ No_____

¿Cuántas personas tienen acceso al computador donde usted trabaja? ___Cuatro___

¿Cuántas utilizan su misma clave de acceso? _____Todos utilizamos el mismo usuario_

¿Cuando el pedido debe ser enviado por correo certificado, cómo marca la caja?

____Escribo el nombre con un rotulador sobre la caja y la dirección ____

Page 178: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

178

Anexo 6 Historias de usuario

Módulo de Control de Inventario

HISTORIA DE USUARIO

Numero: 1 Nombre: Ver Inventario

Usuario: Administrador, Vendedor, Supervisor

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Alta Prioridad en desarrollo: Media

Descripción: Me gustaría que el sistema mostrara las existencias de productos en el inventario,

de forma tabulada y con imágenes.

Observaciones: Deben existir productos en el inventario, de lo contrario se muestra un mensaje

que indique la no disponibilidad.

HISTORIA DE USUARIO

Numero: 2 Nombre: Ver detalle de inventario

Usuario: Administrador, Vendedor, Supervisor

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Media Prioridad en desarrollo: Media

Descripción: Quiero que el sistema muestre las existencias de un producto del inventario en

especial con detalle de presentaciones, y sabores, de forma tabulada y con imágenes.

Observaciones: Deben existir productos en el inventario, de lo contrario se muestra un mensaje

que indique la no disponibilidad.

HISTORIA DE USUARIO

Numero: 3 Nombre: Agregar existencias al inventario

Page 179: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

179

Usuario: Administrador

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Alta Prioridad en desarrollo: Alta

Descripción: El sistema debe ser capaz de permitir agregar existencias de productos al

inventario.

Observaciones: Deben existir productos definidos en el sistema de información de la empresa.

HISTORIA DE USUARIO

Numero: 4 Nombre: Eliminar existencias del inventario

Usuario: Administrador

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Baja Prioridad en desarrollo: Media

Descripción: El sistema debe ser capaz de permitir borrar existencias de productos al inventario.

Observaciones: Deben existir productos definidos en el sistema de información de la empresa,

así como existencias de los mismos en el inventario.

Módulo de gestión de clientes

HISTORIA DE USUARIO

Numero: 1 Nombre: Agregar cliente

Usuario: Vendedor, Administrador

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Alta Prioridad en desarrollo: Alta

Page 180: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

180

Descripción: Se debe poder agregar clientes al sistema, pidiendo todos los datos y sin permitir

que hayan dos clientes iguales.

Observaciones: Se deben validar los tipos de datos introducidos en el formulario de agregación

HISTORIA DE USUARIO

Numero: 2 Nombre: Modificar cliente

Usuario: Administrador

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Baja Prioridad en desarrollo: Media

Descripción: El sistema tiene que permitir modificar los datos de un cliente en cualquier

momento, por si el cliente cambia de teléfono, dirección... etc.

Observaciones: El cliente a modificar debe existir en la base de datos

HISTORIA DE USUARIO

Numero: 3 Nombre: Eliminar cliente

Usuario: Administrador

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Baja Prioridad en desarrollo: Media

Descripción: También me debe permitir el sistema borrar a un cliente con solo seleccionarlo por

su nombre.

Observaciones: El cliente debe existir en la base de datos

Page 181: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

181

HISTORIA DE USUARIO

Numero: 3 Nombre: Buscar cliente

Usuario: Vendedor, Administrador, Supervisor

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Alta Prioridad en desarrollo: Alta

Descripción: Yo quiero poder buscar un cliente y que el sistema me muestre una lista de

resultados que me permitan ver los detalles del cliente.

Observaciones: Se pueden buscar términos relacionados con algún dato del cliente, tales como:

nombre, dirección, ciudad, cedula... etc.

Módulo gestión de usuarios

HISTORIA DE USUARIO

Numero: 1 Nombre: Modificar información personal

Usuario: Administrador, Vendedor, Supervisor

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Baja Prioridad en desarrollo: Media

Descripción: Mis datos personales (como el correo y la clave) deben poder ser modificados en

cualquier momento, entonces quiero que el sistema me muestre una manera de hacer esto.

Observaciones: El sistema solicita verificación de modificación vía correo electrónico para

garantizar la seguridad.

HISTORIA DE USUARIO

Numero: 2 Nombre: Modificar perfiles de usuario

Usuario: Administrador

Page 182: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

182

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Baja Prioridad en desarrollo: Media

Descripción: Un usuario con permisos administrativos podrá manejar a los otros usuarios, y por

tanto cambiarle sus permisos en el sistema, para decir a que tiene acceso y a que no.

Observaciones: Dicha modificación de perfiles sólo es posible si la realiza un usuario

administrador.

Módulo generación de facturas

HISTORIA DE USUARIO

Numero: 1 Nombre: Realizar venta

Usuario: Administrador

Modificación de historia numero: 1 Iteración: 1

Prioridad en Negocio: Alta Prioridad en desarrollo: Alta

Descripción: El sistema me debe permitir realizar una venta, seleccionando un cliente y una lista

de productos que le voy a vender.

Luego me debe entregar una factura de la venta en PDF

Observaciones: Debe haber disponibilidad en el inventario de los productos seleccionados para

la venta, así como el cliente, tendrá que existir en la base de datos.

Creación y almacenamiento de informes

HISTORIA DE USUARIO

Numero: 1 Nombre: Generar informe

Usuario: Administrador

Modificación de historia numero: 1 Iteración: 1

Page 183: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

183

Prioridad en Negocio: Media Prioridad en desarrollo: Alta

Descripción: El sistema debe entregar informes o reportes con base en la información

almacenada gracias a las transacciones que se realicen. Los informes pueden ser de ventas,

accesos, clientes... etc.

Observaciones: Los informes se entregan en formato PDF

Page 184: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

184

Anexo 7 Reuniones con el cliente para revisiones del sistema de información

CÓDIGO: 1 ANALISTA: Juan David Gómez Caicedo

TIPO: Recolección de

información

FECHA: 15 Diciembre de 2010

FUENTE: Abdul Perdomo DURACIÓN: 1.25 hora

PROYECTO: Sistema

información CREAMAX

HORA INICIO: 10:00am HORA FINALIZACIÓN:

11:25am

CLIENTE: Creamax OBJETIVO: Conocer los colores e imágenes que desea el

cliente en el sistema

1. Las imágenes y colores deben ser acordes a la página web que ya tienen en el momento

2. Las imágenes de los productos deben ser de excelente calidad

3. Las ventanas e imágenes deben ser de gran tamaño

Abdul Perdomo

Juan David Gómez Caicedo

Juan Sebastián Celis

FUENTE ANALISTA REVISOR

CÓDIGO: 2 ANALISTA: Juan Sebastián Celis

TIPO: Revisión de Protipo FECHA: 29 Diciembre de 2010

FUENTE: Abdul Perdomo, Angélica Perez DURACIÓN: 1.11 hora

PROYECTO: Sistema

información CREAMAX

HORA INICIO: 9:00am HORA FINALIZACIÓN:

10:11am

CLIENTE: Creamax OBJETIVO: Conocer los fundamentos del proyecto

1. Mejorar entorno gráfico

2. Colocar iconos que me ayuden a identificar que hace cada una de las opciones

3. Hacer la navegación entre módulos mas intuitiva

Page 185: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

185

4. Posibilidad de utilizar sistema gráfico de ventanas (semejante a un escritorio)

5. Colocar logotipos de la empresa en lugares visibles todo el tiempo

Abdul Perdomo, Angélica

Perez

Juan Sebastián Celis

Juan David Gómez

FUENTE ANALISTA REVISOR

CÓDIGO: 3 ANALISTA: Juan Sebastian Celis

TIPO: Recolección de

información

FECHA: 20 Enero de 2010

FUENTE: DURACIÓN: 2 hora

PROYECTO: Sistema

información CREAMAX

HORA INICIO: 2:00pm HORA FINALIZACIÓN:

4:00pm

CLIENTE: Creamax OBJETIVO: Conocer web o programas que interesan por el

diseño a los usuario

1. La página consultada tiene una interfaz muy sencilla de fácil uso.

2. La página tiene un diseño angosto para su contenido.

3. Los colores hacen agradable el sitio

Juan Sebastián Celis

Juan David Gómez Caicedo

FUENTE ANALISTA REVISOR

CÓDIGO: 4 ANALISTA: Juan Sebastián Celis

TIPO: Entrevista FECHA: 27 Enero de 2010

Page 186: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

186

FUENTE: DURACIÓN: 1.20 hora

PROYECTO: Sistema

información CREAMAX

HORA INICIO: 8:20am HORA FINALIZACIÓN:

9:40am

CLIENTE: Creamax OBJETIVO: Determinar cómo administrar el sistema

1. Se validarán los usuarios de la BD con los registros físicos

2. Se creará una tabla de datos para usuarios autorizados en el sistema

3. Se usará el manejador de Base de datos Mysql.

Abdul Perdomo

Danny Cruz

Juan Sebastián Celis

Juan David Gómez

FUENTE ANALISTA REVISOR

CÓDIGO: 5 ANALISTA: Juan Sebastian Celis

TIPO: Revisión de prototipo FECHA: 2 de Febrero de 2010

FUENTE: DURACIÓN: 1.40 hora

PROYECTO: Sistema

información CREAMAX

HORA INICIO: 8:00am HORA FINALIZACIÓN:

9:40am

CLIENTE: Creamax OBJETIVO: Validar funcionalidad e interfaz del sitio

1. Se debe contar con varios criterios para realizar los informes

2.

3. Se debe permitir un ingreso distinto por usuario, si desea otro deberá solicitar autorización

del administrador.

4. Se debe contar con un informe para el administrador de los eventos ocurridos en el sistema.

5. Ofrecer ayudas claras y fáciles de usar entendibles en lo posible para cualquier tipo de

visitante y usuario.

Page 187: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

187

Abdul Perdomo

Danny Cruz

Angélica Perez

Juan Sebastián Celis Juan David Gómez

FUENTE ANALISTA REVISOR

CÓDIGO: 6 ANALISTA: Juan Sebastian Celis

TIPO: Revisión de prototipo FECHA: 8 de Febrero de 2010

FUENTE: DURACIÓN: 1 hora

PROYECTO: Sistema de

información CREAMAX

HORA INICIO: 9:00am HORA FINALIZACIÓN:

10:00am

CLIENTE : Creamax OBJETIVO: Validar nueva propuesta de diseño de interfaz

1. Excelente diseño nuevo de interfaz.

2. Tiene mejor organización y por lo tanto funcionalidad.

3. Ese será la interfaz a implementar.

4. Los menú del sitio deben llamarse “clientes”, “compras”, “ventas”, “informes”, ”estadísticas”,

”inventario”, “rótulos”, ”configuración”

5. Ofrecer ayudas claras y fáciles de usar entendibles en lo posible para cualquier tipo de visitante

y usuario.

Abdul Perdomo

Juan Sebastián Celis

Juan David Gómez

FUENTE ANALISTA REVISOR

CÓDIGO: 7 ANALISTA: Juan Sebastián Celis

TIPO: Prototipo FECHA: 17 de Febrero de 2010

Page 188: PROPUESTA DE PROTOTIPO DE HERRAMIENTA DE CONTROL DE

188

FUENTE: DURACIÓN: 1 hora

PROYECTO: HORA INICIO: 9:30am HORA FINALIZACIÓN:

10:30am

CLIENTE: Creamax OBJETIVO: Validar desarrollo y funcionalidad del software

1. El desarrollo de la primera iteración está acorde con lo requerido por el cliente.

Abdul Perdomo

Angelica Perez

Danny Fernando Cruz

Juan Sebastián Celis

Juan David Gómez Caicedo

FUENTE ANALISTA REVISOR