Está en la página 1de 34

Capítulo 1.

Marco Teórico

Capítulo 1
Marco Teórico

1.1. Generalidades de Visual Basic


El desarrollo de aplicaciones de cómputo surge a partir de la necesidad de resolver problemas,
que involucren la realización de una cantidad de cálculos numéricos tediosos y/o difíciles, los
cuales no permiten un mínimo de error.

En la ingeniería, como en otras disciplinas, la utilización de programas de computadora ha


resultado ser una de las herramientas de apoyo, más importante de nuestros días.

Por esta razón, cada día son más los estudiantes, profesionistas e ingenieros que desarrollan
aplicaciones para computadora, como apoyo para la realización de sus tareas, y de esta forma
realizarlas en menor tiempo y con mejores resultados para la toma de decisiones.

Desde las tarjetas perforadas hasta nuestra fecha, la programación orientada a eventos ha
tenido notable desarrollo tecnológico y su atractivo va en crecimiento cada día.

Por lo cual, la elaboración de un programa en Visual Basic 6.0, para la comparación de la


medida de rendimiento de eficiencia, de los resultados obtenidos de los métodos para la
formación de células de manufactura: BEA, ROC2 y DCA, representa una opción factible
como apoyo para la toma de decisiones, por lo tanto resulta especialmente interesante para
quienes imparten la materia, laboran en una empresa o son estudiantes de la Ingeniería
Industrial.

1.1.1. Introducción a Visual Basic


Primero fue GW-BASIC, luego se transformó en QuickBASIC y actualmente se lo conoce
como Visual Basic versión 6.0 la cual se incluye en el paquete Visual Studio 6.0 de Microsoft.
Esta versión combina la sencillez del BASIC con un poderoso lenguaje de programación

6
Capítulo 1. Marco Teórico

Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows. Esta
fusión de sencillez y la estética permitió ampliar mucho más el monopolio de Microsoft, ya
que el lenguaje sólo es compatible con Windows, un sistema operativo de la misma empresa.

Visual Basic es un lenguaje de programación de los llamados "visuales", puesto que parte de la
programación que se realiza con él se basa en la utilización de elementos visuales. La palabra
"Visual" hace referencia al método que se utiliza para crear la interfaz gráfica de usuario. En
lugar de escribir numerosas líneas de código para describir la apariencia y la ubicación de los
elementos de la interfaz, simplemente se pueden agregar objetos prefabricados en su lugar
dentro de la pantalla, que ahorran mucho tiempo de programación y que sobrepasan el
concepto de la programación convencional en cuanto a la estructura secuencial del programa.

Visual Basic 6.0 es uno de los lenguajes de programación que más entusiasmo despiertan entre
los programadores de PCs, tanto expertos como novatos. En el caso de los programadores
expertos por la facilidad con la que desarrollan aplicaciones complejas en poquísimo tiempo
(comparado con lo que cuesta programar en Visual C++, por ejemplo). En el caso de los
programadores novatos por el hecho de ver de lo que son capaces a los pocos minutos de
empezar su aprendizaje. El precio que hay que pagar por utilizar Visual Basic 6.0 es una
menor velocidad o eficiencia en las aplicaciones.

Visual Basic 6.0 es un lenguaje de programación visual, también llamado lenguaje de 4ª


generación. Esto quiere decir que un gran número de tareas se realizan sin escribir código,
simplemente con operaciones gráficas realizadas con el ratón sobre la pantalla.

Visual Basic ya no es más "un lenguaje para principiantes" sino que es una perfecta alternativa
para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con
Windows.

1.1.2. Lenguaje Visual Basic


Tradicionalmente el lenguaje Basic (Beginners All-Purpose Symbolic Instruction Code) se ha
considerado como el lenguaje adecuado para principiantes en el mundo de la programación, si

7
Capítulo 1. Marco Teórico

bien se le achaca que no tiene la potencia suficiente para cubrir todas las expectativas de los
programadores avanzados. Cierto es que aunque permite la creación de componentes y trabaja
con objetos, otros lenguajes tienen más potencia en la programación orientada a eventos, pero
a medida que han avanzado las versiones de Visual Basic, ha aumentado su versatilidad.

El lenguaje nace del BASIC que fue creado en su versión original en el Dartmouth College,
con el propósito de servir a aquellas personas que estaban interesadas en iniciarse en algún
lenguaje de programación. Luego de sufrir varias modificaciones, en el año 1978 se estableció
el BASIC estándar. La sencillez del lenguaje ganó el desprecio de los programadores
avanzados por considerarlo "un lenguaje para principiantes".

Sin embargo, fue gracias al entorno gráfico de Windows, como Visual Basic tomó ventaja
sobre los otros leguajes de programación y pudo satisfacer las necesidades que la
programación requería.

El lenguaje Basic es un lenguaje de programación que se ha diseñado para facilitar el


desarrollo de aplicaciones en un entorno grafico (GUI-Graphical User Interface) Como
Windows 98, Windows NT o superior.

Actualmente se han comercializado varias versiones de este producto desde su salida al


mercado. Dados los buenos resultados a nivel profesional, Visual Basic se ha convertido en
una herramienta de desarrollo de proyectos de programación de primera mano, para el
desarrollo en entorno de Windows.

1.1.3. Características de Visual Basic


Visual Basic es una herramienta de diseño de aplicaciones para Windows, en las que estas se
desarrollan a partir del diseño de una interfaz gráfica. En una aplicación Visual Basic, el
programa está formado por una parte de código puro, y otras partes asociadas a los objetos que
forman la interfaz gráfica. Es, por tanto, un término medio entre la programación tradicional,
formada por una sucesión lineal de código estructurado, y la programación orientada a
eventos.

8
Capítulo 1. Marco Teórico

Se puede decir que Visual Basic es un lenguaje orientado a eventos. En las aplicaciones
tradicionales o "por procedimientos", la aplicación es la que controla qué partes de código y en
qué secuencia se ejecutan. La ejecución comienza con la primera línea de código y continúa
con una ruta predefinida a través de la aplicación, llamando a los procedimientos según se
necesiten.

En una aplicación controlada por eventos, el código no sigue una ruta predeterminada; ejecuta
distintas secciones de código como respuesta a los eventos. Los eventos pueden
desencadenarse por acciones del usuario, por mensajes del sistema o de otras aplicaciones, o
incluso por la propia aplicación. La secuencia de estos eventos determina la secuencia en la
que se ejecuta el código, por lo que la ruta a través del código de la aplicación es diferente
cada vez que se ejecuta el programa.

Para manejar los objetos y controles del lenguaje hay que conocer tres conceptos asociados a
ellos:

