SlideShare una empresa de Scribd logo
1 de 100
INSTITUTO
TECNOLÓGICO de
Tuxtepec
“Desarrollo de un punto de venta para la refaccionaria
ADRICAR” ubicada en San Juan Bautista Tuxtepec
Oaxaca.”
Barrera Villa Cynthia Del Carmen
Espiritud Cruz José Roberto
Flores Pérez Jorge Eliecer
Jiménez Villar Víctor
Meneses Hernández Rogelio Ivan
Sánchez Santiago Ulises
ASESOR:
L.I. MA. De los Ángeles Martínez Morales
Tuxtepec, Oax. DICIEMBRE 2013
S.E.P D.G.E.S.T S.N.E.S.T
Desarrollo de un punto de venta para la refaccionaria
“ADRICAR” ubicada en San Juan Bautista Tuxtepec
Oaxaca.
RESUMEN
El presente proyecto con el nombre “Desarrollo de un punto de venta para la
refaccionaria “ADRICAR” ubicada en San Juan Bautista Tuxtepec Oaxaca.” Presenta
la investigación que se realizó así como el proceso de desarrollo de software.
El objetivo de este proyecto es aplicar los conocimientos adquiridos en la carrera de
ingeniería en sistemas computacionales dentro de un ámbito empresarial en la
comunidad. Además de ser requisito para aprobar la materia “Taller de investigación
2”. Comenzaremos con desarrollar el planteamiento del problema en el cual se
expone detalladamente la situación de la organización, los recursos con los que
cuenta, sus operaciones, actividad económica; todo esto corresponde al análisis de
requisitos.
Una vez descrito el problema , se presenta una hipótesis por parte del equipo de
investigación, la justificación, las variables de investigación y un estudio de
factibilidad para comprobar si este proyecto será beneficioso para ambas partes : el
equipo de desarrollo de software y la refaccionaria “ADRICAR”.
El desarrollo del software para este sistema se realizó utilizando la metodología de
desarrollo incremental, el lenguaje de programación C# y el uso de diferentes
herramientas CASE entre ellas gestores de bases de datos, entornos de desarrollo
integrados, herramientas de modelado; todos estos conceptos se incluyen dentro del
marco teórico en el cual se describe cada tema los cuales se consideran
fundamentales para entender cómo se desarrolló el proyecto.
Dentro de la sección metodología de desarrollo, se menciona el tipo de investigación
y las herramientas de investigación utilizadas para realizar este proyecto, incluyendo
diagramas de contexto, diagramas de casos de uso, diagrama entidad relación entre
otros. Es decir de describen las fases de la metodología de desarrollo de software
empleada.
Al final encontraremos los anexos los cuales fueron de ayuda o se utilizaron como
herramientas para la investigación y el desarrollo de software.
i
INDICE DE CONTENIDO
RESUMEN ................................................................................................................................iii
INDICE DE CONTENIDO .........................................................................................................i
ÍNDICE DE TABLAS................................................................................................................iv
ÍNDICE DE FIGURAS ..............................................................................................................v
INTRODUCCION ................................................................Error! Bookmark not defined.
IDENTIFICACIÓN DEL PROBLEMA.................................................................................... 7
PLANTEAMIENTO DEL PROBLEMA .................................................................................. 8
FORMULACION DEL PROBLEMA....................................................................................... 9
OBJETIVO GENERAL ..........................................................................................................10
OBJETIVOS ESPECÍFICOS ................................................................................................10
JUSTIFICACIÓN ....................................................................................................................11
Impacto Social: ...................................................................................................................11
Impacto tecnológico:..........................................................................................................11
Impacto económico............................................................................................................11
Impacto ambiental..............................................................................................................11
ESTUDIO DE VIABILIDAD...................................................................................................12
Viabilidad técnica ...............................................................................................................12
Viabilidad Económica........................................................................................................13
Viabilidad Operativa...........................................................................................................15
HIPÓTESIS.............................................................................................................................16
Hipótesis de trabajo...........................................................................................................16
Hipótesis Nula.....................................................................................................................16
Identificación de las variables ..........................................................................................16
Definición conceptual de las variables ...........................................................................16
Definición operativa de las variables ..............................................................................16
METODOLOGIA DE DESARROLLO .................................................................................57
ii
Enfoque de la investigación. ............................................................................................57
Alcance de la investigación ..............................................................................................57
Tipo de investigación.........................................................................................................57
Diseño de la investigación................................................................................................58
Población.............................................................................................................................58
Muestra................................................................................................................................58
Técnicas de recolección de datos ...................................................................................58
Instrumento de investigación ...........................................................................................59
Metodología de desarrollo................................................................................................60
Análisis.................................................................................................................................60
Diseño...............................................................................Error! Bookmark not defined.
Desarrollo .........................................................................Error! Bookmark not defined.
Pruebas y retroalimentación.............................................................................................72
MARCO TEORICO ................................................................................................................17
1. Sistemas de información........................................................................................17
1.1. Dato, información y sistema...........................................................................17
1.2. Sistema de información...................................................................................18
1.3. Componentes del sistema de información...................................................18
1.4. Tipos y usos de sistemas de información...................................................19
2. Base de datos..........................................................................................................23
2.1. Que es una base de datos .............................................................................23
2.2. Tipos de base de datos...................................................................................23
2.3. Normalización de las bases de datos ...........................................................24
2.4. SGBD.................................................................................................................26
2.5. SQL Server Express........................................................................................27
2.6. SQL ....................................................................................................................28
2.7. LINQ ...................................................................................................................30
3. Metodología del proceso de software ..................................................................32
3.1 Definición de metodología .....................................................................................32
3.2 Metodología clásica o de cascada .......................................................................33
iii
3.3 Metodología de desarrollo incremental................................................................34
4. Lenguajes de programación ..................................................................................36
4.1. Lenguaje máquina, lenguaje ensamblador y lenguajes de alto nivel. .....36
4.2. Lenguajes de programación orientados a objetos POO............................36
4.3. C#.......................................................................................................................39
4.4. Microsoft .NET..................................................................................................41
4.5. Visual Estudio 2012 .........................................................................................44
5. Redes e internet ......................................................................................................45
5.1. Que es una Red de computadoras ...............................................................45
5.2 Internet ......................................................................................................................45
5.3 Protocolo...................................................................................................................46
5.4 Acceso a internet.....................................................................................................47
6. Registro de mercancías e inventarios..................................................................50
6.1. Sistemas de inventario ....................................................................................50
6.2. Inventario periódico .........................................................................................51
6.3. Inventario perpetuo ..........................................................................................52
6.4. Cuentas por pagar ...........................................................................................53
6.5. Cuentas por cobrar ..........................................................................................54
6.6. Facturación electrónica CFDI.........................................................................55
Fuentes de información.........................................................................................................79
ANEXO A: CUESTIONARIO PARA LA INDENTIFICACION DEL PROBLEMA. ........82
ANEXO B: ENCUESTA PARA LA EVALUACION DEL SISTEMA ................................83
ANEXO D. PROPUESTA DE DESARROLLO ..................................................................85
iv
ÍNDICE DE TABLAS
Tabla 1 .Costos iniciales.......................................................................................................13
Tabla 4.3 Tipos de datos C# ................................................................................................40
Tabla 4.4 Tipos de datos 2 ...................................................................................................40
Tabla 4.5 Tipo de datos caracteres.....................................................................................41
Tabla 4.6 Tipos de datos logicos.........................................................................................41
v
ÍNDICE DE FIGURAS
Imagen 1.1 Ejemplo de sistema ..........................................................................................17
Imagen 2.7.1 Ejemplo datos.................................................................................................30
Imagen 3.2.1 El modelo en cascada...................................................................................33
Imagen 3.3.1 Faces del modelo incremental.....................................................................35
Imagen 4.2.1 Encapsulación de métodos y atributos ......................................................38
Imagen 7. Diagrama contextual nivel 0..............................................................................62
Imagen 8. Diagrama contextual nivel 1..............................................................................63
Imagen 9. Diagrama contextual nivel 2…………………………………………………..64
Imagen 10. Diagrama contextual nivel 2………………………………………………....65
Imagen 11. Diagrama contextual nivel 2………………………………………………..66
Imagen 12. Diagrama contextual nivel 2 del proceso “Manejo de cuentas” ................67
Imagen 13. Interfaz del sistema “Control Total”................................................................68
Imagen 14. Consola de depuración....................................................................................72
6
INTRODUCCIÓN
La presente propuesta da respuesta al proyecto “CONTROL TOTAL” donde se usa la
metodología de “Modelo incremental” en la que únicamente se procederá a cumplir
con las 4 fases que marca la metodología de software, es importante destacar esto
puesto que utilizaremos la terminología deI Desarrollo Incremental en este
documento, se incluirá el detalle para las fases de Análisis, Diseño, Desarrollo e
Implantación del sistema propuesto para el sistema de ventas.
El enfoque de desarrollo propuesto constituye una configuración del proceso venta
de mercancías de acuerdo a las características del proyecto Desarrollo de un punto
de venta para la refaccionaria “ADRICAR” ubicada en San Juan Bautista Tuxtepec
Oaxaca.
La implementación e instalación de un sistema de ventas en la refaccionaria
“ADRICAR” servirá para tener un mejor control en las entradas y salidas de
productos disponibles en el inventario de la refaccionaria, para desarrollarlo se tuvo
que hacer un estudio donde se determinó que la implementación e instalación de
dicho software era viable dentro de la refaccionaria, se capacito a todo el personal
para un mejor manejo del sistema donde se mostró cada operación que se puede
realizar en cuanto al control de inventario dentro de toda la refaccionaria.
Al final de este proyecto comprobamos nuestra hipótesis de trabajo:
La implementación de un punto de venta que controle la entrada y salida de
mercancías reducirán las pérdidas económicas en la refaccionaria “ADRICAR”.
7
IDENTIFICACIÓN DEL PROBLEMA
La Refaccionaria “ADRICAR” ubicada en el boulevard Benito Juárez 597 Colonia
María Eugenia de la ciudad de San Juan Bautista Tuxtepec Oaxaca, fue fundada en
el año 2005 por el señor “X”.
Dicha empresa se dedica a la venta de refacciones y lubricantes para automóviles.
Inicialmente fue atendida por el propietario y dos años después se incorporó un
empleado de mostrador. Actualmente cuenta con una cartera de 23 proveedores
nacionales y 115 clientes dentro de la zona del Papaloapan. Actualmente laboran de
lunes a sábado de las nueve horas a las 19 horas.
Para que empresa la mercancía ofrecida se venda, la tienda debe tener una buena
presentación, no desatendida y contar con propaganda de la mercancía que venden.
Además la mercancía se encuentra exhibida y acomodada en anaqueles.
La refaccionaria cuenta con un equipo de cómputo para recibir correos y
documentos en general, sirve al administrador para enviar y recibir cotizaciones,
pagos etc.
En lo que respecta al proceso de ventas todo se realiza de forma manual; es en este
punto en donde se identificó que en el negocio surgen pérdidas económicas debido a
que no se tiene control en la entrada y salida de mercancías así como en el registro
de las cuentas por pagar y por cobrar.
8
PLANTEAMIENTO DEL PROBLEMA
Actualmente la forma de operar de la refaccionaria es como cualquier empresa en la
que se ofrece un producto o mercancía al público en general. El objetivo principal es
brindarles atención a los clientes que garantice un servicio de calidad y al mismo
tiempo satisfaga sus necesidades y para que esto se cumpla se necesita una buena
administración y control de la tienda.
El proceso de ventas se realiza de la manera siguiente:
Compra a proveedores
Antes de poder vender algo primero tiene que existir de forma física en la tienda, en
este caso el propietario cumple la función de administrador su función es realizar las
compras y pedidos a los diferentes proveedores de acuerdo al faltante de mercancía
en anaqueles o por ser un pedido especial, también se encarga de revisar los
artículos más demandados. Además el administrador gestiona la cartera de clientes y
proveedores en una libreta en donde registra los aumentos y disminuciones.
Solicitud
Cuando un cliente llega a la tienda pregunta por alguna refacción o lubricante en
específico, si no se tiene en existencia se puede manejar como pedido.
Venta
Las refacciones, bandas, acumuladores, lubricantes y demás productos ofrecidos se
clasifican por líneas, también tienen un numero único e irrepetible aparte del código
de barras.
El vendedor al realizar las ventas en mostrador y expide una nota de venta o factura
si el cliente la solicita, cuando es una venta a crédito solo se expide una nota de
venta y cuando esta se liquida se puede facturar. Pero también se pueden expedir
facturas a crédito. El cliente puede acumular sus notas de venta y facturarlas antes
del último día del mes.
Dado lo anterior podemos concluir que una de las problemáticas en la oferta de
mercancías al público en general, es no tener herramientas que agilicen el proceso
de venta, así como los reportes necesarios para llevar un control adecuado de la
contabilidad y el inventario.
9
FORMULACION DEL PROBLEMA
La refaccionaria “ADRICAR” ubica en el municipio de San Juan Bautista Tuxtepec
Oaxaca, se dedica a la venta de refacciones para automóviles. Se detectó que al
realizar el registro de sus operaciones de compra y venta de forma manual y en
ocasiones no contar con registro alguno; ocasiona pérdidas económicas en la
empresa.
Expuesto lo anterior se necesita controlar la entrada y salida de mercancías de tal
forma que se tenga un control riguroso del inventario de mercancías existente.
10
OBJETIVO GENERAL
Diseñar un punto de venta para la refaccionaria “ADRICAR” en el cual se registre la
compra y venta de mercancías con el fin de tener un control riguroso sobre el
inventario de mercancías.
OBJETIVOS ESPECÍFICOS
Identificar los requisitos del sistema.
Estimar el costo de desarrollo del sistema.
Modelar el sistema en UML orientado a objetos.
Elegir el sistema de inventarios a utilizar.
Diseñar una base de datos física y lógica.
Programar el sistema en el lenguaje de programación C#
Diseñar formularios de control de pedidos, entradas y salidas de mercancía.
Construir un primer incremento.
Evaluar y realizar incrementos hasta que el producto cumpla todos los requisitos.
11
JUSTIFICACIÓN
La solución que se presenta en este proyecto es desarrollar una herramienta para
administrar y controlar las operaciones de venta de las mercancías; con afectación a
una base de datos que controla cuentas, inventarios y estadísticas.
Impacto Social:
Un sistema de control de inventarios proporciona información rápida y oportuna .Al
automatizar el proceso de venta, permitirá reducir el trabajo manual al empleado de
mostrador y al propietario, así también se tendrá un mejor trato con los clientes y
proveedores en el manejo de sus cuentas.
Impacto tecnológico:
El proyecto a desarrollar se realizara por la necesidad que tiene la refaccionaria ya
que no cuenta con un sistema de control de inventario, utilizando para ello la
metodología de desarrollo incremental junto con el paradigma orientado a objetos.
Impacto económico
Un sistema de seguimiento y control de inventarios de mercancías, permitirá que la
refaccionaria optimice sus principales tareas, mejorando el tiempo de servicio al
cliente; así también ayudara a reducir perdidas ya que se podrá comparar el
inventario en existencia física con la registrada.
Impacto ambiental
Cuando los equipos de cómputo se desechan causan afecciones al medio ambiente
sin embargo mediante el uso del reciclado se puede disminuir el impacto negativo,
además la utilización de la tecnología en el comercio en los últimos años se ha
convertido en una necesidad.
12
ESTUDIO DE VIABILIDAD
Viabilidad técnica
Actualmente, la empresa cuenta con una computadora PC con las siguientes
características.
Arquitectura del CPU: X86 Intel Celeron 2.6 GHZ.
Gráficos: Integrados Intel 128 MB
Sistema Operativo: Windows Seven Basic
Capacidad de almacenamiento: 120 GB
Memoria RAM: 2GB
Conectividad: puerto UTP, VGA, USB 2.0 , Tarjetas de Red Ethernet y Wireless
Monitor LCD 18 Pulgadas
Este equipo de cómputo cumple los requisitos mínimos para el sistema.
Adicionalmente se necesitara instalar
Una impresora de notas de venta de 75 mm (matriz o térmica) interfaz USB
Un lector de código de barras de largo alcance interfaz USB
Un cajón de dinero
En su caso una impresora convencional para facturas tamaño carta.
Una unidad de almacenamiento externo para futuros respaldos de la información
Con respecto al entorno para el sistema se opta por .NET Framework el cual se
ejecuta en una máquina virtual, un software que maneja la ejecución de programas
independiente del sistema operativo.
Con una perspectiva a futuro los sistemas operativos seguirán actualizándose, lo
cual dejara inutilizable el sistema si se diseña específicamente para un solo sistema
operativo. El entorno .NET Framework nos proporciona ventajas para el cambio de
sistema operativo y permite un enfoque hacia la nube informática.
13
Viabilidad Económica
Costos iniciales
Para la realización del presente proyecto serán necesarias las siguientes personas:
Jefe de proyecto, analista, diseñador, dos programadores y un documentador
Este proyecto es propuesto por alumnos del Instituto Tecnológico de Tuxtepec para
poner en práctica los conocimientos adquiridos de la carrera Ingeniería en Sistemas
Computacionales, por lo que en la duración del proyecto ningún integrante recibirá
retribución económica alguna.
Mas sin embargo se necesita un 50% del costo del sistema antes de poder iniciarlo.
COSTOS INICIALES TOTAL
DESARROLLO
Análisis 1,000
Diseño y Desarrollo 15,000
HARDWARE
Impresora térmica 2,500
Lector de código de barras 1,600
Cajón de dinero 920
INSTALACIONES 1,000
Total de Costos Iniciales
COSTOS DE OPERACIÓN
RECURSOS HUMANOS
Capacitación y adiestramiento
1 semana
5,000
Total de Costos de operación
TOTAL DE COSTOS (Pesos MN)
27,020.00
Tabla 1 .Costos iniciales
14
Beneficios directos:
Debido al mejor manejo del flujo de efectivo, se evitara el robo de efectivo por parte
de los empleados.
Beneficios indirectos:
Mejor distribución del trabajo.
Mayor atención y mejor servicio al cliente.
Mejor control de cuentas e intereses por cobrar.
15
Viabilidad Operativa
Con la implementación del punto de venta, se reducirá el trabajo manual para los
empleados y para el administrador. Con la reducción significativa del tiempo de
espera se ofrecerá un mejor servicio a los clientes y proveedores. Para el buen
funcionamiento del punto de venta primero se deberá realizar un inventario general y
minucioso de todas las existencias.
Además es necesario tener personal con conocimientos generales de computación
para poder operar el punto de venta.
En términos generales se espera cubrir los siguientes requisitos:
 Control total sobre la cartera de clientes
 Manejo correcto sobre la cartera de proveedores
 Realización rápida y optima del proceso de venta
 Control sobre la existencia de productos
 Identificación rápida de operaciones indebidas.
 Mejor manejo en el flujo de efectivo.
 Oportunidad de atender a un volumen mayor de clientes gracias a la reducción
del cuello de botella existente.
 Generación de reportes específicos y personalizados para el departamento de
contabilidad en cualquier momento que se requieran.
16
HIPÓTESIS.
Hipótesis de trabajo.
La implementación de un punto de venta que controle la entrada y salida de
mercancías reducirán las pérdidas económicas en la refaccionaria “ADRICAR”.
Hipótesis Nula
La implementación de un punto de venta que controle la entrada y salida de
mercancías no reducirán las pérdidas económicas en la refaccionaria “ADRICAR”.
Identificación de las variables
Variable dependiente -> Pérdidas económicas
Variable independiente -> Punto de venta
Definición conceptual de las variables
Pérdidas económicas: En economía se refiere a un beneficio negativo, disminución
de la riqueza o patrimonio de la empresa.
Se entiende por pérdidas económicas cuando los ingresos son menores a los
egresos de la empresa.
Punto de venta: En este contexto un punto de venta es un conjunto de programas
informáticos para el registro de las operaciones de compra y venta de un negocio en
particular.
Definición operativa de las variables
Pérdidas económicas: Reportes de ingresos mensuales; comparación de ingresos
mensuales anteriores a la implementación del sistema.
Punto de venta: Utilización del sistema en un determinado periodo de tiempo.
17
MARCO TEORICO
1. Sistemas de información
1.1. Dato, información y sistema.
En ocasiones los términos dato e información se utilizan como sinónimos, lo cual es
un error. Dato puede ser un número, una palabra, una imagen.
En el ámbito cotidiano se utiliza en plural “datos”, los cuales son la materia prima
para la producción de información. Información, por su parte, son datos que dentro
de un contexto dado tienen un significado para alguien. Finalmente sistema es el
mecanismo por el cual se genera la información.
(MCGRAW-HILL)
Imagen 1.1 Ejemplo de sistema
18
1.2. Sistema de información
Un sistema de información es un conjunto de elementos que interactúan entre sí con
el fin de apoyar las actividades de una empresa o negocio. En un sentido amplio, un
sistema de información no necesariamente incluye equipo electrónico (hardware).Sin
embargo, en la práctica se utiliza como sinónimo de “sistema de información
computarizado”.
(MCGRAW-HILL)
1.3. Componentes del sistema de información
Los componentes de un sistema de información son de naturaleza diversa y
normalmente incluyen:
 El equipo Computacional, es decir, el hardware necesario para que el sistema
de información pueda operar. Los constituyen las computadoras, y el equipo
periférico que pueda conectarse a ellas.
 El recurso humano que interactúa con el sistema de información, el cual está
formado por las personas que utilizan el sistema, alimentándolo con datos o
utilizando los resultados que genere.
 Los datos o información fuente que son introducidos en el sistema, son todas
las entradas que este necesita para genera como resultado la información que
se desea.
 Los programas que son ejecutados por la computadora y producen diferentes
tipos de resultados. Los programas son la parte del software del sistema de
información que hará que los datos de entrada introducidos sean procesados
correctamente y generen los resultados que se esperan.
 Las telecomunicaciones que son básicamente “hardware” y “software”,
facilitan la transmisión de texto, datos, imágenes y voz en forma electrónica.
 Procedimientos que incluyen las políticas y reglas de operación, tanto en la
