viernes, 20 de junio de 2008

Correccion Miguel Mena 20_06

El desarrollo y ejecución de aplicaciones en Java exige que las herramientas para compilar (javac.exe) y ejecutar (java.exe) se encuentren accesibles. El ordenador, desde una ventana de comandos de MS-DOS, sólo es capaz de ejecutar los programas que se encuentran en los directorios indicados en la variable PATH del ordenador (o en el directorio activo). Si se desea compilar o ejecutar código en Java, el directorio donde se encuentran estos programas (java.exe y javac.exe) deberá encontrarse en el PATH. Tecleando PATH en una ventana de comandos de MS-DOS se muestran los nombres de directorios incluidos en dicha variable de entorno.

Java utiliza además una nueva variable de entorno denominada CLASSPATH, la cual determina dónde buscar tanto las clases o librerías de Java (el API de Java) como otras clases de usuario. A partir de la versión 1.1.4 del JDK no es necesario indicar esta variable, salvo que se desee añadir conjuntos de clases de usuario que no vengan con dicho JDK. La variable CLASSPATH puede incluir la ruta de directorios o ficheros *.zip o *.jar en los que se encuentren los ficheros *.class. En el caso de los ficheros *.zip hay que observar que los ficheros en él incluidos no deben estar comprimidos. En el caso de archivos *.jar existe una herramienta (jar.exe), incorporada en el JDK, que permite generar estos ficheros a partir de los archivos compilados *.class. Los ficheros *.jar son archivos comprimidos y por lo tanto ocupan menos espacio que los archivos *.class por separado o que el fichero *.zip equivalente.

Una forma general de indicar estas dos variables es crear un fichero batch de MS-DOS (*.bat)
donde se indiquen los valores de dichas variables. Cada vez que se abra una ventana de MS-DOS
será necesario ejecutar este fichero *.bat para asignar adecuadamente estos valores. Un posible
fichero llamado jdk117.bat, podría ser como sigue:

ESIISS: Aprenda Java como si estuviera en Primero página 4
set JAVAPATH=C:\jdk1.1.7
set PATH=.;%JAVAPATH%\bin;%PATH%
set CLASSPATH=.\;%JAVAPATH%\lib\classes.zip;%CLASSPATH%
lo cual sería válido en el caso de que el JDK estuviera situado en el directorio C:\jdk1.1.7.
Si no se desea tener que ejecutar este fichero cada vez que se abre una consola de MS-DOS es
necesario indicar estos cambios de forma “permanente”. La forma de hacerlo difiere entre Windows 95/98 y Windows NT. En Windows 95/98 es necesario modificar el fichero Autoexec.bat situado en C:\, añadiendo las líneas antes mencionadas. Una vez rearrancado el ordenador estarán presentes en cualquier consola de MS-DOS que se cree. La modificación al fichero Autoexec.bat en Windows 95/98 será la siguiente:

set JAVAPATH=C:\jdk1.1.7
set PATH=.;%JAVAPATH%\bin;%PATH%
set CLASSPATH=

donde en la tercera línea debe incluir la ruta de los ficheros donde están las clases de Java. En el
caso de utilizar Windows NT se añadirá la variable PATH en el cuadro de diálogo que se abre con
Start -> Settings -> Control Panel -> System -> Environment -> User Variables for NombreUsuario.

También es posible utilizar la opción –classpath en el momento de llamar al compilador javac.exe o al intérprete java.exe. En este caso los ficheros *.jar deben ponerse con el nombre completo en el CLASSPATH: no basta poner el PATH o directorio en el que se encuentra. Por ejemplo, si se desea compilar y ejecutar el fichero ContieneMain.java, y éste necesitara la librería de clases G:\MyProject\OtherClasses.jar, además de las incluidas en el CLASSPATH, la forma de
compilar y ejecutar sería:

javac -classpath .\;G:\MyProject\OtherClasses.jar ContieneMain.java
java -classpath .\;G:\MyProject\OtherClasses.jar ContieneMain

Se aconseja consultar la ayuda correspondiente a la versión que se esté utilizando, debido a que existen pequeñas variaciones entre las distintas versiones del JDK. Cuando un fichero filename.java se compila y en ese directorio existe ya un fichero filename.class, se comparan las fechas de los dos ficheros. Si el fichero filename.java es más antiguo que el filename.class no se produce un nuevo fichero filename.class. Esto sólo es válido para ficheros *.class que se corresponden con una clase public.

EL ENTORNO DE DESARROLLO DE JAVA

Existen distintos programas comerciales que permiten desarrollar código Java. La compañía Sun,
creadora de Java, distribuye gratuitamente el Java(tm) Development Kit (JDK). Se trata de un
conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java.
Incorpora además la posibilidad de ejecutar parcialmente el programa, deteniendo la ejecución en el
punto deseado y estudiando en cada momento el valor de cada una de las variables (con el
denominado Debugger). Cualquier programador con un mínimo de experiencia sabe que una parte
muy importante (muchas veces la mayor parte) del tiempo destinado a la elaboración de un
programa se destina a la detección y corrección de errores. Existe también una versión reducida del
JDK, denominada JRE (Java Runtime Environment) destinada únicamente a ejecutar código Java
(no permite compilar).
Los IDEs (Integrated Development Environment), tal y como su nombre indica, son entornos
de desarrollo integrados. En un mismo programa es posible escribir el código Java, compilarlo y
ejecutarlo sin tener que cambiar de aplicación. Algunos incluyen una herramienta para realizar
Debug gráficamente, frente a la versión que incorpora el JDK basada en la utilización de una
consola (denominada habitualmente ventana de comandos de MS-DOS, en Windows NT/95/98)
bastante difícil y pesada de utilizar. Estos entornos integrados permiten desarrollar las aplicaciones
de forma mucho más rápida, incorporando en muchos casos librerías con componentes ya
desarrollados, los cuales se incorporan al proyecto o programa. Como inconvenientes se pueden
señalar algunos fallos de compatibilidad entre plataformas, y ficheros resultantes de mayor tamaño
que los basados en clases estándar.
Capítulo 1: Introducción a Java página 3
1.2.1 El compilador de Java
Se trata de una de las herramientas de desarrollo incluidas en el JDK. Realiza un análisis de sintaxis
del código escrito en los ficheros fuente de Java (con extensión *.java). Si no encuentra errores en
el código genera los ficheros compilados (con extensión *.class). En otro caso muestra la línea o
líneas erróneas. En el JDK de Sun dicho compilador se llama javac.exe. Tiene numerosas opciones,
algunas de las cuales varían de una versión a otra. Se aconseja consultar la documentación de la
versión del JDK utilizada para obtener una información detallada de las distintas posibilidades.
1.2.2 La Java Virtual Machine
Tal y como se ha comentado al comienzo del capítulo, la existencia de distintos tipos de
procesadores y ordenadores llevó a los ingenieros de Sun a la conclusión de que era muy importante
conseguir un software que no dependiera del tipo de procesador utilizado. Se planteó la necesidad
de conseguir un código capaz de ejecutarse en cualquier tipo de máquina. Una vez compilado no
debería ser necesaria ninguna modificación por el hecho de cambiar de procesador o de ejecutarlo
en otra máquina. La clave consistió en desarrollar un código “neutro” el cual estuviera preparado
para ser ejecutado sobre una “máquina hipotética o virtual”, denominada Java Virtual Machine
(JVM). Es esta JVM quien interpreta este código neutro convirtiéndolo a código particular de la
CPU utilizada. Se evita tener que realizar un programa diferente para cada CPU o plataforma.
La JVM es el intérprete de Java. Ejecuta los “bytecodes” (ficheros compilados con extensión
*.class) creados por el compilador de Java (javac.exe). Tiene numerosas opciones entre las que
destaca la posibilidad de utilizar el denominado JIT (Just-In-Time Compiler), que puede mejorar
entre 10 y 20 veces la velocidad de ejecución de un programa.

Que es JAVA

Java 2 (antes llamado Java 1.2 o JDK 1.2) es la tercera versión importante del lenguaje de
programación Java.
No hay cambios conceptuales importantes respecto a Java 1.1 (en Java 1.1 sí los hubo
respecto a Java 1.0), sino extensiones y ampliaciones, lo cual hace que a muchos efectos –por
ejemplo, para esta introducción- sea casi lo mismo trabajar con Java 1.1 o con Java 1.2.
Los programas desarrollados en Java presentan diversas ventajas frente a los desarrollados en
otros lenguajes como C/C++. La ejecución de programas en Java tiene muchas posibilidades:
ejecución como aplicación independiente (Stand-alone Application), ejecución como applet,
ejecución como servlet, etc. Un applet es una aplicación especial que se ejecuta dentro de un
navegador o browser (por ejemplo Netscape Navigator o Internet Explorer) al cargar una página
HTML desde un servidor Web. El applet se descarga desde el servidor y no requiere instalación en
el ordenador donde se encuentra el browser. Un servlet es una aplicación sin interface gráfica que se
ejecuta en un servidor de Internet. La ejecución como aplicación independiente es análoga a los
programas desarrollados con otros lenguajes.
Además de incorporar la ejecución como Applet, Java permite fácilmente el desarrollo tanto
de arquitecturas cliente-servidor como de aplicaciones distribuidas, consistentes en crear
aplicaciones capaces de conectarse a otros ordenadores y ejecutar tareas en varios ordenadores
simultáneamente, repartiendo por lo tanto el trabajo. Aunque también otros lenguajes de programación
permiten crear aplicaciones de este tipo, Java incorpora en su propio API estas
funcionalidades.

Historia de JAVA

Java surgió en 1991 cuando un grupo de ingenieros de Sun Microsystems trataron de diseñar un
nuevo lenguaje de programación destinado a electrodomésticos. La reducida potencia de cálculo y
memoria de los electrodomésticos llevó a desarrollar un lenguaje sencillo capaz de generar código
de tamaño muy reducido.
Debido a la existencia de distintos tipos de CPUs y a los continuos cambios, era importante
conseguir una herramienta independiente del tipo de CPU utilizada. Desarrollaron un código
“neutro” que no dependía del tipo de electrodoméstico, el cual se ejecutaba sobre una “máquina
hipotética o virtual” denominada Java Virtual Machine (JVM). Era la JVM quien interpretaba el
código neutro convirtiéndolo a código particular de la CPU utilizada. Esto permitía lo que luego se
ha convertido en el principal lema del lenguaje: “Write Once, Run Everywhere”. A pesar de los
esfuerzos realizados por sus creadores, ninguna empresa de electrodomésticos se interesó por el
nuevo lenguaje.
Como lenguaje de programación para computadores, Java se introdujo a finales de 1995. La
clave fue la incorporación de un intérprete Java en la versión 2.0 del programa Netscape Navigator,
produciendo una verdadera revolución en Internet. Java 1.1 apareció a principios de 1997,
mejorando sustancialmente la primera versión del lenguaje. Java 1.2, más tarde rebautizado como
Java 2, nació a finales de 1998.
Al programar en Java no se parte de cero. Cualquier aplicación que se desarrolle “cuelga” (o
se apoya, según como se quiera ver) en un gran número de clases preexistentes. Algunas de ellas las
ha podido hacer el propio usuario, otras pueden ser comerciales, pero siempre hay un número muy
importante de clases que forman parte del propio lenguaje (el API o Application Programming
Interface de Java). Java incorpora en el propio lenguaje muchos aspectos que en cualquier otro
lenguaje son extensiones propiedad de empresas de software o fabricantes de ordenadores (threads,
ejecución remota, componentes, seguridad, acceso a bases de datos, etc.). Por eso muchos expertos
opinan que Java es el lenguaje ideal para aprender la informática moderna, porque incorpora todos
estos conceptos de un modo estándar, mucho más sencillo y claro que con las citadas extensiones de
otros lenguajes. Esto es consecuencia de haber sido diseñado más recientemente y por un único
equipo.
El principal objetivo del lenguaje Java es llegar a ser el “nexo universal” que conecte a los
usuarios con la información, esté ésta situada en el ordenador local, en un servidor de Web, en una
base de datos o en cualquier otro lugar.
Java es un lenguaje muy completo (de hecho se está convirtiendo en un macro-lenguaje: Java
1.0 tenía 12 packages; Java 1.1 tenía 23 y Java 1.2 tiene 59). En cierta forma casi todo depende de
casi todo. Por ello, conviene aprenderlo de modo iterativo: primero una visión muy general, que se
va refinando en sucesivas iteraciones. Una forma de hacerlo es empezar con un ejemplo completo
en el que ya aparecen algunas de las características más importantes.
La compañía Sun describe el lenguaje Java como “simple, orientado a objetos, distribuido,
interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y
dinámico”. Además de una serie de halagos por parte de Sun hacia su propia criatura, el hecho es
que todo ello describe bastante bien el lenguaje Java, aunque en algunas de esas características el
lenguaje sea todavía bastante mejorable. Algunas de las anteriores ideas se irán explicando a lo
largo de este manual.

