Sie sind auf Seite 1von 9

[VISUAL FOXPRO BASICO] IDSYSTEMS 2013

PARTE III Creacion de un proyecto


1. Analisis de Sistemas
Todo en la vida tiene un principio , un punto en el que los detalles estn mal definidos .El Desarrollo de aplicaciones no es diferente . Todos los proyectos tienen un principio , las acciones que realizamos y las decisiones que tomamos al principio ser fuertemente influidas en el resto del proyecto . En este captulo vamos a ver en el inicio de proyectos de aplicacin y encontrar algunas ideas sobre cmo hacer que trabajen para nosotros y no contra nosotros. Este captulo no es un tratado sobre el anlisis orientado a objetos y diseo, sino ms bien una discusin pragmtica de algunas ideas que pueden ayudar a que el proceso sea ms fructfero. Averiguar lo que hay que hacer La primera tarea es conseguir una pista! Obtener un poco de idea de lo que trata el proyecto . Esto puede parecer obvio , pero no lo es. Hay dos conjuntos de ideas sobre el proyecto : el desarrollador y el del cliente. Estas dos opiniones son rara vez lo mismo. Somos desarrolladores, asi que podemos entender lo que necesita el desarrollador para obtener detalles acerca de los requisitos funcionales, cuntas formas habr , cuntos tablas se necesitan, cmo las tablas se relacionan entre s , y todas las otras cosas que necesitan saber los desarrolladores. Sin embargo , los clientes a menudo ven el proyecto de una manera muy diferente. Un cliente tiene un dolor! Algo est mal en sus negocios. Tal vez un competidor que est latiendo en el mercado, o que estn perdiendo inventario a travs de la contraccin y no puede rastrearlo . Tal vez el costo de ventas es muy alto y los beneficios estn siendo mermados. O incluso puede ser que la empresa est creciendo a un ritmo muy rpido y se detecta una prdida de control sobre sus costos. Sea lo que sea , el cliente tiene un problema que les est causando el dolor. No nos estn contratando para construir un gran software, nos estn contratando para aliviar su dolor. Si queremos tener xito con el proyecto, a continuacin, hay que centrarse en aliviar el dolor del paciente . Para ello debemos entender el dolor y de donde proviene. Qu sabemos ? Sabemos como construir aplicaciones. Sabemos cmo hacer que las computadoras canten . Podemos modificar el ltimo nanosegundo de las consultas SQL. Sabemos cmo proteger la integridad referencial y hacer cumplir las restricciones de dominio. Podemos validar los campos , filas y tablas , incluso tablas enteras.

PARTE III Creacion de un proyecto

Pgina 1

[VISUAL FOXPRO BASICO] IDSYSTEMS 2013

Todas estas cosas son importantes para el xito del proyecto , sin embargo , estamos totalmente fuera de base pensando que el cliente se preocupa por estos temas en absoluto. El cliente se preocupa por encontrar la ruta ms corta para el alivio del dolor . Qu sabe el cliente? El cliente sabe que estn en el dolor , que puede o no puede saber la causa exacta de su dolor. Ellos saben cmo manejar su negocio . Ellos saben su mercado y sus clientes. Ellos saben lo que sus clientes quieren. Ellos saben cmo construir sus productos o prestar sus servicios. El cliente es humano y le gusta sentirse importante e inteligente. Si empezamos forzndolos a un anlisis estructurado de sus negocios, los estamos poniendo en una situacin incmoda donde no conocen la jerga y estn familiarizados con los procesos. La naturaleza humana dice que van a hacer todo lo posible para acortar esa experiencia tanto como les sea posible. En esto radica el conflicto Se nos ha dicho una y otra vez que el anlisis y el diseo son fundamentales para una aplicacin slida. Esto es simplemente una verdad de la naturaleza . Tambin sabemos que los clientes ven la fases de anlisis y diseo como la prdida de tiempo . Ellos lo ven de esa manera porque nada nuevo est apareciendo en sus equipos. Tambin lo ven as porque el proceso es una pesadilla para ellos. Se sienten inadecuados y poco inteligentes. Qu podemos hacer para cambiar esto? Cmo podemos conseguir que el cliente compre en un buen anlisis y diseo ? Podemos hacerlo no diciendoles lo que estamos haciendo, saltandonos la jerga y las formas elegantes y listas de control ( oh , las vamos a utilizar , pero no frente al cliente , al menos no al principio). Comienza el anlisis diciendo algo como : "Este sistema va a tener que trabajar bien dentro de su negocio y no soy ni de lejos lo suficientemente bien informado sobre su negocio para lograr eso. Necesitar su ayuda y su experiencia para hacer frente a la parte comercial del proyecto. Puede describir la naturaleza de su negocio para m ? " Deja que estas primeras conversaciones este suelto y descriptivo del negocio total del cliente. Tome notas. Cuando se retire de estas primeras reuniones analize sus notas. A continuacin, escriba unas pocas pginas de resumen, que describa lo que usted entiende . Regrese con el cliente y pidale que lean el resumen y le haga saber lo que tiene correcto y, sobre todo, lo que tiene incorrecto. Despus de uno o dos entrevistas, puede comenzar con los checklists (listas de control) y otras graficas y diagramas. Presente estos documentos lentamente y explique su estructura. Trabaje lentamente en los detalles de la informacin contenida en los documentos.