• Propiedades: Para todos los objetos y controles de Visual Basic, hay definidas una
serie de propiedades que permiten controlarlos: nombre, tamaño, color, posición, etc...,
la mayoría de las propiedades serán comunes, pero evidentemente, habrá objetos que
tengan unas determinadas propiedades específicas.
• Eventos: Cada objeto lleva asociados unos determinados eventos que pueden ocurrir,
por ejemplo a un botón, le puede ocurrir que el usuario pulse con el botón principal del
ratón sobre él, eso es el evento NombreDelBotón_Click(), bien cuando esto ocurra, se
dispara este evento, al cual le añadirá el código de lo que requiere que haga la
aplicación cuando el usuario pulse el botón.
• Métodos: Son procedimientos asociados a un objeto, es decir, permiten realizar
acciones como por ejemplo escribir un texto en un objeto, necesita usar el método
Print, con la siguiente sintaxis: NombreDelObjeto.Print "Texto deseado".

Se encontraran propiedades, eventos como métodos comunes, si bien, dependiendo de los


objetos que se utilicen, se encontraran elementos específicos y exclusivos del objeto.

9
Capítulo 1. Marco Teórico

Otras características con las que cuenta Visual Basic para el desarrollo de aplicaciones, son:

• Diseñador de entorno de datos: Es posible generar, de manera automática,


conectividad entre controles y datos mediante la acción de arrastrar y colocar sobre
formularios o informes.
• Los Objetos Actives: son una nueva tecnología de acceso a datos mediante la acción
de arrastrar y colocar sobre formularios o informes.
• Asistente para formularios: Sirve para generar de manera automática formularios que
administran registros de tablas o consultas pertenecientes a una base de datos, hoja de
cálculo u objeto (ADO-Active Data Object).
• Asistente para barras de herramientas: es factible incluir barras de herramientas
personalizadas, donde el usuario selecciona los botones que desea visualizar durante la
ejecución.
• En las aplicaciones HTML: Se combinan instrucciones de Visual Basic con código
HTML para controlar los eventos que se realizan con frecuencia en una página Web.
• La Ventana de Vista de datos: proporciona acceso a la estructura de una base de
datos, también acceso al diseñador de consultas y diseñador de base de datos para
administrar y registros.

1.1.4. Entorno de desarrollo de Visual Basic


Visual Basic 6.0 tiene todos los elementos que caracterizan a los programas de Windows e
incluso alguno menos habitual. En cualquier caso, el entorno de Visual Basic 6.0 es muy
lógico y natural, y además se puede obtener una descripción de la mayoría de los elementos
clicando en ellos para seleccionarlos y pulsando luego la tecla <F1>.

Para iniciar Visual Basic 6.0, se pulsa sobre el botón Inicio/Todos los programas/ Microsoft
Visual Basic 6.0 y se da clic sobre el icono de Visual Basic 6.0 como se ve en la figura 1.1.

Cuando ejecutamos VB, después de cargar el entorno, aparece la figura 1.2, la cual nos ofrece
tres solapas: Nuevo, con las diferentes opciones que nos permite crear VB, en principio sólo

10
Capítulo 1. Marco Teórico

utilizaremos EXE estándar, que nos llevará a un formulario vacío desde el cual comenzaremos
a desarrollar nuestra aplicación. Existente, nos permite abrir proyectos que ya existen para
continuar implementándolos. Recientes, lo mismo pero sobre los últimos proyectos que
hayamos estado desarrollando.

Una vez que hayamos elegido EXE estándar, aceptamos y aparece la siguiente ventana (figura
1.3), en la cual vemos que tenemos un proyecto abierto que en principio cuenta con un
formulario vacío. Posteriormente, si los necesitamos podremos insertarle tantos formularios al
proyecto como queramos.

1.1.4.1. Barra de Menús


La barra de menús de Visual Basic 6.0 resulta similar a la de cualquier otra aplicación de
Windows, tal y como aparece en la figura 1.4. Bajo dicha barra aparecen las barras de
herramientas, con una serie de botones que permiten acceder fácilmente a las opciones más
importantes de los menús.

1.1.4.2. Barra de Herramientas


En Visual Basic 6.0 existen cuatro barras de herramientas: Debug, Edit, Form Editor y
Standard. Por defecto sólo aparece la barra Standard, aunque en la figura 1.5 se muestran las
cuatro. Clicando con el botón derecho sobre cualquiera de las barras de herramientas aparece
un menú contextual con el que se puede hacer aparecer y ocultar cualquiera de las barras. Al
igual que en otras aplicaciones de Windows 95/98/NT, también pueden modificarse las barras
añadiendo o eliminando botones (opción Customize).

Figura 1.1. Acceso a Visual Basic.

11
Capítulo 1. Marco Teórico

Figura 1.2. Crear nuevo proyecto.

Figura 1.3. Ventana principal.

Figura 1.4 Barra de menús

1.1.4.3. Cuadro de Herramientas


La figura 1.6 muestra la caja de herramientas, que incluye los controles con los que se puede
diseñar la pantalla de la aplicación. Estos controles son por ejemplo botones, etiquetas, cajas
de texto, zonas gráficas, etc. Para introducir un control en el formulario simplemente hay que

12
Capítulo 1. Marco Teórico

clicar en el icono adecuado de la toolbox y colocarlo en el formulario con la posición y el


tamaño deseado, clicando y arrastrando con el ratón. Clicando dos veces sobre el icono de un
control aparece éste en el centro del formulario y se puede modificar su tamaño y/o trasladar
con el ratón como se desee.

El número de controles que pueden aparecer en esta ventana varía con la configuración del
sistema.

Para introducir nuevos componentes se utiliza el comando Componentes en el menú Project,


con lo cual se abre el cuadro de diálogo mostrado en la figura 1.7.

1.1.4.4. Diseñador de formularios


El diseñador de proyectos es la ventana que va a contener el objeto activo del proyecto, en la
figura 1.3 vemos que contiene el formulario vacío, que utilizaremos para el diseño gráfico.
Pero cuando le queramos añadir código, la ventana de código también estará contenida aquí.

1.1.4.5. Explorador de Proyectos


El explorador de proyectos es la ventana superior derecha (figura 1.3), que nos permite
visualizar los objetos que contiene el proyecto actual agrupado por categorías, en nuestro caso
y por el momento sólo hay un formulario colgando de la carpeta formularios. Además en la
parte superior izquierda de esta ventana hay dos botones que nos permiten intercambiar la
vista de diseño gráfico con la ventana de código en la ventana del proyecto.

No obstante para pasar a la ventana de código bastaría con hacer doble click sobre cualquier
control.

Figura 1.5. Barra de herramientas

13
Capítulo 1. Marco Teórico

Figura 1.6. Caja de Figura 1.7. Cuadro de componentes.


Herramientas.

1.1.4.6. Ventana de Propiedades


La ventana de propiedades (figura 1.3) esta situada debajo del explorador de proyectos, esta
contiene el conjunto de propiedades, con el valor actual correspondiente, de cada uno de los
objetos. Es aquí donde podremos modificar los valores iniciales de esas propiedades, en lo que
se conoce como tiempo de diseño.