Gerencia de Proyecto

Qué es un proyecto
Un proyecto es un esfuerzo planificado, temporal y único, realizado para crear productos o servicios únicos que agreguen valor o provoquen un cambio beneficioso. Esto en contraste con la forma más tradicional de trabajar, en base a procesos, en la cual se opera en forma permanente, creando los mismos productos o servicios una y otra vez.

Que es la gerencia de proyectos (Project management)
Gerencia de proyectos es la disciplina de organizar y administrar los recursos, de forma tal que un proyecto dado sea terminado completamente dentro de las restricciones de alcance, tiempo y coste planteados a su inicio.Dada la naturaleza única de un proyecto, en contraste con los procesos u operaciones de una organización, administrar un proyecto requiere de una filosofía distinta, así como de habilidades y competencias específicas. De allí la necesidad de la disciplina Gerencia de Proyectos.
La gerencia de proyectos implica ejecutar una serie de actividades, que consumen recursos como tiempo, dinero, gente, materiales, energía, comunicación (entre otros) para lograr unos objetivos pre-definidos.

Historia de la gerencia de proyectos
En la primera mitad del siglo XX, los proyectos eran administrados con métodos y técnicas informales, basados en los gráficos Gantt – una representación gráfica del tiempo basada en barras, útil para controlar el trabajo y registrar el avance de tareas. En los años 50, se desarrollaron en Estados Unidos dos modelos matemáticos: PERT (Program Evaluation and Review Technique, técnica para evaluar y revisar programas, desarrollado por la Marina) y CPM (Critical Path Method, método de ruta crítica, desarrollado por DuPont y Remington Rand, para manejar proyectos de mantenimiento de plantas). El PERT/CPM es, hasta la fecha, la base metodológica utilizada por los gerentes de proyectos profesionales.En 1969, se formó el PMI (Project Management Institute, Instituto de Gerencia de Proyectos), bajo la premisa que cualquier proyecto, sin importar su naturaleza, utiliza las mismas bases metodológicas y herramientas. Es esta organización la que dicta los estándares en esa materia.



Características de los
proyectos de ingeniería

Los proyectos de ingeniería no son actividades de rutina y, sus parámetros de definición y control (objeto de proyecto; presupuesto; programación, etc.) exigen la participación de las más diversas áreas de la organización e institucionales para minimizar los riesgos que los proyectos envuelven (financieros, económicos,
imagen de la empresa, expansiones / adecuaciones futuras, impacto ambiental, entre otros). De modo que, en la toma de decisiones son consideradas las opiniones de sectores tan diversos como: Marketing, Ingeniería del producto, Ingeniería de procesos, Operación y Mantenimiento. Un plan concebido y aprobado por todas las partes implicadas tiene más posibilidades de alcanzar el éxito.
Puede realizar programas estratégicos de largo plazo, ser un monoproyecto de duración generalmente menor de 3 años o subproyectos caracterizados por esfuerzos menores a corto plazo.
Su ciclo de vida se compone de varias fases características no siempre bien diferenciadas, pero que deben ser analizadas individualmente para prever las necesidades básicas de cada una (organización, personal en cantidad y calificación, instalaciones, sistemas, etc.).

2.Etapas de un Proyecto.

Estas fases son las siguientes:

-Concepción
Es el primer paso del análisis del proyecto, en este proceso en Analista se reúne con el cliente y/o usuario (un representante institucional, departamental o cliente particular), e identifican las metas globales, se analizan las perspectivas del cliente, sus necesidades y requerimientos, sobre la planificación temporal y presupuestal, líneas de
mercadeo y otros puntos que puedan ayudar a la identificación y desarrollo del proyecto.

· Reconocimiento del problema.
·
Evaluación y Síntesis.
· Modelado.
· Especificación.
· Revisión.


-Viabilización
Muchas veces cuando se emprende el desarrollo de un proyecto, los recursos y el tiempo no son realistas para su materialización sin tener pérdidas económicas y frustración profesional. La viabilidad y el análisis de
riesgos están relacionados de muchas maneras, si el riesgo del proyecto es alto, la viabilidad de producir un producto de calidad se reduce, sin embargo se deben tomar en cuenta cuatro áreas principales de interés:

Viabilidad económica.
Viabilidad Técnica.
Viabilidad Legal.

-Implantación
En esta fase del proyecto. Es el proceso instalar equipos o Software nuevo, como resultado de un análisis y diseño previo como resultado de la sustitución o mejoramiento de la forma de llevar a cavo un proceso automatizado.

Al Implantar un producto lo primero que debemos hacer es asegurarnos que el producto sea operacional o sea que funcione de acuerdo a los requerimientos del análisis y permitir que los usuarios puedan operarlo.
Existen varios enfoques de Implementación:
· Es darle
responsabilidad a los grupos.
· Uso de diferentes estrategias para el
entrenamiento de los usuarios.
· El Analista necesita ponderar la situación y proponer un plan de conversión que sea adecuado para
la organización.
· El Analista necesita formular medidas de
desempeño con las cuales evaluar a los Usuarios.
· Debe Convertir físicamente el producto antiguo, al nuevo modificado.


-Operación
Se lleva a cabo para identificar puntos débiles y fuertes del producto implantado. La evaluación ocurre a lo largo de cualquiera de las siguientes cuatro dimensiones:

Evaluación operacional:

Es el Momento en que sé evalúa la manera en que funciona el producto, esto incluye su facilidad de uso, Tiempo de respuesta ante una necesidad o proceso, como se adecuan los formatos en que se presenta la Información,
contabilidad global y su nivel de Utilidad.

Impacto Organizacional:
Identifica y mide los beneficios operacionales para la
Empresa en áreas tales como, Finanzas (Costos, Ingresos y Ganancias), eficiencia en el desempeño laboral e impacto competitivo, Impacto, rapidez y organización en el flujo de Información interna y externa.

Desempeño del Desarrollo:
Es la evaluación del Proceso de desarrollo adecuado tomando en
cuentas ciertos criterios como, Tiempo y esfuerzo en el desarrollo concuerden con presupuesto y estándares y otros criterios de Administración de Proyectos. Además se incluyen la valoración de los métodos y herramientas utilizados durante el desarrollo del producto.


Durante el desarrollo de las diversas fases del ciclo de vida, los requisitos de la organización y las funciones que participan varían, pero si el
proyecto es muy importante para la empresa, la estructura transitoria necesaria será en todo momento vinculada a la Dirección y/o Presidencia de la empresa. Esta estructura constituye la Gerencia del Proyecto que.


3.Conceptos de grupos de Trabajo

un grupo de trabajo es un subsistema especializado dentro de una organización. Las personas que lo componen lo diseñan con un funcionamiento fijo para proyectar y realizar el mismo tipo de tareas. Un comité del senado o una comisión del ayuntamiento también lo son. El sentimiento de pertenencia al grupo es automático y el alto o bajo nivel de satisfacción es lo común.
El número de componentes es entre 10 y 20, aunque su productividad está limitada por la combinación de interrelaciones posibles o socio gramas que estudiaron Moreno y Dane.
Su estructura es un presidente o un director, que es el responsable y establece el funcionamiento del grupo, no debe de tener una personalidad autoritaria, pues provocaría deserciones entre iguales (en preparación técnica), pero si actuar como moderador si es necesario y le sigue un coordinador, que en ausencia del director le sustituye y está encargado de la recopilación de información y hacerla llegar a los integrantes o componentes del grupo, es un vicepresidente o un secretario técnico y el resto de las personas (vocales o miembros) realizan las tareas según su preparación personal y si es posible sus preferencias. Alguno de ellos o rotativamente deberá hacer las funciones de un secretario como convocar a las reuniones, etc. En terminología inglesa y con un concepto de célula: 'convenor' que convoca, 'facilitator' que facilita la información, 'recorder' que toma notas y 'reporter' que las trasmite. No hay o no debe haber en el grupo líderes informales, que quizás no sea necesario su carisma porque el ente es técnico y no pretende ser de otro tipo. Si que son necesarias la propaganda y la publicidad de sus trabajos en las comunidades políticas y científica. Si es posible debe ser independiente de la alta dirección de la organización y trabajar por resultados.
Equipos de Trabajos
El equipo de trabajo es el conjunto de personas asignadas o autoasignadas, de acuerdo a habilidades y competencias específicas, para cumplir una determinada meta bajo la conducción de un coordinador





Diferencias entre equipo de trabajo y grupo de trabajo


Aunque ya se mencionaron en la lección anterior algunas diferencias entre grupo de trabajo y equipo de trabajo vamos a tratar ahora de precisarlas:
Grupo de trabajo es un conjunto de personas que realizan dentro de una organización una labor similar.
Suelen estar próximas físicamente, tienen un mismo jefe, realizan el mismo tipo de trabajo pero son autónomos, no dependen del trabajo de sus compañeros: cada uno realiza su trabajo y responde individualmente del mismo.
Por ejemplo, en un hospital los anestesistas forman un grupo de trabajo: realizan la misma actividad, tienen un jefe común (el jefe de sección), pero cada uno responde de su trabajo (la labor de un anestesista no depende de la de sus compañeros).
Puede que un anestesista realice una labor fantástica mientras que el departamento en su conjunto sea un auténtico desastre.
Las diferencias entre equipo de trabajo y grupo de trabajo son importantes:
El equipo de trabajo responde en su conjunto del trabajo realizado mientras que en el grupo de trabajo cada persona responde individualmente.
En el grupo de trabajo sus miembros tienen formación similar y realizan el mismo tipo de trabajo (no son complementarios). En el equipo de trabajo cada miembro domina una faceta determinada y realiza una parte concreta del proyecto (sí son complementarios).
En el grupo de trabajo cada persona puede tener una manera particular de funcionar, mientras que en el equipo es necesario la coordinación, lo que va a exigir establecer unos estándares comunes de actuación (rapidez de respuesta, eficacia, precisión, dedicación, etc.).
En el equipo de trabajo es fundamental la cohesión, hay una estrecha colaboración entre sus miembros. Esto no tiene por qué ocurrir en el grupo de trabajo.
El grupo de trabajo se estructura por niveles jerárquicos. En el equipo de trabajo en cambio las jerarquías se diluyen: hay un jefe de equipo con una serie de colaboradores, elegidos en función de sus conocimientos, que funcionan dentro del equipo en pie de igualdad aunque sus categorías laborales puedan ser muy diferentes.
Por ejemplo, una entidad financiera española constituyó un equipo de trabajo para analizar una oportunidad de inversión en el extranjero. Formaban parte de este equipo desde subdirectores generales hasta empleados de reciente incorporación, especialistas en determinadas materias. Dentro del equipo todos funcionaban al mismo nivel, no había distinciones jerárquicas.


4.Dinámicas de Grupos

Se define dinámica de grupo desde el punto de vista teórico : conjunto de fenómenos psicológicos que se producen en el grupo así como las leyes que lo producen y regulan. Desde este punto de vista es una rama de la psicología social
Se define la dinámica de grupos desde el punto de vista de la técnica : Conjunto de procedimientos y medios para ser utilizados en situaciones grupales con el fin de que se manifieste de manera mas expresa los fenómenos, hechos y procesos grupales que se están viviendo en el seno del grupo en el que se aplican.

5.Equipos dinámicos de trabajo
Es un equipo de trabajo que permite discutir entre y con ellos, qué tipo de gente debe y no debe servir en posiciones superiores de liderazgo.
Se basa en un revolucionario concepto denominado Espacio de Trabajo Dinámico que da a las personas la flexibilidad necesaria para adaptar el entorno de trabajo a toda una gama de distintas necesidades, estilos de trabajo y preferencias, a lo largo del día.
Poseen.accesorios que pueden y permiten desplazarse fácilmente a lo largo del puesto de trabajo para adaptarse a distintas tareas y aplicaciones.
Es un ambiente de trabajo diseñado para crear privacidad total o para permitir un trabajo de colaboración en equipo. Esto da a los empleados control dinámico sobre su propio espacio de trabajo de modo que puedan equilibrar su necesidad de concentración con la de interactuar con otras personas.
Lo elemental es o consiste en Aportar la privacidad necesaria, Facilitar el acceso a la información , Hacer evidente el proceso de trabajo y Estimular y atraer.Tambien es necesario que se pueda transmitir la imagen de Espacio de Trabajo Dinámico que apoya los cambios de organización de manera natural y sin esfuerzo. Distintos empleados pueden utilizar el mismo espacio simplemente reposicionando las herramientas de trabajo para satisfacer sus propias necesidades y preferencias.