parte funcional del proceso de negocio, como los mecanismos para hacer
trabajar una aplicación en la computadora.
19
1.4. Tipos y usos de sistemas de información
Los sistemas de información se desarrollan con diversos propósitos, según las
necesidades de la empresa. A continuación se muestra la diversidad de sistemas de
información que podrían desarrollar los analistas. (E. Kendall & E. Kendall, 2005,
págs. 2-4)
Sistemas de procesamiento de transacciones
Los sistemas de procesamiento de transacciones (TPS, Transaction Processing
Systems) son sistemas de información computarizada creados para procesar
grandes cantidades de datos relacionadas con transacciones rutinarias de negocios,
como las nóminas y los inventarios. Un TPS elimina el fastidio que representa la
realización de transacciones operativas necesarias y reduce el tiempo que una vez
fue requerido para llevarlas a cabo de manera manual, aunque los usuarios aún
tienen que capturar los datos en los sistemas computarizados.
Los sistemas de procesamiento de transacciones expanden los límites de la
organización dado que le permiten interactuar con entornos externos. Es importante
para las operaciones cotidianas de un negocio, que estos sistemas funcionen sin
ningún tipo de interrupción, puesto que los administradores recurren a los datos
producidos por los TPS con el propósito de obtener información actualizada sobre el
funcionamiento de sus empresas.
Sistemas de automatización de la oficina y sistemas de trabajo del
conocimiento
Existen dos clases de sistemas en el nivel del conocimiento de una organización. Los
sistemas de automatización de la oficina (OAS, Office AutomationSystems) apoyan a
los trabajadores de dato, quienes por lo general no generan conocimientos nuevos,
sino más bien analizan la información con el propósito de transformar los datos o
manipularlos de alguna manera antes de compartirlos o, en su caso, distribuirlos
formalmente con el resto de la organización y en ocasiones más allá de ésta. Entre
20
los componentes más comunes de un OAS están el procesamiento de texto, las
hojas de cálculo, la autoedición, la calendarización electrónica y las comunicaciones
mediante correo de voz, correo electrónico y videoconferencia.
Los sistemas de trabajo del conocimiento (KWS, KnowledgeWorkSystems) sirven de
apoyo a los trabajadores profesionales, como los científicos, ingenieros y médicos,
en sus esfuerzos de creación de nuevo conocimiento y dan a éstos la posibilidad de
compartirlo con sus organizaciones o con la sociedad.
Sistemas de información gerencial
Los sistemas de información gerencial (MIS, Management InformationSystems) no
reemplazan a los sistemas de procesamiento de transacciones, más bien, incluyen el
procesamiento de transacciones. Los MIS son sistemas de información
computarizados cuyo propósito es contribuir a la correcta interacción entre los
usuarios y las computadoras. Debido a que requieren que los usuarios, el software
(los programas de cómputo) y el hardware (las computadoras, impresoras, etc.),
funcionen de manera coordinada, los sistemas de información gerencial dan apoyo a
un espectro de tareas organizacionales mucho más amplio que los sistemas de
procesamiento de transacciones, como el análisis y la toma de decisiones.
Para acceder a la información, los usuarios de un sistema de información gerencias
comparten una base de datos común. Ésta almacena datos y modelos que ayudan al
usuario a interpretar y aplicar los datos. Los sistemas de información gerencial
producen información que se emplea en la toma de decisiones. Un sistema de
información gerencial también puede contribuir a unificar algunas de las funciones de
información computarizadas de una empresa, a pesar de que no existe como una
estructura individual en ninguna parte de ésta.
Sistema de apoyo a la toma de decisiones
Los sistemas de apoyo a la toma de decisiones (DSS, DecisionSupportSystems)
constituyen una clase de alto nivel de sistemas de información computarizada. Los
21
DSS coinciden con los sistemas de información gerencial en que ambos dependen
de una base de datos para abastecerse de datos. Sin embargo, difieren en que el
DSS pone énfasis en el apoyo a la toma de decisiones en todas sus fases, aunque la
decisión definitiva es responsabilidad exclusiva del encargado de tomarla. Los
sistemas de apoyo a la toma de decisiones se ajustan más al gusto de la persona o
grupo que los utiliza que a los sistemas de información gerencial tradicionales. En
ocasiones se hace referencia a ellos como sistemas que se enfocan en la inteligencia
de negocios.
Sistemas expertos e inteligencia artificial
La inteligencia artificial (AI, Artificial Intelligence) se puede considerar como un
campo general para los sistemas expertos. La motivación principal de la AI ha sido
desarrollar máquinas que tengan un comportamiento inteligente. Dos de las líneas de
investigación de la AI son la comprensión del lenguaje natural y el análisis de la
capacidad para razonar un problema hacia su conclusión lógica. Los sistemas
expertos utilizan las técnicas de razonamiento de la AI para solucionar problemas
que les plantean los usuarios de negocios (y de otras áreas).
Los sistemas expertos conforman una clase especial de sistema de información que
se ha puesto a disposición de usuarios de negocios gracias a la amplia disponibilidad
de hardware y software como computadoras personales (PCs) y generadores de
sistemas expertos. Un sistema experto (también conocido como sistema basado en
el conocimiento) captura y utiliza el conocimiento de un experto para solucionar un
problema específico en una organización.
Los componentes básicos de un sistema experto son la base de conocimiento, un
motor de interferencia que conecta al usuario con el sistema mediante el
procesamiento de consultas realizadas con lenguajes como SQL
(StructuredQueryLanguaje, Lenguaje de consultas estructurado) y la interfaz de
usuario. Profesionales conocidos como ingenieros de conocimiento capturan la
pericia de los expertos, construyen un sistema de cómputo que contiene este
conocimiento experto y lo implementan. Es muy factible que la construcción e
22
implementación de sistemas expertos se constituya en el trabajo futuro de muchos
analistas de sistemas.
Sistema de apoyo a la toma de decisiones en grupo y sistemas de trabajo
colaborativo por computadora
Cuando los grupos requieren trabajar en conjunto para tomar decisiones
semiestructuradas o no estructuradas, un sistema de apoyo a la toma de decisiones
en grupo (GDSS, GroupDecisionSupportSystems) podría ser la solución. Este tipo de
sistemas, que se utiliza en salones especiales equipados con diversas
configuraciones, faculta a los miembros del grupo a interactuar con apoyo electrónico
-casi siempre software especializado- y la asistencia de facilitador especial.
Los sistemas de apoyo a la toma de decisiones en grupo tienen el propósito de unir a
un grupo en búsqueda de la solución a un problema con la ayuda de diversas
herramientas como los sondeos, los cuestionarios, la lluvia de ideas y la creación de
escenarios. En ocasiones se hace referencia a los GDSS con el termino más general
sistemas de trabajo colaborativo apoyadas por computadora (CSCWS, Computer-
SupportedCollaborativeWorkSystems), que pueden contener el respaldo de un tipo
de software denominado groupware para la colaboración en equipo a través de
computadoras conectadas en red.
Sistema de apoyo a ejecutivos
Los sistemas de apoyo a ejecutivos (ESS, ExecutiveSupportSystems) ayudan a
estos últimos a organizar sus actividades relacionadas con el entorno externo
mediante herramientas gráficas y de comunicaciones, que por lo general se
encuentran en salas de juntas o en oficinas corporativas personales. A pesar de que
los ESS dependen de la información producida por los TPS y los MIS, ayudan a los
usuarios a resolver problemas de toma de decisiones no estructuradas, que no
tienen una aplicación específica, mediante la creación de un entorno que contribuye
a pesar en problemas estratégicos de manera bien informada. Los ESS amplían y
23
apoyan las capacidades de los ejecutivos al darles la posibilidad de comprender sus
entornos.
2. Base de datos
2.1. Que es una base de datos
Los sistemas de bases de datos se diseñan para gestionar grandes cantidades de
información. La gestión de los datos implica tanto la definición de estructuras para
almacenar la información como la provisión de mecanismos para la manipulación de
la información. Además, los sistemas de bases de datos deben proporcionar la
fiabilidad de la información almacenada, a pesar de las caídas del sistema o los
intentos de acceso sin autorización. Si los datos van a ser compartidos entre diversos
usuarios, el sistema debe evitar posibles resultados anómalos.
Dado que la información es tan importante en la mayoría de las organizaciones, los
científicos informáticos han desarrollado un amplio conjunto de conceptos y técnicas
para la gestión de los datos.
Un sistema de bases de datos es una colección de archivos interrelacionados y un
conjunto de programas que permitan a los usuarios acceder y modificar estos
archivos. Uno de los propósitos principales de un sistema de bases de datos es
proporcionar a los usuarios una visión abstracta de los datos. Es decir, el sistema
esconde ciertos detalles de cómo se almacenan y mantienen los datos.
(SILBERSCHATZ & F. KORTH, 2002)
2.2. Tipos de base de datos
Bases de datos orientadas a objetos
Este modelo, bastante reciente, y propio de los modelos informáticos orientados a
objetos, trata de almacenar en la base de datos los objetos completos (estado y
comportamiento).
Bases de datos documentales
24
Permiten la indexación a texto completo, y en líneas generales realizar búsquedas
más potentes. Tesaurus es un sistema de índices optimizado para este tipo de bases
de datos.
Base de datos deductivas
Un sistema de base de datos deductivas, es un sistema de base de datos pero con la
diferencia de que permite hacer deducciones a través de inferencias. Se basa
principalmente en reglas y hechos que son almacenados en la base de datos.
También las bases de datos deductivas son llamadas base de datos lógica, a raíz de
que se basa en lógica matemática.
Gestión de bases de datos distribuida
La base de datos está almacenada en varias computadoras conectadas en red.
Surgen debido a la existencia física de organismos descentralizados. Esto les da la
capacidad de unir las bases de datos de cada localidad y acceder así a distintas
universidades, sucursales de tiendas.
(NIEVES)
2.3. Normalización de las bases de datos
La normalización es el proceso mediante el cual se transforman datos complejos a
un conjunto de estructuras de datos más pequeñas, que además de ser más simples
y más estables, son más fáciles de mantener. También se puede entender la
normalización como una serie de reglas que sirven para ayudar a los diseñadores de
bases de datos a desarrollar un esquema que minimice los problemas de lógica.
Cada regla está basada en la que le antecede. La normalización se adoptó porque el
viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de
la base de datos, era ineficiente y conducía a errores de lógica cuando se trataban
de manipular los datos.
Existen básicamente tres niveles de normalización: Primera Forma Normal (1NF),
Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada una de estas
formas tiene sus propias reglas.
25
Cuando una base de datos se conforma a un nivel, se considera normalizada a esa
forma de normalización. No siempre es una buena idea tener una base de datos
conformada en el nivel más alto de normalización, puede llevar a un nivel de
complejidad que pudiera ser evitado si estuviera en un nivel más bajo de
normalización.
Primera Forma Normal
La regla de la Primera Forma Normal establece que las columnas repetidas deben
eliminarse y colocarse en tablas separadas.
Poner la base de datos en la Primera Forma Normal resuelve el problema de los
encabezados de columna múltiples. Muy a menudo, los diseñadores de bases de
datos inexpertos harán algo similar a la tabla no normalizada. Una y otra vez, crearán
columnas que representen los mismos datos. La normalización ayuda a clarificar la
base de datos y a organizarla en partes más pequeñas y más fáciles de entender. En
lugar de tener que entender una tabla gigantesca y monolítica que tiene muchos
diferentes aspectos, sólo tenemos que entender los objetos pequeños y más
tangibles, así como las relaciones que guardan con otros objetos también pequeños.
Segunda Forma Normal
La regla de la Segunda Forma Normal establece que todas las dependencias
parciales se deben eliminar y separar dentro de sus propias tablas. Una dependencia
parcial es un término que describe a aquellos datos que no dependen de la llave
primaria de la tabla para identificarlos.
Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan la mayoría de
los problemas de lógica. Podemos insertar un registro sin un exceso de datos en la
mayoría de las tablas.
Tercera Forma Normal
Una tabla está normalizada en esta forma si todas las columnas que no son llave son
funcionalmente dependientes por completo de la llave primaria y no hay
dependencias transitivas. Comentamos anteriormente que una dependencia
26
transitiva es aquella en la cual existen columnas que no son llave que dependen de
otras columnas que tampoco son llave.
Cuando las tablas están en la Tercera Forma Normal se previenen errores de lógica
cuando se insertan o borran registros. Cada columna en una tabla está identificada
de manera única por la llave primaria, y no debe haber datos repetidos. Esto provee
un esquema limpio y elegante, que es fácil de trabajar y expandir.
(Hispano)
2.4. SGBD
Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS
(Data Base Management System) como una colección de datos relacionados entre
sí, estructurados y organizados, y un conjunto de programas que acceden y
gestionan esos datos. La colección de esos datos se denomina Base de Datos o BD,
(DB DataBase).
El SGBD es una aplicación que permite a los usuarios definir, crear y mantener la BD
y proporciona un acceso controlado a la misma. Debe prestar los siguientes
servicios:
• Creación y definición de la BD: especificación de la estructura, el tipo de los datos,
las restricciones y relaciones entre ellos mediante lenguajes de definición de datos.
Toda esta información se almacena en el diccionario de datos, el SGBD
proporcionará mecanismos para la gestión del diccionario de datos.
• Manipulación de los datos realizando consultas, inserciones y actualizaciones de
los mismos utilizando lenguajes de manipulación de datos.
• Acceso controlado a los datos de la BD mediante mecanismos de seguridad de
acceso a los usuarios.
• Mantener la integridad y consistencia de los datos utilizando mecanismos para
evitar que los datos sean perjudicados por cambios no autorizados.
• Acceso compartido a la BD, controlando la interacción entre usuarios concurrentes.
• Mecanismos de respaldo y recuperación para restablecer la información en caso de
fallos en el sistema.(MCGRAW-HILL)
27
2.5. SQL Server Express
SQL Server Express, un producto gratuito basado en la tecnología de SQL Server
2005.
SQL Server Express - sucesor deMSDE - es un sistema de base de datos gratuito y
fácil de usar, basado en la tecnología de SQL Server 2005. Fue diseñado para
brindar una plataforma de base de datos que ofrezca gran simpleza de uso,
posibilitando una distribución rápida en sus escenarios de uso. Su facilidad de uso
empieza con una interfaz gráfica simple y robusta que guía al usuario durante el
proceso de instalación
SQL Server Express trae también herramientas gratuitas, incluyendo el SQL Server
Management Studio Express, una interfaz gráfica usada para la administración; y el
SQL Server Configuration Manager.
Estas herramientas simplifican las operaciones básicas de administración. El diseño
y desarrollo de aplicaciones que utilizan bases de datos son más fáciles con la
integración de proyectos de Visual Studio. SQL Server Express utiliza la misma
tecnología que otras versiones de SQL Server 2005, lo que posibilita un alto
rendimiento y confiabilidad. También es accesible mediante las mismas APIs de
acceso a datos como ADO .NET, SQL NativeClient y T-SQL. En la práctica, se
diferencia de otras versiones de SQL Server 2005solamente por los siguientes
elementos:
 Algunas funcionalidades corporativas no están soportadas.
 Limitado a un solo procesador.
 Limitado a 1 GB de memoria para el buffer pool.
 Las bases de datos pueden tener un tamaño máximo de 4 GB
SQL Server Express fue desarrollado para tener dos usos distintos como objetivo.
El primer uso es como un producto para servidores, especialmente un servidor de
bases de datos (por ejemplo, para un sitio Web). El segundo uso es como servidor
local de una aplicación cliente local, o como almacenamiento de datos donde la
aplicación no depende del acceso a una red local. La facilidad de uso y la simpleza
fueron objetivos claves en su diseño.
28
Los tres escenarios principales de uso de SQL Server Express son:
 Desarrolladores construyendo aplicaciones basadas en Web.
 Empresas de desarrollo de programas que redistribuyen SQL Server Express
para almacenamiento de datos locales o en servidor, de bajo costo.
 Aficionados que crean aplicaciones cliente/servidor básicas.
SQL Server Express proporciona una plataforma de base de datos confiable y fácil
de utilizar que cubre bien los escenarios presentados antes. (RIVEIRO, PINHEIRO, &
LARRIERA)
2.6. SQL
Los sistemas de bases de datos comerciales necesitan un lenguaje de consultas
cómodo para el usuario o para el diseñador del software, el lenguaje SQL ha sido
hasta la fecha el lenguaje comercial de mayor influencia con muchas características
para la manipulación de los datos.
Originalmente, SQL(StructuredQueryLanguage, Lenguaje de Consultas Estructurado)
fue desarrollado en IBM Research a principios de los años setenta; fue implementado
por primera vez a gran escala en un prototipo de IBM llamado System, y
posteriormente en numerosos productos comerciales de IBM y de muchos otros
fabricantes. El nombre oficial es Estándar Internacional del Lenguaje de Base de
Datos SQL (1992).(C.J., 2002)
El SQL agrupa tres tipos de sentencias con objetivos particulares, en los siguientes
lenguajes:
Lenguaje de Definición de Datos (DDL, Data DefinitonLanguage)
Lenguajede Manipulación de Datos (DML, Data Management Language)
Lenguajede Control de Datos (DCL, Data Control Language)
A continuación se describen cada uno de los lenguajes:
29
Lenguaje de Definición de Datos (DDL, Data DefinitonLanguage)
Grupo de sentencias del SQL que soportan la definición y declaración de los objetos
de la base de datos. Objetos tales como: la base de datos misma(DATABASE), las
tablas(TABLE), las Vistas (VIEW), los índices (INDEX), los procedimientos
almacenados (PROCEDURE), los disparadores (TRIGGER),Reglas (RULE),
Dominios (Domain) y Valores por defecto (DEFAULT).
CREATE,
ALTER
y DROP.
Lenguaje de Manipulación de Datos (DML, Data Management Language)
Grupo de sentencias del SQL para manipular los datos que están almacenados en
las bases de datos, a nivel de filas (tuplas) y/o columnas (atributos).Ya sea que se
requiera que los datos sean modificados, eliminados, consultados o que se
agregaren nuevas filas a las tablasde las basede datos.
INSERT,
UPDATE,
DELETE y
SELECT
Lenguaje de Control de Datos (DCL, Data Control Language)
Grupo de sentencias delSQLparacontrolar las funciones de administración que
realiza el DBMS, tales como laatomicidad y seguridad.
COMMIT TRANSACTION,
ROLLBACK TRANSACTION,
GRANT
REVOKE.(GARCIA E)
30
2.7. LINQ
LanguageIntegratedQuery (LINQ) es una innovación introducida en Visual Studio
2008 y .NET Framework versión 3.5 que elimina la distancia que separa el mundo de
los objetos y el mundo de los datos.
En el pasado, este tipo de trabajo requería escribir una gran cantidad de código
cíclico, y adicional procesamiento como un arreglo o grupo de objetos que requerían
incluso más código, en ocasiones mesclado con un lenguaje de consultas diferente
como SQL típicamente encontrado en bases de datos relacionales. LINQ nos libera
de tener que escribir código extra cíclico para filtrar y ordenar. Y nos permite
concentrarnos en los objetos importantes del programa.
(WATSON, VIBE HAMMER, D. REID, & Kemper, 2012)
Las consultas se escriben para colecciones de objetos fuertemente tipadas,
utilizando palabras clave del lenguaje y operadores con los que se está familiarizado.
La ilustración siguiente muestra una consulta LINQ parcialmente completada en una
base de datos SQL Server en C#, con comprobación de tipos completa y
compatibilidad con IntelliSense.
Imagen 2.7.1 Ejemplo datos
En Visual Studio se pueden escribir consultas LINQ en Visual Basic o en C# con
bases de datos SQL Server, documentos XML, conjuntos de datos ADO.NET y
31
cualquier colección de objetos que admita IEnumerable o la interfaz genérica
IEnumerable<T>. También se ha previsto la compatibilidad de LINQ con ADO.NET
Entity Framework, y otros fabricantes se encuentran escribiendo proveedores LINQ
para muchos servicios Web y otras implementaciones de bases de datos.
Puede utilizar consultas LINQ en proyectos nuevos o junto a consultas que no son
LINQ en proyectos existentes. El único requisito es que el proyecto esté orientado a
.NET Framework 3.5 o posterior.
(MICROSOFT)
32
3. Metodología del proceso de software
Un proceso de software es un conjunto de actividades que conducen a la creación de
un producto de software. Estas actividades pueden consistir en el desarrollo de
software desde cero en un lenguaje de programación estándar como java o C. Sin
embargo, cada vez, mas, se desarrolla nuevo software ampliando y modificando los
sistemas existentes y configurando e integrando software comercial o componentes
del sistema. (SOMMERVILLE, 2005, pág. 60)
3.1 Definición de metodología
Una metodología es un conjunto integrado de técnicas y métodos que permite
abordar de forma homogénea y abierta cada una de las actividades del ciclo de vida
de un proyecto de desarrollo. Es un proceso de software detallado y completo.
Las metodologías se basan en una combinación de los modelos de proceso
genéricos (cascada, incremental…). Definen artefactos, roles y actividades, junto con
prácticas y técnicas recomendadas.
La metodología para el desarrollo de software en un modo sistemático de realizar,
gestionar y administrar un proyecto para llevarlo a cabo con altas posibilidades de
éxito. Una metodología para el desarrollo de software comprende los procesos a
seguir sistemáticamente para idear, implementar y mantener un producto software
desde que surge la necesidad del producto hasta que cumplimos el objetivo por el
cual fue creado.
33
3.2 Metodología clásica o de cascada
El modelo de cascada original se desarrolló entre las décadas de los setenta, y se
define como una secuencia de actividades, donde la estrategia principal es seguir el
progreso del desarrollo de software hacia puntos de revisión bien definidos mediante
entregas calendarizadas. (WEITZENFELD, 2005, pág. 50)
El modelo en cascada, algunas veces llamado ciclo de vida clásico, sugiere un
enfoque sistemático, secuencial hacia el desarrollo del software, que se (indica con la
especificación de requerimientos del cliente y que continúa con la planeación, el
modelado, la construcción y el despliegue para culminar en el soporte del software
terminado. (PRESSMAN, 2006, pág. 50)
El modelo en cascada es el paradigma más antiguo para la ingeniería del software.
Sin embargo, en las décadas pasadas, las críticas a este modelo de proceso han
ocasionado que aun sus más fervientes practicantes hayan cuestionado su
eficiencia. (PRESSMAN, 2006, págs. 50-51)
Imagen 3.2.1 El modelo en cascada
En la actualidad, el trabajo del software está acelerado y sujeto a una cadena infinita
de cambios (de características, funciones y contenido de información). Con
frecuencia, el modelo en cascada no es apropiado para dicho trabajo. Sin embargo,
puede servir como un modelo proceso útil en situaciones donde los requerimientos
están fijos y donde el trabajo se realiza, hasta su conclusión, de una manera lineal.
(PRESSMAN, 2006, pág. 51)
34
3.3 Metodología de desarrollo incremental
El modelo incremental combina elementos del modelo lineal secuencial (aplicados
repetidamente) con la filosofía interactiva de construcción de prototipos. El modelo
incremental aplica secuencias lineales de forma escalonada mientras progresa el
tiempo en el calendario. Cada secuencia lineal produce un «incremento» del software
.Por ejemplo, el software de tratamiento de textos desarrollado con el paradigma
incremental podría extraer funciones de gestión de archivos básicos y de producción
de documentos en el primer incremento; funciones de edición más sofisticadas y de
producción de documentos en el segundo incremento; corrección ortográfica y
gramatical en el tercero; y una función avanzada de esquema de página en el cuarto.
Se debería tener en cuenta que el flujo del proceso de cualquier incremento puede
incorporar el paradigma de construcción de prototipos.
Cuando se utiliza un modelo incremental, el primer incremento a menudo es un
producto esencial. Es decir, se afrontan requisitos básicos, pero muchas funciones
suplementarias (algunas conocidas, otras no) quedan sin extraer. El cliente utiliza el
producto central (o sufre la revisión detallada). Como un resultado de utilización y/o
de evaluación, se desarrolla un plan para el incremento siguiente. El plan afronta la
modificación del producto central a fin de cumplir mejor las necesidades del cliente y
la entrega de funciones, y características adicionales. Este proceso se repite
siguiendo la entrega de cada incremento, hasta que se elabore el producto completo.
Los primeros incrementos son versiones «incompletas» del producto final, pero
proporcionan al usuario la funcionalidad que precisa y también una plataforma para
la evaluación.
El desarrollo incremental es particularmente útil cuando la dotación de personal no
está disponible para una implementación completa en la fecha límite que se haya
establecido para el proyecto. Los primeros incrementos se pueden implementar con
menos personas.
35
Imagen 3.3.1 Faces del modelo incremental
36
4. Lenguajes de programación
4.1. Lenguaje máquina, lenguaje ensamblador y lenguajes de alto nivel.
4.2. Lenguajes de programación orientados a objetos POO
La orientación a objetos promete mejoras de amplio alcance en la forma de diseño,
desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los
problemas y preocupaciones que han existido desde el comienzo en el desarrollo de
software:(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris,
& MIEDES, de Elías, 2009, pág. 2)
 La falta de portabilidad del código y su escasa reusabilidad.
 Código que es difícil de modificar.
 Ciclos de desarrollo largos.
 Técnicas de codificación no intuitivas.
Un lenguaje orientado a objetos ataca estos problemas. Tiene tres características
básicas: debe estar basado en objetos, basado en clases y capaz de tener herencia
de clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos
cumplen los tres.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES,
Goterris, & MIEDES, de Elías, 2009, pág. 2)
La barrera más difícil de sortear es usualmente la herencia. El concepto de
programación orientada a objetos (POO) no es nuevo, lenguajes clásicos como
SmallTalk se basan en ella.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes,
TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 3)
Dado que la POO se basa en la idea natural de la existencia de un mundo lleno de
objetos y que la resolución del problema se realiza en términos de objetos, un
lenguaje se dice que está basado en objetos si soporta objetos como una
característica fundamental del mismo. No debemos confundir que esté basado en
objetos con que sea orientado a objetos: para que sea orientado a objetos al margen
37
que esté basado en objetos, necesita tener clases y relaciones de herencia entre
ellas.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, &
MIEDES, de Elías, 2009, pág. 3)
Hemos utilizado con mucha frecuencia la palabra paradigma, que convendría
formalizar de alguna forma: Se entiende paradigma como un conjunto de teorías,
estándares y métodos que juntos representan una forma de organizar el
conocimiento, esto es, una forma de ver el mundo. La visión OO nos obliga a
reconsiderar nuestras ideas acerca de la computación, de lo que significa ponerla en
práctica y de cómo debería estructurarse la información en los sistemas de
información.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES,
Goterris, & MIEDES, de Elías, 2009, pág. 3)
Los objetos
El elemento fundamental de la POO es, como su nombre indica, el objeto. Podemos
definir un objeto como un conjunto complejo de datos y programas que poseen
estructura y forman parte de una organización. En este caso las estructuras de datos
y los algoritmos usados para manipularlas están encapsulados en una idea común
llamada objeto.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES,
Goterris, & MIEDES, de Elías, 2009, pág. 3)
Esta definición especifica dos propiedades características de los objetos:
 En primer lugar un objeto no es un dato simple, sino que contiene en su