1.1.4.7. Ventana de Código


Para abrir la ventana del editor de código se elige Code en el menú View. También se abre
clicando en el botón View Code de la Project Window, o clicando dos veces en el formulario o
en cualquiera de sus controles. Cada formulario, cada módulo de clase y cada módulo estándar
tienen su propia ventana de código. La figura 1.8 muestra un aspecto típico de la ventana de
código.

Aunque el aspecto de dicha ventana no tiene nada de particular, el Code Editor de Visual
Basic 6.0 ofrece muchas ayudas al usuario que requieren una explicación más detenida.

14
Capítulo 1. Marco Teórico

1.1.4.8. Ayuda del sistema


La ayuda del sistema se encuentra en el menú Help, se basa fundamentalmente en una
clasificación temática ordenada de la información disponible (Contents), en una clasificación
alfabética de la información (Index) y en la búsqueda de información sobre algún tema por el
nombre (Search). Figura 1.9.

1.1.5. Diseño y desarrollo de proyectos


Para realizar un sistema computacional es necesario primero diseñarlo, es decir, planear las
partes o programas que lo formarán y el orden en que dichas partes serán desarrolladas.

Figura 1.8. Ventana de código.

Figura 1.9. Ventana de ayuda de Visual Basic.

15
Capítulo 1. Marco Teórico

1.1.5.1. Pasos para crear una aplicación


La creación de un programa en Visual Basic lleva los siguientes pasos:

1. Creación de una interfaz de usuario. Esta interfase será la principal vía de


comunicación entre el usuario y la maquina, tanto como para entrada de datos como
para la salida. Será necesario partir de una ventana (formulario) a la que le iremos
añadiendo los controles necesarios.
2. Definición de las propiedades de los controles (objetos) que se hayan colocado es ese
formulario. Estas propiedades determinaran la forma estática de los controles y para
que sirven.
3. Generación de código asociado a los eventos que ocurran a estros objetos. La respuesta
a estos eventos (clic, una tecla pulsada, etc.) se le llama procedimiento. Deberá
generarse de acuerdo a las necesidades del programa.
4. Generación del código del programa. Un programa puede hacerse solamente con la
programación de los distintos procedimientos que acompañan a cada objeto. Visual
Basic ofrece la posibilidad de establecer un código de programa separado de estos
eventos. Este código puede introducirse en unos bloques llamados modulo, en otros
bloques llamados funciones y otros llamados procedimientos. Estos procedimientos
responden a un evento producido durante la ejecución del programa.

1.1.5.2. Formularios
Se sobre entiende que un formulario es la ventana de máximo nivel en la que aparecen los
distintos controles de la aplicación. Pero se debe tener en cuenta que los formularios también
poseen propiedades, métodos y eventos sobre los cuales el usuario trabaja para propósitos
específicos en la aplicación.

1.1.5.2.1. Propiedades del formulario


A continuación se muestra una tabla con las propiedades más usuales de los formularios.

16
Capítulo 1. Marco Teórico

Tabla 1.1. Propiedades del formulario.

Propiedad Descripción
Establece el estilo de borde del formulario. Puede tomar
entre los valores: 0- None (Sin borde), 1- FixedSingle
(Simple fijo), 2- Sizable (Predeterminado. Tamaño
ajustable), 3- FixedDouble (Dialogo fijo), 4-
BorderStyle
FixedToolWindow (Ventana fija), 5- SizableToolWindow
(Ventana de tamaño ajustable). Para más información
acerca de los estilos puede consultar la ayuda (help) de
Visual Basic 6.0.
Caption Muestra el título del formulario.

BackColor Establece el color de fondo del formulario.

Determina si el botón de maximizar estará activo o no.


MaxButton
Puede tomar los valores True o False.

Determinar si el botón de minimizar estará activo o no.


MinButton
Puede tomar los valores True o False.

Devuelve o establece un valor que indica si un formulario


debe mostrarse como formulario secundario MDI dentro
MDIChild
de un formulario MDI. Es de sólo lectura en tiempo de
ejecución. Puede tomar los valores True o False.

Determina si el icono de la aplicación se muestra cuando


ShowInTaskBar el formulario se minimiza. Puede tomar los valores True o
False.

Establece la posición inicial del formulario. Puede tomar


los valores: 0- StartUpManual (Ninguna posición inicial),
StartUpPositio 1- StartUpOwner (Centrado en el elemento que
n pertenece), 2- StartUpScreen (Centrado en toda la
pantalla) y 3- StarUpWindowsDefault (Esquina superior
izquierda de la pantalla).

Establece el estado del formulario al iniciar la aplicación.


El estado puede ser 0- Normal, 1- Minimized (el
WindowState
formulario aparece minimizado) ó 2- Maximized (el
formulario aparece maximizado).

17
Capítulo 1. Marco Teórico

1.1.5.2.2. Eventos del formulario


En la tabla 1.2 se muestran los eventos más usuales de los formularios.

Tabla 1.2. Eventos del formulario.


Evento Descripción

Ocurre al momento que el formulario se carga. Una carga ocurre


cuando un formulario es mostrado o al momento que la aplicación
Load se ejecuta. Load también puede ser utilizado para cargar un
formulario, es decir, ponerlo en funcionamiento a el y a todos sus
controles sobre el pero sin mostrar el formulario.

Ocurre cuando el formulario se descarga. Una descarga ocurre


cuando el formulario o la ventana son cerradas, ya sea por medio de
códigos o por el botón cerrar de la aplicación. Unload también
Unload
puede ser utilizado para cerrar un formulario.
Ejemplo:
Unload Me ‘Descarga el formulario actual.

Ocurre cuando un objeto se muestra primero o cuando cambia el


Resize estado de una ventana. (Por ejemplo, cuando se maximiza,
minimiza o restaura un formulario.)

Se produce cuando todas las referencias a una instancia de un


formulario, un formulario MDI, un control User, una página de
Terminat propiedades, una clase de Web, un diseñador de páginas DHTML o
e una clase se quitan de la memoria estableciendo a Nothing todas las
variables que hacen referencia al objeto o cuando la última
referencia al objeto queda fuera del alcance.

1.1.5.2.3. Métodos del formulario


La tabla 1.3 muestra los métodos más usuales de los formularios.

1.1.5.3. Controles básicos


Los controles más usuales son aquellos que usamos con mayor frecuencia al momento de crear
una aplicación. Estos controles son: los botones de comando, las cajas de texto, las etiquetas,
etc.

Tabla 1.3 Métodos del formulario


Métod
Descripción
o

18
Capítulo 1. Marco Teórico

Hide Oculta un formulario pero no lo descarga.

Muestra un formulario ya sea que este se halla ocultado o que


Show
nunca se halla ocultado.

Imprime el formulario con todos sus controles. Si no quiere


