Programación

   Dentro de la computación se le conoce como programación a la automatización de procesos resolviendo las necesidades de un tópico en particular, utilizando  lenguajes (de texto o ambiente gráfico) y bases de datos principalmente.

   Para el fin de este desarrollo utilizaremos pseudo - código que es una definición del proceso o necesidad en lenguaje humano, aun que puede variar entre idiomas, es la 2a manera mas común de darse a entender entre los usuarios objetivo y los desarrolladores, además de algunos diagramas de flujo que es la manera mas común de comunicarse entre programadores y algunos usuarios objetivo ya un poco versados en su uso.
   Lenguaje máquina: Es la forma natural y mas básica para las computadoras de interpretar la información, está basada en una numeración binaria, es decir 1 o 0, que literalmente indican: paso de energía o ausencia de la misma; paso o no de luz en dispositivos ópticos como el CD: o positivo y negativo en dispositivos magnéticos como en HD, así que es difícil para los humanos interpretarlos, pero siendo una forma tan básica es sencilla para las máquinas y esto les dota de velocidad.

   Códigos ABCDIC y ASCII es la interpretación de el lenguaje máquina de 8 bits, es decir 8 combinaciones de dígitos en binario (256 posibles valores diferentes), esta combinación da lugar a un BYTE y entonces ya lo podemos interpretar como un carácter normal o especial, un signo, un dígito, etc. Actualmente hay sistemas de computadoras que manejan hasta 16 bits  para incluir el proceso extendido de estos códigos.
   A su vez podemos encontrar agrupaciones de 1,024 -por ser el número en binario mas acercado al mil (10 posiciones igual a mil veinticuatro posibilidades)-, así podemos decir que 1,024 BYTES son igual a un KBYTE o kilo byte, 1,024 KBYTES son igual a un MBYTE o mega byte, 1,024 MBYTES es igual a un TBYTE o tera byte, 1,024 TBYTES es igual a un PBYTE o peta byte, etc.

   Lenguaje de 2a generación: Es la manera en que podemos programar ya en lenguaje de programación con semántica y sintaxis propia de cada lenguaje, se sub-clasifican en niveles que definen que tan apegados al lenguaje humano son, así los de bajo nivel son los mas pegados al lenguaje máquina según las necesidades de cada sentencia -RPL, cobol, BASICA, etc. por ejemplo-, mientras los de alto nivel son como si los estuviéramos leyendo normalmente en ingles -Pascal, JS, SQL, etc. por ejemplo-.

   Ambiente de desarrollo: Es el entorno de trabajo normal que utilizan los lenguajes de programación y nos permiten acceder de manera adecuada a las características propias del lenguaje de programación.

   Lenguaje orientado a objetos: Son lenguajes que se basan en la definición o estructura de elementos informáticos tal como las bases de datos, que aplican estos conocimientos para almacenar la información recabada. Y tienen propiedades heredables así podríamos decir que el objeto lince, posee todas las características de el objeto felino y este del objeto ser vivo, por ejemplo. entonces podemos contestar las preguntas ¿el lince respira?... Si, no por ser un lince, ni por ser felino, sino por ser un ser vivo, o ¿el lince tiene garras?... SI, no por ser un lince, sino por ser felino, o ¿el lince tiene ventosas? ... No, por que esta característica no forma parte ni de los linces, ni de los felinos, ni de todos los seres vivos.
   Es decir, tienen características comunes entre todos los integrantes de un grupo, pero posiblemente únicos con respecto a otros grupos, a esto se le conoce como clases y son comunes entre todos sus integrantes aun que tengan un valor diferente, por ejemplo todos los humanos tienen un nombre, pero este nombre es diferente entre todos los humanos.
   También poseen eventos propios de la clase y se refieren a acciones que ocurren en algunas circunstancias -o estados- cuando existe la interacción con otros elementos, sean de su propia clase o no. Por ejemplo un empleado recibe un sueldo por su trabajo cada que cumple su jornada laboral y se alimenta cuando tiene hambre y a su alcance fruta.
   Esto nos permite definir desde un inicio las necesidades de información de un sistema, los posibles estados y que hacer en determinados casos.

   Control de versiones: Este control nos dice que tanto se ha modificado un desarrollo desde sus inicios, y por ende podemos referirnos a una versión determinada para cubrir las necesidades propias de la solución.
   La nomenclatura depende del desarrollo aun que lo mas común es: XX.XX.XX.XX siendo el primer número una referencia directa a la versión misma e identifica el paradigma que se está cubriendo, los siguientes niveles identifican las necesidades de la implementación (aun que esto es opcional en algunos casos) y lo que se está cubriendo, el último nivel identifica la modificación dejando normalmente el ultimo dígito para: nones para una versión aun no liberada o en revisión y pares para versiones liberadas (es decir, ya revisadas y aceptadas).

   Paradigma: Es una manera única de pensar tendiente a obtener un resultado en un procedimiento.