interior cierto número de componentes bien estructurados.
 En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de
una organización jerarquice o de otro tipo.
Para ilustrar mejor las diferencias entre la programación procedural clásica y la POO
vamos a plantear, de forma intuitiva, un pequeño ejemplo escrito en C y después
planteado en Java. Se trata de tener en un array una serie de figuras geométricas
que tendrán lógicamente los subprogramas encargados de leer los datos, dibujarlos,
38
etc.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, &
MIEDES, de Elías, 2009, pág. 3)
Como vemos, el hecho de añadir un nuevo tipo de objeto no implica ninguna
modificación en la estructura. Lógicamente implicar ́a añadir la nueva figura al
código, pero si se ha sido cuidadoso a la hora de encapsular los datos propios
(atributos) y los subprogramas encargados de manejarlos (métodos) ser ́a bastante
m ́as sencillo mantener y trabajar con el código. En la figura 5.1.1 se muestra un
esquema de cómo se ven los objetos desde el punto de vista que acabamos de
plantear.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris,
& MIEDES, de Elías, 2009, pág. 3)
Imagen 4.2.1 Encapsulación de métodos y atributos
39
4.3. C#
Visual C# es un lenguaje de programación moderno, de alto nivel, de múltiples
paradigmas y de uso general para crear aplicaciones con Visual Studio y .NET
Framework. C# se diseñó para que fuera simple, poderoso, con seguridad de tipos y
orientado a objetos. Las múltiples innovaciones de C# permiten un desarrollo rápido
de aplicaciones con la expresividad y elegancia de los lenguajes al estilo C.
El nombre C Sharp fue inspirado por la notación musical, donde '#' (sostenido, en
inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta,
sugiriendo que C# es superior a C/C++. Además, el signo '#' se compone de cuatro
signos '+' pegados.1
Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C# es
un lenguaje de programación independiente diseñado para generar programas sobre
dicha plataforma. Ya existe un compilador implementado que provee el marco Mono -
DotGNU, el cual genera programas para distintas plataformas como Windows, Unix,
Android, iOS, Windows Phone, Mac OS y GNU/Linux.
C# contiene dos categorías generales de tipos de datos integrados: tipos de valor y
tipos de referencia. El término tipo de valor indica que esos tipos contienen
directamente sus valores.
Tipos para definir números enteros:
Tipo de datos de enteros
Tipo Equivalente BCL Tamaño Rango Significado
byte System.Byte 8-bit (1-
byte)
0 a 255 Entero sin signo
sbyte System.SByte 8-bit (1-
byte)
-128 a 127 Entero con signo
short System.Int16 16-bit (2-
byte)
-32.768 a 32.767 Entero corto con signo
ushort System.UInt16 16-bit (2-
byte)
0 a 65.535 Entero corto sin signo
int System.Int32 32-bit (4- -2.147.483.648 a Entero medio con signo
40
byte) 2.147.483.647
uint System.UInt32 32-bit (4-
byte)
0 a 4.294.967.295 Entero medio sin signo
long System.Int64 64-bit (8-
byte)
-
9.223.372.036.854.
775.808 a
9.223.372.036.854.
775.807
Entero largo con signo
ulong System.UInt64 64-bit (8-
byte)
0 a
18.446.744.073.709
.551.615
Entero largo sin signo
Tabla 4.3 Tipos de datos C#
Los tipos de coma flotante pueden representar números con componentes
fraccionales. Existen dos clases de tipos de coma flotante: float y double. El tipo
double es el más utilizado porque muchas funciones matemáticas de la biblioteca de
clases de C# usan valores double. Quizá, el tipo de coma flotante más interesante de
C# es decimal, dirigido al uso de cálculos monetarios. La aritmética de coma flotante
normal está sujeta a una variedad de errores de redondeo cuando se aplica a valores
decimales. El tipo decimal elimina estos errores y puede representar hasta 28
lugares decimales.
Tipo de datos de coma flotante
Tipo Equivalente
BCL
Tamaño Rango Significado
float System.Single 32-bit
(4-byte)
±1.401298E−45 a
±3.402823E+38
Coma flotante corto
double System.Double 64-bit
(8-byte)
±4.94065645841246E−324 a
±1.79769313486232E+308
Coma flotante largo
decima
l
System.Decima
l
128-bit
(16-
byte)
−7.9228162514264337593543
950335 a
+7.9228162514264337593543
950335
Coma flotante
monetario
Tabla 4.4 Tipos de datos 2
41
Los caracteres en C# no tienen un tamaño de 8 bits como en otros muchos lenguajes
de programación, sino que usa un tamaño de 16 bits llamado Unicode al cual se le
llama char. No existen conversiones automáticas de tipo entero a char.
Tipo de datos de caracteres
Tipo Equivalente BCL Tamaño Rango Significado
char System.Char 16-bit (2-byte) 'u0000' a 'uFFFF' Carácter unicode
Tabla 4.5 Tipo de datos caracteres
Para los tipos de datos lógicos no existen conversiones automáticas de tipo entero a
bool.
Tipo de datos lógicos
Tipo Equivalente BCL Tamaño Rango Significado
bool System.Boolean 8-bit (1-byte) true o false Verdadero o falso
Tabla 4.6 Tipos de datos logicos
4.4. Microsoft .NET
.NET es un framework de Microsoft que hace un énfasis en la transparencia de
redes, con independencia de plataforma de hardware y que permita un rápido
desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una
estrategia horizontal que integre todos sus productos, desde el sistema operativo
hasta las herramientas de mercado.
.NET podría considerarse una respuesta de Microsoft al creciente mercado de los
negocios en entornos Web, como competencia a la plataforma Java de Oracle
Corporation y a los diversos framework de desarrollo web basados en PHP. Su
propuesta es ofrecer una manera rápida y económica, a la vez que segura y robusta,
de desarrollar aplicaciones –o como la misma plataforma las denomina, soluciones–
permitiendo una integración más rápida y ágil entre empresas y un acceso más
simple y universal a todo tipo de información desde cualquier tipo de dispositivo.
42
El CLR es el verdadero núcleo del framework de .NET, entorno de ejecución en el
que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el
conjunto de servicios del sistema operativo (W2k y W2003). Permite integrar
proyectos en distintos lenguajes soportados por la plataforma .Net, como C++, Visual
Basic, C#, entre otros.
La herramienta de desarrollo compila el código fuente de cualquiera de los lenguajes
soportados por .NET en un código intermedio, el CIL
(CommonIntermediateLanguage) antes conocido como MSIL (Microsoft
IntermediateLanguage), similar al BYTECODE de Java. Para generarlo, el
compilador se basa en la especificación CLS (CommonLanguageSpecification) que
determina las reglas necesarias para crear el código MSIL compatible con el CLR.
Para ejecutarse se necesita un segundo paso, un compilador JIT (Just-In-Time) es el
que genera el código máquina real que se ejecuta en la plataforma del cliente. De
esta forma se consigue con .NET independencia de la plataforma de hardware. La
compilación JIT la realiza el CLR a medida que el programa invoca métodos. El
código ejecutable obtenido se almacena en la memoria caché del ordenador, siendo
recompilado de nuevo sólo en el caso de producirse algún cambio en el código
fuente.
43
Características
Es el encargado de proveer lo que se llama código administrado, es decir, un entorno
que provee servicios automáticos al código que se ejecuta. Los servicios son
variados:
Cargador de clases: permite cargar en memoria las clases.
Compilador MSIL a nativo: transforma código intermedio de alto nivel independiente
del hardware que lo ejecuta a código de máquina propio del dispositivo que lo
ejecuta.
Administrador de código: coordina toda la operación de los distintos subsistemas del
CommonLanguageRuntime.
Recolector de basura: elimina de memoria objetos no utilizados automáticamente.
Motor de seguridad: administra la seguridad del código que se ejecuta.
Motor de depuración: permite hacer un seguimiento de la ejecución del código aún
cuando se utilicen lenguajes distintos.
Verificador de tipos: controla que las variables de la aplicación usen el área de
memoria que tienen asignado.
Administrador de excepciones: maneja los errores que se producen durante la
ejecución del código.
Soporte de multiproceso (hilos): permite desarrollar aplicaciones que ejecuten código
en forma paralela.
Empaquetador de COM: coordina la comunicación con los componentes COM para
que puedan ser usados por el .NET Framework.
44
Biblioteca de Clases Base que incluye soporte para muchas funcionalidades
comunes en las aplicaciones.
4.5. Visual Estudio 2012
Visual Studio es una colección completa de herramientas y servicios que le permitirá
crear una gran variedad de aplicaciones, tanto para plataformas de Microsoft como
para otras plataformas. Visual Studio conecta también todos los proyectos, equipos y
partes interesadas. Ahora su equipo puede trabajar con gran agilidad desde casi
cualquier parte, independientemente de la herramienta de desarrollo, incluidas
Eclipse y Xcode. Si va a diseñar aplicaciones .NET críticas, escribir código rápido
con C++ AMP o probar y depurar una aplicación HTML/JavaScript conectada a la
nube que se ejecute en muchos dispositivos.
A partir de la versión 2005 Microsoft ofrece gratuitamente las Express Editions, que
son varias ediciones básicas separadas por lenguajes de programación o plataforma
enfocadas para novatos y entusiastas. Estas ediciones son iguales al entorno de
desarrollo comercial pero sin características avanzadas. Dichas ediciones son:
Visual Basic Express Edition
Visual C# Express Edition
Visual C++ Express Edition
Visual J# Express Edition (Desapareció en Visual Studio 2008)
Visual Web Developer Express Edition (paraprogramar en ASP.NET)
Visual F# (Apareció en Visual Studio 2010, es parecido al J#)*
Adicionalmente, Microsoft ha puesto gratuitamente a disposición de todo el mundo
una versión reducida de MS SQL Server llamada SQL Server Express Edition cuyas
principales limitaciones son que no soporta bases de datos superiores a 10 GB de
tamaño, únicamente se ejecuta en un procesador y emplea 1 GB de RAM como
máximo, y no cuenta con el Agente de SQL Server.
45
5. Redes e internet
5.1. Que es una Red de computadoras
Una red de computadoras, también llamada red de ordenadores, red de
comunicaciones de datos o red informática, es un conjunto de equipos informáticos y
software conectados entre sí por medio de dispositivos físicos que envían y reciben
impulsos eléctricos, ondas electromagnéticas o cualquier otro medio para el
transporte de datos, con la finalidad de compartir información, recursos y ofrecer
servicios.
Como en todo proceso de comunicación se requiere de un emisor, un mensaje, un
medio y un receptor. La finalidad principal para la creación de una red de
computadoras es compartir los recursos y la información en la distancia, asegurar la
confiabilidad y la disponibilidad de la información, aumentar la velocidad de
transmisión de los datos y reducir el costo general de estas acciones. Un ejemplo es
Internet, la cual es una gran red de millones de computadoras ubicadas en distintos
puntos del planeta interconectadas básicamente para compartir información y
recursos.
La estructura y el modo de funcionamiento de las redes informáticas actuales están
definidos en varios estándares, siendo el más importante y extendido de todos ellos
el modelo TCP/IP basado en el modelo de referencia OSI. Este último, estructura
cada red en siete capas con funciones concretas pero relacionadas entre sí; en
TCP/IP se reducen a cuatro capas. Existen multitud de protocolos repartidos por
cada capa, los cuales también están regidos por sus respectivos estándares.
5.2 Internet
Internet es un conjunto descentralizado de redes de comunicación interconectadas
que utilizan la familia de protocolos TCP/IP, lo cual garantiza que las redes físicas
heterogéneas que la componen funcionen como una red lógica única, de alcance
mundial. Sus orígenes se remontan a 1969, cuando se estableció la primera
46
conexión de computadoras, conocida como Arpanet, entre tres universidades en
California y una en Utah, Estados Unidos.
Uno de los servicios que más éxito ha tenido en Internet ha sido la World Wide Web
(WWW o la Web), a tal punto que es habitual la confusión entre ambos términos. La
WWW es un conjunto de protocolos que permite, de forma sencilla, la consulta
remota de archivos de hipertexto. Esta fue un desarrollo posterior (1990) y utiliza
Internet como medio de transmisión.
Existen, por tanto, muchos otros servicios y protocolos en Internet, aparte de la Web:
el envío de correo electrónico (SMTP), la transmisión de archivos (FTP y P2P), las
conversaciones en línea (IRC), la mensajería instantánea y presencia, la transmisión
de contenido y comunicación multimedia —telefonía (VoIP), televisión (IPTV)—, los
boletines electrónicos (NNTP), el acceso remoto a otros dispositivos (SSH y Telnet) o
los juegos en línea.
5.3 Protocolo
Los proveedores de servicios de Internet conectar a los clientes (pensado en el
"fondo" de la jerarquía de enrutamiento) a los clientes de otros ISPs. En el "top" de la
jerarquía de enrutamiento son una decena de redes de nivel 1, las grandes empresas
de telecomunicaciones que intercambiar tráfico directamente "a través" a todas las
otras redes de nivel 1 a través de acuerdos de interconexión pendientes de pago.
Nivel 2 redes de compra de tránsito a Internet desde otro ISP para llegar a por lo
menos algunas partes de la Internet mundial, aunque también pueden participar en la
interconexión no remunerado (sobre todo para los socios locales de un tamaño
similar). ISP puede utilizar un solo "aguas arriba" proveedor de conectividad, o utilizar
multihoming para proporcionar protección contra los problemas con los enlaces
individuales. Puntos de intercambio Internet crear conexiones físicas entre múltiples
ISPs, a menudo alojados en edificios de propiedad de terceras partes
independientes.
47
Los ordenadores y routers utilizan las tablas de enrutamiento para dirigir los
paquetes IP entre las máquinas conectadas localmente. Las tablas pueden ser
construidas de forma manual o automáticamente a través de DHCP para un equipo
individual o un protocolo de enrutamiento para los routers de sí mismos. En un solo
homed situaciones, una ruta por defecto por lo general apunta hacia "arriba" hacia un
ISP proporciona el transporte. De más alto nivel de los ISP utilizan el Border
Gateway Protocol para solucionar rutas de acceso a un determinado rango de
direcciones IP a través de las complejas conexiones de la Internet global.
Las instituciones académicas, las grandes empresas, gobiernos y otras
organizaciones pueden realizar el mismo papel que los ISP, con la participación en el
intercambio de tráfico y tránsito de la compra en nombre de sus redes internas de las
computadoras individuales. Las redes de investigación tienden a interconectarse en
subredes grandes como GEANT, GLORIAD, Internet2, y de investigación nacional
del Reino Unido y la red de la educación, Janet. Estos a su vez se construyen
alrededor de las redes más pequeñas.
No todas las redes de ordenadores están conectadas a Internet. Por ejemplo,
algunos clasificados los sitios web de los Estados sólo son accesibles desde redes
seguras independientes.
5.4 Acceso a internet
Los métodos comunes de acceso a Internet en los hogares incluyen dial-up, banda
ancha fija (a través de cable coaxial, cables de fibra óptica o cobre),22 Wi-Fi,
televisión vía satélite y teléfonos celulares con tecnología 3G/4G. Los lugares
públicos de uso del Internet incluyen bibliotecas y cafés de internet, donde los
ordenadores con conexión a Internet están disponibles. También hay puntos de
acceso a Internet en muchos lugares públicos, como salas de los aeropuertos y
cafeterías, en algunos casos sólo para usos de corta duración. Se utilizan varios
términos, como "kiosco de Internet", "terminal de acceso público", y "teléfonos
públicos Web". Muchos hoteles ahora también tienen terminales de uso público, las
48
cuales por lo general basados en honorarios. Estos terminales son muy visitados
para el uso de varios clientes, como reserva de entradas, depósito bancario, pago en
línea, etcWi-Fi ofrece acceso inalámbrico a las redes informáticas, y por lo tanto,
puede hacerlo a la propia Internet. Hotspots les reconocen ese derecho incluye Wi-Fi
de los cafés, donde los aspirantes a ser los usuarios necesitan para llevar a sus
propios dispositivos inalámbricos, tales como un ordenador portátil o PDA. Estos
servicios pueden ser gratis para todos, gratuita para los clientes solamente, o de
pago. Un punto de acceso no tiene por qué estar limitado a un lugar confinado. Un
campus entero o parque, o incluso una ciudad entera puede ser activado.".
Los esfuerzos de base han dado lugar a redes inalámbricas comunitarias. Los
servicios comerciales de Wi-Fi cubren grandes áreas de la ciudad están en su lugar
en Londres, Viena, Toronto, San Francisco, Filadelfia, Chicago y Pittsburgh. El
Internet se puede acceder desde lugares tales como un banco del parque. Aparte de
Wi-Fi, se han realizado experimentos con propiedad de las redes móviles
inalámbricas como Ricochet, varios servicios de alta velocidad de datos a través de
redes de telefonía celular, y servicios inalámbricos fijos. De gama alta los teléfonos
móviles como teléfonos inteligentes en general, cuentan con acceso a Internet a
través de la red telefónica. Navegadores web como Opera están disponibles en estos
teléfonos avanzados, que también puede ejecutar una amplia variedad de software
de Internet. Más teléfonos móviles con acceso a Internet que los PC, aunque esto no
es tan ampliamente utilizado. El proveedor de acceso a Internet y la matriz del
protocolo se diferencian de los métodos utilizados para obtener en línea.
Un apagón de Internet o interrupción puede ser causada por interrupciones locales
de señalización. Las interrupciones de cables de comunicaciones submarinos
pueden causar apagones o desaceleraciones a grandes áreas, tales como en la
interrupción submarino 2008 por cable. Los países menos desarrollados son más
vulnerables debido a un pequeño número de enlaces de alta capacidad. Cables de
tierra también son vulnerables, como en 2011, cuando una mujer cavando en busca
de chatarra de metal cortado la mayor parte de conectividad para el país de Armenia.
49
Internet apagones que afectan a los países casi todo se puede lograr por los
gobiernos como una forma de censura en Internet, como en el bloqueo de Internet en
Egipto, en el que aproximadamente el 93% de las redes no tenían acceso en 2011
en un intento por detener la movilización de protestas contra el gobierno.
50
6. Registro de mercancías e inventarios
6.1. Sistemas de inventario
Un sistema de inventarios es un conjunto de normas, métodos y procedimientos
aplicados de manera sistemática para planificar y controlar los materiales y productos
que se emplean en una organización. Este sistema puede ser manual o
automatizado. Para el control de los costos, elemento clave de la administración de
cualquier empresa, existen sistemas que permiten estimar los costos de las
mercancías que son adquiridas y luego procesadas o vendidas.
El análisis ABC se realiza con el fin de determinar la importancia de los distintos
productos en función de su aporte a las ventas totales de la empresa y a los
márgenes brutos de beneficios generados.
Para realizar el análisis ABC:
El primer paso consiste en ordenarlos, de mayor a menor, de acuerdo con el tanto
por ciento que representa respecto al total de las ventas de la empresa.
El segundo paso se completa colocando al lado del tanto por ciento sobre las ventas
el tanto por ciento que representa cada producto respecto al margen bruto total
generado por la venta de todos los productos de la empresa.
El tercer paso consiste en separar en tramos o categorías, con el fin de clasificaren
productos de alta, media, y baja importancia relativa. Este análisis permite determinar
cuáles son los productos realmente importantes en la empresa.
Los sistemas de inventarios se enfocan a partir del VALOR del producto, ya que con
ello pueden establecer las dimensiones de los pedidos para los productos, periodos
de tiempo en cada uno, entre otros.
51
Esto conduce a lo que se conoce como modelos de inventario los cuales se destacan
de la siguiente forma:
1.-Modelos deterministas
Toma como punto de referencia los datos que supone cada inventario para su
pedido, estableciendo así factores como demanda plazo de entrega, precios, costos
de almacenamiento, periodos de los pedidos, y todo lo demás referente a las
características de cada producto.
2- Modelos probabilísticos
Similar al modelo determinista, con la diferencia de que, basándose en datos tales
como la distribución de los productos en su entorno determinado, hace PROBABLE
ciertos hechos como variación en la demanda y el mercado, stock de seguridad,
entre otros.(realizacioninvetariosa, 2013)
6.2. Inventario periódico
El sistema de inventarios periódico, como su nombre lo indica, realiza un control
cada determinado tiempo o periodo, y para eso es necesario hacer un conteo físico.
Para poder determinar con exactitud la cantidad de inventarios disponibles en una
fecha determinada. Con la utilización de este sistema, la empresa no puede saber en
determinado momento cuantos son sus mercancías, ni cuánto es el costo de los
productos vendidos.
La empresa solo puede saber tanto el inventario exacto como el costo de venta, en el
momento de hacer un conteo físico, lo cual por lo general se hace al final de un
periodo, que puedes ser mensual, semestral o anual.
52
Para determinar el costo de las ventas realizadas en un periodo, es preciso realizar
lo que llamamos Juego de inventarios que consiste en tomar el inventario inicial, y
sumarles las compras, restarle las devoluciones en compras y el inventario final. El
resultado es el costo de las ventas del periodo.
El sistema de inventarios periódico, al no ejercer un control constante, es un sistema
que facilita la pérdida de los inventarios. Solo se pueden hacer seguimientos y
verificaciones al final de un periodo cuando se hacen los conteos físicos, lo cual
permite o facilita posibles fraudes.
El sistema periódico es conocido también como sistema físico, porque se apoya en el
conteo físico real del inventario. El sistema periódico es generalmente utilizado para
contabilizar los artículos del inventario que tienen un costo unitario
bajo.(Gerencie.com, Gerencie.com, 2013)
6.3. Inventario perpetuo
El sistema de inventarios permanente, o también llamado perpetuo, permite un
control constante de los inventaros, al llevar el registro de cada unidad que ingresa y
sale del inventario. Este control se lleva mediante tarjetas llamada Kardex, en donde
se lleva el registro de cada unidad, su valor de compra, la fecha de adquisición, el
valor de la salida de cada unidad y la fecha en que se retira del inventario. De esta
forma, en todo momento se puede conocer el saldo exacto de los inventarios y el
valor del costo de venta.
Además del control permanente de los inventarios, este sistema permite la
determinación del costo al momento de hacer la venta, debido a que en cada salida
de un producto, es registra su cantidad y costo.
La valuación de los inventarios y la determinación del costo de venta por el sistema
permanente, tiene el inconveniente con los valores de las mercancías, puesto que
53
éstas se adquieren en fechas diferentes con precios diferentes, por lo que es
imposible tener una homogeneidad en los valores de las mercancías compradas.
Para sortear este problema, la valuación de los inventarios se realiza mediante
diferentes métodos que buscan determinar el costo de la forma más real,
dependiendo del tipo de empresa.
En el sistema permanente, las compras de mercancías o Materia prima se
contabilizan en un debito a la cuenta de Inventarios (Activo).
En la devolución de compras de mercancías, se afecta directamente la cuenta de
inventarios, es decir, se contabiliza como un crédito a la respectiva subcuenta de
inventarios.
Cuando se realiza una venta, esta se contabiliza en la respectiva cuenta de ingresos,
y a la vez se contabiliza el costo de venta, puesto que al momento de cada venta, se
determina también su costo.(Gerencie.com, Gerencie.com, 2013)
6.4. Cuentas por pagar
Las Cuentas por Pagar surgen por operaciones de compra de bienes materiales
(Inventarios), servicios recibidos, gastos incurridos y adquisición de activos fijos o
contratación de inversiones en proceso.
Si son pagaderas a menor de doce meses se registran como Cuentas por Pagar a
Corto Plazo y si su vencimiento es a más de doce meses, en Cuentas por Pagar a
Largo plazo.
Es preciso analizar estos pasivos por cada acreedor y en cada uno de éstos por cada
documento de origen (fecha, número del documento e importe) y por cada pago
efectuado. También deben analizarse por edades para evitar el pago de moras o
indemnizaciones.
54
Las Cuentas por Pagar a Largo Plazo al finalizar cada período económico, deben
reclasificarse a Corto Plazo, (las exigibles el año próximo).
Las cuentas por pagar son deudas que tiene su empresa por concepto de bienes y
servicios que compra a crédito. Llevar un registro de lo que debe y cuándo son los
vencimientos le permitirá gozar de una buena situación crediticia y retener su dinero
el mayor tiempo posible.
En su registro de cuentas por pagar deberá registrar la siguiente información: fecha
de la factura, número de factura, monto de la factura, plazos, fecha de pago, importe
pagado, saldo (si corresponde) y nombre y dirección del proveedor.(cad.com, 2013)
6.5. Cuentas por cobrar
Las cuentas por cobrar registra los aumentos y las disminuciones derivados de la
venta de conceptos distintos a mercancías o prestación de servicios, única y
exclusivamente a crédito documentado (títulos de crédito, letras de cambio y
pagarés) a favor de la empresa y para esto existe programas para llevar a cabo las
operaciones.
Por lo tanto se dice que esta cuenta presenta el derecho (exigible) que tiene la
entidad de exigir a los suscriptores de los títulos de crédito el pago de su adeudo
(documentado)derivado de venta de conceptos diferentes de las mercancías o la
prestación de servicios a crédito; es decir, presenta un beneficio futuro fundadamente
esperado.
Las cuentas por cobrar pueden clasificarse como:
Corto plazo: Aquellas cuya disponibilidad es inmediata dentro de un plazo no mayor
de un año.
55
Largo plazo: Su disponibilidad es a más de un año.
Las cuentas por cobrar a corto plazo, deben presentarse en el Estado de Situación
Financiera como activo corriente y las cuentas por cobrar a largo plazo deben
presentarse fuera del activo corriente. Pueden sub clasificarse de acuerdo a su
origen en dos grupos que son:
a) A cargo de clientes y b) A cargo de otros deudores.(wikipedia.org, 2013)
6.6. Facturación electrónica CFDI
Una factura electrónica, también llamada comprobante fiscal digital, es un documento
electrónico que cumple con los requisitos legal y reglamentariamente exigibles a las
facturas tradicionales garantizando, entre otras cosas, la autenticidad de su origen y
la integridad de su contenido.
La factura electrónica es, por tanto, la versión electrónica de las facturas
tradicionales en soporte papel y debe ser funcional y legalmente equivalente a estas
últimas. Por su propia naturaleza, las facturas electrónicas pueden almacenarse,
gestionarse e intercambiarse por medios electrónicos o digitales.
Para que la factura electrónica tenga validez debe estar completada con la firma
electrónica, que le da validez legal permitiendo eliminar la factura en papel.
Una factura es el justificante fiscal de la entrega de un producto o de la provisión de
un servicio, que afecta al obligado tributario emisor (el vendedor) y al obligado
tributario receptor (el comprador). Tradicionalmente, es un documento en papel, cuyo
original debe ser archivado por el receptor de la factura. Habitualmente el emisor de
la factura conserva una copia o la matriz en la que se registra su emisión.
La factura electrónica es el equivalente digital y evolución lógica de la tradicional
factura en papel. A diferencia de esta, se emplean soportes informáticos para su
almacenamiento en lugar de un soporte físico como es el papel.
56
La factura electrónica es un tipo de factura que se diferencia de la factura en papel
por la forma de gestión informática y el envío mediante un sistema de
comunicaciones que conjuntamente permiten garantizar la autenticidad y la
integridad del documento electrónico.
Una factura electrónica se construye en 2 fases:
Se crea la factura tal y como se ha hecho siempre y se almacena en un fichero de
datos.
Posteriormente se procede a su firma con un certificado digital o electrónico
propiedad del emisor que cifra el contenido de factura y añade el sello digital a la
misma
Al terminar obtenemos una factura que nos garantiza:
Que la persona física o jurídica que firmó la factura es quien dice ser (autenticidad) y
Que el contenido de la factura no ha sido alterado (integridad).(wikipedia.org, 2013)
57
METODOLOGÍA DE DESARROLLO
Enfoque de la investigación.
La presente investigación presenta un enfoque “Mixto”, esto porque procede un
proceso que recolecta, analiza y vincula datos, tanto cuantitativos y cualitativos en un
mismo estudio. Con el enfoque Mixto, se logra una perspectiva más precisa del
fenómeno, incrementa la confianza en los resultados obtenidos.
Alcance de la investigación
El alcance de nuestra investigación es correlacional debido a que tenemos dos
variables que se relacionan por causa y efecto, en esta investigación se pretende
analizar el efecto que causara la implementación de un sistema de software para el
registro de las ventas en la disminución de pérdidas monetarias internas.
Este tipo de estudio tendrá como finalidad conocer la relación o grado de asociación
que exista entre la variable dependiente “pérdidas económicas” y la variable
independiente “punto de venta”.
Tipo de investigación
El tipo de investigación de acuerdo al propósito es de desarrollo debido a que en este
proyecto desarrollaremos un producto de software para dar solución al planteamiento
del problema. De acuerdo al planteamiento del problema se necesita un sistema de
información que controle la entrada y salida de mercancías de tal forma que se
reduzcan las pérdidas económicas por robo de mercancía.
58
Diseño de la investigación
El diseño de la investigación será experimental debido a que manipularemos
directamente la variable independiente “punto de venta” en esta investigación
desarrollaremos de acuerdo a una metodología el software para desarrollar el
software para el punto de venta y trataremos de medir el grado con que afecta o
modifica a nuestra variable dependiente “pérdidas económicas”.
Esto con el objetivo de comprobar nuestra hipótesis la cual es:
“La implementación de un punto de venta que controle la entrada y salida de
mercancías reducirán las pérdidas económicas en la refaccionaria “ADRICAR”.”
Población
Nuestra población comprende a las personas que realizan la venta de mercancías en
la refaccionaria “ADRICAR” ubicada en el Boulevard Benito Juárez 597 en la colonia
María Eugenia de San Juan Bautista Tuxtepec Oaxaca.
Muestra
Debido a que nuestra población es muy pequeña seleccionaremos al administrador
del negocio y a un empleado como muestra.
Técnicas de recolección de datos
De acuerdo con lo descrito anteriormente, él enfoque mixto es el utilizado en esta
investigación ya que cuenta con las características que se requieren para desarrollar
el análisis de datos.
En esta investigación utilizaremos la entrevista como técnica de investigación con el
objetivo de obtener datos cuantitativos y cualitativos.
Así también nos apoyaremos de la encuesta para medir actitudes.
59
Instrumento de investigación
Cuestionario:
Será formulado con preguntas abiertas con el fin de obtener todos los requisitos de
software.
Ver anexo A. Cuestionario
Encuestas:
Se aplicara una encuesta para evaluar el grado de aceptación del sistema, para esto
se aplicar una medición de actitudes mediante la escala tipo Likert.
Ver Anexo B. Encuesta
60
Metodología de desarrollo.
En el proyecto se usa la metodología de “Modelo incremental” en la que únicamente
se procederá a cumplir con las 4 fases que marca la metodología de software. Se
incluirá el detalle para las fases de Análisis, Diseño, Desarrollo e Implementación del
sistema propuesto.
Cabe destacar que todas las fases de desarrollo del software independientemente
del rol asignado a cada integrante del equipo SYS, todos los integrantes se
involucraron en cada una de las actividades.
Fase 1. Análisis
La fase de análisis se realizó desde el inicio de este proyecto en la primera entrevista
con el cliente ver los anexos A, B, C y D en los cuales se detallan las entrevistas
utilizadas y el análisis de requisitos. Las dos primeras actividades fueron
desarrolladas por el líder y jefe de proyecto Victor Jiménez Villar en donde se
realizaron las primeras platicas con el cliente. Posteriormente el analista Cinthia
Barrera Villa se encargó de identificar los requisitos y exponer la factibilidad del
proyecto.
En esta fase se desarrollaron las siguientes actividades;
 Primer entrevista con el cliente
 Identificación del problema
 Análisis del problema
 Entrevista para el análisis de requisitos
 Análisis de requisitos
 Establecer el objetivo general y específicos del proyecto
 Analizar la factibilidad del proyecto
 Diseñar el cronograma de actividades
 Empezar a desarrollar las actividades del marco de trabajo