Print imprimir un control en especifico sólo debe establecer el valor
False a la propiedad Visible de ese control.

1.1.5.3.1. Etiqueta
Un control Label (figura 1.10a) es un control gráfico que se puede usar para mostrar texto que
el usuario no podrá cambiar directamente. En las etiquetas la propiedad más importante es
Caption, que contiene el texto que aparece sobre el control. Esta propiedad puede ser
modificada desde el programa, pero no interactivamente sino, mediante líneas de código.
Las etiquetas tienen las propiedades AutoSize y WordWrap. La primera, cuando está a True,
ajusta el tamaño del control al del texto en él contenido. La segunda hace que el texto se
distribuya en varias líneas cuando no cabe en una sola.

1.1.5.3.2. Cuadro de texto


Un control TextBox(figura 1.10b) también denominado control de campo de edición o control
de edición, muestra información introducida en tiempo de ejecución por el usuario o asignada
al control en código en tiempo de ejecución.

La propiedad más importante de las cajas de texto es Text, que almacena el texto contenido en
ellas. También se suelen controlar las que hacen referencia a su tamaño, posición y apariencia.
En algún momento se puede desear impedir el acceso a la caja de texto, por lo que se
establecerá su propiedad Enabled como False. La propiedad Locked como True hace que la
caja de texto sea de sólo lectura. La propiedad MultiLine, que sólo se aplica a las cajas de
texto, determina si en una de ellas se pueden incluir más de una línea o si se ignoran los saltos
de línea. La justificación o centrado del texto se controla con la propiedad Alignment. La
propiedad ScrollBars permite controlar el que aparezca ninguna, una o las dos barras de
desplazamiento de la caja.

19
Capítulo 1. Marco Teórico

1.1.5.3.3. Botón de Comando


La propiedades más importantes del botón de comando (figura 1.10c) son su Caption, que es
lo que aparece escrito en él, las referentes a su posición (Left y Top) y apariencia externa
(Height, Width y tipo de letra) y la propiedad Enabled, que determina si en un momento dado
puede ser pulsado o no.

No hay que confundir la propiedad Caption con la propiedad Name. La primera define a un
texto que aparecerá escrito en el control, mientras que la segunda define el nombre interno con
el que se puede hacer referencia al citado objeto.

Si en la propiedad Caption se pone el carácter (&) antes de una de sus letras, dicha letra
aparece subrayada en el botón (como la “x” en el botón Exit de la figura anexa).

Esto quiere decir que, como es habitual en Windows, dicho botón puede activarse con el
teclado por medio de la combinación Alt+letra subrayada.

Esta característica es común a muchos de los controles que tienen propiedad Caption. El
evento que siempre suelen tener programado los botones de comandos es el evento Click.

Figura 1.10 Controles básicos

1.1.5.4. Tipos básicos de datos


Los tipos de datos de variables son los distintos objetos de información con los que trabaja una
aplicación en Visual Basic. Todos los datos tienen un tipo asociado con ellos. Un dato puede

20
Capítulo 1. Marco Teórico

ser un simple carácter, tal como un ‘B’, un valor entero tal como 90 o un número real tal como
5.16.

Los tipos de datos de variables se pueden clasificar de acuerdo a su almacenamiento en: tipos
enteros (Byte, Integer, Long), tipos reales (Single, Double, Currency), tipos cadena (String),
tipos lógicos (Boolean), tipos fecha (Date), tipos variados (Variant).

1.1.5.4.1. Tipos enteros (Byte, Integer, Long)


Visual Basic tiene tres tipos de datos predefinidos para representar los números enteros: Byte,
Integer y Long.

1) Byte: Las variables tipo Byte se almacenan como números de 8 bits (1 byte) sencillos
sin signo con un intervalo de valores entre 0 y 225. El tipo de datos Byte es útil para
almacenar datos binarios.
2) Integer: Las variables Integer se almacenan como números de 16 bits (2 bytes) con
valores que van de -32.768 a 32.767. El carácter de declaración de tipo para el tipo
Integer es el signo de porcentaje (%).

Las variables tipo Integer también se pueden utilizar para representar valores
enumerados. Un valor enumerado puede contener un conjunto finito de números
enteros únicos, cada uno de los cuales tiene un significado especial en el contexto en el
que se utiliza. Los valores enumerados proporcionan una forma cómoda de seleccionar
entre un número conocido de opciones. Por ejemplo, cuando se pregunta al usuario que
elija un color de una lista, se podría tener 0 = negro, 1 = blanco y así sucesivamente. Es
una buena práctica de programación definir constantes utilizando la instrucción Const
para cada valor enumerado.
3) Long: Las variables Long (enteros largos) se almacenan como números con signo de
32 bits (4 bytes) con un valor comprendido entre -2.147.483.648 y 2.147.483.647. El
carácter de declaración de tipo para Long es el signo &.

1.1.5.4.2. Tipos reales (Single, Double, Currency)

21
Capítulo 1. Marco Teórico

Visual Basic también posee tres tipos de datos para representar los números reales: Single,
Double y Currency.

1) Single: Las variables Single (punto flotante de precisión simple) se almacenan como
números IEEE de coma flotante de 32 bits (4 bytes) con valores que van de
-3,402823E38 a -1,401298E-45 para valores negativos y de 1,401298E-45 a
3,402823E38 para valores positivos. El carácter de declaración de tipo para Single es
el signo de exclamación (!).
2) Double: Las variables dobles (punto flotante de doble precisión) se almacenan como
números IEEE de coma flotante de 64 bits (8 bytes) con valores de
-1,79769313486232E308 a -4,94065645841247E-324 para valores negativos y de
4,94065645841247E-324 a 1,79769313486232E308 para valores positivos. El carácter
de declaración de tipo para Double es el signo de número (#).
3) Currency: Las variables tipo Currency se almacenan como números de 64 bits (8
bytes) en un formato de número entero a escala de 10.000 para dar un número de punto
fijo con 15 dígitos a la izquierda del signo decimal y 4 dígitos a la derecha. Esta
representación proporciona un intervalo de -922.337.203.685.477,5808 a
922.337.203.685.477,5807. El carácter de declaración de tipo para Currency es el
signo @.El tipo de datos Currency es útil para cálculos monetarios y para cálculos de
punto fijo, en los cuales la precisión es especialmente importante.

1.1.5.4.3. Tipos cadena (String)


Hay dos clases de cadenas: cadenas de longitud variable y cadenas de longitud fija.

• Las cadenas de longitud variable pueden contener hasta 2.000 millones de caracteres
(2^31).
• Las cadenas de longitud fija que pueden contener de 1 a 64 KB (2^16) caracteres.

Nota: No se puede usar una cadena Public de longitud fija en un módulo de clase.

22
Capítulo 1. Marco Teórico