PARTE III Creacion de un proyecto

Pgina 2

[VISUAL FOXPRO BASICO] IDSYSTEMS 2013 Siguiendo estas ideas desde el principio , usted estar en mejores condiciones para conseguir que el cliente compre en la fase de anlisis ( sin que ellos siquiera sepan que es lo que hicieron ) y es probable que obtenga mejor informacion y mas completa. Tener un plan Una vez que el anlisis es bastante completo y tiene una buena y slida base de la comprensin tanto de los requisitos del proyecto y el negocio en general, usted puede comenzar a hacer un plan para el proyecto. El diseo inicial es ese plan. Usted no considerara salir de unas vacaciones de dos semanas sin tener la menor idea de dnde iba o cmo llegar all. Unas vacaciones que comienza de esa manera seguramente va a tener problemas. No, usted selecciona un destino o dos y luego revisar los mapas para planificar la mejor ruta. Puede variar de su plan durante las vacaciones , pero usted no empezaria sin un plan. El desarrollo del proyecto es de la misma manera . Usted no quiere comenzar sin un plan - una especie de mapa de hacia dnde te diriges y cmo va a llegar all. Sin un plan, lo ms probable es viajar por muchos callejones sin salida y tiene que tirar el trabajo y empezar de nuevo . Tener un diseo no significa que usted no lo altere durante el desarrollo , que sin duda lo har. Usted podr descubrir informacin o aprender algo nuevo acerca de las herramientas que har que usted altere su plan. Eso est bien . Incluso tiene un nombre : se llama desarrollo iterativo . Su plan debe incluir diseos de clase para los objetos que se va a utilizar , el diseo de los datos de las relaciones persistentes definidos , diseo de interfaz de usuario , diseo de informes , y otras cosas . No hay ninguna ley que diga que no puede usar Visual FoxPro para lograr estos diseos. Usted puede utilizar el diseador de formularios para disear las formas y la interfaz de usuario, el diseo de base de datos para disear las tablas y relaciones, y el diseador de informes para disear los informes. El problema es que usted no quiere pasar mucho tiempo de llenado en los detalles en esta etapa. Por qu no ? Porque las cosas van a cambiar. Es mucho ms fcil que hacer de nuevo un formulario que tiene poco o nada de cdigo en l , que sentir los calambres de tirar dos das de trabajo en una forma que no encaja . El desarrollo iterativo Los procesos de anlisis , diseo e implementacin casi siempre se muestran como una lnea de tiempo, donde un proceso no comienza hasta que se complete la anterior . No es as como funciona en el mundo real. Analizamos la informacin hasta que tengamos un grado de comprensin , y luego comenzamos a disear la aplicacin . A menudo, durante el diseo, surgirn preguntas que nos hacen volver al anlisis y obtener las respuestas .

PARTE III Creacion de un proyecto

Pgina 3