Proceso
Antes
   Definición de alcances del desarrollo. Es un documento donde se especifican las necesidades a solucionar, compromisos a cubrir y tiempos dentro de un desarrollo, habla de un acuerdo tanto del cliente objetivo como del desarrollador o responsable de la solución.
   Personal (desarrollador, coordinación, usuario final, jefe de usuario)
   Herramientas a utilizar.
Durante
   Diseño de base de datos
   Diseño de interfase
   Programación de solución inter-relacionando base de datos e interfase para una solución completa.
   Revisión y verificación 50% 75% 100% (aun que esto se recomienda con el cliente, esta revisión puede realizarse internamente cada día en sistemas)
Después
   Adecuaciones posteriores 
   Medición
   Satisfacción total: Es cubrir al menos el 80% de las necesidades definidas en el alcance (el otro 20% podría no presentarse hasta este momento pero deberían estar contempladas en la solución), esta satisfacción es la que da el par en el control de versiones.

Ejemplo
   Google docs Alcance
   Google docs Seguimiento
   Google docs Entrega parcial
   Google Docs Satisfacción total

   Para un desarrollo optimo podemos usar algunos de los diagramas siguientes como herramientas que nos facilitan su administración y desarrollo dependiente de lo que se espera desarrollar y actividad.

   Diagrama ER (entidad - relación): es una herramienta que nos permite identificar las necesidades de información entre elementos, se usa en el diseño de bases de datos y programación orientada a objetos, se basa en rectángulos para declarar entidades con sus características, dentro de diseña de bases de datos estos incluyen las llaves, los únicos y las referencias externas; flechas de consecución para indicar la precedencia o importancia, nos da una idea del sentido de lectura del diagrama mismo; relación entre los dos elementos que nos dice si la entidad menor es 0 (para elementos no requeridos), 1 (para elementos requeridos), o Muchos (para mas de 1 elemento) con respecto a la entidad superior, Además es recomendable en diseño de bases de datos el uso de áreas coloreadas para ubicar rápidamente un grupo de elementos que forman parte de una función determinada y también es recomendable una leyenda del proyecto, aprobación y versión del mismo para mantener coherencia.
   Diagrama PERT: es un diagrama muy útil para mantener el seguimiento y consecución de los eventos que tienen que incluirse en un proyecto, y mantener en la mira los elementos que podrían causar un atraso en la ejecución del mismo, se utilizan nodos con la duración máxima y mínima, en cada nodo donde estos números sean iguales significan que son parte de la ruta crítica (colores rojos) por ende es en esta donde no debemos retrazar, cuando estos son diferentes indican la holgura que guardan estos así que son los hitos en los que tenemos tiempo de sobra y forma parte de una ruta normal (colores negros) y vectores que indican el evento, la duración de este, y la consecución, por lo tanto alimentan los números en los nodos, existen vectores que solo se especifican para precedencia (colores gris) que solo nos indican el orden o elementos que son requeridos para el siguiente evento son los que se muestran en el ejemplo como C y E, no deben afectar las duraciones de estos C 0 (cero) o un resultado de los eventos que incluyen E 4 = D 2 + G 2.

   Diagrama de GANTT: nos permite administrar los momentos de ejecución de eventos que intervienen en un proyecto calendarizándoles y aun que nos da una consecución las razones de esta solo son claras para alguien que conoce el procedimiento y las necesidades de dicho evento. También es posible incluir varios eventos en uno solo por área laboral, ejecutante o necesidades como en el caso de ejemplo de "selección" que abarcaría transporte, clasificación y empaque o sobresaltar el evento actual (el 30/05/2019 corresponde a la fecha en que se realizó esta imagen)
   Diagramas UML
   Diagramas jurdon o flujo estandar
Proyectos
   Para estudiar y por cuestiones de espacio, dividiremos el diagrama PERT en fases, así la primera cubre el proceso de pre-venta y es tan simple como una linea, puesto que sería como un diálogo en cliente y proveedor hasta la firma del convenio, y aun que no siempre es tan simple no tenemos el control total de este, pero si una secuencia.

    Luego el desarrollo, iniciando por bases de datos (para determinar las necesidades de cada elemento solicitado) y diseño de interfases (para mantener una integración acorde para cada usuario), en este ejemplo se propone una revisión de acuerdo al 50% estimado del desarrollo - implementación, para corregir algunas adecuaciones solicitadas por el cliente y que estos cambios se den en un punto donde aun se pueden corregir; En algunos casos de escribe (I) como duración indicando que esto marca un hito, es decir un momento sin duración contemplada.

   Así pués, siguiendo esta práctica, la siguiente presentación de resultados ante el cliente seria al 75% estimado de avance, para aclarar cuestiones del desarrollo o dudas surgidas de la presentación anterior.

   Al momento de la entrega seria con 130-120 dias, mismos que representarían el 100% estimado del avance incluyendo la documentación impresa o en linea de la misma solución.

   Se propone ademas un periodo de 30 dias para control de calidad y sobre la cual está comprometido el 100% de pago por satisfacción del cliente y esto es con la colaboración de los usuarios objetivo.




Infografía
 
Comercial

No olviden suscribirse y si tienen dudas pueden comentar 

No hay comentarios.:

Publicar un comentario