Los códigos para caracteres de tipo String varían desde 0 a 255. Los primeros 128 caracteres
(0–127) del juego de caracteres corresponden a las letras y los símbolos de un teclado estándar
de EE.UU. Estos primeros 128 caracteres son los mismos que los definidos por el juego de
caracteres ASCII. Los siguientes 128 caracteres (128–255) representan caracteres especiales,
como letras de alfabetos internacionales, acentos, símbolos de moneda y fracciones. El
carácter de declaración de tipo para String es el signo de dólar ($).

1.1.5.4.4. Tipos lógicos (Boolean)


Las variables tipo Boolean se almacenan como números de 16 bits (2 bytes), pero sólo pueden
ser True o False. Las variables tipo Boolean se presentan como True o False (cuando se
utiliza Print) o #TRUE# o #FALSE# (cuando se utiliza Write #). Utilice las palabras clave
True y False para asignar uno de los dos estados a las variables tipo Boolean.

Cuando se convierten a tipo Boolean otros tipos numéricos, 0 se convierte en False, y el resto
de los valores se convierten en True. Cuando los valores tipo Boolean se convierten a otros
tipos de datos numéricos, False se convierta en 0 y True se convierte en -1.

1.1.5.4.5. Tipos variados (Variant)


Una variable Variant es capaz de almacenar todos los tipos de datos definidos en el sistema.
No tiene que convertir entre esos tipos de datos si los asigna a una variable Variant; Visual
Basic realiza automáticamente cualquier conversión necesaria.

1.2. Generalidades de análisis y desarrollo de sistema de información


En esta sección se presentan las generalidades del análisis y diseño de sistemas de información
como una base para la realización de un sistema computacional.

1.2.1. Diseño de Sistemas de Información


El Diseño del software es un proceso y un modelado a la vez. Es un conjunto de pasos
repetitivos que permiten al diseñador describir todos los aspectos del sistema a construir. A lo

23
Capítulo 1. Marco Teórico

largo del diseño se evalúa la calidad del desarrollo del proyecto con un conjunto de revisiones
técnicas.

Cuando se planea realizar un programa o sistema (conjunto de programas), los requerimientos


del mismo se trasladan en especificaciones de diseño (Date, 1995). El diseño de sistemas tiene
dos etapas: el diseño lógico y la construcción física del sistema.

En el diseño lógico se escriben las especificaciones detalladas del sistema, describiendo sus
características: salidas, entradas, archivos y bases de datos, procedimientos. El conjunto
formado por todas estas características recibe el nombre de especificaciones de diseño del
sistema.

La construcción física, que es la siguiente actividad después del diseño lógico, produce el
software, los archivos y un sistema que funciona.

Las especificaciones de diseño indican a los programadores lo que el sistema debe hacer. El
diseño del sistema debe:

• Incorporar características del sistema que sean fáciles de comprender y utilizar.


• Desalentar los errores cometidos por los usuarios o la falta de cuidado por parte de
ellos.
• Evitar fallas o procedimientos inapropiados que generen perjuicios o complicaciones
para los usuarios o vayan en detrimento de la organización.
• Tener suficiente flexibilidad para adaptarse a las necesidades de cada usuario.
• Adaptarse a la creciente familiaridad del usuario con el sistema.
• Funcionar, en general, en forma que parezca natural al usuario.

A medida que ocurren las iteraciones del diseño, el refinamiento subsiguiente lleva a
representaciones del diseño a niveles menores de abstracción.

24
Capítulo 1. Marco Teórico

El proceso de diseño debe seguir pautas de calidad para aminorar el costo en mantenimiento
del mismo y en las modificaciones que se tengan que hacer debidas a errores de diseño.

También el diseño sigue una línea evolutiva, la cual se inicia con los requisitos del sistema y
termina en un prototipo o representación funcional del software.

Para evaluar la calidad de una presentación del diseño, se deben establecer criterios técnicos
para un buen diseño como son:

• Organización Jerárquica. Un diseño debe presentar una organización jerárquica que


haga un uso inteligente del control entre los componentes del software.
• Diseño Modular. El diseño debe ser modular, es decir, se debe hacer una partición
lógica del software en elementos que realicen funciones y subfunciones especificas.
• Abstracción de datos y procedimientos. Un diseño debe contener abstracciones de
datos y procedimientos.
• Independencia de datos y procedimientos. Debe producir módulos que presenten
características de funcionamiento independiente.
• Interfaces eficientes y fáciles de usar. Debe conducir a interfaces que reduzcan la
complejidad de las conexiones entre los módulos y el entorno exterior.
• Método de diseño reutilizable según los datos proporcionados. Debe producir un
diseño usando un método que pudiera repetirse según la información obtenida durante
el análisis de requisitos de software.

Los elementos que considera el diseño son (Date, 1995):

• Diseño de la entrada.
• Diseño de la salida.
• Diseño de archivos.
• Diseño de controles.
• Diseño de procedimientos.

25
Capítulo 1. Marco Teórico

1.2.1.1. Diseño de la entrada


Para la entrada o captura de datos se consideran los siguientes aspectos:

• Qué datos ingresan al sistema.


• Qué medios utilizar.
• La forma en que se deben disponer o codificar los datos.
• El diálogo que servirá de guía a los usuarios para dar entrada a los datos.
• Validación necesaria de datos y transacciones para detectar errores.
• Métodos para llevar a cabo la validación de las entradas y los pasos a seguir cuando se
presentan errores.

Las decisiones de diseño para el manejo de entradas, especifican la forma en que serán
aceptados los datos para su procesamiento por computadora.

1.2.1.2. Diseño de la salida


La salida se refiere a los resultados e información generados por el sistema, para los cuales se
debe considerar lo siguiente:

• Determinar qué información presentar.


• Decidir si la información será presentada en forma visual, verbal o impresa y
seleccionar el medio de salida.
• Disponer la presentación de la información en un formato aceptable.
• Decidir cómo distribuir la salida entre los posibles destinatarios.

1.2.1.3. Diseño de sistemas de archivos


El diseño de archivos incluye decisiones con respecto a la naturaleza y contenido del propio
archivo, como si se fuera a emplear para guardar detalles de las transacciones, datos de tipo
histórico o información de referencia. Entre las decisiones que se toman durante el diseño de
archivos, se encuentran las siguientes:

26
Capítulo 1. Marco Teórico

• Los datos deben incluirse en el formato de los registros contenidos en el archivo.


• La longitud de cada registro, con base en las características de los datos que contiene.

La secuencia a disposición de los registros dentro del archivo (la estructura de


almacenamiento que puede ser secuencial, indexada o relativa).

1.2.1.4. Diseño de procedimientos


Los procedimientos especifican qué tareas deben efectuarse al utilizar en sistema y quiénes
son los responsables de llevarlas a cabo. Entre los procedimientos importantes se encuentran:

• Procedimientos para entrada de datos. Métodos para la captura de datos de las