[VISUAL FOXPRO BASICO] IDSYSTEMS 2013 Cuando el diseo est bastante bien distribuido, comenzamos la construccin de los componentes que formarn parte de la aplicacin. Este proceso , inevitablemente, va a descubrir debilidades , omisiones o errores simples en nuestro diseo , que nos hacen parar y volver al diseo para modificarlo . El nico pecado mortal para cualquier desarrollador es el orgullo de la autora. El orgullo de la autora nos har resistir desechar algo que no est del todo bien . Vamos a torcer , hacer palanca , el sudor , el martillo , apretar, empujar, tirar , doblar , eje y mutilar a esa cosa para tratar de conseguir que funcione . Cuanto ms tiempo le ganamos en l, mayor ser el grado de orgullo de la autora y la ms difcil ser para finalmente dejar ir, y empezar de nuevo. Cada vez que usted se encuentra an considerando remotamente empezar algo ms , recuerde esto: nunca va a ser ms fcil que empezar de nuevo de lo que es ahora mismo , sino que slo se hacen ms difciles . La aplicacin Una aplicacin es mayor que la suma de sus partes. El buen desarrollo de aplicaciones requiere la apreciacin y la comprensin de la idea de los servicios de aplicacin y asegurar que cada componente est disponible para el resto del sistema . Formas u objetos creados con un propsito especfico hacen gran parte del "trabajo" real de una aplicacin. Es posible llevar a cabo una tarea significativa mediante la ejecucin de un formulario desde la ventana de comandos o creando una instancia de un objeto y llamar a sus mtodos . Sin embargo, esto no demuestra el funcionamiento de una aplicacin. Una aplicacin necesita para exponer toda la funcionalidad del sistema a travs de una interfaz de usuario totalmente integrado que aborda muchos ms problemas que simplemente aislando el usuario desde el comando DO FORM . Servicios a nivel de sistema Cada componente de una aplicacin proporciona servicios al usuario o a otro componente de la aplicacin - o alguna combinacin de ambos. Un formulario en una aplicacin de base de datos ( asumiendo que es visible) ofrece un servicio a los usuarios, que les permite ingresar, ver o alterar los datos almacenados en la base de datos . Un botn de comando en esa forma tambin proporciona un servicio que permite a los usuarios comunicar sus deseos, y proporciona un servicio al resto del formulario , pasando a lo largo de la entrada del usuario con el mtodo apropiado. Un men sirve igualmente la necesidad del usuario para poner en marcha una forma particular , y puede llevar a cabo ese deseo de pasarlo a un gestor de formularios . Existen algunos componentes slo para proporcionar a nivel de sistema: son los servicios - que su responsabilidad es gestionar o facilitar algn aspecto de la aplicacin interna . Un mtodo de un formulario puede prestar un servicio a la forma de deshabilitar el botn Guardar hasta que el usuario ha modificado el registro actual. PARTE III Creacion de un proyecto Pgina 4

[VISUAL FOXPRO BASICO] IDSYSTEMS 2013

Servicios de nivel de sistema pueden incluir algunas o todas de las siguientes funciones . Esta lista no es de ninguna manera exhaustiva . Las aplicaciones individuales pueden requerir servicios adicionales , y usted puede decidir proporcionar o servicios puede necesitar una aplicacin particular - adicionales a nivel de sistema . El lanzamiento de la aplicacin. " Comenzando " del proceso de establecimiento de todo el recorrido , la carga de las bibliotecas de clases , archivos y bibliotecas de tiempo de ejecucin de procedimientos , a partir del men u otro lanzador componente , la emisin de los " eventos de lectura ", y as sucesivamente. Identificacin del usuario y la seguridad. Restringir o permitir el acceso al sistema o ciertas partes del sistema , y hacer que la identidad del usuario actual a nivel global disponibles para el sistema . Gestion de formas . Limitacin de las instancias de ciertas formas , crear instancias de las barras de herramientas es necesario, cierre las formas mediante programacin , la organizacin de las formas en el escritorio del usuario, y la coordinacin de las formas activas de las barras de herramientas , mens y otros elementos de la interfaz . Gestin de mens. Encapsulacin de cdigo necesario para implementar men de comportamiento dinmico , tales como cambio de opciones de men, adicin o eliminacin de cuadros de men o barras de mens , y as sucesivamente . Gestion de Informes. Encapsular los procesos de informacin en un solo componente para facilitar el mantenimiento (por el promotor) y el acceso ( para el usuario) . Guardado y restablecimiento de las preferencias del usuario . Tamaos formulario , botones de la barra , los arreglos de red , los valores de bsqueda por defecto , etc . Configuracin global. Configuracin de todo el sistema para determinar el comportamiento por defecto del sistema , configuraciones y suposiciones, incluyendo la red y el diseo de accionamiento , encauzamiento y reglas de negocio. El manejo de errores . Informar a los usuarios de las condiciones de error inesperados , y la informacin de error de registro para la depuracin y solucin de problemas . Servicios no especificados en otra parte . Establecer parmetros especficos del entorno ( SET hablar , SET DELETED , SET BARRA DE ESTADO hasta la saciedad ) , la remocin y reparacin (para beneficio de los desarrolladores durante el desarrollo ) en el men del sistema y las barras de herramientas , as como otros servicios que sean necesarios.

