Sei sulla pagina 1di 46

BOUML

DEFINICION
Una herramienta CASE de UML gratuita BOUML es extensible y las herramientas
externas llamadas plug-outs pueden ser escritas en C o en Java, utilizando
BOUML para su definicin como cualquier otro programa. Los generadores de
cdigo y reveses son unos de los predefinidos plug-outs incluidos en la
distribucin de BOUML.
CARACTERISTICAS
Es gratis.
Aunque no es JAVA, es multiplataforma: Linux, Solari, Mac Os, Windows,
incluida en proyecto LULA.
Permite programar simultneamente en C++, Java, Phpy IDL.
Programa orientado a objetos.
Permite trabajar con UML 2 (ArgoUML todava no lo permite).
Soporta gran cantidad de diagramas (incluidos los de secuencia que en el
ArgoUML funcionan una versin si y otra no.
Es rpida y apenas consume memoria.
Es sencilla de utilizar.
Puedes generar cdigo para Java, C++ e IDL (y controlar bastante la
generacin)
Tambin es capaz de generar documentacin en varios formatos (HTML,
XMI, ...)
Puedes trabajar en grupo con sus mdulos "Project Control" y "Project
Synchro".
Ventajas


gran cantidad de diagramas (incluidos los de secuencia que en el ArgoUML
Es

generar cdigo para Java, C++ e IDL (y controlar bastante la generacin), y

Tambin es capaz de generar documentacin en varios formatos (HTML,

"Project Synchro".
Y adems, aunque no es Java, tambin es multiplataforma: Linux, MacOS y
Windows.
En definitiva, todas estas caractersticas y su bajo precio (0 :) la convierten en una
alternativa por lo menos digna de evaluar (ya veremos que nos dice el tiempo y el
uso ;)

1. Creando un proyecto Cuando ejecutemos BOUML nos encontraremos con


algo como:

A la derecha ser donde nos aparezca el proyecto y el modelo que vayamos


creando, a la izquierda nos aparecern los distintos diagramas, y en la parte de
abajo podremos editar la documentacin del elemento que est seleccionado.
Para crear el proyecto podemos hacer: Project -- > New , y nos aparecer un
dilogo preguntando el directorio donde queremos guardar el proyecto. A su
eleccin el nombre "autentia-project". Veremos que nos saca la siguiente
advertencia:

Con esto, BOUML, nos est indicando que no tenemos definida la variable de
entorno BOUML_ID, esta variable de entorno representa el id del desarrollador
para trabajar de forma simultnea sobre el mismo modelo. Es decir, cada
desarrollador que trabaje de forma simultnea sobre el mismo modelo debera
tener un BOUML_ID diferente. Ahora no nos hace falte definir la variable (cuando
se trabaja solo BOUML nos da la variable al azar) pero si queremos trabajar en
grupo y queremos usar las herramientas "Project Control" y "Project Synchro",
ser necesario darle una variable. Por ahora le damos a OK y BOUML habr
elegido un nmero al azar como BOUML_ID. A continuacin nos presenta otra
alerta:

Con esto nos est recordando que tenemos que indicar los lenguajes destino para
los que vamos a generar cdigo. Le damos a OK, y nos aparece la siguiente:

Vemos que hemos vuelto a la primera pantalla, pero ya tenemos el proyecto


creado con el mismo nombre que le habamos dado al directorio. Lo primero que
vamos a hacer es lo que nos deca la segunda advertencia: fijar los lenguajes para
los que se va a generar cdigo. As que, como nos deca la alerta, damos clic
sobre el men Misce llaneous , y seleccionamos los que nos interesen. En mi caso
he marcado Java default definition .

Entorno
El tutorial est escrito usando el siguiente entorno:
Hardware: Porttil Asus G1 (Core 2 Duo a 2.1 GHz, 2048 MB RAM, 120 GB HD).

BOUML 2.29

Instalacin
Como siempre, en Debian, la instalacin resulta sumamente sencilla. Basta con
hacer: # apt-get bouml bouml-plugouts-src Si tenemos otro sistema operativo,
siempre podemos ir a la pgina http://bouml.free.fr/download.html y descargar la
versin que nos interese. En http://bouml.free.fr/ adems tambin podemos
encontrar mucha documentacin que est bastante bien, y otros tutoriales (en
ingles y francs).
Precio / Licencia
El modelador de BOUML (BOUML contra bouml.exe) necesita un archivo de
licencia vlido para funcionar
El modo estndar usa un solo asiento de licencias, que estn asociados a los
anfitriones, y que puede ser vlida para un nmero limitado de aos. Los archivos
de licencia son mltiples los ejrcitos, que no es necesario para manejar un
archivo de licencia propia para cada husped, bajo la condicin de la vigencia de
la licencia es la misma para todos. Las licencias no estn asociados a una lista de
los usuarios, no existe ninguna limitacin sobre el nmero de ejecuciones en
paralelo del modelador en un host determinado. Las licencias son independientes
de las versiones de BOUML, esto significa que usted puede cambiar su versin de
BOUML en cualquier momento. No se puede compartir una licencia entre
Windows y Linux, esto significa que si usted tiene un arranque dual en el host y
que vaya a utilizar BOUML bajo Windows y con Linux usted tiene que obtener una
licencia para dos hosts (pero se paga slo una). A priori, una actualizacin de
Windows a una versin distinta (por ejemplo, de Windows XP a Windows Seven)
en un host invalidara la licencia para este equipo. Una licencia en Linux
probablemente sigue siendo vlida si se cambia la versin de Linux (por ejemplo
de Debian Lenny a Debian Squeeze) y probablemente tambin si cambia la
distribucin (por ejemplo, de Mandriva a Ubuntu). Un cambio con respecto al
hardware de un host, puede invalidar la licencia para este equipo, a excepcin de

una modificacin clsico como para aadir el disco (s) o para ampliar la memoria
por ejemplo.
Si usted espera utilizar BOUML en un gran nmero de los ejrcitos, que no sean
compatibles con el uso de las licencias de un solo asiento, ponerse en contacto
conmigo por correo a contact@bouml.fr .
No entregar licencia temporal gratuita, si quieres probar BOUML de cargos, debe
utilizar el visor .
Uso profesional
El precio est disminuyendo con el nmero de estaciones y aos:

los ejrcitos durante 1 ao, o el host 1 durante 2 aos es de 90 (45 por


3 durante 1 ao, es de 130 (
huspedes durante 1 ao o 2 hosts durante 2 aos, es de 160 (40 por
serie al ao).

2 hosts sin lmite de tiempo es de 280 (140


para 4 huspedes, sin lmite en el tiempo es de 480 (120 por serie).
Cuando renueve una licencia, el precio refleja lo que ya han pagado. Por ejemplo,
hoy usted compra 50 una licencia para un anfitrin durante un ao, si un ao
despus de comprar de nuevo una licencia para un host (no puede ser el mismo)
durante 1 ao, su precio ser de 40 como si tuviera un principio adquirido una
licencia para una gran cantidad durante 2 aos.
El uso personal
Para un uso no profesional

uno), sin lmite en el tiempo es de 50

Comprar una licencia


La obtencin de una licencia a cabo en varios pasos:

En cada equipo lanzar el modelador de BOUML ( BOUML contra bouml.exe ), un


cuadro de dilogo archivo llamado archivo de solicitud de licencia de la creacin
aparecer para salvar a un auto de archivo de texto generado asociado a la mquina
actual, y slo al host (no hay datos asociados a los usuarios). Elija la ruta del archivo
a continuacin, confirmar, en caso de xito el mensaje dela generacin de realizar
exitosamente aparecer. La ejecucin se detiene cuando el ahorro se confirma o se

generado y otra informacin. Si hay demasiados servidores que usted me puede


enviar por correo a contact@bouml.fr un archivos que contienen los archivos
generados, no se olvide de dar tambin su identidad y la duracin de la licencia, etc
Su identidad me permite hacer el enlace entre el solicitud y el pago. Despus de
que estos archivos
para confirmar la validez de las informaciones enviadas por usted y para darle el

necesario abrir un paypal cuenta si no tiene ya uno, usted puede pagar a travs de
su Master Card, Visa, American Express , etc (de un solo uso del botn de pago en
la parte inferior de la pgina para ver las posibilidades). Si prefiere otro mtodo de
pago en contacto conmigo por correo ele
recibir por correo el archivo de licencia ( licence.txt ), lo puso en cada equipo en el
directorio de instalacin de BOUML, esto significa que los ejecutables de BOUML
son (advertencia: / usr / lib / BOUML no en Linux, / usr / bin ). Por supuesto, una
copia de seguridad del archivo de licencia para no perderlo, por ejemplo, si se
desinstala la versin actual de BOUML.
No cambie el contener de la preparacin del archivo de licencia que usted enve a
m, ni el archivo de licencia en s mismo ( licence.txt ). El archivo de licencia es
un archivo de texto, es encabezado contiene la fecha de finalizacin de la licencia.

Conclusiones
Con esto, se ha explicado lo ms breve posible el funcionamiento de BOUML esto
es lo ms bsico pero tambin esta aplicacin trae herramientas donde hay muchos
ms diagramas y opciones de visualizacin, generacin de cdigo en otros
formatos, pero su ejecucin son parecida a la que est explicada en este manual.

ERwin

Introduccin

He seleccionado para este informe una herramienta CASE llamada ERwin, es la


ms ocupada en el mercadeo y es compatible con una gran variedad de bases de
datos Oracle, SQL server, Microsoft Access entre otras

PLATINUM ERwin es una herramienta de diseo de base de datos. Brinda


productividad en diseo, generacin, y mantenimiento de aplicaciones. Desde un
modelo lgico de los requerimientos de informacin, hasta el modelo fsico
perfeccionado para las caractersticas especficas de la base de datos diseada,
ERwin permite visualizar la estructura, los elementos importantes, y optimizar el
diseo de la base de datos. Genera automticamente las tablas y miles de lneas
de stored procedure y triggers para los principales tipos de base de datos. ERwin
hace fcil el diseo de una base de datos. Los diseadores de bases de datos slo
apuntan y pulsan un botn para crear un grfico del modelo E-R (Entidadrelacin)
de todos sus requerimientos de datos y capturar las reglas de negocio en un modelo
lgico, mostrando todas las entidades, atributos, relaciones, y llaves importantes.

Ms que una herramienta de dibujo, ERwin automatiza el proceso de diseo de una


manera inteligente. Por ejemplo, ERwin habilita la creacin de un diccionario de
atributos reusables, asegurando la consistencia de nombres y definiciones para su
base de datos. Se mantienen las vistas de la base de datos como componentes
integrados al modelo, permitiendo que los cambios en las tablas sean reflejados
automticamente en las" HERRAMIENTAS CASE vistas definidas. La migracin
automtica garantiza la integridad referencial de la base de datos. ERwin establece
una conexin entre una base de datos diseada y una base de datos, permitiendo
transferencia entre ambas y la aplicacin de ingeniera reversa. Usando esta
conexin, ERwin genera

automticamente tablas, vistas, ndices, reglas de

integridad referencial (llaves primarias, llaves foraneas), valores por defecto y


restricciones de campos y dominios. ERwin soporta principalmente bases de datos
relacionales SQL y bases de datos que incluyen Oracle, Microsoft SQL Server,

Sybase, DB2, e Informix. El mismo modelo puede ser usado para generar mltiples
bases de datos, o convertir una aplicacin de una plataforma de base de datos a
otra.

La empresa a la que pertenece este software es ALLFUSION

Especificaciones tcnicas

Software de Aplicacin Compatibles:

NetDynamics, PowerBuilder, PROGRESS, Visual Basic

Bases de Datos Compatibles:

CA-Clipper, CA-OpenIngres, DB2 for MVS y DB2 for OS/390, DB2 UDB, dBASE,
FoxPro,
HiRDB, Informix, InterBase, Microsoft Access, Microsoft SQL Server, Oracle,
Paradox,
Rdb, Red Brick Warehouse, SAS, SQL Anywhere, SQLBase, Sybase, Teradata

Sistemas Operativos Compatibles:

Windows NT, Windows 95, Windows 98

Requerimientos Tcnicos:

Mnimo 10 MB de espacio de disco duro, 16 MB RAM (32 MB RAM recomendado


para modelos largos.

Ejemplo

Creando entidades y atributos

Paso 1: como primer paso abramos el programa ERwin 7.1


Inicio

Computer Associates

Luego de esto se abrir el programa,

Ahora nos dirigimos a la Pestaa File


e debajo de esta pestaa.

Seleccionamos tal como se muestra en la figura anterior Logical/Physical, luego


de
esto nos dirigimos a la parte ultima de esta ventana y en la seccin Target Database,
escogeremos con que manejador de base de datos deseamos trabajar, para nuestro
caso trabajaremos como SQL Server de la Versin del 2000 al 2005.

Luego damos clic en OK, y nos saldr una ventana, en la cual por defecto esta en
el diagrama lgico, dentro de este se realizara la creacin de Entidades o Clases,
con una herramienta que en breve presentare, as mismo tambin haremos sus
relaciones de cada Entidad, observando muy bien la cardinalidad existente entre
ellas.

Para crear entidades debemos de utilizar la caja de herramientas ERwin Toolbox,


que se encuentran dentro de la pestaa View
ocasiones por defecto ERwin ya tiene todas las cajas de herramientas activadas,
una vez identificadas esta herramientas, nosotros la podemos desplazar hacia
cualquier lugar del programa, tal como se muestra:

Conclusin

Segn los datos expuestos en el presente informe demostramos la facilidad que


existe en el proceso de modelamiento de datos con ello construir una arquitectura
ms simple para los niveles tanto de ingeniera de una organizacin con el fin de
lograr la simplificacin de los datos a nivel de arquitectura para lograr con ello el
avance y distribucin

general de las tareas presentes en cada una de las

actividades dentro de la organizacin.

Como sabemos la herramienta Case se creo con el fin de automotizar las


actividades y con ello lograr tanto una eficiencia como la eficacia en el desarrollo
de las actividades . y la recin expuesta es un caso prctico muy general pero
muy ejemplificador.

PSeInt
Para que sirve PSeInt?
PSeInt est pensado para asistir a los estudiantes que se inician en la
construccin de programas o algoritmos computacionales. El pseudocdigo se
suele utilizar como primer contacto para introducir conceptos bsicos como el uso
de estructuras de control, expresiones, variables, etc, sin tener que lidiar con las
particularidades de la sintaxis de un lenguaje real. Este software pretende
facilitarle al principiante la tarea de escribir algoritmos en este pseudolenguaje
presentando un conjunto de ayudas y asistencias, y brindarle ademas algunas
herramientas adicionales que le ayuden a encontrar errores y comprender la lgica
de los algoritmos.

Caracteristicas y Funcionalidades de PSeInt:

Presenta herramientas de edicin para escribir algoritmos en pseudocodigo


en espaol
o

Autocompletado

Ayudas Emergentes

Plantillas de Comandos

Coloreado de Sintaxis

Indentado Inteligente

Permite generar y editar el diagrama de flujo del algoritmo

Permite la edicin simultnea de mltiple algoritmos

El lenguaje pseudocdigo utilizado es configurable


o

Ofrece perfiles de configuracin predefinidos para numerosas


instituciones

Puede interpretar (ejecutar) los algoritmos escritos


o

Permite ejecutar el algoritmo paso a paso controlando la velocidad e


inspeccionando variables y expresiones

Puede confeccionar automticamente una tabla de prueba de


escritorio

Determina y marca claramente errores de sintaxis (mientras escribe) y en


tiempo de ejecucion

Permite convertir el algoritmo de pseudocodigo a cdigo C++

Ofrece un sistema de ayuda integrado acerca del pseudocdigo y el uso del


programa
o

Incluye un conjunto de ejemplos de diferentes niveles de dificultad

Es multiplataforma (probado en Microsoft Windows, GNU/Linux y Mac OS


X)

Es totalmente libre y gratuito (licencia GPL)

Ejemplos de algoritmos en PSeudoCodigo


En esta seccin puede observar ejemplos de pseudocdigos vlidos en PSeInt,
as como tambin sus correspondientes diagramas de flujo (en cualquiera de las
tres formas soportadas). Recuerde que el lenguaje de PSeInt puede adaptarse a
diferentes perfiles. A modo de ejemplo se incluyen los algoritmos para dos perfiles
diferentes, uno con reglas flexibles, y otro con reglas estrictas.

Suma: Este es el ejemplo ms simple. Muestra cmo cargar dos nmeros


de dos variables, calcular la suma de los mismos y mostrarla en pantalla

Mayores: Busca los dos mayores de una lista de N datos

Coloquial: En este ejemplo se muestran algunas de las variantes que se


pueden utilizar con el perfil de lenguaje Flexible para que el pseudocdigo
se asemeje ms al lenguaje coloquial

Subprocesos: Ejemplo bsico que ilustra la sintaxis para declarar e invocar


nuevas funciones en pseudocdigo

AdivinaNumero: Sencillo juego en el que el usuario debe adivinar un


nmero aleatorio

Promedio: Ejemplo bsico de uso de un acumulador y la estructura de


control PARA para calcular el promedio de un conjunto de valores

Triangulo: Este algoritmo determina a partir de las longitudes de tres lados


de un tringulo si corresponden a un tringulo rectngulo (para utiliza la
relacin de Pitgoras, tomando los dos lados de menor longitud como
catetos), y en caso afirmativo informa el rea del mismo

OrdenaLista: Este ejemplo almacena una lista de nombres en un arreglo y


luego los ordena alfabticamente. El mtodo de ordenamiento es
relativamente simple. Para la entrada de datos se utiliza una estructura
MIENTRAS, sin saber a priori la cantidad de datos que se ingresarn

Modulo: Ejemplo trivial del uso del operador de mdulo (MOD o %)

Menu: Ejemplo simple de men de opciones, con las estructuras RepetirHasta Que y Segun

Digitos: Separa los dgitos de un nmero entero utilizando el operador


mdulo

Resolvente: Utiliza la frmula resolvente para determinar las races de una


ecuacin de segundo grado a partir de sus tres coeficientes, y las informa
adecuadamente segn su tipo (reales iguales, reales distintas, imaginarias)

Primos: Calcula iterativamente los N primeros nmeros primos

Factorizacion: Ejemplo de algoritmo para descomponer un nmero en sus


factores primos

Cadenas: Muestra la utilizacin de las funciones de cadenas para contar las


vocales de una frase

Para: En este ejemplo se recorre un arreglo utilizando las tres variantes de


la estructura Para

Potencia: Ejemplo de una funcin recursiva para calcular una potencia

Promedio2: Ejemplo de cmo crear subprocesos que reciban arreglos como


argumento

Misil: Ejemplo de animacin con cdigos ASCII y la instruccin Esperar

Romanos: Muestra como convertir nmeros enteros a notacin romana


utilizando arreglos

Hanoi: Implementa el conocido juego de las torres de Hanoi en


pseudocdigo

TaTeTi: Algoritmo para el juego del TaTeTi

Advertencia: Las sintaxis que aqu se presenta corresponde a la sintaxis en la


cual se bas originalmente el proyecto. Desde hace varias versiones estoy
buscando que en la palabra pseudocdigo pese ms la parte pseudo que la de
cdigo. Para ello se han agregado posibles sinnimos, sintaxis alternativas o
versiones incompletas de algunas construcciones en pos de desrigidizar el

pseudolenguaje utilizado, siempre y cuando no se caiga en ninguna ambigedad


respecto a su interpretacin. Actualmente, el intrprete puede configurarse para
obligar al alumno a respetar completamente la sintaxis original, aceptar las
variaciones, o algunos grados intermedios (ver perfiles para una comparacin
entre dos versiones de un mismo algoritmo).
El Pseudo-cdigo

Las caractersticas de este pseudolenguaje fueron propuestas en 2001 por el


responsable de la asignatura Fundamentos de Programacin de la carrera de
Ingeniera Informtica de la FICH-UNL. Las premisas son:

lgico (verdadero-falso).

Todo algoritmo en pseudocgido tiene la siguiente estructura general:

Proceso SinTitulo
accion 1;
accion 1;
.
.
.
accion n;
FinProceso

Comienza con la palabra clave Proceso seguida del nombre del programa, luego
le sigue una secuencia de instrucciones y finaliza con la palabra FinProceso. Una
secuencia de instrucciones es una lista de una o ms instrucciones, cada una
terminada en punto y coma.

Las acciones incluyen operaciones de entrada y salida, asignaciones de variables,


condicionales si-entonces o de seleccin mltiple y/o lazos mientras, repetir o
para.

Asignacin

La instruccin de asignacin permite almacenar una valor en una variable.

<variable> <- <expresin> ;

Al ejecutarse la asignacin, primero se evala la expresin de la derecha y luego


se asigna el resultado a la variable de la izquierda. El tipo de la variable y el de la
expresin deben coincidir.

Entradas

La instruccin Leer permite ingresar informacin desde el ambiente.

Leer <variablel> , <variable2> , ... ,


<variableN> ;

Esta instruccin lee N valores desde el ambiente (en este caso el teclado) y los
asigna a las N variables mencionadas. Pueden incluirse una o ms variables, por
lo tanto el comando leer uno o ms valores.

Salidas

La instruccin Escribir permite mostrar valores al ambiente.

Escribir <exprl> , <expr2> , ... , <exprN> ;

Esta instruccin imprime al ambiente (en este caso en la pantalla) los valores
obtenidos de evaluar N expresiones. Dado que puede incluir una o ms
expresiones, mostrar uno o ms valores.

Dimensionamiento
La instruccin Dimension permite definir un arreglo, indicando sus dimensiones.

Dimesion <identificador> (<maxl>,...,<maxN>);

Esta instruccin define un arreglo con el nombre indicado en <indentificador> y N


dimensiones. Los N parmetros indican la cantidad de dimensiones y el valor
mximo de cada una de ellas. La cantidad de dimensiones puede ser una o ms, y
la mxima cantidad de elementos debe ser una expresin numrica positiva.
Se pueden definir ms de un arreglo en una misma instruccin, separndolos con

una coma (,).

Dimension <ident1> (<max11>,...,<max1N>),..., <identM>


(<maxM1>,...,<maxMN>)

Es importante notar que es necesario definir un arreglo antes de utilizarlo.

Condicional Si-Entonces

La secuencia de instrucciones ejecutadas por la instruccin Si-Entonces-Sino


depende del valor de una condicin lgica.

Si <condicin>
Entonces
<instrucciones>
Sino
<instrucciones>
FinSi

Al ejecutarse esta instruccin, se evala la condicin y se ejecutan las


instrucciones que correspondan: las instrucciones que le siguen al Entonces si la
condicin es verdadera, o las instrucciones que le siguen al Sino si la condicin es
falsa. La condicin debe ser una expresin lgica, que al ser evaluada
retorna Verdadero o Falso.
La clusula Entonces debe aparecer siempre, pero la clusla Sino puede no estar.
En ese caso, si la condicin es falsa no se ejecuta ninguna instruccin y la

ejecucin del programa contina con la instruccin siguiente.

Seleccin Multiple

La secuencia de instrucciones ejecutada por una instruccin Segun depende del


valor de una variable numrica.

Segun <variable> Hacer


<nmero1>: <instrucciones>
<nmero2>,<nmero3>: <instrucciones>
<...>
De Otro Modo: <instrucciones>
FinSegun

Esta instruccin permite ejecutar opcionalmente varias acciones posibles,


dependiendo del valor almacenado en una variable de tipo numrico. Al
ejecutarse, se evala el contenido de la variable y se ejecuta la secuencia de
instrucciones asociada con dicho valor.
Cada opcin est formada por uno o ms nmeros separados por comas, dos
puntos y una secuencia de instrucciones. Si una opcin incluye varios nmeros, la
secuencia de instrucciones asociada se debe ejecutar cuando el valor de la
variable es uno de esos nmeros.
Opcionalmente, se puede agregar una opcin final, denominada De Otro Modo,
cuya secuencia de instrucciones asociada se ejecutar slo si el valor almacenado

en la variable no coincide con ninguna de las opciones anteriores.

Lazos Mientras

La instruccin Mientras ejecuta una secuencia de instrucciones mientras una


condicin sea verdadera.

Mientras <condicin> Hacer


<instrucciones>
FinMientras

Al ejecutarse esta instruccin, la condicin es evaluada. Si la condicin resulta


verdadera, se ejecuta una vez la secuencia de instrucciones que forman el cuerpo
del ciclo. Al finalizar la ejecucin del cuerpo del ciclo se vuelve a evaluar la
condicin y, si es verdadera, la ejecucin se repite. Estos pasos se repiten
mientras la condicin sea verdadera.
Note que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca, si al
evaluar por primera vez la condicin resulta ser falsa.
Si la condicin siempre es verdadera, al ejecutar esta instruccin se produce un
ciclo infinito. A fin de evitarlo, las instrucciones del cuerpo del ciclo deben contener
alguna instruccin que modifique la o las variables involucradas en la condicin,
de modo que sta sea falsificada en algn momento y as finalice la ejecucin del
ciclo.

Lazos Repetir

La instruccin Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta


que la condicin sea verdadera.

Repetir
<instrucciones>
Hasta Que <condicin>

Al ejecutarse esta instruccin, la secuencia de instrucciones que forma el cuerpo


del ciclo se ejecuta una vez y luego se evala la condicin. Si la condicin es
falsa, el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condicin.
Esto se repite hasta que la condicin sea verdadera.
Note que, dado que la condicin se evala al final, las instrucciones del cuerpo del
ciclo sern ejecutadas al menos una vez.
Adems, a fin de evitar ciclos infinitos, el cuerpo del ciclo debe contener alguna
instruccin que modifique la o las variables involucradas en la condicin de modo
que en algn momento la condicin sea verdadera y se finalice la ejecucin del
ciclo.

Lazos Para

La instruccin Para ejecuta una secuencia de instrucciones un nmero


determinado de veces.

Para <variable> <- <inicial> Hasta <final> ( Con Paso <paso> ) Hacer
<instrucciones>
FinPara

Al ingresar al bloque, la variable <variable> recibe el valor <inicial> y se ejecuta la


secuencia de instrucciones que forma el cuerpo del ciclo. Luego se incrementa la
variable <variable> en <paso> unidades y se evala si el valor almacenado en
<variable> super al valor <final>. Si esto es falso se repite hasta que <variable>
supere a <final>. Si se omite la clusula Con Paso <paso>, la variable <variable>
se incrementar en 1.

Operadores y Funciones
Este pseudolenguaje dispone de un conjunto bsico de operadores y funciones
que pueden ser utilizados para la construccin de expresiones ms o menos
complejas.

Las siguientes tablas exhiben la totalidad de los operadores de este lenguaje


reducido:
Operador

Significado

Ejemplo

Relacionales
>

Mayor que

3>2

<

Menor que

'ABC'<'abc'

Igual que

4=3

<=

Menor o igual que

'a'<='b'

>=

Mayor o igual que

4>=5

&Y

Conjuncin (y).

(7>4) & (2=1) //falso

|O

Disyuncin (o).

(1=1 | 2=1) //verdadero

~ NO

Negacin (no).

~(2<5) //falso

Suma

total <- cant1 + cant2

Resta

stock <- disp - venta

Multiplicacin

area <- base * altura

Divisin

Potenciacin

Logicos

Algebraicos

% MOD

Mdulo (resto de la divisin


entera)

porc <- 100 * parte /


total
sup <- 3.41 * radio ^ 2

resto <- num MOD div

La jerarqua de los operadores matemticos es igual a la del lgebra, aunque


puede alterarse mediante el uso de parntesis.

A continuacin se listan las funciones integradas disponibles:

Funcin

Significado

RC(X)

Raz Cuadrada de X

ABS(X)

Valor Absoluto de X

LN(X)

Logaritmo Natural de X

EXP(X)

Funcin Exponencial de X

SEN(X)

Seno de X

COS(X)

Coseno de X

ATAN(X)

Arcotangente de X

TRUNC(X) Parte entera de X


REDON(X) Entero ms cercano a X
AZAR(X)

Entero aleatorio entre 0 y X-1

Algunas Observaciones

separadas, mediante el uso de la doble barra ( // ). Todo lo que precede a //, hasta
el fin de la lnea, no ser tomado en cuenta al interpretar el algoritmo.

haber instrucciones fuera del programa, aunque si


comentarios.

otras adentro, pero la estructura contenida debe comenzar y finalizar dentro de la

contenedora.

adores, o nombres de variables, deben constar slo de letras y


nmeros, comenzando siempre con una letra, y no pueden ser palabras
reservadas (como para, mientras, y, no, etc...)

las constantes numricas, el punto ( . ) es el separador decimal.

Verdadero y Falso.
Ejemplos

DIA
Introduccin
Dia contiene un plug-in que permite a los scripts en Python. Cualquier persona que
hace un script Python para Dia debe enviar a la lista de correo, que incluye
algunas ms scripts que ayudara tanto a la depuracin y la creacin de ms
scripts.
En los primeros aos de la instalacin Dia Python, hubo una gran falta de
documentacin. Para empezar, haba un poco de correo de Hans Breuer en el
plug-in Python estructura de objetos y la sintaxis.
He aqu una breve nota de Hans Breuer sobre cmo utilizar Python para crear
objetos en un diagrama .
Si necesita ayuda para empezar con Python para Dia en Windows: Cmo utilizar
Python con Dia en Windows
Scripts de Python provisto de Dia
Hoy en da, hay varios scripts de Python incluidos en el paquete fuente
Dia. Algunos de ellos se presentan aqu.
pydiadoc.py
genera un nuevo diagrama que contiene todos los objetos de dir (dia). Ahora llena
atributos y operaciones mediante el uso de Python reflexin ...
Las clases de la siguiente diagrama se generan automticamente
por pydiadoc.py . La generacin incluye el miembro de la clase, as como las

funciones miembro. La secuencia de comandos no hizo el diseo del diagrama, ni


las conexiones de los objetos.

El diagrama, en el formato nativo de Dia, se incluye en la distribucin binaria Dia


como muestras / Auto / PyDiaObjects.dia (samples \ Auto \ PyDiaObjects.dia en
Windows).
diasvg.py
diasvg.py es un filtro de exportacin SVG para Dia implementado en Python. Lo
mejor est representado por lo que puede hacer:
Parece que este wiki no soporta SVG incrustado, pero se puede descargar el
diagrama aqu . Usted necesitar unnavegador que soporte SVG , o un visor SVG
independiente, con el fin de ver el diagrama.
diasvg_import.py

diasvg_import.py es un filtro de importacin SVG para Dia implementado en


Python. Como la mayora de los otros scripts Dia Python, que tiene dos
propsitos. Una es identificar las debilidades en PyDia. Hacer que funcione
involucrados no slo el desarrollo de la escritura en s, sino tambin la ampliacin
y la fijacin de los enlaces Python subyacentes implementados en C.
Pero, por supuesto, este script se puede utilizar para el trabajo real. En algunos
aspectos se sustituye el filtro de importacin Dia en C, aunque los dos filtros de
importacin existentes nunca apoyar cualquier SVG en la naturaleza. (El vinculada
a informe de error propone lo siguiente :)

La verdadera solucin puede ser la de [...]


empezar de cero con una biblioteca svg capaz
como [http://webcvs.cairographics.org/libsvg/]

codegen.py
Otro 'filtro de exportacin' es codegen.py , que convierte un diagrama hecho con
objetos de la hoja de UML de Dia en cdigo en un lenguaje de programacin
seleccionables por el usuario (en un momento, Python, C ++, Pascal y Java fueron
apoyados; otros idiomas pueden tener ha agregado desde entonces). A diferencia
de la exportacin de SVG, este script usa la interfaz de la PyDia 'Procesador de
objetos'. Para la generacin de cdigo, no sera til para obtener la representacin
grfica del diagrama de exportar. En su lugar, la secuencia de comandos
implementa slo
iteracin en el pasado-en de datos (que es de tipo
dia.!

dia.DiagramData) capas y sus objetos, para extraer

ExportFilter.begin_render

de clase, as como informacin de la herencia de los

()

tipos de objetos respectivos ("UML - Clase" y ms


tarde "UML - Generalizacin")

y
dia.!
ExportFilter.end_render ()

que es implementado de manera diferente para cada


lenguaje de programacin de salida (C ++, Python, y
as sucesivamente).

group_props.py
group_props.py es un prototipo que proporciona una de las funciones bsicas
(antes) ms solicitados del Dia: la capacidad de cambiar las propiedades de varios
objetos a la vez. Esta funcionalidad se construy en Dia comenzando conla
versin 0.97 . group_props.py todava pueden ser tiles como un ejemplo, sin
embargo. Esto demuestra no slo la integracin de una secuencia de comandos
de Python en el men, pero tambin algn tipo de interaccin a travs de pygtk
hecho.
Un ejemplo de dilogo group_props.py en accin

Scripts de Python disponibles en otros lugares

diasql.py
Similar a codegen.py (siempre con Dia - ver arriba) es diasql.py , que convierte un
diagrama de Dia (que contiene los objetos de la hoja de base de datos de
dimetro) en el cdigo SQL. Como se dice en este mensaje de correo-lista , este
script Python ha sido probado con MySQL.
sm_export.py
Otra secuencia de comandos de Python en la misma lnea es sm_export.py , que
convierte un diagrama Dia representa una mquina de estados finitos (FSM; el
diagrama se necesita extraer utilizando objetos de hoja de UML del Dia) en un
archivo de texto que enumera los estados y las transiciones de la FSM .
Estado-Chart de generacin de cdigo (C ++) de UML Diagrama
Sin embargo, otro generador de cdigo es Estado-Chart de generacin de cdigo
(C ++) de UML Diagrama , que es similar en propsito a sm_export.py pero
produce cdigo C ++. La lista de correo de la publicacin tambin incluye una pista
de cmo una secuencia de comandos de Python puede almacenar metainformacin genrica de los objetos de un diagrama de Dia.
Guin Lanzador
El Dia Guin Lanzador le permite definir una lista de scripts de shell que se
pueden iniciar desde un cuadro de dilogo en el Dia. The Script Lanzador da los
scripts de acceso al esquema activo Dia y para objetos en el diagrama.
Dibujar automticamente arcos para conectar objetos seleccionados
Esta secuencia de comandos de Python conecta por completo todos los
seleccionados "Estndar - Ellipse" objetos por medio de - objetos "estndar Arc".
center.py

Scripting Dia en Python es simple. Si usted no sabe por dnde empezar, usted
puede tambin preguntar en la lista de correo. Tal vez va a pasar para obtener
su guin escrito como un ejemplo .
Nmeros de lnea Toggle
1 importacin sys , dia
2
3 def center_objects ( objs ):
4

r = objs [ 0 ]. bounding_box

cx = ( r . derecha + r . izquierda ) / 2

cy = ( r . inferior + r . superior ) / 2

para o en objs [ 1 :]:

r = o . bounding_box

( x , y ) = o . propiedades [ " obj_pos " ]. valor

10

dx = ( r . derecha + r . izquierda ) / 2 - CX

11

dy = ( r . inferior + r . superior ) / 2 - cy

12

o . mover ( x - dx , y - dy )

13
14 def dia_objects_center_cb ( datos , banderas ):
15

grp = datos . get_sorted_selected ()

16

si ( len ( grp )> 1 ):

17

center_objects ( grp )

18

datos . update_extents ()

19

dia . active_display (). diagrama . add_update_all ()

20
21 dia . register_callback ( " Objetos Center " ,
22

" <de pantalla> / Objetos / Centro " ,

23

dia_objects_center_cb )

DIA
Dia est inspirado ms o menos por el programa comercial de Windows 'Visio',
aunque ms orientado hacia esquemas informales para uso ocasional. Se puede
utilizar para dibujar diferentes tipos de diagramas. Actualmente cuenta con objetos
especiales para ayudar a dibujar diagramas entidad relacin, diagramas UML,
diagramas de flujo, diagramas de red y muchos otros diagramas. Tambin es
posible aadir soporte para nuevas formas escribiendo archivos XML simples,
usando un subconjunto de SVG para dibujar la forma.
Puede cargar y guardar diagramas en un formato XML personalizado (gzip por
defecto, para ahorrar espacio), puede exportar diagramas a varios formatos,
incluyendo EPS, SVG, xfig, WMF y PNG, y puede imprimir diagramas (incluidos los
que abarcan mltiples pginas).
Descarga Dia y tratar de usarla; dinos lo que piensas de l (visite el contacto pgina),
incluyendo a informar de los errores si los encuentra. Usted puede incluso leer
el Desarrollo pgina para averiguar cmo contribuir al cdigo.

NOTICIAS
El desarrollo actual

Consulte la pgina GIT NOTICIAS para las caractersticas que ya se han


agregado en GIT para su inclusin en la prxima versin. Ver el Desarrollo pgina
para obtener informacin sobre cmo descargar la ltima versin de desarrollo, y
la forma de realizar el seguimiento del estado de desarrollo actual.
01/25/2010: fuentes 0.97.1
Esta es una versin de correccin de errores cuya fuente son los
paquetes disponibles aqu. Busque los nombres de archivo que comienzan
con dia-0.97.1 .
Las mejoras de esta versin se resumen en este mensaje de correo-lista.
05/03/2009: 0,97 fuentes
Despus de algunas correcciones de errores 0.97 est ahora disponible! Usted
puede descargar el cdigo fuente de nuestro repositorio . Consulte la pgina 0.97
de noticias para obtener ms informacin.
2009-04-11: 0.97-pre3
Versiones preliminares de 3 de la versin 0.97 es listo para su descarga .
2007-03-25: 0.96 versin final est disponible!
Ver el anuncio de la versin para obtener ms informacin o leer la lista de errores
corregidos
2006-12-13: 0.96-PRE1 - mejoras de representacin de texto
05/25/2006: 0.95.1 - Correccin de errores slo
Algunas vulnerabilidades de cadena de formato y dos accidentes desagradables
se fijaron, ver completa la lista .

21/04/2006: Nueva versin 0.95 listo!


Dia est ahora disponible en una nueva versin de lanzamiento 0.95.This se
centra en la estabilidad y la facilidad de uso, con un par de caractersticas nuevas
ms importantes junto con una serie de pequeas mejoras y correcciones de
errores que hacen que sea ms fcil que nunca para crear diagramas
estructurados, modelos y ejemplos para documentacin, artculos, modelado,
presentaciones y muchos otros usos.
Versin 0.95 aade las siguientes caractersticas principales:

Nuevo sistema de "mainpoint" permite que las lneas que se aadirn al


arrastrar desde cualquier punto de un objeto a cualquier lugar de otro, y
sealar siempre hacia el centro de un objeto, incluso cuando se mueve el
objeto.

Python plug-ins aaden a crear una salida DOT, generar enlaces Python
por 'Auto-reflexin', y permitir de ida y vuelta de ingeniera plug-ins.

La rejilla puede ahora cambiar automticamente el tamao en funcin de su


nivel de zoom.

Entrada de texto ahora resalta el objeto que recibe la entrada, y la


tabulacin entre las reas de entrada de texto en uno o varios objetos que
es posible.

Varios problemas de seguridad fijadas en XFig importacin y Python plugin.

Muchas nuevas formas aadido, incluyendo autmatas, Gane y Sarson y


AADL.

Varios de los nuevos objetos UML aadido, as como algunas extensiones


a los objetos existentes.

Modo de pantalla completa.

Mejora de la importacin SVG,

Plug-in de carga y descarga no requiere el reinicio del Dia.

Muchos problemas i18n se han fijado, en particular en los filtros de


exportacin.

Muchos errores han sido corregidos, demasiados para mencionarlos aqu.

Uso de la lnea de comandos se ha mejorado para permitir la seleccin de


capas individuales y filtros de salida especficos.

Utiliza la nueva GTK + archivo de dilogo.

Libgnomeprint Experimental y El Cairo plug-ins.

02/12/2006: Nueva versin real de pronto ahora


Despus de un ao y medio ao de espera Dia 0.95-pre1 esdisponible. Por favor
reporte cualquier inconveniente abiertos en bugzilla as que tal vez podamos
solucionarlos antes del lanzamiento final.
2004-08-24: versin 0.94
Esto es en parte una versin de correccin de algunos problemas de
compatibilidad con formas, y en parte, incluye un cierto desarrollo realizado
durante el 0,93 liberar process.The mejoras ms importantes en esta versin son:

Destacando de objetos cuando se conecta a ellas hace que sea ms fcil


conectarse.

Nuevos conjuntos de formas incluyen:


o

RDP (Petri Networks formas)

KAOS (Requisitos dirigido a un objetivo de adquisicin)

I * (intencional Relaciones actor estratgico de modelado)

Jackson (Jackson Diagramas)

ChemEng (ingeniera qumica)

IMGENES
Ventana principal

Ventana Propiedades de clase

Edicin de las propiedades de clase en un diagrama UML.


Ventana de propiedades de un objeto no UML

Por el momento, el cdigo de la propiedad de manipulacin dentro de Dia es


diferente para objetos UML que para los objetos no-UML. Esta imagen muestra la
ventana de propiedades de un UML no-objeto - "Tren 2, en ngulo hacia arriba"
del "mapa isomtrico" hoja.
Hoja de Object Editor

Potrebbero piacerti anche