sep 19

Análisis, diseño y programación

Todo sistema informatico, para ser implantado requiere de 3 fases fundamentales,

  1. El análisis
  2. El diseño
  3. La programación

Vamos a ver en que consiste cada una de éstas fases:

  • El análisis, consiste en realizar el planteamiento del problema, reunir la documentación e información preliminar y determinar los requisitos necesarios para completar todo el desarrollo.
  • El diseño, consiste en especificar las caracteristicas que debe tener el producto terminado y como alcanzar dicho objetivo
  • La programación, se encarga de desarrollar todas las especificaciones descritas en el diseño mediante la creación del software necesario para implementar el diseño.

Todos habeis visto en alguna ocasión alguna de las muchas versiones que se han realizado sobre “Los 3 mosqueteros” y ahora seguramente esperais que os cuente la peli para entender estos conceptos, ¿verdad?, pues no, ésta vez no hay peli. Por cierto, os habeis dado cuenta que “Los tres mosqueteros” llevaban capa, al igual que Caperucita Roja, pues algun dia os contare una historia sobre las “capas”.

Bueno vale, os contare un cuento, pero será el de “Los 3 jabalies”:

Erase una vez un bosque en el que vivian 3 jabalies, y como no, un lobo hambriento.

Un dia hartos de que el lobo les acosara con sus tremendos colmillos y con su gran bocaza, decidieron que debían construir una choza para refugiarse en los momentos de peligro.

El jabalí programador, dijo vamos a construir una casa que nunca podrá derribar y empezo a programar, … y cuando hubo acabado, como por casualidad, el lobo apareció, y soplo y soplo hasta que la choza destruyó.

El jabali diseñador, dijó, voy a diseñar una casa que ni siquiera un elefante derribará, y comenzo a desarrollar, … y cuando hubo acabado, como siempre, el lobo volvió para incordiar, y comenzo a soplar y soplar, y aunque un poco más le costó, al final la casa derribó.

El jabalí analista, dijo finalmente, voy a analizar una casa y cuando haya termiando, tú (al jabali diseñador) la diseñaras y tú (al jabali programador) la crearás y asi lo hicierón.

Al finalizar, como siempre, el lobo (jefe del proyecto) empezó a soplar y soplar, luego empezo a golpear y por mas que soplaba y golpeaba, la casa no se derribaba.

Si bién es cierto, que despues de tanto ajetreo, los jabalies tubieron que hacer alguna reforma y redecorar algunos detalles de la choza, pero ésta se mantuvo en pie y por fin el proyecto llegó a buen puerto.

Después de leer el cuento, seguramente habrá varias dudas que os mantendrán intrigados, vamos a resolverlas ya, no os volvais impacientes:

  1. ¿Porque jabalies en vez de cerditos?, pues es lógico, hemos indicado al principio del cuento que estaban en el bosque, y la inmensa mayoria de los cerdos que conocemos son de granja, además de evitar así polemicas sobre si el cuento tiene o no, derechos de autor y evitar las posibles represalias de la S.G.A.E.
  2. ¿Porque el lobo siempre aparece cuando ya han terminado?,  pues sencillo, porque como jefe de proyecto que es, debe estar enterado de todo lo que hacen los jabalies.

Este cuento, como todos, viene con moraleja:

En cualquiera de los 3 casos comentados anteriormente, solo el 3º consiguió su objetivo, y lo hizó porque a diferencia de los dos anteriores, trabajarón en equipo, y ello les condujó al éxito.

Además, el problema principal en la mayoria de las aplicaciones que realizamos, y yo también he cometido esos errores, es el tiempo.

Asi es, el tiempo, y no me refiero a la climatología, si llueve, si hace calor, si nieva, aunque esto también influye en nuestro estado de animo.

Me refiero a “otro” tiempo, al tiempo que dedicamos a cada una de estas tareas, y es que hay una regla que no falla (ya que se trata de una simple regla estadistica y la estadistica nunca falla, ya que se regula asi misma en el mismo momento en que hay variaciones).

Esta regla es la del 80/20, que seguro conocereis, y según la cual debemos dedicar el 80% de nuestro tiempo y recursos a las tareas o fases más importantes y asi minimizaremos los errores cometidos, que serán el 20% y ademas, dichos errores serán mas faciles de solucionar y no afectaran a la estructura principal del proyecto.

Y aquí viene donde uno debe pensar y decidir cuales son las fases mas importantes y cuales no.

Yo he resuelto este dilema desde hace mucho tiempo, ¿quereis saber como?

Cuando nos casamos (mi esposa y yo), llegamos a un acuerdo para evitar futuras discusiones:

– En casa, siempre seria yo quien tomara las decisiones importantes

– Pero ella sería quien decidiría que tareas son importantes y cuales no.

Espero vuestras aportaciones 😉

PDF Printer    Enviar artculo en formato PDF   
comments: Comentarios desactivados en Análisis, diseño y programación
nov 17

Calendario mensual en V7

Esta vez voy a explicar, con detalle como realizar un calendario mensual en V7.

En realidad, se trata de uno de los primeros ejercicios que hice cuando aparecio la primera version de V7, y ni siquiera recuerdo donde estan los proyectos, seguramente se habran perdido al reiniciar el servidor de la nube en alguna ocasion, pero como dice un amigo, “lo importante no es que te den los peces, lo importante es que te enseñen a pescar” 😉 .

Y a pesar de que los proyectos se perdieron, seguramente en alguna prueba de nuestro objeto “SpaceEngine”, la buena noticia es que tengo costumbre de documentar casi todo lo que hago, cuando el tiempo no me agobia, y de este ejercicio tengo toda la documentación necesaria para realizarlo paso a paso.

Es un ejercicio muy sencillo, y creo que esta muy detallado, pero si alguien tiene alguna duda puede exponer aqui sus comentarios

Aqui teneis la primera leccion para iniciarse en la pesca de la v7rucha:

Este es el enlace con la informacion necesaria para realizar el ejercicio

Leedlo con calma, y al ataquer …. (tened en cuenta que se realizo con la primera version 7.0 y es posible que algunas cosas puedan ser mejoradas con la version actual, sobre todo el interfaz)

PDF Creator    Enviar artculo en formato PDF   
comments: 1 »
nov 13

Estructuras de programacion: DO … WHILE

Y nos queda el bucle DO … WHILE, y esta sentencia es similar al bucle FOR y WHILE, en realidad, para ciertos casos, se podrian utilizar cualquiera de ellas y el resultado seria el mismo.

C++

do{
instrucciones;-
}
while(condicion);

Java

do
{

sentencias;
}
while ( condición );

Y el siguiente metodo, es la forma abreviada de hacer un bucle DO … While con una sola sentencia.

do sentencia while ( condición );

JavaScript

do
{
sentencias;
}
while(
condición );

PHP

do {
sentencias;
}
while (
condición);

Velneo

En velneo no disponemos del bucle DO … While, solo podras usar el bucle FOR

C#

do {
instrucciones;
}
while(
condición );

Visual Basic

Do { While | Until } condicion
[ sentencias ]
[ Exit Do ]
[ sentencias ]
Loop

o tambien


Do
[ sentencias ]
[ Exit Do ]
[ sentencias ]
Loop { While | Until } condicion

Ruby On Rails

until condicion

sentencias

end

El bucle FOR se suele utilizar para repetir una tarea N veces, y WHILE se suele utilizar cuando se debe comprobar la condicion antes de ejecutar la tarea por primera vez, esto implica que el contenido del bucle While, podria no ejecutarse y el bucle DO … WHILE, similar a los anteriores excepto en una cosa, la condicion se comprueba al final del bucle, y eso implica que las sentencias contenidas en el interior del bucle se van a ejecutar al menos una vez.

Esta vez lo repetire solo una vez, solo una vez, porque la condicion no se ha cumplido, pero eso aun no lo sabia hasta que lo he repetido.

PDF Creator    Enviar artculo en formato PDF   
comments: Comentarios desactivados en Estructuras de programacion: DO … WHILE
nov 3

Estructuras de programacion: WHILE

Esta vez si que hablamos de WHILE, y esta sentencia es similar al bucle FOR, en realidad, para ciertos casos, se podrian utilizar cualquiera de ellas y el resultado seria el mismo.

C++

while(condicion)
{
instrucciones-a-repetir;
}

Java

while( condicion ) {
// instruccionoes a repetir
}

Y el siguiente metodo, es la forma abreviada de hacer un bucle While con una sola sentencia.

while( condicion ) sentencia;

JavaScript

while ( condicion )
{

//sentencias-a-repetir;
}

PHP

while ( condición ) sentencia;

En pHP tambien disponemos del metodo abreviado y del metodo normal para este tipo de bucle.

while( condición )
{
instrucciones;
}

Velneo

En velneo no disponemos del bucle While, solo podras usar el bucle FOR

C#

while( condición )
{
instrucciones;
}

Visual Basic

While condition
[ sentencias ]
[ Exit While ]
[ sentencias ]
End While

Ruby On Rails

while condicion
sentencias
end