6.Equipos de alto rendimiento.
Los Equipos de altos rendimiento son los que poseen las siguientes caracteristicas:

Liderazgo. Los líderes deben ser entrenadores. El buen liderazgo hace posible que los empleados realicen su trabajo con orgullo. Los líderes no hacen las cosas a su gente; hace las cosas con su gente. Ellos escuchan. Ellos y ellas se ganan el respeto de los demás. Tienen un profundo conocimiento que les permite dirigir. Un líder adecuado debe tener la visión de hacia dónde va la organización. El líder debe ser capaz de comunicar a su equipo las metas de la organización, para que los esfuerzos se dirijan hacia la dirección correcta.
Metas específicas, cuantificables. Sin una meta, no hay equipo. ¿Por qué es importante para un equipo tener un propósito, una meta? Porque ayuda a sus miembros a saber hacia dónde van. Les proporciona una dirección. Un equipo tendrá más probabilidad de alcanzar el éxito en la medida en que todos sus componentes conozcan y comprendan su propósito y metas. Si existe confusión o desacuerdo, el éxito del equipo será más difícil de conseguir.
Respeto, compromiso y lealtad. El respeto mutuo entre los miembros del equipo y los líderes, es otra característica de los equipos eficaces. También existirá disposición a hacer un esfuerzo extra si está presente la lealtad y el compromiso con las metas.
Comunicación eficaz. Son numerosas las investigaciones que demuestran que este es el problema principal que perciben los empleados actualmente. El líder y los miembros del equipo deben intercambiar información y retroalimentación. Deben preguntar: ¿Cómo lo estoy haciendo?. ¿Qué es correcto y qué es incorrecto?. ¿Cómo lo puedo hacer mejor?. ¿Qué necesitas para hacer mejor el trabajo?.
Aprender durante el camino. ¿Hay progreso?. ¿Cómo lo estamos haciendo? Debe obtenerse retroalimentación sobre el resultado del trabajo realizado por el equipo. Esta retroalimentación permitirá rectificar cuando se detecte que no se está en la dirección correcta. Por otra parte, el líder del equipo deberá reconocer los esfuerzos realizados, alabar cuando se está trabajando bien y redirigir cuando no es así.
Pensamiento positivo. Permitir que las ideas fluyan libremente. Ninguna idea debe ser criticada. Las nuevas ideas son bienvenidas y asumir riesgos debe ser valorado y estimulado. Los errores deben ser vistos como oportunidades de crecimiento y aprendizaje, no como ocasiones para la censura y la reprensión.
Reconocimiento. El reconocimiento es una clave para la motivación. La otra es el reto, el desafío. El reconocimiento puede ser tan simple como una expresión verbal del tipo: "Bien hecho". O tener la oportunidad de presentar los resultados a la dirección, o una mención del trabajo realizado por el equipo hecha al resto de la organización, una carta de felicitación,... En definitiva, el equipo debe ser reconocido por sus esfuerzos y resultados.
Tipología de los Equipos de Trabajo
Los equipos de trabajo pueden agruparse en distintos tipos, dependiendo de quienes los compongan, el alcance de sus objetivos, la voluntariedad u obligatoriedad de la participación en ellos y otras características.
Definiremos aquí cuatro de ellos, así como sus rasgos más reveladores.
Círculos de Calidad. Están integrados por un pequeño número de trabajadores que desarrollan su actividad en una misma área, junto a su supervisor, y que se reúnen voluntariamente para analizar problemas propios de su actividad y elaborar soluciones. El círculo se reúne periódicamente, durante una hora a la semana y dentro del horario laboral, aunque si es necesario el número de horas y reuniones puede ser ampliado.Son los propios miembros del círculo los que eligen el problema a tratar, siendo esta la primera decisión que habrá de tomar el equipo. Recogen la información oportuna y, si es necesario, pueden contar con técnicos y asesoramiento externo en general, ya que la gerencia les apoya completamente y les brinda toda la ayuda que precisen.La dirección del círculo no tiene que ser siempre ejercida por el mando directo del grupo. Es posible que otro miembro distinto del círculo coordine y dirija las reuniones.
Equipos de Progreso. También llamados "equipos de mejora" o "equipos de desarrollo". Sus miembros se reúnen de forma no voluntaria con el propósito de resolver un problema concreto por el que han sido convocados. Una vez alcanzado el objetivo, el grupo se disuelve.Generalmente se tratan problemas que afectan a distintas áreas de trabajo o departamentos. Por esa razón, la composición es multifuncional y multinivel. Los participantes son seleccionados sobre la base de su conocimiento y experiencia, así como del grado de involucración en el problema.La duración y periodicidad de las reuniones depende de la urgencia de la solución, pudiendo ir desde reuniones cortas y de frecuencia limitada, hasta reuniones largas y frecuentes.
Equipos de Procesos. Una de las líneas de actuación con más potencialidad en la reducción de costes y el incremento de la eficacia y la eficiencia, es la gestión de los procesos. Un equipo de este tipo se centra en un proceso específico con el objetivo de mejorarlos, rediseñarlo o de operar en el mismo un cambio total mediante una acción de reingeniería.Sus miembros son dirigidos por la gerencia, o por alguien que está fuertemente relacionado con el proceso en cuestión. Son equipos interfuncionales, en cuanto que el proceso meta comprenda a varias áreas o departamentos. Pueden implicar, en un momento dado, a otros equipos de progreso para la mejora de aspectos puntuales del proceso estudiado.
Equipos Autónomos. Son conocidos también con el nombre de "equipos de trabajo autogestionario" o de "equipos de trabajo autodirigidos". Representan el grado de participación más amplio ya que, en la práctica, la dirección delega en ellos importantes funciones.El grupo adquiere una responsabilidad colectiva, administrando sus propias actividades sin interferencia de la gerencia. Tienen atribuciones sobre la planificación de las actividades, el presupuesto y la organización del trabajo. En ocasiones, incluso están facultados para contratar y despedir personal.La autoridad se ejerce de forma rotatoria, aunque la mayoría es la que decide en último término. Este tipo de participación es muy avanzada y, aunque ha demostrado funcionar bien, exige una cultura de la participación muy bien asentada y un alto grado de confianza entre la gerencia y los empleados.




Liderasgo

Definicion de Liderasgo.

Liderazgo es el proceso de influencia (por medio de la motivación) en las personas para lograr las metas deseadas. Para ser un buen lider se requiere carisma, Inteligencia, poder de convencimiento, sensibilidad, integridad, arrojo, imparcialidad, ser innovador, simpatía, cerebro y sobre todo mucho corazón para poder dirigir a un grupo de personas y lo sigan por su propia voluntad, motivándolos, estimulándolos y así alcanzar las metas deseadas, y que cada quien se sienta satisfecho y tenga la sensación de ganancia y no de pérdida.

Según el Diccionario de la Lengua Española (1986), liderazgo se define como la dirección, jefatura o conducción de un partido político, de un grupo social o de otra colectividad. El Diccionario de Ciencias de la Conducta (1956), lo define como las "cualidades de personalidad y capacidad que favorecen la guía y el control de otros individuos".

Otras definiciones son: -"El liderazgo es un intento de influencia interpersonal, dirigido a través del proceso de comunicación, al logro de una o varias metas"

Definicion de Lider.

Líder, aquella persona que tiene autoridad frente a un grupo, conservando la union del grupo y donde cada individuo ejecuta las ordenes en el marco de respeto colaboración sobre la obligación.

CARACTERÍSTICAS DE UN LÍDER

Entendemos el líder por las siguientes características.

1. El líder debe tener el carácter de miembro, es decir, debe pertenecer al grupo que encabeza, compartiendo con los demás miembros los patrones culturales y significados que ahí existen.

2.La primera significación del líder no resulta por sus rasgos individuales únicos, universales (estatura alta, baja , aspecto , voz, etc. ).

3. Sino que cada grupo considera líder al que sobresalga en algo que le interesa, o más brillante, o mejor organizador, el que posee más tacto, el que sea más agresivo, más santo o más bondadoso.

4. Cada grupo elabora su prototipo ideal y por lo tanto no puede haber un ideal único para todos los grupos. d) En cuarto lugar. El líder debe organizar, vigilar, dirigir o simplemente motivar al grupo a determinadas acciones o inacciones según sea la necesidad que se tenga. Estas cuatro cualidades del líder, son llamadas también carisma.

5 .Por último, otra exigencia que se presenta al líder es la de tener la oportunidad de ocupar ese rol en el grupo, si no se presenta dicha posibilidad, nunca podrá demostrar su capacidad de líder.

Definición de Gerencia.

La gerencia es un cargo que ocupa el director de una empresa lo cual tiene dentro de sus múltiples funciones, representar a la sociedad frente a terceros y coordinar todos los recursos a través del proceso de planeamiento, organización dirección y control a fin de lograr objetivos establecidos.

Henry, Sisk y Mario Sverdlik (1979) expresa que:

... El término (gerencia ) es difícil de definir: significa cosas diferentes para personas diferentes. Algunos lo identifican con funciones realizadas por empresarios, gerentes o supervisores, otros lo refieren a un grupo particular de personas. Para los trabajadores; gerencia es sinónimo del ejercicio de autoridad sobre sus vidas de trabajo...

De allí que, en muchos casos la gerencia cumple diversas funciones porque la persona que desempeña el rol de gerenciar tiene que desenvolverse como administrador, supervisor, delegador,etc. De allí la dificultad de establecer una definición concreta de ese término.

TIPOS DE GERENCIA

En la gerencia existen cuatro tipos los cuales son:

La Gerencia Patrimonial

Este tipo de gerencia es aquella que en la propiedad, los puestos principales de formulación de principios de acción y una proporción significativa de otros cargos superiores de la jerarquía son retenidos por miembros de una familia extensa.

La Gerencia Política

La gerencia política es menos común y al igual que la dirección patrimonial, sus posibilidades de supervivencia son débiles en las sociedades industrializantes modernas, ella existe cuando la propiedad, en altos cargos decisivos y los puestos administrativos claves están asignados sobre la base. de la afiliación y de las lealtades políticas.

La Gerencia por Objetivos

La gerencia por objetivos se define como el punto final (o meta) hacia el cual la gerencia dirige sus esfuerzos. El establecimiento de un objetivo es en efecto, la determinación de un propósito, y cuando se aplica a una organización empresaria, se convierte en el establecimiento de la razón de su existencia.

GERENTE

Persona, con plena capacidad jurídica, que dirige una empresa por cuenta y encargo del empresario. En esa persona se le encomienda la labor de cuidar, supervisar, controlar, planificar, las personas que bajo su mando están.














Aquí esta algo mas que consegui

TIPOS DE GERENTES

Se ha usado el término gerente para referirse a quien sea responsable de cumplir las cuatro actividades básicas de la administración en el desarrollo de sus relaciones. Una manera de captar la complejidad de la administración es entender que los gerentes pueden trabajar en diferentes niveles de una organización y de diferentes rangos de actividades dentro de ellas. Después de analizar el nivel y el alcance de diversos tipos de gerentes, sé verá también que diferentes tipos de administración refuerzan diferentes capacidades y roles.

Gerencia efectiva
La tarea fundamental de cualquier gerente de negocios es obtener los mejores resultados posibles a partir de los recursos disponibles. Por tal motivo, la gerencia ocupa la mayoría de su tiempo, si no todo, en problemas económicos a corto plazo, tales como: costos, precios, ventas, control de calidad y entrenamiento. De hecho, la mayoría de las técnicas y herramientas utilizadas por el gerente moderno están orientadas a la buena administración del negocio, con miras a obtener buenos resultados en el futuro. Alrededor de un 90% de los libros, reportes y estudios, relacionados con el área de negocios, versan sobre dicho tema.

