Sunteți pe pagina 1din 17

USO DE LA METODOLOGA ORIENTADA A AOBJETOS PARA DESARROLLAR UN SISTEMA DE COMPRA Y VENTA PARA LA MICROEMPRESA CMJC COMPUTERS CHICLAYO, FEBRERO

MAYO 2011 1. DATOS INFORMATIVOS 1.1. AUTORES : ALVARADO VIGO, Percy William ARRIOLA APONTE, Carlos Fernando. 1.2. ASESOR 1.3. AREA DE INVESTIGACION 1.4. CENTRO DE INVESTIGACION : Centro de Investigacin de la Facultad de Ciencias Fsicas y Matemticas de la Universidad Nacional Pedro Ruiz Gallo 1.5. LUGAR DE EJECUCION 1.6. DURACION ESTIMADA 1.7. FECHA DE INICIO 1.8. FECHA DE TERMINO 2. PLAN DE INVESTIGACION 2.1. SITUACION PROBLEMTICA Identificamos en la microempresa CMJC COMPUTERS la ausencia de un sistema de compra y venta de productos, que organice la informacin o atributos especficos a la hora de efectuar una transaccin; esta situacin constituye un gran obstculo en el registro de informacin de entrada y salida de productos. Por la falta de un sistema de compras y ventas, se origina prdida de tiempo cuando se necesita registrar un cliente o proveedor, ya que el sistema contara con una base de datos para el correcto desarrollo del mismo. Tambin se pierde tiempo al momento de buscar el nmero y/o descripcin de los artculos comprados y/o vendidos, porque no existe un registro ordenado de los mismos y se tiene que revisar todas las boletas para encontrar estos datos. 2.2. ANTECEDENTES DE ESTUDIO No se encontr antecedentes por ser la primera vez a investigar. 2.3. MARCO TEORICO SISTEMA DE COMPRA Y VENTA El empleo de los diferentes sistemas de compra y venta con los que puede contar una empresa suelen ser herramientas fundamentales, ya que los mismos permiten mantener un cierto control de todas las negociaciones comerciales y financieras que se realicen en la empresa, adems de cumplir con el requerimiento de informacin para lograr obtener un mayor aprovechamiento de todos los recursos disponibles. : : : : Microempresa CMJC COMPUTERS 2 meses 22 de Febrero 17 de Mayo : rea Tecnolgica : Mg. Lic. CORREA CABANILLAS, Max

En la actualidad, an hay mucha gente que cree que los sistemas de compra y venta solo se limitan a la recoleccin de informacin fundamentada en un proceso de registro, clasificacin de resumen de dicha informacin correspondiente a cada transaccin que ha sido realizada por la empresa, pero debemos considerar que los sistemas de compra y venta constituyen un proceso que va mucho ms all de ello. Los sistemas de compra y venta representan una de las herramientas ms importantes y esenciales para lograr el desarrollo de las compaas. A su vez, estos sistemas son los encargados de analizar y valorar todos aquellos resultados econmicos que suele obtener una empresa mediante la agrupacin y la comparacin de resultados, permitiendo as, que todas las tareas de la compaa sean ejecutadas bajo control y con la supervisin de un contador. Ahora bien, teniendo en cuenta la relevancia de la contabilidad como herramienta para el desarrollo de una empresa, debemos destacar que la creacin de los sistemas de compra y venta eficientes surgi de la necesidad de informacin que los actores que componen la empresa necesitaban. En este sentido, un sistema debe encontrarse estructurado y especialmente diseado para que sea capaz de clasificar todas las acciones econmicas que implica la construccin y formacin de una empresa. En la implementacin de los sistemas de compra y venta, se encuentra la base para poder realizar con xito todos los procedimientos que conducirn a la empresa al logro de sus objetivos. [1] METODOLOGA ORIENTADA A OBJETOS Existen tres tipos de metodologas Anlisis orientado a objetos El Anlisis Orientado a Objetos (AOO) es un mtodo de anlisis para examinar los requerimientos desde una perspectiva de clases y objetos, buscados en el vocabulario del dominio del problema, para poder representar la experiencia del usuario en la esquematizacin del requerimiento. Diseo orientado a objetos El Diseo Orientado a Objetos (DOO) es un mtodo de diseo para comprender el proceso de descomposicin y notacin orientada a objetos, obteniendo el modelo lgico (estructuras de clases y objetos) y fsico (arquitectura de mdulos y procesos), as como los modelos estticos y dinmicos. Programacin orientada a objetos La Programacin Orientada a Objetos (POO) es la implementacin del diseo, en donde los programas son colecciones de objetos cooperantes. Cada objeto representa una instancia de alguna clase y las clases pertenecen a una jerarqua de clases relacionadas por la herencia. [2]