Y despues de ver como son las sentencias, algunos os preguntareis, ¿que sentido tiene tener dos sentencias para realizar la misma tarea?, bueno, pues debo decir que no son solo dos, en algunos casos tenemos 3 sentencias para realizar la misma tarea, el bucle, es decir, repetir una tarea un numero determinado de veces.

Las diferencias son minimas, en algun caso casi no existen, pero basicamente son de eficiencia en la programacion.

El bucle FOR se suele utilizar para repetir una tarea N veces, y WHILE se suele utilizar cuando se debe comprobar la condicion antes de ejecutar la tarea por primera vez, esto implica que el contenido del bucle While, podria no ejecutarse.

Esta vez no me voy a repetir, porque la condicion no se ha cumplido.

PDF Creator    Enviar artculo en formato PDF   
comments: Comentarios desactivados en Estructuras de programacion: WHILE
oct 28

Estructuras de programacion: FOR

Visita el blog oficial del autor:  “Pepeto’s blog

Continuamos con las odiosas comparaciones, y esta vez le toca el turno a los bucles, esas estructuras que se repiten, se repiten, se repiten, stop!, una y otra vez mientras se cumple la condicion.

Si tenemos en cuenta lo dicho anteriormente, pareceria que estamos hablando de WHILE, pero no hemos llegado aun, hoy le toca el turno a FOR, que tambien necesita una condicion para ejecutarse, aunque la condicion siempre suele ser un contador numerico incremental, lo que permite saber exactamente cuantas veces se ejecutara el contenido.

C++

for( contador; condicion-final; incremento )
{

instrucciones-a-repetir;
}

Java

for (;;){} // bucle infinito

Esta es la forma de hacer un bucle infinito en Java

for( valor-inicial ; condición-final ; incremento )
{

// instruccionoes a repetir
}

Y el siguiente metodo, es la forma abreviada de hacer un bucle con una sola sentencia.

for( valor-inicial ; condición-final ; incremento ) sentencia;

JavaScript

for ( inicialización ; condición ; incremento )
{

//sentencias-a-repetir;
}

Para una sola sentencia tenemos el metodo abreviado

for ( inicialización ; condición ; incremento ) sentencia;

PHP

for ( inicialización ; condición ; incremento ) sentencia;

En PHP tambien tenemos el metodo abreviado y normal.

for ( inicialización ; condición ; incremento )
{

sentencias;
}

Velneo

En velneo necesitamos nuevamente mostrar una imagen para ver el bucle

Bucle FOR

C#

for( inicialización; condición; iteración )
{
instrucciones;
}

Visual Basic

FOR (inicializacion) TO (termino del bucle) STEP (paso)
sentencias
NEXT

Ruby On Rails

for variable [, variable …] in expression [do]
code
end

Ahora la decision la debes tomar tu, ¿has aprendido algo?, ¿has aprendido algo?, ¿has aprendido algo?, ¿has aprendido algo?, …

PDF Creator    Enviar artculo en formato PDF   
comments: Comentarios desactivados en Estructuras de programacion: FOR
oct 21

Te atreves a generar un Word

Ahora, visto esto, y pensando un poquito,

¿que pasaria si escribo un documento en Html y lo guardo con la extension “.DOC”?

<html>

<head>

<title>Ejemplo para generar un documento de Word</title>

… sigue tu con el Html, que me da verguenza

</head>

<body>

… escribe aqui el contenido del cuerpo

</body>

</html>

¿te atreves a probarlo?

si eres atrevido, cuentame el resultado

lo peor que podria pasar, seria que el universo se colapsara y todo volveria al comienzo, un nuevo “Big Bang!”, y se crearia un nuevo universo, sin Politicos, sin Clero, sin Abogados, sin Informaticos, vamos una “utopia” 😉

PDF Creator    Enviar artculo en formato PDF   
comments: 4 »
oct 21

Generar hojas de calculo Excel sin DLL

Se trata de un pequeño truco, y lo importante no es “el que” hace, sino “el como“.

Se trata de generar una hoja de calculo de Excel, pero como se indica en el titulo, lo vamos a generar desde cualquiera de las versiones de Velneo, incluida V7, por supuesto.

Pero antes de continuar, vamos a probar si funciona o no,

Copia este texto:

<table>
<tr>
<td>fila-1-col-1</td>
<td>fila-1-col-2</td>
<td>fila-1-col-3</td>
<td>fila-1-col-4</td>
<td>fila-1-col-5</td>
</tr>
<tr>
<td>fila-2-col-1</td>
<td>fila-2-col-2</td>
<td>fila-2-col-3</td>
<td>fila-2-col-4</td>
<td>fila-2-col-5</td>
</tr>
<tr>
<td>fila-3-col-1</td>
<td>fila-3-col-2</td>
<td>fila-3-col-3</td>
<td>fila-3-col-4</td>
<td>fila-3-col-5</td>
</tr>
</table>