Pero, en realidad, no necesitamos más o mejores herramientas, sino conceptos simples, que nos ayuden a organizar el negocio. Entre dichos conceptos, nos ocuparemos en particular de los siguientes: 1. la tarea de un gerente; 2. el mayor problema con el que éste debe lidiar; y, 3. el principio para definir y analizar este problema. La idea aquí no es dar una “fórmula mágica” que haga el trabajo por el gerente, sino organizar la tarea del gerente de modo tal que brinde resultados económicos satisfactorios.

1. La tarea de un gerente es dirigir los recursos y esfuerzos del negocio hacia las oportunidades, para obtener resultados económicamente relevantes. Aunque esta definición parezca obvia, cada estudio que he visto sobre la asignación de recursos y esfuerzos en negocios, demuestra que, por lo general, tiempo, esfuerzo, dinero y atención, son invertidos primero en los “problemas” y, en segundo lugar, en las oportunidades.

2. El mayor problema que se le presenta a los gerentes en su quehacer laboral es la confusión entre efectividad y eficiencia. No existe nada más inútil que hacer con eficiencia aquello que no es necesario hacer. Y, sin embargo, todas nuestras herramientas se enfocan en la eficiencia. Lo importante es enfocarse en hacer cosas que sean efectivas.

3. El principio para analizar dicho problema es que: “Los negocios no son un fenómeno natural, sino un producto social”. Pero en una situación de origen social los eventos no están distribuidos del mismo modo que en la naturaleza, es decir, no responden a la proporción propia de una curva de Gauss. Por el contrario, en una situación social, una pequeña parte de los eventos justifican el 90% del total de los resultados. Esto se aplica, claro está, al mercado. Sólo un pequeño número de clientes produce la mayoría de las órdenes; sólo un pequeño número de productos produce las mayores ganancias; sólo un pequeño grupo de los vendedores produce la mayoría de las nuevas ganancias; y esto se aplica al resto de las situaciones ligadas con el mundo de los negocios.

De acuerdo con este principio, los gerentes deben enfocar sus esfuerzos en esa pequeña parte del universo social que cuenta a la hora de obtener resultados económicos de relevancia. En eso consiste ser efectivo en vez de eficiente. No sirve de mucho ser eficiente en las tareas involucradas con aquella parte del universo social que brinda menores resultados. El reto está en descubrir y enfocarse en lo realmente efectivo o si se quiere, ser eficiente en áreas que sean efectivas.

Publicado originalmente en Harvard Business Review en 1963

PROGRAMACION EN ASSEMBLER

En este capítulo se está ya en condiciones de saber qué es la programación en ASSEMBLER; esto es, escribir una serie de códigos entendibles por el usuario que posteriormente serán convertidos en código de máquina entendible por el microprocesador, en este caso el Z-80.

La programación en ASSEMBLER requiere cuidados especiales si se desea sacar el máximo rendimiento, por ejemplo, ante dos instrucciones que obtengan el mismo resultado se debe elegir aquella que tenga menos ciclos de máquina o de reloj, o aquella que ocupe menos posiciones de memoria; incluso en algunos casos habrá que elegir entre ocupar menos posiciones o ser más rápidos, en función de las necesidades que se tengan. Esto no quiere decir que sea necesario conocer de memoria los ciclos de cada instrucción; un manual de ASSEMBLER debe contener toda la información necesaria, con un método de acceso fácil, a pesar de que en algún caso resulte redundante. Se pretende que este curso, además de como tal, pueda servir en el futuro como un manual de consulta rápida, por lo que en algunos casos, es posible que el lector encuentre información reiterada.

Otra buena costumbre cuando se programa en ASSEMBLER es poner comentarios; siempre hay una manera de ponerlos en cada instrucción o intercalados entre ellas. Los comentarios sólo ocupan lugar en el código simbólico o programa fuente; cualquier ensamblador los ignora cuando convierte el programa en código de máquina, lo cual quiere decir que no ocupará más un programa absoluto porque su simbólico tenga comentarios, pero tampoco irá más despacio. Cuando pase el tiempo y queramos modificar alguna parte del programa y se haya olvidado el porqué de cada instrucción, los comentarios serán de gran ayuda.

Siguiendo con la exposición de buenas costumbres nos referiremos, por último, al empleo de subrutinas. Ya veremos cómo se hacen y cómo se accede a ellas, pero hay que irse mentalizando a su uso. Esto es importante en este momento porque se trata de un problema de estructura del programa. Las ventajas son múltiples; una estructura de subrutinas es más fácil de entender, por lo tanto de modificar. Se da con frecuencia el caso de necesitar en un programa operaciones iguales o semejantes a las de otro, por lo tanto, con limitarse a copiar totalmente estas partes o como mucho, adaptarlas algo a las características del nuevo programa, saldríamos adelante.

Resumiendo, hay que acostumbrarse desde un principio a estos métodos y a la realización del organigrama, sobre el cual daremos algunas orientaciones al final de este capítulo. Toda esta información, más los diseños que se hagan de pantalla, de campos o de tablas, se guardan juntas en una carpeta o cosidas con grapa y se conseguirá una buena documentación de cada programa, documentación que nos será muy útil en el futuro.

Realización de un programa
Existen una serie de pasos que se deben seguir para dar por definitiva la realización de un programa. Cuando más detallada sea la organización de estos pasos, más fácil será la realización del siguiente. El concepto programa abarca a todo lo que se puede realizar en una corriente de instrucciones dentro de un ordenador, por lo cual, tan programa es un juego, como llevar la contabilidad de una casa o la solución de problemas científicos; la metodología a seguir es la misma.

PASOS A SEGUIR:
a) Planteamiento del problema: Lo que en la informática profesional se llama análisis funcional. Es la definición de lo que se quiere realizar, la información de que se dispone, la información que se quiere obtener, la información que se quiere volver a utilizar, los formatos de pantalla deseados; todas estas definiciones se deben hacer con el máximo detalle, como si se pretendiese explicar a otra persona cuál es nuestro problema y cómo nos gustaría que nos lo solucionase.

b) Viabilidad de resolver el problema con un ordenador: Lo que en la informática profesional se llama análisis técnico u orgánico. En este paso se valorará la posibilidad de resolver el problema con el ordenador de que se dispone, así como de la periferia a nuestro alcance (impresora, microdrive, etc.). Se definirá toda la información del paso anterior como datos entendibles para el ordenador, indicando en qué código irán, cuánta memoria ocuparán, en qué lugar han de almacenarse y cómo se procesarán; lo mismo para los diseños de pantalla. En este paso es donde se debe decidir qué procesos se hacen por medio de subrutinas, y ,como curiosidad, si el programa se hace en BASIC o en ASSEMBLER.

c) Realización del programa: Es decir, la programación propiamente dicha. Este paso se divide en dos partes: la construcción del organigrama y la codificación. Estos dos pasos son complementarios, cuanto más se detalle el organigrama menos vueltas se da a la codificación, y viceversa.


El organigrama es una construcción gráfica del flujo o caminos posibles que tiene el programa.

La codificación es la escritura del lenguaje simbólico contemplando todas las alternativas posibles definidas en el organigrama.

Por supuesto, hay muchos programadores que nunca hacen un organigrama, pero también hay muchos que se olvidan de codificar una rama. En cualquier caso, para un programa sencillo o bien para un programador experto el organigrama puede no ser muy detallado o bien omitirse.

d) Prueba del programa: En este paso se preparan unos datos de entrada al programa de los cuales ya se conocen los resultados que obtienen, contemplando, si es posible, todos los casos. Por ejemplo, si se hace un programa para resolver reíces cuadradas, se introducirán una serie de valores de los que ya se conoce el resultado.

e) Documentación: Una vez concluidos los pasos anteriores, se reúne todo el material e incluso se comentan los problemas o dificultades encontrados y cómo se han solucionado. Dependerá de lo ordenado que sea cada cual el obtener como resultado una buena documentación. Ver FIGURA 4-1.


Figura 4-1. Pasos para la realización de un programa.

Todo lo anteriormente descrito se puede hacer o no, pero son métodos ya muy estudiados que producen unos buenos resultados. La metodología anteriormente descrita es una orientación de la más elemental; se pueden usar técnicas más complicadas pero que se salen un poco de lo que es un micro-ordenador. Se dice que en un programa vale todo, siempre y cuando funcione. Si existe un método que lleve a un buen resultado, no sólo que funcione, sino que sea lo más rápido posible, que no se repitan procesos, que ocupe la menor cantidad de memoria y que esté claro, ¿por qué no usarlo?

Formatos de instrucción en código máquina
La memoria del SPECTRUM está dividida en octetos. Un octeto es una agrupación de 8 bits y un bit es la unidad más pequeña de información; sólo puede informar de dos estados: o está activo o no. Cuando de un SPECTRUM se dice que tiene 16K indica que tiene, aproximadamente, 16.000 octetos de memoria disponible, que son exactamente en decimal 16.384; para uno de 48K se multiplica esta cantidad por 3.

Los 48K de memoria disponible en RAM más los 16K que usa el programa monitor en ROM, suman 64K, que son 65.535 octetos. Esto es, desde la posición 0 de memoria a la 65.535, que es en hexadecimal FFFFh y en binario 1111111111111111b y a su vez la máxima cantidad que se puede escribir en dos octetos.

Las instrucciones en el SPECTRUM pueden ocupar 1, 2, 3 o 4 octetos en función del código de operación y básicamente, tiene los formatos que se ven en la FIGURA 5 del CAPITULO 3.

Como se vé, lo que es común a todos los formatos es que los primeros tienen el código de operación y los últimos el operando. Sobre el operando hay que tener en cuenta que cuando son dos octetos el microprocesador espera encontrar el octeto de orden inferior en el primer octeto del operando, y el de orden superior en el segundo, de tal forma que al referirse la valor de operando 7F3Bh el ensamblador almacenará la instrucción en memoria de la siguiente manera:

CODIGO OPERACION
CODIGO OPERACION
0 0 1 1 1 0 1 1
0 1 1 1 1 1 1 1


3Bh
7Fh



Existe una combinación diferente de bits para cada instrucción en el código de operación, a pesar de que la única diferencia sea el registro usado. Por lo tanto, habrá una parte fija y otra variable en el código de operación en función de dichos registros.

Otra cosa muy curiosa es ver cómo el microprocesador va leyendo una serie de octetos llenos de instrucciones cuando estos pueden tener cuatro longitudes distintas. Es muy sencillo. Se recordará que el microprocesador tiene un registro PC que indica la dirección de la memoria donde está la próxima instrucción a ejecutar. Cuando la lee, en función del código de operación, sabe cuantos octetos ocupa; en ese momento sólo tiene que incrementar el registro PC en esa cantidad, mientras va leyendo los restantes octetos de la instrucción, para que cuando vaya a leer la siguiente instrucción, este registro ya la tenga apuntada. Ver FIGURA 4-2.


Figura 4-2. Forma de avanzar el registro PC.


Necesidad de conocer el código máquina
Podríamos preguntarnos: voy a escribir mi programa en el lenguaje simbólico ASSEMBLER, tengo un ensamblador magnífico que me lo va a traducir, ¿qué necesidad tengo de conocer que bit tiene que estar activo y cual no?

Desde luego, el que tenga un buen ensamblador y escriba un programa de principio a final, buena gana de estar descifrando códigos y pasándolos de binario a hexadecimal. Pero no siempre se dispone de un buen ensamblador o se quiere estar cargándolo para pocas instrucciones, con lo cual se meterían en la memoria los valores de las instrucciones y se saltaría a esa posición con lo que el microprocesador empezaría a trabajar. Además, existen algunas técnicas en programación que hacen necesario este conocimiento, por ejemplo:

Programas automodificables: La primera vez que pasan por una rutina pasan por una instrucción que ejecuta una operación; posteriormente, esa instrucción se modifica con lo que la próxima vez que pase ejecuta una operación distinta.

Parches: Durante la prueba del programa se encuentra un error; conociendo las posiciones de memoria donde está cargado el programa se puede modificar directamente y seguir la prueba, incluso si la modificación ocupa más espacio, se deja una zona del programa definida a ceros binarios, se hace sobre ella la modificación terminando con un retorno y desde la posición del error, se hace una llamada a esa subrutina.

Por otro lado, no es necesario tener un ensamblador para poder utilizar el Spectrum en código máquina; es posible escribir el programa en Assembler y traducirlo a código máquina, manualmente; si el programa no es muy largo, la labor no resulta excesivamente tediosa. De hecho, es preferible aprender primero a ensamblar «a mano», ya que esto proporciona un conocimiento más profundo del Assembler, y facilita la utilización posterior de un programa ensamblador.