PROGRAMACIN ORIENTADA A OBJETOS Lenguajes Nueva creacin como Smalltalk, Eiffel, Actor, etc. Extensiones Orientadas-a-Objetos: como C, Pascal, Fortran, Ada, Cobol, Lisp, que originaron: C++, Object Pascal, CLOS. Caractersticas 1. Tipificacin fuerte: comprobacin de tipos en tiempo de compilacin. Hay una excepcin: Smalltalk. 2. Ocultacin: de las caractersticas de los objetos. 3. Compilacin Incremental: compilacin separada. 4. Genericidad: reutilizacin de cdigo. 5. Paso de mensajes. 6. Polimorfismo: basado en la ligadura dinmica. 7. Excepciones: sistema seguro. 8. Concurrencia: "el mundo real es concurrente". 9. Datos compartidos: entre varios objetos.

Elementos La orientacin a objetos define conceptos para crear soluciones tiles en base a su teora, definiendo cuatro elementos mayores: Abstraccin Encapsulacin Modularidad Jerarqua

La carencia de alguno de los elementos mayores en la solucin de un problema deslinda totalmente de la filosofa orientada a objetos porque justamente estos elementos conforman la estructura primordial de esta filosofa. Adicionalmente se tienen tres elementos menores del modelo de objetos: Tipeamiento Concurrencia Persistencia

Los elementos menores son muy tiles, pero no son imprescindibles para la solucin orientada a objetos. [3]

ABSTRACCIN La abstraccin es el reconocimiento de las similitudes existentes entre objetos, situaciones o procesos del mundo real. Al buscar abstracciones es necesario concentrarse en los detalles importantes o incluso en las similitudes ignorando las diferencias por el momento, para poder describir y especificar algunos detalles del sistema, y pasar por

desapercibidos los no relevantes. Un concepto puede ser una abstraccin slo si puede ser descrito, entendido y analizado independientemente de los mecanismos utilizados para cumplir sus propsitos. Las abstracciones siempre estarn influenciadas por el observador, de acuerdo a su experiencia y necesidades. Una abstraccin denota caractersticas esenciales de un objeto, distinguibles de otros tipos de objetos y provee lmites conceptuales a la perspectiva del observador. La abstraccin fija su atencin en la vista exterior del objeto para separar el funcionamiento esencial del objeto de su implementacin, siendo este el principio de barrera de abstraccin. La obtencin de las abstracciones del dominio de un problema es la parte medular del diseo orientado a objetos, las cuales pueden agruparse en: Abstraccin de Entidad: Un objeto representa un modelo til del dominio de un problema o el dominio de una solucin, el cual cuenta con una personalidad. Se asocian generalmente a los sustantivos del dominio del problema. Abstraccin de Accin: Un objeto provee un conjunto generalizado de operaciones, las cuales desempean un mismo tipo de funcin. Se asocian a verbos comunes o similares del dominio del problema. Mquina Virtual de Abstraccin: Un objeto agrupador de operaciones usadas en un nivel superior o inferior de control. Se asocian a un conjunto de verbos con propsitos comunes. Abstraccin Coincidental: Un objeto agrupa un conjunto de operaciones o modelos sin relacin entre s. Se asocian a un conjunto de verbos o sustantivos sin relacin alguna.

