Microsoft Word - Proyecto Integrador
Microsoft Word - Proyecto Integrador
Facultad de Ingeniería
Sistema SaaS de
Administración y Venta On-Line
Proyecto Integrador
Entregado como requisito para la obtención
del título de Analista Programador
2010
ABSTRACT
El sistema cuenta con dos aplicaciones, por un lado el portal de la distribuidora, que alberga el
sitio institucional de la misma y es donde los clientes podrán realizar compras a través de
Internet, conocido como el “frontend” .
Por otro lado se encuentra el sistema de administración de la distribuidora que los encargados
de la misma utilizarán para ingresar compras, facturar las ventas, emitir listas de precios,
controlar el stock y administrar las cuentas corrientes de los proveedores y clientes, conocido
como el “backend”
El sistema está diseñado para correr sobre un servidor web, utilizando el Framework Symfony
Project sobre PHP del lado del servidor y el framework jQuery sobre JavaScript del lado del
cliente. Se utiliza el sistema de mapeo de objetos relacional Doctrine para la abstracción de
datos.
Es así que el proyecto está orientado a un producto que pueda arrendarse por una
subscripción mensual como un servicio, de ahí el nombre SaaS, de las siglas en inglés
Software as a Service o Software como un Servicio.
2
“El Hombre es un experimento, el tiempo dirá si valía la pena”
Mark Twain
3
TABLA DE CONTENIDOS
Tabla de Contenidos ................................................................................................................................. 4
1. Introducción ........................................................................................................................................ 6
Extracto .................................................................................................................................................... 6
El Cliente .................................................................................................................................................. 7
Ubicación e Historia ................................................................................................................................. 8
Organigrama y Cargos .............................................................................................................................. 9
Presentación del Problema ..................................................................................................................... 10
Roles y Responsabilidades ..................................................................................................................... 11
2. El Análisis ......................................................................................................................................... 12
Análisis Estratégico ................................................................................................................................ 12
Caso Real ................................................................................................................................................ 13
Lenguajes y Tecnologías ........................................................................................................................ 14
Herramientas y Procesos ........................................................................................................................ 15
Costos y Licencias .................................................................................................................................. 16
Factibilidad Económica .......................................................................................................................... 19
Factibilidad Tecnológica ........................................................................................................................ 20
Factibilidad Legal ................................................................................................................................... 21
3. El Equipo ........................................................................................................................................... 23
Quienes Somos ....................................................................................................................................... 23
Habilidades y Conocimientos ................................................................................................................. 24
Codificación y Mejores Prácticas ........................................................................................................... 25
SQA – Garantía de Calidad .................................................................................................................... 31
SCM – Administración de la Configuración .......................................................................................... 33
4. El Plan del Sistema ......................................................................................................................... 34
Arquitectura del Sistema ........................................................................................................................ 34
Estudio de Alternativas........................................................................................................................... 35
Plan de Proyecto ..................................................................................................................................... 36
Estimación de Tiempos, Desviaciones y Re-planificación ..................................................................... 37
Gestión de Riesgos ................................................................................................................................. 39
5. Historias de Usuario ........................................................................................................................ 43
Ingreso de facturas de compra ................................................................................................................ 43
Facturación a Almacen del Grupo .......................................................................................................... 44
Control de Pagos a Proveedores ............................................................................................................. 45
Recepción de pedidos On-Line............................................................................................................... 46
Facturación a Cliente sobre Pedido On-Line .......................................................................................... 47
Facturación a Cliente sobre Pedido en vivo ........................................................................................... 48
Registro de Usuario Online .................................................................................................................... 49
Reporte de Listas de Precios................................................................................................................... 50
Consulta de Pedido Online ..................................................................................................................... 51
Mantenimiento de Productos .................................................................................................................. 52
Mantenimiento de Clientes ..................................................................................................................... 53
Mantenimiento de Proveedores .............................................................................................................. 54
Mantenimiento de Monedas ................................................................................................................... 55
Mantenimiento de IVAs ......................................................................................................................... 56
Mantenimiento de Categorías ................................................................................................................. 57
Mantenimiento de Ciudades ................................................................................................................... 58
Mantenimiento de Países ........................................................................................................................ 59
6. Ingeniería de Requerimientos ........................................................................................................ 60
Patrones de Diseño ................................................................................................................................. 60
Patrones de Creación ......................................................................................................................... 60
Patrones Estructurales ....................................................................................................................... 61
Patrones de Arquitectura ................................................................................................................... 61
4
Modelo – Vista – Controlador ................................................................................................................ 62
Diagramas de Deploy ............................................................................................................................. 64
Diagrama de Clases ................................................................................................................................ 65
Diagramas de Paquetes ........................................................................................................................... 66
Diagramas de Secuencia ......................................................................................................................... 68
Agregar Nuevo Cliente ....................................................................................................................... 68
Agregar Nuevo Artículo ...................................................................................................................... 69
Agregar Precio de Artículo.................................................................................................................. 70
Crear Nueva Factura de Compra ........................................................................................................ 71
Crear Nueva Factura de Venta ........................................................................................................... 72
Ingresar un Pedido On-Line ................................................................................................................ 73
Ingresar al Sistema ............................................................................................................................. 74
7. Sistema de Bases de Datos ........................................................................................................... 75
Motor de Bases de Datos ........................................................................................................................ 75
Desventajas ............................................................................................................................................. 76
Modelo Entidad Relación ....................................................................................................................... 77
Diseño de la Base de Datos .................................................................................................................... 78
Mapeo de Objetos Relacional ................................................................................................................. 81
Abstracción y Performance .................................................................................................................... 82
8. El Framework ................................................................................................................................... 83
Symfony Framework .............................................................................................................................. 83
jQuery y AJAX ....................................................................................................................................... 84
Look & Feel y Templates ....................................................................................................................... 85
Estructura de Directorios ........................................................................................................................ 86
9. El Proyecto ....................................................................................................................................... 88
Alcances y Limitaciones......................................................................................................................... 88
Debe Tener ......................................................................................................................................... 89
Sería Bueno Tener .............................................................................................................................. 91
Extras .................................................................................................................................................. 93
Planificación de Tareas........................................................................................................................... 95
Sprint 1 ............................................................................................................................................... 95
Sprint 2 ............................................................................................................................................... 96
Sprint 3 ............................................................................................................................................... 97
Sprint 4 ............................................................................................................................................. 100
Sprint 5 ............................................................................................................................................. 102
Sprint 6 ............................................................................................................................................. 104
Sprint 7 ............................................................................................................................................. 106
Estado Actual del Sistema .................................................................................................................... 108
Sprint 8 ............................................................................................................................................. 108
Evolución del Producto ........................................................................................................................ 109
Sprint 9 ............................................................................................................................................. 109
10. El Producto ................................................................................................................................ 110
Producto Final ...................................................................................................................................... 110
Instalación e Implementación ............................................................................................................... 112
Configuración ....................................................................................................................................... 118
Ayuda y Manual de Usuario ................................................................................................................. 120
Manual del Cliente ........................................................................................................................... 120
Manual del Administrador................................................................................................................ 124
Mantenimiento...................................................................................................................................... 133
Plan de Continuidad de Negocios ......................................................................................................... 134
Mercadeo y Plan de Futuro................................................................................................................... 135
Hosting y Subscripción......................................................................................................................... 135
11. Índice .......................................................................................................................................... 136
12. Anexos y Tablas ....................................................................................................................... 138
Bibliografía ........................................................................................................................................... 138
Referencias ........................................................................................................................................... 139
5
1. INTRODUCCIÓN
EXTRACTO
El Grupo del Este está compuesto por una pequeña distribuidora y cuatro almacenes en la
ciudad de Maldonado. La distribuidora compra mercadería de múltiples proveedores, tanto en
Maldonado como en Montevideo, y a su vez vende esa mercadería a los almacenes de la
cadena y también hacia otros minoristas (clientes).
El equipo plantea desarrollar un sistema web flexible que opere en una modalidad SaaS
(Software como un Servicio) que logre resolver de manera holística el flujo de trabajo y
necesidades de reporte de la empresa. Para ello se contará con un sistema multiusuario de
venta On-Line disponible 24x365 y a través del nuevo sistema se simplificará
sustancialmente la digitalización de la información, que permitirá a la empresa gestionar sus
stocks, obtener reportes y mediante un control de flujo ordenado, acelerar su proceso de
despacho y ventas y por lo tanto crecer en el mercado local.
6
EL CLIENTE
El Grupo del Este es una agrupación de cuatro almacenes minoristas de Maldonado que
establecieron una alianza para la compra de mercadería dentro y fuera del departamento
para conseguir precios competitivos con las grandes cadenas de supermercados de la zona.
El grupo tiene en sus depósitos principales el almacén de stock con la gran mayoría de los
productos que comercializa, mientras que cada almacén tiene un pequeño depósito propio que
administra localmente.
A su vez, la distribuidora opera con otros clientes, como ser re-vendedores locales de la zona,
tanto en Maldonado Nuevo como de las cercanías (Maldonado, Punta del Este y los barrios y
balnearios aledaños) e incluso otros almacenes y supermercados que realizan los pedidos y
levantan la mercadería de los depósitos centrales.
Esto presenta una dualidad frente a quien es el cliente. Por un lado, tenemos a los
administradores de la Distribuidora Grupo del Este, y por otro lado tenemos a los encargados
de los almacenes que realizan los pedidos junto a los clientes ajenos al grupo.
Durante el enfoque del sistema, debemos tener en cuenta la existencia de estos dos grupos de
clientes y diseñar una solución acorde a ambos, evitando duplicar esfuerzos al diseñar una
lógica que sustente este paradigma.
7
UBICACIÓN E HISTORIA
Actualmente el núcleo de la distribuidora se encuentra en la zona de Maldonado Nuevo, zona
de amplio crecimiento de la capital departamental de Maldonado, a metros de la principal
avenida de la zona, la Avenida de los Gauchos.
Los almacenes que componen al grupo son : el almacén Bartolito, al Sur de la Avenida de los
Gauchos, casi Avenida Aiguá; el almacén Pepe, sobre la zona Noreste de Maldonado Nuevo,
en la calle Caracará; el Semáforo hacia el final Norte de Simón del Pino y el 1ro de Mayo sobre
Manuel Menéndez hacia el Suroeste de Maldonado Nuevo, lo que le otorga al Grupo del Este
una posición especial en una red de almacenes cubriendo gran parte de la zona de expansión
de Maldonado Nuevo.
8
ORGANIGRAMA Y CARGOS
Rafael Diab está encargado de liderar el Grupo del Este, y es el principal interesado en el
sistema y también uno de sus principales usuarios.
Por otro lado se encuetnra el equipo de Logística, quienes ensamblan fisicamente el pedido y
se encargan de facturar los pedidos de los clientes dando así de baja los elementos
despachados.
Como un subgrupo de clientes "especiales" se encuentran los cuatro almacenes del grupo,
quienes pueden encargar mercadería que es despachada automaticamente hacia sus
almacenes, pero que fuera de esa excepción, operan como un cliente corriente, ingresando
pedidos desde el frontend web.
9
PRESENTACIÓN DEL PROBLEMA
La reciente instalación de la distribuidora, hace que su proceso sea ineficiente y que los
sistemas informáticos que están utilizando no sean idóneos para las tareas, facilitando la no-
adopción de los mismos por parte del personal, y avalando el informalismo en las compras y
ventas, especialmente entre los almacenes del grupo.
La distribuidora maneja una lista de artículos del orden de cientos de miles de productos, y
éstos a su vez son adquiridos de casi una centena de proveedores. Cada uno con sus precios
y condiciones particulares que no son contempladas actualmente por el sistema.
Para ello se busca presentar una solución flexible, que de manera rápida y amigable pueda
adaptarse al ciclo de la distribuidora e imitando el proceso actual, lo acelere, permitiendo así,
atender más clientes por hora. Esta también debe ser capaz de emitir reportes y brindar
información a los líderes de la distribuidora, ayudando así a la toma de decisiones.
10
ROLES Y RESPONSABILIDADES
El equipo de trabajo ampliado está formado por una variedad de individuos con diferentes
habilidades y conocimientos, que van desde el diseño de arquitectura hasta las estrategias de
negocios y administración de la logística.
Es por eso un punto clave, determinar los roles y responsabilidades de cada individuo, para
poder rápidamente consultar con la persona indicada frente a una duda o sugerencia.
La tabla debajo intenta explicar brevemente quién es quién y de qué deberían de encargarse.
11
2. EL ANÁLISIS
• Es una aplicación pesada mono usuario desarrollado en Visual Basic con base de
datos Access.
• En las facturas recibidas, el costo de los productos pueden tener IVA discriminado
o no.
En el sistema actual, esto no está contemplado. Actualmente es calculado a mano (con
calculadora) en el caso de los productos con IVA, ítem por ítem.
12
CASO REAL
Durante el relevamiento de información, un cliente se presentó a realizar un pedido, con su
"hoja de pedido" en mano, éste fue atendido por personal de la distribuidora y línea a línea se
fue armando su pedido en base a los ítems de los que se disponía stock.
Al mismo tiempo se anotaba del lado de la distribuidora en una factura a mano, la compra de
dicho cliente.
Finalmente, una vez armado el pedido, se controló toda la mercadería y se cargó en su furgón.
Este proceso duró más de una hora, y quedó solamente registrado en papel.
Las desventajas que esto presenta, y las formas propuestas para solucionarlas son :
o El cliente realiza pedido On-Line vs. llegar con hoja en mano de pedido
tentativo.
Las limitaciones del sistema actual hacen que el sistema sea poco eficiente, y requiera de
gran tiempo y esfuerzo para completar tareas, las cuales se pueden mejorar
considerablemente.
Éste será el foco del proyecto. Los cambios durante el proyecto deben preservar o aumentar el
objetivo de mejora que la empresa busca con el sistema.
13
LENGUAJES Y TECNOLOGÍAS
El núcleo del sistema será desarrollado en PHP 5.2.xx sobre el framework Symfony MVC
v1.4.x. Para la persistencia de datos se utilizará el ORM Doctrine v1.2.x como capa de
abstracción de la bases de datos MySQL v5.1.xx (Community Edition) . El servidor de
presentación correrá sobre el sistema operativo Ubuntu Server corriendo Apache Http Server
2.2.xx .
Todas estas tecnologías son Open Source y sumamente estables, lo que garantiza un TCO
(Coste Total de Propiedad) muy bajo en comparación a sistemas propietarios y una
infraestructura abierta, estable y en continua actualización. El licenciamiento de la aplicación
por lo tanto, se ve reducido solamente a los costes del mantenimiento de la infraestructura y de
los RRHH técnicos que se necesiten para la misma, haciendo de la puesta en marcha del
sistema, un servicio sumamente rentable.
Otro punto para la decisión de los lenguajes y tecnologías, fue la experiencia previa del equipo
en la misma. Habiendo desarrollado productos anteriormente sobre tecnologías PHP y
específicamente el uso del framework Symfony, presenta una ventaja al momento de analizar
los riesgos.
14
HERRAMIENTAS Y PROCESOS
Para el desarrollo del sistema se utilizaran una amplia gama de herramientas informáticas que
ayudan tanto en el desarrollo como en la administración del proyecto.
Principalmente el sistema será desarrollado sobre la IDE NetBeans 6.8 con el módulo
específico para PHP junto al plug-in de Symfony, Esto permite tanto la ejecución del entorno de
desarrollo como la ejecución de comandos de la consola de Symfony y la depuración en tiempo
real del código PHP.
Para el diseño de la base de datos se utilizará el sistema Oracle MySQL Workbench v5.1.xx
junto con los complementos MySQL Query Browser y MySQL Administrator. Todas en sus
versiones Open Source Community Edition.
Al momento de gestionar y planificar el proyecto, se optó por una metodología tipo Scrum, con
iteraciones de dos semanas. Para el seguimiento de la misma se utilizó la herramienta de
gestión Trac junto a los plugins de Scrum de Burndown, Iterations y Time Reports
15
COSTOS Y LICENCIAS
Durante el planeamiento de la arquitectura, y considerando la necesidad de implementar el
sistema en producción, con acceso multiusuario desde la red pública, se tuvo especial cuidado
en el estudio del licenciamiento tanto de las herramientas como de los sistemas utilizados para
el desarrollo e implementación de la arquitectura.
Así mismo, sobre las aplicaciones que no se licencien en un formato libre de existir, se
detallarán los costes de las mismas y se estudiaran los términos bajo los cuales es posible
instalarlas, en cuántos servidores, sobre qué número de procesadores, etc.
Total Costos $0
Del lado del servidor, sobre la plataforma PHP, correrá el framework Symfony MVC y del lado
del cliente sobre JavaScript el framework jQuery.
Total Costos $0
16
Para el diseño de la base de datos y el MER se utilizará MySQL Workbench y para los
diagramas de clases, de secuencia y la edición de otros elementos UML, se utilizará BoUML.
Total Costos $0
Para la edición y depuración del código, tanto PHP como JavaScript se utilizará la IDE
NetBeans con el plug-in de Symfony y los fuentes de jQuery. Para algunas ediciones menores
y proceso de archivos de texto plano se utilizará Notepad++.
Total Costos $0
17
Para la administración del proyecto y el seguimiento del plan, se utilizará la herramienta de
gestión de proyectos Trac, con los plug-ins de Scrum. Para el versionado del código y el control
de cambios, la misma tendrá interfaz con un repositorio SVN.
Total Costos $0
18
FACTIBILIDAD ECONÓMICA
El Grupo del Este se encuentra en pleno crecimiento en su posición como distribuidor de
productos de Maldonado. Como tal, sus recursos son limitados y su situación económica está
dada por la voluntad de sus integrantes de hacer crecer al grupo, más que por su posición
consolidada como distribuidora.
Esto plantea un punto delicado en cuanto a la factibilidad económica del proyecto, limitando las
tecnologías y los costes de los sistemas considerablemente. Por ejemplo, es inviable
considerar la implementación del sistema en servidores propios. De la misma manera es poco
probable que se accedan a los costes de un sistema operativo propietario, junto a tecnologías
del tipo, como pueden ser ASP .Net o similares. Es por eso que se enfoca como un
requerimiento no funcional importante, el uso de tecnologías gratuitas Open Source.
El otro punto que fue fundamental en la decisión del Grupo, fue la presentación del sistema en
formato SaaS. Software como un Servicio. Esto les permite por una baja subscripción mensual,
hacer uso de un sistema de gran porte, con sus características y funcionalidades, que de ser
adquiridos en plaza para la infraestructura de la distribuidora, excedería las capacidades del
Grupo como una inversión inicial.
De esta misma manera, para el equipo de trabajo, el planteo de una relación a largo plazo,
brinda una estabilidad y seguridad que permite afianzar al equipo y evolucionar el producto
hasta que sea suficientemente genérico y estable para ser ofrecido en plaza como una
alternativa a los sistemas actuales de administración de ventas.
19
FACTIBILIDAD T ECNOLÓGICA
El mundo de la informática, y en particular del desarrollo de software, cambia a pasos
agigantados. Tecnologías que son vanguardistas a principio de una década, resultan obsoletas
al final de la misma. Es por eso que hay que ubicar el desarrollo tecnológico en su contexto.
Estar muy bien informado sobre la situación actual, y tomar decisiones concisas, sin
cuestionarse a los meses sobre que tan acertada fue tal o cual elección. Ya que para ese
entonces, esta puede resultar obsoleta.
Esto implica cierta atadura respecto a la arquitectura del sistema, ya que un rediseño de la
misma tendría un coste agregado. Aún así, la decisión se toma a conciencia de que el ahorro
en el diseño y desarrollo actual, en base a la tecnología elegida, supera con amplios márgenes,
el diseño de una solución más abstracta que permita una alternativa a futuro que se
desconoce.
20
FACTIBILIDAD LEGAL
El sistema que planteamos opera en una modalidad de costeo mensual para la empresa, con
un contrato mínimo de 12 meses de servicio, con dos meses de prueba de garantía. Esto se
encuentra en el contrato formalizado con la empresa según detalle que se muestra a
continuación.
Respecto a los estatutos legales, el sistema está amparado por las normas de derecho de
autor establecidas en la Ley No. 9.739 de 17 de Diciembre de 1937, actualizada en 2003. (Ver
anexos legales).
PRIMERO: YKI.COM.UY con domicilio en Colonia 2104 Ap. 402, Montevideo, Uruguay (de ahora en
adelante “Yki”) brindará al GRUPO DEL ESTE con domicilio en Ramón Masetti s/n entre Avenida de los
Gauchos e Isla de Flores, Maldonado, Uruguay (de ahora en adelante “El Grupo”) los servicios del
Sistema de Administración y Venta OnLine por Internet a través de la empresa MIGUEL AMYN DIAB
ROMERO S.A.
SEGUNDO: CARACTERÍSTICAS DEL SERVICIO.- Los encargados del sitio recibirán un par de credenciales
compuestas de nombre de usuario y contraseña que les dará acceso a la página de la empresa
GrupoDelEste.Com.Uy, para realizar la administración del sitio desde el “backend”. Yki se obliga a
mantener en funcionamiento las 24 horas del día los 365 días del año los servidores de aplicación como
los sistemas de venta online y de ingreso de usuarios que se indica en este contrato, salvo razones de
fuerza mayor o caso fortuito, no siendo responsables por cortes en los servicios de Internet que por
cualquier causa se puedan producir tanto en el Uruguay como en el exterior.
CUARTO: PRECIO.- El plazo de validez y los términos del contrato de suscripción son de
U$S 999 para el servicio por doce meses o de U$S 96 para el servicio mensual, siendo pagaderos antes
21
de los diez días hábiles corridos una vez firmado el contrato. Para los ciudadanos residentes en Uruguay,
se agregará a este valor el impuesto al valor agregado (IVA) del 22%.
SEXTO: PRIVACIDAD Y TARJETAS DE CREDITO.- La información de las tarjetas de crédito se envía por un
canal seguro directamente a los emisores de las tarjetas y queda almacenada ahí. Para total seguridad
del usuario, ni Yki.Com.Uy ni MIGUEL AMYN DIAB ROMERO S.A. tienen acceso a esa información en
ningún momento de la transacción, situación que el usuario reconoce y acepta. La información de los
usuarios no será utilizada para ningún otro fin comercial que no sea el del servicio contratado.
SÉPTIMO: COSTES AFINES.- Los costes generados por el mantenimiento y soporte del sitio, así como el
registro de dominios frente a la entidad pertinente, corren por cuenta de Yki. Así mismo, son de su
propiedad el uso de los mismos, aceptando el cliente el ceder los derechos de los mismos, con la
garantía del contrato y la cláusula de “no competencia” por la que se rige Yki. El uso de los dominios
asociados con un cliente dado, no será utilizado para ningún otro fin comercial que no esté amparado
por los dueños de la respectiva marca.
OCTAVO: NORMATIVA LEGAL.- Si a lo largo de la validez de este acuerdo llegaran a surgir en Uruguay o
en el exterior, limitaciones legales, modificaciones de las leyes de comercio electrónico, nuevos tipos de
cargas impositivas o cualquier otro tipo de reglamentación o legislación que imposibilite a cualquiera de
las dos partes la continuación normal de las transmisiones por Internet, este acuerdo podrá ser
cancelado en forma unilateral por cualquiera de las partes sin responsabilidad para ninguna de ellas.
NOVENO: El presente contrato se regirá por las leyes de la República Oriental del Uruguay.
22
3. EL EQUIPO
QUIENES SOMOS
El equipo de desarrollo está compuesto por dos entusiastas de la tecnología y la informática.
En este mundo siempre cambiante, luchan para mantenerse al día con los cambios en
metodologías, procesos y paradigmas.
Miguel Diab vivió su infancia en La Barra de Maldonado, después de un año sabático por
Europa se mudó a Montevideo, dónde se dedicó al estudio de Tecnologías de la Información.
Actualmente trabaja para www.betboo.com encargado del diseño y desarrollo para el proyecto
eBingo. Participa ocasionalmente en proyectos freelance o como consultor para diferentes
entidades. Es un apasionado de la fotografía y de todo dispositivo eléctrico más complejo que
un interruptor.
Marcos Tusso nació en Sao Paulo, Brasil, donde vivió hasta los 12 años de edad. Su carrera
en IT se inició en Tiendas Montevideo. Actualmente es encargado del área técnica para el
soporte de Call-Centers de Sabre Holdings en USA, Europa y Uruguay, integrando nuevas
tecnologías entre los diversos equipos de soporte. Es amante del futbol, hincha del Sao Paulo
Futbol Club.
23
HABILIDADES Y CONOCIMIENTOS
Los integrantes del equipo de desarrollo han sido capacitados en diversas áreas de la
ingeniería de software. Ambos poseen un excelente nivel académico logrado en la Universidad
ORT de Montevideo, Uruguay.
24
CODIFICACIÓN Y MEJORES PRÁCTICAS
Para la mayor claridad y legibilidad del código, se respetarán los siguientes estándares de
programación y documentación. Poniendo especial énfasis en el tabulado y en la nomenclatura
de los métodos y variables, para facilitar la nemotecnia al momento de mantener el código.
Término Descripción
Ejemplo: customerName
Ejemplo: CustomerName
Ejemplo: strVariable
En esta sección se incluye un breve resumen de los principales estándares descriptos a los
largo de este documento. Estas tablas no son detalladas en sus descripciones, pero brindan
una rápida referencia a los elementos.
25
Convenciones de Nomenclatura
c Camel case
P Pascal case
No aplica
Namespace P Sicac.DataAccess
Ejemplo: IDeriv–able
Ejemplo:
CustomerModuleException
26
Convenciones de Nomenclatura (cont)
Ejemplo: ToString
Ejemplo: BackColor
Ejemplo: _redValue
Ejemplo: ErrorLevel
Delegate P P P P
27
Convenciones de Nomenclatura (cont)
Ejemplo:
IdObjeto_ValueChange
MyButton_Click
Estilos de Codificación
Código Estilo
Archivo del código fuente Un directorio por Namespace y un archivo por clase.
(Source code)
28
Estilos de Codificación (cont)
Código Estilo
Tipos de datos nativos (Native Priorizar el uso de tipos nativos de C# ante tipos del CTS.
Data Types)
Ejemplo: int en lugar de Int32.
Tipos genéricos (Generic types) Utilizar preferiblemente tipos genéricos ante tipos estándar o strong-
typed classes.
Condicionales (Conditionals) Evitar la evaluación de condiciones booleanas contra valores true o false.
29
Estilos de Codificación (cont)
Código Estilo
ComVisibleAttribute Debe estar con el valor false para todos los assemblies.
30
SQA – GARANTÍA DE CALIDAD
La calidad del proyecto estará dada principalmente por el modelo de trabajo a seguir en el
desarrollo del mismo. Adoptando metodologías Ágiles y mediante el uso de Scrum
particularmente, se podrá hacer un seguimiento del proyecto y un manejo en tiempo real de las
desviaciones y cambios en los requerimientos, garantizando así, un máximo aprovechamiento
del tiempo y satisfacción con el cliente.
La plataforma elegida para esto ha sido el sistema de gestión de proyectos Trac v0.11.x. El
mismo cuenta con funcionalidades de wiki, administración de cambios y reporte de errores.
Opera en una modalidad de Scrum, brindando gráficos de Velocidad, Burndown y reporte de
horas. También posee integración con el sistema de control de cambios SVN, y permite asociar
las historias de usuario y los errores reportados específicamente al cambio de código realizado
para implementar o solucionar el mismo.
La documentación estará disponible 24x365, por un lado dentro del sistema como ayuda
contextual, indicando los pasos a seguir para las funcionalidades clave e independiente en un
formato de tipo wiki (con restricciones de acceso) en la página Trac del proyecto. Otra ventaja
de este sistema, es que se beneficiará de comentarios y agregados tanto de los
desarrolladores como de otros stake-holders, como ser expertos en áreas claves, tutores y
hasta el mismo cliente.
El seguimiento del proyecto se podrá ver a través de la funcion de Timeline, dónde no solo se
registrarán los cambios en el código, sino también los últimos cambios en la documentación, en
el avance de tareas y en la resolución de errores.
31
El servicio de reporte de errores y cambios está orientado hacia una metodología Scrum,
permitiendo definir Requerimientos, Historias de Usuario y Tareas, y estas asociadas a Sprints
y a Milestones, mostrando de una manera minimalista y simple, el avance del proyecto.
Todos los stake-holders tendrán acceso a este sistema, para poder exigir y garantizar la mejor
calidad del producto y la rápida detección y corrección de errores. El uso de Scrum exige tanto
al cliente (o la persona responsable por parte del cliente) como a los desarrolladores, que los
entregables sean probados por ambos y aprobados a cada sprint. Para simplificar la
automatización de los mismos, el equipo del proyecto planea usar tests unitarios
automatizados, que serán expandidos con cada error detectado, para así evitar incurrir dos
veces en el mismo defecto.
32
SCM – ADMINISTRACIÓN DE LA CONFIGURACIÓN
Desarrollando en un ambiente multi-programador y trabajando para un cliente remoto, es
fundamental hacer un claro seguimiento de los cambios en la arquitectura y en la codificación
para poder detectar cambios no deseados y volver atrás en el tiempo en caso de necesitar
funcionalidades anteriores.
El control de cambios y versionado se manejará mediante un Servidor SVN seguro, que guardará
repositorios con el avance del proyecto y los cambios y actualizaciones del mismo.
33
4. EL PLAN DEL SISTEMA
De esta manera los usuarios podrán acceder tanto desde dentro de las instalaciones de la
distribuidora como desde fuera y más importante, los clientes tendrán acceso a realizar pedidos
y verificar información sobre los mismos independientemente del horario de la distribuidora.
El núcleo del sistema correrá sobre el servidor de presentación Web Apache, con el módulo de
pre-interpretación PHP. El mismo utilizará las librerías de cliente de MySQL para conectarse al
servidor de bases de datos.
Los clientes accederán al sistema a través del sitio institucional de la distribuidora. Mientras
que los usuarios tendrán un back-end oculto. Ambos sitios estarán protegidos contra accesos
no validados y guardaran registros de acceso y acciones, en base a lo definido con el cliente.
34
ESTUDIO DE ALTERNATIVAS
El proyecto planteado presenta varias similitudes con ofertas en plaza. Es por lo tanto lógico
cuestionar sobre la validez del diseño e implementación de un nuevo sistema. Para evitar
redundancia de esfuerzos se hizo un estudio sobre posibles alternativas al sistema propuesto.
Por último, existen en el flujo actual de negocios, ciertas particularidades propias al Grupo del
Este ya como éste está conformado. Por ejemplo la venta directa a un almacén del grupo, pero
manteniendo información sobre stocks y compras generales, entre otros.
Estos casos obligan a la solución SaaS, un enfoque puntual a medida y considerando estas
situaciones como únicas al propio funcionamiento de la distribuidora.
35
PLAN DE PROYECTO
Según el manifiesto :
Como tal, el plan de proyecto presentado más adelante, sufrió y sufrirá una cantidad
de variaciones en pro de la mejora del sistema, de la entrega de un producto más
relevante en el período de tiempo dado, y de enfocarnos a las necesidades reales del
cliente, por sobre las ideologías de los desarrolladores.
36
ESTIMACIÓN DE TIEMPOS, DESVIACIONES Y RE-PLANIFICACIÓN
La estimación de tiempos definida en el Ante Proyecto fue drásticamente cambiada debido a
diferentes factores que alteraron el proceso de desarrollo.
A continuación, pasaremos a explicar algunos de ellos, no como excusas, sino como lecciones
aprendidas en el transcurso del proyecto, para que sirvan como guía futura de nuevos
emprendimientos.
Sobre-confianza en la tecnología.
El primer y probablemente más grave error al estimar originalmente los tiempos fue la
sobre-confianza en la tecnología a utilizar por el equipo. Habiendo desarrollado
previamente aplicaciones en Symfony v1.1 y v1.2, supusimos dominar el framework
para el desarrollo de este sistema.
Otro punto grave de error, fue en cuanto a la predicción del tiempo llevado por tareas
finas.
Por ejemplo el tiempo que puede llevar el desarrollo de una función en JavaScript con
librerías jQuery que permitan el cálculo de los totales de una factura en tiempo real,
con ajuste de precios según la lista de precios de cada cliente y la moneda específica
del producto en base a la determinada por el cliente como moneda por defecto.
Tareas como estas o similares, llevaron hasta 4 veces más de las planificadas,
nuevamente retrasando el proyecto.
37
Trabajo sobre tareas no planeadas.
Así, se perdieron varias horas intentando solucionar un problema (trivial o no) en lugar
de intentar cumplir con las tareas planeadas
La falta de reuniones formales del equipo, como ser una reunión de iteración previo al
comienzo de la misma, ocasionaron que muchos Sprints se comenzaran desfasados,
creando así sobrecargas al planear trabajo de 14 días en menos de la mitad del
tiempo.
38
GESTIÓN DE RIESGOS
En el Análisis Estratégico surgieron varios factores de riesgo a considerar.
El primer factor de riesgo está dado por el mero tamaño del proyecto.
La distribuidora Grupo Del Este necesita un sistema unificado que logre manejar las diferentes
áreas de la misma, interconectando lo que serán "Módulos" independientes del sistema.
Para mitigar este riesgo, la alternativa más clara es reducir el primer alcance del proyecto para
lograr cumplir con los objetivos pactados de manera de mantener la calidad esperada.
El segundo enfoque y complementario del primero, fue el de organizar las tareas según
importancia y necesidad para el cliente. Mediante este enfoque, aún sin lograr el 100% del
producto desarrollado, para una primera instancia se asegura de tener las funcionalidades más
deseadas por el cliente, así como las más críticas para la operación diaria.
39
Seguridad On Line
Al contener información sensible, tanto del cliente, como de los clientes del mismo, el sistema
debe correr sobre una plataforma extremadamente segura y confiable.
Los datos manejados deben mantenerse siempre bajo control del equipo y de la distribuidora y
sumo cuidado debe tenerse en las posibles violaciones de seguridad y acceso.
Para mitigar una posible violación de seguridad, se pondrá gran énfasis en el continuo
explotamiento de posibles vulnerabilidades mediante pruebas automatizados que garanticen
paso a paso, la seguridad y confiabilidad del sistema.
Como complemento se utilizará la infraestructura del framework de Symfony junto a los plugins
desarrollados para garantizar la seguridad del sistema.
Por último se hará una minuciosa restricción del sistema de producción, dónde la opción por
defecto será la revocación de permisos, y luego excepciones serán agregadas para permitir el
correcto funcionamiento de la aplicación.
40
Alta Disponibilidad
El sistema no solo será el frente de administración de la distribuidora, también será tanto el sitio
institucional como el acceso On-Line a los clientes registrados a realizar pedidos y consultar los
mismos.
Por lo tanto, el sistema debe encontrarse disponible y con un nivel de respuesta aceptable que
exige un servidor de aplicaciones confiable que corra en un entorno veloz y con redundancia.
Como complemento, un hosting tercerizado será contratado para el albergue del sistema,
teniendo en cuenta antes de la contratación las garantías de disponibilidad del mismo, y se
tendrá para casos de emergencia un sistema local redundante que permitirá continuar con las
tareas normalmente, aún en situación de desastre.
41
Compatibilidad
Los sistemas Web, están pensados para correr sobre una infinidad de sistemas y plataformas,
accesibles desde los dispositivos mas disimiles. Mientras es posible controlar desde dónde y
cómo accederán los usuarios, no es posible garantizar lo mismo de los clientes. Por lo tanto el
sistema debe contemplar la mayor cantidad de plataformas posibles, para maximizar la
experiencia del cliente final con el sistema.
o Sistema Operativos
Windows 98, Windows XP, Windows 7, Linux, Symbian OS (móvil), Mac OS X
o Navegadores
Ms Internet Explorer 6, 7 y 8, FireFox 2, 3 y 3.5, Chrome, Opera, Ópera Mini,
Konqueror
o Resoluciones
Aspecto 4:3 : 800x600 / 1024x768 / 1280x1024
Aspecto 16:9 : 1024x640 / 1280x720 / 1680x1050
Adicionalmente, el desarrollo será llevado a cabo según el framework jQuery que permite el
uso de Javascript en modo compatibilidad según los navegadores seleccionados, quitando la
responsabilidad del programador sobre los estándares tan dispares que ofrecen los diferentes
navegadores en diferentes plataformas.
42
5. HISTORIAS DE USUARIO
Al ingresar los datos del proveedor, debe buscar automáticamente en la lista de proveedores
del sistema. De no existir, debe poder ingresarlo desde la ventana de factura, sin necesidad de
navegar fuera de la factura, ni perder los datos que ya haya ingresado en la misma.
Para ingresar la línea de la factura, puede buscar el articulo por texto de descripción o código
de la distribuidora, código de barras o código del proveedor, siendo indiferente para el sistema
cuál utilice.
De encontrar una única coincidencia, debe cargar los datos de este articulo, de tener más de
una coincidencia, debe mostrar una lista de sugerencias para que el administrador seleccione
una.
El costo del producto es calculado en base al costo base del mismo y los descuentos o
recargos que correspondan a la lista de precios del proveedor seleccionado.
De la misma manera puede seleccionar la moneda en que es emitida la factura, y los precios
deben actualizarse acorde.
Una vez aceptada el ingreso de la mercadería mediante la factura de compra, se suman las
cantidades correspondientes al stock.
43
FACTURACIÓN A ALMACEN DEL GRUPO
Cuando el 100% del contenido de una factura está destinado a un almacén del grupo, se puede
seguir este proceso, para evitar duplicar el trabajo.
En las opciones de la factura selecciona “Enviar a Almacén del Grupo” y selecciona de la lista
de almacenes el que corresponda.
Al finalizar la factura, los contenidos se cargan a la cuenta del proveedor, y del almacén
seleccionado, pero no surgen modificaciones de stock.
44
CONTROL DE PAGOS A PROVEEDORES
Se puede seleccionar cada factura, e ingresar los detalles del pago de la misma.
Sobre las facturas que no fueron pagas todavía, se suman los totales y se muestra como la
“deuda” que se mantiene con el proveedor.
45
RECEPCIÓN DE PEDIDOS ON-LINE
Nota: El proceso de esta historia se detalla de manera puntual debido a la naturaleza del
mismo.
46
FACTURACIÓN A CLIENTE SOBRE PEDIDO ON-LINE
4. Emite la factura
47
FACTURACIÓN A CLIENTE SOBRE PEDIDO EN VIVO
5. Emite la factura
48
REGISTRO DE USUARIO ONLINE
Una vez verificada la cuenta, el usuario puede ingresar al sistema a realizar pedidos.
49
REPORTE DE LISTAS DE PRECIOS
Desde el backend del sistema un encargado puede listar todas las listas de precios por
nombre.
El sistema genera los precios según los porcentajes y excepciones registrados en la misma, la
moneda y el tipo de cambio actual.
50
CONSULTA DE PEDIDO ONLINE
51
MANTENIMIENTO DE PRODUCTOS
Crear Nuevo Producto
El producto debe tener información del tipo de Moneda en que se comercializa, el tipo de
impuesto que lleva y la categoría a la cuál pertenece.
Durante el ingreso se puede agregar información del Precio base y la cantidad de Stock
disponible en la distribuidora.
Modificar un Producto
Los cambios en este producto no deben afectar a compras pasadas, facturas, pedidos, etc.
Borrar un Producto
Este producto no puede ser eliminado de existir compras, facturas o pedidos con ese producto.
Desactivar un Producto
52
MANTENIMIENTO DE CLIENTES
Crear Nuevo Cliente
Modificar un Cliente
Los cambios en este cliente deben afectar a compras pasadas, facturas, pedidos solamente en
la información de nombre y contacto. Cambios en Monedas, Listas de Precios, Descuentos,
etc. no deben ser retroactivos.
Borrar un Cliente
Este cliente no puede ser eliminado de existir compras, facturas o pedidos con ese cliente.
Desactivar un Cliente
Este cliente no podrá ser usado en futuras compras, facturas o pedidos, ni entrar al sistema a
realizar pedidos.
53
MANTENIMIENTO DE PROVEEDORES
Crear Nuevo Proveedor
Modificar un Proveedor
Los cambios en este Proveedor deben afectar a compras pasadas, facturas, pedidos
solamente en la información de nombre y contacto. Cambios en Monedas, Listas de Precios,
Descuentos, etc. no deben ser retroactivos.
Borrar un Proveedor
Este Proveedor no puede ser eliminado de existir compras, facturas o pedidos con ese
Proveedor.
Desactivar un Proveedor
54
MANTENIMIENTO DE MONEDAS
Crear Nueva Moneda
Los cambios en esta Moneda deben afectar a compras, facturas y pedidos solamente a futuro
solamente
Esta Moneda no puede ser eliminada de existir compras, facturas o pedidos con esa Moneda.
Desactivar un Moneda
55
MANTENIMIENTO DE IVAS
Crear Nuevo IVA
Modificar un IVA
Los cambios en este IVA deben afectar a compras, facturas y pedidos solamente a futuro.
Borrar un IVA
Este IVA no puede ser eliminado de existir compras, facturas o pedidos con ese IVA.
Desactivar un IVA
56
MANTENIMIENTO DE CATEGORÍAS
Crear Nuevo Categoría
Modificar un Categoría
Los cambios en esta Categoría deben afectar a compras, facturas y pedidos solamente a
futuro.
Borrar un Categoría
Este Categoría no puede ser eliminada de existir artículos con esa Categoría, o de tener Sub
Categorías asociadas a ellas
Desactivar un Categoría
57
MANTENIMIENTO DE CIUDADES
Crear Nuevo Ciudad
Modificar un Ciudad
Borrar un Ciudad
Este Ciudad no puede ser eliminada de existir Clientes o Proveedores pertenecientes a esa
Ciudad.
Desactivar un Ciudad
58
MANTENIMIENTO DE PAÍSES
Crear Nuevo País
Modificar un País
Borrar un País
Este país no puede ser eliminado de existir Clientes o Proveedores pertenecientes a ese país.
Desactivar un País
59
6. INGENIERÍA DE REQUERIMIENTOS
PATRONES DE DISEÑO
El Sistema SaaS de Administración y Venta On-Line se apoya fuertemente en varios patrones
de diseño para simplificar y formalizar su código y ayudar el entendimiento y mantenimiento del
mismo.
Explicaremos algunos de los patrones utilizados debajo, la lista no resulta extensiva, ni intenta
ser en exceso explicativo del patrón, en cambio, intentará explicar el funcionamiento de
algunos puntos clave del sistema.
PATRONES DE CREACIÓN
Prototype
El beneficio inmediato del uso de este patrón es la simplificación de tareas redundantes que
agregan poco valor al diseño del sistema, mediante el uso de un método común a ellas.
Singleton
60
PATRONES E STRUCTURALES
Decorator
PATRONES DE ARQUITECTURA
61
MODELO – VISTA – CONTROLADOR
El Modelo
Doctrine también genera las sentencias SQL para las operaciones más comunes con la base
de datos, y nombra métodos que soportan las mismas.
La Vista
• {acción}Success.php
Es la plantilla invocada al ejecutar desde el controlador el método execute{acción}, si
no se detecta ningún error o excepción.
• {acción}Error.php
Es la plantilla invocada al dispararse una excepción en el método execute{acción}
• _{parciales}
Son plantillas simples, independientes del decorado, para ser reutilizadas dentro de
otras plantillas mediante la llamada include_partial o include_component. Siendo la
diferencia entre estas la llamada a un método en el component del mismo nombre para
las segundas.
Las plantillas pueden utilizar “helpers” para tareas recurrentes como crear una URL o un campo
de datos. Una plantilla puede ser decorada por un Layout propio, o heredar del genérico de la
aplicación, según la definición del archivo de configuración view.yml.
62
El Controlador
Finalmente el Controlador es dónde reside la lógica del sistema y es quién solicita datos del
Modelo y los prepara para que la Vista los despliegue. Los mismos se encuentran en el
paquete /apps/{aplicación}/modules/{módulo}/actions y generalmente se encuentran en
actions.class.php o components.class.php.
Desde el primero, se pueden llamar métodos del nombre execute{acción}, que de completar su
curso normal, enviarán la información procesada a la plantilla de nombre {acción} Success.php.
Éstos, mediante el framework de ruteo de Symfony, responden a las llamadas de la URL
http://proyecto.symfony.com/{aplicación}/{módulo}/{acción}. Siendo aplicación el nombre de la
aplicación elegida (frontend o backend en nuestro caso).
Ejemplo: Los métodos de envío de correo electrónico, procesan la plantilla como cuerpo del
mensaje, pero luego de enviado, redirigen la presentación a una nueva planilla que confirme el
éxito del envío, en lugar de mostrar el correo enviado en pantalla.
Nota: Symfony define automáticamente el frontend como acción por defecto, por lo que las
llamadas http://proyecto.symfony.com/frontend/{módulo}/{acción} y
http://proyecto.symfony.com/{módulo}/{acción} son análogas.
Para simplificar la implementación de servicios web, Symfony soporta Web Services XML de
sus métodos y la serialización de sus modelos en forma nativa.
63
DIAGRAMAS DE DEPLOY
64
DIAGRAMA DE CLASES
La naturaleza del uso del framework Symfony hace que el diagrama de clases básico se
extienda, en lo que a primera vista resultaría complejo en exceso.
El modelo debajo, muestra principalmente las clases del Modelo para entender las relaciones
con sus semejantes, pero el diagrama de paquetes probablemente explique mejor el
funcionamiento del sistema.
65
DIAGRAMAS DE PAQUETES
El diagrama de paquetes, muestra la fuerte relación del paradigma MVC con el sistema.
Por un lado tenemos las clases del modelo definidas en /lib/model, /lib/filter y /lib/form, siendo la
primera las clases del modelo de negocios, la segunda los filtros definidos para la obtención de
datos, y la tercera las clases que definen los formularios de los objetos del modelo y sus
propiedades particulares (el uso de un calendario para los campos Date por ejemplo).
Por otro lado tenemos las acciones que definen el flujo del negocio y las funcionalidades
disponibles en la aplicación, y fuertemente relacionadas las plantillas de diseño que se
encargan de presentar la información al usuario y la interacción con el mismo.
Por último, tenemos la configuración propia del framework, definida por los archivos YML,
capaz de determinar de manera simple los permisos de usuario, el uso de hojas de estilo de
presentación, el auto modelado de los formularios, etc.
66
67
DIAGRAMAS DE SECUENCIA
AGREGAR NUEVO CLIENTE
68
AGREGAR NUEVO ARTÍCULO
69
AGREGAR PRECIO DE ARTÍCULO
70
CREAR N UEVA FACTURA DE COMPRA
71
CREAR N UEVA FACTURA DE VENTA
72
I NGRESAR UN PEDIDO ON-LINE
73
I NGRESAR AL SISTEMA
74
7. SISTEMA DE BASES DE DATOS
Para ello, elegimos el sistema de base de datos relacional MySQL con InnoDB como el motor
de transacciones.
Entre otras opciones, la elección fue tomada debido a la capacidad de InnoDB de “retrasar” la
escritura de datos en disco, manteniendo un caché en memoria para acelerar pedidos
frecuentes junto a su gran capacidad de recuperar datos perdidos debido a una base de datos
dañada, lo que aumenta las garantías de recuperación de desastre.
75
DESVENTAJAS
Las desventajas del uso de InnoDB son principalmente la falta de compresión de datos, lo que
genera un mayor consumo de disco, razón secundaria debido al cada vez menor coste del
almacenamiento en medios magnéticos.
En un servidor de bases de datos estándar con discos simples (sin sistemas RAID), el motor es
capaz de realizar hasta 200 transacciones en disco simultáneas por segundo. Esto aumenta
considerablemente al utilizar discos en RAID o discos de estado sólido (SSD), pero debido al
bajo uso del sistema actual, no presenta una restricción limitante.
76
MODELO ENTIDAD RELACIÓN
El diagrama siguiente muestra a cierto grado de abstracción el diseño de la base de datos en lo
que concierne e las relaciones de cada una de las tablas. Para facilitar su comprensión, el
mismo se encuentra dividido en secciones según el área del sistema al que pertenecen.
Siguiendo el modelo debajo, se encuentra el diseño de la base de datos, en dónde se muestran
en mayor detalle cada una de las entidades y sus propiedades básicas.
77
DISEÑO DE LA BASE DE DATOS
El diseño de la base de datos fue divido según el tipo de datos afectados para simplificar su
lectura.
La región Compra almacena las tres tablas principales relacionadas al sistema de proceso de
órdenes de compras a proveedores. En ellas se encuentran las Facturas de Compras
compuesta por factura_compra y sus línea_factura_compra y los contactos de los Proveedores
en proveedor
La región Stock guarda la información de los Artículos, junto a sus colecciones de Códigos. Los
mismos están divididos en un árbol de categorías. El manejo de lista de precios se realiza en
base al precio de cada Articulo, el porcentaje de aumento o descuento definido en cada lista
particular o en las excepciones almacenadas en precio_articulo.
78
Pedidos Online y Factura son tablas análogas. La primera guarda los pedidos realizados por
los clientes o encargados de compras de los almacenes, estos están asociados a un estado
particular. Al ser procesadas, se convierten en Facturas de Venta, ya sean crédito o contado.
Ambas poseen una colección de artículos que generan el cuerpo de la misma
79
Cliente guarda la información de los usuarios del sistema que operan desde el frontend de la
aplicación, mientras que SF Guard es la estructura definida por el sistema de autenticación y
control de usuarios del framework de Symfony.
La información genérica guarda los datos de mantenimiento de la aplicación, como ser las
Monedas, tasas de impuestos, listas de países y ciudades, tipos de unidades y una tabla del
tipo Clave->Valor que guarda información general
80
MAPEO DE OBJETOS RELACIONAL
Sobre la base de datos MySQL para abstraer la comunicación con el sistema PHP, se utilizará
el sistema de mapeo de objetos relacional de Doctrine.
Éste permite acceder a los datos de una manera orientada a objetos, siguiendo el patrón Active
Record. Entre otros beneficios, Doctrine le otorga a la aplicación, soporte de datos jerárquicos
(estructura de árbol), cacheo de transacciones, transparencia en el soporte ACID (Atomicidad,
Consistencia Aislamiento, Durabilidad) de InnoDB, y por sobre todo, agrega una capa de
abstracción del motor particular utilizado, permitiendo ,de ser necesario, la migración a un
nuevo motor de bases de datos con un cambio mínimo en la configuración y en el código del a
aplicación.
De la misma manera, crea objetos que son una colección de los anteriores, con métodos para
obtenerlos según diversos criterios, simplificando la obtención de datos y el manejo de objetos
y colecciones relativos a las tablas en dónde se almacenan.
81
ABSTRACCIÓN Y PERFORMANCE
Una de las preocupaciones del uso de Doctrine, era la sobrecarga que puede ocasionar los
encabezados y la abstracción propia del modelo. Debido al uso de la aplicación por los clientes
del Grupo del Este, era imperativo lograr una excelente performance al momento de obtener
datos, incluso cuando esto significara los miles de artículos que maneja el grupo.
Por último fue habilitado el paquete APC (Caché PHP Alternativo) que es utilizado de forma
nativa por el sistema Doctrine acelerando así las consultas, pre-compilando los archivos PHP
en memoria y manteniendo los más usados en caché.
82
8. EL FRAMEWORK
SYMFONY FRAMEWORK
Según la página del sitio el Symfony Framework es :
“Symfony es un framework PHP que facilita el desarrollo de las aplicaciones web. Symfony se encarga de
todos los aspectos comunes y aburridos de las aplicaciones web, dejando que el programador se
dedique a aportar valor desarrollando las características únicas de cada proyecto.”
Desarrollado en PHP y distribuido como un paquete PEAR (PHP Extension and Application
Repository), Symfony Framework intenta simplificar las tareas comunes del desarrollo de
aplicaciones web. Brindando una separación de capas MVC, un sistema centralizado de
autenticación y control de acceso por usuarios, un modo de depuración extendido y una
extensa API que simplifica tareas frecuentes, Symfony ofrece un entorno amigable para
desarrolladores enfocados en la productividad.
Por sobre las funcionalidades básicas del framework, Symfony ofrece complementos como ser
la simplificación de envío de correo electrónico, el caché de páginas PHP, la
internacionalización de las aplicaciones, el registro de logs y más funcionalidades.
83
J QUERY Y AJAX
Según la página del sitio el Symfony Framework es :
“jQuery es una rápida y concisa librería de JavaScript que simplifica el acceso de documentos
HTML, manejo de eventos, animación e interacciones AJAX para desarrollo de aplicaciones
web. jQuery está diseñado para cambiar la manera en que se escriben aplicaciones web”
El desarrollo de la aplicación para el Grupo del Este se ha fortalecido con un extensivo uso de
jQuery Core y jQuery UI, lo que le permite garantizar interacciones AJAX en diferentes
navegadores, y al mismo tiempo mantener la compatibilidad del sistema.
La idea de Web 2.0 ha sido introducida en el uso común de la gente, y el desarrollo de una
aplicación estática no resulta factible si se considera al usuario y su interacción con la misma
como un punto importante del desarrollo.
84
LOOK & FEEL Y TEMPLATES
El diseño del template de la aplicación de Front End es utilizado según la licencia Crative
Commons del template The Island de http://www.freecsstemplates.org
El diseño del template de la aplicación de Back End es utilizado según la autorización explícita
del autor en http://www.bloganje.com/
85
ESTRUCTURA DE DIRECTORIOS
Para facilitar la navegación y el entendimiento del código, se ofrece a continuación una breve
descripción de la estructura de directorios del proyecto. Esta no es exhaustiva o absoluta,
pudiendo existir excepciones a lo mencionado debajo
Las aplicaciones se encuentran definidas dentro del directorio (apps). Ahí podemos encontrar
tanto el (backend) como el (frontend) del sistema. Dentro de cada carpeta encontramos una
carpeta de configuración general (config), una carpeta para los archivos de internacionalización
(i18n), las librerías (lib) y plantillas (templates) genéricos de la aplicación y una carpeta para
cada módulo (modules).
La carpeta modules a su vez contiene una nueva carpeta con el nombre de cada módulo, y
dentro de cada una de ellas cuatro carpetas.
La segunda (config) guarda la configuración propia de cada módulo, como ser definiciones de
control de acceso para la seguridad, vistas y otros meta-datos. La tercer carpeta (lib) guarda
librerías propias de cada módulo.
86
En (data) se encuentran los archivos de creación para la base de datos e información en
formato YML para al precargado de las mismas. En (doc) se almacena la documentación del
sistema, mientras que (lib) guarda librerías concernientes al sistema en general, como ser las
clases del dominio dentro de (model), la estrucutra de formularios y filtros para las mismas en
(form) y (filter) respectivamente, y las tareas programadas en (task).
(test) es el lugar para desarrollar las pruebas automatizadas, según el tipo (bootstrap) para
pruebas de inicio, (functional) para pruebas funcionales y (unit) para pruebas unitarias.
Por último el directorio (web) guarda los SPOE (Single Point of Entry) de ambas aplicaciones, y
es el único directorio “visible” para el servidor web de aplicaciones. Dentro de él se encuentran
los archivos de hojas de estilos (css), las imágenes de la aplicación (images), los archivos de
JavaScript (js) y las cargas realizadas mediante la aplicación (uploads)
87
9. EL PROYECTO
ALCANCES Y LIMITACIONES
El tamaño del proyecto solicitado por el Grupo del Este excede ampliamente en la
capacidad del equipo de desarrolladores para los seis meses de proyecto planteados.
Es por eso que una vez definido el alcance general del proyecto, ser limitará el mismo
en tres etapas. Sobre las tareas definidas que no se completen en el tiempo fijado de
antemano, se dejaran en el backlog del producto, lo que permitirá continuar con el
desarrollo del mismo, una vez concluido el tiempo fijado en esta primera instancia.
Se intentará desarrollar el 100% de las funcionalidades del “Debe Tener”, mientras que
se apunta a lograr un 50% de las tareas en “Sería Bueno Tener” y no se establecen
criterios para los “Extras”.
88
D EBE T ENER
Tanto clientes como administradores deben poder ingresar al sistema mediante el uso
de credenciales seguras. Es imperativo lograr una sensación de solidez para los
clientes del Grupo del Este.
Una vez ingresado un pedido On-Line, debe ser posible de manera rápida y simple,
crear una factura en base a ese pedido e imprimir la misma.
Las facturas emitidas deben, de manera intuitiva, permitir personalizar los datos del
cliente y en base a éste, ajustar la lista de precios y descuentos del mismo.
Desde una factura de compra o de venta, se deben poder aplicar diferentes recargos y
bonificaciones de manera porcentual, para la factura en general y para cada artículo
en particular.
89
Administración simplificada de Productos desde cualquier ventana.
Los productos (o artículos) deben poder ingresarse, no solo desde el ABM propio del
sistema, sino de manera rápida desde la emisión de facturas de venta o desde el
ingreso de facturas de compra
La distribuidora necesita un “Look & Feel” con el que pueda identificarse. De la misma
manera necesita elaborar un institucional que la distinga de su competencia. Es
responsabilidad del equipo trabajar con el departamento de marketing para lograr el
cometido, respetando la aplicación y homogeneizando el portal de la empresa con el
sistema de compras On-Line
Derivado del punto anterior, debería ser posible acceder al sistema de compras On-
Line desde el portal, resultando transparente para el usuario final la transición.
90
S ERÍA B UENO TENER
Los clientes del Grupo del Este deberían poder registrarse como tales desde el portal
de la empresa, independizando nuevamente al personal de ventas de una tarea
automatizable.
Un cliente del Grupo debería poder revisar el estado de sus pedidos y estar informado
del proceso del mismo
Se deberían poder definir máximos y mínimos para los stocks, precios, descuentos,
etc.
Frente a un cliente no pagador o que abusa del sitio, se debe poder bloquear su
cuenta (sin necesidad de eliminarla).
Reportes Facturación
Reportes Stock
Ídem anterior.
Ídem anterior.
91
Ídem anterior.
Ídem anterior.
Ídem anterior.
Se debe poder obtener un reporte rápido con la lista de los productos más vendidos
según un período de tiempo determinado
Ídem anterior.
Ídem anterior.
92
EXTRAS
Se debe poder monitorear los artículos que fueron solicitados pero al no disponer de
stock, no fueron entregados.
Se debe poder emitir una factura parcial en base a un pedido On-Line, dejando
productos de los que no se dispone stock en “Back Order”.
Se debe poder ingresar una nota de crédito, permitiendo así a un cliente devolver
mercadería, y adjudicarle el monto a la cuenta corriente del mismo para futuras
compras.
El stock debe mostrar un segundo nivel de stock con el estimado de ventas, una vez
que sean entregados los productos que fueron solicitados por compras On-Line que no
han sido procesadas todavía.
Se deberían poder definir máximos y mínimos para los stocks con alertas cuando
éstos sean superados para notificar a los administradores del sistema de posibles
irregularidades.
Se deberían poder definir situaciones críticas (ventas debajo de X, compras por sobre
Y, Cliente J con saldo negativo I, etc) que generen notificaciones a los administradores
del sistema de posibles irregularidades.
Reseteo de Clave
93
Mantenimiento de Monedas
Se deben poder dar de alta, baja y modificaciones a las monedas con las que opera el
sistema.
Mantenimiento de IVAs
Ídem anterior.
Mantenimiento de Ciudades
Ídem anterior.
Se deben poder actualizar las noticias, promociones del frontend desde el backend
94
PLANIFICACIÓN DE TAREAS
En el siguiente punto intentaremos explicar el plan seguido para el desarrollo del producto. El
mismo fue dividido en Sprints para respetar la metodología de Scrum utilizada durante el
proyecto. Cada uno marcaba un plan de proyecto inicial, y según el trabajo final, se replanteaba
a futuro los próximos Sprints pendientes.
S PRINT 1
Fecha de Inicio : 1ro de Abril, 2010
Wiki : http://trac2.xp-dev.com/gde/wiki/SprintUno
95
S PRINT 2
Fecha de Inicio : 16 de Abril, 2010
Wiki : http://trac2.xp-dev.com/gde/wiki/SprintDos
96
S PRINT 3
Fecha de Inicio : 30 de Abril, 2010
Wiki : http://trac2.xp-dev.com/gde/wiki/SprintTres
97
Debajo se pueden ver las tareas completadas en un 100%, las tareas parcialmente
completadas, y las tareas planeadas que no llegaron a comenzarse.
Tareas Completas
Tareas Parciales
98
Tareas Pendientes
99
S PRINT 4
Fecha de Inicio : 14 de Mayo, 2010
Wiki : http://trac2.xp-dev.com/gde/wiki/SprintCuatro
100
Debajo se pueden ver las tareas completadas en un 100%, según el formato del nuevo sistema
de administración del proyecto.
Plan de Tareas
101
S PRINT 5
Fecha de Inicio : 28 de Mayo, 2010
Wiki : http://trac2.xp-dev.com/gde/wiki/SprintCinco
102
Plan de Tareas
103
S PRINT 6
Fecha de Inicio : 11 de Junio, 2010
Wiki : http://trac2.xp-dev.com/gde/wiki/SprintCinco
104
Plan de Tareas
Total 68 35
105
S PRINT 7
Fecha de Inicio : 25 de Junio, 2010
Wiki : http://trac2.xp-dev.com/gde/wiki/SprintSiete
106
Plan de Tareas
Total 82 35
107
ESTADO ACTUAL DEL SISTEMA
S PRINT 8
Fecha de Inicio : 9 de Julio, 2010
Wiki : http://trac2.xp-dev.com/gde/wiki/SprintOcho
Plan de Tareas
108
EVOLUCIÓN DEL PRODUCTO
S PRINT 9
Fecha de Inicio : 1 de Agosto, 2010
Wiki : http://trac2.xp-dev.com/gde/wiki/SprintNueve
Detalle : El Sprint 9 será el primer Sprint en producción del cliente. Si bien hay
una lista de tareas pendientes que se intentarán introducir en
producción lo antes posible, se entiende que este Sprint genere
muchas tareas ad-hoc, y requieran de modificaciones y correcciones de
bugs de manera inmediata.
Plan de Tareas
109
10. EL PRODUCTO
PRODUCTO FINAL
El Sistema de Administración y Venta On-Line para grupo del este, tal como el nombre lo
indica, son dos sistemas que operan conjuntamente.
Por un lado nos encontramos con un sitio institucional para la distribuidora (conocido como
frontend), que les permite a sus clientes informarse acerca de la misma, junto con la
funcionalidad de realizar pedidos en línea, evitando así demoras en la distribuidora, y ayudando
a la misma al proceso de digitalización de la información.
Haciendo uso del alcance de internet y el acceso a una computadora, la Distribuidora es capaz
de presentar un puesto de ventas 24 horas al día, 365 días al año, con un costo ínfimo, en
comparación al horario reducido en que opera la misma, junto al costo hora de un empleado
dedicado a la atención de cada cliente.
Este sistema permite también al cliente, informarse sobre descuentos, promociones y más, lo
que resulta en un beneficio mutuo. El cliente está mejor informado sobre posibles
oportunidades para su empresa, mientras que el Grupo del Este de manera sencilla y
económica, logra informar a sus clientes sobre beneficios, excedentes, etc.
110
Del otro lado del sistema, se encuentra el sistema de administración o backend. Desde aquí y
de manera central, la distribuidora puede organizar tanto sus compras de mercadería a
proveedores y mayoristas, como la venta a sus propios almacenes y clientes.
Junto con esto, le permite obtener una serie de reportes e información en tiempo real, que en
un sistema manual resulta impracticable o casi imposible. Pudiendo hacer un minucioso
análisis de las compras y ventas, de la fluctuación de los precios y de las demandas por
temporada, fecha y más.
Por sobre eso, el sistema resuelve de manera simple el manejo de cientos de artículos de
diferentes proveedores, cada uno con su código particular, su nomenclatura propia etc. Para el
sistema, se encuentran todos unificados y bajo un sistema común.
111
INSTALACIÓN E IMPLEMENTACIÓN
Nota: Para simplificar el proceso de instalación, se entrega con el producto un DVD con una
máquina virtual de Sun VirtualBox y el instalador para Windows 32 de la misma. Con solamente
instalar VirtualBox, se puede importar un servicio virtualizado, y seleccionar el contenido del
DVD (copiado a un disco escribible). Independientemente puede seguir las instrucciones
debajo para obtener un sistema 100% funcional.
Para instalar el sistema de grupo del este, se necesita instalar primero el Apache Web Server,
seguido del módulo PHP, la base de datos MySQL y el framewok Symfony.
Una vez instalado, se deben configurar las conexiones entre los sistemas, y validar el entorno.
Debajo encontrará una guía paso a paso de cómo dejar el sistema en funcionamiento dentro de
un entorno Windows.
2. Ejecute el instalador
112
4. Complete la instalación
6. Ejecute el instalador
113
8. Seleccione el directorio de configuración del Apache
114
14. Ejecute el instalador
115
17. Seleccione el tipo de configuración
116
20. Por último seleccione el mapa de caracteres y el modo de ejecución
23. Copie el archivo libmySQL.dll del directorio raiz de PHP al directorio System32 de
Windows
117
CONFIGURACIÓN
Una vez instaladas las aplicaciones base del servidor, debe pasar a configurar las mismas.
Debajo se muestra una guía paso a paso de cómo configurar la aplicación.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName dominio.com
DocumentRoot "Directorio Aplicación\web"
DirectoryIndex index.php
Alias /sf "Directorio Symfony\sf"
<Directory " Directorio Aplicación\web">
AllowOverride All
Order allow,deny
Allow from All
</Directory>
</VirtualHost>
4. De no tener un dominio calificado, edite el archivo hosts.ini y agregue una linea que
corresponda a dominio.com
include_path=".;C:\Directorio Zend\library"
118
7. Desde la consola de MySQL cree un nuevo schema
Nota: Puede utilizar la herramienta MySQL Administrator y MySQL Query Browser
para realizar la configuración de la base de datos desde un entorno Point & Click
119
AYUDA Y MANUAL DE USUARIO
El siguiente, intenta dar una guía básica de cómo acceder al sistema y realizar las operaciones
más comunes. Dada la naturaleza de la aplicación Web, la mayoría de la ayuda contextual se
encuentra en el sistema mismo.
De la misma manera, en la Wiki del proyecto hay información detallada sobre las diferentes
funcionalidades, y por sobre eso, la misma puede ser expandida con las experiencias y
comentarios de los propios usuarios de la aplicación.
2. Complete el formulario.
Luego de aplicar a una cuenta, recibirá un correo electrónico a la dirección ingresada que ;e
permitirá verificar su cuenta.
120
Ingreso
Nota : De no recordar sus datos, puede seleccionar Olvidaste tu clave e ingresando su casilla
de correo recibirá la información de cómo recuperar su usuario y clave.
121
Pedido Online
6. Seleccione Agregar
Modificar Pedido
Mientras el pedido no esté procesado, podrá modificar las cantidades y los productos del
mismo
Cancelar Pedido
122
Estados de pedidos
Los pedidos respetan el flujo de negocio, y se pueden encontrar en uno de los siguientes
estados :
1. Nuevo
El pedido aun no ha sido enviado, puede ser modificado.
2. Pendiente
El pedido ha sido enviado para su proceso, cuando la factura ha sido emitida, su
estado cambiara a procesado. Un pedido enviado no podrá ser modificado ni
cancelado.
3. Procesado
El pedido está siendo procesado por el personal de la distribuidora
4. Completo
El pedido se encuentra listo para ser retirado
5. Cerrado
El pedido fue retirado de la distribuidora y entregado al cliente.
123
MANUAL DEL ADMINISTRADOR
El siguiente intenta ser una guía básica del backend del sistema, como referencia y a modo
explicativo. La mayoría de la ayuda, se encontrará en el menú de Ayuda Rápida sobre el panel
de acciones a la derecha del sistema.
Ingreso al sistema
3. Presione Aceptar
124
Facturas de Compras
En el menú de Factura Compras podrá ingresar una boleta de compras, para agregar al stock
actual. En la página principal de Factura Compras podrá:
125
6. Escriba el nombre del proveedor. Una lista contextual mostrará los proveedores que
coincidan con su búsqueda.
8. Moneda – Cotización – Ingrese la moneda deseada y ajuste la cotización del día de ser
requerido.
11. Ingrese el nombre o algún código de articulo. Una lista se desplegará con las
coincidencias para seleccionarlo de la misma
12. Podrá editar de forma manual el Costo, la Cantidad y el descuento particular del
Articulo ingresado.
126
Facturas Ventas
En el menú de Factura Venta podrá ingresar una boleta de venta, de forma manual.
Nota : Alternativamente puede usar el método abreviado Nueva Venta en las opciones
del panel de acceso rápido
6. Escriba el nombre del cliente. Una lista contextual mostrará los clientes que coincidan
con su búsqueda.
127
7. Fecha – Ingrese la fecha de venta de la factura. El ícono de la derecha provee acceso
a un calendario para simplificar la tarea.
8. Moneda – Cotización – Ingrese la moneda deseada y ajuste la cotización del día de ser
requerido.
11. Ingrese el nombre o algún código de articulo. Una lista se desplegará con las
coincidencias para seleccionarlo de la misma
12. Podrá editar de forma manual el Costo, la Cantidad y el descuento particular del
Articulo ingresado.
128
Procesar Pedidos Online
129
Listas de Precio
• Modificar de forma manual el precio de algún producto en particular para una lista de
precios especifica.
130
Porcentajes Manuales
Usted podrá Agregar, eliminar o modificar de forma manual el valor de productos en alguna de
las listas de precio. El valor del producto será el de Porcentajes Manuales. De no existir un
valor determinado de forma manual, el valor del producto será el determinado por el valor del
articulo mas el porcentaje de la lista de precio.
Para agregar
Si desea ingresar mas de una precio manual puede seleccionar “Save and add”.
Para eliminar
Para modificar
131
Mantenimiento
• Clientes
• Proveedores
• Monedas
• Productos
• IVA
• Categorias
• Ciudad
• Pais
• Clientes:
Usted podrá Agregar, eliminar o modificar los clientes ingresados en el sistema. Note que si
desea que el cliente pueda ingresar pedidos de forma online, deberá crear un Usuario y allí
llenar los datos.
Para agregar
Para eliminar
Para modificar
132
MANTENIMIENTO
El proyecto se encuentra en fuerte desarrollo. La primer etapa del sistema ha sido completada
y está en beta para ser utilizado en producción.
Esto no implica que el sistema esté carente de defectos, por lo que existe un fuerte control del
sistema y mantenimiento del mismo.
Para ello, se trabaja en conjunto con los administradores del sistema que utilizan a diario el
mismo. Cuando se encuentra un error o defecto, el mismo debe ser reportado mediante el
sistema de manejo de errores.
Para crear un nuevo reporte de errores, basta con acceder a la URL debajo, y llenar los
campos Summary, Description y opcionalmente Component y Priority
http://trac2.xp-dev.com/gde/newticket
133
PLAN DE CONTINUIDAD DE NEGOCIOS
La información es uno de los activos más importantes para las organizaciones, donde los
sistemas de información y disponibilidad de estos juegan un rol preponderante para la
continuidad de un negocio.
Para eso se desarrolla lo que se conoce como BCP (de las siglas en Inglés Business Continuity
Plan) y DR (Disaster Recovery) con el objetivo de mantener la funcionalidad del sistema, a un
nivel mínimo aceptable durante una contingencia.
Para ello, el sistema de Grupo del Este, cuenta independiente de sus servidores tercerizados
con sus propios mecanismos de BCP, con un respaldo diario de la base de datos, que se
realiza a la medianoche, y es transferido a los sistemas locales de la empresa.
En caso de desastre, como ser la caída del servicio de alojamiento web o del enlace a internet,
y sea imposible seguir operando desde ese servicio, existe un mecanismo por el cual se puede
levantar un servidor local (mediante una máquina virtual) para operar en forma local, con la
información respaldada la noche anterior, o en su defecto, levantar en un alojamiento local
mediante un DNS Dinámico.
Éste proveerá un sistema con funcionalidades reducidas y a velocidades mucho menores, pero
mantendrá vivo el sitio, evitando así, una pérdida total del servicio.
134
MERCADEO Y PLAN DE FUTURO
HOSTING Y SUBSCRIPCIÓN
El mantenimiento a futuro del sistema del Grupo del Este, involucra los costos mensuales
asociados al hosting, sumados al dominio registrado. Actualmente el hosting se terceriza a la
empresa estadounidense A2 Hosting. El mismo tiene un cósto de U$S 4.77 por més en su plan
de 36 meses. El dominio se realizó a través de AntelData, y el dominio grupodeleste.com.uy
conlleva un costo anual de $ 485.
En la página principal del sistema, se encontrará un link con la información de contacto de los
proveedores del sistema, y sobre este sitio, se detallarán las funcionalidades del sistema, el
costo del mismo y el plan de soporte y mantenimiento.
Junto a eso, se tendrá acceso a un “sandbox” con las funcionalidades en pleno desarrollo que
le permitirá a un usuario no registrado, entrar a jugar con el sistema como si fuera un sistema
real.
135
11. ÍNDICE
A IVA, 56, 94
administrador, 43, 44, 52, 53, 54, 55, 56, 57, 58, 59, J
89
alcance, 39, 88, 96, 110 jQuery, 16, 17, 20, 37, 42, 84, 106, 139
Anteproyecto, 95
arquitectura, 11, 15, 16, 20, 33, 34, 41, 96, 97 L
artículo, 10, 21, 43, 57, 79, 82, 89, 90, 93, 109, 111,
130 Listas de Precios, 39, 50, 53, 54, 89, 91, 98, 105
Look & Feel, 85, 90
B
M
backlog, 88
bonificaciones, 89 mantenimiento, 14, 17, 22, 52, 53, 54, 55, 56, 57,
Burndown, 15, 31, 97, 100, 102, 104, 108 58, 59, 80, 133, 135
Moneda, 53, 54, 55, 80, 94, 132
C
O
Categoría, 57
Ciudad, 58, 94 On-Line, 1, 6, 12, 13, 35, 41, 46, 47, 73, 89, 90, 91,
Cliente, 6, 7, 11, 39, 47, 48, 53, 58, 59, 68, 80, 89, 93, 94, 99, 102, 104, 107, 109, 110
90, 91, 92, 93, 98, 103, 105, 107, 108, 109, 120,
132 P
compra, 7, 10, 11, 21, 35, 43, 46, 52, 53, 54, 55, 56,
57, 78, 79, 89, 90, 92, 93, 104, 105, 107, 111, 125 País, 59
Continuidad de Negocios, 134, 139 pedido, 10, 12, 13, 35, 89, 91, 93, 99, 102, 103, 105,
cuenta corriente, 91, 93 107, 109, 122, 123, 129
PHP, 14, 15, 16, 17, 20, 34, 81, 82, 83, 112, 113,
117, 118, 139
F producto, 11, 12, 19, 32, 36, 37, 39, 43, 52, 88, 92,
factura, 12, 13, 37, 43, 44, 47, 48, 78, 89, 91, 93, 99, 95, 96, 112, 122, 135
102, 103, 107, 108, 123 Producto, 46, 52, 90, 92, 108, 132
Factura, 71, 72, 79, 89, 93, 98, 99, 101, 109, 139 proveedor, 43, 44, 78, 92, 107, 111
facturación. See Factura Proveedor, 54, 58, 59, 132
Facturación. See Factura Proveedores, 6, 39, 45, 78, 90, 98, 103, 107, 109
facturar. See Factura
facturas, 12, 43, 52, 53, 54, 55, 56, 57, 89, 90, 98, R
101, 102
framework, 14, 16, 20, 37, 40, 42, 80, 83, 84, 106 recargos, 43, 89
reporte, 6, 10, 31, 32, 47, 48, 91, 92, 93, 111, 133
Requerimientos, 32, 60
G
Grupo del Este, 6, 7, 8, 19, 34, 35, 75, 82, 84, 88, S
89, 91, 104, 110, 134, 135
SaaS, 1, 6, 19, 34, 35
Scrum, 15, 18, 31, 32, 36, 95, 97, 140
I Sprint, 95, 96, 97, 100, 102, 104, 106, 108, 109
Iterations, 15 Sprints, 32, 38, 95, 96, 108
136
SQL, 6, 14, 15, 16, 17, 20, 34, 75, 81, 112, 114, 119, U
139
stock, 6, 7, 10, 13, 35, 43, 46, 47, 48, 89, 91, 93 UML, 15, 17, 140
Symfony, 14, 15, 16, 17, 20, 37, 40, 80, 83, 84, 112,
117, 118, 140 V
venta, 6, 12, 21, 35, 89, 90, 94, 99, 103, 111, 127,
T
128, 129
Tecnología, 20
137
12. ANEXOS Y TABLAS
BIBLIOGRAFÍA
Google (2010). La Internet
AMBLER, Scott William (2004). The Object Primer: Agile Model Driven Development with UML 2.
Cambridge University Press.
WELLING, Luke - THOMSON, Laura (2008). PHP and MySQL Web Development. Addison-Wesley
Professional
138
REFERENCIAS
A2 Hosting http://www.a2hosting.com
BoUML http://bouml.free.fr/
Gliffy http://www.gliffy.com
jQuery http://jquery.org/
La Factura http://www.derechocomercial.edu.uy/ContCV
02.htm
MySQL http://mysql.com/
Notepad++ http://notepad-plus-plus.org/
NetBeans http://netbeans.org/
PHP http://php.net/
139
x?option=24843
Scrum http://www.scrum.org/
SubVersion http://subversion.apache.org/
Trac http://trac.edgewall.org/
Zend http://www.zend.com/
140