transacciones y su ingreso en el sistema de información.
• Procedimientos durante la ejecución. Pasos y acciones emprendidos por los operadores
del sistema y, en ciertos casos, por los usuarios finales que interactúan con el sistema
para alcanzar los resultados deseados.
• Procedimientos para el manejo de errores. Acciones a seguir cuando se presentan
resultados inesperados.
• Procedimientos de seguridad y respaldo. Acciones para proteger al sistema y sus
recursos contra posibles daños.

1.2.1.5. Diseño de controles


Los analistas de sistemas también deben anticipar los errores que se cometerán al ingresar los
datos en el sistema o al solicitar la ejecución de ciertas funciones. Algunos errores no tienen
importancia ni consecuencias, pero otros pueden ser tan serios que ocasionarían la eliminación
de datos o el uso inapropiado del sistema. Un buen diseño de sistema de información ofrecerá
los medios para detectar y manejar el error, los controles proporcionan medios para:

1. Asegurar que sólo los usuarios autorizados tengan acceso al sistema.


2. Garantizar que las transacciones son aceptables.
3. Validar los datos para comprobar su exactitud.

27
Capítulo 1. Marco Teórico

4. Determinar si se han omitido datos que son necesarios.

1.2.2. Diagramas de estructura de programas


Los diseños bien estructurados facilitan el mantenimiento de un sistema. Un sistema
estructurado es modular y desarrollado en forma descendente, es decir, separado en
componentes manejables. Los módulos deben diseñarse de forma que tengan un mínimo
efecto sobre los demás módulos del sistema. Las conexiones entre módulos son limitadas y la
interacción de datos es mínima. Se pretenden tales objetivos de diseño para que mejore la
calidad del sistema y se faciliten las tareas de mantenimiento. Para lograr esto, se realizan los
diagramas de estructura (Date, 1995).

Un diagrama de estructura es una herramienta de diseño que muestra gráficamente las


relaciones entre los módulos de un programa. Presenta cuáles módulos interactúan dentro de
un sistema y también muestra gráficamente los datos que se comunican entre varios módulos.

Los diagramas de estructura se desarrollan antes de escribir el código del programa. No se


pretende que expresen la lógica del procedimiento, tarea que se deja a los diagramas de flujo o
pseudocódigo (una forma de español estructurado que se usa para describir la lógica del
programa), lo cual se incluye en el manual técnico del sistema. Tampoco delinean la interfase
física real entre las funciones de procesamiento, en vez de eso, indican las transferencias de
datos.

1.2.2.1. Estructura descendente de módulos


Los módulos descendentes se usan en todo el proceso de análisis y diseño. Al utilizar un
enfoque descendente, se inicia en los niveles generales para comprender el sistema y moverse
en forma gradual hacia los niveles de mayor detalle.

En el proceso de moverse de arriba hacia abajo, cada componente se desglosa en más detalles.
Un diagrama de flujo de datos se convierte en varios en el siguiente nivel inferior.

28
Capítulo 1. Marco Teórico

En la figura 1.11 se muestra como el menú principal contiene cuatro opciones. La primera y
tercera opción corresponde a la ejecución de un programa en forma directa. La segunda y
cuarta opción, corresponden a otro menú en el cual se presentan al usuario opciones mas
detalladas.

Estas estructuras proporcionan a los usuarios un método fácil de entender para usar el sistema
y elegir las opciones. No tiene que hacer todas las decisiones al mismo tiempo sino sólo una a
la vez.

El método descendente también se usa ampliamente en la ingeniería de sistemas y diseño de


software. Cada función que el sistema lleva a cabo se identifica primero y después se
desarrolla con mayor detalle.

Los diseñadores de programas llaman a esto “refinamiento por pasos”: los procedimientos y
procesos se desarrollan uno a la vez, desde lo general hasta lo particular.

Menú Principal

Programa Menú Programa Menú


Operación 1 Operación 2 Operación 3 Operación 4

Modulo Modulo Modulo Modulo Modulo


2.1 2.2 4.1 4.2 4.3

Figura 1.11. Diagrama modular en el que se aplica el enfoque descendente

1.2.2.2. Herramientas de documentación en el diseño de software


El software modular y bien diseñado tiene mayor probabilidad de cumplir con los
requerimientos de facilidad de mantenimiento, confiabilidad y prueba de delineados

29
Capítulo 1. Marco Teórico

necesarios. Una de las herramientas más poderosas de diseño, es el método gráfico Hierarchy
Input Process Output (HIPO).

1.2.2.2.1. Método HIPO


HIPO es un método para desarrollar software de sistemas desarrollado por IBM (Date, 1995).

La hipótesis en la que HIPO se basa es que es fácil perder la pista de la función deseada de un
sistema. Desde el punto de vista usuario, una sola función puede a menudo extenderse a varios
módulos, por lo tanto, el interés del analista es extenderse, describir y documentar los módulos
y su interacción de forma que se obtenga el detalle suficiente, pero sin perder de vista el
panorama general.

El método HIPO utiliza descripciones gráficas del sistema, llamadas tablas visuales de
contenidos, que ayudan al analista a cuidar tres puntos importantes: la función de un módulo,
el cómo se lleva a cabo ésta función y cuáles son las entradas y salidas.

1.2.2.2.2. Tabla visual de contenido HIPO


La tabla visual de contenido HIPO (figura 1.12) está formada por un diagrama de jerarquía
que identifica los módulos en un sistema mediante un número y en relación con los otros y da
una descripción breve de cada módulo. Los números en la sección de contenido se relacionan
con los de la sección de organización. Los módulos aparecen en detalle creciente.

1.3. Tecnología de grupos


La importancia de responder a la creciente necesidad de variar frecuentemente los sistemas
productivos para fabricar nuevos productos, como consecuencia de la rápida obsolescencia de
los mismos, ha dado lugar a nuevos conceptos de sistemas de fabricación que permiten
extender a series pequeñas las ventajas de fabricación de las grandes series.

30
Capítulo 1. Marco Teórico

Sistema X

Programa 1 Programa 2

Modulo 1.1 Modulo 1.2 Modulo 2.1 Modulo 2.2 Modulo 2.3

Modulo Modulo Modulo Modulo


2.1.1 2.1.2 2.1.3 2.1.4

Figura 1.12. Tabla visual de contenido HIPO.

En el trabajo por lotes normalmente las máquinas se agrupan por especialidades; las fresadoras
en una sección, los tornos en otra, etc. Esto obliga a mover las piezas de un sitio a otro del
taller. Por otra parte el pequeño tamaño de las series obliga a utilizar máquinas universales, no
muy sofisticadas de forma que no se agraven excesivamente los costos como consecuencia de
la amortización.