61
Fase 2. Desarrollo
En esta fase el programador Jorge Eliecer Pérez Flores se encargó de realizar el
modelado y diseño del sistema, al final de este proceso el analista se encargó de
verificar que el diseño corresponda a los requisitos de software establecidos.
En resumen se realizaron las siguientes actividades.
 Modelar el sistema en UML
 Realizar los diagramas de contexto
 Analizar el modelo del sistema
 Diseñar el sistema
 Desarrollo
A continuación se agregan los diagramas realizados por el programador.
62
Imagen 7. Diagrama contextual nivel 0
63
Imagen 8. Diagrama contextual nivel 1
64
Imagen 9. Diagrama contextual del proceso “Compra de mercancías”
65
Imagen 10. Diagrama contextual nivel 2 del proceso “Registro de mercancías”
66
Imagen 11. Diagrama contextual nivel 2 de proceso “Venta de mercancías”
67
Imagen 12. Diagrama contextual nivel 2 del proceso “Manejo de cuentas”
68
El diseño de las interfaces se realizó con ayuda del entorno de desarrollo integrado Visual Studio 2012.
Las imágenes e iconos con el programa para edición de fotografías Photoshop SC6 y Gimp 3.6
Imagen 13. Interfaz del sistema “Control Total”.
69
Fase 3. Desarrollo
En esta fase continuo la labor de los programadores para diseñar las interfaces y
base de datos del sistema “CONTROL TOTAL”.
Se realizaron las siguientes actividades.
 Crear base de datos lógica y física
 Construir las interfaces del sistema
 Escribir el código necesario de acuerdo al diseño
 Enlazar el sistema con la base de datos
 Implementación
El software “CONTROL TOTAL “se desarrolló con el lenguaje de programación
orientado a objetos C#. El IDE Visual Studio 2012 genera automáticamente el código
necesario para cada interfaz de usuario, el programador solo le tiene que dar
funcionalidad. A continuación se explica un fragmento de código del programa.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data.Entity;
using System.Data.Entity.Validation;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Inicio
{
Public partial class Usuarios : Form
{
Public Usuarios()
{
InitializeComponent();
}
Public Ventas.ADRICAREntitiesdbconexion= newVentas.ADRICAREntities();
Private void Usuarios_Load (object sender, EventArgs e)
{
dbconexion.Usuarios
.Load();
usuariosBindingSource.DataSource = dbconexion.Usuarios.Local;
}
70
Private void usuariosBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
Validate();
usuariosBindingSource.EndEdit();
try
{
dbconexion.SaveChanges();
}
catch (DbEntityValidationException)
{
MessageBox.Show("No se puede agregar el usuario");
}
}
}
}
Esta clase nos muestra una pequeña ventana para editar los usuarios que tienen
acceso al sistema.
En las primeras líneas se utiliza la sentencia [using] para importar las librerías que
utilizaremos, algunas se cargan por default como es el caso de usingSystem; otras
se insertan para el propósito del programa por ejemplo:
usingSystem.Data.Entity.Validation;
La palabra namespace indica que pertenece a un paquete de clases.
Continuamos definiendo la clase con public partial class Usuarios :Formindica que la
clase se llamara Usuarios y deriva de la clase Form.
71
En esta clase disponemos de tres métodos:
public Usuarios()
Método constructor que inicializa las variables,panels, layouts , acciones y
propiedades que contiene nuestra ventana.
Private void Usuarios_Load(object sender, EventArgs e)
Método de evento que ocurre al cargar la ventana en el escritorio, dentro de este
método realizamos la conexión a la base de datos.
dbconexion.Usuarios
.Load();
usuariosBindingSource.DataSource = dbconexion.Usuarios.Local;
El ultimo método
Private void usuariosBindingNavigatorSaveItem_Click(objectsender, EventArgs e)
También es un método de evento este método se inicia cuando daremos clic en la
opción guardar de la barra de herramientas para validar los datos
Validate();
usuariosBindingSource.EndEdit();
y tratar de guardar los cambios.
try
{
dbconexion.SaveChanges();
}
catch (DbEntityValidationException)
{
MessageBox.Show("No se puede agregar el usuario");
}
72
Fase 4. Pruebas y retroalimentación
En esta etapa de desarrollo de software el equipo de desarrollo de software SYS se
planteó el objetivo de entregar un prototipo de la interfaz de usuario y la base de
datos para presentárselo al cliente; para recibir comentarios y sugerencias.
Una vez terminada esta etapa se recopilaran más requisitos para el segundo
incremento del software.
Las pruebas del software se realizaron con la herramienta de depuración de
Microsoft Visual Studio 2012 generando puntos de interrupción. Para posteriormente
presentar el incremento.
Imagen 14. Consola de depuración
En esta fase se realizaron las siguientes actividades.
 Prueba del primer incremento
 Entrega del primer incremento
 Consideraciones del cliente para el segundo incremento
73
Análisis de resultados.
Después de la presentación del primer prototipo el cliente quedo conforme con las
características que se espera tener en el sistema. Se recalcó la importancia de
establecer el módulo de facturación electrónica ya que este módulo aún no ha sido
implementado y es uno de los requisitos primordiales de este proyecto.
Los resultados obtenidos del primer incremento se resumen en los siguientes puntos.
 Es necesario desarrollar los reportes de ventas
 Se necesita ver funcionando el módulo de facturación
 Programar los catálogos faltantes.
 Las funcionalidades que se le espera dar al sistema cumplen con los
requisitos del cliente.
 La entrega de este primer incremento permitirá empezar a realizar la captura
del inventario físico de mercancías.
 Se reprogramara un nuevo calendario de desarrollo para el segundo
incremento el cual se estima en un plazo de 2 meses.
74
CONCLUSION
Con el primer incremento de software entregado el cliente podrá avanzar en una de
las tareas más laboriosas de la implementación de un punto de venta el cual es la
realización de inventario.
La presentación del presente proyecto fue de gran importancia para el equipo SYS
ya que nos permitió desarrollar y poner en práctica nuestras habilidades. Se observó
que es importante una buena planeación y estimación de recursos debido a una mala
planeación se tendrá que reprogramar el segundo y tercer incremento de software.
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado
Proyecto victor modificado

Más contenido relacionado

La actualidad más candente

Informe Validacion Cuestionario
Informe Validacion CuestionarioInforme Validacion Cuestionario
Informe Validacion Cuestionariosynapticaweb
 
Manual para Formulación de Proyectos de Cooperación Internacional
Manual para Formulación de Proyectos de Cooperación InternacionalManual para Formulación de Proyectos de Cooperación Internacional
Manual para Formulación de Proyectos de Cooperación InternacionalAlejandro Rodriguez
 
El análisis prospectivo y tendencias documento final v3.9 jalopeze
El análisis prospectivo y tendencias documento final v3.9 jalopezeEl análisis prospectivo y tendencias documento final v3.9 jalopeze
El análisis prospectivo y tendencias documento final v3.9 jalopezeKarem Esther Infantas Soto
 
Fundamentos guillermo espinoza
Fundamentos guillermo espinozaFundamentos guillermo espinoza
Fundamentos guillermo espinozaLuis Martinez
 
Gestion y fundamnetos de las eia (2007)
Gestion y fundamnetos de las eia (2007)Gestion y fundamnetos de las eia (2007)
Gestion y fundamnetos de las eia (2007)slawkosysak
 
DESARROLLO E IMPLEMENTACIÓN DE UN MODELO DE DISEÑO PARA REDES SOCIALES ORGANI...
DESARROLLO E IMPLEMENTACIÓN DE UN MODELO DE DISEÑO PARA REDES SOCIALES ORGANI...DESARROLLO E IMPLEMENTACIÓN DE UN MODELO DE DISEÑO PARA REDES SOCIALES ORGANI...
DESARROLLO E IMPLEMENTACIÓN DE UN MODELO DE DISEÑO PARA REDES SOCIALES ORGANI...Elisa Carolina
 
2. control de gestión y evaluación de resultados
2. control de gestión y evaluación de resultados2. control de gestión y evaluación de resultados
2. control de gestión y evaluación de resultadosSago11
 
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOSRESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOSEDGARMUJ
 
Prototipo de un sistema de registro para el
Prototipo de un sistema de registro para elPrototipo de un sistema de registro para el
Prototipo de un sistema de registro para elJuan Anaya
 
EVALUACIÓN EJECUTIVA DEL PROGRAMA NACIONAL DE SERVICIO AL CIUDADANO Conclusio...
EVALUACIÓN EJECUTIVA DEL PROGRAMA NACIONAL DE SERVICIO AL CIUDADANO Conclusio...EVALUACIÓN EJECUTIVA DEL PROGRAMA NACIONAL DE SERVICIO AL CIUDADANO Conclusio...
EVALUACIÓN EJECUTIVA DEL PROGRAMA NACIONAL DE SERVICIO AL CIUDADANO Conclusio...Oportunidad Estratégica Ltda
 
5.tabla de contenido (08 02-2013)
5.tabla de contenido (08 02-2013)5.tabla de contenido (08 02-2013)
5.tabla de contenido (08 02-2013)Laura Maria Rueda
 

La actualidad más candente (17)

05 gestion de_proyectos_informaticos
05 gestion de_proyectos_informaticos05 gestion de_proyectos_informaticos
05 gestion de_proyectos_informaticos
 
Informe Validacion Cuestionario
Informe Validacion CuestionarioInforme Validacion Cuestionario
Informe Validacion Cuestionario
 