De los tipos anteriores las abstracciones de entidad son directamente paralelas al vocabulario del dominio del problema, por lo que es recomendable tratar de obtenerlas. Como cliente entendemos a un objeto utilizando los servicios de otro objeto, conocido como servidor. Para obtener la abstraccin de un objeto nos podemos basar en los servicios requeridos por sus clientes, representando estos servicios la vista exterior para sus clientes. Una abstraccin debe abarcar el concepto de invariancia, as las operaciones de un objeto se conforman por precondiciones (invariantes asumidas por la operacin) y postcondiciones (invariantes satisfechas por la operacin), es decir, siempre debe de responder en la misma forma siempre al tener la misma entrada para el mismo estado del objeto.

ENCAPSULACIN La abstraccin de un objeto precede a las decisiones de implementacin de sus servicios. La implementacin de un objeto ser un secreto para la abstraccin y debe ser ocultada para sus clientes, quedando nicamente como compromiso responder a su servicio sin importar como lo solucione, logrando que ninguna parte de un sistema complejo dependa de la implementacin de algn objeto, orillando a respetar el propsito de la abstraccin. Mientras la abstraccin permite pensar el que hacer, la encapsulacin se dirige en cmo se va a realizar, permitiendo cambiar programas en forma confiable con un mnimo de esfuerzo por esta barrera. La abstraccin y encapsulacin son conceptos complementarios: la abstraccin se enfoca en el funcionamiento observable de un objeto, mientras la encapsulacin se enfoca en la implementacin que da origen a ese funcionamiento. La clase de la que nace un objeto debe tener dos partes, una interface (servicios para relacionarse con otros objetos, conocida como vista exterior) y una implementacin (solucin a los servicios, conocida como vista interior). La encapsulacin es el proceso de comparticin de elementos de una abstraccin que constituyen su estructura y funcionamiento.

MODULARIDAD El segmentar un programa en componentes individuales permite reducir su complejidad, adems de agrupar un conjunto de componentes con algn propsito o caracterstica comn, permitiendo localizar eficazmente sus componentes. La modularizacin se realiza para dividir un sistema en mdulos compilables separadamente, pero con ciertas conexiones mnimas de dependencias con otros mdulos. La modularidad se encarga de empaquetar abstracciones en unidades discretas, llamadas mdulos, es decir, la modularizacin empaqueta fsicamente las clases y objetos del diseo de la estructura lgica. Al modularizar se aventaja la reduccin del costo del software al permitir disear y revisar mdulos independientes, e incluso reutilizar mdulos bsicos para cualquier sistema. Para lograr un buena modularidad, los mdulos deben construirse con cohesin (abstracciones relacionadas por grupos lgicos) y acoplamiento dbil (para minimizar la dependencia entre mdulos). Existen tres factores capaces de afectar las decisiones de modularizacin. El

primero, los mdulos sirven como unidades indivisibles de software que pueden reutilizarse en otras aplicaciones. Segundo, muchos compiladores pueden generar cdigo de objetos en segmentos, uno para cada mdulo. Tercero, una

buena modularizacin permite ubicar cdigo rpidamente al funcionar como un mapa.

JERARQUA Un conjunto de abstracciones en varias ocasiones pueden formar una jerarqua. Al identificar jerarquas en el diseo, el entendimiento del problema se simplifica. Dentro de las jerarquas se desprenden dos muy importantes: Generalizacin/Especializacin (estructura de clases) Total/Parte (estructura de objetos)