Si se clasifican y agrupan las piezas de forma que las características de las distintas piezas de
un grupo sean similares, se podrán agrupar también las máquinas en unidades de producción a
donde se lleven las piezas en bruto y salgan completamente terminadas. Esta técnica se
denomina Tecnología de Grupos (TG), y va acompañada de implicaciones en el proceso de
diseño y de información. Las piezas pueden codificarse de modo que las piezas similares entre
sí tienen códigos similares y el código informa de las características de una pieza. El
ordenador interviene en esta labor de clasificación y codificación. Organizada la producción
de este modo, se puede considerar la unidad de fabricación, desde el punto de vista de control
de planta, como una sola máquina con la consiguiente simplificación y disminución de las
perturbaciones.

La Tecnología de grupos aporta beneficios sustanciales a las compañías si estas tienen la


disciplina y perseverancia para instrumentarla.

31
Capítulo 1. Marco Teórico

Los beneficios potenciales son (Groover, 1997: 957):

1. La tecnología de grupos promueve la estandarización en la habilitación de


herramientas, la instalación de soportes y las disposiciones.
2. Se reduce el manejo de material porque las piezas se mueven dentro de una celda de
maquinado y no dentro de toda la fábrica.
3. Son posibles calendarios de producción más sencillos.
4. Se reduce el tiempo de producción.
5. Se reduce el trabajo en proceso.
6. Se simplifica la planeación de los procesos.
7. Por lo general, mejora la satisfacción de los trabajadores cuando laboran en una celda
con tecnología de grupos.
8. Se obtiene un trabajo de mayor calidad usando este recurso.

Existen varios problemas para llevar a cabo la tecnología de grupos (Groover, 1997:957):

• El primer problema obvio es el reordenamiento de las máquinas para producir en la


planta en las celdas de maquinado convenientes.
• El segundo problema es que se requiere tiempo para planear y realizar este
reordenamiento y las máquinas no están produciendo durante el cambio.
• El tercer y mayor problema para iniciar un programa de tecnología de grupos es
identificar las familias de piezas. Esto es, si la planta hace 10,000 piezas distintas, la
revisión de todos los dibujos de piezas y su agrupación en familias es una tarea
enorme que consume una importante cantidad de tiempo.

1.3.1. Algoritmo de cadena de energía (BEA)


El algoritmo de cadena de energía (BEA de las siglas en inglés de Bond Energy Algorithm),
fue desarrollado por McCormick, Schweitzer y White (1972) para identificar y desplegar
grupos de variables naturales o agrupaciones que ocurren en arreglos complejos de datos.

32
Capítulo 1. Marco Teórico

Ellos propusieron una medida de efectividad (ME), tal que un arreglo que contenga grupos
densos de elementos numéricamente grandes pueda tener una gran ME, cuando se compare
con el mismo arreglo de filas y columnas el cual ha sido permutado para que sus elementos
numéricamente grandes estén más uniformemente distribuidos a través del arreglo.

A continuación se procede analizar el algoritmo de cadena de energía (BEA), paso a paso:

Paso 1. Seleccione una columna de una pieza arbitrariamente y ajuste i=1.

Este paso trata de colocar cada una de las columnas de piezas restantes (P - i) en cada una de
las posibles posiciones (i+1) (a la derecha e izquierda de las i columnas ya colocadas o en
otras palabras a la derecha de las i columnas ya colocadas y las recorre a la izquierda de
columna en columna, hasta llegar a la izquierda de la primera columna ya colocada) y
posteriormente calcula la contribución de cada columna a la ME mediante la ecuación 1.1:

i M
ME (columnas) = ∑ ∑a pm * a p +1,m …………………….……….. (1.1)
p =1 m =1

Una vez calculada la ME se coloca la columna que da la más grande ME en su mejor posición.
En caso de un empate, se selecciona arbitrariamente cualquier columna. Ya colocada la
columna, se incrementa i en 1 (i + 1) y se repite este procedimiento hasta que i= P. Cuando
todas las columnas hayan sido colocadas, se va al paso 2.

Paso 2. Repita el procedimiento para las filas, calculando la ME con la ecuación 1.2:

i P
ME ( filas) = ∑ ∑a pm * a p ,m +1 …………………….…………….. (1.2)
m =1 p =1

(Nota: la colocación de la fila es innecesaria si el arreglo de entrada es simétrico, dado que el


ordenamiento final de fila y columna será idéntico).

33
Capítulo 1. Marco Teórico

1.3.2. Algoritmo de agrupamiento de orden de rango 2 (ROC2)


El método de agrupación por orden de rango 2 (ROC 2) fue desarrollado por King y
Nakornchai (1982) para superar las limitaciones computacionales impuestas por ROC.

Este algoritmo empieza identificando en la columna que está más a la derecha todas las filas
que tienen una entrada “1”, para moverlas a la parte superior de la columna, manteniendo el
orden relativo entre filas. Este procedimiento continúa hasta llegar a la primera columna (la
columna más a la izquierda).

Una vez encontrado un orden de filas con el procedimiento descrito anteriormente, se procede
a ordenar las columnas iniciando con la identificación de la fila que está en la parte inferior,
todas las columnas que tienen un entrada “1”, para moverlas a la izquierda de la fila
manteniendo el orden relativo entre columnas. Este procedimiento continúa hasta llegar a la
primera fila (la fila de hasta arriba).

El uso de palabras binarias se elimina de este procedimiento, pero la idea del ordenamiento de
rango aun permanece con las otras limitaciones. El procedimiento también se lleva a cabo en
un algoritmo interactivo con varias facilidades para reestructurar los datos en la manera
requerida. Así, incluso para matrices muy complicadas, varios ensayos de asignación de
elementos excepcionales y traslado de piezas del mismo tipo pueden ser hechos y los
resultados pueden determinarse rápidamente. Si el resultado no es el esperado un retorno a la
fase anterior puede llevarse a cabo rápidamente y conducir otro ensayo.

A continuación se procede analizar el algoritmo de agrupamiento de orden de rango 2


(ROC2), paso a paso:

Paso 1. Arregle las filas desde p = P (la última columna) a la columna P = 1 y en cada caso:

• Localizar las filas con una entrada de 1.


• Mover las filas con entradas de 1 a la cabeza de la lista de filas.
• Mantener el orden anterior de las entradas de las filas ya ordenadas.
34
Capítulo 1. Marco Teórico

Paso 2. Arregle las columnas desde m = M (la última fila) a la fila M = 1 y en cada caso:

• Localizar las columnas con una entrada de 1.


• Mover las columnas con entradas de 1 a la cabeza de la lista de columnas.
• Mantener el orden anterior de entradas de las columnas ya ordenadas.

Paso 3. Repetir los pasos 1 y 2 hasta que no ocurra ningún cambio en las filas o columnas.

1.3.3. Algoritmo de agrupación directa (DCA)