Manual para Formulación de Proyectos de Cooperación Internacional
Manual para Formulación de Proyectos de Cooperación InternacionalManual para Formulación de Proyectos de Cooperación Internacional
Manual para Formulación de Proyectos de Cooperación Internacional
 
El análisis prospectivo y tendencias documento final v3.9 jalopeze
El análisis prospectivo y tendencias documento final v3.9 jalopezeEl análisis prospectivo y tendencias documento final v3.9 jalopeze
El análisis prospectivo y tendencias documento final v3.9 jalopeze
 
Fundamentos guillermo espinoza
Fundamentos guillermo espinozaFundamentos guillermo espinoza
Fundamentos guillermo espinoza
 
Gestion y fundamnetos de las eia (2007)
Gestion y fundamnetos de las eia (2007)Gestion y fundamnetos de las eia (2007)
Gestion y fundamnetos de las eia (2007)
 
diseño de circuitos electricos Circuitos iii umbral
diseño de circuitos electricos  Circuitos iii   umbraldiseño de circuitos electricos  Circuitos iii   umbral
diseño de circuitos electricos Circuitos iii umbral
 
DESARROLLO E IMPLEMENTACIÓN DE UN MODELO DE DISEÑO PARA REDES SOCIALES ORGANI...
DESARROLLO E IMPLEMENTACIÓN DE UN MODELO DE DISEÑO PARA REDES SOCIALES ORGANI...DESARROLLO E IMPLEMENTACIÓN DE UN MODELO DE DISEÑO PARA REDES SOCIALES ORGANI...
DESARROLLO E IMPLEMENTACIÓN DE UN MODELO DE DISEÑO PARA REDES SOCIALES ORGANI...
 
2. control de gestión y evaluación de resultados
2. control de gestión y evaluación de resultados2. control de gestión y evaluación de resultados
2. control de gestión y evaluación de resultados
 
Metodología del Marco LóGico
Metodología del Marco LóGicoMetodología del Marco LóGico
Metodología del Marco LóGico
 
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOSRESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
RESUMEN LIBRO ASOECTOS A CONSIDERA PARA PROYECTOS
 
Prototipo de un sistema de registro para el
Prototipo de un sistema de registro para elPrototipo de un sistema de registro para el
Prototipo de un sistema de registro para el
 
EVALUACIÓN EJECUTIVA DEL PROGRAMA NACIONAL DE SERVICIO AL CIUDADANO Conclusio...
EVALUACIÓN EJECUTIVA DEL PROGRAMA NACIONAL DE SERVICIO AL CIUDADANO Conclusio...EVALUACIÓN EJECUTIVA DEL PROGRAMA NACIONAL DE SERVICIO AL CIUDADANO Conclusio...
EVALUACIÓN EJECUTIVA DEL PROGRAMA NACIONAL DE SERVICIO AL CIUDADANO Conclusio...
 
5.tabla de contenido (08 02-2013)
5.tabla de contenido (08 02-2013)5.tabla de contenido (08 02-2013)
5.tabla de contenido (08 02-2013)
 
0281 williams
0281 williams0281 williams
0281 williams
 
Capital humano y evaluacion en bibliotecas academicas
Capital humano y evaluacion en bibliotecas academicasCapital humano y evaluacion en bibliotecas academicas
Capital humano y evaluacion en bibliotecas academicas
 
Control fuzzi
Control fuzziControl fuzzi
Control fuzzi
 

Similar a Proyecto victor modificado

Proyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoProyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoJuan Jose Flores
 
Algoritmos guia de maria hernandez
Algoritmos guia de maria hernandezAlgoritmos guia de maria hernandez
Algoritmos guia de maria hernandezjackie_18
 
Cali moreno-doc-final-v7
Cali moreno-doc-final-v7Cali moreno-doc-final-v7
Cali moreno-doc-final-v7Gustavo Cali
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos JavaJosé Mendoza
 
Alfredo garcia ing.pdf
Alfredo garcia ing.pdfAlfredo garcia ing.pdf
Alfredo garcia ing.pdfAlfredo Garcia
 
Desarrollo del proyecto
Desarrollo del proyectoDesarrollo del proyecto
Desarrollo del proyectosabrosisimo69
 
Microsoft excel y la productividad de las empresas
Microsoft excel y la productividad de las empresasMicrosoft excel y la productividad de las empresas
Microsoft excel y la productividad de las empresasRuben Zavala Jacome
 
Trabajo de tecnologia - conceptos y programación, métodos estadísticos
Trabajo de tecnologia - conceptos y programación,  métodos estadísticos Trabajo de tecnologia - conceptos y programación,  métodos estadísticos
Trabajo de tecnologia - conceptos y programación, métodos estadísticos MarianaOrtizcastro
 
Proyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoProyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoJuan Jose Flores
 
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdfINSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdfAnaLpez275
 
Manual 42 ilpes mml
Manual 42 ilpes mmlManual 42 ilpes mml
Manual 42 ilpes mmlErick Des
 
Manual cepal marco lógico Ortegon
Manual cepal marco lógico OrtegonManual cepal marco lógico Ortegon
Manual cepal marco lógico OrtegonUniambiental
 
11. metodología del marco lógico
11. metodología del marco lógico11. metodología del marco lógico
11. metodología del marco lógicoSago11
 

Similar a Proyecto victor modificado (20)

catalago de software
catalago de softwarecatalago de software
catalago de software
 
Proyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoProyecyo final de analisis estructurado
Proyecyo final de analisis estructurado
 
Tesis185
Tesis185Tesis185
Tesis185
 
Algoritmos guia de maria hernandez
Algoritmos guia de maria hernandezAlgoritmos guia de maria hernandez
Algoritmos guia de maria hernandez
 
Inventarios proceso
Inventarios proceso Inventarios proceso
Inventarios proceso
 
Cali moreno-doc-final-v7
Cali moreno-doc-final-v7Cali moreno-doc-final-v7
Cali moreno-doc-final-v7
 
Programación Orientada a Eventos Java
Programación Orientada a Eventos JavaProgramación Orientada a Eventos Java
Programación Orientada a Eventos Java
 
Alfredo garcia ing.pdf
Alfredo garcia ing.pdfAlfredo garcia ing.pdf
Alfredo garcia ing.pdf
 
Investigación
InvestigaciónInvestigación
Investigación
 
Desarrollo del proyecto
Desarrollo del proyectoDesarrollo del proyecto
Desarrollo del proyecto
 
Microsoft excel y la productividad de las empresas
Microsoft excel y la productividad de las empresasMicrosoft excel y la productividad de las empresas
Microsoft excel y la productividad de las empresas
 
Trabajo de tecnologia - conceptos y programación, métodos estadísticos
Trabajo de tecnologia - conceptos y programación,  métodos estadísticos Trabajo de tecnologia - conceptos y programación,  métodos estadísticos
Trabajo de tecnologia - conceptos y programación, métodos estadísticos
 
Proyecyo final de analisis estructurado
Proyecyo final de analisis estructuradoProyecyo final de analisis estructurado
Proyecyo final de analisis estructurado
 
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdfINSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
INSTITUTO_TECNOLOGICO_DE_MORELIA_PROGRAM.pdf
 
Manual 42 ilpes mml
Manual 42 ilpes mmlManual 42 ilpes mml
Manual 42 ilpes mml
 
Marcologicomanual
MarcologicomanualMarcologicomanual
Marcologicomanual
 
Manual cepal marco lógico Ortegon
Manual cepal marco lógico OrtegonManual cepal marco lógico Ortegon
Manual cepal marco lógico Ortegon
 
Mml cepal
Mml   cepalMml   cepal
Mml cepal
 
11. metodología del marco lógico
11. metodología del marco lógico11. metodología del marco lógico
11. metodología del marco lógico
 
Mml cepal
Mml   cepalMml   cepal
Mml cepal
 