La jerarqua de generalizacin/especializacin se conforma al agrupar abstracciones dentro del esquema b es un tipo de a. Un ejemplo es: una moto es un tipo de vehculo. La herencia es muy importante en una jerarqua de generalizacin / especializacin por definir una relacin entre clases, en donde una clase comparte la estructura o funcionamiento definido en una o ms clases (herencia simple y mltiple, respectivamente). La herencia representa una jerarqua de abstracciones en donde una subclase (clase hijo) hereda de una o ms superclases (clases padre). La estructura y funcionamiento comn de diferentes clases pueden formar una superclase, as la herencia es una jerarqua de generalizacin/especializacin, en donde la superclase representa abstracciones generalizadas y la subclase representa la especializacin de los mtodos de la superclase, los cuales son agregados, modificados y ocultados. La abstraccin intenta proveer una barrera para ocultar los mtodos y estados, pero la herencia abre esta interface, para ver los mtodos y estados sin abstraccin. Existen niveles de abstraccin, hablando en trminos de jerarqua, una abstraccin de alto nivel es una generalizacin y una abstraccin de bajo nivel es una especializacin. La jerarqua de total/parte se conforma al agrupar abstracciones dentro del esquema d es parte de c. Un ejemplo es: un alumno es parte de un grupo. La agregacin denota la relacin de total/parte de una jerarqua, en donde varios objetos forman parte de un total. El conjunto de un grupo de objetos denota un total, la carencia de alguno de estos objetos no modifica la identidad del total, y la destruccin del total no implica la destruccin de las partes conformantes. Una familia (total) se conforma de un padre, una madre e hijos (partes), la carencia de un hijo no destruye a la familia, pero tampoco la divisin de la familia destruye a sus integrantes.

La encapsulacin ayuda a disminuir la complejidad ocultando detalles, la modularidad ayuda a agrupar la solucin a subproblemas, mientras tanto la abstraccin y jerarqua permiten clasificar similitudes para simplificar la comprensin. [4]

POO en C++ Introduccin Los lenguajes Orientados-a-Objetos "puros" permiten una enorme flexibilidad, aunque casi siempre en detrimento de la eficacia. Pensemos que en Smalltalk, por ejemplo, no existen tipos predefinidos en el sentido que conocemos: el tipo es una mera etiqueta pegada a un objeto y que, en un momento dado, podemos cambiar, pegndole otra distinta. As, por ejemplo, un dato cambiara de tipo en el transcurso del programa: algo impensable en C y aun en C++. Por otra parte, la ligadura de un mensaje dirigido a un objeto con una respuesta o mtodo determinado se produce siempre, en Smalltalk, en tiempo de ejecucin: es decir, no sabemos en tiempo de compilacin qu cuerpo de una determinada "funcin" se ejecutar al ejecutar el programa (notemos que la misma "funcin" o "mtodo" puede tener distintos cuerpos en distintos objetos). Naturalmente, como el lector inmediatamente habr adivinado, esto origina no pocos problemas en la depuracin y testeo de las aplicaciones, a la par que dificulta enormemente la captura de errores en tiempo de ejecucin. Los objetos, en Smalltalk, suelen, por tanto, incorporar su propio "depurador". Debo significar que en la actualidad Smalltalk est siendo muy usado en prototipacin rpida y, aunque existen compiladores que permiten la creacin de archivos ejecutables (como Smalltalk/V de Digitalk), en general los entornos Smalltalk funcionan como intrpretes, con la prdida de eficacia que esto supone en el plano comercial. Un nivel aceptable de compromiso es el proporcionado por el lenguaje "puro" Eiffel, creado (o ms bien publicitado) por el Doctor Bertrand Meyer en 1988. Este lenguaje enfatiza, entre otras interesantsimas caractersticas, el uso de PRECONDICIONES y POSTCONDICIONES, algo que poco a poco se ha ido incorporando a C++. C++, en contra de lo expuesto, es un lenguaje hbrido: ha adoptado cuantas caractersticas de OOP no perjudicaran su efectividad. As, por ejemplo, la ligadura dinmica de un mensaje a un mtodo se ha implementado (mediante las denominadas funciones virtuales) de forma que soporta un chequeo de tipos en tiempo de compilacin. Se tiene, por un lado, una mejora sustancial de las capacidades de C, a la vez que se obtiene buena parte de lo mejor de la OOP sin perder aquellos beneficios. Es lo mejor de dos mundos, como