PARTE III Creacion de un proyecto

Pgina 5

[VISUAL FOXPRO BASICO] IDSYSTEMS 2013 Cmo se proporcionan estos servicios (y otros servicios que se prestan en un mbito ms pequeo, por lo general en el nivel de formulario ) representa una parte importante del diseo "bajo el cap " de una aplicacin, y como era de esperar , una parte importante de cualquier marco de aplicacin. Los Servicios que se incorporan a las clases y bibliotecas de cdigo utilizadas para construir los componentes de nivel de sistema , o dentro de la jerarqua de clases base , sern inevitablemente colocar la aplicacin en algn lugar de un contino importante que el desarrollador debe tener en cuenta cuando se toman decisiones de diseo. Los extremos de este continuo representan la flexibilidad y la abstraccin mxima y mnima. Cuanto ms abstracta estos servicios , ms fcilmente se pueden adaptar a las necesidades especficas de la aplicacin , el ms concreto, ms se va a dictar cmo se satisfacen las necesidades especficas de la aplicacin. Servicios abstractas son muy genrico y reutilizable. Servicios concretos estn diseados para satisfacer las necesidades de aplicaciones ms especficas . Una manera en que un acuerdo puede ser alcanzado entre los dos extremos del diseo es proporcionar servicios globales, a nivel de sistema a travs de una gran cantidad de componentes individuales , cada una instancia de las clases de objetos , o subclases de objetos. Esto hace que sea ms fcil de sustituir diferentes componentes cuando surge la necesidad , o a ciertas subclases de los componentes mientras que deja intactos otros . Sin embargo , no hay ninguna regla que diga que no pueden ser proporcionados por un nico objeto de aplicacin monoltica. Esa decisin se ver influenciada por las caractersticas especficas de la aplicacin y sus propias preferencias o estilo de trabajo. Cuando entienda los conceptos bsicos, la programacin ser un proceso reiterativo. Los pasos se repiten numerosas veces, perfeccionndose el cdigo a medida que se avanza. Al principio, someter el cdigo a prueba frecuentemente mediante un sistema de prueba y tanteo. Cuanto ms conozca el lenguaje, mayor ser la rapidez con que pueda programar y podr realizar ms pruebas preliminares mentalmente. Entre los pasos bsicos de la programacin cabe citar los siguientes: Definir el problema. Desglosar el problema en elementos discretos. Construir los elementos. Comprobar y perfeccionar los elementos. Ensamblar los elementos. Comprobar el programa en su conjunto.

A continuacin se enumeran algunos aspectos que debe tener presentes al empezar a programar: Defina claramente el problema antes de intentar resolverlo. Si no lo hace, acabar por realizar numerosos cambios, desechar cdigo, tendr que empezar de nuevo o bien terminar con un resultado que no es realmente lo que deseaba. Desglose el problema en pasos manejables, en lugar de intentar resolver todo el problema de una sola vez. Pgina 6

PARTE III Creacion de un proyecto

[VISUAL FOXPRO BASICO] IDSYSTEMS 2013 Pruebe y depure secciones de cdigo a medida que desarrolla el programa. Compruebe que el cdigo hace lo que quiere que haga. La depuracin es el proceso de encontrar y solucionar problemas que impiden que el cdigo se ejecute correctamente. Perfeccione los datos y el almacenamiento de datos para facilitar la manipulacin de estos datos a travs del cdigo del programa. Esto suele implicar estructurar las tablas de forma adecuada.