Proyecto victor modificado

  • 1. INSTITUTO TECNOLÓGICO de Tuxtepec “Desarrollo de un punto de venta para la refaccionaria ADRICAR” ubicada en San Juan Bautista Tuxtepec Oaxaca.” Barrera Villa Cynthia Del Carmen Espiritud Cruz José Roberto Flores Pérez Jorge Eliecer Jiménez Villar Víctor Meneses Hernández Rogelio Ivan Sánchez Santiago Ulises ASESOR: L.I. MA. De los Ángeles Martínez Morales Tuxtepec, Oax. DICIEMBRE 2013 S.E.P D.G.E.S.T S.N.E.S.T
  • 2. Desarrollo de un punto de venta para la refaccionaria “ADRICAR” ubicada en San Juan Bautista Tuxtepec Oaxaca.
  • 3. RESUMEN El presente proyecto con el nombre “Desarrollo de un punto de venta para la refaccionaria “ADRICAR” ubicada en San Juan Bautista Tuxtepec Oaxaca.” Presenta la investigación que se realizó así como el proceso de desarrollo de software. El objetivo de este proyecto es aplicar los conocimientos adquiridos en la carrera de ingeniería en sistemas computacionales dentro de un ámbito empresarial en la comunidad. Además de ser requisito para aprobar la materia “Taller de investigación 2”. Comenzaremos con desarrollar el planteamiento del problema en el cual se expone detalladamente la situación de la organización, los recursos con los que cuenta, sus operaciones, actividad económica; todo esto corresponde al análisis de requisitos. Una vez descrito el problema , se presenta una hipótesis por parte del equipo de investigación, la justificación, las variables de investigación y un estudio de factibilidad para comprobar si este proyecto será beneficioso para ambas partes : el equipo de desarrollo de software y la refaccionaria “ADRICAR”. El desarrollo del software para este sistema se realizó utilizando la metodología de desarrollo incremental, el lenguaje de programación C# y el uso de diferentes herramientas CASE entre ellas gestores de bases de datos, entornos de desarrollo integrados, herramientas de modelado; todos estos conceptos se incluyen dentro del marco teórico en el cual se describe cada tema los cuales se consideran fundamentales para entender cómo se desarrolló el proyecto. Dentro de la sección metodología de desarrollo, se menciona el tipo de investigación y las herramientas de investigación utilizadas para realizar este proyecto, incluyendo diagramas de contexto, diagramas de casos de uso, diagrama entidad relación entre otros. Es decir de describen las fases de la metodología de desarrollo de software empleada. Al final encontraremos los anexos los cuales fueron de ayuda o se utilizaron como herramientas para la investigación y el desarrollo de software.
  • 4. i INDICE DE CONTENIDO RESUMEN ................................................................................................................................iii INDICE DE CONTENIDO .........................................................................................................i ÍNDICE DE TABLAS................................................................................................................iv ÍNDICE DE FIGURAS ..............................................................................................................v INTRODUCCION ................................................................Error! Bookmark not defined. IDENTIFICACIÓN DEL PROBLEMA.................................................................................... 7 PLANTEAMIENTO DEL PROBLEMA .................................................................................. 8 FORMULACION DEL PROBLEMA....................................................................................... 9 OBJETIVO GENERAL ..........................................................................................................10 OBJETIVOS ESPECÍFICOS ................................................................................................10 JUSTIFICACIÓN ....................................................................................................................11 Impacto Social: ...................................................................................................................11 Impacto tecnológico:..........................................................................................................11 Impacto económico............................................................................................................11 Impacto ambiental..............................................................................................................11 ESTUDIO DE VIABILIDAD...................................................................................................12 Viabilidad técnica ...............................................................................................................12 Viabilidad Económica........................................................................................................13 Viabilidad Operativa...........................................................................................................15 HIPÓTESIS.............................................................................................................................16 Hipótesis de trabajo...........................................................................................................16 Hipótesis Nula.....................................................................................................................16 Identificación de las variables ..........................................................................................16 Definición conceptual de las variables ...........................................................................16 Definición operativa de las variables ..............................................................................16 METODOLOGIA DE DESARROLLO .................................................................................57
  • 5. ii Enfoque de la investigación. ............................................................................................57 Alcance de la investigación ..............................................................................................57 Tipo de investigación.........................................................................................................57 Diseño de la investigación................................................................................................58 Población.............................................................................................................................58 Muestra................................................................................................................................58 Técnicas de recolección de datos ...................................................................................58 Instrumento de investigación ...........................................................................................59 Metodología de desarrollo................................................................................................60 Análisis.................................................................................................................................60 Diseño...............................................................................Error! Bookmark not defined. Desarrollo .........................................................................Error! Bookmark not defined. Pruebas y retroalimentación.............................................................................................72 MARCO TEORICO ................................................................................................................17 1. Sistemas de información........................................................................................17 1.1. Dato, información y sistema...........................................................................17 1.2. Sistema de información...................................................................................18 1.3. Componentes del sistema de información...................................................18 1.4. Tipos y usos de sistemas de información...................................................19 2. Base de datos..........................................................................................................23 2.1. Que es una base de datos .............................................................................23 2.2. Tipos de base de datos...................................................................................23 2.3. Normalización de las bases de datos ...........................................................24 2.4. SGBD.................................................................................................................26 2.5. SQL Server Express........................................................................................27 2.6. SQL ....................................................................................................................28 2.7. LINQ ...................................................................................................................30 3. Metodología del proceso de software ..................................................................32 3.1 Definición de metodología .....................................................................................32 3.2 Metodología clásica o de cascada .......................................................................33
  • 6. iii 3.3 Metodología de desarrollo incremental................................................................34 4. Lenguajes de programación ..................................................................................36 4.1. Lenguaje máquina, lenguaje ensamblador y lenguajes de alto nivel. .....36 4.2. Lenguajes de programación orientados a objetos POO............................36 4.3. C#.......................................................................................................................39 4.4. Microsoft .NET..................................................................................................41 4.5. Visual Estudio 2012 .........................................................................................44 5. Redes e internet ......................................................................................................45 5.1. Que es una Red de computadoras ...............................................................45 5.2 Internet ......................................................................................................................45 5.3 Protocolo...................................................................................................................46 5.4 Acceso a internet.....................................................................................................47 6. Registro de mercancías e inventarios..................................................................50 6.1. Sistemas de inventario ....................................................................................50 6.2. Inventario periódico .........................................................................................51 6.3. Inventario perpetuo ..........................................................................................52 6.4. Cuentas por pagar ...........................................................................................53 6.5. Cuentas por cobrar ..........................................................................................54 6.6. Facturación electrónica CFDI.........................................................................55 Fuentes de información.........................................................................................................79 ANEXO A: CUESTIONARIO PARA LA INDENTIFICACION DEL PROBLEMA. ........82 ANEXO B: ENCUESTA PARA LA EVALUACION DEL SISTEMA ................................83 ANEXO D. PROPUESTA DE DESARROLLO ..................................................................85
  • 7. iv ÍNDICE DE TABLAS Tabla 1 .Costos iniciales.......................................................................................................13 Tabla 4.3 Tipos de datos C# ................................................................................................40 Tabla 4.4 Tipos de datos 2 ...................................................................................................40 Tabla 4.5 Tipo de datos caracteres.....................................................................................41 Tabla 4.6 Tipos de datos logicos.........................................................................................41
  • 8. v ÍNDICE DE FIGURAS Imagen 1.1 Ejemplo de sistema ..........................................................................................17 Imagen 2.7.1 Ejemplo datos.................................................................................................30 Imagen 3.2.1 El modelo en cascada...................................................................................33 Imagen 3.3.1 Faces del modelo incremental.....................................................................35 Imagen 4.2.1 Encapsulación de métodos y atributos ......................................................38 Imagen 7. Diagrama contextual nivel 0..............................................................................62 Imagen 8. Diagrama contextual nivel 1..............................................................................63 Imagen 9. Diagrama contextual nivel 2…………………………………………………..64 Imagen 10. Diagrama contextual nivel 2………………………………………………....65 Imagen 11. Diagrama contextual nivel 2………………………………………………..66 Imagen 12. Diagrama contextual nivel 2 del proceso “Manejo de cuentas” ................67 Imagen 13. Interfaz del sistema “Control Total”................................................................68 Imagen 14. Consola de depuración....................................................................................72
  • 9. 6 INTRODUCCIÓN La presente propuesta da respuesta al proyecto “CONTROL TOTAL” donde se usa la metodología de “Modelo incremental” en la que únicamente se procederá a cumplir con las 4 fases que marca la metodología de software, es importante destacar esto puesto que utilizaremos la terminología deI Desarrollo Incremental en este documento, se incluirá el detalle para las fases de Análisis, Diseño, Desarrollo e Implantación del sistema propuesto para el sistema de ventas. El enfoque de desarrollo propuesto constituye una configuración del proceso venta de mercancías de acuerdo a las características del proyecto Desarrollo de un punto de venta para la refaccionaria “ADRICAR” ubicada en San Juan Bautista Tuxtepec Oaxaca. La implementación e instalación de un sistema de ventas en la refaccionaria “ADRICAR” servirá para tener un mejor control en las entradas y salidas de productos disponibles en el inventario de la refaccionaria, para desarrollarlo se tuvo que hacer un estudio donde se determinó que la implementación e instalación de dicho software era viable dentro de la refaccionaria, se capacito a todo el personal para un mejor manejo del sistema donde se mostró cada operación que se puede realizar en cuanto al control de inventario dentro de toda la refaccionaria. Al final de este proyecto comprobamos nuestra hipótesis de trabajo: La implementación de un punto de venta que controle la entrada y salida de mercancías reducirán las pérdidas económicas en la refaccionaria “ADRICAR”.
  • 10. 7 IDENTIFICACIÓN DEL PROBLEMA La Refaccionaria “ADRICAR” ubicada en el boulevard Benito Juárez 597 Colonia María Eugenia de la ciudad de San Juan Bautista Tuxtepec Oaxaca, fue fundada en el año 2005 por el señor “X”. Dicha empresa se dedica a la venta de refacciones y lubricantes para automóviles. Inicialmente fue atendida por el propietario y dos años después se incorporó un empleado de mostrador. Actualmente cuenta con una cartera de 23 proveedores nacionales y 115 clientes dentro de la zona del Papaloapan. Actualmente laboran de lunes a sábado de las nueve horas a las 19 horas. Para que empresa la mercancía ofrecida se venda, la tienda debe tener una buena presentación, no desatendida y contar con propaganda de la mercancía que venden. Además la mercancía se encuentra exhibida y acomodada en anaqueles. La refaccionaria cuenta con un equipo de cómputo para recibir correos y documentos en general, sirve al administrador para enviar y recibir cotizaciones, pagos etc. En lo que respecta al proceso de ventas todo se realiza de forma manual; es en este punto en donde se identificó que en el negocio surgen pérdidas económicas debido a que no se tiene control en la entrada y salida de mercancías así como en el registro de las cuentas por pagar y por cobrar.
  • 11. 8 PLANTEAMIENTO DEL PROBLEMA Actualmente la forma de operar de la refaccionaria es como cualquier empresa en la que se ofrece un producto o mercancía al público en general. El objetivo principal es brindarles atención a los clientes que garantice un servicio de calidad y al mismo tiempo satisfaga sus necesidades y para que esto se cumpla se necesita una buena administración y control de la tienda. El proceso de ventas se realiza de la manera siguiente: Compra a proveedores Antes de poder vender algo primero tiene que existir de forma física en la tienda, en este caso el propietario cumple la función de administrador su función es realizar las compras y pedidos a los diferentes proveedores de acuerdo al faltante de mercancía en anaqueles o por ser un pedido especial, también se encarga de revisar los artículos más demandados. Además el administrador gestiona la cartera de clientes y proveedores en una libreta en donde registra los aumentos y disminuciones. Solicitud Cuando un cliente llega a la tienda pregunta por alguna refacción o lubricante en específico, si no se tiene en existencia se puede manejar como pedido. Venta Las refacciones, bandas, acumuladores, lubricantes y demás productos ofrecidos se clasifican por líneas, también tienen un numero único e irrepetible aparte del código de barras. El vendedor al realizar las ventas en mostrador y expide una nota de venta o factura si el cliente la solicita, cuando es una venta a crédito solo se expide una nota de venta y cuando esta se liquida se puede facturar. Pero también se pueden expedir facturas a crédito. El cliente puede acumular sus notas de venta y facturarlas antes del último día del mes. Dado lo anterior podemos concluir que una de las problemáticas en la oferta de mercancías al público en general, es no tener herramientas que agilicen el proceso de venta, así como los reportes necesarios para llevar un control adecuado de la contabilidad y el inventario.
  • 12. 9 FORMULACION DEL PROBLEMA La refaccionaria “ADRICAR” ubica en el municipio de San Juan Bautista Tuxtepec Oaxaca, se dedica a la venta de refacciones para automóviles. Se detectó que al realizar el registro de sus operaciones de compra y venta de forma manual y en ocasiones no contar con registro alguno; ocasiona pérdidas económicas en la empresa. Expuesto lo anterior se necesita controlar la entrada y salida de mercancías de tal forma que se tenga un control riguroso del inventario de mercancías existente.
  • 13. 10 OBJETIVO GENERAL Diseñar un punto de venta para la refaccionaria “ADRICAR” en el cual se registre la compra y venta de mercancías con el fin de tener un control riguroso sobre el inventario de mercancías. OBJETIVOS ESPECÍFICOS Identificar los requisitos del sistema. Estimar el costo de desarrollo del sistema. Modelar el sistema en UML orientado a objetos. Elegir el sistema de inventarios a utilizar. Diseñar una base de datos física y lógica. Programar el sistema en el lenguaje de programación C# Diseñar formularios de control de pedidos, entradas y salidas de mercancía. Construir un primer incremento. Evaluar y realizar incrementos hasta que el producto cumpla todos los requisitos.
  • 14. 11 JUSTIFICACIÓN La solución que se presenta en este proyecto es desarrollar una herramienta para administrar y controlar las operaciones de venta de las mercancías; con afectación a una base de datos que controla cuentas, inventarios y estadísticas. Impacto Social: Un sistema de control de inventarios proporciona información rápida y oportuna .Al automatizar el proceso de venta, permitirá reducir el trabajo manual al empleado de mostrador y al propietario, así también se tendrá un mejor trato con los clientes y proveedores en el manejo de sus cuentas. Impacto tecnológico: El proyecto a desarrollar se realizara por la necesidad que tiene la refaccionaria ya que no cuenta con un sistema de control de inventario, utilizando para ello la metodología de desarrollo incremental junto con el paradigma orientado a objetos. Impacto económico Un sistema de seguimiento y control de inventarios de mercancías, permitirá que la refaccionaria optimice sus principales tareas, mejorando el tiempo de servicio al cliente; así también ayudara a reducir perdidas ya que se podrá comparar el inventario en existencia física con la registrada. Impacto ambiental Cuando los equipos de cómputo se desechan causan afecciones al medio ambiente sin embargo mediante el uso del reciclado se puede disminuir el impacto negativo, además la utilización de la tecnología en el comercio en los últimos años se ha convertido en una necesidad.
  • 15. 12 ESTUDIO DE VIABILIDAD Viabilidad técnica Actualmente, la empresa cuenta con una computadora PC con las siguientes características. Arquitectura del CPU: X86 Intel Celeron 2.6 GHZ. Gráficos: Integrados Intel 128 MB Sistema Operativo: Windows Seven Basic Capacidad de almacenamiento: 120 GB Memoria RAM: 2GB Conectividad: puerto UTP, VGA, USB 2.0 , Tarjetas de Red Ethernet y Wireless Monitor LCD 18 Pulgadas Este equipo de cómputo cumple los requisitos mínimos para el sistema. Adicionalmente se necesitara instalar Una impresora de notas de venta de 75 mm (matriz o térmica) interfaz USB Un lector de código de barras de largo alcance interfaz USB Un cajón de dinero En su caso una impresora convencional para facturas tamaño carta. Una unidad de almacenamiento externo para futuros respaldos de la información Con respecto al entorno para el sistema se opta por .NET Framework el cual se ejecuta en una máquina virtual, un software que maneja la ejecución de programas independiente del sistema operativo. Con una perspectiva a futuro los sistemas operativos seguirán actualizándose, lo cual dejara inutilizable el sistema si se diseña específicamente para un solo sistema operativo. El entorno .NET Framework nos proporciona ventajas para el cambio de sistema operativo y permite un enfoque hacia la nube informática.
  • 16. 13 Viabilidad Económica Costos iniciales Para la realización del presente proyecto serán necesarias las siguientes personas: Jefe de proyecto, analista, diseñador, dos programadores y un documentador Este proyecto es propuesto por alumnos del Instituto Tecnológico de Tuxtepec para poner en práctica los conocimientos adquiridos de la carrera Ingeniería en Sistemas Computacionales, por lo que en la duración del proyecto ningún integrante recibirá retribución económica alguna. Mas sin embargo se necesita un 50% del costo del sistema antes de poder iniciarlo. COSTOS INICIALES TOTAL DESARROLLO Análisis 1,000 Diseño y Desarrollo 15,000 HARDWARE Impresora térmica 2,500 Lector de código de barras 1,600 Cajón de dinero 920 INSTALACIONES 1,000 Total de Costos Iniciales COSTOS DE OPERACIÓN RECURSOS HUMANOS Capacitación y adiestramiento 1 semana 5,000 Total de Costos de operación TOTAL DE COSTOS (Pesos MN) 27,020.00 Tabla 1 .Costos iniciales
  • 17. 14 Beneficios directos: Debido al mejor manejo del flujo de efectivo, se evitara el robo de efectivo por parte de los empleados. Beneficios indirectos: Mejor distribución del trabajo. Mayor atención y mejor servicio al cliente. Mejor control de cuentas e intereses por cobrar.
  • 18. 15 Viabilidad Operativa Con la implementación del punto de venta, se reducirá el trabajo manual para los empleados y para el administrador. Con la reducción significativa del tiempo de espera se ofrecerá un mejor servicio a los clientes y proveedores. Para el buen funcionamiento del punto de venta primero se deberá realizar un inventario general y minucioso de todas las existencias. Además es necesario tener personal con conocimientos generales de computación para poder operar el punto de venta. En términos generales se espera cubrir los siguientes requisitos:  Control total sobre la cartera de clientes  Manejo correcto sobre la cartera de proveedores  Realización rápida y optima del proceso de venta  Control sobre la existencia de productos  Identificación rápida de operaciones indebidas.  Mejor manejo en el flujo de efectivo.  Oportunidad de atender a un volumen mayor de clientes gracias a la reducción del cuello de botella existente.  Generación de reportes específicos y personalizados para el departamento de contabilidad en cualquier momento que se requieran.
  • 19. 16 HIPÓTESIS. Hipótesis de trabajo. La implementación de un punto de venta que controle la entrada y salida de mercancías reducirán las pérdidas económicas en la refaccionaria “ADRICAR”. Hipótesis Nula La implementación de un punto de venta que controle la entrada y salida de mercancías no reducirán las pérdidas económicas en la refaccionaria “ADRICAR”. Identificación de las variables Variable dependiente -> Pérdidas económicas Variable independiente -> Punto de venta Definición conceptual de las variables Pérdidas económicas: En economía se refiere a un beneficio negativo, disminución de la riqueza o patrimonio de la empresa. Se entiende por pérdidas económicas cuando los ingresos son menores a los egresos de la empresa. Punto de venta: En este contexto un punto de venta es un conjunto de programas informáticos para el registro de las operaciones de compra y venta de un negocio en particular. Definición operativa de las variables Pérdidas económicas: Reportes de ingresos mensuales; comparación de ingresos mensuales anteriores a la implementación del sistema. Punto de venta: Utilización del sistema en un determinado periodo de tiempo.
  • 20. 17 MARCO TEORICO 1. Sistemas de información 1.1. Dato, información y sistema. En ocasiones los términos dato e información se utilizan como sinónimos, lo cual es un error. Dato puede ser un número, una palabra, una imagen. En el ámbito cotidiano se utiliza en plural “datos”, los cuales son la materia prima para la producción de información. Información, por su parte, son datos que dentro de un contexto dado tienen un significado para alguien. Finalmente sistema es el mecanismo por el cual se genera la información. (MCGRAW-HILL) Imagen 1.1 Ejemplo de sistema
  • 21. 18 1.2. Sistema de información Un sistema de información es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio. En un sentido amplio, un sistema de información no necesariamente incluye equipo electrónico (hardware).Sin embargo, en la práctica se utiliza como sinónimo de “sistema de información computarizado”. (MCGRAW-HILL) 1.3. Componentes del sistema de información Los componentes de un sistema de información son de naturaleza diversa y normalmente incluyen:  El equipo Computacional, es decir, el hardware necesario para que el sistema de información pueda operar. Los constituyen las computadoras, y el equipo periférico que pueda conectarse a ellas.  El recurso humano que interactúa con el sistema de información, el cual está formado por las personas que utilizan el sistema, alimentándolo con datos o utilizando los resultados que genere.  Los datos o información fuente que son introducidos en el sistema, son todas las entradas que este necesita para genera como resultado la información que se desea.  Los programas que son ejecutados por la computadora y producen diferentes tipos de resultados. Los programas son la parte del software del sistema de información que hará que los datos de entrada introducidos sean procesados correctamente y generen los resultados que se esperan.  Las telecomunicaciones que son básicamente “hardware” y “software”, facilitan la transmisión de texto, datos, imágenes y voz en forma electrónica.  Procedimientos que incluyen las políticas y reglas de operación, tanto en la parte funcional del proceso de negocio, como los mecanismos para hacer trabajar una aplicación en la computadora.
  • 22. 19 1.4. Tipos y usos de sistemas de información Los sistemas de información se desarrollan con diversos propósitos, según las necesidades de la empresa. A continuación se muestra la diversidad de sistemas de información que podrían desarrollar los analistas. (E. Kendall & E. Kendall, 2005, págs. 2-4) Sistemas de procesamiento de transacciones Los sistemas de procesamiento de transacciones (TPS, Transaction Processing Systems) son sistemas de información computarizada creados para procesar grandes cantidades de datos relacionadas con transacciones rutinarias de negocios, como las nóminas y los inventarios. Un TPS elimina el fastidio que representa la realización de transacciones operativas necesarias y reduce el tiempo que una vez fue requerido para llevarlas a cabo de manera manual, aunque los usuarios aún tienen que capturar los datos en los sistemas computarizados. Los sistemas de procesamiento de transacciones expanden los límites de la organización dado que le permiten interactuar con entornos externos. Es importante para las operaciones cotidianas de un negocio, que estos sistemas funcionen sin ningún tipo de interrupción, puesto que los administradores recurren a los datos producidos por los TPS con el propósito de obtener información actualizada sobre el funcionamiento de sus empresas. Sistemas de automatización de la oficina y sistemas de trabajo del conocimiento Existen dos clases de sistemas en el nivel del conocimiento de una organización. Los sistemas de automatización de la oficina (OAS, Office AutomationSystems) apoyan a los trabajadores de dato, quienes por lo general no generan conocimientos nuevos, sino más bien analizan la información con el propósito de transformar los datos o manipularlos de alguna manera antes de compartirlos o, en su caso, distribuirlos formalmente con el resto de la organización y en ocasiones más allá de ésta. Entre
  • 23. 20 los componentes más comunes de un OAS están el procesamiento de texto, las hojas de cálculo, la autoedición, la calendarización electrónica y las comunicaciones mediante correo de voz, correo electrónico y videoconferencia. Los sistemas de trabajo del conocimiento (KWS, KnowledgeWorkSystems) sirven de apoyo a los trabajadores profesionales, como los científicos, ingenieros y médicos, en sus esfuerzos de creación de nuevo conocimiento y dan a éstos la posibilidad de compartirlo con sus organizaciones o con la sociedad. Sistemas de información gerencial Los sistemas de información gerencial (MIS, Management InformationSystems) no reemplazan a los sistemas de procesamiento de transacciones, más bien, incluyen el procesamiento de transacciones. Los MIS son sistemas de información computarizados cuyo propósito es contribuir a la correcta interacción entre los usuarios y las computadoras. Debido a que requieren que los usuarios, el software (los programas de cómputo) y el hardware (las computadoras, impresoras, etc.), funcionen de manera coordinada, los sistemas de información gerencial dan apoyo a un espectro de tareas organizacionales mucho más amplio que los sistemas de procesamiento de transacciones, como el análisis y la toma de decisiones. Para acceder a la información, los usuarios de un sistema de información gerencias comparten una base de datos común. Ésta almacena datos y modelos que ayudan al usuario a interpretar y aplicar los datos. Los sistemas de información gerencial producen información que se emplea en la toma de decisiones. Un sistema de información gerencial también puede contribuir a unificar algunas de las funciones de información computarizadas de una empresa, a pesar de que no existe como una estructura individual en ninguna parte de ésta. Sistema de apoyo a la toma de decisiones Los sistemas de apoyo a la toma de decisiones (DSS, DecisionSupportSystems) constituyen una clase de alto nivel de sistemas de información computarizada. Los
  • 24. 21 DSS coinciden con los sistemas de información gerencial en que ambos dependen de una base de datos para abastecerse de datos. Sin embargo, difieren en que el DSS pone énfasis en el apoyo a la toma de decisiones en todas sus fases, aunque la decisión definitiva es responsabilidad exclusiva del encargado de tomarla. Los sistemas de apoyo a la toma de decisiones se ajustan más al gusto de la persona o grupo que los utiliza que a los sistemas de información gerencial tradicionales. En ocasiones se hace referencia a ellos como sistemas que se enfocan en la inteligencia de negocios. Sistemas expertos e inteligencia artificial La inteligencia artificial (AI, Artificial Intelligence) se puede considerar como un campo general para los sistemas expertos. La motivación principal de la AI ha sido desarrollar máquinas que tengan un comportamiento inteligente. Dos de las líneas de investigación de la AI son la comprensión del lenguaje natural y el análisis de la capacidad para razonar un problema hacia su conclusión lógica. Los sistemas expertos utilizan las técnicas de razonamiento de la AI para solucionar problemas que les plantean los usuarios de negocios (y de otras áreas). Los sistemas expertos conforman una clase especial de sistema de información que se ha puesto a disposición de usuarios de negocios gracias a la amplia disponibilidad de hardware y software como computadoras personales (PCs) y generadores de sistemas expertos. Un sistema experto (también conocido como sistema basado en el conocimiento) captura y utiliza el conocimiento de un experto para solucionar un problema específico en una organización. Los componentes básicos de un sistema experto son la base de conocimiento, un motor de interferencia que conecta al usuario con el sistema mediante el procesamiento de consultas realizadas con lenguajes como SQL (StructuredQueryLanguaje, Lenguaje de consultas estructurado) y la interfaz de usuario. Profesionales conocidos como ingenieros de conocimiento capturan la pericia de los expertos, construyen un sistema de cómputo que contiene este conocimiento experto y lo implementan. Es muy factible que la construcción e
  • 25. 22 implementación de sistemas expertos se constituya en el trabajo futuro de muchos analistas de sistemas. Sistema de apoyo a la toma de decisiones en grupo y sistemas de trabajo colaborativo por computadora Cuando los grupos requieren trabajar en conjunto para tomar decisiones semiestructuradas o no estructuradas, un sistema de apoyo a la toma de decisiones en grupo (GDSS, GroupDecisionSupportSystems) podría ser la solución. Este tipo de sistemas, que se utiliza en salones especiales equipados con diversas configuraciones, faculta a los miembros del grupo a interactuar con apoyo electrónico -casi siempre software especializado- y la asistencia de facilitador especial. Los sistemas de apoyo a la toma de decisiones en grupo tienen el propósito de unir a un grupo en búsqueda de la solución a un problema con la ayuda de diversas herramientas como los sondeos, los cuestionarios, la lluvia de ideas y la creación de escenarios. En ocasiones se hace referencia a los GDSS con el termino más general sistemas de trabajo colaborativo apoyadas por computadora (CSCWS, Computer- SupportedCollaborativeWorkSystems), que pueden contener el respaldo de un tipo de software denominado groupware para la colaboración en equipo a través de computadoras conectadas en red. Sistema de apoyo a ejecutivos Los sistemas de apoyo a ejecutivos (ESS, ExecutiveSupportSystems) ayudan a estos últimos a organizar sus actividades relacionadas con el entorno externo mediante herramientas gráficas y de comunicaciones, que por lo general se encuentran en salas de juntas o en oficinas corporativas personales. A pesar de que los ESS dependen de la información producida por los TPS y los MIS, ayudan a los usuarios a resolver problemas de toma de decisiones no estructuradas, que no tienen una aplicación específica, mediante la creación de un entorno que contribuye a pesar en problemas estratégicos de manera bien informada. Los ESS amplían y
  • 26. 23 apoyan las capacidades de los ejecutivos al darles la posibilidad de comprender sus entornos. 2. Base de datos 2.1. Que es una base de datos Los sistemas de bases de datos se diseñan para gestionar grandes cantidades de información. La gestión de los datos implica tanto la definición de estructuras para almacenar la información como la provisión de mecanismos para la manipulación de la información. Además, los sistemas de bases de datos deben proporcionar la fiabilidad de la información almacenada, a pesar de las caídas del sistema o los intentos de acceso sin autorización. Si los datos van a ser compartidos entre diversos usuarios, el sistema debe evitar posibles resultados anómalos. Dado que la información es tan importante en la mayoría de las organizaciones, los científicos informáticos han desarrollado un amplio conjunto de conceptos y técnicas para la gestión de los datos. Un sistema de bases de datos es una colección de archivos interrelacionados y un conjunto de programas que permitan a los usuarios acceder y modificar estos archivos. Uno de los propósitos principales de un sistema de bases de datos es proporcionar a los usuarios una visión abstracta de los datos. Es decir, el sistema esconde ciertos detalles de cómo se almacenan y mantienen los datos. (SILBERSCHATZ & F. KORTH, 2002) 2.2. Tipos de base de datos Bases de datos orientadas a objetos Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Bases de datos documentales
  • 27. 24 Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesaurus es un sistema de índices optimizado para este tipo de bases de datos. Base de datos deductivas Un sistema de base de datos deductivas, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. También las bases de datos deductivas son llamadas base de datos lógica, a raíz de que se basa en lógica matemática. Gestión de bases de datos distribuida La base de datos está almacenada en varias computadoras conectadas en red. Surgen debido a la existencia física de organismos descentralizados. Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así a distintas universidades, sucursales de tiendas. (NIEVES) 2.3. Normalización de las bases de datos La normalización es el proceso mediante el cual se transforman datos complejos a un conjunto de estructuras de datos más pequeñas, que además de ser más simples y más estables, son más fáciles de mantener. También se puede entender la normalización como una serie de reglas que sirven para ayudar a los diseñadores de bases de datos a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en la que le antecede. La normalización se adoptó porque el viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de la base de datos, era ineficiente y conducía a errores de lógica cuando se trataban de manipular los datos. Existen básicamente tres niveles de normalización: Primera Forma Normal (1NF), Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada una de estas formas tiene sus propias reglas.
  • 28. 25 Cuando una base de datos se conforma a un nivel, se considera normalizada a esa forma de normalización. No siempre es una buena idea tener una base de datos conformada en el nivel más alto de normalización, puede llevar a un nivel de complejidad que pudiera ser evitado si estuviera en un nivel más bajo de normalización. Primera Forma Normal La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y colocarse en tablas separadas. Poner la base de datos en la Primera Forma Normal resuelve el problema de los encabezados de columna múltiples. Muy a menudo, los diseñadores de bases de datos inexpertos harán algo similar a la tabla no normalizada. Una y otra vez, crearán columnas que representen los mismos datos. La normalización ayuda a clarificar la base de datos y a organizarla en partes más pequeñas y más fáciles de entender. En lugar de tener que entender una tabla gigantesca y monolítica que tiene muchos diferentes aspectos, sólo tenemos que entender los objetos pequeños y más tangibles, así como las relaciones que guardan con otros objetos también pequeños. Segunda Forma Normal La regla de la Segunda Forma Normal establece que todas las dependencias parciales se deben eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un término que describe a aquellos datos que no dependen de la llave primaria de la tabla para identificarlos. Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan la mayoría de los problemas de lógica. Podemos insertar un registro sin un exceso de datos en la mayoría de las tablas. Tercera Forma Normal Una tabla está normalizada en esta forma si todas las columnas que no son llave son funcionalmente dependientes por completo de la llave primaria y no hay dependencias transitivas. Comentamos anteriormente que una dependencia
  • 29. 26 transitiva es aquella en la cual existen columnas que no son llave que dependen de otras columnas que tampoco son llave. Cuando las tablas están en la Tercera Forma Normal se previenen errores de lógica cuando se insertan o borran registros. Cada columna en una tabla está identificada de manera única por la llave primaria, y no debe haber datos repetidos. Esto provee un esquema limpio y elegante, que es fácil de trabajar y expandir. (Hispano) 2.4. SGBD Definimos un Sistema Gestor de Bases de Datos o SGBD, también llamado DBMS (Data Base Management System) como una colección de datos relacionados entre sí, estructurados y organizados, y un conjunto de programas que acceden y gestionan esos datos. La colección de esos datos se denomina Base de Datos o BD, (DB DataBase). El SGBD es una aplicación que permite a los usuarios definir, crear y mantener la BD y proporciona un acceso controlado a la misma. Debe prestar los siguientes servicios: • Creación y definición de la BD: especificación de la estructura, el tipo de los datos, las restricciones y relaciones entre ellos mediante lenguajes de definición de datos. Toda esta información se almacena en el diccionario de datos, el SGBD proporcionará mecanismos para la gestión del diccionario de datos. • Manipulación de los datos realizando consultas, inserciones y actualizaciones de los mismos utilizando lenguajes de manipulación de datos. • Acceso controlado a los datos de la BD mediante mecanismos de seguridad de acceso a los usuarios. • Mantener la integridad y consistencia de los datos utilizando mecanismos para evitar que los datos sean perjudicados por cambios no autorizados. • Acceso compartido a la BD, controlando la interacción entre usuarios concurrentes. • Mecanismos de respaldo y recuperación para restablecer la información en caso de fallos en el sistema.(MCGRAW-HILL)
  • 30. 27 2.5. SQL Server Express SQL Server Express, un producto gratuito basado en la tecnología de SQL Server 2005. SQL Server Express - sucesor deMSDE - es un sistema de base de datos gratuito y fácil de usar, basado en la tecnología de SQL Server 2005. Fue diseñado para brindar una plataforma de base de datos que ofrezca gran simpleza de uso, posibilitando una distribución rápida en sus escenarios de uso. Su facilidad de uso empieza con una interfaz gráfica simple y robusta que guía al usuario durante el proceso de instalación SQL Server Express trae también herramientas gratuitas, incluyendo el SQL Server Management Studio Express, una interfaz gráfica usada para la administración; y el SQL Server Configuration Manager. Estas herramientas simplifican las operaciones básicas de administración. El diseño y desarrollo de aplicaciones que utilizan bases de datos son más fáciles con la integración de proyectos de Visual Studio. SQL Server Express utiliza la misma tecnología que otras versiones de SQL Server 2005, lo que posibilita un alto rendimiento y confiabilidad. También es accesible mediante las mismas APIs de acceso a datos como ADO .NET, SQL NativeClient y T-SQL. En la práctica, se diferencia de otras versiones de SQL Server 2005solamente por los siguientes elementos:  Algunas funcionalidades corporativas no están soportadas.  Limitado a un solo procesador.  Limitado a 1 GB de memoria para el buffer pool.  Las bases de datos pueden tener un tamaño máximo de 4 GB SQL Server Express fue desarrollado para tener dos usos distintos como objetivo. El primer uso es como un producto para servidores, especialmente un servidor de bases de datos (por ejemplo, para un sitio Web). El segundo uso es como servidor local de una aplicación cliente local, o como almacenamiento de datos donde la aplicación no depende del acceso a una red local. La facilidad de uso y la simpleza fueron objetivos claves en su diseño.
  • 31. 28 Los tres escenarios principales de uso de SQL Server Express son:  Desarrolladores construyendo aplicaciones basadas en Web.  Empresas de desarrollo de programas que redistribuyen SQL Server Express para almacenamiento de datos locales o en servidor, de bajo costo.  Aficionados que crean aplicaciones cliente/servidor básicas. SQL Server Express proporciona una plataforma de base de datos confiable y fácil de utilizar que cubre bien los escenarios presentados antes. (RIVEIRO, PINHEIRO, & LARRIERA) 2.6. SQL Los sistemas de bases de datos comerciales necesitan un lenguaje de consultas cómodo para el usuario o para el diseñador del software, el lenguaje SQL ha sido hasta la fecha el lenguaje comercial de mayor influencia con muchas características para la manipulación de los datos. Originalmente, SQL(StructuredQueryLanguage, Lenguaje de Consultas Estructurado) fue desarrollado en IBM Research a principios de los años setenta; fue implementado por primera vez a gran escala en un prototipo de IBM llamado System, y posteriormente en numerosos productos comerciales de IBM y de muchos otros fabricantes. El nombre oficial es Estándar Internacional del Lenguaje de Base de Datos SQL (1992).(C.J., 2002) El SQL agrupa tres tipos de sentencias con objetivos particulares, en los siguientes lenguajes: Lenguaje de Definición de Datos (DDL, Data DefinitonLanguage) Lenguajede Manipulación de Datos (DML, Data Management Language) Lenguajede Control de Datos (DCL, Data Control Language) A continuación se describen cada uno de los lenguajes:
  • 32. 29 Lenguaje de Definición de Datos (DDL, Data DefinitonLanguage) Grupo de sentencias del SQL que soportan la definición y declaración de los objetos de la base de datos. Objetos tales como: la base de datos misma(DATABASE), las tablas(TABLE), las Vistas (VIEW), los índices (INDEX), los procedimientos almacenados (PROCEDURE), los disparadores (TRIGGER),Reglas (RULE), Dominios (Domain) y Valores por defecto (DEFAULT). CREATE, ALTER y DROP. Lenguaje de Manipulación de Datos (DML, Data Management Language) Grupo de sentencias del SQL para manipular los datos que están almacenados en las bases de datos, a nivel de filas (tuplas) y/o columnas (atributos).Ya sea que se requiera que los datos sean modificados, eliminados, consultados o que se agregaren nuevas filas a las tablasde las basede datos. INSERT, UPDATE, DELETE y SELECT Lenguaje de Control de Datos (DCL, Data Control Language) Grupo de sentencias delSQLparacontrolar las funciones de administración que realiza el DBMS, tales como laatomicidad y seguridad. COMMIT TRANSACTION, ROLLBACK TRANSACTION, GRANT REVOKE.(GARCIA E)
  • 33. 30 2.7. LINQ LanguageIntegratedQuery (LINQ) es una innovación introducida en Visual Studio 2008 y .NET Framework versión 3.5 que elimina la distancia que separa el mundo de los objetos y el mundo de los datos. En el pasado, este tipo de trabajo requería escribir una gran cantidad de código cíclico, y adicional procesamiento como un arreglo o grupo de objetos que requerían incluso más código, en ocasiones mesclado con un lenguaje de consultas diferente como SQL típicamente encontrado en bases de datos relacionales. LINQ nos libera de tener que escribir código extra cíclico para filtrar y ordenar. Y nos permite concentrarnos en los objetos importantes del programa. (WATSON, VIBE HAMMER, D. REID, & Kemper, 2012) Las consultas se escriben para colecciones de objetos fuertemente tipadas, utilizando palabras clave del lenguaje y operadores con los que se está familiarizado. La ilustración siguiente muestra una consulta LINQ parcialmente completada en una base de datos SQL Server en C#, con comprobación de tipos completa y compatibilidad con IntelliSense. Imagen 2.7.1 Ejemplo datos En Visual Studio se pueden escribir consultas LINQ en Visual Basic o en C# con bases de datos SQL Server, documentos XML, conjuntos de datos ADO.NET y
  • 34. 31 cualquier colección de objetos que admita IEnumerable o la interfaz genérica IEnumerable<T>. También se ha previsto la compatibilidad de LINQ con ADO.NET Entity Framework, y otros fabricantes se encuentran escribiendo proveedores LINQ para muchos servicios Web y otras implementaciones de bases de datos. Puede utilizar consultas LINQ en proyectos nuevos o junto a consultas que no son LINQ en proyectos existentes. El único requisito es que el proyecto esté orientado a .NET Framework 3.5 o posterior. (MICROSOFT)
  • 35. 32 3. Metodología del proceso de software Un proceso de software es un conjunto de actividades que conducen a la creación de un producto de software. Estas actividades pueden consistir en el desarrollo de software desde cero en un lenguaje de programación estándar como java o C. Sin embargo, cada vez, mas, se desarrolla nuevo software ampliando y modificando los sistemas existentes y configurando e integrando software comercial o componentes del sistema. (SOMMERVILLE, 2005, pág. 60) 3.1 Definición de metodología Una metodología es un conjunto integrado de técnicas y métodos que permite abordar de forma homogénea y abierta cada una de las actividades del ciclo de vida de un proyecto de desarrollo. Es un proceso de software detallado y completo. Las metodologías se basan en una combinación de los modelos de proceso genéricos (cascada, incremental…). Definen artefactos, roles y actividades, junto con prácticas y técnicas recomendadas. La metodología para el desarrollo de software en un modo sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo con altas posibilidades de éxito. Una metodología para el desarrollo de software comprende los procesos a seguir sistemáticamente para idear, implementar y mantener un producto software desde que surge la necesidad del producto hasta que cumplimos el objetivo por el cual fue creado.
  • 36. 33 3.2 Metodología clásica o de cascada El modelo de cascada original se desarrolló entre las décadas de los setenta, y se define como una secuencia de actividades, donde la estrategia principal es seguir el progreso del desarrollo de software hacia puntos de revisión bien definidos mediante entregas calendarizadas. (WEITZENFELD, 2005, pág. 50) El modelo en cascada, algunas veces llamado ciclo de vida clásico, sugiere un enfoque sistemático, secuencial hacia el desarrollo del software, que se (indica con la especificación de requerimientos del cliente y que continúa con la planeación, el modelado, la construcción y el despliegue para culminar en el soporte del software terminado. (PRESSMAN, 2006, pág. 50) El modelo en cascada es el paradigma más antiguo para la ingeniería del software. Sin embargo, en las décadas pasadas, las críticas a este modelo de proceso han ocasionado que aun sus más fervientes practicantes hayan cuestionado su eficiencia. (PRESSMAN, 2006, págs. 50-51) Imagen 3.2.1 El modelo en cascada En la actualidad, el trabajo del software está acelerado y sujeto a una cadena infinita de cambios (de características, funciones y contenido de información). Con frecuencia, el modelo en cascada no es apropiado para dicho trabajo. Sin embargo, puede servir como un modelo proceso útil en situaciones donde los requerimientos están fijos y donde el trabajo se realiza, hasta su conclusión, de una manera lineal. (PRESSMAN, 2006, pág. 51)
  • 37. 34 3.3 Metodología de desarrollo incremental El modelo incremental combina elementos del modelo lineal secuencial (aplicados repetidamente) con la filosofía interactiva de construcción de prototipos. El modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un «incremento» del software .Por ejemplo, el software de tratamiento de textos desarrollado con el paradigma incremental podría extraer funciones de gestión de archivos básicos y de producción de documentos en el primer incremento; funciones de edición más sofisticadas y de producción de documentos en el segundo incremento; corrección ortográfica y gramatical en el tercero; y una función avanzada de esquema de página en el cuarto. Se debería tener en cuenta que el flujo del proceso de cualquier incremento puede incorporar el paradigma de construcción de prototipos. Cuando se utiliza un modelo incremental, el primer incremento a menudo es un producto esencial. Es decir, se afrontan requisitos básicos, pero muchas funciones suplementarias (algunas conocidas, otras no) quedan sin extraer. El cliente utiliza el producto central (o sufre la revisión detallada). Como un resultado de utilización y/o de evaluación, se desarrolla un plan para el incremento siguiente. El plan afronta la modificación del producto central a fin de cumplir mejor las necesidades del cliente y la entrega de funciones, y características adicionales. Este proceso se repite siguiendo la entrega de cada incremento, hasta que se elabore el producto completo. Los primeros incrementos son versiones «incompletas» del producto final, pero proporcionan al usuario la funcionalidad que precisa y también una plataforma para la evaluación. El desarrollo incremental es particularmente útil cuando la dotación de personal no está disponible para una implementación completa en la fecha límite que se haya establecido para el proyecto. Los primeros incrementos se pueden implementar con menos personas.
  • 38. 35 Imagen 3.3.1 Faces del modelo incremental
  • 39. 36 4. Lenguajes de programación 4.1. Lenguaje máquina, lenguaje ensamblador y lenguajes de alto nivel. 4.2. Lenguajes de programación orientados a objetos POO La orientación a objetos promete mejoras de amplio alcance en la forma de diseño, desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software:(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 2)  La falta de portabilidad del código y su escasa reusabilidad.  Código que es difícil de modificar.  Ciclos de desarrollo largos.  Técnicas de codificación no intuitivas. Un lenguaje orientado a objetos ataca estos problemas. Tiene tres características básicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 2) La barrera más difícil de sortear es usualmente la herencia. El concepto de programación orientada a objetos (POO) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 3) Dado que la POO se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una característica fundamental del mismo. No debemos confundir que esté basado en objetos con que sea orientado a objetos: para que sea orientado a objetos al margen
  • 40. 37 que esté basado en objetos, necesita tener clases y relaciones de herencia entre ellas.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 3) Hemos utilizado con mucha frecuencia la palabra paradigma, que convendría formalizar de alguna forma: Se entiende paradigma como un conjunto de teorías, estándares y métodos que juntos representan una forma de organizar el conocimiento, esto es, una forma de ver el mundo. La visión OO nos obliga a reconsiderar nuestras ideas acerca de la computación, de lo que significa ponerla en práctica y de cómo debería estructurarse la información en los sistemas de información.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 3) Los objetos El elemento fundamental de la POO es, como su nombre indica, el objeto. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización. En este caso las estructuras de datos y los algoritmos usados para manipularlas están encapsulados en una idea común llamada objeto.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 3) Esta definición especifica dos propiedades características de los objetos:  En primer lugar un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bien estructurados.  En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerarquice o de otro tipo. Para ilustrar mejor las diferencias entre la programación procedural clásica y la POO vamos a plantear, de forma intuitiva, un pequeño ejemplo escrito en C y después planteado en Java. Se trata de tener en un array una serie de figuras geométricas que tendrán lógicamente los subprogramas encargados de leer los datos, dibujarlos,
  • 41. 38 etc.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 3) Como vemos, el hecho de añadir un nuevo tipo de objeto no implica ninguna modificación en la estructura. Lógicamente implicar ́a añadir la nueva figura al código, pero si se ha sido cuidadoso a la hora de encapsular los datos propios (atributos) y los subprogramas encargados de manejarlos (métodos) ser ́a bastante m ́as sencillo mantener y trabajar con el código. En la figura 5.1.1 se muestra un esquema de cómo se ven los objetos desde el punto de vista que acabamos de plantear.(LLOBET, Azpitarte, DEVESA, Llinares, RUÍZ, Fuertes, TORRES, Goterris, & MIEDES, de Elías, 2009, pág. 3) Imagen 4.2.1 Encapsulación de métodos y atributos
  • 42. 39 4.3. C# Visual C# es un lenguaje de programación moderno, de alto nivel, de múltiples paradigmas y de uso general para crear aplicaciones con Visual Studio y .NET Framework. C# se diseñó para que fuera simple, poderoso, con seguridad de tipos y orientado a objetos. Las múltiples innovaciones de C# permiten un desarrollo rápido de aplicaciones con la expresividad y elegancia de los lenguajes al estilo C. El nombre C Sharp fue inspirado por la notación musical, donde '#' (sostenido, en inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta, sugiriendo que C# es superior a C/C++. Además, el signo '#' se compone de cuatro signos '+' pegados.1 Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C# es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma. Ya existe un compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para distintas plataformas como Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux. C# contiene dos categorías generales de tipos de datos integrados: tipos de valor y tipos de referencia. El término tipo de valor indica que esos tipos contienen directamente sus valores. Tipos para definir números enteros: Tipo de datos de enteros Tipo Equivalente BCL Tamaño Rango Significado byte System.Byte 8-bit (1- byte) 0 a 255 Entero sin signo sbyte System.SByte 8-bit (1- byte) -128 a 127 Entero con signo short System.Int16 16-bit (2- byte) -32.768 a 32.767 Entero corto con signo ushort System.UInt16 16-bit (2- byte) 0 a 65.535 Entero corto sin signo int System.Int32 32-bit (4- -2.147.483.648 a Entero medio con signo
  • 43. 40 byte) 2.147.483.647 uint System.UInt32 32-bit (4- byte) 0 a 4.294.967.295 Entero medio sin signo long System.Int64 64-bit (8- byte) - 9.223.372.036.854. 775.808 a 9.223.372.036.854. 775.807 Entero largo con signo ulong System.UInt64 64-bit (8- byte) 0 a 18.446.744.073.709 .551.615 Entero largo sin signo Tabla 4.3 Tipos de datos C# Los tipos de coma flotante pueden representar números con componentes fraccionales. Existen dos clases de tipos de coma flotante: float y double. El tipo double es el más utilizado porque muchas funciones matemáticas de la biblioteca de clases de C# usan valores double. Quizá, el tipo de coma flotante más interesante de C# es decimal, dirigido al uso de cálculos monetarios. La aritmética de coma flotante normal está sujeta a una variedad de errores de redondeo cuando se aplica a valores decimales. El tipo decimal elimina estos errores y puede representar hasta 28 lugares decimales. Tipo de datos de coma flotante Tipo Equivalente BCL Tamaño Rango Significado float System.Single 32-bit (4-byte) ±1.401298E−45 a ±3.402823E+38 Coma flotante corto double System.Double 64-bit (8-byte) ±4.94065645841246E−324 a ±1.79769313486232E+308 Coma flotante largo decima l System.Decima l 128-bit (16- byte) −7.9228162514264337593543 950335 a +7.9228162514264337593543 950335 Coma flotante monetario Tabla 4.4 Tipos de datos 2
  • 44. 41 Los caracteres en C# no tienen un tamaño de 8 bits como en otros muchos lenguajes de programación, sino que usa un tamaño de 16 bits llamado Unicode al cual se le llama char. No existen conversiones automáticas de tipo entero a char. Tipo de datos de caracteres Tipo Equivalente BCL Tamaño Rango Significado char System.Char 16-bit (2-byte) 'u0000' a 'uFFFF' Carácter unicode Tabla 4.5 Tipo de datos caracteres Para los tipos de datos lógicos no existen conversiones automáticas de tipo entero a bool. Tipo de datos lógicos Tipo Equivalente BCL Tamaño Rango Significado bool System.Boolean 8-bit (1-byte) true o false Verdadero o falso Tabla 4.6 Tipos de datos logicos 4.4. Microsoft .NET .NET es un framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde el sistema operativo hasta las herramientas de mercado. .NET podría considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Oracle Corporation y a los diversos framework de desarrollo web basados en PHP. Su propuesta es ofrecer una manera rápida y económica, a la vez que segura y robusta, de desarrollar aplicaciones –o como la misma plataforma las denomina, soluciones– permitiendo una integración más rápida y ágil entre empresas y un acceso más simple y universal a todo tipo de información desde cualquier tipo de dispositivo.
  • 45. 42 El CLR es el verdadero núcleo del framework de .NET, entorno de ejecución en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de servicios del sistema operativo (W2k y W2003). Permite integrar proyectos en distintos lenguajes soportados por la plataforma .Net, como C++, Visual Basic, C#, entre otros. La herramienta de desarrollo compila el código fuente de cualquiera de los lenguajes soportados por .NET en un código intermedio, el CIL (CommonIntermediateLanguage) antes conocido como MSIL (Microsoft IntermediateLanguage), similar al BYTECODE de Java. Para generarlo, el compilador se basa en la especificación CLS (CommonLanguageSpecification) que determina las reglas necesarias para crear el código MSIL compatible con el CLR. Para ejecutarse se necesita un segundo paso, un compilador JIT (Just-In-Time) es el que genera el código máquina real que se ejecuta en la plataforma del cliente. De esta forma se consigue con .NET independencia de la plataforma de hardware. La compilación JIT la realiza el CLR a medida que el programa invoca métodos. El código ejecutable obtenido se almacena en la memoria caché del ordenador, siendo recompilado de nuevo sólo en el caso de producirse algún cambio en el código fuente.
  • 46. 43 Características Es el encargado de proveer lo que se llama código administrado, es decir, un entorno que provee servicios automáticos al código que se ejecuta. Los servicios son variados: Cargador de clases: permite cargar en memoria las clases. Compilador MSIL a nativo: transforma código intermedio de alto nivel independiente del hardware que lo ejecuta a código de máquina propio del dispositivo que lo ejecuta. Administrador de código: coordina toda la operación de los distintos subsistemas del CommonLanguageRuntime. Recolector de basura: elimina de memoria objetos no utilizados automáticamente. Motor de seguridad: administra la seguridad del código que se ejecuta. Motor de depuración: permite hacer un seguimiento de la ejecución del código aún cuando se utilicen lenguajes distintos. Verificador de tipos: controla que las variables de la aplicación usen el área de memoria que tienen asignado. Administrador de excepciones: maneja los errores que se producen durante la ejecución del código. Soporte de multiproceso (hilos): permite desarrollar aplicaciones que ejecuten código en forma paralela. Empaquetador de COM: coordina la comunicación con los componentes COM para que puedan ser usados por el .NET Framework.
  • 47. 44 Biblioteca de Clases Base que incluye soporte para muchas funcionalidades comunes en las aplicaciones. 4.5. Visual Estudio 2012 Visual Studio es una colección completa de herramientas y servicios que le permitirá crear una gran variedad de aplicaciones, tanto para plataformas de Microsoft como para otras plataformas. Visual Studio conecta también todos los proyectos, equipos y partes interesadas. Ahora su equipo puede trabajar con gran agilidad desde casi cualquier parte, independientemente de la herramienta de desarrollo, incluidas Eclipse y Xcode. Si va a diseñar aplicaciones .NET críticas, escribir código rápido con C++ AMP o probar y depurar una aplicación HTML/JavaScript conectada a la nube que se ejecute en muchos dispositivos. A partir de la versión 2005 Microsoft ofrece gratuitamente las Express Editions, que son varias ediciones básicas separadas por lenguajes de programación o plataforma enfocadas para novatos y entusiastas. Estas ediciones son iguales al entorno de desarrollo comercial pero sin características avanzadas. Dichas ediciones son: Visual Basic Express Edition Visual C# Express Edition Visual C++ Express Edition Visual J# Express Edition (Desapareció en Visual Studio 2008) Visual Web Developer Express Edition (paraprogramar en ASP.NET) Visual F# (Apareció en Visual Studio 2010, es parecido al J#)* Adicionalmente, Microsoft ha puesto gratuitamente a disposición de todo el mundo una versión reducida de MS SQL Server llamada SQL Server Express Edition cuyas principales limitaciones son que no soporta bases de datos superiores a 10 GB de tamaño, únicamente se ejecuta en un procesador y emplea 1 GB de RAM como máximo, y no cuenta con el Agente de SQL Server.
  • 48. 45 5. Redes e internet 5.1. Que es una Red de computadoras Una red de computadoras, también llamada red de ordenadores, red de comunicaciones de datos o red informática, es un conjunto de equipos informáticos y software conectados entre sí por medio de dispositivos físicos que envían y reciben impulsos eléctricos, ondas electromagnéticas o cualquier otro medio para el transporte de datos, con la finalidad de compartir información, recursos y ofrecer servicios. Como en todo proceso de comunicación se requiere de un emisor, un mensaje, un medio y un receptor. La finalidad principal para la creación de una red de computadoras es compartir los recursos y la información en la distancia, asegurar la confiabilidad y la disponibilidad de la información, aumentar la velocidad de transmisión de los datos y reducir el costo general de estas acciones. Un ejemplo es Internet, la cual es una gran red de millones de computadoras ubicadas en distintos puntos del planeta interconectadas básicamente para compartir información y recursos. La estructura y el modo de funcionamiento de las redes informáticas actuales están definidos en varios estándares, siendo el más importante y extendido de todos ellos el modelo TCP/IP basado en el modelo de referencia OSI. Este último, estructura cada red en siete capas con funciones concretas pero relacionadas entre sí; en TCP/IP se reducen a cuatro capas. Existen multitud de protocolos repartidos por cada capa, los cuales también están regidos por sus respectivos estándares. 5.2 Internet Internet es un conjunto descentralizado de redes de comunicación interconectadas que utilizan la familia de protocolos TCP/IP, lo cual garantiza que las redes físicas heterogéneas que la componen funcionen como una red lógica única, de alcance mundial. Sus orígenes se remontan a 1969, cuando se estableció la primera
  • 49. 46 conexión de computadoras, conocida como Arpanet, entre tres universidades en California y una en Utah, Estados Unidos. Uno de los servicios que más éxito ha tenido en Internet ha sido la World Wide Web (WWW o la Web), a tal punto que es habitual la confusión entre ambos términos. La WWW es un conjunto de protocolos que permite, de forma sencilla, la consulta remota de archivos de hipertexto. Esta fue un desarrollo posterior (1990) y utiliza Internet como medio de transmisión. Existen, por tanto, muchos otros servicios y protocolos en Internet, aparte de la Web: el envío de correo electrónico (SMTP), la transmisión de archivos (FTP y P2P), las conversaciones en línea (IRC), la mensajería instantánea y presencia, la transmisión de contenido y comunicación multimedia —telefonía (VoIP), televisión (IPTV)—, los boletines electrónicos (NNTP), el acceso remoto a otros dispositivos (SSH y Telnet) o los juegos en línea. 5.3 Protocolo Los proveedores de servicios de Internet conectar a los clientes (pensado en el "fondo" de la jerarquía de enrutamiento) a los clientes de otros ISPs. En el "top" de la jerarquía de enrutamiento son una decena de redes de nivel 1, las grandes empresas de telecomunicaciones que intercambiar tráfico directamente "a través" a todas las otras redes de nivel 1 a través de acuerdos de interconexión pendientes de pago. Nivel 2 redes de compra de tránsito a Internet desde otro ISP para llegar a por lo menos algunas partes de la Internet mundial, aunque también pueden participar en la interconexión no remunerado (sobre todo para los socios locales de un tamaño similar). ISP puede utilizar un solo "aguas arriba" proveedor de conectividad, o utilizar multihoming para proporcionar protección contra los problemas con los enlaces individuales. Puntos de intercambio Internet crear conexiones físicas entre múltiples ISPs, a menudo alojados en edificios de propiedad de terceras partes independientes.
  • 50. 47 Los ordenadores y routers utilizan las tablas de enrutamiento para dirigir los paquetes IP entre las máquinas conectadas localmente. Las tablas pueden ser construidas de forma manual o automáticamente a través de DHCP para un equipo individual o un protocolo de enrutamiento para los routers de sí mismos. En un solo homed situaciones, una ruta por defecto por lo general apunta hacia "arriba" hacia un ISP proporciona el transporte. De más alto nivel de los ISP utilizan el Border Gateway Protocol para solucionar rutas de acceso a un determinado rango de direcciones IP a través de las complejas conexiones de la Internet global. Las instituciones académicas, las grandes empresas, gobiernos y otras organizaciones pueden realizar el mismo papel que los ISP, con la participación en el intercambio de tráfico y tránsito de la compra en nombre de sus redes internas de las computadoras individuales. Las redes de investigación tienden a interconectarse en subredes grandes como GEANT, GLORIAD, Internet2, y de investigación nacional del Reino Unido y la red de la educación, Janet. Estos a su vez se construyen alrededor de las redes más pequeñas. No todas las redes de ordenadores están conectadas a Internet. Por ejemplo, algunos clasificados los sitios web de los Estados sólo son accesibles desde redes seguras independientes. 5.4 Acceso a internet Los métodos comunes de acceso a Internet en los hogares incluyen dial-up, banda ancha fija (a través de cable coaxial, cables de fibra óptica o cobre),22 Wi-Fi, televisión vía satélite y teléfonos celulares con tecnología 3G/4G. Los lugares públicos de uso del Internet incluyen bibliotecas y cafés de internet, donde los ordenadores con conexión a Internet están disponibles. También hay puntos de acceso a Internet en muchos lugares públicos, como salas de los aeropuertos y cafeterías, en algunos casos sólo para usos de corta duración. Se utilizan varios términos, como "kiosco de Internet", "terminal de acceso público", y "teléfonos públicos Web". Muchos hoteles ahora también tienen terminales de uso público, las
  • 51. 48 cuales por lo general basados en honorarios. Estos terminales son muy visitados para el uso de varios clientes, como reserva de entradas, depósito bancario, pago en línea, etcWi-Fi ofrece acceso inalámbrico a las redes informáticas, y por lo tanto, puede hacerlo a la propia Internet. Hotspots les reconocen ese derecho incluye Wi-Fi de los cafés, donde los aspirantes a ser los usuarios necesitan para llevar a sus propios dispositivos inalámbricos, tales como un ordenador portátil o PDA. Estos servicios pueden ser gratis para todos, gratuita para los clientes solamente, o de pago. Un punto de acceso no tiene por qué estar limitado a un lugar confinado. Un campus entero o parque, o incluso una ciudad entera puede ser activado.". Los esfuerzos de base han dado lugar a redes inalámbricas comunitarias. Los servicios comerciales de Wi-Fi cubren grandes áreas de la ciudad están en su lugar en Londres, Viena, Toronto, San Francisco, Filadelfia, Chicago y Pittsburgh. El Internet se puede acceder desde lugares tales como un banco del parque. Aparte de Wi-Fi, se han realizado experimentos con propiedad de las redes móviles inalámbricas como Ricochet, varios servicios de alta velocidad de datos a través de redes de telefonía celular, y servicios inalámbricos fijos. De gama alta los teléfonos móviles como teléfonos inteligentes en general, cuentan con acceso a Internet a través de la red telefónica. Navegadores web como Opera están disponibles en estos teléfonos avanzados, que también puede ejecutar una amplia variedad de software de Internet. Más teléfonos móviles con acceso a Internet que los PC, aunque esto no es tan ampliamente utilizado. El proveedor de acceso a Internet y la matriz del protocolo se diferencian de los métodos utilizados para obtener en línea. Un apagón de Internet o interrupción puede ser causada por interrupciones locales de señalización. Las interrupciones de cables de comunicaciones submarinos pueden causar apagones o desaceleraciones a grandes áreas, tales como en la interrupción submarino 2008 por cable. Los países menos desarrollados son más vulnerables debido a un pequeño número de enlaces de alta capacidad. Cables de tierra también son vulnerables, como en 2011, cuando una mujer cavando en busca de chatarra de metal cortado la mayor parte de conectividad para el país de Armenia.
  • 52. 49 Internet apagones que afectan a los países casi todo se puede lograr por los gobiernos como una forma de censura en Internet, como en el bloqueo de Internet en Egipto, en el que aproximadamente el 93% de las redes no tenían acceso en 2011 en un intento por detener la movilización de protestas contra el gobierno.
  • 53. 50 6. Registro de mercancías e inventarios 6.1. Sistemas de inventario Un sistema de inventarios es un conjunto de normas, métodos y procedimientos aplicados de manera sistemática para planificar y controlar los materiales y productos que se emplean en una organización. Este sistema puede ser manual o automatizado. Para el control de los costos, elemento clave de la administración de cualquier empresa, existen sistemas que permiten estimar los costos de las mercancías que son adquiridas y luego procesadas o vendidas. El análisis ABC se realiza con el fin de determinar la importancia de los distintos productos en función de su aporte a las ventas totales de la empresa y a los márgenes brutos de beneficios generados. Para realizar el análisis ABC: El primer paso consiste en ordenarlos, de mayor a menor, de acuerdo con el tanto por ciento que representa respecto al total de las ventas de la empresa. El segundo paso se completa colocando al lado del tanto por ciento sobre las ventas el tanto por ciento que representa cada producto respecto al margen bruto total generado por la venta de todos los productos de la empresa. El tercer paso consiste en separar en tramos o categorías, con el fin de clasificaren productos de alta, media, y baja importancia relativa. Este análisis permite determinar cuáles son los productos realmente importantes en la empresa. Los sistemas de inventarios se enfocan a partir del VALOR del producto, ya que con ello pueden establecer las dimensiones de los pedidos para los productos, periodos de tiempo en cada uno, entre otros.
  • 54. 51 Esto conduce a lo que se conoce como modelos de inventario los cuales se destacan de la siguiente forma: 1.-Modelos deterministas Toma como punto de referencia los datos que supone cada inventario para su pedido, estableciendo así factores como demanda plazo de entrega, precios, costos de almacenamiento, periodos de los pedidos, y todo lo demás referente a las características de cada producto. 2- Modelos probabilísticos Similar al modelo determinista, con la diferencia de que, basándose en datos tales como la distribución de los productos en su entorno determinado, hace PROBABLE ciertos hechos como variación en la demanda y el mercado, stock de seguridad, entre otros.(realizacioninvetariosa, 2013) 6.2. Inventario periódico El sistema de inventarios periódico, como su nombre lo indica, realiza un control cada determinado tiempo o periodo, y para eso es necesario hacer un conteo físico. Para poder determinar con exactitud la cantidad de inventarios disponibles en una fecha determinada. Con la utilización de este sistema, la empresa no puede saber en determinado momento cuantos son sus mercancías, ni cuánto es el costo de los productos vendidos. La empresa solo puede saber tanto el inventario exacto como el costo de venta, en el momento de hacer un conteo físico, lo cual por lo general se hace al final de un periodo, que puedes ser mensual, semestral o anual.
  • 55. 52 Para determinar el costo de las ventas realizadas en un periodo, es preciso realizar lo que llamamos Juego de inventarios que consiste en tomar el inventario inicial, y sumarles las compras, restarle las devoluciones en compras y el inventario final. El resultado es el costo de las ventas del periodo. El sistema de inventarios periódico, al no ejercer un control constante, es un sistema que facilita la pérdida de los inventarios. Solo se pueden hacer seguimientos y verificaciones al final de un periodo cuando se hacen los conteos físicos, lo cual permite o facilita posibles fraudes. El sistema periódico es conocido también como sistema físico, porque se apoya en el conteo físico real del inventario. El sistema periódico es generalmente utilizado para contabilizar los artículos del inventario que tienen un costo unitario bajo.(Gerencie.com, Gerencie.com, 2013) 6.3. Inventario perpetuo El sistema de inventarios permanente, o también llamado perpetuo, permite un control constante de los inventaros, al llevar el registro de cada unidad que ingresa y sale del inventario. Este control se lleva mediante tarjetas llamada Kardex, en donde se lleva el registro de cada unidad, su valor de compra, la fecha de adquisición, el valor de la salida de cada unidad y la fecha en que se retira del inventario. De esta forma, en todo momento se puede conocer el saldo exacto de los inventarios y el valor del costo de venta. Además del control permanente de los inventarios, este sistema permite la determinación del costo al momento de hacer la venta, debido a que en cada salida de un producto, es registra su cantidad y costo. La valuación de los inventarios y la determinación del costo de venta por el sistema permanente, tiene el inconveniente con los valores de las mercancías, puesto que
  • 56. 53 éstas se adquieren en fechas diferentes con precios diferentes, por lo que es imposible tener una homogeneidad en los valores de las mercancías compradas. Para sortear este problema, la valuación de los inventarios se realiza mediante diferentes métodos que buscan determinar el costo de la forma más real, dependiendo del tipo de empresa. En el sistema permanente, las compras de mercancías o Materia prima se contabilizan en un debito a la cuenta de Inventarios (Activo). En la devolución de compras de mercancías, se afecta directamente la cuenta de inventarios, es decir, se contabiliza como un crédito a la respectiva subcuenta de inventarios. Cuando se realiza una venta, esta se contabiliza en la respectiva cuenta de ingresos, y a la vez se contabiliza el costo de venta, puesto que al momento de cada venta, se determina también su costo.(Gerencie.com, Gerencie.com, 2013) 6.4. Cuentas por pagar Las Cuentas por Pagar surgen por operaciones de compra de bienes materiales (Inventarios), servicios recibidos, gastos incurridos y adquisición de activos fijos o contratación de inversiones en proceso. Si son pagaderas a menor de doce meses se registran como Cuentas por Pagar a Corto Plazo y si su vencimiento es a más de doce meses, en Cuentas por Pagar a Largo plazo. Es preciso analizar estos pasivos por cada acreedor y en cada uno de éstos por cada documento de origen (fecha, número del documento e importe) y por cada pago efectuado. También deben analizarse por edades para evitar el pago de moras o indemnizaciones.
  • 57. 54 Las Cuentas por Pagar a Largo Plazo al finalizar cada período económico, deben reclasificarse a Corto Plazo, (las exigibles el año próximo). Las cuentas por pagar son deudas que tiene su empresa por concepto de bienes y servicios que compra a crédito. Llevar un registro de lo que debe y cuándo son los vencimientos le permitirá gozar de una buena situación crediticia y retener su dinero el mayor tiempo posible. En su registro de cuentas por pagar deberá registrar la siguiente información: fecha de la factura, número de factura, monto de la factura, plazos, fecha de pago, importe pagado, saldo (si corresponde) y nombre y dirección del proveedor.(cad.com, 2013) 6.5. Cuentas por cobrar Las cuentas por cobrar registra los aumentos y las disminuciones derivados de la venta de conceptos distintos a mercancías o prestación de servicios, única y exclusivamente a crédito documentado (títulos de crédito, letras de cambio y pagarés) a favor de la empresa y para esto existe programas para llevar a cabo las operaciones. Por lo tanto se dice que esta cuenta presenta el derecho (exigible) que tiene la entidad de exigir a los suscriptores de los títulos de crédito el pago de su adeudo (documentado)derivado de venta de conceptos diferentes de las mercancías o la prestación de servicios a crédito; es decir, presenta un beneficio futuro fundadamente esperado. Las cuentas por cobrar pueden clasificarse como: Corto plazo: Aquellas cuya disponibilidad es inmediata dentro de un plazo no mayor de un año.
  • 58. 55 Largo plazo: Su disponibilidad es a más de un año. Las cuentas por cobrar a corto plazo, deben presentarse en el Estado de Situación Financiera como activo corriente y las cuentas por cobrar a largo plazo deben presentarse fuera del activo corriente. Pueden sub clasificarse de acuerdo a su origen en dos grupos que son: a) A cargo de clientes y b) A cargo de otros deudores.(wikipedia.org, 2013) 6.6. Facturación electrónica CFDI Una factura electrónica, también llamada comprobante fiscal digital, es un documento electrónico que cumple con los requisitos legal y reglamentariamente exigibles a las facturas tradicionales garantizando, entre otras cosas, la autenticidad de su origen y la integridad de su contenido. La factura electrónica es, por tanto, la versión electrónica de las facturas tradicionales en soporte papel y debe ser funcional y legalmente equivalente a estas últimas. Por su propia naturaleza, las facturas electrónicas pueden almacenarse, gestionarse e intercambiarse por medios electrónicos o digitales. Para que la factura electrónica tenga validez debe estar completada con la firma electrónica, que le da validez legal permitiendo eliminar la factura en papel. Una factura es el justificante fiscal de la entrega de un producto o de la provisión de un servicio, que afecta al obligado tributario emisor (el vendedor) y al obligado tributario receptor (el comprador). Tradicionalmente, es un documento en papel, cuyo original debe ser archivado por el receptor de la factura. Habitualmente el emisor de la factura conserva una copia o la matriz en la que se registra su emisión. La factura electrónica es el equivalente digital y evolución lógica de la tradicional factura en papel. A diferencia de esta, se emplean soportes informáticos para su almacenamiento en lugar de un soporte físico como es el papel.
  • 59. 56 La factura electrónica es un tipo de factura que se diferencia de la factura en papel por la forma de gestión informática y el envío mediante un sistema de comunicaciones que conjuntamente permiten garantizar la autenticidad y la integridad del documento electrónico. Una factura electrónica se construye en 2 fases: Se crea la factura tal y como se ha hecho siempre y se almacena en un fichero de datos. Posteriormente se procede a su firma con un certificado digital o electrónico propiedad del emisor que cifra el contenido de factura y añade el sello digital a la misma Al terminar obtenemos una factura que nos garantiza: Que la persona física o jurídica que firmó la factura es quien dice ser (autenticidad) y Que el contenido de la factura no ha sido alterado (integridad).(wikipedia.org, 2013)
  • 60. 57 METODOLOGÍA DE DESARROLLO Enfoque de la investigación. La presente investigación presenta un enfoque “Mixto”, esto porque procede un proceso que recolecta, analiza y vincula datos, tanto cuantitativos y cualitativos en un mismo estudio. Con el enfoque Mixto, se logra una perspectiva más precisa del fenómeno, incrementa la confianza en los resultados obtenidos. Alcance de la investigación El alcance de nuestra investigación es correlacional debido a que tenemos dos variables que se relacionan por causa y efecto, en esta investigación se pretende analizar el efecto que causara la implementación de un sistema de software para el registro de las ventas en la disminución de pérdidas monetarias internas. Este tipo de estudio tendrá como finalidad conocer la relación o grado de asociación que exista entre la variable dependiente “pérdidas económicas” y la variable independiente “punto de venta”. Tipo de investigación El tipo de investigación de acuerdo al propósito es de desarrollo debido a que en este proyecto desarrollaremos un producto de software para dar solución al planteamiento del problema. De acuerdo al planteamiento del problema se necesita un sistema de información que controle la entrada y salida de mercancías de tal forma que se reduzcan las pérdidas económicas por robo de mercancía.
  • 61. 58 Diseño de la investigación El diseño de la investigación será experimental debido a que manipularemos directamente la variable independiente “punto de venta” en esta investigación desarrollaremos de acuerdo a una metodología el software para desarrollar el software para el punto de venta y trataremos de medir el grado con que afecta o modifica a nuestra variable dependiente “pérdidas económicas”. Esto con el objetivo de comprobar nuestra hipótesis la cual es: “La implementación de un punto de venta que controle la entrada y salida de mercancías reducirán las pérdidas económicas en la refaccionaria “ADRICAR”.” Población Nuestra población comprende a las personas que realizan la venta de mercancías en la refaccionaria “ADRICAR” ubicada en el Boulevard Benito Juárez 597 en la colonia María Eugenia de San Juan Bautista Tuxtepec Oaxaca. Muestra Debido a que nuestra población es muy pequeña seleccionaremos al administrador del negocio y a un empleado como muestra. Técnicas de recolección de datos De acuerdo con lo descrito anteriormente, él enfoque mixto es el utilizado en esta investigación ya que cuenta con las características que se requieren para desarrollar el análisis de datos. En esta investigación utilizaremos la entrevista como técnica de investigación con el objetivo de obtener datos cuantitativos y cualitativos. Así también nos apoyaremos de la encuesta para medir actitudes.
  • 62. 59 Instrumento de investigación Cuestionario: Será formulado con preguntas abiertas con el fin de obtener todos los requisitos de software. Ver anexo A. Cuestionario Encuestas: Se aplicara una encuesta para evaluar el grado de aceptación del sistema, para esto se aplicar una medición de actitudes mediante la escala tipo Likert. Ver Anexo B. Encuesta
  • 63. 60 Metodología de desarrollo. En el proyecto se usa la metodología de “Modelo incremental” en la que únicamente se procederá a cumplir con las 4 fases que marca la metodología de software. Se incluirá el detalle para las fases de Análisis, Diseño, Desarrollo e Implementación del sistema propuesto. Cabe destacar que todas las fases de desarrollo del software independientemente del rol asignado a cada integrante del equipo SYS, todos los integrantes se involucraron en cada una de las actividades. Fase 1. Análisis La fase de análisis se realizó desde el inicio de este proyecto en la primera entrevista con el cliente ver los anexos A, B, C y D en los cuales se detallan las entrevistas utilizadas y el análisis de requisitos. Las dos primeras actividades fueron desarrolladas por el líder y jefe de proyecto Victor Jiménez Villar en donde se realizaron las primeras platicas con el cliente. Posteriormente el analista Cinthia Barrera Villa se encargó de identificar los requisitos y exponer la factibilidad del proyecto. En esta fase se desarrollaron las siguientes actividades;  Primer entrevista con el cliente  Identificación del problema  Análisis del problema  Entrevista para el análisis de requisitos  Análisis de requisitos  Establecer el objetivo general y específicos del proyecto  Analizar la factibilidad del proyecto  Diseñar el cronograma de actividades  Empezar a desarrollar las actividades del marco de trabajo
  • 64. 61 Fase 2. Desarrollo En esta fase el programador Jorge Eliecer Pérez Flores se encargó de realizar el modelado y diseño del sistema, al final de este proceso el analista se encargó de verificar que el diseño corresponda a los requisitos de software establecidos. En resumen se realizaron las siguientes actividades.  Modelar el sistema en UML  Realizar los diagramas de contexto  Analizar el modelo del sistema  Diseñar el sistema  Desarrollo A continuación se agregan los diagramas realizados por el programador.
  • 65. 62 Imagen 7. Diagrama contextual nivel 0
  • 66. 63 Imagen 8. Diagrama contextual nivel 1
  • 67. 64 Imagen 9. Diagrama contextual del proceso “Compra de mercancías”
  • 68. 65 Imagen 10. Diagrama contextual nivel 2 del proceso “Registro de mercancías”
  • 69. 66 Imagen 11. Diagrama contextual nivel 2 de proceso “Venta de mercancías”
  • 70. 67 Imagen 12. Diagrama contextual nivel 2 del proceso “Manejo de cuentas”
  • 71. 68 El diseño de las interfaces se realizó con ayuda del entorno de desarrollo integrado Visual Studio 2012. Las imágenes e iconos con el programa para edición de fotografías Photoshop SC6 y Gimp 3.6 Imagen 13. Interfaz del sistema “Control Total”.
  • 72. 69 Fase 3. Desarrollo En esta fase continuo la labor de los programadores para diseñar las interfaces y base de datos del sistema “CONTROL TOTAL”. Se realizaron las siguientes actividades.  Crear base de datos lógica y física  Construir las interfaces del sistema  Escribir el código necesario de acuerdo al diseño  Enlazar el sistema con la base de datos  Implementación El software “CONTROL TOTAL “se desarrolló con el lenguaje de programación orientado a objetos C#. El IDE Visual Studio 2012 genera automáticamente el código necesario para cada interfaz de usuario, el programador solo le tiene que dar funcionalidad. A continuación se explica un fragmento de código del programa. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data.Entity; using System.Data.Entity.Validation; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Inicio { Public partial class Usuarios : Form { Public Usuarios() { InitializeComponent(); } Public Ventas.ADRICAREntitiesdbconexion= newVentas.ADRICAREntities(); Private void Usuarios_Load (object sender, EventArgs e) { dbconexion.Usuarios .Load(); usuariosBindingSource.DataSource = dbconexion.Usuarios.Local; }
  • 73. 70 Private void usuariosBindingNavigatorSaveItem_Click(object sender, EventArgs e) { Validate(); usuariosBindingSource.EndEdit(); try { dbconexion.SaveChanges(); } catch (DbEntityValidationException) { MessageBox.Show("No se puede agregar el usuario"); } } } } Esta clase nos muestra una pequeña ventana para editar los usuarios que tienen acceso al sistema. En las primeras líneas se utiliza la sentencia [using] para importar las librerías que utilizaremos, algunas se cargan por default como es el caso de usingSystem; otras se insertan para el propósito del programa por ejemplo: usingSystem.Data.Entity.Validation; La palabra namespace indica que pertenece a un paquete de clases. Continuamos definiendo la clase con public partial class Usuarios :Formindica que la clase se llamara Usuarios y deriva de la clase Form.
  • 74. 71 En esta clase disponemos de tres métodos: public Usuarios() Método constructor que inicializa las variables,panels, layouts , acciones y propiedades que contiene nuestra ventana. Private void Usuarios_Load(object sender, EventArgs e) Método de evento que ocurre al cargar la ventana en el escritorio, dentro de este método realizamos la conexión a la base de datos. dbconexion.Usuarios .Load(); usuariosBindingSource.DataSource = dbconexion.Usuarios.Local; El ultimo método Private void usuariosBindingNavigatorSaveItem_Click(objectsender, EventArgs e) También es un método de evento este método se inicia cuando daremos clic en la opción guardar de la barra de herramientas para validar los datos Validate(); usuariosBindingSource.EndEdit(); y tratar de guardar los cambios. try { dbconexion.SaveChanges(); } catch (DbEntityValidationException) { MessageBox.Show("No se puede agregar el usuario"); }
  • 75. 72 Fase 4. Pruebas y retroalimentación En esta etapa de desarrollo de software el equipo de desarrollo de software SYS se planteó el objetivo de entregar un prototipo de la interfaz de usuario y la base de datos para presentárselo al cliente; para recibir comentarios y sugerencias. Una vez terminada esta etapa se recopilaran más requisitos para el segundo incremento del software. Las pruebas del software se realizaron con la herramienta de depuración de Microsoft Visual Studio 2012 generando puntos de interrupción. Para posteriormente presentar el incremento. Imagen 14. Consola de depuración En esta fase se realizaron las siguientes actividades.  Prueba del primer incremento  Entrega del primer incremento  Consideraciones del cliente para el segundo incremento
  • 76. 73 Análisis de resultados. Después de la presentación del primer prototipo el cliente quedo conforme con las características que se espera tener en el sistema. Se recalcó la importancia de establecer el módulo de facturación electrónica ya que este módulo aún no ha sido implementado y es uno de los requisitos primordiales de este proyecto. Los resultados obtenidos del primer incremento se resumen en los siguientes puntos.  Es necesario desarrollar los reportes de ventas  Se necesita ver funcionando el módulo de facturación  Programar los catálogos faltantes.  Las funcionalidades que se le espera dar al sistema cumplen con los requisitos del cliente.  La entrega de este primer incremento permitirá empezar a realizar la captura del inventario físico de mercancías.  Se reprogramara un nuevo calendario de desarrollo para el segundo incremento el cual se estima en un plazo de 2 meses.
  • 77. 74 CONCLUSION Con el primer incremento de software entregado el cliente podrá avanzar en una de las tareas más laboriosas de la implementación de un punto de venta el cual es la realización de inventario. La presentación del presente proyecto fue de gran importancia para el equipo SYS ya que nos permitió desarrollar y poner en práctica nuestras habilidades. Se observó que es importante una buena planeación y estimación de recursos debido a una mala planeación se tendrá que reprogramar el segundo y tercer incremento de software.