Chan y Milner (1982) propusieron el método de algoritmo de agrupación directa (DCA), el
cual mueve las filas, con las celdas más positivas de la izquierda (por ejemplos 1s), a la parte
superior, y las columnas, más positivas de la parte superior, a la izquierda de la matriz.
Wemmerlov (1984) proporcionó una corrección al algoritmo original para alcanzar resultados
consistentes.

A continuación se procede analizar el algoritmo de agrupación directa (DCA), paso a paso:

Paso 1. Contar los números 1s en cada columna y fila, posteriormente hacer lo siguiente:

• Arreglar todas las columnas en orden decreciente colocándolas en una secuencia que
inicia con las columnas de mayor número de 1s que se encuentran más a la derecha.
• En caso de empate en número de 1s, la columna que está más a la derecha ira al inicio
de la secuencia.
• Arreglar todas las filas en orden creciente colocándolas en una secuencia que inicia
con las filas de menor número de 1s que encuentra más abajo. En caso de empate en
número 1s, la fila que está más abajo ira al inicio de la secuencia.

Nota: esta reestructuración de la matriz inicial ha sido propuesta 1 para asegurar que la
solución final siempre sea la misma.

1
Ángeles Fernández Carlos Alfonso (2007). Comparación de medidas de rendimiento de métodos evaluativos BEA, ROC 2 Y
DCA (Tesis de Licenciatura en Ingeniería Industrial, Instituto Tecnológico de Orizaba).

35
Capítulo 1. Marco Teórico

Paso 2. Ordenar filas observando los 1s de las columnas, iniciando con la primera columna de
la matriz, y a continuación:

• Mueva todas las filas con 1s a la parte superior para formar un bloque.
• Si en las columnas subsecuentes a considerar, las filas con 1s ya están en el bloque, no
haga nada.
• Si hay filas con 1s que no están en el bloque, permita que estas filas formen un bloque
y mueva este bloque a la parte baja del bloque previo.

Nota: Una vez asignada una fila a un bloque, esta no podrá moverse; de este modo, puede no
ser necesario pasar por todas las columnas.

Paso 3. Si la matriz anterior y la matriz actual son las mismas, pare, en caso contrario vaya al
paso 4

Paso 4. Ordenar las columnas observando los 1s de las filas, iniciando con la primera fila de
la matriz y jalar todas las columnas a la izquierda (similar al paso 2), hecho esto:

• Mueva todas las columnas con 1s a la izquierda para formar un bloque.


• Si en las filas subsecuentes a considerar, las columnas con 1s ya están en el bloque, no
haga nada.
• Si hay columnas con 1s que no están en el bloque, permita que estas formen un bloque
y mueva este bloque a la derecha del bloque previo.

Nota: Una vez asignada una columna a un bloque está no debe ser movida. Puede no ser
necesario pasar por todas las filas.

Paso 5. Si la matriz anterior y la matriz actual son las mismas pare, en caso contrario vaya al
paso 2.

36
Capítulo 1. Marco Teórico

1.3.4. Medidas de rendimiento


Las medidas de rendimiento siguientes sirven para comparar la calidad de soluciones
obtenidas de algoritmos diferentes por una escala absoluta.

• Agrupación de η de eficiencia.
• Agrupación de τ de eficacia.
• Agrupación de medidas η g.
• Agrupación de medidas η c.
• Medida de cadena de energía η BE .

Dentro de estas medidas de rendimiento las primeras tres medidas requieren la identificación
de familias de piezas y trabajan a máquina grupos, mientras otras dos medidas sólo requieren
la matriz reorganizada.

En este caso se estudia la medida de rendimiento η de eficiencia para los métodos BEA,
ROC 2 y DCA.

Agrupación de η de eficiencia.

La medida de agrupación de η de eficiencia fue propuesta por Chandrasekaran y


Rajagopalan (1986). Esta fue una de las primeras medidas para evaluar el resultado final
obtenido por diferentes algoritmos. "La bondad" de la solución depende de la utilización de las
máquinas dentro de una célula y del movimiento intercelular. La agrupación de la eficiencia
η de la ecuación 1.7 fue propuesta como un promedio ponderado de dos eficiencias η1 y η2 .

Para utilizar la medida de rendimiento η (ecuación 1.7), es necesario determinar los


parámetros básicos (tabla 1.4), estos son: el parámetro ο , el parámetro d , el parámetro ν y el
parámetro e , los cuales se calculan con las ecuaciones 1.3, 1.4, 1.5 y 1.6 respectivamente.

37
Capítulo 1. Marco Teórico

Tabla 1.4 Parámetros de la medida de rendimiento η .


Parámetr
Descripción
o
o
Número de 1s en la matriz
{a } .pm

d Número de 1s en el bloque diagonal.

v Número de vacíos en los bloques diagonales.

e Número de elementos excepcionales en la solución.

Proporción de los 1s en los bloques diagonales al número total de


η 1
elementos en los bloques (tanto 0s como 1s).

Proporción del número de elementos en los bloques no diagonales (tanto


η 2
0s como 1s).

M Número de máquinas.

P Número de piezas.

ω El efecto de movimiento intercelular.

P M
ο =∑ ∑a pm ................................................................................. 1.3
p =1 m =1

C
d =∑ ∑ ∑a pm ...................................................................... 1.4
c =1 p∈Pc m∈M c

C
ν = ∑ M c Pc − d ..........................................................................1.5
c =1

e = ο − d ............................................................................. 1.6

η = ωη1 + ( 1 − ω ) η2 ....................................................................... 1.7

Donde:
• ω es definido como el efecto de movimiento intercelular, del cual se recomienda un
valor de 0.5. Este factor de peso permite al diseñador cambiar el énfasis entre
utilización y movimiento intercelular.

38
Capítulo 1. Marco Teórico

• η1 es definido como la proporción del número de 1s en los bloques diagonales al


número total de elementos en los bloques (tanto 0s como 1s).
• η2 es la proporción del número de elementos en los bloques no diagonales (tanto 0s
como 1s).

Para calcular la η1 y η 2 se utilizan la ecuaciones 1.8 y 1.9 respectivamente.

ο −e
η1 = ................................................................... 1.8
ο − e +ν

MP − ο −ν
η2 = .................................................................... 1.9
MP − ο −ν + e

Sustituyendo la ecuación 1.8 y 1.9 en la ecuación 1.7 se obtiene la formula general para
calcular la eficiencia (1.10).

ο −e MP − ο −ν
η = ( ω) + (1−ω ) ...........................................1.10
ο − e +ν MP − ο −ν + e

Limitaciones de η .
• Si la ω = 0.5, el efecto de movimiento intercelular (elementos excepcionales) nunca es
reflejada en los valores de eficiencia para matrices grandes y escasas.
• La gama de valores para la eficiencia, que se agrupa normalmente, varía del 75 a 100
%. Así, hasta una solución muy mala con el número grande de elementos
excepcionales dará valores de alrededor del 75 %, considerando una definición poco
realista de punto cero.

39

También podría gustarte