suele decirse. Un poco ms vehemente, el Doctor Stroustrup ha llegado a afirmar que C++ es un lenguaje destinado a "los programadores serios". No quiere esto decir, sin embargo, que otros lenguajes no sean "serios", sino que ste difcilmente podra ser utilizado por programadores aficionados. Se escoge C++, entre otros lenguajes, por sus caractersticas conjuntas de robustez, eficacia y flexibilidad. El mercado industrial ha efectuado ya, por otra parte, su decisin y ha convertido a C++ en el estndar industrial de facto en OOP, con todo lo que esto conlleva. As, poco a poco, infinidad de firmas han ido desarrollando extensiones, libreras, compiladores, entornos de aplicacin y herramientas para C++.

CLASES Una clase es un tipo definido por el usuario, como las estructuras y uniones. La definicin de clase se emplea para especificar un conjunto de datos que forman parte de la clase as como el conjunto de operaciones que se pueden emplear sobre los objetos de dicha clase.

Miembros de una clase Pueden ser datos, representados por identificadores y funciones. Un mismo nombre, para un miembro, puede ser utilizado en diferentes clases, pero no dentro de una misma clase, donde cada miembro debe tener un nico nombre. La declaracin de un dato miembro de una clase en C++, se hace exactamente igual que para el resto de las variables. Un dato miembro de una clase no puede ser inicializado. Las funciones miembro de una clase, definen las operaciones que se quieren realizar con el dato miembro de la clase. La sintaxis para acceder a un miembro public de una clase, es la misma para las estructuras. Los miembros prvate de una clase, en general, slo pueden ser referenciados por las funciones miembros de la misma. Las funciones declaradas en el cuerpo de la clase, reciben el nombre de funciones miembro de la clase y pueden ser llamadas solamente para una variable especfica del tipo de esa clase, utilizando la sintaxis normal para acceder a un miembro de una estructura. Generalmente el cuerpo de una clase contiene los prototipos de sus funciones miembro, cuya sintaxis es la misma que para una funcin externa, realizando las definiciones de las mismas en el propio fichero fuente o en otro fichero fuente.

mbito referente a una clase Para controlar el acceso a los datos miembro de una clase, C++ introduce el concepto de mbito referente a una clase. Todos los datos miembro de una

clase son locales a la misma y pueden utilizarse solamente por las funciones miembro de la clase o por una funcin friend de la misma. En general, cualquier miembro de una clase puede referenciar a cualquier otro miembro de una misma clase.

Especificadores de acceso El concepto de clase incluye la idea de ocultacin de datos. Para restringir el acceso a los datos miembro de una clase, C++ provee las palabras clave: friend, private, public y protected. Estas palabras clave son utilizadas en el cuerpo de la clase para indicar el nivel de acceso a los datos miembro de la misma.

Private Un miembro declarado como privado puede ser utilizado solamente por las funciones miembro de su propia clase o por funciones amigas de su clase. En cambio, no puede ser utilizado por funciones externas o por las funciones de una clase derivada (aunque la clase derivada heredara la funcin).

Protected Un miembro declarado como protegido se comporta exactamente igual que uno privado para las funciones externas, pero acta como un miembro pblico para la funcin miembro de una clase derivada.

Public Un miembro declarado como pblico es accesible en cualquier parte del programa donde el objeto de la clase en cuestin sea accesible. Es posible tener en una clase ms de una seccin pblica, privada o protegida. Una seccin finaliza donde comienza la siguiente. Si inicialmente no se define un especificador de acceso, la seccin entre la llave de comienzo del cuerpo de la clase y el primer especificador de acceso, o en su defecto la llave del final del cuerpo de la clase, es tratada como privada.

INICIALIZACIN DE UN OBJETO

Constructor Un constructor es una funcin miembro especial de una clase, que se utiliza para crear e inicializar un objeto de esa clase. Un constructor se distingue

fcilmente porque tiene el mismo nombre que la clase a la que pertenece. Un constructor no es heredado y no puede retornar un valor. Cuando una clase tiene un constructor, este ser invocado automticamente siempre que se cree un nuevo objeto de esa clase. En el caso que el constructor tenga argumentos, stos deben especificarse.