En este mismo curso, describimos en detalle la utilización del que consideramos el mejor ensamblador que se ha escrito para el Spectrum, el "GENS 3", que desde ahora, recomendamos a nuestros lectores; mientras tanto, indicaremos con todo detalle la forma de ensamblar "a mano" cada instrucción y todos los ejemplos que demos, se podrán introducir en el ordenador sin necesidad de ensamblador, por lo que para seguir este curso, sólo es necesario disponer de un Spectrum.

Formatos de instrucción en lenguaje simbólico
Como se recordará, el lenguaje simbólico es aquél en el que escribimos el programa fuente. Los códigos nemotécnicos que se han utilizado para el microprocesador Z-80, son abreviaturas de las palabras inglesas que definen la operación que realizan.

El formato de la instrucción y sus normas de sintaxis pueden variar algo en función del ensamblador elegido; pero siempre hay unas reglas mínimas que suelen cumplir y a esas nos referiremos hasta el capítulo que trate más profundamente el ensamblador.

El formato normal es el siguiente:

ETIQUETA NEMOTECNICO OPERANDOS ; COMENTARIOS



ETIQUETA. La etiqueta es opcional, sólo debe ponerse cuando sea necesario referirse a esta instrucción desde otra, bien para saltar a ella o para modificarla. Como etiqueta sirve cualquier sucesión de letras o números siempre que empiece por una letra; los espacios no son significativos, por lo cual se usa el símbolo "_" para separar palabras. Sólo los seis primeros caracteres son tratados como etiqueta.

Ejemplos:

ETIQUETA ETIQUE
etiqueta etique
MUEVE_DATOS MUEVE_
2 (ilegal)
DOS DOS
UN_2 UN_2



NEMOTECNICO. Es el código de la instrucción y siempre estará presente pues es el que propiamente la define. Consta de 1 a 4 letras mayúsculas que recuerdan en parte la operación que realizan.

Ejemplo:

Instrucción de carga
en inglés LOAD
nemotécnico LD



OPERANDOS. Este es el campo más variable de la instrucción. Muchas instrucciones no tienen necesidad de que se les definan operandos, ya que estos están implícitos en su operación. Otras tienen necesidad de tener definidos dos operandos, en este caso irán separados por coma ",". Operando podrá ser un número, una etiqueta, un registro o un par de registros. Cuando el valor del ooperando se refiera al contenido de la posición de memoria indicada, el operando se pondrá entre paréntesis.

Ejemplos:

HL Valor del par de registros HL.
(HL) Contenido de la posición de memoria direccionada por HL.
36FAh Valor hexadecimal 36FAh.
(36FA) Contenido de la posición de memoria 36FAH.



COMENTARIOS. En un número limitado de caracteres, es una explicación del porqué y para qué de esta instrucción. Va separado por ";" de los operandos.

Ejemplo:

PERIODO LD A,30 ; DIAS DEL MES




Contador de posición
El ensamblador, en tiempo de ensamblaje (mientras está ensamblando), mantiene un contador de posición (location counter). Este contador tiene el valor de la dirección de la instrucción que se está ensamblando. Es posible acceder a este valor usando el símbolo "$" (dólar) que lo representa. Este símbolo se usa como una etiqueta en el campo de operando de la instrucción, de tal forma que si se quiere saltar a diez posiciones de memoria más adelante, se saltaría a "$+10". Cuando se use esta facilidad hay que tener en cuenta el número de octetos de cada instrucción.

Generación de palabras de datos
Por la misma razón que en el formato de instrucciones, pueden existir diferencias entre ensambladores cuando se definen datos; por lo tanto, seguiremos en la línea de lo que suele ser habitual. La definición de datos se hace por medio de unos códigos seudonemotécnicos, también llamados directivos, que actúan de una manera similar a las instrucciones. Estos directivos sólo tienen valor en tiempo de ensamblaje (en realidad son comandos del ensamblador y no tienen código de operación), generan una o varias palabras de datos y quedan definidas dentro del programa absoluto. El formato es el siguiente:

ETIQUETA SEUDO-NEMOTECNICO EXPRESION



ETIQUETA: Sigue las mismas normas que para instrucciones, y su uso está justificado por la necesidad de acceder a los datos. Sólo es obligatorio con el directivo EQU.

SEUDO-NEMOTECNICO: Son una serie de caracteres en mayúsculas, basados en el idioma inglés, que recuerdan el tipo de dato que definen. Como más usuales citaremos:

EQU expresión
Tiene que estar precedido por una etiqueta. Pone la etiqueta igual al valor de la expresión. La expresión no puede contener una etiqueta que no haya sido previamente valorada.

DEFB expresión, expresión...
Cada expresión tiene que tener un valor que entre en un octeto. Coloca el valor de cada expresión en octetos consecutivos a partir del contador de posición.

DEFW expresión, expresión...
Cada expresión tiene que tener un valor que entre en dos octetos. Coloca el valor de cada expresión en pares de octetos consecutivos a partir del contador de posición.

DEFS expresión
Reserva un bloque de memoria igual al valor de la expresión.

DEFM 's'
Define el contenido del octeto con el valor en código ASCII de las letras colocadas entre comillas.

Diagrama de flujo
Conocidos también como organigramas u ordinogramas, son una construcción gráfica del programa. Un buen organigrama facilita la codificación posterior y proporciona una representación visual de todas las situaciones o ramas del programa.

Si se utilizan los símbolos estándar, cualquier otro usuario podrá entenderlo; por lo tanto, se definirán a continuación los más utilizados, que son suficientes para la realización de los organigramas del SPECTRUM.

Como normas generales se tendrá en cuenta:

a) El tamaño de los símbolos es variable, sólo se deben mantener las proporciones.

b) En el interior de los símbolos se debe escribir claro y conciso.

c) Salvo que se indique lo contrario, la dirección del flujo en el organigrama es: de izquierda a derecha y de arriba a abajo.

Símbolos básicos

Representa el proceso a realizar. Ejemplo: Operación aritmética, cambio de valores, actualización de una variable, etcétera.

Representa la dirección del flujo del programa. Estas flechas o líneas unen los símbolos del organigrama. Las direcciones de arriba a abajo y de izquierda a derecha no es necesario señalarlas, las otras sí.

Se usa para añadir comentarios o anotaciones marginales de tipo aclaratorio.


Símbolos especializados de entrada/salida

Representa una función de entrada/salida por medio de un documento. Por ejemplo, una impresión.

Representa una función de entrada/salida en la que la entrada es manual en tiempo de proceso. Ejemplos: teclado, interruptores, pulsado de botones, etc.

Representa una función de entrada/salida en la que la información es presentada para uso humano en tiempo de proceso. Ejemplo: indicadores, pantalla de vídeo.

Representa una función de entrada/salida sobre una cinta magnética. Por ejemplo, el cassette.

Representa una función de entrada/salida sobre un disco magnético.


Símbolos especializados

Representa una decisión dando paso a las alternativas que pueden ser seguidas.

Representa el nombre de un proceso que consiste en una o más operaciones. Por ejemplo, las subrutinas.

Representa una conexión dentro del organigrama, tanto de salida hacia, como de entrada por. Normalmente se pone una letra o un número para indicar hacia dónde se dirige o el nombre de la entrada. Una flecha marcará el sentido.


Ejemplos:

La decisión "Y" se dirigirá a "B", que estará definido en otra parte del organigrama.

El flujo de programa llega desde el punto "B", donde se le mandó aquí.


Representa un punto terminal en el programa. Por ejemplo: el comienzo, el final, un punto de espera, un alto, una interrupción, etc.


Otros símbolos usados

Básicos



Especializados de entrada/salida



Este símbolo podría usarse para diferenciar entre el cassete y el microdrive.


Especializados de proceso




Una tabla de saltos se puede representar de la siguiente manera:



En la FIGURA 4-3, se puede ver un ejemplo de lo que podría ser un organigrama que representara las actividades básicas de una persona. Creemos que el ejemplo es bastante ilustrativo de cómo se hace un organigrama. Esperamos, no obstante, que ninguno de nuestros lectores rija su existencia por un bucle de tan escasas posibilidades.


Figura 4-3.


Presentación de las instrucciones
A partir del próximo capítulo iremos estudiando por grupos, todas las instrucciones que usa el Z-80. Veremos la forma de utilizarlas en Assembler, y la forma de ensamblarlas en código máquina para aquellos que no dispongan de ensamblador. También veremos una serie de ejemplos que irán creciendo en complejidad, y que el lector podrá teclear en su ordenador para irse habituando al uso de este lenguaje.

Las instrucciones se presentarán de la siguiente manera:

1) Código simbólico: En el operando se usarán las siguientes claves:

r,r' = Uno de los registros A, B, C, D, E, H o L.
n = Una expresión o número, cuyo valor no supere el tamaño de un octeto. Entre 0 y 255.
nn = Una expresión o número, cuyo valor no supere el tamaño de dos octetos. Entre 0 y 65535.
d = Una expresión o número con valores comprendidos desde -128 a +127
b = Una expresión o número con valores comprendidos entre 0 y 7.
e = Una expresión o número con valores comprendidos entre -126 y +129.
cc = Estado de los indicadores de condición en las instrucciones que los usan.
qq = Cualquiera de los pares de registros BC, DE, HL o AF.
ss = Cualquiera de los pares de registros BC, DE, HL o SP.
pp = Cualquiera de los pares de registros BC, DE, IX o SP.
rr = Cualquiera de los pares de registros BC, DE, IY o SP.
s = Cualquier r, n, (HL), (IX+d) o (IY+d).
m = Cualquier r, (HL), (IX+d) o (IY+d).

2) Objeto: Donde se describirá la operación que realizará.

3) Código de máquina: Donde se representará el código binario de la instrucción y el hexadecimal, si es posible.

4) Indicadores de condición que afecta: Siempre que la instrucción afecte a los indicadores de condición se indicará cuáles y cómo los afecta.

Estos son: C = acarreo
N = suma/resta
P/V = paridad/desbordamiento
H = semi-acarreo
Z = cero
S = signo



5) Número de ciclos de máquina: Número de veces que el microprocesador accede a la memoria.

6) Número de ciclos de reloj: Número de ciclos de reloj que necesita la instrucción para ejecutarse.

7) Ejemplos: Con cada instrucción se dará un ejemplo que muestre sobre el papel la forma en que actúa y cómo modifica los registros y las posiciones de memoria a las que afecta.

Por otro lado, tambíen veremos ejemplos que se podrán introducir en el ordenador, y cuya realización explicaremos de forma exhaustiva. De cada ejemplo, se dará el listado Assembler, para que quien lo desee, pueda teclearlo por medio de un ensamblador. Para quienes no dispongan de ensamblador, se acompañará cada ejemplo de un programa en Basic (también explicado), que introduzca el código en memoria y lo ejecute.

Ejecución de código máquina en el Spectrum
Quienes dispongan de ensamblador, deberán mirar las instrucciones del mismo, para ver cómo deben introducir sus programas en memoria. En cualquier caso, en un capítulo posterior, estudiaremos en profundidad el manejo de ensambladores, y concretamente, del GENS 3, que a pesar de todo, tiene el pequeño inconveniente de traer las instrucciones en inglés.

Por ahora, aprenderemos a utilizar el código máquina desde el Basic, construyendo pequeños programas cargadores de C/M.

Para introducir en el Spectrum un programa en C/M, empezaremos por escribirlo en Assembler sobre un papel. Una vez decidido en qué lugar de la memoria lo vamos a cargar, lo ensamblaremos a mano siguiendo las normas que daremos en los siguientes capítulos. El resultado, será una serie de números, comprendidos entre 0 y 255, que constituyen el código máquina propiamente dicho.

Mediante un bucle FOR ... NEXT en Basic, vamos introduciendo estos números en sucesivas posiciones de memoria a partir de la RAMTOP (que previamente habremos bajado). Y finalmente, utilizaremos la función USR para ejecutarlo.

Veamos un ejemplo: Supongamos que el programa que deseamos cargar, está representado por los números: 12, 65, 87, 80, 68, 91, 18, 71, 33, y 27 (en este ejemplo, los números son aleatorios, así que no se moleste nadie en desensamblarlo, por que no tiene sentido). Supongamos también, que lo queremos introducir a partir de la dirección 50000 y que se ejecuta a partir de 50005 (un programa en C/M no tiene por qué ejecutarse siempre desde la primera dirección).