Como podras comprobar, es texto HTML, puro y duro, y corresponde a una tabla

Copialo en el Bloc de notas, ahora guarda el archivo con extension XLS, y despues prueba a abrir el archivo con excel.

Sorprendido, pues eso,

Ahora como lo hacemos en V6, V7, etc,

Pues sencillo, solo necesitas un proceso que te genere el texto Html correspondiente a la tabla,

luego guardas el archivo:

Fichero abrir “lectura/escritura”

Fichero “guardar linea”: texto-html

y no olvides que el archivo debes cuardarlo con extension XLS, propia de Excel

ya ta

more easy is impossibol
no DLL, no complicate, nodin de nodin,

tengo que mejorar este Manche-Inglis, 😀

la vida ya es bastante complicada desde que existen los “informaticos”, hagamosla un poco mas sencilla, “simple is beautifull”

PDF Creator    Enviar artculo en formato PDF   
comments: 7 »
oct 20

Estructuras de programacion: SWITCH

Ya que hemos empezado con las condiciones, vamos a continuar con ellas.

En el “post” anterior veiamos como en algunos casos, era posible realizar un IF multiple con la sentencia IF ( codicion1 ) { sentencias; } ELSE-IF ( condicion2) { sentencias; }

Pero para realizar esta tarea, siempre y cuando la condicion a comprobar sea la misma, tenemos una estructura mas apropiada, el SWITCH , que nos permite comprobar diferentes resultados para una misma condicion,

C++

switch (condición)
{

case primer_caso:
instrucciones 1; break;
case segundo_caso:
instrucciones 2; break;
case caso_n:
instrucciones n; break;
default:
instrucciones-else;
}

Java

switch( expresión )
{
case constante1:
sentencia1; break;
case constanteN:
sentenciaN; break;
default:
sentencia; break;
}

JavaScript

switch( expresión )
{
case constante1:
sentencia1; break;
case constanteN:
sentenciaN; break;
default:
sentencia;
}

PHP

switch( expresión )
{
case constante1:
sentencia1; break;
case constanteN:
sentenciaN; break;
default:
sentencia;
}

Velneo

En velneo no disponemos de esta estructura, al menos en la version 7.4.1

C#

switch (caseSwitch)
{
case 1:
Console.WriteLine(“Case 1”); break;
case 2:
Console.WriteLine(“Case 2”); break;
default:
Console.WriteLine(“Default case”); break;
}

Visual Basic

Select Case <condición>
Case <opción 1>
‘…
Case <opción 2>
‘…
Case Else
‘…
End Select

Ruby On Rails

case var
when x
# do stuff
when y, z
# do other stuff
else
# yay, else, then!
end

Fijate en un detalle, al finalizar cada sentencia CASE, casi siempre hay una sentencia BREAK, es importante y es por una razon, si no indicamos el BREAK, seguiran ejecutandose las sentencias de forma secuencial hasta finalizar el SWITCH.

Como siempre las diferencias estan en Visual Basic y Ruby On Rails.

Ahora la decision la debes tomar tu, has aprendido algo, ¿ case “POCO” , case “REGULAR” , case “MUCHO” , default: “NS-NC”?

PDF Creator    Enviar artculo en formato PDF   
comments: Comentarios desactivados en Estructuras de programacion: SWITCH
oct 14

Estructuras de programacion: IF

Seguimos con nuestra comparativa, y hemos ampliado la familia, con tres nuevos miembros a examen (a peticion de Jorge Hontoria 😉 ) y ha sido revisado el articulo anterior para incluir esta peticion desde su origen.

En esta ocasion vamos a ver una de las sentencias mas comunes de control de flujo en una aplicacion, la toma de decisiones, que admite dos posibles respuestas: SI / NO , Verdad / Falso , 1 / 0 , llamadlo como querais, se trata del IF de toda la vida, la sentencia que te obliga a elegir un camino, y por tanto, a dejar otro, como la vida misma. Aunque no siempre, el camino elegido, sea el mas correcto.

A lo que vamos, que se nos va la pinza, aqui teneis el codigo en cada uno de los lenguajes:

C++

if (condición)
{
instrucciones;
}
else
{
instrucciones;
};

Java

if (condición) sentencia 1;
else sentencia 2;