Cuando en una clase no especificamos un constructor, el compilador crea uno por defecto sin argumentos. Si el objeto creado es local, este constructor lo inicializa a un valor no definido y si el objeto creado es global lo inicializa a ceros. Tambin podemos definir mltiples constructores con el mismo nombre y diferentes argumentos, con el fin de inicializar un objeto de una clase de diferentes formas.

Destructor Un destructor es una funcin miembro especial de una clase que se utiliza para eliminar un objeto de una clase, liberndose la memoria que ocupa. Un destructor se distingue fcilmente porque tiene el mismo nombre que la clase a la que pertenece, precedido por un operador ~. Un destructor no tiene argumentos, no tiene un tipo de valor retornado y no es heredado. Cuando se define un destructor para una clase, ste es invocado automticamente cuando salimos fuera del bloque, en el que el objeto es visible; excepto cuando el objeto ha sido creado con el operador new. En tal caso el destructor tiene que ser invocado explcitamente a travs del operador delete, lgicamente si deseamos destruir el objeto. [5]

HERENCIA Resulta innecesario explicar en qu consiste la herencia biolgica. En OOP existe un concepto parejo, en el que los seres vivos son sustituidos por las abstracciones. En C++, en concreto, la herencia se aplica sobre las Clases. O sea, de alguna forma las clases pueden tener descendencia, y sta heredar algunas caractersticas de las clases "padres". Si disponemos las clases con un formato de rbol genealgico, tenderemos lo que se denomina una Estructura jerarquizada de clases. Entendmonos: la OOP promueve en gran medida que las relaciones entre objetos se basen en construcciones jerrquicas. Esto es, las clases pueden heredar diferencialmente de otras clases (denominadas "sper clases') determinadas caractersticas, mientras que, a la vez, pueden definir las suyas propias. Tales clases pasan, as, a denominarse "subclases" de aqullas. En

un esquema simplista basado en

grafos de rbol, las clases con las

caractersticas ms generales ocuparan la base de la estructura, mientras que las subclases ms especializadas floreceran en los nodos terminales. Adelantmonos a los acontecimientos: no existe una jerarqua objetivamente correcta. Los mismos 'n' elementos pueden ser ordenados un mximo de 'n!' maneras distintas en jerarquas basadas en distintos criterios, ninguno en principio mejor que otro. Se tiende a pensar, sin embargo, en que el mejor criterio es el ms natural, el que se ms se acomoda al mundo real. Bueno, esto es slo una opinin; una muy extendida opinin: lo que se denomina el criterio antropomrfico. De momento, empero, obviaremos esta discusin de races filosficas, ms propia de las reas de anlisis y diseo. En C++ la herencia se implementa mediante un mecanismo que se denomina derivacin de clases: las superclases pasan a llamarse clases base, mientras que las subclases se constituyen en clases derivadas. El mecanismo de herencia est fuertemente entroncado con la reutilizacin del cdigo en OOP. Una clase derivada posibilita, en C++, el fcil uso de cdigo ya creado en cualquiera de las clases base ya existente, de la misma manera que uno de nuestros hijos puede heredar alguna de nuestras aptitudes (y la prctica totalidad de nuestros defectos). Consideremos el siguiente ejemplo: La herencia puede ser simple o mltiple (esta ltima soportada en C++ a partir de la versin 2.0), dependiendo del nmero de superclases que se constituyan en base de una dada. La utilidad de la herencia mltiple provoc en principio una fuerte discusin en la comunidad C++, aunque ya parece haberse asentado suficientemente su funcionalidad. La herencia puede establecerse, tambin y como ya hemos visto, como pblica, privada o protegida (esta ltima a partir de la versin 3.0), dependiendo de la calificacin del acceso a lo heredado, como ya veremos detalladamente. En resumen, el principal beneficio de la herencia en un OQPL, y en concreto en C++, consiste en la fcil reutilizacin de los componentes de un determinado sistema a travs de la captura explcita de la generalizacin y de la flexibilidad en la incorporacin de cambios a la estructura. Recordemos: en OOP pequeos cambios han de generar pequeas repercusiones. O sea, que podemos aprovechar con poco esfuerzo el cdigo que ya habamos escrito. Incluso las pruebas de prototipacin.

POLIMORFISMO Esta propiedad, como su mismo nombre sugiere (slo para los que se manejen en griego: mltiples formas), se refiere a la posibilidad de acceder a un variado rango de funciones distintas a travs del mismo interfaz. O sea, que, en la prctica, un mismo identificador puede tener distintas formas

(distintos cuerpos de funcin, distintos comportamientos) dependiendo, en general, del contexto en el que se halle inserto. En C++ el polimorfismo se establece mediante la sobrecarga de

identificadores y operadores, la ligadura dinmica y las funciones virtuales. El trmino sobrecarga se refiere al uso del mismo identificador u operador en distintos contextos y con distintos significados. La sobrecarga de funciones conduce a que un mismo nombre pueda representar distintas funciones con distinto tipo y nmero de argumentos. Esto induce un Importante aadido de Legibilidad al cdigo Podemos, pues, dotar de ms significados al nombre de una funcin, tanto dentro como fuera de la descripcin de una clase. Los programadores de C pueden inmediatamente sopesar la gran ventaja que esto supone: en lugar de tener legiones de Iuncicnes conceptualmente idnticas y con distintos identificadores, tales como sumaDeEnteros, sumaDeoats, sumaDeDoubIes, etc. (que, por cierto, forman una muralla impenetrable para cualquier lector del cdigo distinto del que lo implement), la funcin encargada de sumar nmeros ser notada con un nico identificador: suma y, dependiendo del tipo de los argumentos, el trabajo de discernir a qu funcin concreta se dirige la llamada es dejado al compilador (vaya! parece que ya empezamos a ver alguna contraprestacin a nuestra inversin!). La sobrecarga de operadores permite, por otro lado, el desarrollo de un cdigo ms coherente, como especializacin de la sobrecarga de funciones, posibilitando la re-definicin (para tipos de datos definidos-por-el-usuario) de las operaciones realizadas por stos (+, -, ", >, etc). Esto es, ocurre lo mismo que en la sobrecarga de funciones, pero aqu, en vez de identificadores de funciones, tenemos operadores, que, como ya hemos comentando, son en definitiva funciones escritas de una forma pretendidamente ms clara. [6]

2.4. PROBLEMA Cul es la metodologa ms apropiada que se usara para desarrollar un sistema de compra y venta para la empresa CMJC COMPUTERS?. 2.5. HIPOTESIS La metodologa ms apropiada para desarrollar un sistema de compra y venta para la empresa CMJC COMPUTERS es la metodologa orientada a objetos. 2.6. OBJETIVOS 2.6.1.OBJETIVOS GENERAL Desarrollar un sistema de compra y venta para la empresa CMJC COMPUTERS utilizando la metodologa orientada a objetos. 2.6.2.OBJETIVOS ESPECIFICOS

Conocer la informacin que dispone la empresa.

Identificar los requerimientos de la empresa. Disear el sistema. Implementar el sistema.

2.7. JUSTIFICACION E IMPORTANCIA

Este proyecto se realiza principalmente porque la empresa CMJC COMPUTERS no tiene un sistema que organice la informacin de las compras y las ventas. Esto ocasiona muchos inconvenientes y es necesario resolverlos para el desempeo eficiente y eficaz de la empresa. Con el diseo de este sistema se pretende procesar de forma correcta y simple toda la informacin de las compras y ventas para tener un control de las actividades econmicas que se realicen como por ejemplo la cantidad de mercadera que se compra y vende, la cantidad de productos que quedan en stock, entre otros.
2.7.1.DEFINICION DE TERMINOS

Abstraccin Capacidad que tiene un objeto para cumplir sus funciones independientemente del contexto en el que se lo utilice. Clase Es el elemento bsico de la programacin orientada a objetos. Una clase define la forma y comportamiento de un objeto. Constructor Es un tipo especfico de mtodo que siempre tiene el mismo nombre que la clase y se utiliza para construir objetos de esa clase. No tiene tipo de dato especfico de retorno, ni siquiera void. Error de sintaxis Se produce al escribir incorrectamente, alguna parte del cdigo fuente de un programa. De forma que, dicho error impedir tanto al compilador como al intrprete, traducir dicha instruccin. Herencia Permite crear estructuras jerrquicas de clases donde es posible la creacin de sub-clases que incluyan nuevas propiedades y atributos. Identificadores

Nombran variables, funciones, clases y objetos; cualquier cosa que el programador necesite identificar o usar. Lenguaje de Alto Nivel Lenguaje de programacin en el que las instrucciones enviadas para que la PC ejecute ciertas rdenes son similares al lenguaje humano. Dado que la PC no es capaz de reconocer estas rdenes, es necesario el uso de un intrprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender. Lenguaje de Bajo Nivel Lenguaje de programacin que la computadora puede entender a la hora de ejecutar programas, lo que aumenta su velocidad de ejecucin, pues no necesita un intrprete que traduzca cada lnea de instrucciones. Mtodo Son funciones que pueden ser llamadas dentro de la clase o por otras clases. La implementacin de un mtodo consta de dos partes, 1) una declaracin, 2) un cuerpo. Polimorfismo Propiedad que indica la posibilidad de definir varias operaciones con el mismo nombre, diferencindolas nicamente en los parmetros de entrada. 2.8. VARIABLES 2.8.1.VARIABLE INDEPENDIENTE: Metodologa orientada a objetos. 2.8.2.VARIABLE DEPENDIENTE: Sistema de Compra y Venta.

