Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TITULO DEL PROYECTO DESARROLLO DE UN SISTEMA DE PUNTOS DE VENTAS PARA MICROMERCADOS, UTILIZANDO LA METODOLOGA EXTREME PROGRAMMING.
POR:
ANDRS ALEJANDRO GUZMN VILA
CERTIFICACIN
Certifico que el presente trabajo fue realizado en su totalidad por el Sr. Andrs Alejandro Guzmn vila como requerimiento parcial a la obtencin del ttulo de INGENIERO DE SISTEMAS E INFORMTICA
ii
DEDICATORIA
A m amado hijo Andrecito, por entender que no pude brindarle todo mi tiempo mientras cumpla el rol de estudiante y por ser la razn que me llev a lograr mis objetivos.
A mi amada esposa Maria Jos por su f en mis capacidades y su apoyo incondicional en cada paso de mi carrera, por ser compaera, amiga y la persona que ha compartido conmigo los buenos y malos momentos durante estos cinco aos.
A mi madre quien con mucho esfuerzo a la distancia, me apoy econmica y moralmente en esta etapa importante de mi vida.
A mi padre por cultivar en m los principios y valores que sirvieron de cimiento, para que hoy se vea realizado uno de mis ms grandes sueos.
iii
AGRADECIMIENTO
Agradezco a Dios por haberme mostrado el camino correcto para alcanzar uno de mis ms grandes sueos, culminar mi carrera profesional.
A mi querida Facultad de Ingeniera de Sistemas de la Escuela Politcnica del Ejrcito, por brindarme la oportunidad de forjarme como persona y profesional.
De manera muy especial rindo un agradecimiento al Ing. Fernando Galrraga y al Ing. Danilo Martnez, por ser mi gua, ofrecindome sus conocimientos y apoyo incondicional.
iv
RESUMEN
El proyecto presentado a continuacin, pretende implementar un sistema utilizando las mejores prcticas de la metodologa XP ( EXTREME PROGRAMMING), siendo sta una de las ms utilizadas por los jefes de proyectos, la aplicacin que se implementar tiene que ver con un sistemas de puntos de venta para un Micromercado. Las herramientas utilizadas para el desarrollo son: Microsoft Visual Basic .NET 2005, siendo una herramienta muy robusta, la base de datos MySql , adems se utilizo NUNIT para la realizacin de pruebas automatizadas. La metodologa XP al igual que las metodologas giles permiten un desarrollo rpido de proyectos pequeos y medianos. No es recomendado para proyectos grandes. Se puede observar todas las fases de XP descritas en el marco terico y utilizado ya en el desarrollo el mismo.
CAPTULO I
INTRODUCCIN
1.1.
Micromercado Adrin.
En la actualidad el Micromercado no cuenta con una herramienta informtica para la administracin del mismo, es por eso que todas las tareas se las hace manualmente desde el inventario hasta la facturacin.
El Micromercado Adrin se encuentra ubicado en Carapungo primera etapa, situndose en un lugar muy poblado.
Este sistema al ser open source permitir que otros Micromercados puedan contar con el cdigo fuente para personalizar segn sus requerimientos.
En la actualidad las empresas buscan los medios que les permitan obtener ventajas competitivas, tristemente el mercado mundial se ha convertido en una injusta contienda entre las grandes y pequeas organizaciones.
Los sistemas de software se han transformado en herramienta indispensable, lamentablemente no todas las empresas pueden tener acceso a estos recursos informticos.
Sin duda alguna se le considera este fenmeno como un problema que puede solucionarse gracias a los sistemas open source que han ocasionado una revolucin informtica en los ltimos aos.
Este estudio se centrar en la construccin de un sistema de puntos de venta que satisfaga una necesidad cada vez ms requerida por micro mercados ayudndoles con una herramienta que les permita tener un inventario de los productos que estos comercializan y a su vez un sistema que permita la facturacin del mismo.
1.2.
Objetivos
vi
1.3.
Antecedentes
En los ltimos aos la utilizacin de ordenadores provoc que las empresas se desarrollen ms rpidamente. Antes una organizacin llegaba a su madurez en un tiempo mnimo de 50 aos, con la evolucin tecnolgica esto se acort
Las exigencias de las organizaciones cambiaron en razn de que los sistemas informticos fueron ingresando. Las necesidades informticas fueron creciendo junto con sus empresas, considerndose la informacin como un bien importante llegando a ser apreciado y protegido.
La necesidad de contar con herramientas que faciliten el desarrollo de software fue creciendo y en unos aos se cont con algunas metodologas, las necesidades seguan creciendo y estos procesos metodolgicos fueron quedndose al margen llegando a requerir de otros que contesten de una forma ms rpida y gil.
La creacin de las metodologas giles ayud a los desarrolladores a cubrir esas necesidades con una repuesta ms rpida. La Programacin Extrema O Extreme Programming, se eligi para el desarrollo de ste proyecto.
Al conocer la metodologa para el desarrollo de este proyecto, lo que se realizar es un estudio investigativo profundo, con el fin de entender la forma de aplicar en un sistema de puntos de ventas para micro mercados.
El desarrollo de este proyecto permitir brindar a un mercado poco explotado como lo son los micros mercados, estos tendrn la posibilidad de adquirir una herramienta que les ayude con el control de sus actividades como; facturacin e inventario
vii
1.4.
Justificacin
La razn para la realizacin del proyecto es efectuar un estudio investigativo de la metodologa
Extreme Programing (XP). Se eligi sta debido al tipo proyecto, en este caso es un software mediano el cual no necesita utilizar las tradicionales metodologas que a pesar de ser muy conocidas y difundidas no ameritan su uso. Se le considera a Xp como una metodologa gil ya que permite cambios rpidos de requerimientos de usuario.
Para el desarrollo del proyecto se utilizar herramientas como: Visual Studio .Net 2005 con Visual Basic siendo una tecnologa con una infinidad de bondades permitiendo que el desarrollo sea fcil y sencillo; Herramientas Open Source como MySql, porque hoy en da exista la necesidad de incorporar varias tecnologas en el desarrollo de sistemas.
Al utilizar dichas tecnologas ste proyecto ser un sistema mixto, pues se emplea herramientas de licenciamiento privado y pblico.
Otro de los motivos para la realizacin del presente proyecto se debe a que en la actualidad las empresas desarrolladoras de software se han preocupado tan solo de brindar productos de software a las grandes organizaciones, dejando a las micro y pequeos mercados sin la posibilidad de acceder a una herramienta por sus altos precios.
Considerado que las micro y pequeas empresas constituyen el 95%, aportando con la mayor cantidad de fuentes de trabajo, mientras que las medianas y grandes el 5%, se observa la magnitud de la problemtica que existe en nuestro pas, al no brindar herramientas ni ayuda econmica para el desarrollo de las mismas.
Es por esto que se realizar un software que se oriente a esas necesidades, aportando tanto para el estudio de la metodologa antes mencionada en cuestin acadmica y tambin en la humana para presentar una herramienta que ayude a estas microempresas a desarrollarse.
Los proyectos no solo tienen que centrarse en lo acadmico, sino en la social, aportando con un granito de arena en beneficio de la comunidad, esto se quiere lograr con el proyecto, es por eso que las licencia de este software son publico, brindando a esas empresas la posibilidad de contar sin costo alguno de un Sistema de puntos de ventas.
viii
1.5.
Alcance
La Facturacin adems es un respaldo tanto para los clientes como para la empresa de las compras y ventas realizadas respectivamente.
El proyecto realizar: la planificacin, diseo, desarrollo y pruebas utilizando la metodologa Extreme Programing.
1.6.
Metodologa
Para la realizacin del Marco Terico se utilizar una metodologa de trabajo fundamentada en la Investigacin Bibliogrfica de Fuentes de Informacin. Con esto se pretende recopilar informacin necesaria y til para poder desarrollar el Marco Terico, que nos servir como un soporte tcnico y terico para la terminacin de este proyecto.
La metodologa que se emplear para el desarrollo del producto de software, es una de las metodologas giles, ms utilizadas por los desarrolladores de software y empresas. sta es Extreme Programming (Programacin extrema) XP.
ix
XP es una metodologa liviana debido a que disminuye los Overhead, sobre actividades de desarrollo. Se la eligi debido a que es una forma ligera, eficiente, flexible, predecible y cientfica de generar software". Extreme Programming utiliza cuatro variables que gua el desarrollo de sistemas, el costo, el tiempo, calidad y alcance.
Lo que pretende XP es: un desarrollo gil, disciplinado con soluciones sencillas, con un enfoque adaptativo, de tal manera de seguir el progreso de la planificacin conforme con los cambios.
1.6.1.1.
Planificacin
a) Se redactan las historias de usuarios. b) Se crea un plan de entregas. c) Se controla la velocidad del proyecto.
d) Se divide el proyecto en iteraciones. e) f) Al comienzo de cada iteracin se traza el plan de iteracin Se rota al personal
g) Cada da se convoca una reunin de seguimiento h) Corregir la propia metodologa XP cuando falla
1.6.1.2.
Diseo
a) Realizar las cosas de la manera mas sencilla b) Coherencia de los nombres de todo lo que se va a implementar c) Usar tarjetas CRC. En esta tarjeta se registra los nombres de las clases, sus responsabilidades y con que otras clases colaboran d) Soluciones puntuales para reducir riesgos e) f) No se aadir funcionalidad en las primeras etapas Reaprovechar cuando sea posible
1.6.1.3.
Desarrollo
a) El cliente est siempre disponible b) Se debe escribir cdigo de acuerdo a los estndares c) Desarrollar la unidad de pruebas primero
d) Todo el cdigo debe programarse por parejas e) Slo una pareja se encargar de integrar el cdigo
f)
1.6.1.4.
Pruebas
a) Todo el cdigo debe ir acompaado de su unidad de pruebas b) Todo el cdigo debe pasar las unidades de pruebas antes de ser implantado c) Crear una unidad de pruebas para protegerse del mismo
d) Se deben ejecutar pruebas de aceptacin a menudo y publicar los resultados e) Las pruebas unitarias
1.7.
Herramienta
Las herramientas que ayudar a la construccin del Sistemas para Micro Empresas se presentan a
continuacin:
La plataforma que se utilizar para el desarrollo, es la Microsoft , debido a que es robusta, brindando una serie de servicios que ayudan a aminorar el tiempo de desarrollo y lo ms importante, contar con soporte tcnico.
a) Microsoft Studio.Net, Visual Studio .Net 2005: es una herramienta grfica de desarrollo, fcil de utilizar, ahorrar tiempo.
b) Power Designer: Para el modelado de la base de datos, ya que es una herramienta robusta, para la elaboracin de modelos lgicos y fsicos de la misma
c)
MySQL 4.0.20: Como motor de base de Datos, por ser robusto y de tecnologa Open Source, siendo este gratuito bajo las restricciones de la Licencia GNU.
xi
2.1.
La necesidad imprescindible en tiendas, comercios, restaurantes y otros, es contar con un sistema de puntos de venta que permite el proceso de salida y cobro de la mercadera.
Los sistemas de puntos de ventas sirven como un medio de comunicacin entre el cliente y el distribuidor permitiendo una interaccin directa, facilitando el proceso de comercializacin.
a) Escneres: Este dispositivo se encarga de interpretar un cdigo de barra (EAN/UCC-13, EAN/UCC-8, UCC-12, EAN/UCC-14 Y GS1-128 en Ecuador) para luego trasformarla en informacin que ser procesada por el ordenador.
xii
b)Cajn portamonedas: Los cajones portamonedas ms usuales se conectan a un puerto especial que incorpora la propia impresora de tickets.
c) Impresora de recibos: La impresoras permiten emitir la factura o comprobantes de ventas, repotes y boucher. Existen matriciales, trmicas y de tinta.
d)Monitor Touch-Screen: La utilizacin estos monitores facilitan la interaccin entre el usuario y el computador sin la necesidad de la utilizacin del ratn tradicional
e) Lectores banda magntica: Este lector permite la interpretacin de la informacin de tarjetas magnticas como tarjetas de crdito o debito de los bancos, tarjetas de tiendas departamentales, clubes y mas, con el fin de ser luego utilizadas por el ordenador, el mismo que guardar o modificar la informacin en una base de datos.
xiii
f) Gabinete CPU: Es compuesto por la tarjeta madre, disco duro, memoria, unidad de CD, opcionalmente algn otro accesorio como lo son las tarjetas de red, etc.
g) Terminal punto de venta: Es un equipo diseado especialmente para el proceso de puntos de venta ya que es ms resistente que los ordenadores normales
Display o visor de TPV: Pantalla de visualizacin de datos donde el cliente puede ver el resultado de la operacin de venta u otra informacin antes de la impresin del ticket.
2.3.
El sistema GS1 es un conjunto de estndares que facilitan la administracin de identificacin de productos, unidades de embarque, bienes, localizaciones y servicios. Los estndares utilizados en el ecuador son EAN/UCC-13, EAN/UCC-8, UCC-12, EAN/UCC-14 Y GS1-128
xiv
Figura 2.3.1: (Composicin numrica del cdigo de Barra EAN/UCC-13)1 La EAN/UCC-8 se utiliza solamente para envases o embalajes que no tiene espacio til suficiente para la aplicacin del cdigo EAN/UCC-13
1 Codificacin y simbolizacin GS1, 2006, http://www.gs1ec.org/cgi-bin/biblioteca-pub/lm.pl 2 Codificacin y simbolizacin GS1, 2006, http://www.gs1ec.org/cgi-bin/biblioteca-pub/lm.pl
xv
Figura 2.3.3: (Codificacin de la unidad logstica)3 Cdigo GS1-128 identifica los productos o los paquetes multiunitarios, la informacin complementaria es: No del articulo, nmero del lote, cantidad, fecha de fabricacin, fecha mxima de duracin, nmero de serie, contenido neto, peso bruto, dimensiones y No de pedido del cliente.
2.4.
Es un impuesto que esta grabado sobre algunos bienes o servicios con tarifa cero o 12 %. nicamente estn grabados con tarifa cero los siguientes productos. Tabla 2.4.1: (Productos con tarifa cero)5 Productos con tarifa cero Productos alimenticios de origen primario (no industrializados). Leches en estado natural, maternizadas y proteicos infantiles. Pan, azcar, panela, manteca, y otros de primera necesidad. Semillas, alimentos balanceados, fertilizantes. Tractores, arados, equipos de riego y otros de uso agrcola. Medicamentos y drogas de uso humano. Papel y libros. Los que se exporten. Los que introduzcan al pas los diplomticos extranjeros, pasajeros internacionales; donaciones desde el exterior, bienes admitidos temporalmente e importaciones de bienes de capital por parte del sector pblico.
2.5.
Los micromercados
3 Codificacin y simbolizacin GS1, 2006, http://www.gs1ec.org/cgi-bin/biblioteca-pub/lm.pl 4 Codificacin y simbolizacin GS1, 2006, http://www.gs1ec.org/cgi-bin/biblioteca-pub/lm.pl 5 REgisatro Oficial, 2006, http://www.dlh.lahora.com.ec/paginas/judicial/PAGINAS/R.O.Marzo.16.2006.htm
xvi
Los micros y pequeas empresas constituyen una potencia impulsora de los pases latinoamericanos, considerndose como principal fuente de trabajo y entes de capacitacin del recurso humano, son considerados como el primer eslabn de la produccin.
Los micros y pequeas empresas constituyen en Latinoamrica el 95% de todas las empresas, convirtindose en el sustento de la mayor cantidad de personas que laboran en ellas, se le considera de gran importancia pero lamentablemente en nuestro pas no existe polticas que ayuden a las mismas.
La mala administracin y la falta de conocimiento ha dificultado su crecimiento. En Taiwn se determin que las micro y pequeas empresas familiares son el pilar importante para ese pas, sin necesidad de un gran capital se desarrollaron y crecieron, solo con la utilizacin de tcnica sencillas de administracin.
Se determin los factores que intervienen en el estancamiento, estos son los siguientes: el aislamiento, falta de administracin, ineficiencia, falta de incorporacin de nuevas tecnologas, problemas familiares, falta de apoyo tcnico, equipos obsoletos y recurso humano mal capacitado. 6
Los Factores externos que intervienen en este fenmeno, no permiten la justa competencia, esto se debe a que hay grandes empresas que monopolizan. El libre mercado no permite el crecimiento, no hay polticas que protejas o ayuden en el ingreso al mercado.
El 90 % de empresas que cierran o desaparecen obedecen a la mala administracin, con estos datos se entiende la importancia de utilizar tcnicas de administracin y planificacin.7
6 ANSOLA R., Srvulo. Administracin de pequeas empresas. Editorial McGraw-Hill. Segunda edicin. Mxico. 2002. Pg. 1-3 7 ANSOLA R., Srvulo. Administracin de pequeas empresas. Editorial McGraw-Hill. Segunda edicin. Mxico. 2002. Pg. 1.
xvii
Si hablamos de caractersticas podemos entender mejor, una es el Administrador del negocio, en una organizacin grande pude ser el propietario de la empresa o un empleado, mientras que en la pequea casi siempre es el propietario. Otra caracterstica es la forma de financiamiento de las empresas, mientras que la grande cuenta con inversionistas en la pequea existe la reinversin.8
2.6.
Metodologas giles
Nace el termino gil en la reunin en febrero del 2001 (UTA-EEUU) para el desarrollo de
software, en sta convencin se creo una organizacin sin fines de lucro y promoviendo los conceptos de esta actividad, la organizacin se la llamo THE AGILE ALLIANCE.9
La necesidad surgi por obtener mejores formas de desarrollo de software respondiendo a los cambios rpidos que se determinan en un proyecto y brindando una manera rpida de producirlos. Otra de las dificultades que se encuentran en un producto de software es la extensa documentacin que puede llegar a ser innecesaria en algunos casos.
b) Scrum: Desarrolladas por Ken Schwaber, Jeff Sutherland y Mike Beedle. Pertenece a los crculos orientados a objetos, ste tipo de metodologa divide al proyecto en iteraciones de 30 das, se lo denomina carrera, todos los das se rene el equipo de trabajo y exponen: las dificultades, lo que se ha hecho para determinar lo que harn el da siguiente, ste encuentro puede durar 15 o 30 minutos.
c)
Crystal Methodologies: Desarrollada por Alistair Cockburn. ste conjunto de metodologas se centra en la gente invirtiendo en esfuerzos por mejorar su habilidad y destreza, identificando procesos menos disciplinados, considerando al desarrollo de software como un juego cooperativo de invencin, comunicacin y polticas definidas para el trabajo en equipo, dependiendo del tamao del equipo.
d) Dynamic Systems Development Method (DSDM): El equipo de desarrollo trabaja en conjunto con el usuario, su principal caracterstica es ser un proceso iterativo y incremental. Las fases de esta metodologa es: estudio de viabilidad, estudio del negocio, modelado
8 ANSOLA R., Srvulo. Administracin de pequeas empresas. Editorial McGraw-Hill. Segunda edicin. Mxico. 2002. Pg. 6. 9 Mtodologas giles para el desarrollo de software , 2004, www.willydev.net/descargas/prev/TodoAgil.Pdf
xviii
funcional, diseo, construccin, y finalmente implementacin, siendo las tres ltimas iterativas adems de existir realimentacin a todas las fases.
e)
Adaptive Software Development (ASD): Impulsor: Jim Highsmith. Fomenta el aprendizaje en el proyecto identificando las partes ms difciles de sta con el fin de dar respuestas creativas, sus principales caractersticas son: iterativo, orientado a los componentes de software ms que a las tareas y tolerante a los cambios.
Propone tres fases esenciales: En la especulacin se inicia el proyecto y se planifican las caractersticas del software, en la colaboracin se desarrollan las caractersticas, en el aprendizaje se revisa su calidad y por ultimo se entrega al cliente.10
f)
Feature -Driven Development (FDD): Impulsores Jeff De Luca y Peter Coad. sta metodologa iterativa consta de 5 procesos que son: Desarrollar un Modelo Global, Construir una Lista de los Rasgos, Planear por Rasgo (stas 3 primeras se hacen al principio del proyecto), Disear por Rasgo, Construir por Rasgo (stas 2 ltimas se hacen en cada iteracin). Las iteraciones son cortas (hasta 2 semanas).
Los desarrolladores entran en dos tipos: dueos de clases y programadores jefe. Siendo los programadores jefe los ms experimentados.
g) Lean Development (LD): Definida por Bob Charette. En LD, los cambios se consideran riesgos, pero si se manejan adecuadamente se pueden convertir en oportunidades que mejoren la productividad del cliente. Su principal caracterstica es introducir un mecanismo para implementar dichos cambios.11
h) Cdigo Abierto: Esta metodologa se la puede aplicar para la realizacin de cdigo cerrado, ya que brinda los mismos beneficios, se caracteriza por tener un equipo bien definido el cual se encuentra constitutito por un mantenedor y un desarrollador. El mantenedor es el dueo y responsable de los cambios de un proyecto, sta persona es la que decide las variaciones incluso si un desarrollador tiene un parche, primero pasa por el.
10 Mtodologas giles para el desarrollo de software , 2004, www.willydev.net/descargas/prev/TodoAgil.Pdf 11 Mtodologas giles para el desarrollo de software , 2004, www.willydev.net/descargas/prev/TodoAgil.Pdf
xix
Figura 2.6.2.1: (Uso de Metodologas giles)12 Tabla 2.6.2.1: (Porque Utilizan las metodologas giles)13 Y los que las usan, Por qu razn o razones lo hacen?: Para reducir el tiempo de desarrollo: 45% Para mejorar la calidad: 43% Para reducir costes: 23% Para alinear el desarrollo con los objetivos de negocio: 39% Otras razones: 12%. Tabla 2.6.2.2: (Ranking de preferencia de las metodologas giles)14 Y cul es el ranking de preferencias entre modelos giles? 1. Extreme Programming (28%) 2. FDD (26%) 3. Scrum (20%) 4. Cristal (6%) gil 5. DSDM (4%)
Con los datos investigados, se observa en cada una de las tablas, la utilizacin de estas metodologas y la preferencia marcada de una de ellas. Extreme Programming es la metodologa ms utilizada por los desarrolladores.
xx
Metodologas giles
Basadas en heursticas provenientes de prcticas de produccin de cdigo Ofrecen una buena solucin para entornos cambiantes El costo del cambio es mnimo, su estrategia es retrasar las decisiones nfasis en la comunicacin del grupo Impuestas internamente (por el equipo) Proceso menos controlado, con pocos principios No existe contrato tradicional o al menos es bastante flexible
Cierta resistencia a los cambios El costo de un cambio es mayor cuanto ms tarde se produce nfasis en los roles Impuestas externamente Proceso mucho ms controlado, con numerosas polticas/normas
El cliente es parte del equipo de desarrollo, participa permanentemente del desarrollo Grupos pequeos (<10 integrantes) y trabajando en el mismo sitio Pocos artefactos Pocos roles Menos nfasis en la arquitectura del software
desarrollo mediante reuniones, el cliente est forzado a tomar todas las decisiones al principio Grupos grandes y posiblemente distribuidos Ms artefactos Ms roles La arquitectura del software es esencial y se expresa mediante modelos
2.7.
Herramientas
Las herramientas para el desarrollo de este proyecto ayudaran tanto en el desarrollo ya que facilita el trabajo del programador, presentando la aplicaron agradable y fcil de usar.
2.7.1.
15
xxi
Microsoft apuesta a su nueva plataforma .Net, intentando superar los problemas que ha conllevado las generaciones anteriores de servicios de Internet.
En la actualidad la tendencia de las plataformas es tener varios servicios integrados en los que el usuario u otro sistema puedan acceder sin ninguna restriccin a otros servicios. Cambiando por completo el fin de realizar una aplicacin para resolver solo un problema y mirar a los servicios como una alternativa para englobar varios de ellos.
Como se ve, la tercera generacin de Internet va a suponer una mayor integracin de los servicios ofrecidos por empresas a otras empresas (lo que se ha denominado b2b:Business-toBusiness).16
La restriccin en el acceso a Internet se a superado gracias a la introduccin de dispositivos que permiten ingresar a Internet de una forma ms sencilla, directa y lo ms importante mvil como por ejemplo agendas electrnicas, telfonos mviles, WebTV, videoconsolas, etc.
Microsoft .NET es una plataforma para construir, ejecutar y experimentar la tercera generacin de aplicaciones distribuidas, que consiste en los siguientes elementos:
c)
Un conjunto de servidores que permiten ejecutar estos servicios como .NET Enterprise Servers.
d) Software en el cliente para poder utilizar estos servicios como Windows XP, agendas electrnicas, etc.
e)
Podemos encontrar otras arquitecturas que se introducen en esta tendencia. Se conoce varias iniciativas para estandarizar esta integracin, una de las ms conocidas es la arquitectura Java J2EE de Sun
xxii
dificultad que se tena para poder utilizar con otras aplicaciones, incluso para aplicaciones Web. Es por eso que se vio en la necesidad de crear una nueva plataforma de desarrollo de software.
NET es la respuesta que da Microsoft para el desarrollo de software poniendo mas nfasis en la transparencia de redes, con independencia de plataforma, permitiendo un desarrollo ms rpido. La plataforma integra, tanto sus productos como el sistema operativo, con una gran documentacin disponible al pblico, brindando la facilidad de construir cualquier solucin utilizando cdigo ya cimentado.
Su principal visin es que cualquier persona que se encuentre en cualquier lugar, pueda acceder a cualquier dispositivo.
En la actualidad la programacin distribuida al igual que la programacin orientada a objetos permite reutilizar el cdigo, la diferencia una de la otra es que podemos no solo reutilizar el cdigo sino tambin reutilizar servicios de aplicaciones, esto se lo realiza por medio de servicios Web.
VB
C++
C#
JScript
J#
2.7.1.2.
Net framework
Net framework se considera como la base de la plataforma, conocida tambin como marco de trabajo, debido a que rene un conjunto de lenguajes, herramientas y servicios, simplificando el desarrollo de aplicaciones en un entorno de ejecucin distribuido.
xxiii
Podemos encontrar varias normas impulsadas por compaas adems de Microsoft como:
(ECMA-335, ISO/IEC 23271) Son reglas que debe seguir cualquier lenguaje de programacin para que pueda ser compatible con .NET
C# (ECMA-334, ISO/IEC 23270) reunir ventaja del lenguaje C/C++ y Visual Basic en uno solo.
(BCL por sus siglas en ingls) (incluido en ECMA-335, ISO/IEC 23271) Define un conjunto funcional mnimo que debe implementarse para que el marco de trabajo, sea soportado por un sistema operativo.
2.7.1.3.
2.7.1.4.
Se le considera como el ncleo del framework encargada de cargar las aplicaciones desarrolladas en los distintos lenguajes.
La compilacin se los realiza en un cdigo intermedio (MSIL, Microsoft Intermediate Lenguaje), similar al BYTECODE de Java.
Para generar el cdigo, el compilador se basa en el Common Language Specification (CLS) son reglas necesarias para crear el cdigo MSIL compatible con el CLR.
xxiv
Se necesita un segundo paso para la ejecucin, para eso utiliza el compilador JIT (Just-In-Time) genera el cdigo mquina real que se ejecuta en la plataforma del cliente.
2.7.1.5.
a) Interaccin con los dispositivos perifricos b) Manejo de datos (ADO.NET) c) Administracin de memoria
d) Cifrado de datos e) f) Transmisin y recepcin de datos por distintos medios (XML, TCP/IP) Administracin de componentes Web que corren tanto en el servidor como en el cliente (ASP.NET) g) Manejo y administracin de excepciones h) Manejo del sistema de ventanas i) j) Herramientas de despliegue de grficos Herramientas de seguridad e integracin con la seguridad del sistema operativo
m) Manejo de cadenas de caracteres y expresiones regulares n) Operaciones aritmticas o) Manipulacin de fechas, zonas horarias y periodos de tiempo p) Manejo de arreglos de datos y colecciones q) Manipulacin de archivos de imgenes r) s) t) Aleatoriedad Generacin de cdigo Manejo de idiomas
u) Auto descripcin de cdigo v) Interaccin con el API Win32 o Windows API. w) Compilacin de cdigo
xxv
Podemos adems de elegir el lenguaje, tambin seleccionar el tipo de aplicacin, este puede ser una aplicacin Windows tradicional y servicios Web.
Podemos encontrar en visual Studio .net una serie de caractersticas similares a las anteriores versiones como:
a) Entorno de edicin, compilacin y depuracin integrado, b) Gestin de proyectos complejos, c) Diseo con notacin UML.
a) Ejecucin comn: .NET utilizan un mdulo de ejecucin comn con libreras comunes. b) Clases unificadas: En la plataforma .NET las libreras o clases son comunes para todos los lenguajes, con lo que los desarrolladores no tienen que aprender una nueva librera cuando cambian de lenguaje. c) Integracin multilenguaje: Incluye la posibilidad de llamadas a mtodos de otros objetos desarrollados en otros lenguajes e incluso su herencia. d) ASP.NET: Esta librera proporciona un nuevo modelo para la creacin de aplicaciones Web. e) f) ADO.NET: Proporciona un acceso comn a los datos, ya sea en bases de datos o XML. Plataforma abierta: Se van a poder utilizar distintos lenguajes de programacin como Eiffel, Perl, Java e incluso lenguajes tan venerables como Cobol y Fortran. g) Microsoft ha desarrollado un lenguaje nuevo de programacin basado en C++ denominado C# (C sharp). parecido a Java, un lenguaje que elimina las complicaciones innecesarias del C++ pero manteniendo su potencia. El principal objetivo de C# es eliminar el uso de Java y C++, con el objetivo de reducir el coste de desarrollo de los servicios .NET.
2.7.2.
Gracias a las tecnologas open source, hoy en da la gran comunidad puede acceder a este tipo de producto. La cooperacin voluntaria, la motivacin y el inters, es el motor principal de esta gran familia en red.
Existe un gran tab en cuanto a la calidad de un software open source, pensando que un sistema propietario puede ser construido de una forma ms completa, como mencionamos anteriormente,
xxvi
podemos encontrar varios proyectos que no le piden favores a ningn otro producto propietario, un ejemplo es: LINUX, APACHE.
La ventaja de poder usar esta tecnologa abierta, es permitir que la comunidad pueda interesarse en desarrollar un sistema, cambiarlo, modificarlo y perfeccionarlo.
2.7.2.1. Caractersticas
Sin duda alguna se le considera al open source como un fenmeno social, poltico, y econmico.
a) Una herramienta indispensable, que permiti que el fenmeno open source se desarrolle es el Internet encadenando interactividad y distribucin.
b) Open source son un conjunto de normas y valores comunes, que interactan con la comunidad, la cultura y la actividad comercial.
c)
Open source no se confina al campo del software, sino tambin a la produccin y distribucin de conocimiento.
Los usuarios poseen la libertad de redistribuir y modificar el software. Cualquier persona tiene el derecho de utilizar, modificar, y redistribuir el cdigo del programa o cualquier programa derivado del mismo, pero solo si los trminos de distribucin no son cambiados. Cualquier persona que modificaciones con el resto de usuarios. modifica, est obligado a compartir sus
b) La Licencia BSD
Permiten la distribucin del cdigo con o sin modificaciones manteniendo notas de Copyright en el cdigo fuente y cuando se emplee, se indique que contiene cdigo de Berkeley. Cuadro 2.7.2.2.1. : (Comparativa de Licencias)17
xxvii
2.7.2.3. MySQL MySQL es un sistema de gestin de bases de datos SQL Open Source Creada por MySQL AB.
a.
MySQL es un sistema de gestin de bases de datos Una base de datos es una coleccin estructurada de datos. Para aadir, acceder, y procesar los datos almacenados en una base de datos, necesita un sistema de gestin de base de datos como MySQL Server. 18
Una base de datos relacional almacena datos en tablas separadas. Esto aade velocidad y flexibilidad. SQL "Structured Query Language" es parte de "MySQL". SQL es el lenguaje estandarizado para acceder a bases de datos y est definido por el estndard ANSI/ISO SQL. "SQL:2003" es la versin actual del estndard. 19
c.
MySQL software es Open Source. Open Source significa que cualquiera puede usar y modificar el software. No cuesta nada, se puede estudiar el cdigo fuente y cambiarlo adaptando a sus necesidades. MySQL cuenta con la licencia GPL (GNU General Public License). 20
18MySQL 5.0 Reference Manual ,2007, dev.mysql.com. 19 MySQL 5.0 Reference Manual ,2007, dev.mysql.com. 20 MySQL 5.0 Reference Manual ,2007, dev.mysql.com.
xxviii
e.
2.8.
software sea un desarrollo gil, disciplinado, y aportando soluciones sencillas. XP tiene un enfoque adaptativo en el que la planificacin del proyecto progresa a medida que surgen cambios.
Los principios de actuacin claves alrededor de los cuales se fundamenta la metodologa XP consisten en:
a) Acortar los ciclos de desarrollo. b) Involucrar al cliente desde el principio hasta el final de cada ciclo.
Las tcnicas de trabajo que proporciona XP consiguen minimizar el impacto que los cambios suponen en un proyecto de desarrollo de software.
La clave de xito de esta metodologa es la importancia que le dan a las relaciones entre los grupos de desarrollo, promoviendo el trabajo en equipo.
El aprendizaje de los desarrolladores es algo necesario para tener un grupo bien instruido. Otro aspecto que saca adelante a la programacin extrema es la realimentacin continua que el cliente provee al proyecto.
2.8.1.
xxix
a) Programador: El programador escribe las pruebas unitarias y produce el cdigo del sistema.
b) Cliente: En XP el cliente juega un papel protagnico, es parte del equipo, se encarga de escribir las historias de usuario y las pruebas funcionales para validar su implementacin. Adems asigna la prioridad a las historias de usuario y decide cules se implementan en cada iteracin centrndose en aportar mayor valor al negocio.
c)
Gestor (Big boss): Es el encargado de la coordinacin, debe ser el vnculo entre clientes y programadores, tambin crea un ambiente que facilite las actividades del equipo de desarrollo.
d) Encargado de pruebas (Tester): Ayuda al cliente a escribir las pruebas funcionales. Ejecuta las pruebas regularmente, difunde los resultados en el equipo y es responsable de las herramientas de soporte para pruebas.
e)
Encargado de seguimiento (Tracker): Realiza el seguimiento de las estimaciones realizadas y el tiempo que efectivamente se ha dedicado para mejorar futuras estimaciones. Analiza el avance de cada iteracin y retroalimenta al grupo.
f)
Entrenador (Coach): Gua y vigila que se sigan correctamente las prcticas de XP, es responsable del proceso global.
xxx
Programador
Cliente
Consultor
Rol XP
2.8.2.
a)
El cliente es parte del grupo de trabajo, interacta con los desarrolladores de una forma protagnica. ste interviene en las reuniones, no es precisamente quien toma las decisiones importantes. l resuelve las dudas del grupo y tambin se encarga de crear las historias de usuario que no es ms que las caractersticas de los requisitos del propio usuario.
a.
El cliente y el responsable interactan para analizar las dificultades tcnicas de los requerimientos, los costos, la prioridad de cada tarea.
b)
En esta fase del proceso participan activamente el equipo de gestin, el equipo de desarrollo y el cliente, todos tienen voz y toman decisiones. Aqu tambin se define la
xxxi
planificacin de las entregas y deben realizarse lo ms pronto posible y con cada iteracin el cliente recibe una nueva versin.22
c)
El punto clave para el diseo y desarrollo segn XP es la comunicacin, se ha detectado que una mala comunicacin es la principal causa de los problemas, por lo que se debe impulsar una comunicacin eficiente y eficaz. 23
A diferencia de las metodologas tradicionales, XP establece que el diseo debe ser revisado y mejorado de forma continua segn se van aadiendo funcionalidades al sistema.
El diseo es realizado por los propios desarrolladores, dependiendo del caso se puede incorporar al cliente, al consultor o personal con mayor experiencia. La programacin extrema nace por la necesidad de solucionar el problema que se presenta al construir un software cambiante, incierto y en corto plazo. A la programacin extrema se la conoce como Una forma sencilla, divertida y eficiente de desarrollar software.
Los ciclos de vida del software son ms cortos, cuentan con una planificacin incremental, flexible para enfrentarse a los cambios rpidos.
Las pruebas permiten obtener mejores resultados en el control del software, confianza, comunicacin, diseo y colaboracin,
Extreme Programming es una disciplina ya que necesariamente tiene que cumplir pasos para que funcione.
2.8.3.
a) La planificacin mal diseada provoca retrasos en la entrega del sistema, malestar en los clientes y cancelaciones de proyectos.
xxxii
b) Los sistemas despus de varios aos sufren el deterioro debido a nuevos requerimientos.
c)
El sistema no cumple con los requerimientos de usuario sino del programador, debido a los requisitos mal comprendidos.
e)
b) El cliente selecciona la versin ms corta con el fin de disminuir las fallas antes de la produccin.
c)
La creacin y mantenimiento de pruebas para asegurar la calidad mnima del software, disminuyendo las tasas de defectos.
d) La interaccin del cliente con el equipo de desarrollo propone entender mejor los requisitos mal comprendidos.
e)
XP al disminuir el ciclo de versionamiento permite que sea ms sencillo realizar los cambios en los nuevos requerimientos.
f)
g)
Se estima los tiempos y el cumplimiento de cada tarea encomendada, evitando que el programador se frustre en el intento de realizar lo imposible.
2.8.4.
xxxiii
a) Coste: Se tiene que considerar un equilibrio al momento de planificar los costos, tener mucho dinero no siempre soluciona los problemas, si se cuenta con poco dinero afectar en el desarrollo del proyecto. b) Extreme programinig siempre quiere buscar un equilibrio en las 4 variables. El equipo de trabajo es el indicado para conseguir lo antes mencionado, pero esto toma algn tiempo hasta ajustar dichas variables.
c)
Tiempo: Esta variable de control ofrece mayor calidad, pero ocurre un fenmeno si se cuenta con mucho tiempo se puede ofrecer mayor calidad y tambin crecer el mbito, es muy importante tener en cuenta que el mbito es el alcance del proyecto y no es muy ventajoso que siga creciendo. Si se da poco tiempo provocar la desesperacin del grupo, que intentara terminar rpidamente el proyecto, disminuyendo por ende la calidad y presentando un producto con muchos errores.
El grupo en general se desmotiva, ya que conoce las fallas y lamentablemente por cuestin de tiempo tienen que dedicarse a sacar el producto a produccin, poco a poco el proyecto pierde valor y muere.
a) Calidad: Se observa en esta variable de control un fenmeno interesante, se piensa que al tener ms tiempo se puede ofrecer mayor calidad, pero lo que en verdad asegura la calidad es la experiencia del grupo en realizar pruebas intensivas, siguiendo estndares de codificacin los tiempos se reducen, conllevando a una mayor seguridad en la entrega oportuna del producto.
xxxiv
b) Si se piensa en dar al proyecto mayor calidad se puede asegurar que un producto se entregue en menor tiempo con mayor seguridad, disminuimos los costos por la entrega y el mbito no se afectar.
c)
d) El mbito es muy variable, la pregunta es, Porqu varia? El usuario no sabe lo que quiere, los clientes aprenden viendo las versiones del producto, cuando se desarrolla la primera versin el cliente reconoce y aprende los requerimientos para la segunda versin, es por eso que se le ha considerado como parte importante del grupo encargado del desarrollo de producto.
Variable
Programacin tradicional
Programacin eXtrema
Problemas de comunicacin
24 Metodologa de Desarrollo Programacin Extrema, 2005, http://www-lsi.die.upm.es/~carreras/ISSE/programacion_extrema_2.x2.pdf
xxxv
No comunicar sobre un cambio crtico en el sistema. No hacer al cliente la pregunta adecuada. Que el jefe de proyecto no haga la pregunta adecuada sobre el avance del proyecto al programador.
XP previene la mala comunicacin, por medio de un preparador el cual observa al grupo, se encarga de introducirlo en este flujo importante de comunicacin
b) Sencillez: La comunicacin y la sencillez van de la mano, si existe una adecuada comunicacin se entender exactamente que hay que hacer, el problema en la sencillez se da porque los programadores piensan realizar cosas ms complejas y no se centran en lo que se requiere en verdad.
Es mejor hacer una cosa sencilla hoy y pagar un poco ms maana, que hacer una cosa ms complicada hoy y no utilizarla despus.25
La retroalimentacin trabaja a escala de minutos y de das, el programador escribe pruebas para encontrar fallas en el sistema lo que permitir verificar el estado del mismo.
25
xxxvi
Si el usuario escribe nuevas historias, los programadores enseguida las estiman brindando a los clientes la realimentacin de la calidad de sus historias.
La realimentacin tambin trabaja a escala de semanas y meses. Los clientes realizan pruebas funcionales del todas las historias, adems se verifica la planificacin para conocer si se esta alcanzando las metas.
Una estrategia de XP pone en produccin las historias ms valiosas con el fin de aprender de la realimentacin y hacer mejores estimaciones. Mientras ms realimentacin se tenga, ms fcil ser la comunicacin, ms sencillo es el sistema y son fciles de probar. 26
Reconocer las debilidades del cdigo que se desarrolla y corregir los errores demuestra valenta por parte de los programadores.
Dar la idea a pesar de que todos piensen que es disparatada es valenta, ya que puede funcionar.
Si se entiende los ejemplos anteriores, se comprender que la valenta ayuda en la toma de decisiones a veces pequeas y en algunos casos grandes, provocando que el desarrollo pueda seguir con su ciclo de vida.
2.8.4.4. Principios XP
Los principios ayudan a la eleccin de alternativas, estos van ligados a los valores.
26
xxxvii
a) Realimentacin rpida: Lo que se desea es conseguir la realimentacin, interpretarla y incorporando al sistema lo aprendido. Los programadores aprenden a mejorar en todas sus actividades, por medio de la realimentacin.27
b) Asumir la sencillez: La sencillez lo que intenta es resolver problemas lo ms simple posible, lamentablemente los programadores estn acostumbrados a pensar en la planificacin a futuro, XP lo que intenta es cambiar la concepcin y preparar al grupo de trabajo para que miren soluciones sencillas para el da a da.
c)
Cambio incremental: Los cambios en un proyecto se los tiene que hacer de a poco, por ejemplo los cambios de diseo, planes, equipo, debido a que los grandes cambios pueden ocasionar problemas y no soluciones.
d) Aceptar el cambio: En XP la mejor forma de conseguir los objetivos es aceptar los cambios, adaptndonos a los mismos
e)
Trabajo con calidad: Los nicos posibles valores de la calidad es excelente y muy excelente.
a) Codificar: No se puede prescindir de la codificacin ya que sin ella no se podra desarrollar. Cuando se intenta presentar una idea el cdigo es la mejor herramienta para ello.
Si una persona quiere expresar sus ideas, se puede generar un problema al querer que otro tome ese idea y la entienda, para solucionar este problema, el cdigo es la forma ms fcil para probar y para que las dos personas lleguen a un entendimiento.
27
Wesley, pag 37
28
Wesley, pag 43
xxxviii
b) Probar: Cualquier cosa que no puede ser probada no existe (Locke, Berkeley y Hume). El software en general debe ser probado para asegurar que funciona en realidad. Las pruebas permiten verificar si est correcto lo que se pens.
La nica forma de encontrar fallas en un sistema es aprender a hacer pruebas, mientras ms error se encuentre por medio de pruebas, se podrn corregir y la confianza aumentar.
Las pruebas indican cuando el software esta terminado. Si las pruebas funcionan la codificacin ha terminado.
Se puede ganar media hora de productividad sin hacer pruebas, pero se perder mucho tiempo en la depuracin.
Las pruebas de unidad permitirn que el programador tenga confianza en lo que est haciendo. Las pruebas de funcionalidad permiten convencer a los clientes que el programa funciona.
c) Escuchar: Los programadores no conocen todo, es por eso que escuchar es la herramienta primordial para poder entender las reglas del negocio.
Cuando se realizan pruebas es necesario conocer las respuestas de alguna parte, para lo cual se pregunta a la persona que conoce del tema. La realimentacin entre programador y el cliente permite conocer mejor los problemas.
d) Disear: Organiza la lgica en el sistema es por eso que un buen diseo permitir realizar cambios sencillos. Tenemos que codificar porque sin cdigo no hay nada, tenemos que hacer pruebas por que sin pruebas no sabemos si hemos acabado de codificar, tenemos que escuchar, porque si no escuchamos no sabemos que codificar ni probar, y tenemos que disear para poder codificar, probar y escuchar indefinidamente.29
2.8.5.
29
Wesley, pag 49
xxxix
a)
Responsabilidades aceptadas: El director de proyecto no asigna trabajo solo lo pone en manifiesto lo que se necesita.
b) Trabajo de calidad: La sinceridad entre el director del proyecto y programador es importante, para que el director consiga ayudar a mejorar el trabajo del grupo.
c)
d) Adaptacin particular: El director tiene que adaptarse rpidamente a la cultura XP para lograr resolver problemas de la cultura empresarial y dar soluciones.
e)
Ir ligero de equipaje: Cualquier cosa que el director requiera de los programadores no debe llevar mucho tiempo, como: largas reuniones, grandes informes de situacin, etc.
f)
Medidas honestas: Cualquier mtrica que el director elija debe tener un grado de exactitud real
2.8.5.1.1.Mtricas
El instrumento de una mtrica es un gran diagrama visible, por ejemplo el director puede colocar un grafico del nmero de prueba realizadas.
Cuando las mtricas hayan cumplido con su cometido tiene que ser eliminadas para poder crear otras.
2.8.5.1.2. Preparacin
xl
En XP podemos encontrar dos roles importantes, el preparador y el controlador, el preparador ideal es la persona que sabe ms sobre la parte tcnica del proceso, es hbil, seguro de s mismo y un buen comunicador.
Para elegir a un preparador se escoge a personas que ha cumplido roles como programadores jefes o arquitectos de sistemas, en XP el papel cambia.
a)
El papel del preparador en Xp es hacer que todo el mundo tome sus propias decisiones.
b)
El puede estar disponible como un compaero que ayudar a los nuevos programadores en tareas difciles.
c)
d)
Ayuda a los programadores con habilidades tcnicas, como por ejemplo: hacer pruebas, dar formato al cdigo y recodificar.31
e)
El trabajo ms importante de un preparador es idearse para que el grupo se sienta a gusto, esto lo hace por medio de juguetes o comida, que han dado un buen resultado en reuniones de decisin.
2.8.5.1.3. Control
Se puede estimar cualquier cosa pero si no es medido entonces no se puede saber si se esta cumpliendo con lo que se propone.
El controlador es el encargado de medir y para esto l tiene que explicar con detalle al equipo, qu es lo que se est midiendo.
30
Wesley, pag 74
31
Wesley, pag 74
32
Wesley, pag 74
xli
El controlador tiene que medir para saber si se esta haciendo lo estimado. Es recomendable segn XP que se haga dos veces por semana para no sofocar a los programadores.
2.8.5.1.4. Intervencin
La intervencin es muy importante ya que el Director del proyecto en algunos casos tendr que intervenir por ejemplo en el cambio de personal.
El director tiene que intervenir si se necesita un cambio, el informar al grupo que es necesario un cambio para que todo el equipo tome conciencia y ellos mismos realicen experimentos de cambio.
Otra intervencin del director es cuando el proyecto tenga que ser cesado.
El equipo de trabajo debe sentirse a gusto donde se encuentra ya que podr desconectarse del mundo y escribir software cmodamente.
Es aconsejable que los equipos de trabajo se encuentren en un espacio central comn separado por mesas, ya que es ms fcil la realimentacin, si las personas quieren privacidad pueden utilizar los cubculos que son construidos para guardar cosas personales.
Se debe realizar la planificacin necesaria, es decir planificar en detalle la primera versin y la planificacin a largo plazo hacerla sencilla.
Se debe fomentar la responsabilidad aceptada sin imponer la planificacin al grupo, el director de proyectos pide que se acepte la responsabilidad de realizar el trabajo. Luego de aceptar la responsabilidad se estimar el tiempo que necesitarn para realizar el trabajo, priorizando cada una de las tareas.
xlii
a)
El juego de la planificacin
Es necesario entender la relacin que debera llevar el usuario y el desarrollador ya que en muchos proyectos de desarrollo se puede observar la dificultad de entendimiento y respeto, que estos dos personajes han asumido.
Lo que sugiere XP es una buena relacin entre las dos partes para que exista consenso.
Para que funcione esta relacin se debe contar con un conjunto de reglas que pueden ayudar, ms no solucionar el problema. Las cuales estn a continuacin:
3) Las piezas: las piezas en el juego son las fichas de historias de usuario.
4) Los jugadores: se encuentra, el desarrollador que es el que implementa el sistema y el cliente quien decide que es lo que har el sistema.
Fase de exploracin
En esta fase el usuario escribe una historia, describiendo algo que tiene que hacer el sistema, luego el desarrollador estima el tiempo que se tardar en realizar la historia. Si el desarrollador no puede estimarla pedir al usuario que la divida en varias historias.
Fase de compromiso
En esta fase el usuario escoge el mbito, la fecha de la prxima versin y el desarrollador se compromete en la entrega.
Fase de direccin
xliii
b)
Planificacin de la iteracin
En la planificacin por iteracin el usuario puede dirigir el desarrollo cada tres semanas y en lugar de emplear historias, utiliza tareas.
Fase de exploracin
Se escribe una tarea partiendo de una historia. Generalmente una tarea es ms pequea que una historia.
Fase de compromiso
El programador tiene que comprometerse a realizar la tarea, estimando el tiempo que se demorar en realizarla.
Los programadores con mucha carga deben pedir ayuda para que esas tareas puedan volver al equipo.
Fase de direccin
c)
Fases de la planificacin
1.
Se redactan las historias de usuarios Las historias de usuario tienen el mismo fin que los casos de uso con la
diferencia de que stos son escritos por el propio usuario, quien conoce de los
xliv
requerimiento del sistema, estas historias no tiene muchos detalles, son concretas.
La historias de usuarios ayudan en la estimacin de los costos y del tiempo, al tener en cuenta que las historias de usuario son pequeas descripciones de lo que realizar el programa, cuando se llega a la fase de implementacin para obtener ms detalle el programador deber acudir al cliente.
Las historias ayudan en el proceso de creacin de pruebas, para verificar que estas funcionan correctamente.
Una historia no debe durar ms de tres semanas y si ocurre, se tendr que dividir en partes. Si es menor de una semana se tendr que unir dos o ms de ellas.
2. Se crea un plan de entregas Las historias de usuario permitirn la creacin del plan de entregas, el mismo que servir a su vez para la creacin del plan de iteracin de cada iteracin.
Se convoca a una reunin tanto a los clientes como a los programadores, en este se presenta cada historia de usuario con su respectiva estimacin de tiempo, los usuarios las ordenan y al terminar obtendremos: tiempo de desarrollo ideal y grado de importancia para el cliente.
xlv
3.
La velocidad del proyecto es una medida de cuan rpido se est desarrollando. La velocidad del proyecto se usa para determinar cuntas historias de usuario pueden ser implementadas antes de una fecha dada (tiempo), o cunto tiempo es necesario para llevar a cabo un conjunto de historias (alcance). 34
4.
Como se mencion anteriormente la iteracin debe tener un rango de 1 a 3 semanas, al principio de cada una se convocar a una reunin en la que se trazar el plan de iteracin, prohibiendo a los usuarios adelantarse en la implementacin.
Se puede determinar si una iteracin esta sobrecargada por medio de la velocidad del proyecto, si eso ocurriera el cliente decidir si lo retrasa a la
33 Introduccin a Extreme Programming, 2002, trabajo-xp 34 Extreme Programming, 2006, http://www.extremeprogramming.org/
xlvi
siguiente iteracin. Si, por el contrario, la iteracin tiene huecos se rellenar con otras historias de usuario.
5.
Se selecciona las historias de usuarios, tambin se elige qu pruebas de aceptacin fallidas se corregirn.
35
6.
Se rota al personal
La rotacin del personal evita la dependencia de personas, permitiendo que todo el grupo conozca mejor el sistema, facilitando el entrenamiento de los nuevos miembros del grupo de desarrollo.
7. Cada da se convoca una reunin de seguimiento
xlvii
XP recomienda reuniones diarias con el fin de solucionar problemas, estas no deben durar mucho y pueden realizarse utilizando el ordenador.
8.
La estrategia de desarrollo comienzan con la planificacin de la iteracin, en sta podemos disminuir los conflictos de desarrollo por medio de la integracin continua, dar nimo al grupo para mejorar el sistema por medio de la propiedad colectiva, mientras que la programacin en pareja mantiene unido el proceso.
a)
Integracin continua
La Integracin continua reduce de manera drstica los riesgos del proyecto, es por eso que se recomienda que el cdigo no pueda permanecer sin integrarse por ms un par de horas.
La integracin se la hace al final de cada episodio con todas las pruebas realizadas y deber funcionar en un 100%. Existe un problema en la integracin continua, cuando el programador piensa que es la nica persona en el proyecto y cambia el cdigo sin pensar en los conflictos que puede ocasionar en otras partes con su cambio. Para solucionarlo se cuenta con la recodificacin que permite fraccionar el sistema en motones de pequeos objetos y montones de pequeos mtodos.
Con la recodificacin se disminuye la posibilidad de que dos parejas en el mismo tiempo modifiquen el mismo cdigo y si sucede, no habra mucho problema en reconciliar los cambios en pocas horas.
b)
Propiedad colectiva
La propiedad colectiva intenta disminuir la complejidad del cdigo ya que cualquier persona puede modificarlo. Esto disminuye el riesgo en el proyecto.
xlviii
Para que funcione se tiene que contar con pruebas de calidad. Tambin se disminuye la posibilidad de que una sola pareja conozca el cdigo y genera la necesidad de hacer un cdigo sencillo sin la dependencia de uno o ms programadores.
c)
compaero esta ocupado escribiendo, el otro piensa en un nivel ms estratgico. Para lograr esto se necesita de prctica.
Cuando cualquier persona del equipo aprende una nueva informacin, es como poner una pequea gota de tinta en el agua, puesto que las parejas cambian por el resto del proyecto, la informacin se difunde por todo el equipo al igual que la tinta se esparce por toda la charca.
d)
Fase de desarrollo
XP impone que en todo el desarrollo del proyecto se cuente con el usuario de una forma incondicional y sin ningn intermediario. El usuario no solo interviene en el proyecto, l forma parte del mismo, ya que es quien crea las historias y toma decisiones acerca del funcionamiento del mismo, genera pruebas para comprobar que el sistema funciona en realidad.
Es importante la utilizacin de estndares para que facilite el entendimiento del cdigo, no solo para el que lo creo, sino para todo el grupo, incluso permite la utilizacin de las estrategias de la propiedad colectiva mencionada por el Investigador anteriormente.
Lo primordial en el momento de realizar un proyecto con XP es realizar pruebas incluso antes de escribir el propio cdigo, esto asegura que lo que se est escribiendo funciona correctamente y sirve para el propsito que se desea.
xlix
El pilar bsico de XP son las pruebas, sin ellas no funcionar. La utilizacin de pruebas automticas permite que XP exista, para ello podemos usar el framework de testing automtico, como JUnit [Junit-www] o cualquiera de sus versiones para diferentes lenguajes.
De esta manera, se incrementar la calidad del software desarrollado sin afectar al tiempo de entrega.36
No solo permite incrementar la calidad del software, a su vez enriquece los conocimientos del grupo acerca del proyecto.
Se puede encontrar problemas al momento de integrar es por eso que se necesitara realizar pruebas para localizar posible errores y realizar las correcciones antes de encontrar errores derivados.
6. Integrar frecuentemente
Es importante que el grupo cuente con la ltima versin del sistema y cada pareja deber realizar la integracin lo ms rpido posible. Se debe contar con pruebas y stas tendrn que funcionar en un 100 %, evitando los conflictos que podran ocasionar despus de la integracin.
El cdigo podr ser modificado en cualquier momento por un programador si amerita el caso, esto quiere decir, si se encuentra un cdigo complejo se puede optar por crear otro ms simple o eliminarlo.
Esto se hace, con el fin de seguir adelante con el proyecto y evitar atrasos en la entrega.
36 Introduccin a Extreme Programming, 2002, trabajo-xp
Trabajar horas extras provoca la disminucin del espritu y motivacin del equipo. Este es uno de los factores por lo que XP es rechazado por algunos directores de proyectos.
1.
No hay que olvidar los cuatro valores como la comunicacin, sencillez, realimentacin y valenta, con stos se crea una estrategia de diseo que permita ser ms sencillo, comprobando rpidamente la calidad y realimentar lo aprendido.
Los principios tambin pueden ayudarnos en la estrategia de diseo como: inversin inicial pequea, asumir la simplicidad, cambio incremental y viajar ligero.
El problema de los programadores es hacer conjeturas de lo que pasar maana y no dedicarse en lo que se quiere hoy. Las metodologas tradicionales trabajan en realizar diseos para maana, esto funcionara si las cosas no fuesen cambiantes.
Algunas veces el maana no funciona, es decir, la caracterstica diseada por adelantado, el cliente las puede quitar.37
XP quiere que los programadores diseen para hoy lo que se tendr que hacer para el presente y maana lo que se har para el futuro.
La recodificacin hace que el diseo cambie y evolucione poco a poco, se puede hacer pruebas y ver que aun el sistema no funciona, en este paso se hace pequeos cambios hasta llegar a los que se quiere.
El diseo se lo hace poco a poco, con la recodificacin se quiere hacerlo ms simple, realizando pruebas, cambiando y aprendiendo.
37 BECK . Kent. Un a Explicacin de la programacin Extrema Aceptar Cambios. Editorial Addison Wesley, pag 105
li
b) Qu es lo ms simple? El sistema cdigo y pruebas juntas, deben comunicar todo lo que se necesite, sin contener cdigo duplicado, con el menor nmero posible de clases y mtodos.38
Las estrategias tradicionales siempre han pensado en que la mejor forma de reducir costos es disminuir la probabilidad y el costo de hacer cambios, en XP es lo contrario ya que un da sin recodificacin es como un da sin sol. Si se coloca una caracterstica de un diseo hoy y se utiliza maana, se considera como una ganancia.
2.
Los diagramas dan pistas sobre el funcionamiento del sistema, si est trabajando bien o mal, tambin se trabaja ms rpido con su utilizacin. La desventaja es que no brinda realimentacin necesaria para aprender del sistema.
Para tomar todas las ventajas que brindan los diagramas se debe utilizar los principios que guiarn, como: pequea inversin inicial, jugar a ganar, realimentacin rpida, trabajar con el instinto de las personas, alcanzar el cambio y viajar ligero.
3.
La arquitectura en XP es muy importante y parte de esto se captura en las metforas del sistema, si se tiene una buena metfora todo el equipo entender como funciona el sistema de una forma global.
4.
Fase de Diseo
a) Simplicidad
La simplicidad es una gran estrategia en el momento de desarrollar, es ms fcil de cambiar y modificar. Es muy difcil disear algo sencillo, pero vale la pena hacerlo.
38 BECK . Kent. Un a Explicacin de la programacin Extrema Aceptar Cambios. Editorial Addison Wesley, pag 109
lii
Una metfora es una historia que todo el mundo entiende, en XP esta metfora informa al grupo como funciona el sistema. Se debe encontrar una imagen de aquello que se pretende representar en el mundo real. As podr tener una imagen mental ms clara.39
c) Usar tarjetas CRC (Cargo o clase, Responsabilidad y Colaboracin) en las reuniones de diseo
Las tarjetas CRC (Cargo o Clase, Responsabilidad y Colaboracin) permiten trabajar con objetos, ya que representan un objeto. Permite que todo el grupo trabaje en las tareas de diseo.
Tabla 2.8.5.5.1: (Tarjeta CRC)40
Un programa Spike (pequeo programa) explora una posible solucin al problema y con esto se tendr varias versiones a lo largo del proyecto.
Solo se programar lo que se ha planificado para hoy y no se aadir funcionalidad extra para maana.
39 Introduccin a Extreme Programming, 2002, trabajo-xp 40 Introduccin a Extreme Programming, 2002, trabajo-xp
liii
Una forma de ver que las pruebas tienen xito es cuando rompen las expectativas del programador. Las pruebas tienen xito cuando funcionan a pesar que se esperaba que no lo hagan. Otra forma de ver el xito de las pruebas es cuando stas fallan, habiendo esperado que funcionen. Lo ms importante es aprender de las pruebas.
Se puede encontrar dos fuentes para obtener pruebas, una es el programador que las
realiza mtodo a mtodo o pruebas de unidad y otra son los clientes que escriben pruebas historia a historia.
XP encarga por lo menos a una persona en la realizacin de pruebas, sta se encarga de traducir pruebas del cliente en pruebas reales.
Al igual que el programador que escribe sus pruebas esperando que alguna de ellas tenga xito cuando debera fallar o que falle cuando debera tener xito, el encargado de pruebas busca el mismo camino para aprender a hacer pruebas.
2. Otras pruebas
Si el equipo XP se encuentra en mal camino puede aplicar otras pruebas como: Prueba paralela: Permite verificar la diferencia del nuevo sistema con el viejo para tomar la decisin de sacar a produccin o no, el nuevo sistema. Prueba de tensin: Sirve para probar sistemas complejos en donde se simula la peor carga posible. Prueba monkey: Asegura que el sistema acta de forma sensible frente a entradas sin sentido. 41
41 BECK . Kent. Un a Explicacin de la programacin Extrema Aceptar Cambios. Editorial Addison Wesley, pag 119
liv
3. Fases de la Prueba
El error que suele cometerse en un proyecto es cuando se deja para el ltimo la construccin de pruebas, ya que descubrir errores es muy difcil y toma mucho tiempo, lo que XP propone es la construccin de unidades de prueba.
Cualquier parte del cdigo no ser remplazada si no supera las pruebas realizadas para el mismo. Para verificar que un cambio realizado en la estructura no introduce un cambio en la funcionalidad, nos valemos de las pruebas, de esta manera, la probabilidad de que exista un fallo en ambos (test y cdigo) es menor.
Para dar independencia a las pruebas es necesario crear primero la unidad de prueba y luego el cdigo.
b) Todo el cdigo debe pasar las unidades de pruebas antes de ser implantado
No se considerara al cdigo completo si no tiene su respectiva unidad de prueba. El cdigo no ser tomado en cuenta si no supera su unidad de prueba
La localizacin de fallos es mucho ms sencilla cuando se crea una unidad de prueba ya que permitir aislarla y depurarla
A las pruebas de aceptacin se le conoce como pruebas funcionales y son creadas de las historias de usuarios. Cuando una historia de usuario es correctamente implementada el cliente especifica los aspectos a probar, pudiendo tener ms de una prueba de aceptacin.
lv
A las pruebas de aceptacin tambin se les conoce como caja negra, en la que cada una representa una salida esperada.
El cliente es el responsable de verificar que cada prueba de aceptacin sea corregida en cada interaccin para luego tomar decisiones.
La publicacin de las pruebas de aceptacin se lo debe realizar lo ms rpido posible para que los programadores tomen las medidas necesarias.
2.8.6.
En la figura que se presenta a continuacin, se podr observar el ciclo de vida en el desarrollo de software en XP. Los ciclos son ms cortos en XP, la realimentacin es constante al igual que los cambios.
lvi
CAPTULO III
La comunicacin: permite que el cliente y el programador lleguen a un acuerdo en la especificacin de requerimientos evitando los malos entendidos. La sencillez: es lo que diferencia a XP con las dems metodologas tradicionales las cuales utilizan estndares para la especificacin de requerimientos que hacen del sistema muy complejo. La sencillez evita la documentacin extensa centrndose en lo bsico, en lo que se utiliza en este momento y no en lo que se podr utilizar. La realimentacin: permite que la especificacin de requerimientos se comprenda mejor con el pasar del tiempo, permitiendo que los usuarios aprendan a describir mejor las Historias. Las Historias de usuario: es una pequea descripcin del programa con el fin de estimar tiempos y costos. Para obtener mayor detalle de las historias de usuario en el momento de la implementacin, el programador preguntar al cliente, aumentando el detalle de cada historia.
lvii
Fecha
15/05/2007
Referencia Usuario
Inventario
Conocer la ubicacin del producto. Conocer cuando el stock de un producto se este terminando , Conocer cuando el producto se caduca.
Notas Se realizo la realimentacin de las historias de usuario por medio de las tarjetas CRC Seguimiento Estado O Atendido En Proceso O Finalizado Comentario Ultimo seguimiento
Ingreso del producto____________________________________________________ El sistema permitir conocer por medio de la presentacin en un formulario la ubicacin del producto, para esto se tiene que crear una ventana en el que se ingresar el nombre de las bodegas o perchas donde
lviii
Conocer el estado del stock del producto____________________________________ ______________________________________________________________________ Para conocer el stock de un producto se colocar colores en la presentacin del nombre del producto. El color amarillo quiere decir que el stock mnimo es igual a la cantidad que se encuentra registrada en el sistema. Si no tiene color quiere decir que la cantidad esta dentro del rango entre el stock mnimo y el stock mximo. Si est de color verde quiere decir que la cantidad del producto esta por encima del stock mximos. Y si el color es rojo quiere decir que la cantidad es menor al stock mnimo. Con este control se pondr observar qu producto se tiene que adquirir o no._________________________ ______________________________________________________________________ Validacin del stock_____________________________________________________ ______________________________________________________________________ Se validara qu el stock mximo no sea menor al stock mnimo.___________________ _____________________________________________________________________________________ _____________________________________________________________________________________ ________________________________________ Conocer Productos Caducados____________________________________________ ______________________________________________________________________Para poder conocer que producto est caducado, se crear un nuevo formulario en donde se ingresar el cdigo o nombre del producto registrado en el sistema, la fecha de elaboracin y la fecha de expiracin. En esta ventana se presentara el nombre del producto, la cantidad y la fecha de elaboracin. Se utilizar el color amarillo para indicar que la fecha de expiracin es igual a la fecha actual, el color verde indica que la fecha de elaboracin es mayor a la fecha actual, el color rojo indica que la fecha de expiracin es menor a la fecha actual, Y sin color cuando la fecha de expiracin est en el rango entre la fecha de elaboracin y expiracin._____________________________ ______________________________________________________________________ Validar Fechas de los productos___________________________________________ ______________________________________________________________________ Se validar que la fecha de elaboracin, no sea mayor a la fecha de expiracin. _______ _____________________________________________________________________________________ _________________________________________________ Historia de Usuario 2 en el Diseo Tabla 3.1.1.2: (Historia de Usuario 2 en el Diseo)
lix
Fecha
15/05/2007
HISTORIA DE USUARIO No 2 Nuevo Tipo de O Correccion Actividad O Mejora Riesgo Cargo Ninguno O medio O Alto
Ingreso, actualizacin, eliminacin y bsquedas en las tablas: Producto, Proveedor, Inventario, Usuario, Cliente. Cada una de las tablas presenta su interfase sencilla y fcil de utilizar. La bsqueda ser personalizada de acuerdo a las necesidades del usuario. Notas
Historia de Usuario 2 en el Desarrollo Creacin de la ventana para el manejo del producto_______________________ ___________________________________________________________________ Para ingresar el producto se crear una ventana en la cual se ingresar el cdigo, nombre, cantidad, precio de costo, precio de venta, stock mnimo, stock mximo, impuesto y
proveedor._________________________________________________ ___________________________________________________________________ El cdigo del producto es un identificador nico del mismo, y permite ubicarlo de una forma rpida. Se utilizar un scanner de cdigo de barra para la lectura._______ ___________________________________________________________________ En este formulario se realizar el ingreso, modificacin, eliminacin y bsqueda.___ ___________________________________________________________________
Validacin del formulario Productos____________________________________ ___________________________________________________________________ El sistema valida que el cdigo y el nombre del producto no se repita.___________ ___________________________________________________________________ El sistema valida que la cantidad sea de tipo numrico._______________________ ___________________________________________________________________ El sistema valida que el precio de costo y precio de venta sean de tipo flotante.____
lx
___________________________________________________________________ El sistema valida que el stock mximo y stock mnimo sean de tipo entero.________ ___________________________________________________________________ El sistema valida que el impuesto sea de tipo entero con un rango de 0-99.________ ___________________________________________________________________ El sistema valida que se ingresen todos los campos obligatorios. Para diferenciar los campos obligatorios de los que no lo son, se coloco el titulo de cada campo con negrita y si negrita respectivamente.______________________________________ ___________________________________________________________________
Creacin de la ventana para el manejo del Proveedor______________________ ___________________________________________________________________ Se crear un formulario para el ingreso del proveedor, esta ventana contiene los siguientes campos: Nombre, RUC, Direccin, telfono._______________________ ___________________________________________________________________ ___________________________________________________________________
Validacin del formulario Proveedor____________________________________ ___________________________________________________________________ El sistema valida que el nombre y el RUC no se repitan.______________________ ___________________________________________________________________ El sistema valida que el RUC sea de tipo Entero_____________________________ ___________________________________________________________________ El sistema valida que el telfono sea de tipo entero, adems se puede ingresar los siguiente caracteres ( ) /.____________________________________________ ___________________________________________________________________ El sistema valida que se ingresen todos los campos obligatorios. Para diferenciar los campos obligatorios de los que no lo son, se coloco el titulo de cada campo con negrita y si negrita respectivamente.______________________________________ ___________________________________________________________________
lxi
Creacin de la ventana para el manejo del Cliente_________________________ ___________________________________________________________________ Se creara una ventana para el ingreso del cliente. Los campos que contiene esta ventana son: Nombre, apellido, cdula, direccin y telfono:___________________ ___________________________________________________________________ ___________________________________________________________________
Validacin del formulario Cliente_______________________________________ El sistema valida que la cdula no se repita.________________________________ ___________________________________________________________________ El sistema valida que la cdula sea correcta.________________________________ ___________________________________________________________________ El sistema valida que el telfono sea de tipo entero, adems se puede ingresar los siguiente caracteres ( ) /.____________________________________________ ___________________________________________________________________ El sistema valida que se ingresen todos los campos obligatorios. Para diferenciar los campos obligatorios de los que no lo son, se coloco el titulo de cada campo con negrita y si negrita respectivamente.______________________________________ ___________________________________________________________________
Creacin de la ventana para el manejo del Usuario________________________ ___________________________________________________________________ Se crear una ventana para el ingreso del usuario, esta contendr los siguientes campos: Nombre, Apellido, Cedula, Fecha de nacimiento, direccin, telfono, cuenta, clave y el permiso de usuario______________________________________ _________________________________________________________________________________ _____________________________________________________
Validacin del formulario Usuario______________________________________ El sistema valida que la cdula no se repita.________________________________ ___________________________________________________________________ El sistema valida que la cdula sea correcta.________________________________ ___________________________________________________________________ El sistema valida que el telfono sea de tipo entero, adems se puede ingresar los siguiente caracteres ( ) /.____________________________________________ ___________________________________________________________________ El sistema valida que se ingresen todos los campos obligatorios. Para diferenciar los campos obligatorios de los que no lo son, se coloco el titulo de cada campo con negrita y si negrita respectivamente.______________________________________
lxii
___________________________________________________________________
Creacin de la ventana para el manejo de Bodegas________________________ ___________________________________________________________________ El formulario para la creacin de bodegas contiene los siguiente campos: Nombre, Ubicacin y descripcin._______________________________________________ ___________________________________________________________________ ___________________________________________________________________
Validacin del formulario Bodegas______________________________________ ___________________________________________________________________ El sistema valida que el nombre de la bodega no se repita._____________________ ___________________________________________________________________ El sistema valida que se ingresen todos los campos obligatorios. Para diferenciar los campos obligatorios de los que no lo son, se coloco el titulo de cada campo con negrita y si negrita respectivamente.______________________________________ ___________________________________________________________________
Creacin de la ventana para el manejo del almacenamiento de productos_____ ___________________________________________________________________ El formulario para el almacenamiento de los productos consta de los siguientes campos: Cdigo del producto, el nombre del producto, la cantidad, fecha de elaboracin, fecha de expiracin y la bodega o percha donde se encuentra ubicado._ _________________________________________________________________________________ _____________________________________________________
Validacin del formulario Almacenamiento de productos___________________ ___________________________________________________________________ El sistema valida que se ingresen todos los campos obligatorios. Para diferenciar los campos obligatorios de los que no lo son, se coloco el titulo de cada campo con negrita y si negrita respectivamente.______________________________________ _________________________________________________________________________________ _____________________________________________________
lxiii
Fecha
15/05/2007
Controlar el ingreso al sistema utilizando una cuenta y clave Se ingresar perfiles de usuario para determinar permisos para cada uno. Notas
Historia de Usuario 3 en el Desarrollo Creacin de la ventana para el Ingreso al sistema_________________________ ___________________________________________________________________ Se creara un aventa para que el usuario pueda ingresar su cuenta y clave._________ ___________________________________________________________________ Cuando la clave es errnea se presentara un mensaje indicando que la cuenta o clave es errnea y se encerar los campos_______________________________________ ___________________________________________________________________ Si la cuenta y clave son correctas se carga los permisos de usuario.______________ _________________________________________________________________________________ _____________________________________________________
lxiv
El formulario Perfiles de Usuario consta de los siguientes campos: Nombre del Perfil de Usuario, la descripcin, la fecha de inscripcin y los permisos para el acceso al
sistema._____________________________________________________ Validacin del formulario Almacenamiento de productos___________________ ___________________________________________________________________ El sistema valida que el nombre del Perfil de Usuario no se repita.______________ ___________________________________________________________________ El sistema valida que se ingresen todos los campos obligatorios. Para diferenciar los campos obligatorios de los que no lo son, se coloco el titulo de cada campo con negrita y si negrita respectivamente.______________________________________ _________________________________________________________________________________ _____________________________________________________
Fecha
15/05/2007
Se realizar una ventana para la facturacin y se emitir una factura que ser entregada al cliente, Se visualizar los productos comprados con su precio y el total, El cliente podr realizar la devolucin del producto, se realizar bsqueda de la factura, se realizara clculos del IVA Notas
Historia de Usuario 4 en el Desarrollo Creacin de la ventana para el manejo de la Facturacin___________________ ___________________________________________________________________ Se crear una ventana para la facturacin los campos a ingresar son: Codigo del producto, Cantidad y cdula del cliente.____________________________________ ___________________________________________________________________ Validacin del formulario Usuario______________________________________
lxv
El sistema valida que la cdigo sea de 12 o 13 dgitos_________________________ ___________________________________________________________________ El sistema valida que la cdula sea correcta para cargar los datos del
cliente______________________________________________________________ ___________________________________________________________________ El sistema indicar si el producto esta agotado______________________________ ___________________________________________________________________ El sistema imprime una factura cuando se graba la misma_____________________ ___________________________________________________________________
La especificacin de requerimientos de usuario se lo realiza en todo el ciclo de vida XP y la recodificacin es el pan de cada da en la cultura XP. Gracias a la sencillez los cambios en la especificacin de usuario o en la recodificacin sern rpidos y sencillos.
3.2.Diseo.
En el diseo el investigador utilizara algunas estrategias XP como: La cosa ms sencilla podra funciona para lo cual se necesita utilizar las 4 variables antes mencionadas por el autor (comunicacin, sencillez, realimentacin y valenta) asegurando la buena aplicacin de la estrategia. Se evita con esto la duplicidad de cdigo, se aprende de la recodificacin ya que al ser sencillo no costara mucho arreglarlo y mejorarlo. Otra estrategia importante es contar con una arquitectura del sistema como columna vertebral del mismo.
lxvi
3.2.1.Arquitectura
La arquitectura que se utilizar es cliente servidor 3 capas, debido a que permite la independencia de cada una. En esta capa se realiza una interfaz sencilla y amistosa para que el usuario se sienta ms cmodo al utilizar la aplicacin. Se tendr: Formularios (Vb Form) Informes Respuestas al usuario
Usuario
Capa de presentacin En la capa empresarial se colocara: Reglas del negocios Validaciones Clculos Flujos y procesos Lenguajes de Componentes (Componentes Locales)
Capas empresariales
VB
Capas de datos La interaccin con la base de datos se lo realiza en esta capa. Se tendr: Origen de datos Base de datos Tablas Figura 3.2.1.1 (Arquitectura del sistema43) Procedimientos almacenados Componentes de datos
3.2.2.Interfaz de la aplicacin
En el diseo de la interfaz de usuario se explicar el conjunto de elementos que forman y darn cuerpo a la aplicacin. Para esto se utiliza una gua de estilos (Official Guidelines for User Interface Developers and Designers) y tambin un manual (Convenciones de nomenclatura Servicios de consultora de Microsoft para Visual Basic) debido a que se quiere tener una coexistencia con las herramientas de desarrollo que al igual que las gua pertenecen a Microsoft.
Arquitectura de Aplicaciones de 3 capas, 2004, http://download.microsoft.com/download/e/d/1/ed1bd192-a665-49e1-b97de283318c4294/AppDesign.doc 44 Convenciones de nomenclatura Servicios de consultora de Microsoft para Visual Basic , 2003, http://support.microsoft.com/kb/110264/es#top.
lxvii
Cbo Chk Clp cmd (3d) Com Ctr Dat Dir Dlg Drv Fil Frm fra (3d) Gau Gpb Gra Grd Hed Hsb Img
Combo box and drop down list box Checkbox Picture clip Command button (3D) Communications Control (when specific type unknown) Data control Directory list box Common dialog control Drive list box File list box Form Frame (3d) Gauge Group push button Graph Gris Pen Hedit Horizontal scroll bar Image
CboEnglish ChkReadOnly ClpToolbar cmdOk (cmd3dOk) ComFax CtrCurrent DatBiblio DirSource DlgFileOpen DrvTarget FilSource FrmEntry fraStyle (fra3dStyle) GauStatus GpbChannel GraRevenue GrdPrices HedSignature HsbVolume ImgIcon
45
Convenciones de nomenclatura Servicios de consultora de Microsoft para Visual Basic , 2003, http://support.microsoft.com/kb/110264/es#top.
lxviii
b. Texto
Es importante utilizar el menor nmero de palabras en los textos, agregando grficos y sonidos para ilustrando de mejor manera lo que se intenta describir. Las letras tienen que contar con un tipo, estilo y tamao que facilite la legibilidad. Es importante utilizar los propios estndares de letras del sistema operativo para evitar instalaciones extras. El tamao del texto y estilo permite diferenciar los ttulos y subttulos, adems permite resaltar palabras evidenciando prioridad e importancia. En la aplicacin se utilizar The Tahoma 8 ya que es un estndar del sistema operativo Windows 2000.
El texto en los item del men es Tahomna 8 El texto del titulo de la barra es Tahomna 8 negrita El texto en la barra de men es Tahomna 8
lxix
c. Imgenes
La utilizacin de grficos ayuda en la comunicacin entre el usuario y la aplicacin. Caractersticas Los grficos deben tener consistencia, es decir si la aplicacin es para nios, tendr que adecuarse al inters infantil presentando grficos del tipo cartn Animado. Los grficos utilizados en la aplicacin deben tener la misma resolucin y calidad de elaboracin, ya que al no seguir esta regla se pude perder la motivacin y el inters del usuario Es mejor recurrir a una imagen que utilizar un texto que diga lo mismo: "Una imagen dice ms que mil palabras".
Segn la gua de estilo se encontrar 3 tamaos para aplicaciones de 256 y 16 colores, como se muestra en la figura a continuacin.
Si se toma en cuenta esta regla en la aplicacin se puede utilizar los iconos que nos brinda la propia herramienta de desarrollo o se los puede elaborar.
46
Official Guidelines for User Interface Developers and Designers, 2001, http://download.microsoft.com/download/0/4/6/046bbd36-0812-4c22-a87041911c6487a6/WindowsUserExperience.pdf. 47 Official Guidelines for User Interface Developers and Designers, 2001, http://download.microsoft.com/download/0/4/6/046bbd36-0812-4c22-a87041911c6487a6/WindowsUserExperience.pdf.
lxx
Se tomara el tamao que nos da la herramienta (Visual Basic) por defecto, tambin se cambiara estos tamaos de acuerdo con las necesidades en el desarrollo de la aplicacin
Antes del control en una caja de grupo (group box) Pequeos espacios entre controles Caja de texto alado de un botn Check box, list box, o option button Alado de un botn
48
Official Guidelines for User Interface Developers and Designers, 2001, http://download.microsoft.com/download/0/4/6/046bbd36-0812-4c22-a87041911c6487a6/WindowsUserExperience.pdf
lxxi
4 unidades de dialogo
7 unidades de dilogo Figura 3.2.2.3 (Recomendacin del espaciado y la alineacin de los controles49)
No solo se puede usar el color como la nica forma de expresar una idea, se puede emplear otros elementos. Es ptima la utilizacin del blanco y negro primero. Se tiene que tener en cuenta un uso limitado de colores, por ejemplo: el uso de colores apagados, sutiles y complementarios tienen una mayo acogida por el usuario que colores vivos y saturados que a menudo son utilizados para llamar la atencin del usuario Un color neutral (por ejemplo, iluminacin gris) es a menudo el mejor color de fondo. Colores opuestos, tal como el rojo y verde, pueden dificultar la atencin del ojo. Colores oscuros presentan un retroceso en el espacio visual mientas que colores claros se presentan adelante.
49
Official Guidelines for User Interface Developers and Designers, 2001, http://download.microsoft.com/download/0/4/6/046bbd36-0812-4c22-a87041911c6487a6/WindowsUserExperience.pdf
lxxii
PRPURA AZUL
AIL VERDE
NEGRO
Distante, intimidatorio
50
lxxiii
51
lxxiv
Muestras
El amarillo dorado deja una sensacin perdurable, brillante, fuerte. El granate, sorprende por poco usado. La variedad de tonos alrededor del rosa y lavanda
Dramatismo Naturalidad
Masculinidad
Juvenil
Serenidad
Frescura
Tabla 3.2.2.6 (Significado y sensaciones en la rama informtica52) Color Significado o sensacin Rojo Amarillo Verde Luminosidad en Gris Parada, error, falla Advertencia, precaucin, estado de demora Listo para seguir, encendido Neutral
lxxv
El Men Principal permite un manejo adecuado de la aplicacin, los items ms importantes son: Mantenimiento, Inventario y Facturar.
lxxvi
Figura 3.2.2.7 (Formulario Cliente) En el formulario Producto se realiza el ingreso, actualizacin, bsqueda y eliminacin de los registros.
lxxvii
Figura 3.2.2.8 (Formulario Producto) En el formulario Proveedor se realiza el ingreso, actualizacin, bsqueda y eliminacin de los registros.
Figura 3.2.2.9 (Formulario Proveedor) En el formulario Perfil de Usuario se realiza el ingreso, actualizacin, bsqueda y eliminacin de los registros.
lxxviii
Figura 3.2.2.10 (Formulario Perfil de Usuario) En el formulario Inventario se realiza el ingreso, actualizacin, bsqueda y eliminacin de los registros.
Figura 3.2.2.11 (Formulario Inventario) En el formulario Producto Almacenado se realiza el ingreso, actualizacin, bsqueda y eliminacin de los registros.
lxxix
Figura 3.2.2.12 (Formulario Almacenar Producto) En el formulario Administracin de Usuarios se realiza la configuracin de la conexin a la Base de Datos.
lxxx
lxxxi
lxxxii
Figura 3.2.2.16 (Formulario Factura) Para diferenciar los campos obligatorios se coloc la etiqueta de cada campo con negrita.
lxxxiii
BackColor
backColor
b) Distincin de maysculas y minsculas No se debe utilizarse nombres que solo difieran en maysculas o minsculas en los siguientes casos
En los componentes o clases creados. En espacios de nombres Por ejemplo: namespace ee.cummings; namespace Ee.Cummings;
53
Instrucciones de diseo para desarrollar bibliotecas de clases, 2005, www.willydev.net/descargas/GuiaDiseno.pdf 54 Instrucciones de diseo para desarrollar bibliotecas de clases, 2005, www.willydev.net/descargas/GuiaDiseno.pdf
lxxxiv
En funcin con nombres de parmetros. Por ejemplo: void MyFunction(string a, string A) es incorrecto En espacio de nombres con nombres de tipos. Por ejemplo: System.Windows.Forms.Point p System.Windows.Forms.POINT p En nombres de propiedades. Por ejemplo: int Color {get, set} int COLOR {get, set} En nombres de mtodos. Por ejemplo: void calculate() void Calculate()
c)
Abreviaturas
No utilice abreviaturas En nombres de identificadores. Por ejemplo: GetWindow en vez de GetWin. No utilice acrnimos que no estn aceptados en el campo de la informtica. Utilice acrnimos conocidos para reemplazar nombres en frases largas. Por ejemplo: UI para interfaz de usuario OLAP para procesamiento analtico en lnea. Cuando utilice acrnimos, utilice el estilo de maysculas y minsculas Pascal o Camel en acrnimos de ms de dos caracteres. Por ejemplo: Use HtmlButton o htmlButton. Use maysculas en acrnimos que tengan slo dos caracteres Por ejemplo:
lxxxv
d) Eleccin de palabra
Evite utilizar nombres de clases que dupliquen los espacios de nombres utilizados habitualmente en .NET Framework. Evitar utilizar identificadores que provoquen conflicto con las siguientes palabras claves. Tabla 3.2.3.3 (Palabras claves55)
Addhandler As ByRef Match CDec CCNG CStr Default Each Erase False Friend Handles AddressOf Assembly Byte CBool CDbl Coba CType Delegate Else Error Finalize Funcin If Alias Auto ByVal CByte Char Const Date Dim ElseIf Evento Finally Get Implements And Base Call CChar CInt CShort Decimal Do End Exit Flota GetType Imports CDate Class CCNG Declare Double Enumeracin ExternalSource For GoTo In ANSI Bolean
lxxxvi
ParamArray Public REM Set Static Sub Trae Volatile WriteOnly Package
Preserve RaiseEvent RemoveHandler Shadows Paso SyncLock Try When Xor Var
e)
Evitar confusin de nombres de tipos de datos Utilice nombres que describan el significado del tipo de dato, y no nombres que describan el tipo de dato.
En el caso excepcional de que sea necesario crear un mtodo con un nombre nico para cada tipo bsico de datos, utilice nombres de tipos universales.
Tabla 3.2.3.6 (En la tabla siguiente se muestran los nombres de tipos bsicos
y las sustituciones universales58)
Nombre de tipo C# Sbyte Byte Nombre de tipo Visual Basic SByte Byte Nombre de tipo JScript sByte Byte Nombre de tipo Visual C++ Char unsigned char Representacin Ilasm.exe int8 Unsigned int8 Nombre de tipo universal SByte Byte
57
lxxxvii
Short Ushort Int Uint Long Ulong Flota Double Bool Char String Object
Short UInt16 Integer UInt32 Long UInt64 Single Double Boolean Char String Object
Short Ushort Int Uint Long Ulong Flota Double Bolean Char String Object
Short unsigned short Int unsigned int __int64 unsigned __int64 Flota double Bool Echar_t String Object
int16 Unsigned int16 int32 Unsigned int32 int64 Unsigned int64 float32 float64 Bool Char String Object
Int16 UInt16 Int32 UInt32 Int64 UInt64 Single Double Boolean Char String Object
lxxxviii
La nomenclatura que se utiliza es la misma que se detalla en el item Reglas de Negocio. c) Estndares de diseo de Bases de datos 1. Reglas generales
Se utiliza el estndar camelCase, ste elimina los espacios de palabras compuestas y coloca las primeras letras en maysculas, adems se utilizar la variante LowerCamelCase, en sta se coloca la primera letra del nombre en minscula. Tabla 3.2.4.1 (Reglas generales60)
Se acepta Solo caracteres alfabticos. Las letras acentuadas se reemplazarn con las equivalentes no acentuadas Ejemplo: cedula Se remplazara la letra ee () por (ni). Ejemplo: anioExpediente Agregar comentarios a las bases de datos y los campos, sobre todo a los volanos Excepciones Si la naturaleza del nombre necesite dgitos numricos. Ejemplo: localidadCenso2003. Se utilizara guin bajo(_), nicamente en el caso de tablas de relacin No se Acepta El uso de caracteres de puntuacin o smbolos. Evitar la utilizacin de trminos ambiguos o que se presten a distintas interpretaciones.
2.
Reglas generales de Tablas El nombres de la tabla debe especificarse en singular Ejemplos: departamento, factura, moneda. Si las tablas se relaciona especficamente con otra tabla (ej. tablas tipo, nomencladores, entidades dbiles), esta relacin debe quedar expresada en el nombre. Ejemplos: domicilioPersona, categoriaMunicipio. Las tablas de relacin (objetos asociativos, representan relaciones de N a M) deben nombrarse utilizando los nombres de las tablas intervinientes, siguiendo un orden lgico de frase. Adems, para diferenciar de las entidades dbiles, se reemplazar la notacin camelCase, utilizando slo caracteres minsculas y se separarn los nombres de las tablas intervinientes en la relacin utilizando el guin bajo (_). Ejemplos: localidad_municipio, factura_nota
3.
Campos clave (Identificadores de tabla) Toda tabla debe poseer uno o ms campos clave.
60
lxxxix
Toda relacin entre tablas debe implementarse mediante claves forneas. Los campos clave deben ubicarse al inicio de la definicin de la tabla El nombre del campo clave debe estar compuesto por id + nombre de la tabla en singular (para claves no compuestas). Dependiendo de la naturaleza de la entidad, el nombre de la tabla a usar es el de la misma tabla, o el de la relacionada. Ejemplos: tabla localidad => idLocalidad.
Las claves compuestas slo deben utilizarse en casos especficos, por ejemplo, tablas de relacin o entidades dbiles. Si una tabla X con clave compuesta necesita ser referenciada desde otra tabla Y, deber generarse un campo clave en X al inicio de la misma como idX, y generar un ndice nico en los campos que la identificaban.
4.
Otros campos Todo campo que represente un nombre o descripcin de la tabla, se colocar inmediatamente despus de los campos clave, y se nombrar como a la tabla a la que pertenece, en singular. Ejemplos: tabla localidad => idLocalidad, localidad. tabla sucursalEmpresa => idEmpresa, idSucursal, sucursal Algunos campos que representan datos, debern prefijarse : Ejemplo: Nmeros: num (ejemplo: Nmero de factura => numFactura) Fechas: fecha (ejemplo: Fecha de inscripcin => fechaInscripcion) Cdigos: cdigo (ejemplo: Cdigo de producto: codigoProducto) Los campos booleanos debern nombrarse de acuerdo al estado correspondiente al valor 1/Verdadero/True del contexto en el que se encuentran modelados. Ejemplos: autorizado, oculto, vigente. Los campos de relacin (foreign keys, claves forneas) deben nombrarse de la misma manera que los campos clave usando el nombre de la tabla a la que hacen referencia.
xc
d) Modelado de la Base de Datos Para poder entender la forma en que se debe almacenar los datos no permitirn entender mejor al sistema, para esto se realiz el modelado de la Base de Datos del proyecto.
proveedor idProveedor Proveedor rucProveedor direccionProv eedor telefonoProveedor crearProv eedor modificarProv eedor eliminarProveedor
Modelo Conceptual
producto idProducto codigoProducto producto cantidadProducto precioCostoProducto precioVentaProducto stock MinimoProducto stock MaximoProducto crearProducto modificarProducto eliminarProducto
[0,n] REGIST RA [0,1]
usuario idUsuario nombresUsuario apellidosUsuario cedulaUsuario cuentaUsuario clav eUsuario fechaNacimientoUsuario direccionUsuario telefonoUsuario crearUsuario modificarUsuario eliminarUsuario
[0,n] [0,1] CREA [0,1] AUT ORIZA [0,n]
detalle_inv entario idDetalleInv entario cantidadDetalleInv entario fechaElaboracionDetalleInventario fechaExpiracionDetalleInventario crearDetalleInv entario modificarDetalleInventario eliminarDetalleInv entario
factura idFactura fechaFactura subtotalFactura impuestosFactura totalFactura mensajeFactura estadoFactura crearFactura modificarFactura eliminarFactura
cliente idCliente nombresCliente apellidosCliente cedulaCliente direccionCliente telefonoCliente crearCliente modificarCliente eliminarCliente
rol idRol rol insertar actualiza eliminar consultar crearRol modificarRol eliminarRol
xci
Modelo Fsico
PRODUCTO IDPRODUCTO CODIGOPRODUCTO IDPROVEEDOR PRODUCTO CANTIDADPRODUCTO PRECIOCOSTOPRODUCTO PRECIOVENTAPRODUCTO STOCKMINIMOPRODUCTO STOCKMAXIMOPRODUCTO CREARPRODUCTO MODIFICARPRODUCTO ELIMINARPRODUCTO DETALLE_FACTURA IDDETALLEFACTURA integer integer IDFACTURA integer varchar(13) IDPRODUCTO integer integer CODIGOPRODUCTO varchar(13) varchar(40) IDPRODUCT O = IDPRODUCT O CANTIDADDETALLEFACTURA varchar(30) varchar(30) CODIGOPRODUCT O = CODIGOPRODUCT O SUBTOTALDETALLEFACTURA varchar(30) varchar(30) CREARDETALLEFACTURA varchar(40) varchar(30) MODIFICARDETALLEFACTURA varchar(40) varchar(30) ELIMINARDETALLEFACTURA varchar(40) varchar(30) varchar(40) varchar(40) IDFACT URA = IDFACT URA varchar(40) USUARIO IDUSUARIO IDPERFILUSUARIO NOMBRESUSUARIO APELLIDOSUSUARIO CEDULAUSUARIO CUENTAUSUARIO CLAVEUSUARIO FECHANACIMIENTOUSUARIO DIRECCIONUSUARIO TELEFONOUSUARIO CREARUSUARIO MODIFICARUSUARIO ELIMINARUSUARIO integer integer varchar(40) varchar(40) varchar(11) varchar(30) varchar(30) timestamp varchar(80) varchar(40) varchar(40) varchar(40) varchar(40)
IDPROVEEDOR = IDPROVEEDOR
PROVEEDOR IDPROVEEDOR PROVEEDOR RUCPROVEEDOR DIRECCIONPROVEEDOR TELEFONOPROVEEDOR CREARPROVEEDOR MODIFICARPROVEEDOR ELIMINARPROVEEDOR integer varchar(40) varchar(13) varchar(80) varchar(40) varchar(40) varchar(40) varchar(40)
DETALLE_INVENTARIO IDDETALLEINVENTARIO IDPRODUCTO CODIGOPRODUCTO IDINVENTARIO CANTIDADDETALLEINVENTARIO FECHAELABORACIONDETALLEINVENTARIO FECHAEXPIRACIONDETALLEINVENTARIO CREARDETALLEINVENTARIO MODIFICARDETALLEINVENTARIO ELIMINARDETALLEINVENTARIO integer integer varchar(13) integer varchar(30) timestamp timestamp varchar(40) varchar(40) varchar(40)
FACTURA IDFACTURA IDCLIENTE IDUSUARIO FECHAFACTURA SUBTOTALFACTURA IMPUESTOSFACTURA TOTALFACTURA MENSAJEFACTURA ESTADOFACTURA CREARFACTURA MODIFICARFACTURA ELIMINARFACTURA
integer integer integer timestamp varchar(30) varchar(30) varchar(30) varchar(255) varchar(20) varchar(40) varchar(40) varchar(40)
IDPERFILUSUARIO = IDPERFILUSUARIO
IDUSUARIO = IDUSUARIO
PERFIL_USUARIO IDPERFILUSUARIO PERFILUSUARIO DESCRIPCIONPERFILUSUARIO FECHAPERFILUSUARIO ESTADOPERFILUSUARIO CREARPERFILUSUARIO MODIFICARPERFILUSUARIO ELIMINARPERFILUSUARIO integer varchar(40) varchar(80) timestamp smallint varchar(40) varchar(40) varchar(40)
INVENTARIO IDINVENTARIO INVENTARIO UBICACIONINVENTARIO DESCRIPCIONINVENTARIO CREARINVENTARIO MODIFICARINVENTARIO ELIMINARINVENTARIO integer varchar(40) varchar(80) varchar(80) varchar(40) varchar(40) varchar(40)
CLIENTE IDCLIENTE NOMBRESCLIENTE APELLIDOSCLIENTE CEDULACLIENTE DIRECCIONCLIENTE TELEFONOCLIENTE CREARCLIENTE MODIFICARCLIENTE ELIMINARCLIENTE
ROL IDROL IDPERFILUSUARIO ROL INSERTAR ACTUALIZA ELIMINAR CONSULTAR CREARROL MODIFICARROL ELIMINARROL
integer integer varchar(40) smallint smallint smallint smallint varchar(40) varchar(40) varchar(40)
3.2.5.Metfora
xcii
Retomando la metodologa utilizada en este proyecto, en el diseo se encuentra la metfora que dar vida al sistema: El sistema permitir la administracin de un micro mercado, brindando la facilidad del ingreso de sus productos los cuales pueden ser buscados y modificacin. El sistema realizar la impresin de una factura que tendr todo el detalle de los productos solicitados, Los inventarios permiten que el usuario verifique que productos se encuentran en stock, si hay alguno caducado y en donde se encuentran.
Escenario 2: Creacin, actualizacin y eliminacin de un usuario Andrs ingresar un nuevo usuario, selecciona en el men principal la opcin USUARIO. Andrs ingresa los siguientes datos. Nombre de usuario: Roberto, Apellido Guzmn Cuenta de usuario: ANDRESGUZMAN Clave: ***** Fecha de nacimiento: 19 enero 1980 Direccin: Av. prensa 2725 Perfil de usuario: administrador. Andrs actualizar los datos de un usuario, consulta la lista de todos los usuarios, selecciona el usuario Roberto y Cambia la clave del mismo.
xciii
Andrs eliminar una cuenta de usuario, consulta la lista de todos los usuarios, selecciona el usuario Roberto y lo elimina.
Escenario 3: Creacin, actualizacin y eliminacin de un perfil de usuario Andrs ingresar un nuevo perfil, selecciona la opcin Perfil de usuario. Ingresa: Nombre: Descripcin: Permiso: empleado, Permisos Limitados, 2.
El sistema valida la existencia de ese perfil, si existe despliega en pantalla un mensaje indicando la duplicidad. Andrs actualizar los datos de un perfil de usuario, consulta la lista los perfiles de usuario, selecciona el perfil Administrador, cambia la descripcin Todos los permisos y lo graba. El sistema valida que no exista duplicidad en la informacin Andrs quiere eliminar un perfil, consulta la lista de los perfiles de usuario, selecciona el perfil Empleado y lo elimina Si el perfil se encuentra en uso en algn usuario, se despliega una pantalla indicando que solo se puede eliminar si se cambia el permiso o se eliminar el usuario.
Escenario 4: Creacin, actualizacin y eliminacin de un cliente Andrs ingresar un nuevo cliente, selecciona la opcin Cliente, Ingresa: Nombres: Mara Jos Apellidos: Espinosa Fuentes Cedula: 1718171596 Direccin: Carapungo primera etapa Telfono: 2420716 Andrs actualizar los datos de un cliente, consulta la lista los clientes, selecciona a Mara Jos Espinosa, cambia la cdula 1719171596. Andrs quiere eliminar un cliente, consulta la lista de clientes, selecciona a Mara Jos Espinosa y lo elimina
Escenario 5: Creacin, actualizacin y eliminacin de un proveedor Andrs ingresar un nuevo proveedor, selecciona la opcin Proveedor del Men Principal, ingresa: Nombre del Proveedor: RUC: Direccin: Telfono: Coca Cola, 001717141519, Av. 10 de agosto 2520142
xciv
Andrs actualizar los datos de un proveedor, consulta la lista de los proveedores, selecciona Coca Cola, cambia la direccin Av. de la prensa 2725. Andrs eliminar un proveedor, consulta la lista de proveedores, selecciona Coca Cola y lo elimina
Escenario 6: Creacin, actualizacin y eliminacin de un producto Andrs ingresar un nuevo producto, selecciona la opcin producto del Men Principal, ingresa: Nombre del producto: Cantidad: Costo: Stock mnimo: Stock mximo: Proveedor: Atn Real 10 0.75 5 20 REAL
Andrs actualizar los datos de un producto, consulta la lista de productos, selecciona Atn Real, cambia el costo 1. Andrs eliminar un producto, consulta la lista de productos, selecciona Atn Real y lo elimina
Escenario 7: Creacin, actualizacin y eliminacin de un inventarios Andrs ingresar el inventario para esto ingresa en la opcin Bodega y Perchas Nombre de bodega o percha: Descripcin: Ubicacin: BODEGA 1 o PERCHA 1 ------ Segundo piso del Edif. Santorino
Andrs quiere actualizar los datos de una Bodega o Percha, selecciona uno de ellos y lo actualiza. Andrs desea Eliminar una Bodega o Percha, para lo cual tiene que seleccionar uno de ellos y luego hacer clic en el botn eliminar.
Escenario 8: Creacin, actualizacin y eliminacin de un inventario Andrs desea ingresar la Ubicaron de los productos que es parte del modulo de inventario, ingresa: Cdigo del producto: 7802635000157 Cantidad: 20 Ubicacin del Producto: Percha 1 Bodega 2 La fecha de Elaboracin: 10-06-2006 La fecha de Expiracin: 12-06-2006 Andrs desea actualizar el inventario para lo cual selecciona el producto y actualiza la cantidad. Andrs desea eliminar un elemento para esto selecciona un producto y luego hace clic en eliminar.
xcv
Andrs desea facturar algunos productos, para lo cual ingresa en la opcin facturar. El sistema despliega en pantalla una ventana en la que se podr ingresar el cdigo del producto que el cliente a elegido
Andrs pregunta al cliente su numero de cdula, si el usuario ya existe saldr automticamente los datos del mismo al poner en la caja de texto la cedula, caso contrario Andrs har clic en ingresar cliente. El sistema despliega en pantalla la ventana cliente. Andrs comienza a registrar los productos seleccionados por el cliente uno por uno, al terminar el ingreso Andrs hace clic en grabar. El sistema registra los datos de la factura con sus respectivos detalles. Por ultimo el sistema imprime la factura.
Las tarjetas CRC (Cargo o Clase, Responsabilidad y Colaboracin) Facilitan el diseo del sistema y es una de las partes importantes en la metodologa XP.
xcvi
Tabla 3.2.6.1 (Tarjeta CRC Usuario) Nombre de la clase: USUARIO Responsabilidad Ingresar una cuenta de usuario Actualizar la cuenta de usuario Eliminar la cuenta de usuario Asignar perfil Conoce el perfil de cada usuario
Colaboracin USUARIOS, IngresarUsuario, PERFIL_USUARIO, ListarPerfil, ExistePerfil USUARIO, ActualizarUsuario, ExisteUsuario, PERFIL_USUARIO, ListaPerfil, ExistePerfil USUARIO, EliminarUsuario PERFIL_USUARIO, ListarPerfil PERFIL_USUARIO, ListarPerfil
Tabla 3.2.6.2 (Tarjeta CRC Perfil Usuario) Nombre de la clase: PERFIL_USUARIO Responsabilidad Colaboracin Ingresas el Perfil de usuario PERFIL_USUARIO, IngresarPerfil Actualizar del perfil de usuario PERFIL_USUARIO, ActualizarPerfil Eliminar Perfil de usuario PERFIL_USUARIO, EliminarPerfil Conoce los permisos de usuario PERFIL_USUARIO, ListarPerfil
Tabla 3.2.6.3 (Tarjeta CRC Cliente) Nombre de la clase: CLIENTE Responsabilidad Ingresas los datos del cliente Actualizar los datos del cliente Eliminar el cliente Conoce los datos del cliente
Tabla 3.2.6.4 (Tarjeta CRC Proveedor) Nombre de la clase: PROVEEDOR Responsabilidad Ingresas los datos del proveedor Actualizar los datos del proveedor Eliminar el proveedor Conoce los datos del proveedor
xcvii
Responsabilidad Ingresas los datos del producto Actualizar los datos del producto Eliminar el producto Asigna el proveedor Asigna la Ubicacin Conoce los datos del producto Conoce los proveedores de producto
Colaboracin PRODUCTO, IngresarProducto PRODUCTO, ActualizarProducto PRODUCTO, EliminarProducto PROVEEDOR, ListarProveedor PRODUCTO, ListarProducto PRODUCTO, ListarProveedoresProducto
cada
Tabla 3.2.6.6 (Tarjeta CRC Inventario Detalle) Nombre de la clase: INVENTARIO_DETALLE Responsabilidad Colaboracin Ingresa el inventario detalle INVENTARIO_DETALLE, IngresarInventarioDetalle Actualiza el inventario detalle INVENTARIO_DETALLE, ActualizrInventarioDetalle Eliminar el inventario detalle INVENTARIO_DETALLE, EliminarInventarioDetalle Selecciona el tipo de inventario INVENTARIO_DETALLE, ListarInventarioDetalle
Tabla 3.2.6.7 (Tarjeta CRC Inventario) Nombre de la clase: INVENTARIO Responsabilidad Ingresa el inventario Actualizar inventario Eliminar inventario Conoce el PRODUCTO Conoce el INVENTARIO_DETALLE
Colaboracin INVENTARIO, IngresarInventario INVENTARIO, IngresarActualizar INVENTARIO, IngresarEliminar PRODUCTO, ListarProducto INVENTARIO_DETALLE, ListarInventarioDetalle
Tabla 3.2.6.8 (Tarjeta CRC Detalle Factura) Nombre de la clase: DETALLE_FACTURA Responsabilidad Colaboracin Registrar los productos PRODUCTO, ListarProducto Insertar un detalle factura por cada DETALLE_FACTURA, InsertarDetalleFactura producto
xcviii
Responsabilidad Registrar la factura Realizar el calculo del valor total a pagar Imprimir la factura
3.3.
Implementacin
Las estrategias utilizadas en este proyecto se las describir a continuacin: La integracin es una estrategia importante en la fase de desarrollo determinando cambio y recodificacin, se intenta con esto tener fracciones de cdigo sencillo con el fin de integrar lo ms rpido posible con el resto sin tener conflicto alguno. Para lograr esto se tiene que contar con pruebas de unidad incluso antes de desarrollar el cdigo, esto permitiendo tener una visin de lo que el cdigo debe realizar. Las estrategias como la propiedad colectiva y la programacin en parejas no se utilizaron en el proyecto ya que es desarrollado por una sola persona, pero sus principios como (realimentacin rpida, asumir la sencillez, cambio incremental, aceptar el cambio, trabajo con calidad) se las tomo ya que son muy necesarias. Se tomo en cuenta las recomendaciones de XP en la fase de desarrollo como: El cliente esta siempre disponible, se debe escribir cdigo de acuerdo a los estndares, desarrollar las pruebas de unidad primero, integracin frecuente, dejar las optimizaciones para el final, no trabajar mas de 40 horas a la semana. Adoptando la cultura XP, con sus estrategias de desarrollo, principios, recomendaciones se desarrollar pensando en obtener un software de calidad.
3.3.1. Codificacin
Contando con las herramientas y con la ayuda en la fase de diseo del sistema se podr desarrollar pensando en la calidad. Microsoft Studio.Net, Visual Studio .Net 2005: es una herramienta grfica de desarrollo, fcil de utilizar, permitiendo presentar una aplicaron agradable para el usuario y fcil de entender y utilizar.
Se creo el proyecto con nombre SYSMARK que contiene los formularios y sus libreras .
xcix
Se creo el proyecto para la capa de negocio llamado SysMarkNegocio y se creo el proyecto SysMarkPersistencia que contiene todas las clases para el acceso a la base de datos.
MySQL 4.0.20: Es un motor de base de datos open source, se lo puede administrar por medio de consola.
Para el acceso a la Base se datos se utilizo stored procedure y triggers, que permiten que el acceso se mucho mas rpido.
3.3.3. Pruebas XP
Se desarrollar pruebas unitarias para cada fraccin de cdigo, logrando que las pruebas se completen en un 100%. La pruebas de aceptacin se lo realizara con el cliente, ya que es la persona que da el visto bueno al sistema.
3.3.3.1.Pruebas.
Lo que diferencia a XP de las dems metodologas tradicionales es contar con una herramienta que permita las pruebas automatizadas. Para la realizacin de las pruebas automatizadas se utiliz la herramienta NUnit 2.4.1 que es la encargada de analizar el ensamblado generado por .Net. Se cuenta tambin con atributos personalizados para interpretar las pruebas y mtodos para implementarlas. Las pruebas en XP constituyen un gran valor, mejorando la calidad del software debido a que las pruebas unitarias se lo realiza incluso antes de escribir el cdigo. La utilizacin de una gran cantidad de tiempo en la realizacin de las mismas, provoca un miedo en los desarrolladores que utilizan metodologas tradicionales.
fallos
falla pasa
ci
3.3.3.2.Implementar NUnit
A continuacin se presenta una pequea porcin de cdigo utilizando los atributos de NUnit.
Se crea primero las clases de prueba. A la clase se la llamo ProductoPrueba, para la parte de productos. Importamos la librera de NUnit (nunit.framework), para poder utilizar todos los atributos que nos brinda la herramienta. Para indicar a la herramienta que se va a realizar pruebas se coloca antes de la clase <TestFixture> . Si necesitamos cargar variables utilizamos el atributo <SetUp> _
Figura 3.3.3.2.1 (Cdigo fuente pruebas XP ) Todo mtodo que comience por <Test()> ser ejecutado automticamente por NUnit
cii
Figura 3.3.3.2.2 (Cdigo fuente pruebas XP ) Assert nos brinda varios mtodos de comprobacin, entre los ms utilizados se tiene: AreEqual(valor_esperado,valor_real): Comprueba si el valor esperado y el valor actual son iguales por ejemplo Assert.Equal(1, 2-1) Assert.Equal(6, 3*2) IsTrue(bolean condicin): Comprueba que la condicin sea cierta IsFalse(bolean condicin): Comprueba que la condicin es falsa
a.
Se centra en los requisitos funcionales del software y es un complementan a las pruebas de caja blanca
Buscar
Buscar2
Cliente
ClientePrueba
Eliminar
Insertar
Modificar
EntradaSistema
EntradaSistemaPrueba
Buscar
ciii
Buscar2
Verifica que la busqueda del rol se realiza de forma correcta enviando como parametro el identificador idrol Verifica la busqueda de facturas enviando el identificador idFactura Verifica que la anulacion de la Factura se lo realiza correctamente Verfica el ingreso de una nueva factura Verifica la eliminacion de un intem de la factura Verifica la modificacion de una factura
Buscar
Nombre de la Clases
Descripcion Verifica que la busque de toda la informacion de la tabla Inventario sea correcta Verifica que no se pueda eliminar un Inventario relacionado con un Detalle_inventario Verifica que no se pueda insertar un inventario cuando se ingrese el nombre duplicada Verifica que no se pueda modificar un inventario cuando se Ingrese el nombre duplicada Verifica que la busque de toda la informacion de la tabla Detalle_Inventario sea correcta
Resultado
Buscar
Modificar
InventarioDetalle
InventarioDetallePrueba
Buscar
civ
Verifica la eliminar de un Detalle_Inventario Verifica la insercion de un Detalle_Dnventario Verifica la modificar de un Detalle_Inventario Verifica que la busque de toda la informacion de la tabla Perfil_Usuario sea correcta Verifica que no se pueda eliminar un Perfil_Usuario relacionado con un usuario Verifica que no se pueda insertar un Perfil_Usuario cuando se ingrese el nombre duplicada Verifica que no se pueda modificar un Perfil_Usuario cuando se Ingrese el nombre duplicada Verifica que la busque de toda la informacion de la tabla Producto sea correcta Verifica que no se pueda eliminar un Producto relacionado con una Factura o Detalle_Inventario
Buscar
Eliminar
PerfilUsuario
PerfilUsuarioPrueba Insertar
Modificar
Buscar
Eliminar
Producto
ProductoPrueba Insertar Verifica que no se pueda insertar un Producto cuando se ingrese el nombre o codigo duplicado Verifica que no se pueda modificar un Producto cuando se Ingrese el nombre o codigo duplicado
Modificar
Buscar
Eliminar
Proveedor
ProveedorPrueba Insertar
Modificar
cv
Buscar
Verifica que la busque de toda la informacion de la tabla Usuario sea correcta Verifica que no se pueda eliminar un Usuario relacionado con una Factura Verifica que no se pueda insertar un Usuario cuando se ingrese la cedula o cuenta duplicada Verifica que no se pueda modificar un Usuario cuando se Ingrese la cedula o cuenta duplicada
Eliminar
Usuario
UsuarioPrueba Insertar
Modificar
Se verific que todos los campos obligatorios tengan los label en negritas
Cliente
Interfase
Se verific que todos los campos obligatorios tengan los label en negritas
cvi
EntradaSistema
Se verific que todos los campos obligatorios tengan los label en negritas
Factura
Se verific que todos los campos obligatorios tengan los label en negritas
Inventario
Se verific que todos los campos obligatorios tengan los label en negritas
Nombre de la Clases
Descripcion
Resultado
InventarioDetalle
Se verific que todos los campos obligatorios tengan los label en negritas
cvii
PerfilUsuario
Se verific que todos los campos obligatorios tengan los label en negritas
Producto
Se verific que todos los campos obligatorios tengan los label en negritas
Proveedor
Nombre de la Clases
Descripcin
Resultado
Se verific que todos los campos obligatorios tengan los label en negritas
Usuario
cviii
Aseguran que la operacin interna del programa se ajusta a las especificaciones y que todos los componentes internos se han probado adecuadamente.
Cliente
EntradaSistema
EntradaSistemaPrueba
IngresoTeclado
Factura
FacturaPrueba
Validar
Inventario
InventarioPrueba
Validar
InventarioDetalle
InventarioDetallePrueba
Validar
PerfilUsuario
PerfilUsuarioPrueba
Validar
Proveedor
ProveedorPrueba
Validar
Usuario
UsuarioPrueba
Validar
FormularioPrueba formulario
CadenaCambiarPrueba
CadenaConseguirCaract eresPrueba
cix
CadenaContarPrueba
OperacionesMatematica
Operaciones matematicaPrueba
ImpuestoCalculoPrueba MultiplicaionPrueba
Validar
ValidarPrueba
CampoRequeridoPrueba
Verifica que se cumpla la condicin de contar una cadena de caracteres Verifica que la clase devuelva el valor del impuesto Verifica la multiplicaron de cantidades Verifica que los diferentes tipo de datos concuerden
3.3.3.4.Resultado de la Pruebas
Se presenta en las pantallas el resultado que arrojo el sistemas NUnit de todas las pruebas del sistema.
cx
cxi
Figura 3.3.4.2 (Perfil de Usuario, permisos) Los permisos son para los formularios Factura, inventario, Cliente, Proveedor y Producto. En los permisos se podr habilitar o desactivar las opciones: Crear, Modificar, Anular y consultar. Al iniciar el sistema con una cuenta valida, la aplicaron asigna los permisos del usuario y los almacena en una variable, esto permite asignar el acceso a alguna de las opciones antes citadas. Otra de las seguridades adicionales de la aplicaron es la verificacin de certificados, Esto quiere decir que el sistema busca la existencia de certificados digitales, y los compara con los certificados que se encuentran guardado en la base de datos. Si el usuario no tiene una certificacin digital no podr ingresar al sistema as tenga su cuenta en el mismo .Si eso ocurre el usuario tendr que comunicarse con el administrador del sistema para instalar el certificado. Una de las mayores amenazas en una empresa es la modificacin o destruccin de su informacin, por eso los motores de base de datos cuentas con su propia seguridad, el administrador es el nico que puede tener su cuenta para el ingreso a la base de datos, evitando que usuarios mal intencionados accedan a esa informacin.
cxii
cxiii
Al hacer clic en el icono, presenta una pantalla para la importacin del certificado, luego se hace clic en el botn siguiente.
Figura 3.3.4.1.2 (Importacin del certificado) En esta ventana se especifica el archivo que se quiere importar en este caso no modificamos nada y se hace clic en el noton siguiente
cxiv
Figura 3.3.4.1.3 (Ubicacin del archivo para la importacin) Colocamos la contrasea y marcamos la casilla Habilitar proteccin segura de claves privadas y dejamos sin marcar la opcin Marcar esta clave como exportable, para que otro usuario no autorizado pueda exportar la clave privada. Luego hacer clic en siguiente.
Figura 3.3.4.1.4 (Configuracin del certificado) Se Deja la opcin por defecto para que almacene automticamente el certificado, luego hacer clic en el botn siguiente.
cxv
Figura 3.3.4.1.5 (Seguridad en MySql Modo Consola) Por ultimo se finaliza la importacin
cxvi
Figura 3.3.4.1.8 (Importacin concluida exitosamente) Ingresamos a Panel de Control y luego elegimos Opciones de Internet
cxvii
cxviii
cxix
cxx
Luego aparecer una pantalla en la que UD. Deber colocar su usuario y contrasea .
3.4.1.2.Perfiles de Usuario
Dependiendo del perfil que el administrador haya configurado para el usuario Ud. podr acceder con sus determinados permisos:
cxxi
Ud. podr acceder a uno o varios formularios dependiendo de los privilegios de acceso que hayan sido configurados por el administrador. b) Cada seccin o grupo de primer nivel, contiene los siguientes elementos que van a ser tiles en la administracin del sistema de Puntos de venta: Archivos. o Nuevo o Guardar o Eliminar o Buscar o Salir Ver. o Barra de Herramientas o Barra de Estado Seguridad. o Usuario o Perfil de Usuario Mantenimiento. o Cliente o Producto o Proveedor Inventario. o Bodega y Perchas o Producto Almacenado Facturar. o Iniciar Facturacin Configuracin. o Cambiar Usuario o Configuracin Impresora Vista Previa Configuracin de Pagina o Firma Digital o Administracin de Usuario de BS Ventana. o Cascada o Mosaico Vertical o Mosaico Horizontal o Cerrar Todo
3.4.1.4. Nuevo
Al hacer clic en Nuevo inicia un formulario para luego ser registro con la opcin guardar, esta opcin se la puede encontrar en el men principal del sistema y en la Barra de Herramientas
cxxii
3.4.1.5. Guardar
Al hacer clic en Guardar permite crear un nuevo registro en cualquier formularios, esta opcin se la puede encontrar en el men principal del sistema y en la Barra de Herramientas
3.4.1.6. Eliminar
Al hacer clic en eliminar permite eliminar un registro en cualquier formularios, esta opcin se la puede encontrar en el men principal del sistema y en la Barra de Herramientas
3.4.1.7. Buscar
Al hacer clic en Buscar esta opcin realizar bsquedas dependiendo del formulario, esta opcin se la puede encontrar en el men principal del sistema y en la Barra de Herramientas
3.4.1.8. Salir
Al hacer clic en Salir permite cerrar el sistema.
3.4.1.9.Barra de Herramientas
Al hacer clic en Barra de Herramientas ocultara el mismo de la pantalla principal.
cxxiii
3.4.1.11. Usuario
Para registrar un nuevo usuario, se ingresa al formulario Usuario, haciendo clic en el men principal Seguridad y usuario, la otra forma es haciendo clic directamente en el icono Usuario.
cxxiv
cxxv
cxxvi
Se escoge el Perfil de usuario registrado en el sistema haciendo clic en el nombre del mismo.
3.4.1.13. Cliente
Para registrar un nuevo Cliente, se ingresa al formulario Cliente, haciendo clic en el men principal Mantenimiento y Cliente, la otra forma es haciendo clic directamente en el icono Cliente.
cxxvii
Campo en el cual se ingresa los nombres del Cliente Campo en el cual se ingresa los apellidos del Cliente Campo en el cual se ingresa la cdula del Cliente Campo en el cual se ingresa la direccin del Cliente Campo en el cual se ingresa el telfono del Cliente Se escoge el Cliente registrado en el sistema haciendo clic en el nombre del mismo.
3.4.1.14. Producto
Para registrar un nuevo Producto, se ingresa al formulario Producto, haciendo clic en el men principal Mantenimiento y Producto, la otra forma es haciendo clic directamente en el icono Producto.
cxxviii
3.4.1.15. Proveedor
Para registrar un nuevo Proveedor, se ingresa al formulario Proveedor, haciendo clic en el men principal Mantenimiento y Proveedor, la otra forma es haciendo clic directamente en el icono Proveedor.
cxxix
cxxx
cxxxi
cxxxii
cxxxiii
Campo en el que se ingresa el titulo en la seccion del cliente Presenta el nombre del cliente Presenta la cedula del cliente Campo en el que se ingresa el titulo en la seccin del usuario Presenta el nombre del Cajero Permite configurar los datos que se imprimirn en la factura
Campo en el que se ingresa el pie de la factura Campo en el que se ingresa el titulo que va con la seccin de la presentacin de productos Presenta el subtotal sin IVA Presenta el subtotal de los productos con tarifa cero Presenta el subtotal de los productos con tarifa 12 Presenta el porcentaje del IVA Presenta el total con IVA Permite una vista previa de la factura Guarda los cambios realizados en la plantilla de la factura Cancela los cambios
cxxxiv
Figura 3.4.2.1. (Instalador Cliente) Aparece una pantalla que guiar en toda la instalacin, hacer clic en siguiente.
cxxxv
Figura 3.4.2.3. (Asistente, seleccin de carpeta de instalacin) Esta ventana confirma la instalacin, hacer clic en siguiente.
cxxxvi
cxxxvii
cxxxviii
Figura 3.4.2.9. (Asistente, seleccin de carpeta de instalacin) Confirmar la instalacin haciendo clic en siguiente.
cxxxix
Configuracin Luego de instalar el sistema tenemos que configurar, para eso dirigirce a C:\Archivos de programa\MySQL, y ingresar a la carpeta servidor
cxl
Figura 3.4.2.13. (Configuracin, ingreso a la carpeta de configuracin) En esta carpeta encontramos un directorio y un archivo, que permite cargar la base de datos de 2 formas sencillas. La primera forma de cargar la base de datos es copiar la carpeta micromercado
Figura 3.4.2.14. (Carpeta micromercado) Copiar la carpeta micromercado en C:\Archivos de programa\MySQL\MySQL Server 5.0\data\SERVIDOR.
cxli
Figura 3.4.2.16. (Carpeta micromercado) La segunda forma de cargar la base de datos es ingresar en INICIO/todos los programas/MYSQL/MySQL Adminstrator.
Figura 3.4.2.17. (Ingreso al administrador MySql) Aparece una venta en donde se ingresa el servidor host, el usuario y la contrasea
cxlii
Figura 3.4.2.18. (Ingreso a MySql) Aparece una ventana de administracin de base de datos MySQL, hacer clic en Restore.
Figura 3.4.2.19 (Pantalla de administracin de MySql) Aparece la ventana para restaurar una base de datos, hacemos clic en open backup file
cxliii
Figura 3.4.2.20. (Pantalla de restauracin) Aparece una ventana que permite cargar el archivo que se encuentra en el siguiente directorio. C:\Archivos de programa\MySQL\MySQL Server 5.0\data\SERVIDOR LO seleccionamos y lo Abrimos.
cxliv
Figura 3.4.2.22. (Pantalla restauracin y carga) Ingresar el nombre micromercado y hacer clic en OK.
Figura 3.4.2.23. (Ingreso del nombre de la base de datos) Se carga la base de datos y cerramos.
cxlv
Figura 3.4.2.25. (Ingreso al sistema) En el formulario Administracin de Usuarios se realiza la configuracin de la conexin a la Base de Datos.
CAPTULO IV
cxlvi
CONCLUSIONES Y RECOMENDACIONES
4.1 Conclusiones. La utilizacin de estndares de cdigo de barra permiti controlar la identificacin de productos de forma sencilla y rpida. Los dispositivos de puntos de venta como scaner de cdigo de barra agilitaron el proceso de control de inventarios y la venta de productos El uso del lenguaje de programacin visual Basic .net permiti un desarrollo mas rpido y sencillo para el programador Al utilizar del motor de base de datos MYSQL se obtuvo un rendimiento adecuado para el tipo de negocio. El manejo de estndares en la fase diseo y desarrollo facilit la construccin del sistema. Se concluy que la metodologa extreme programming asegura la calidad del software, en todo su ciclo de vida desde la planificacin hasta llegar a las pruebas. Al utilizar XP se realiz un sistema simple sencillo y fcil de usar, concluyendo que la recodificacin es el fuerte ms grande de la metodologa, permitiendo optimizar aun ms el cdigo. Se determin que las pruebas automatizadas diferencian a XP de las dems metodologas tradicionales, ya que se las realiza a diario . Se comprob que XP enfrenta los cambios rpidos de una forma flexible, debido a sus ciclos de vida cortos y su cdigo sencillo. Se demostr que XP necesita de los estndares para su aplicacin, tanto en la capa de interfaz de usuario, reglas de negocio y capa de datos.
cxlvii
Los estndares van de la mano con la metodologa XP, por esto se concluy que aseguran la calidad de la aplicacin, facilitan la resolucin en todas las fases, disminuyen los tiempos en el desarrollo y aumentan la calidad del producto.
cxlviii
4.2 Recomendacin Se recomienda la utilizacin de las herramientas de programacin brindadas por Visual Estudio .Net debido a la interfaz amigable para el desarrollador. Se debera utilizar los estndares como complemento de la metodologa Xp. Sera factible la utilizacin de MySql ya que es un motor de base de datos robusta, con un buen soporte tcnico y gratuito. Convendra utilizar XP en proyectos cortos y medianos, para disminuir el tiempo de desarrollo. En proyectos grandes debido al formalismo y a su gran alcance no es recomendable la aplicaron de XP. Las pruebas unitarias se tendran que realizar antes de la codificacin, ya que ayuda a entender mejor el funcionamiento del sistema. El cdigo debera ser lo ms sencillo, con el fin de contar con una aplicacin fcil de cambiar y probar
cxlix
GLOSARIO DE TRMINOS
XP ( Extreme Programming) Metodologa de Programacin Extrema creada por Kent Beck que se base en principios y prticas CLR (Common Languaje Runtime): Son instrucciones para una maquina virtual y son ejecutadas indirectamente a travs del compilador Just In Time (JIT), permiten generar en varios lenguajes un programa es independiente de la plataforma.
JIT : BCL: ADO.NET: TCP/IP: ASP.NET: API: Win32: Windows API: Servicios Web:
UML (Unified Modeling Lenguaje): Lenguaje de Modelamiento Unificado, Es un lenguaje que permite realizar modelamiento Orientado a Objetos.
Libreras: Eiffel : Perl: Cobol: Fortran: C++: Herramienta de desarrollo de aplicaciones de la casa comercial Microsoft de la arquitectura .NET. C#: Herramienta de desarrollo de aplicaciones de la casa comercial Microsoft de la arquitectura .NET. Visual Basic: Herramienta de desarrollo de aplicaciones de la casa comercial Microsoft de la arquitectura .NET. Framework: Sson los Generadores de Aplicacin que se relacionan directamente con
cl
MySQL: Es un sistema de gestin de bases de datos SQL Open Source Creada por MySQL
AB.
Nunit: Herramienta creado por kent beck para desarrollar pruebas unitarias en C#
SQL (Structured Query Language): Lenguaje utilizado para la administracin de la base de datos.
ANSI/ISO:
Aplicacin: Programa que lleva a cabo una funcin especfica para un usuario. CASE (Computer Aided Sofware Engineering) Ingeniera de Software Asistida por Ordenador un dominio especfico, es decir, con una familia de problemas relacionados Open-Source: Cdigo Abierto. (Son programas que tienen cdigo liberado para poder ser modificado) XML (Extensible Markup Language): Meta-lenguaje que permite definir lenguajes de marcado adecuados a usos determinados. [TestFixture]: : Lengeta que identifica a toda la clase que contiene varias pruebas unitarias [Test] : Lengeta que identifica a una prueba unitaria individual
ANEXOS 1
cli
La verificacin de los certificados digitales permite tener otro tipo de seguridad integrada en la aplicacin.
Para comenzar se creara un combo box en donde se almacenara los certificados instalados en el computador, 3 botones el primero para la creacin de la firma digital, el segundo para validar la firma y su existencia en el servidor de base de datos y salir. Para cargar automticamente el combobox se utilizar el evento Load del formulario frmCertificado. Luego creamos un objeto tipo X509Store y lo cargamos con los certificados instalados en esl sitema con el objeto StoreLocation.CurrentUser con esto ya podemos leer todos los certificados del sistema y lo cargamos por ultimo en el ComboBox cboCertificado Imports System.Security.Cryptography.X509Certificates Public Class frmFirmaDigital Private Sub frmCertificado_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim store As X509Store = New X509Store(StoreLocation.CurrentUser) store.Open(OpenFlags.ReadOnly) Dim certCollection As X509Certificate2Collection certCollection = store.Certificates If (certCollection.Count < 1) Then MsgBox("No hay certificados 'Personales' Instalados.", MsgBoxStyle.Information) Dim c As X509Certificate2 For Each c In certCollection Me.cboCertificado.Items.Add(c.Subject) Next End Sub
Para verificar utilizamos BtnVerificar el que se encarga de validar la exitencia de la firma en la base de datos. Private Sub BtnVerifiFirma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVerifiFirma.Click Try Dim certificadoBase As New SysMarkPersistencia.Certificado
clii
Dim drCertificado drCertificado = certificadoBase.Buscarcertificado(cboCertificado.SelectedItem.ToString , mdiMenuPrincipal.cadenaConeccion) Do While drCertificado.Read() MsgBox("El certificado es correcto", MsgBoxStyle.Information) Exit Sub Loop MsgBox("No se encontro registrada la firma", MsgBoxStyle.Information) Catch ex As Exception Dim errores As New Errores errores.ErroresGenerales(ex) End Try End Sub Para grabar el certificado utilizamos en evento Click del boton Guardar. Private Sub Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnUploadF.Click Try Dim Certificado As New SysMarkPersistencia.Certificado Dim verifica As Integer Dim arr As New ArrayList arr.Add("I") arr.Add(cboCertificado.SelectedItem.ToString) verifica = Certificado.Mantenimiento(arr, mdiMenuPrincipal.cadenaConeccion) If verifica Then MsgBox("Certificado guardado", MsgBoxStyle.Information) Else MsgBox("ya existe el certificado", MsgBoxStyle.Information) End If Catch ex As Exception MsgBox("Existe problemas con en el sistema", MsgBoxStyle.Information) End Try End Sub Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click Close() End Sub End Class
Para el ingreso y verificacion en la base de datos se utilizara la siguiente clase Imports MySql.Data.MySqlClient Public Class Certificado
cliii
La siguiente funcion permite realizar la busqueda enviando la variable certificado Public Function Buscarcertificado(ByVal Certificado As String, ByVal MiCadenaConeccion As String) As MySqlDataReader Dim Arreglocertificado As New ArrayList Dim Concertificado As New MySqlConnection(MiCadenaConeccion) Dim Sqlcertificado As String = "select certificadoNombre from certificado where certificadoNombre='" & Certificado & "'" Dim Dscertificado As New DataSet Dim Drcertificado As MySqlDataReader Dim Cmdcertificado As MySqlCommand Cmdcertificado = New MySqlCommand(Sqlcertificado, Concertificado) Try Concertificado.Open() Drcertificado = Cmdcertificado.ExecuteReader Catch err As MySqlException Dim errores As New Errores errores.ErroresGenerales(err) End Try Buscarcertificado = Drcertificado End Function
La siguiente funcio permite almacenar el registro en la base de datos Public Function Mantenimiento(ByVal arreglo As ArrayList, ByVal MiCadenaConeccion As String) As Integer Dim Concertificado As New MySqlConnection(MiCadenaConeccion) Dim Cmdcertificado As MySqlCommand = Concertificado.CreateCommand() Try Concertificado.Open() Cmdcertificado.Connection = Concertificado Select Case arreglo(0) Case "I" Cmdcertificado.CommandText = "SpInsertarcertificado" Cmdcertificado.CommandType = CommandType.StoredProcedure Cmdcertificado.Parameters.Add("?certifica", MySqlDbType.VarChar, 40) Cmdcertificado.Parameters("?certifica").Direction = ParameterDirection.Input Cmdcertificado.Parameters.Add("?id", MySqlDbType.Int32) Cmdcertificado.Parameters("?id").Direction = ParameterDirection.Output Cmdcertificado.Parameters(0).Value = arreglo.Item(1) Cmdcertificado.ExecuteNonQuery()
cliv
Mantenimiento = Cmdcertificado.Parameters(1).Value() Case "M" Case "E" End Select Concertificado.Close() Cmdcertificado.Dispose() Concertificado.Dispose() Catch ex As MySqlException Dim errores As New Errores errores.ErroresGenerales(Err) End Try End Function End Class
NDICE DE CONTENIDOS
RESUMEN................................................................................................................... v CAPTULO I................................................................................................................ v
INTRODUCCIN ............................................................................................................... v
1.1. 1.2.
clv
Antecedentes ........................................................................................... vii Justificacin............................................................................................ viii Alcance .................................................................................................... ix Metodologa ............................................................................................. ix Herramienta .............................................................................................. xi
Descripcin de sistemas de puntos de venta. ............................................ xii Accesorios para sistemas de puntos de ventas .......................................... xii Estndares de Cdigos de barra ............................................................... xiv IVA (Impuesto al valor agregado) ........................................................... xvi Los micromercados ................................................................................. xvi Metodologas giles .............................................................................. xviii Herramientas .......................................................................................... xxi Metodologa eXtreme Programming ..................................................... xxix
Anlisis de Requerimientos..................................................................... lvii Diseo. .................................................................................................. lxvi Implementacin .................................................................................... xcix Manuales de Usuario ............................................................................. cxx
4.1 4.2
clvi