Nuestro programa en Basic, empezaría por:

10 CLEAR 49999


A continuación, utilizaremos un bucle FOR ... NEXT para introducir el código.

20 FOR n=50000 TO 50009
30 READ a: POKE n,a
40 NEXT n
50 DATA 12,65,87,80,68
60 DATA 91,18,71,33,27


Ahora, sólo nos queda ejecutar el programa; para ello utilizaremos la función USR, que como todos saben, nos devuelve en el retorno, el contenido del par de registros BC (como regla nemotécnica, acuérdese de "Basic Comunicator", -comunicador con el Basic-). USR, como toda función, debe ir precedida de un comando, el que utilicemos, dependerá de lo que queramos hacer con el resultado; si no nos importa el valor de BC en el retorno, podemos hacer RANDOMIZE USR ... que sólo ocupa dos bytes. Si queremos imprimir el resultado, podemos hacer PRINT USR ... y si queremos asignar el resultado a una variable, para luego trabajar con él, podemos hacer LET a=USR ... En cualquier caso, detrás de USR deberá ir la dirección a partir de la cual se debe ejecutar nuestro programa. Supongamos que en nuestro ejemplo, no nos importa el resultado, así que haríamos:

70 RANDOMIZE USR 50005


Con lo que el Sistema Operativo pasa el control a nuestro programa en C/M, hasta que el microprocesador se encuentre una instrucción de retorno, ya que el S/O (Sistema Operativo) trata a nuestro programa como si se tratase de una subrutina suya; esto se verá más claramente cuando estudiemos el capítulo dedicado a las subrutinas.

Codificación hexadecimal
Con el procedimiento visto hasta ahora, utilizamos 10 números metidos en DATAs, para representar un programa de 10 bytes de longitud. Estas DATAs, nos ocuparán cerca de 70 bytes de memoria dentro del programa Basic; si tuviéramos que representar en DATAs un programa de 2K (2048 bytes), probablemente, no nos cabrían los DATAs en un 16K. Para evitar esta forma de malgastar la memoria, existe un procedimiento al que quizá esté acostumbrado el lector por los listados de nuestra revista, este procedimiento consiste en codificar el programa en hexadecimal, e introducirlo como una cadena de caracteres, que sólo ocupará en DATAs el doble de la longitud del programa. Veámoslo con un ejemplo:

Primero haríamos:

10 CLEAR 49999


De la misma forma que antes, pero esta vez, definiremos una función que nos ayude a decodificarlo.

20 DEF FN a(a$,n)=16+(CODE a$(
n)-48-7*(a$(n)>"9"))+(CODE a$(n+
1)-48-7*(a$(n+1)>"9"))


Puede parecer complicado, pero esta función nos ayuda a pasar los números de hexa a decimal antes de POKEarlos en las direcciones de memoria.

Usaremos también, una suma de comprobación (checksum) para detectar si nos equivocamos al teclear los DATAs. El programa seguiría:

30 READ a$,s: LET cs=0
40 FOR n=1 TO LEN a$-1 STEP 2
50 LET a=FN a(a$,n)
60 LET cs=cs+a
70 POKE 49999+n,a
80 NEXT n
90 IF cs<>s THEN PRINT "Error": STOP
100 RANDOMIZE USR 50005
110 DATA "0C415750445B1247211B"
120 DATA 552: REM Checksum


La línea 30 lee toda la cadena, la suma de comprobación y pone a cero el contador de checksum.

El bucle entre las líneas 40 y 80, va leyendo los caracteres de la cadena de checksum y finalmente, los introduce en la dirección adecuada.

En la línea 90, se detectan los posibles errores, comparando el contador de checksum con la suma correcta que está en la línea 120. Finalmente, la línea 100 ejecuta el programa de l misma forma que en el caso anterior.

La cadena de la línea 110, está compuesta por la representación hexadecimal de los números que componen el código máquina que queríamos introducir en el ordenador.

Dónde ubicar un programa en C/M
En principio, un programa en código máquina se puede colocar en cualquier lugar de la memoria, de hecho, existen programas comerciales que la ocupan prácticamente por completo. No obstante, para nuestros fines existen zonas más adecuadas que otras.

Se supone que un programador aficionado, utilizará rutinas en C/M combinadas con un programa principal en Basic, por lo que habrá que respetar una zona de memoria para que el Basic pueda trabajar.

Básicamente, existen cuatro zonas donde situar nuestros programas:

Por encima de la RAMTOP.
En el buffer de impresora.
En el archivo de pantalla.
Dentro del programa Basic.



Veámoslas una por una:

1. Por encima de la RAMTOP: Es la zona más adecuada para colocar un programa en C/M, ya que queda protegido de borrados por el sistema Basic. En primer lugar, deberemos bajar la RAMTOP con el uso de CLEAR, como se veía en el ejemplo anterior. Una vez cargado nuestro programa, no podrá ser borrado ni siquiera con NEW; para volver a la situación inicial, deberemos teclear:

RANDOMIZE USR 0


Que sí borrará el programa en C/M y todo lo que haya en la memoria del ordenador. Otra forma de destruir nuestro programa sería volver a subir la RAMTOP.

2. En el buffer de impresora: Existe en la RAM, una zona reservada de 256 bytes, que empieza en la dirección 23296 (5B00h) y acaba en la 23551 (5BFFh); esta zona la utiliza el Spectrum cuando trabaja con una impresora tipo ZX-Printer (Alphacom-32 o Seikosha GP-50S); si no va a utilizar ninguna de estas impresoras, puede almacenar en esta zona una rutina corta (256 bytes máximo) que no le ocupará, por tanto, memoria en la zona de programa. Tenga en cuenta, no obstante, que su rutina será borrada si utiliza los comandos: NEW, LPRINT, LLIST y COPY.

3. En el archivo de pantalla: En casos especiales, se utiliza el archivo de pantalla para almacenar programas en C/M, es una técnica usada en algunos copiadores para no ocupar memoria útil. Si no desea "ensuciar" la pantalla, puede poner los atributos correspondientes al mismo color de tinta y papel, con lo que los bytes no se visualizarán en forma de pixels. Cuando utilice esta técnica, tenga en cuenta que su programa puede ser corrompido por el uso de NEW, CLEAR y cualquier comando que afecte a la pantalla. El archivo de pantalla va desde 16384 (4000h) hasta 22527 (57FFh).

4. Dentro del programa Basic: Esta era la técnica usada en el ZX-81, consiste en hacer que la primera línea del programa sea una línea REM, con tantos espacios, como bytes tenga el programa C/M a almacenar. La dirección de inicio de esta zona es (PROG)+5. Este método tiene la ventaja de poder salvar juntos el Basic y su Código Máquina, si bien, su empleo no es recomendable si se tiene conectado el INTERFACE 1, ya que este dispositivo desplaza el programa Basic, y por tanto, nuestra rutina en C/M, a menos que esta sea reubicable y entremos en ella, calculando cada vez la dirección de entrada a partir del contenido de la variable PROG. En este caso, nuestra rutina sólo se borra editando la línea, o borrando el programa Basic con NEW.

De todos éstos, el sistema usado con más frecuencia es el primero, y es el que usaremos en nuestros ejemplos. Si se tiene conectado un interfce de impresora INDESCOMP, ha de tenerse en cuenta que su software ocupa los 1000 bytes más altos de la memoria.

Procesamiento de lotes

Se conoce como modo batch o procesamiento por lotes al modo de funcionamiento de un programa que se ejecuta en modo no interactivo sobre una gran cantidad de datos. Generalmente, se diseñan programas para su funcionamiento en "modo por lotes" cuando la misma tarea se debe aplicar a una gran cantidad de información, porque sería tedioso hacerlo manualmente. Un buen ejemplo sería el renderizado de los fotogramas de una película. Un programa que funciona en reacción a las últimas acciones del usuario es un programa interactivo. La forma de especificar el funcionamiento por lotes de un programa suele ser mediante scripts o guiones (procedimientos), escritos en un lenguaje interpretado.

El ejemplo del procesamiento de lotes incluye:

La informática implicó en bancos que son contratados en la transacción de dinero. Por ejemplo los depósitos bancarios en términos de dinero efectivo, cheque, Banco de DDs lona, etc., ocurren durante cada día en horas de oficina dicen 10-30 a 2-30 puede ser alimentado al ordenador para la informática es decir, equilibrar cuentas de depósitos y retiradas. Todos estos detalles de transacción o datos coleccionados durante un período específico del tiempo dicen la jornada laboral comercial, es presentado inmediatamente. Los datos enteros son tratados en una extensión, allí por los resultados puede ser obtenido en un formato de estado de cuentas.

El procesamiento por lotes no hace a condición de que el cálculo interactivo por supuesto allí no sea o menos intervención por el programador u operador en el momento de la ejecución de programa en el modo de Procesamiento por Lotes.


Determine el lenguaje de programación mas adecuado a la información a procesar.

Para responder a esto debemos mencionaremos los siguiente lenguajes de programación mas importantes en el mercado:

1.PHP, PHP usa una mezcla entre interpretación y compilacion para intentar ofrecer a los programadores la mejor mezcla entre rendimiento y flexibilidad.

PHP compila para tu codigo una serie de instrucciones (llamadas opcodes) siempre que estas son accedidas. Estas instrucciones son entonces ejecutadas una por una hasta que el script termina. Esto es diferente a la manera convencional de compilacion de lenguajes como C++ donde el código es compilado a código ejecutable que es despues ejecutado. Php es recompilado cada vez que se solicita un script.

Una ventaja importante de interpretar el código es que toda la memoria usada por tu código es manejada por PHP, y el lenguaje automáticamente vacía esta memoria cuando el script finaliza. Esto significa que tu no tienes que preocuparte de las conexiones a la base de datos, porque PHP lo hará por ti.

2.C#, C# es un lenguaje de propósito general orientado a objetos creado por Microsoft para su plataforma .NET.

Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes. C# fue diseñado para combinar el control a bajo nivel de lenguajes como C y la velocidad de programación de lenguajes como Visual Basic.

3.AJAX, AJAX no es un lenguaje exactamente su nombre viene dado por el acrónimo de Asynchronous JavaScript And XML y es posiblemente la mayor novedad en cuanto a programación web en estos últimos años.

El corazón de Ajax es el objeto XMLHttpRequest que nos permite realizar una conexión al servidor y al enviarle una petición y recibir la respuesta que procesaremos en nuestro código Javascript, estamos hablando del verdadero motor de Ajax, por ejemplo gracias a este objeto podemos desde una página HTML leer datos de una web o enviar datos de un formulario sin necesidad de recargar la página.

4.JavaScript , Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el lenguaje de programación del lado del cliente más utilizado.

5.Perl , Perl es la alternativa más popular a PHP, seguramente porque es el lenguaje más antiguo tambien dentro de las alternativas. En internet nos encontramos numerosos recursos que utilizan Perl, muchos de las aplicaciones "open source" requieren tener Perl instalado correctamente. Perl tiene una ventaja y es que es muy flexible, y tambien tiene un gran cantidad de modulos ya escritos.

Bien escritos los scripts en Perl se asemejan bastante a PHP. La principal causa de la sucía apariencia de Perl es por la afición de sus desarrolladores a la escritura en "una línea" empaquetanto numerosas funcionalidades en una sola línea de código.

6.C, Es un lenguaje de "medio nivel" pero con numerosas características de bajo nivel.
Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel.

7.Ruby y Ruby on Rails, Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby. Ruby apareció en el año 1995 y creo que su principal problema había sido la falta de documentación en otro idioma que no sea japonés. Eso se ha ido solucionando y crece la popularidad del lenguaje. Su aplicación insignia, por decirlo de algún modo parece ser RoR. Su mecanismo de gem se me parece al CPAN de Perl y al Pear de PHP. leer más

8.ASP, Active Server Pages (ASP) y ASP.NET es un intendo de Microsoft para introducirse en el mercado del desarrollo Web, y viene a ser como su estandar para su servidor Web, ISS. Asp ha sido atacado por la comunidad open source desde que este apareció, y dan numerosas razones para ello: El propietario, una única plataforma, la lentitud...

9.COBOL (Lenguaje simbólico de programación, orientado hacia aplicaciones comerciales y de gestión: Common Business Oriented Languaje) desarrollado en 1960, con el fin de solucionar las incompatibilidades de los fabricantes de computadoras. Ganó amplia aceptación como lenguaje estandarizado llegándose a utilizar ampliamente en los negocios, pero perdió seguidores en la pasada década. Motivado al problema del año 2000 fueron requeridos programadores especializados en este lenguaje para reprogramar las millones de líneas de código escritas en COBOL para que tales programas continuasen funcionando.