Definir el problema
Antes de poder resolver un problema, debe formularlo claramente. Algunas veces, si ajusta la formulacin del problema podr ver ms opciones para resolverlo. Suponga que obtiene muchos datos de distintos orgenes. Si bien la mayora de los datos son estrictamente numricos, algunos valores contienen guiones y espacios en blanco adems de nmeros. Suponga que quiere eliminar todos los espacios en blanco y los guiones de dichos campos y guardar los datos numricos. En lugar de intentar eliminar los espacios en blanco y los guiones de los datos originales, podra formular el objetivo del programa como: Objetivo Reemplazar los valores existentes de un campo por otros valores que contengan todo lo que contenan los valores originales, excepto los espacios en blanco y los guiones. Esta formulacin evita la dificultad que supone manipular una cadena de caracteres cuya longitud sigue cambiando a medida que trabaja con ella. Checar. McGrawHill Manual del programador parte 01 cap 1 al 4. Pagina 14

No comentaremos mas acerca del Analisis de Sistemas, que es un tema muy extenso dentro del desarrollo de aplicaciones, pero si insistiremos que a la mayor brevedad consulte un libro sobre este tema ya que le dara una perspectiva muy amplia en el desarrollo de las aplicaciones.

Desarrollo de Bases de Datos


El Desarrollo o creacion de las bases de datos, tambien es un tema por si mismo para uno o varios libros. Ya que los conceptos de bases de datos, relaciones, normalizacion, tipos de bases de datos es la base principal para el desarrollo de aplicaciones empresariales primordialmente. Todo sistema, despues de su respectivo analisis, comienza con el diseo de la base de datos. Es decir, que informacion necesitamos almacenar, procesar y presentar. Comenzamos con los datos mas basicos segn el tipo de sistema. Creamos las tablas con estos datos (campos) y les asignamos el tipo de dato PARTE III Creacion de un proyecto Pgina 7

[VISUAL FOXPRO BASICO] IDSYSTEMS 2013 correspondiente asi como su longitud. Establecemos si necesitan tener un orden o un campo llave. Establecemos las relaciones segn sea necesario con otras tablas (mas informacion). De no hacerlo asi, corremos el riesgo de estar regresando al diseo de las bases de datos una y otra y otra vez. Porque, una vez que tengamos nuestras primeras tablas, podemos generar nuestros formularios, consultas y reportes. Pero, si se nos escapo un dato, o no era del tipo correcto o no tenia la suficiente longitud, o necesitaba validarse o enlazarse a otro; deberemos volver al diseo de las tablas, agregarlo y luego volver a generar todos los programas, formularios, consultas e informes donde aparezca este nuevo cambio, con la consiguiente perdida de tiempo. Por ello, insistimos en lo recomendable que se tome el tiempo necesario para el buen diseo de la base de datos de cualquier aplicacin que quiera desarrollar con Visual FoxPro. Hay bastantes buenos libros sobre la parte teorica del desarrollo de bases de datos para consultar en Internet.

Herramientas RAD y Frameworks


Una de las grandes ventajas con las que cuenta Visual FoxPro son las herramientas RAD. Las herramientas RAD (Rapid Application Development Desarrollo rapido de aplicaciones) vienen en la forma de los asistentes y generadores de codigo automatico. En el IDE o interfaz visual de VFP para la creacion de formularios, reportes y consultas. Este tipo de herramientas, reducen considerablemente el tiempo de desarrollo de las aplicaciones, ya que de manera automatica genera el codigo necesario que de otra forma tendriamos que teclear y construir. Por otra parte, Visual FoxPro tambien cuenta con algunos Frameworks. El Framework o Marco de trabajo, simplemente es un conjunto de reglas, procesos, clases, funciones, librerias que ya estan estructuradas de tal forma que las podamos reutilizar cuantas veces necesitemos en un formato ya establecido por un programador o empresa creadora del framework. Cualquier programador avanzado puede crear su propio framework, ya que es la forma de trabajo que mejor haya desarrollado. Existen frameworks comerciales, a los que hay que ajustarse (seguir ciertas reglas) para que la aplicacin funcione. Pero, nuevamente esto reduce el tiempo de desarrollo de una aplicacin. Incluso con una sola base de datos bien diseada, se puede construir toda una aplicacin con el click de un boton, ya que todo el framework esta construido. Como desventaja, el mismo framework fija las limitaciones de uso de ciertas clases o funciones, o el seguir cierto estilo de programacion. El uso de frameworks, generalmente es para las etapas de

PARTE III Creacion de un proyecto

Pgina 8

[VISUAL FOXPRO BASICO] IDSYSTEMS 2013 prototipo pero en algunos casos una aplicacin de produccion puede estar realizada enteramente en uno de ellos.

PARTE III Creacion de un proyecto

Pgina 9