3. MATERIALES Y METODOS 3.1. TIPO DE INVESTIGACION: Tecnolgico. 3.2. POBLACION DE ESTUDIO: Personal de la empresa.

4. DATOS ADMINISTRATIVOS 4.1. CRONOGRAMA DE ACTIVIDADES Tiempo de ejecucin

Febrero Actividades 1 2 1 2

Marzo

Abril

Mayo

1. Identificacin de bibliografa

2. Elaboracin del proyecto

3 Presentacin y aprobacin del proyecto

4. Elaboracin del informe

5. Presentacin del informe

4.2. PRESUPUESTO 4.2.1.BIENES

1 ciento de papel bond 1 recarga cartucho de color negro 1 recarga de cartucho de color 4 lapiceros 6 lpices 1 borrador 2 resaltador

5.00 6.00 7.00 8.00 4.80 1.00 6.50

4.2.2.SERVICIOS

Impresiones Anillado Pasajes Copias

15.00 2.00 30.00 12.00

TOTAL
4.3. FINANCIAMIENTO O COSTO DEL PROYECTO

97.30

El proyecto ser autofinanciado por los investigadores.

BIBLIOGRAFA 1. http://www.gestionyadministracion.com/contabilidad/sistemas-de-contabilidad.html 2. http://www.bairesrobotics.com.ar/poo/metodologia%20de%20la%20poo%20en%20c++. pdf 3. FRANCO R: METODOLOGA PARA EL DESARROLLO DE APLICACIONES ORIENTADAS A OBJETOS. MyGnet, Primera Edicin, Mxico, 2006 4. JOYANTES L:PROGRAMACIN ORIENTADA A OBJETOS. McGraw Hill, Primera Edicin, Espaa, 1996 5. CEBALLOS F: CURSO DE PROGRAMACIN C++ PROGRAMACIN ORIENTADA A OBJETOS. Addison-Wesley, Primera Edicin, EE.UU, 1993 6. DEVS R: C++/OOP, UN ENFOQUE PRACTICO. Ediciones Paraninfo, Mxico, 1993.

S-ar putea să vă placă și