10. BASIC (Código de instrucción simbólica universal para principiantes: Begginners Allpurpose Symbolic Instruction Code) comienza como una herramienta para enseñar sobre programación a estudiantes. Fue desarrollado por Jhon Kemeny y Thomas Kurtz en 1964. Por su simplicidad se volvió ampliamente popular y usado en educación y entre los programadores aficionados, pero no ha llegado a ser un lenguaje viable para aplicaciones comerciales. Esto último se debe a que no posee un amplio repertorio de herramientas como el que ofrecen otros lenguajes. Además, sus compiladores no producen archivos ejecutables tan compactos, rápidos y eficientes como los que producen otros lenguajes.

11. PASCAL, nombrado en honor del inventor francés Blas Pascal, es introducido por Niklaus Wirth en 1971. El Pascal, buscaba superar las limitaciones de los otros lenguajes de programación y demostrar la manera adecuada de implementar un lenguaje de cómputo. Ha llegado a considerarse un excelente lenguaje de enseñanza. Las personas que se inician en la programación le consideran fácil para implementar algoritmos, su compilador es estricto con el uso de programación estructurada, asegurándose de que los errores sean señalados al principio.

Cual es el mejor lenguaje.

Analizando esto el para elegir el lenguaje de programación mas apto para procesar la información tenemos que tomar varias variables como son el precio accesible y que labor o bajo que plataforma se va a desempeñar el sistema.

Esta decisión es muy subjetiva pero en nuestro caso recomendamos los lenguajes que estén bajo la filosofía de JAVA, ya que estos hacen la mayoría de sus procesos en sus propia maquina virtual dejando libres gran parte de los recursos del computador, siendo por esto muy potables y rápidos.

Tipos de Fuente de Informaciòn

La recopilación de información se puede hacer mediante dos fuentes:
1. Fuentes Secundarias
Son datos que ya existen y que han sido recopilados para propósitos distintos a los de la investigación que se realiza.

Página Principal
Estudio Financiero
Estudio Técnico
Introducción
Resumen Ejecutivo
Portada
Índice
Anexos
Estudio de Mercado
Sus principales ventajas: son rápidos y fáciles de obtener, su costo de recopilación es bajo y ayudan a definir mejor un problema.

A pesar de sus ventajas se debe procurar que esta información sea actual, confiable, exacta y aplicable a la investigación.



2. Fuentes Primarias

Ejemplos
Son datos que se obtiene específicamente para el estudio que se está realizando.
Los métodos para recopilar la información son las entrevistas, sesiones de grupo, observación, encuestas, entre otros, de estos, la más común y útil es la encuesta. Sin embargo se debe tener presente que una encuesta es un punto de partida para obtener un panorama de la conducta, hábitos de los posibles consumidores.

María Moliner define la palabra "Fuentes" en su sexta acepción como "Sitio de donde se obtiene una noticia, conocimiento o información"; el término "Informar" es, en su tercera acepción, "Dar a alguien datos o noticias sobre cierta cosa que le interesa"; y Bibliografía "1. Descripción de los elementos materiales del libro. 2. Lista de libros sobre cierta materia, o información acerca de ellos":


Que es fuente de información

El Diccionario General Ilustrado de la Lengua Española, por su parte dice que "Fuentes", en su cuarta acepción es "Principio, fundamento, origen..."; "Información" (sexta acepción) "Comunicación o adquisición de conocimientos sobre que permiten ampliar o precisar los que se poseen sobre una materia determinada"; y Bibliografía es 1. Historia o descripción de libros o manuscritos, con datos acerca de sus ediciones, fechas de impresión, etc. 2. Relación o catálogo de libros o escritos referentes a materias determinadas "

Julio Casares, considera la quinta acepción de fuentes como "principio u origen de una cosa"; Informar: "enterar, dar noticia de una cosa; y Bibliografía: Ciencia que trata del conocimiento y descripción de los libros"

Teoria de Sistemas

Son los que intercambian materia y energía con el ambiente continuamente.

Cada sistema que se examine, excepto el menor o mayor, recibe y descarga algo en los otros sistemas, generalmente en aquellos que le son contiguos. Los sistemas abiertos son caracterizados por un proceso de intercambio infinito con su ambiente, que son los otros sistemas. Cuando el intercambio cesa, el sistema se desintegra, pierde sus fuentes de energía.
Los Sistemas abiertos son los sistemas que presentan relaciones de intercambio con el ambiente, a través de entradas y salidas. Los sistemas abiertos intercambian materia y energía regularmente con el medio ambiente. Son eminentemente adaptativos, esto es, para sobrevivir deben reajustarse constantemente a las condiciones del medio.
Mantienen un juego recíproco con las fuerzas del ambiente y la calidad de su estructura es óptima cuando el conjunto de elementos del sistema se organiza, aproximándose a una operación adaptativa. La adaptabilidad es un continuo proceso de aprendizaje y de auto-organización.
Los sistemas abiertos no pueden vivir aislados. Los sistemas cerrados-esto es, los sistemas que están aislados de su medio ambiente- cumplen el segundo principio de la termodinámica que dice que "una cierta cantidad, llamada entropía, tiende a aumentar a un máximo".
La conclusión es que existe una "tendencia general de los eventos en la naturaleza física en dirección a un estado de máximo desorden". Sin embargo, un sistema abierto "mantiene así mismo, un continuo flujo de entrada y salida, un mantenimiento y sustentación de los componentes, no estando a lo largo de su vida en un estado de equilibrio químico y termodinámico, obtenido a través de un estado firme llamado homeostasis".

Los sistemas abiertos, por lo tanto, "evitan el aumento de la entropía y pueden desarrollarse en dirección a un estado decreciente orden y organización" (entropía negativa).
A través de la interacción ambiental, los sistemas abiertos" restauran su propia energía y reparan pérdidas en su propia organización".
El concepto de sistema abierto puede ser aplicado a diversos niveles de enfoque: al nivel del individuo, al nivel del grupo, al nivel de la organización y al nivel de la sociedad, yendo desde un microsistema hasta un suprasistema en términos más amplios, va de la célula al universo.

Elementos sistemáticos: El sistema se constituye por una serie de parámetros, los cuales son:

a) Entrada o insumo (input). Es la fuerza de arranque del sistema, suministrada por la información necesaria para la operación de éste.

b) Salida o producto (output). Es la finalidad para la cual se reunirán los elementos y las relaciones del sistema.

c) Procesamiento o transformador (throughput). Es el mecanismo de conversión de entradas en salidas.

d) Retroalimentación (feedback). Es la función del sistema que busca comparar la salida con un criterio previamente establecido.

e) Ambiente (environment). Es el medio que rodea externamente al sistema.

La Organización como un Sistema Abierto:

Una empresa es un sistema creado por el hombre, la cual mantiene una interacción dinámica con su ambiente sean clientes, proveedores, competidores, entidades sindicales, o muchos otros agentes externos.

Influye sobre el ambiente y recibe influencias de esté. Además es un sistema integrado por diversas partes relacionadas entre sí, que trabajan en armonía con el propósito de alcanzar una serie de objetivos, tanto de la organización como de sus participantes.

La organización debe verse como un todo constituido por muchos subsistemas que están en interacción dinámica entre sí. Se debe analizar el comportamiento de tales subsistemas, en vez de estudiar simplemente los fenómenos organizacionales en función de los comportamientos individuales.

Características de las Organizaciones como Sistemas Abiertos:

Las organizaciones, como todo sistema social es afectado por cambios en el ambiente, denominados variables externas.

Las organizaciones son sistemnas dentro de sistemas. Para esto debemos enfocar a la organización como un sistema caracterizado por todas las propiedades de cualquier sistema social.

Las organizaciones deben estar representadas por un sistema funcional. Los otros subsistemas de un sistema mayor componen la situación o ambiente en que opera la organización.

Las interacciones internas y externas del sistema reflejan diferentes escalones de control y de autonomía.

La organización puede alcanzar un estado firme solamente cuando se presentan dos requisitos: unidireccionalidad y progreso.

Unidireccionalidad: Significa que a pesar de los cambios de la empresa o del ambiente, los mismos resultados o condiciones establecidos son los alcanzados.

Progreso: Esto quiere decir que el sistema deberá mantenerse en relación, con el fin deseado.

Las fronteras son las líneas que sirven para demarcar lo que está dentro del sistema.

El sistema organizacional tiene la capacidad de modificar sus maneras estructurales básicas, esta es la propiedad morfogénica de las organizaciones.




Propiedades de los Sistemas Abiertos:

· Propósito u objetivo: Todo sistema tiene uno o algunos propósitos u objetivos. Las unidades o elementos (u Objetos), como también las relaciones, definen una distribución que trata siempre de alcanzar un objetivo.
· Globalismo o totalidad: Todo sistema tiene una naturaleza orgánica, por la cual una acción que produzca cambio en una de las unidades del sistema, con mucha probabilidad producirá cambios en todas las otras unidades de éste. En otros términos, cualquier estimulación en cualquier unidad del sistema afectará todas las demás unidades, debido a la relación existente entre ellas. El efecto total de esos cambios o alteraciones se presentará como un ajuste del todo al sistema. El sistema siempre reaccionará globalmente a cualquier estímulo producido en cualquier parte o unidad. Existe una relación de causa y efecto entre las diferentes partes del sistema. Así, el Sistema sufre cambios y el ajuste sistemático es continuo. De los cambios y de los ajustes continuos del sistema se derivan dos fenómenos el de la entropía y el de la homeostasia.
· Entropía: Es la tendencia que los sistemas tienen al desgaste, a la desintegración, para el relajamiento de los estándares y para un aumento de la aleatoriedad. A medida que la entropía aumenta, los sistemas se descomponen en estados más simples. La segunda ley de la termodinámica explica que la entropía en los sistemas aumenta con el correr del tiempo, como ya se vio en el capítulo sobre cibernética.A medida que aumenta la información, disminuye la entropía, pues la información es la base de la configuración y del orden. Si por falta de comunicación o por ignorancia, los estándares de autoridad, las funciones, la jerarquía, etc. de una organización formal pasan a ser gradualmente abandonados, la entropía aumenta y la organización se va reduciendo a formas gradualmente más simples y rudimentarias de individuos y de grupos. De ahí el concepto de negentropía o sea, la información como medio o instrumento de ordenación del sistema.
· Homeostasis: Es el equilibrio dinámico entre las partes del sistema. Los sistemas tienen una tendencia adaptarse con el fin de alcanzar un equilibrio interno frente a los cambios externos del medio ambiente.
· Equifinalidad: Se refiere al hecho que un sistema vivo a partir de distintas condiciones iniciales y por distintos caminos llega a un mismo estado final. No importa el proceso que reciba, el resultado es el mismo.

Sistemas cerrados:

Son los sistemas que no presentan intercambio con el medio ambiente que los rodea, pues son herméticos a cualquier influencia ambiental. Así, los sistemas cerrados no reciben ninguna influencia del ambiente, y por otro lado tampoco influencian al ambiente.
No reciben ningún recurso externo y nada producen la acepción exacta del término. Los autores han dado el nombre de sistema cerrado a aquellos sistemas cuyo comportamiento es totalmente determinístico y programado y que operan con muy pequeño intercambio de materia y energía con el medio ambiente.

El término también es utilizado para los sistemas completamente estructurados, donde los elementos y relaciones se combinan de una manera peculiar y rígida produciendo una salida invariable. Son los llamados sistemas mecánicos, como las máquinas.
Confrontación entre Teorías de Sistema Abierto y de Sistema Cerrado:

El sistema abierto describe las acciones e interacciones dentro de un ambiente. La descripción de un sistema abierto es perfectamente aplicable a una organización empresarial. Una empresa es un sistema creado por el hombre y mantiene una dinámica interacción con su medio ambiente (caracterizado por los clientes, proveedores, competidores, entidades sindicales, órganos gubernamentales y muchos otros agentes externos). Influye sobre el medio y recibe influencia de este. Además de esto, es un sistema por tener diversas partes interrelacionadas, que trabajan en armonía unas con otras, con la finalidad de alcanzar una serie de objetivos, tanto de la organización como de sus participantes.