En el codigo anterior puedes observar como para una sola sentencia verdadera o falsa, no es necesario indicar los { }

if (condición)
{
sentencia-1;
sentencia-2;
}
else
{
sentencia-3;
sentencia-4;
}

JavaScript

if (condición) sentencia 1;

En este aspecto JavaSrcipt es igual a Java

if (expresión) {
//acciones a realizar en caso positivo – verdadero
//…
} else {
//acciones a realizar en caso negativo – falso
//…
}

PHP

if (condición1)
{

Instrucción 1;
Instrucción 2;

}
else
{

if (condición2)
{

Instrucción A;
Instrucción B;

}
else
{
Instrucción X

}

}

Las estructuras tambien pueden ser anidadas como vemos aqui. Y en algunos casos como PHP, tambien podemos utilizar IF multiples,

if (condición1)
{

Instrucción 1;
Instrucción 2;

}
elseif (
condición2)
{

Instrucción A;
Instrucción B;

}
else
{

Instrucción X

}

HTML

Este lenguaje no dispone de estructuras de control de flujo, ya dije que no es un lenguaje de programacion como tal.

CSS

Pues como Html, no permite estructuras de control de flujo, se ejecutan secuencialmente, de principio a fin del archivo.

Velneo

Para Velneo V7 no me queda otra que utilizar imagenes, pues los procesos y eventos no son escritos al uso, con un editor de texto, que le vamos a hacer

Condicion IF

C#

if( condición )
instrucciones;

Si deseamos incluir varias sentencias, estamos obligados a iniciar y finalizar con { }

if( condición ) {
instrucciones;

}
else {
instrucciones;

}

Visual Basic

IF (expresion) then
Sentencias
….
ELSE
Sentencias
….
END IF

V.B. tambien permite los IF multiples, como vemos a continuacion,

IF (expresion1) then
Sentencias1
….
ELSEIF (expresion2) then
Sentencias2
….
ELSEIF (expresion3) then
Sentencias3
….
ELSE
Sentencias4
….
END IF

Ruby On Rails

if condicion
Sentencias1
else
Sentencias2
end

Ruby tambien permite los IF multiples, pero fijate que “else-if” se convierte en “elsif“, no se trata de un error tipografico.

if condicion1
Sentencias1
elsif condicion2
Sentencias2
else
Sentencias3
end

Ahora la decision la debes tomar tu, has aprendido algo, ¿SI o NO?

PDF    Enviar artculo en formato PDF   
comments: 2 »
oct 8

Estructuras de programacion: REM

Vamos a empezar con esta serie de articulos, en la que se pretende comparar algunos de los lenguajes de programacion mas conocidos e importantes y por supuesto, Velneo V7.

Y he decidido comenzar por REM,

No se porque, quiza por que su presencia en una aplicacion en ejecucion es completamente insignificante, tanto, que la importancia que tiene esta sentencia en ejecucion, es inversamente proporcional la importancia que tienen en el codigo fuente,

REM (en ejecucion)  ==  Null

REM (en codigo fuente)  ==  Full

Asi es, en ejecucion no vale para nada, y sin embargo en el codigo fuente es imprescindible para entender lo que se lee y lo que el programador quiere realizar, y es importante no solo para que los demas lo entiendan, lo es tambien para uno mismo.

Y como se usa en cada uno de los lenguajes,

C++

/*
rem de varias lineas
*/

Java

// rem de una linea


/*
rem de varias lineas
*/

JavaScript

// rem de una linea

/*
rem de varias lineas
*/

PHP

// rem de una linea

/*
rem de varias lineas
*/

HTML

<!– rem de una o varias lineas –>

<!–
rem de una o varias lineas
–>

CSS

/*
rem de varias lineas
*/

Velneo

rem ( aqui escribes el comentario, solo una linea )

Como puedes comprobar, en todos los lenguajes de programacion que hemos comparado es exactamente igual.

Claro que HTML es diferente, pero es que HTML es un lenguaje de etiquetas y no un lenguaje de programacion como tal.

Edito:

Gracias Jorge por tus comentarios, los tendre en cuenta, y aqui he re-editado el post para incluir lo que pides, ruego me disculpeis si cometo algun error, pues no conozco a fondo todos los lenguajes que aqui se estan comparando. Pero intentare hacerlo bien, :)

C#

// rem de una linea

/*
rem de varias lineas
*/

Visual Basic

‘ comentario de una linea, en V.B. es necesario comentar cada linea

Ruby On Rails

[(#REM)  – comentario para una o varias lineas ]

Create PDF    Enviar artculo en formato PDF   
comments: 2 »