En resumen, el sistema abierto puede ser comprendido como un conjunto de partes en constante interacción (lo que destaca la característica de la interdependencia de las partes), constituyendo un todo sinérgico (el todo es mayor que la suma de sus partes), orientado hacia determinados propósitos (con un comportamiento teológico orientado en consecuencia hacia fines) y en permanente relación de interdependencia con el ambiente externo (esa interdependencia debe ser extendida como la doble capacidad de influencia el medio externo y ser por él influenciado).

Las Organizaciones como Sistemas:

Una organización es un sistema socio-técnico incluido en otro más amplio que es la sociedad con la que interactúa influyéndose mutuamente. También puede ser definida como un sistema social, integrado por individuos y grupos de trabajo que responden a una determinada estructura y dentro de un contexto al que controla parcialmente, desarrollan actividades aplicando recursos en pos de ciertos valores comunes.


Subsistemas que forman la Empresa:

· Subsistema psicosocial: está compuesto por individuos y grupos en interacción. Dicho subsistema está formado por la conducta individual y la motivación, las relaciones del status y del papel, dinámica de grupos y los sistemas de influencia.
· Subsistema técnico: se refiere a los conocimientos necesarios para el desarrollo de tareas, incluyendo las técnicas usadas para la transformación de insumos en productos.
· Subsistema administrativo: relaciona a la organización con su medio y establece los objetivos, desarrolla planes de integración, estrategia y operación, mediante el diseño de la estructura y el establecimiento de los procesos de control.

Modelos de organizaciones:

· Modelo de Katz y Kahn

· Modelo de Katz y Rosenz Welg

v Variables; Son todas las acciones que pueden modificar el sistema y que existe en cualquier parte del sistema.

v Parámetros; Son cantidades que determinan el estado real del sistema (constantes).

v Componentes; Son las partes identificables de dicho sistema.

v Atributos; Influyen en la operación del sistema en su velocidad, precisión y confiabilidad, es decir, identifican los componentes de dicho sistema.

v Estructura; Conjunto de relaciones entre los componentes del sistema y el grado en el que los elementos funcionan para alcanzar su finalidad.


· Bajo enfoque cibernético
El propósito de la cibernética es desarrollar un lenguaje y técnicas que nos permitan atacar los problemas de control y comunicación en general.
Lo que estabiliza y coordina el funcionamiento de los sistemas complejos como los seres vivos o las sociedades y les permite hacer frente a las variaciones del ambiente y presentar un comportamiento más o menos complejo es el control, que le permite al sistema seleccionar los ingresos (inputs) para obtener ciertos egresos (outputs) predefinidos. La regulación esta constituida por la cibernética es una disciplina íntimamente vinculada con la teoría general de sistemas, al grado en que muchos la consideran inseparable de esta, y se ocupa del estudio de: el mando, el control, las regulaciones y el gobierno de los sistemas mecanismos que permiten al sistema mantener su equilibrio dinámico y alcanzar o mantener un estado.
Para entender la estructura y la función de un sistema no debemos manejarlo por separado, siempre tendremos que ver a la Teoría General de Sistemas y a la Cibernética como una sola disciplina de estudio.
Dentro del campo de la cibernética se incluyen las grandes máquinas calculadoras y toda clase de mecanismos o procesos de autocontrol semejantes y las máquinas que imitan la vida. Las perspectivas abiertas por la cibernética y la síntesis realizada en la comparación de algunos resultados por la biología y la electrónica, han dado vida a una nueva disciplina, la biónica. La biónica es la ciencia que estudia los: principios de la organización de los seres vivos para su aplicación a las necesidades técnicas. Una realización especialmente interesante de la biónica es la construcción de modelos de materia viva, particularmente de las moléculas proteicas y de los ácidos nucleicos.


Conocer bien al hombre es facilitar la elección de las armas necesarias para combatir sus enfermedades. Por tanto, es natural ver una parte de las investigaciones orientarse hacia un mejor conocimiento de los procesos fisiológicos. Ayudándose de la química y de la física es como han podido realizarse grandes progresos.

Si quiere proseguir un mejor camino, debe abrirse más al campo de la mecánica y más aun al campo de la electrónica. En este aspecto se abre a la Cibernética.
La Robótica es la técnica que aplica la informática al diseño y empleo de aparatos que, en substitución de personas, realizan operaciones o trabajos, por lo general en instalaciones industriales. Se emplea en tareas peligrosas o para tareas que requieren una manipulación rápida y exacta. En los últimos años, con los avances de la Inteligencia Artificial, se han desarrollado sistemas que desarrollan tareas que requieren decisiones y autoprogramación y se han incorporado sensores de visión y tacto artificial.
Antes de conocer bien al hombre, la evolución científica exige ya la adaptación de lo poco que se conoce a un medio que se conoce apenas mejor. La vida en las regiones interplanetarias trastorna completamente la fisiología y, el cambio brusco que sobreviene durante el paso de la tierra a otro planeta, no permite al hombre sufrir el mecanismo de adaptación. Es, por tanto, indispensable crear un individuo parecido al hombre, pero cuyo destino será aun más imprevisible, puesto que nacido en la tierra morirá en otro lugar.
Las Organizaciones como Clase de Sistemas Sociales:

La idea de un sistema social requiere la comprensión del origen del comportamiento que está más allá de las personas individuales que conforman el sistema.

Algo propio de la estructura del sistema determina que sucede más allá de la suma de los objetivos y acciones individuales.
En otras palabras, el concepto del SISTEMA implica que las personas no son agentes enteramente libres sino que sustancialmente están inmersas en su entorno.

La estructura de realimentación de una empresa puede dominar la toma de decisiones más allá de lo que las personas de las mismas desean.
Por estructura de realimentación debe entenderse que la fijación de condiciones existentes conduce a decisiones que provocan cambios en las condiciones de entorno que influencian las decisiones posteriores. Esto es lo que sucede en la mayor parte de las situaciones que nos rodean.

No vivimos en un mundo Unidireccional donde un problema conduce a una acción la cual conduce a una solución.



En realidad vivimos en un entorno Circular Continuo como lo muestra la figura en el cual cada acción está basada en las condiciones actuales, tales acciones afectan las condiciones y este cambio de condiciones se transforma en el punto de partida para futuras acciones. No hay un principio o fin del proceso. Las personas están interconectadas y son muchos los lazos que intervienen.

En estudios realizados en empresas se descubrieron cosas realmente sorprendentes que se pueden trasladar a todos los sistemas sociales.
· Primero, la mayoría de las dificultades son causadas internamente, si bien existe una irresistible y engañosa tendencia de cargar las culpas a "fuerzas externas".
· Segundo, los actos que al gente tiene conciencia de que los está realizando usualmente los realiza convencida de que son las soluciones a las dificultades existentes o planteadas y en realidad son muchas veces las causas de los problemas que se están experimentando.
· Tercero, la verdadera naturaleza de las estructuras dinámicas con realimentación que conforman los sistemas sociales puede conducir erróneamente a las personas a realizar actos inefectivos o bien contraproducentes.
· Cuarto, por lo general las personas saben:
Qué información está disponible y
Cómo se utiliza la misma para la toma de decisiones

El problema es que las personas no comprenden correctamente cómo es que el comportamiento general que da los resultados proviene de las complejas interacciones existentes.

En trabajos realizados de Dinámica de Sistemas en empresas con inconvenientes permitieron poner al descubierto las razones de sus problemas. Las dificultades analizadas son la caída del market share, fluctuaciones en producción con tasa de empleo disminuyendo la fuerza de trabajo o bien la disminución en la rentabilidad a otras empresas.

Este tipo de análisis permite profundizar el conocimiento sobre cómo la ESTRUCTURA y las POLÍTICAS (acciones, decisiones) se relacionan con el comportamiento.

Eficacia Organizacional:

Los planes de una organización determinan su curso y proveen una base para estimar el grado de éxito probable en el cumplimiento de sus objetivos. Los planes se preparan para actividades que requieren poco tiempo, años a veces, para completarse, así como también son necesarios para proyectos a corto plazo. Para poder llevar a la práctica y ejecutar los planes, una vez que estos han sido preparados, es necesario crear una organización.

Es función de la gerencia determinar el tipo de organización requerido para llevar adelante la realización de los planes que se hayan elaborado. La clase de organización que se haya establecido, determina, en buena medida, el que los planes sean apropiada e integralmente apropiados. Es como resultado de los esfuerzos de cada miembro de una organización que ésta logra cumplir sus propósitos de ahí que dirigir la organización de manera que se alcancen sus objetivos en la forma más óptima posible, es una función fundamental del proceso gerencial.

La última fase del proceso gerencial es la función de control. Su propósito, inmediato es medir, cualitativamente y cuantitativamente, la ejecución en relación con los patrones de actuación y, como resultado de esta comparación, determinar si es necesario tomar acción correctiva o remediar que encauce la ejecución en línea con lar normas establecidas.

Centralización:

Un sistema se dice centralizado cuando tiene un núcleo que comanda a todos los demás, y estos dependen para su activación del primero, ya que por sí solos no son capaces de generar ningún proceso. Los sistemas centralizados se controlan más fácilmente que los descentralizados, son más sumisos, requieren menos recursos, pero son más lentos en su adaptación al contexto.

Isomorfismo:

Isomórfico significa "con una forma similar" y se refiere a la construcción de modelos de sistemas similares al modelo original. Por ejemplo, un corazón artificial es isomórfico respecto al órgano real: este modelo puede servir como elemento de estudio para extraer conclusiones aplicables al corazón original.

Este modelo busca integrar las relaciones entre fenómenos de las distintas ciencias. La detección de estos fenómenos permite el armado de modelos de aplicación para distintas áreas de las ciencias.
Esto, que se repite en forma permanente, exige un análisis iterativo que responde a la idea de modularidad que la teoría de los sistemas desarrolla en sus contenidos.

Se pretende por comparaciones sucesivas, una aproximación metodológica, a la vez que facilitar la identificación de los elementos equivalentes o comunes, y permitir una correspondencia biunívoca entre las distintas ciencias.
Como evidencia de que existen propiedades generales entre distinto sistemas, se identifican y extraen sus similitudes estructurales.
Estos elementos son la esencia de la aplicación del modelo de isomorfismo, es decir, la correspondencia entre principios que rigen el comportamiento de objetos que, si bien intrínsecamente son diferentes, en algunos aspectos registran efectos que pueden necesitar un mismo procedimiento.

Metodología de Aplicación de la T.G.S., para el Análisis y Diseño de Sistemas:

Desde el punto de vista de la administración está compuesta de las siguientes etapas:

· Análisis de situación: es la etapa en que el analista toma conocimiento del sistema, se ubica en cuanto a su origen, objetivo y trayectoria.
1. Definición de objetivo: el analista trata de determinar para que ha sido requerido ya que en general se le plantean los efectos pero no las causas.
2. Formulación del plan de trabajo: el analista fija los límites de interés del estudio a realizar, la metodología a seguir, los recursos materiales y humanos que necesitará, el tiempo que insumirá el trabajo y el costo del mismo. Esta etapa se conoce como propuesta de servicio y a partir de su aprobación se continúa con la metodología.
3. Relevamiento: el analista recopila toda la información referida al sistema en estudio, como así también toda la información que hace al límite de interés.
4. Diagnóstico: el analista mide la eficacia y la eficiencia del sistema en estudio. Eficacia es cuando el sistema logra los objetivos y eficiencia es cuando el sistema logra los objetivos con una relación costo beneficio positiva. Si un sistema es eficaz pero no eficiente el analista deberá cambiar los métodos del sistema, si un sistema no es eficaz el analista deberá cambiar el sistema y si un sistema es eficiente el analista sólo podrá optimizarlo.
5. Diseño: el analista diseña el nuevo sistema:
a) Diseño global: en el determina la salida, los archivos, las entradas del sistema, hace un cálculo de costos y enumera los procedimientos. El diseño global debe ser presentado para su aprobación, aprobado el diseño global pasamos al siguiente paso.
b) Diseño detallado: el analista desarrolla en detalle la totalidad de los procedimientos enumerados en el diseño global y formula la estructura de organización la cual se aplicara sobre dichos procedimientos.
6. Implementación: la implementación del sistema diseñado significa llevar a la práctica al mismo, esta puesta en marcha puede hacerse de tres formas:
a) Global.
b) En fases.
c) En paralelo.
7. Seguimiento y control: El analista debe verificar los resultados del sistema implementado y aplicar las acciones correctivas que considere necesarias para ajustar el problema.