miércoles, 23 de julio de 2008

Estrategias De Prueba Del Software.

Estrategias De Prueba Del Software.
Una estrategia de prueba del software integra las técnicas de diseño de casos de prueba en una serie de pasos bien planificados que llevan a la construcción correcta del software.Las características generales son:La prueba comienza en el nivel de módulo y trabaja “hacia afuera”.En diferentes puntos son adecuadas a la vez distintas técnicas de prueba.La prueba la realiza la persona que desarrolla el software y (para grandes proyectos) un grupo de pruebas independiente.
La prueba y la depuración son actividades diferentes.
Una estrategia de prueba para el software debe constar de pruebas de bajo nivel, así como de pruebas de alto nivel.

Más concretamente, los objetivos de la estrategia de prueba son:Planificar las pruebas necesarias en cada iteración, incluyendo las pruebas de unidad, integración y las pruebas de sistema. Las pruebas de unidad y de integración son necesarias dentro de la iteración, mientras que las pruebas de sistema son necesarias sólo al final de la iteración.

Diseñar e implementar las pruebas creando los casos de prueba que especifican qué probar, cómo realizar las pruebas y creando, si es posible, componentes de prueba ejecutables para automatizar las pruebas.

Realizar diferentes pruebas y manejar los resultados de cada prueba sistemáticamente. Los productos de desarrollo de software en los que se detectan defectos son probadas de nuevo y posiblemente devueltas a otra etapa, como diseño o implementación, de forma que los defectos puedan ser arreglados.

Para conseguir estos objetivos el flujo de trabajo de la etapa de Pruebas consta de las siguientes etapas:
· Planificación de las pruebas.
· Diseño de las pruebas.
· Implementación de las pruebas.
· Ejecución de las pruebas.
· Evaluación de las pruebas.

Los productos de desarrollo del software fundamentales que se desarrollan en la etapa de Pruebas son:
· Plan de Pruebas.
· Casos de Prueba.· Informe de evaluación de Pruebas.
· Modelo de Pruebas, que incluye Clases de Prueba, Entorno de Configuración de Pruebas, Componentes de Prueba y los Datos de prueba.

Los participantes responsables de las realizar las actividades y los productos de desarrollo del software son:
· Diseñador de pruebas: Es responsable de la planificación, diseño, implementación y evaluación de las pruebas. Esto conlleva generar el plan de pruebas y modelo de pruebas, implementar los casos de prueba y evaluar los resultados de las pruebas. Los diseñadores de prueba realmente no llevan a cabo las pruebas, sino que se dedican a la preparación y evaluación de las mismas.· Probador (Tester): Es responsable de desarrollar las pruebas de unidad, integración y sistema, lo que incluye ejecutar las pruebas, evaluar su ejecución, recuperar los errores y garantizar los resultados de las pruebas.Durante la fase de Inicio puede hacerse parte de la planificación inicial de las pruebas cuando se define el ámbito del sistema. Sin embargo, las pruebas se llevan a cabo sobre todo cuando un producto de desarrollo software es sometido a pruebas de integración y de sistema. Esto quiere decir que la realización de pruebas se centra en las fases de Elaboración, cuando se prueba la línea base ejecutable de la arquitectura, y de construcción, cuando el grueso del sistema está implementado. Durante la fase de Transición el centro se desplaza hacia la corrección de defectos durante los primeros usos y a las pruebas de regresión.Debido a la naturaleza iterativa del esfuerzo de desarrollo, algunos de los casos de prueba que especifican cómo probar los primeros productos de desarrollo software pueden ser utilizadas también como casos de prueba de regresión que especifican cómo llevar a cabo las pruebas de regresión sobre los productos de desarrollo software siguientes. El número de pruebas de regresión necesarias crece por tanto de forma estable a lo largo de las iteraciones, lo que significa que las últimas iteraciones requerirán un gran esfuerzo en pruebas de regresión. Es natural, por tanto, mantener el modelo de pruebas a lo largo del ciclo de vida del software completo, aunque el modelo de pruebas cambia constantemente debido a:· La eliminación de casos de prueba obsoletos.· El refinamiento de algunos casos de prueba en casos de prueba de regresión.· La creación de nuevos casos de prueba para cada nuevo producto de desarrollo de software.La gestión de la configuración del software es uno de los procesos clave para toda organización dedicada a la Ingeniería del Software, ya que posibilita una mejor organización del desarrollo y mantenimiento, producto, facilitando el resto de procesos de producción.Durante el proceso de construcción de un software, los cambios son inevitables. Los cambios provocan confusión e incertidumbre, sobre todo cuando no se han analizado o pronosticado correctamente. Es importante considerar ciertas modificaciones que pueden ocurrirle al software dentro de todo el proceso de ingeniería.“El arte de coordinar el desarrollo de software para minimizar…la confusión, se denomina gestión de la configuración. La gestión es el arte de identificar, organizar y controlar las modificaciones que sufre el software…la meta es maximizar la productividad minimizando errores.

Gestion De La Configuracion Del Software.

Gestion De La Configuracion Del Software.
El arte de coordinar el desarrollo de software para minimizar... la confusión, se denomina gestión de configuración. La gestión de configuración es el arte de identificar, organizar y controlar las modificaciones que sufre el software que construye un equipo de programación. La meta es maximizar la productividad minimizando los errores.

La gestión de configuración del software (GCS) es una actividad de autoprotección que se aplica durante el proceso del software. Como el cambio se puede producir en cualquier momento, las actividades de GCS sirven para (1) identificar el cambio, (2) controlar el cambio, (3) garantizar que el cambio se implementa adecuadamente y (4) informar del cambio a todos aquellos que puedan estar interesados.

Es importante distinguir claramente entre el mantenimiento del software y la gestión de configuración del software. El mantenimiento es un conjunto de actividades de ingeniería del software que se producen después de que el software se haya entregado al cliente y esté en funcionamiento. La gestión de configuración del software es un conjunto de actividades de seguimiento y control que comienzan cuando se inicia el proyecto de ingeniería del software y termina sólo cuando el software queda fuera de la circulación.

El resultado del proceso de ingeniería del software es una información que se puede dividir en tres amplias categorías: (1) programas de computadora (tanto en forma de código fuente como ejecutable), (2) documentos que describen los programas de computadora (tanto técnicos como de usuario) y (3) datos (contenidos en el programa o externos a él). Los elementos que componen toda la información producida como parte del proceso de ingeniería del software se denominan colectivamente configuración del software.

A medida que progresa el proceso del software, el número de elementos de configuración del software

(ECSs) crece rápidamente. Una especificación del sistema produce un plan del proyecto del software y una especificación de requisitos del software (así como otros documentos relativos al hardware). A su vez, éstos producen otros documentos para crear una jerarquía de información. Si simplemente cada ECS produjera otros ECSs, no habría prácticamente confusión. Desgraciadamente, en el proceso entra en juego otra variable -el cambio-. El cambio se puede producir en cualquier momento y por cualquier razón. De hecho, la Primera Ley de la Ingeniería de Sistemas [BERSO] establece: Sin importar en qué momento del ciclo de vida del sistema nos encontremos, el sistema cambiará y el deseo de cambiarlo persistirá a lo largo de todo el ciclo de vida.

¿Cuál es el origen de estos cambios? La respuesta a esta pregunta es tan variada como los cambios mismos. Sin embargo, hay cuatro fuentes fundamentales de cambios:

Nuevos negocios o condiciones comerciales que dictan los cambios en los requisitos del producto o en las normas comerciales;Nuevas necesidades del cliente que demandan la modificación de los datos producidos por sistemas de información, funcionalidades entregadas por productos o servicios entregados por un sistema basado en computadora;Reorganización o crecimiento/reducción del negocio que provoca cambios en las prioridades del proyecto o en la estructura del equipo de ingeniería del software;Restricciones presupuestarias o de planificación que provocan una redefinición del sistema o producto.

La gestión de configuración del software (GCS) es un conjunto de actividades desarrolladas para gestionar los cambios a lo largo del ciclo de vida del software de computadora.

La gestión de configuración del software es un elemento importante de garantía de calidad del software. Su responsabilidad principal es el control de cambios. Sin embargo, la GCS también es responsable de la identificación de ECSs individuales y de las distintas versiones del software, de las auditorias de la configuración del software para asegurar que se desarrollan adecuadamente y de la generación de informes sobre todos los cambios realizados en la configuración.

Diseño De Interfaz Del Usuario.

Diseño De Interfaz Del Usuario.
El plano de una casa (su diseño arquitectónico) no está completo sin la representación de puertas, ventanas y conexiones de servicios para el agua, electricidad y teléfono (por no mencionar la televisión por cable). Las «puertas, ventanas y conexiones de servicios» del software informático es lo que constituye el diseño de la interfaz de usuario. El diseño de la interfaz se centra en tres áreas de interés: (1) el diseño de la interfaz entre los componentes del software; (2) el diseño de las interfaces entre el software y los otros productores y consumidores de información no humanos (esto es, otras entidades externas) y (3) el diseño de la interfaz entre el hombre (esto es, el usuario) y la computadora. Puertas, ventanas y conexiones de servicios para el agua, electricidad y teléfono (por no mencionar la televisión por cable). Las «puertas, ventanas y conexiones de servicios» del software informático es lo que constituye el diseño de la interfaz de usuario. El diseño de la interfaz se centra en tres áreas de interés: (1) el diseño de la interfaz entre los componentes del software; (2) el diseño de las interfaces entre el software y los otros productores y consumidores de información no humanos (esto es, otras entidades externas) y (3) el diseño de la interfaz entre el hombre (esto es, el usuario) y la computadora.

Analisis De Requisitos Del Sistema Del Software.

Analisis De Requisitos Del Sistema Del Software.
El análisis de los requisitos es una tarea de ingeniería del software que cubre el hueco entre la definición del software a nivel sistema y el diseño del software. El análisis de requisitos permite al ingeniero de sistemas especificar las características operacionales del software (función, datos y rendimientos), indica la interfaz del software con otros elementos del sistema y establece las restricciones que debe cumplir el software.

El análisis de requisitos del software puede dividirse en cinco áreas de esfuerzo: (1) reconocimiento del problema, (2) evaluación y síntesis, (3) modelado, (4) especificación y (5) revisión. Inicialmente, el analista estudia la Especificación del Sistema (si existe alguna) y el Plan del Proyecto de Software. Es importante entender el software en el contexto de un sistema y revisar el ámbito del software que se empleó para generar las estimaciones de la planificación. A continuación, se debe establecer la comunicación para el análisis de manera que nos garantice un correcto reconocimiento del problema. El objetivo del analista es el reconocimiento de los elementos básicos del problema tal y como los percibe el cliente/usuario.

La evaluación del problema y la síntesis de la solución es la siguiente área principal de esfuerzo en el análisis. El analista debe definir todos los objetos de datos observables externamente, evaluar el flujo y contenido de la información, definir y elaborar todas las funciones del software, entender el comportamiento del software en el contexto de acontecimientos que afectan al sistema, establecer las características de la interfaz del sistema y descubrir restricciones adicionales del diseño. Cada una de estas tareas sirve para describir el problema de manera que se pueda sintetizar un enfoque o solución global.

Inicio del proceso.

La técnica de obtención de requisitos más usada es llevar a cabo una reunión o entrevista preliminar. La primera reunión entre el ingeniero del software (el analista) el cliente puede compararse con la primera cita entre dos adolescentes. Nadie sabe qué decir o preguntar; los dos están preocupados de que lo que digan sea malentendido; ambos piensan qué pasará (los dos pueden tener expectativas radicalmente diferentes): los dos están deseando que aquello termine, pero, al mismo tiempo, ambos desean que la cita sea un éxito.Técnicas para facilitar las especificaciones de una aplicación.Los clientes y los ingenieros del software a menudo tienen una mentalidad inconsciente de «nosotros y ellos». En vez de trabajar como un equipo para identificar y refinar los requisitos, cada uno define por derecho su propio «territorio» y se comunica a través de una serie de memorandos, papeles de posiciones formales, documentos y sesiones de preguntas y respuestas. La historia ha demostrado que este método no funciona muy bien. Abundan los malentendidos, se omite información importante y nunca se establece una buena relación de trabajo.

Ingenieria De Sistema De Computadora.

Ingenieria De Sistema De Computadora.
HACE casi 500 años, Maquiavelo dijo: “no hay nada más difícil de llevar a cabo, más peligroso de realizar o de éxito más incierto que tomar el liderazgo en la introducción de un nuevo orden de cosas”. Durante los Últimos 50 años, los sistemas basados en computadora han introducido un nuevo orden. Aunque la tecnología ha conseguido grandes avances desde que habló Maquiavelo, sus palabras siguen sonando a verdad. La ingeniería del software aparece como consecuencia de un proceso denominado ingeniería de sistemas. En lugar de centrarse únicamente en el software, la ingeniería de sistemas se centra en diversos elementos, analizando, diseñando y organizando esos elementos en un sistema que pueden ser un producto, un servicio o una tecnología para la transformación de información o control de información. El proceso de ingeniería de sistemas es denominado ingeniería de procesos de negocio cuando el contexto del trabajo de ingeniería se enfoca a una empresa. Cuando hay que construir un producto, el proceso se denomina ingeniería de producto. Tanto la ingeniería de proceso de negocio como la de producto intentan poner orden al desarrollo de sistemas basados en computadoras. Aunque cada una se aplica en un dominio de aplicación diferente, ambas intentan poner al software en su contexto.

La palabra sistema es posiblemente el término más usado y abusado del léxico técnico. Hablamos de sistemas políticos y de sistemas educativos, de sistemas de aviación y de sistemas de fabricación, de sistemas bancarios y de sistemas de locomoción. La palabra no nos dice gran cosa. Usamos el adjetivo para describir el sistema y para entender el contexto en que se emplea. El diccionario Webster define sistema como:

1. un conjunto o disposición de cosas relacionadas de manera que forman una unidad o un todo orgánico;

2. Un conjunto de hechos, principios, reglas, etc., clasificadas y dispuestas de manera ordenada mostrando un plan lógico de unión de las partes; 3. Un método o plan de clasificación o disposición; 4.una manera establecida de hacer algo; método; procedimiento ...

Se proporcionan cinco definiciones más en el diccionario, pero no se sugiere un sinónimo preciso. Sistema es una palabra especial. Tomando prestada la definición del diccionario Webster, definimos un sistema basado en computadora como:

Un conjunto o disposición de elementos que están organizados para realizar un objetivo preteñido procesando información. El objetivo puede ser soportar alguna función de negocio o desarrollar un producto que pueda venderse para generar beneficios. Para conseguir el objetivo, un sistema basado en computadora hace uso de varios elementos del sistema:

Software. Programas de computadora, estructuras de datos y su documentación que sirven para hacer efectivo el método lógico, procedimiento o control requerido. Hardware. Dispositivos electrónicos que proporcionan capacidad de cálculo, dispositivos de interconexión (por ejemplo, conmutadores de red, dispositivos de telecomunicación) y dispositivos electromecánicos (por ejemplo, sensores, motores, bombas) que proporcionan una función externa, del mundo real.

Personas. Usuarios y operadores del hardware y software.

Documentación. Manuales, formularios y otra información descriptiva que plasma el empleo y/o funcionamiento del sistema.

Procedimientos. Los pasos que definen el empleo específico de cada elemento del sistema o el contexto procedimental en que reside el sistema.Los elementos se combinan de varias maneras para transformar la información. Por ejemplo, un departamento de marketing transforma la información bruta de ventas en un perfil del típico comprador del producto; un robot transforma un archivo de órdenes, que contiene instrucciones específicas, en un conjunto de señales de control que provocan alguna acción física específica. Tanto la creación de un sistema de información para asesorar a un departamento de marketing, como el software de control para el robot, requieren de la ingeniería de sistemas. Una característica complicada de los sistemas basados en computadora es que los elementos que componen un sistema pueden también representar un macroelemento de un sistema aún más grande. El macroelemento es un sistema basado en computadora que es parte de un sistema más grande basado en computadora. Por ejemplo, consideremos un «sistema de automatización de una fábrica» que es esencialmente una jerarquía de sistemas. En el nivel inferior de la jerarquía tenemos una máquina de control numérico, robots y dispositivos de entrada de información. Cada uno es un sistema basado en computadora por derecho propio. Los elementos de la máquina de control numérico incluyen hardware electrónico y electromecánico (por ejemplo, procesador y memoria, motores, sensores); software (para comunicaciones, control de la máquina e interpolación); personas (el operador de la máquina); una base de datos (el programa CN almacenado); documentación y procedimientos. Se podría aplicar una descomposición similar a los dispositivos de entrada de información y al robot. Todos son sistemas basados en computadora.

Fundamento De Analisis De Requisitos.

Fundamento De Analisis De Requisitos.
La ingeniería de requisitos es el uso sistemático de procedimientos, técnicas, lenguajes y herramientas para obtener con un coste reducido el análisis, documentación, evolución continua de las necesidades del usuario y la especificación del comportamiento externo de un sistema que satisfaga las necesidades del usuario. Tenga en cuenta que todas las disciplinas de la ingeniería son semejantes, la ingeniería de requisitos no se guía por conductas esporádicas, aleatorias o por modas pasajeras, si no que se debe basar en el uso sistemático de aproximaciones contrastadas.

El análisis y la especificación de los requisitos puede parecer una tarea relativamente sencilla, pero las apariencias engañan. El contenido de comunicación es muy denso. Abundan las ocasiones para las malas interpretaciones o falta de información. Es muy probable que haya ambigüedad. El dilema al que se enfrenta el ingeniero del software puede entenderse muy bien repitiendo la famosa frase de un cliente anónimo: “Sé que cree que entendió lo que piensa que dije, pero no estoy seguro de que se dé cuenta de que lo que escuchó no es lo que yo quise decir”.

El análisis de los requisitos es una tarea de ingeniería del software que cubre el hueco entre la definición del software a nivel sistema y el diseño del software. El análisis de requisitos permite al ingeniero de sistemas especificar las características operacionales del software (función, datos y rendimientos), indica la interfaz del software con otros elementos del sistema y establece las restricciones que debe cumplir el software.

El análisis de requisitos del software puede dividirse en cinco áreas de esfuerzo: (1) reconocimiento del problema, (2) evaluación y síntesis, (3) modelado, (4) especificación y (5) revisión. Inicialmente, el analista estudia la Especificación del Sistema (si existe alguna) y el Plan del Proyecto de Software. Es importante entender el software en el contexto de un sistema y revisar el ámbito del software que se empleó para generar las estimaciones de la planificación. A continuación, se debe establecer la comunicación para el análisis de manera que nos garantice un correcto reconocimiento del problema. El objetivo del analista es el reconocimiento de los elementos básicos del problema tal y como los percibe el cliente/usuario.

La evaluación del problema y la síntesis de la solución es la siguiente área principal de esfuerzo en el análisis. El analista debe definir todos los objetos de datos observables externamente, evaluar el flujo y contenido de la información, definir y elaborar todas las funciones del software, entender el comportamiento del software en el contexto de acontecimientos que afectan al sistema, establecer las características de la interfaz del sistema y descubrir restricciones adicionales del diseño. Cada una de estas tareas sirve para describir el problema de manera que se pueda sintetizar un enfoque o solución global.

Por ejemplo, un mayorista de recambios de automóviles necesita un sistema de control de inventario. El analista averigua que los problemas del sistema manual que se emplea actualmente son: (1) incapacidad de obtener rápidamente el estado de un componente; (2) dos o tres días de media para actualizar un archivo a base de tarjetas; (3) múltiples órdenes repetidas para el mismo vendedor debido a que no hay manera de asociar a los vendedores con los componentes, etc. Una vez que se han identificado los problemas, el analista determina qué información va a producir el nuevo sistema y qué información se le proporcionará al sistema. Por ejemplo, el cliente desea un informe diario que indique qué piezas se han tomado del inventario y cuántas piezas similares quedan. El cliente indica que los encargados del inventario registrarán el número de identificación de cada pieza cuando salga del inventario.

Una vez evaluados los problemas actuales y la información deseada (entradas y salidas), el analista empieza a sintetizar una o más soluciones. Para empezar, se definen en detalle los datos, las funciones de tratamiento y el comportamiento del sistema. Una vez que se ha establecido esta información, se consideran las arquitecturas básicas para la implementación. Un enfoque cliente/servidor parecería apropiada, pero ¿está dentro del ámbito esbozado en el Plan del Software? Parece que sería necesario un sistema de gestión de bases de datos, pero, ¿está justificada la necesidad de asociación del usuario/cliente? El proceso de evaluación y síntesis continúa hasta que ambos, el analista y el cliente, se sienten seguros de que se puede especificar adecuadamente el software para posteriores fases de desarrollo. A lo largo de la evaluación y síntesis de la solución, el enfoque primario del analista está en el «qué» y no en el «cómo». ¿Qué datos produce y consume el sistema, qué funciones debe realizar el sistema, qué interfaces se definen y qué restricciones son aplicables?

Durante la actividad de evaluación y síntesis de la solución, el analista crea modelos del sistema en un esfuerzo de entender mejor el flujo de datos y de control, el tratamiento funcional y el comportamiento operativo y el contenido de la información. El modelo sirve como fundamento para el diseño del software y como base para la creación de una especificación del software.

viernes, 18 de julio de 2008

Acortando el Tiempo de Reacción

Acortando el Tiempo de Reacción
Cuando la localización de organización separada es ligada por las redes de ordenadores, el tiempo de reacción de organización sea más corto venido. Un acontecimiento en una localización se siente inmediatamente en una diversa localización. Como corporaciones separadas se liga electrónicamente, uno puede dar un pequen@o codazo el otro en la acción a la velocidad electrónica.
Un cliente compra el coche y la orden se transmite inmediatamente a la fábrica del coche y se absorbe en horario del produccion. Los acontecimientos en la bolsa destellan a la máquina lejana que hacen, compran, o venden cómputos y transmiten inmediatamente éstos al intercambio mundial. El cambio del comprador de la ropa sus patrones de compra en San Francisco, y la computadora de Benetton´s en Roma toman medidas inmediatas. Los almacenes de los efectos de escritorio reducen al mínimo su inventario porque tienen de computadora personal en línea a los libreros unidos, que garantiza a las órdenes de acometida a sus clientes en el día que él los coloca.
Las oportunidades en negocio esté de una duración más corta en que las corporaciones se ligan electrónicamente. Las ventajas de precio tienen que ser utilizadas inmediatamente. Para alcanzar control de inventario “justo a tiempo”, los surtidores tienen que entregar exactamente a cuando las computadoras les dicen. El correo electrónico y el facsímil dan interacciones inmediatas. Las computadoras generan ofertas de las ventas. La computadora en una corporación explora los vendedores posibles electrónicamente y la línea on- de las órdenes de la computadora en otra corporación.
El mundo del negocio ha acelerado debido a las computadoras, y acelerará mucho más cuando las computadoras en una corporación están generalmente en la comunicación electrónica con las computadoras en otras corporaciones. El mundo pronto será una tela compleja de computadoras intrincado que obran recíprocamente.
En tal mundo si una empresa tarda tres años para introducir nuevos procedimientos automatizados, estará en una desventaja seria comparada a las empresas que pueden introducir y modificar procedimientos rápidamente. Primera Boston en Nueva York en los mercados financieros turbulentos de la segunda mitad de los años 80 podía introducir los nuevos vehículos financieros más rápidamente que sus competidores porque construyó las aplicaciones informáticas con un generador de código dentro de un marco de ingeniería de información. El ciclo vital clásico del desarrollo es mortal en tal ambiente porque es tan lento, porque no puede integrar los sistemas separados, y porque construye a menudo los sistemas que no resuelven el negocio verdadero necesitan. En muchos casos tan poco es sabida por los programadores sobre los requisitos verdaderos del negocio que es solamente después que se ha construido el sistema que sale a luz la verdad.

Ovejas y cabras

No podemos diseñar y mantener la integración compleja de sistemas que es necesaria a menos que utilicemos las computadoras ellos mismos para esta tarea. Necesitamos la automatización de la automatización.
Hay hoy una diferencia extensa entre el diseño y el mantenimiento de los sistemas informáticos en las organizaciones mejores y peores de I.S. El mejor está utilizando la ingeniería de información disciplinada con las herramientas automatizadas. El peores están utilizando plantillas plásticas y están creando código de espagueti. El vendedor de la automatización de fábrica guarda lejos de las fábricas posteriores con las vides que cubren las paredes. El vendedor de las herramientas de la automatización de diseño guarda lejos de los departamentos de I.S. que no se han movido a la programación estructurada y diseña. La mejor mejora de las corporaciones a las herramientas más modernas; el peores se dejan al fester en su lío desorganizado.

Ingeniería rigurosa

La automatización afecta directamente a productividad. Los sistemas de información afectan directamente a la toma de decisión. Las computadoras y las redes están creciendo rápidamente en rentabilidad, y cada vez más en el futuro, las corporaciones con la automatización pobre y los sistemas de información no podrán competir. Mientras que los sistemas llegan a ser más complejos no pueden ser construidos sensible sin la ingeniería rigurosa. No podemos alcanzar la ingeniería rigurosa del software y de la información sin las herramientas automatizadas. Las herramientas para el diseño de sistemas se deben ligar a las herramientas para la generación del código. Los sistemas complejos necesitan las herramientas que facilitan el desarrollo iterativo o exploratorio. Las herramientas deben relacionarse con la pirámide entera de I.S. de modo que los sistemas por separado desarrollados liguen juntos y el control estratégico de sistemas sea práctico. Las herramientas deben hacer cumplir por completo la estructuración del código y de datos, con los redactores automatizados de modo que los sistemas sean tan fáciles de cambiar como sea posible. La trampa del mantenimiento es extremadamente dañosa; evita que una corporación cambie sus procedimientos para continuar con la evolución dinámica del negocio. Los sistemas de ingeniería Well- construidos con las herramientas automatizadas se diseñan para poderlos modificarse rápidamente. Las herramientas deben asegurar esta facilidad de la modificación.

Integración de sistemas

Los sistemas separados son desarrollados por los equipos separados. No es práctico para que un equipo construya todas las instalaciones de una corporación compleja. Para hacer que los sistemas por separado desarrollados trabajan juntas, las técnicas para la síntesis y la coordinación son necesarias. Una descripción de arriba hacia abajo es necesaria del proceso y de los datos se utilizan que. Los datos empleados por los sistemas por separado desarrollados deben ser compatible_ que debe ser derivada del mismo modelo de datos total. Desarrollando los sistemas separados usando la misma enciclopedia, la compatibilidad de datos puede ser alcanzada. Las características del análisis de la enciclopedia comprueban que los sistemas ligan juntos lógicamente. La ingeniería de información es alcanzada sintetizando el conocimiento de mucha gente, que puede ser dispersada extensamente a través de una empresa grande. La síntesis usando las herramientas automatizadas es esencial porque ninguna persona tiene más que una fracción del conocimiento requerido. Además de asegurar a compatibilidad lógica es necesario que los sistemas son compatibles desde el punto de vista del establecimiento de una red. El planeamiento estratégico total de la red corporativa es esencial.

El conocimiento de la empresa y de sus sistemas en la enciclopedia del IE crece constantemente. Sus ayudas la empresa integran sus numerosos sistemas por separado desarrollados. Ayuda a mejores sistemas y procedimientos del plan, y los gastos del acoplamiento I.S. a las metas de la gerencia superior. Ayuda a quitar insectos en diseño de sistema. Ayuda a planear la jerarquía de crítico. Ayuda a conseguir la información correcta a la gente adecuada para el control y la toma de decisión eficaces. La enciclopedia se convierte en un recurso corporativo cada vez más valioso.

Inteligencia artificial

En muchas organizaciones, las bases de datos bien pensadas se han convertido en un activo corporativo vital en el futuro, las base de conocimiento serán una maestría vital del activo incorporadas a base de conocimiento se refinan constantemente, como tiene en el uso pionero de Digital Equipment Corporation de los sistemas expertos afecta todo que toca. En la DEC se esperará que a todos los vendedores utilicen un sistema experto (XSEL) para configurar, tasar, y las órdenes que controlan. Los diseñadores de nuevas computadoras tienen paso de s en sus procedimientos, que es el adición del conocimiento necesario para configurar los nuevos sistemas al sistema experto de la configuración (XCON). Esta ayuda experta automatizada debe existir antes de que se anuncie la computadora. Los detalles de los sistemas expertos de las ventas van al sistema experto s de la fábrica, y las fechas de expedición del sistema experto del planeamiento de producción van a los vendedores. La base de conocimiento del planeamiento de producción alternadamente afecta al otro sistema experto de la fábrica. El conocimiento en tales sistemas acumula constantemente, aumentando una base automatizada de la maestría para dirigir la corporación tan eficientemente como sea posible. Estos sistemas expertos utilizan los datos que están en las bases de datos corporativas. La ingeniería cognitiva debe ser una extensión de la ingeniería de información.

No hay nada más difícil de planificar, más dudoso de que sea exitoso, ni más peligroso que administrar la creación de un nievo sistema.

No hay nada más difícil de planificar, más dudoso de que sea exitoso, ni más peligroso que administrar la creación de un nievo sistema.
A menudo nosotros los Ing. En Sistemas y otros profesionales del área nos encontramos con grandes proyectos en las diferentes empresas, estos ´proyectos cada vez más extensos y ambiciosos pueden intimidarnos por su complejidad y gran cantidad de detalles a controlar, dichos proyectos son unos de los grandes temores por la difícil planificación que requieren, esto es un gran problema para los profesionales especialmente los que no tienen mucha experiencia en la ejecución y control de estos tipos de proyectos.
Algo que llena de intriga a los programadores y manejadores de proyectos es que si este a su conclusión será un proyecto exitoso, muchas veces nos hacemos esta pregunta, en ese sentido solo hay algo que pueda asegurar que el proyecto sea exitoso o no y esto es una buena planeación, tener los objetivos claros, saber lo que se desea y concentrarse en hacer todo lo establecido, siguiendo estas directrices la implementación de cualquier proyecto será exitoso.
Administrarla la creación de un nuevo sistema, yo no diría que es algo peligroso, si se conoce lo que se desea y se analiza y diseña bien todo lo referente a la creación del nuevo sistema. La implementación de un nuevo sistema es algo que puede intimidar a algunos profesionales pero siguiendo los pasos para la resolución de ese problema todo terminara y se implementara de una manera satisfactoria.


El establecimiento del título universitario del Ingeniero en informática, ha sido un paso súper importante en lo que es el desarrollo de los pueblos, las industrias y todo lo que necesita de tecnología, también ha servido durante todos estos años para el desarrollo de nuevas tecnologías y la implementación de estas tecnologías en las empresas. Desde este momento yo diría que se produjo una explosión en el mercado, implementando nuevas tecnologías y a los profesionales que las manejarían para aumentar la productividad de las empresas

Terminos Informaticos

1- ¿Qué es Software?
Bajo esta definición, el concepto de software va más allá de los programas de cómputo en sus distintos estados: código fuente, binario o ejecutable; también su documentación, datos a procesar e información de usuario es parte del software: es decir, abarca todo lo intangible, todo lo “no físico” relacionado.
El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En las ciencias de la computación y la ingeniería de software, el software es toda la información procesada por los sistemas informáticos: programas y datos. El concepto de leer diferentes secuencias de instrucciones desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por vez primera por Alan Turing en su ensayo de 1936, “Los números computables”, con una aplicación al problema de decisión.
2- Diferencias entre Programa y Software.
Programa es una secuencia de instrucciones que se le da a una computadora para que haga determinadas cosas, hay programas que van desde lo más simple hasta los muy complejos, un programa que te pregunte tu nombre y te dé una respuesta ya se puede considerar como programa. Y software es aquello que es intangible, lo que no puedes tocar, es la parte lógica de un programa, entre el software están videos, imágenes, sonidos, textos, bases de datos, etc.
3- Evolución del Programa.
Los programas de computación nacen en 1950 junto con el diseño de las primeras computadoras y estaban escritos en lenguaje de máquina. Es decir, estaban formados por una sucesión de instrucciones, cada una de las cuales era un grupo de 1’s y 0’s. El usuario codificaba estos 1’s y 0’s directamente usando interruptores pare codificar cada instrucción. Posteriormente, fue creada la primera máquina que habría de funcionar con un programa almacenado en 1943. Esta máquina recibió el nombre de EDSAC y fue fabricada en la Universidad de Cambridge. Sus autores Wilker, Wheeler y Gill fueron también los primeros en elaborar un texto de programación. Los programas almacenados diferían de los anteriores en que la sucesión de instrucciones se codificaban en una cinta de papel mediante perforaciones. La cinta era leída por la computadora y de esta manera si el usuario deseaba ejecutar el programa una segunda vez, no tenia que codificarla nuevamente, sino que solo alimentaba la cinta.
El codificar en lenguaje de maquina resultaba difícil para el usuario; así que se comenzaron a desarrollar programas en lenguaje de máquina que interpretaban instrucciones inteligibles pare la mayoría de los usuarios y que eran traducidos a lenguajes de máquina. A este tipo de programas se les denomino lenguajes de “alto nivel”, mismos que subsisten hasta la fecha.
En 1951, surge la primera computadora disponible comercialmente a gran escala, la UNIVAC I, la cual estaba diseñada para ser fácilmente programada en su propio código. Era una maquina decimal alfanumérica con instrucciones mnemónicas fáciles de recordar y utilizar. La aparición de las computadoras en el ámbito comercial es crucial en la historia de los lenguajes, ya que entonces se vuelve importante la facilidad de programación y la posibilidad de transportar programas. A partir de aquí comienzan a surgir una serie de lenguajes de programación cada vez más lejanos al lenguaje de máquina y más cercanos al usuario.
Por ejemplo, la UNIVAC I de 1951 tiene los lenguajes AT3 y B-0 que tuvieron gran influencia en el diseño de otros lenguajes de maquina más avanzados como son el FORTRAN y el COBOL respectivamente, ambos de difusión mundial.
En la segunda mitad de la década de los 50’s y basados en las ideas de los lenguajes anteriores, surge con gran rapidez la primera generación de lenguajes de “alto nivel”, mismos que siguen vigentes veinticinco años después. Dichos lenguajes son:
1. FORTRAN (FORmula TRANslating) resultado de un proyecto encabezado por John Backus y que llevo 25 años hombre esfuerzo. Se utiliza principalmente pare resolver problemas científicos y técnicos. En ocasiones, sin embargo, se emplea en aplicaciones comerciales.
2. ALGOL (ALGOrithmic Language; lenguaje algorítmico) se desarrollo con el propósito de contaron un lenguaje común pare diversas computadoras. Este lenguaje se parece al FORTRAN y es de aplicación particular en los problemas matemáticos y numéricos, Este lenguaje es popular en las universidades, y en la actualidad es utilizado en los Estados Unidos pare fines pedagógicos y la comunicación de algoritmos.
3. COBOL (COmmon Business Oriented Language) el propósito de este lenguaje es el de contar con un lenguaje que resultara común pare las diversas computadoras en el mercado para el procesamiento de información comercial. Es un lenguaje que se utiliza principalmente para la programación de problemas de proceso de datos comerciales, por su naturaleza descriptiva y su adaptabilidad pare resolver los problemas de proceso de ficheros que entraña el proceso de datos comerciales.

4- Lenguaje Maquina.
Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación.
Una visión típica de la arquitectura de computadores como una serie de capas de abstracción: hardware, firmware, ensamblador, kernel, sistema operativo y aplicaciones
Claude Elwood Shannon, en su Analysis of Relay and Switching Circuits, y con sus experiencias en redes de conmutación, sentó las bases para la aplicación del álgebra de Boole a las redes de conmutación.
Una red de conmutación es un circuito de interruptores eléctricos que al cumplir ciertas combinaciones booleanas con las variables de entrada, define el estado de la salida. Este concepto es el núcleo de las puertas lógicas, las cuales son, por su parte, los ladrillos con que se construyen sistemas lógicos cada vez más complejos.
Shannon utilizaba el relé como dispositivo físico de conmutación en sus redes. El relé, a igual que una lámpara eléctrica, posee dos estados: 1 ó 0, esto es, está activado, encendida, o está desactivado, apagada.
5- Lenguaje Ensamblador.
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.
Fue usado ampliamente en el pasado para el desarrollo de software, pero actualmente sólo se utiliza en contadas ocasiones, especialmente cuando se requiere la manipulación directa del hardware o se pretenden rendimientos inusuales de los equipos.
6- Lenguaje de Programación.
Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.
Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML (lenguaje para el marcado de páginas web).
Un lenguaje de programación permite a uno o más programadores especificar de manera precisa: sobre qué datos una computadora debe operar, cómo deben ser estos almacenados, transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador puedan tener un conjunto común de instrucciones que puedan ser comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.

7- Herramientas de Programación.
Las herramientas de programación, son aquellas que permiten realizar aplicativos, programas, rutinas, utilitarios y sistemas para que la parte física del computador u ordenador, funcione y pueda producir resultados.
Hoy día existen múltiples herramientas de programación en el mercado, tanto para analistas expertos como para analistas inexpertos.
8- Lenguaje Orientado a Objetos.
Se le llama así a cualquier lenguaje de programación que implemente los conceptos definidos por la programación orientada a objetos.
Cabe notar que los conceptos definidos en la programación orientada a objetos no son una condición sino que son para definir que un lenguaje es orientado a objetos. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin embargo, no invalidar su definición como lenguaje orientado a objetos.
Quizás las condiciones mínimas necesarias las provee el formalismo que modeliza mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos.
9- Encapsulación.
En programación modular, y más específicamente en programación orientada a objetos, se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto.
Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.
De esta forma el usuario de la clase puede obviar la implementación de los métodos y propiedades para concentrarse sólo en cómo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas.


10- Análisis y Diseño Orientado a Objetos.
Análisis y diseño orientado a objetos (ADOO) es un enfoque de la ingeniería de software que modela un sistema como un grupo de objetos que interactúan entre sí. Este enfoque representa un dominio en términos de conceptos compuestos por verbos y sustantivos, clasificados de acuerdo a su dependencia funcional.
En éste método de análisis y diseño se crea un conjunto de modelos utilizando una notación acordada como, por ejemplo, el lenguaje únificado de modelado (UML). ADOO aplica técnicas de modelado de objetos para analizar los requerimientos para un contexto - por ejemplo, un sistema de negocio, un conjunto de módulos de software - y para diseñar una solución para mejorar los procesos involucrados. No está restringido al diseño de programas de computadora, sino que cubre sistemas enteros de distinto tipo. Las metodologías de análisis y diseño más modernas son casos de uso guiados a través de requerimientos, diseño, implementación, pruebas, y despliegue.
El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estándar usado en análisis y diseño orientado a objetos.
11- Interfaz del Usuario.
La interfaz de usuario es la forma en que los usuarios pueden comunicarse con una computadora, y comprende todos los puntos de contacto entre el usuario y el equipo. Sus principales funciones son:
Manipulación de archivos y directorios
Herramientas de desarrollo de aplicaciones
Comunicación con otros sistemas
Información de estado
Configuración de la propia interfaz y entorno
Intercambio de datos entre aplicaciones
Control de acceso
Sistema de ayuda interactivo.
12- Lenguaje Poliformico.
El polimorfismo es la presencia de dos o más variantes heredables para una misma característica que coexisten dentro de una población. Esta característica puede ser apreciable tanto a nivel morfológico, como el número de cerdas en Drosophila melanogaster (mosca común de la fruta), como a nivel molecular, tal es el caso de las alozimas.
13- Polimorfismo.
Polimorfismo es la presencia de dos o más variantes heredables para una misma característica que coexisten dentro de una población. Esta característica puede ser apreciable tanto a nivel morfológico, como el número de cerdas en Drosophila melanogaster (mosca común de la fruta), como a nivel molecular, tal es el caso de las alozimas.
14- Gestión de Proyectos Orientados a Objetos.
Las técnicas modernas de gestión de proyectos de software se pueden dividir e as siguientes actividades:
• Establecimiento de un marco de proceso común para el proyecto.
• Uso del marco y de métricas históricas.
• Especificación de productos de trabajo y avances.
• Definición de puntos de comprobación.
• Gestión de los cambios que ocurren invariablemente.
• Seguimiento.
Para aplicar estas actividades hay que tomar en cuenta que todas hay que enfocarlas usando un modelo propio.
Marco de proceso común para OO. (Orientado a objeto)
Este tópico define un enfoque organizativo para el desarrollo y mantenimiento del software. Identifica el paradigma de Ing. De software aplicado para construir y mantener software. Tiene la cualidad de ser adaptable, de forma que cumpla con las necesidades individuales del equipo de proyecto.
Para el desarrollo de proyectos de esta naturaleza no se pueden aplicar modelos lineales (ciclo de vida), sino que es necesario aplicar un modelo que contemple un desarrollo iterativo. Iterativo significa que el software evolucione a través de un número de ciclos. El software OO debe ser evolutivo por naturaleza. Existen autores que sugieren un modelo recursivo/paralelo para el desarrollo orientado a objeto.
15- Productividad de Programación.
La productividad de programación se refiera al rendimiento de un programador en un proyecto de programación, este tipo de productividad se mide por las horas que el programador aplica a la programación del proyecto, comparado por la evolución del programa en sí.
16- Tiempo de Programación.
El tiempo de desarrollo del proyecto es indefinido, puede mantenerse durante el período que se considere necesario, la ventaja que tiene es que se pueden involucrar distintas comunidades donantes y receptoras, el objetivo inicial sería lograr la capacitación de los mediadores en los aspectos técnicos necesarios para llegar a una instalación de computadores con software Libre.
17- Cantidad de Código.
Es la medición del tamaño en líneas de código, generalmente se utiliza en programación lineal y en lenguajes de programación antiguos.
18- Protocolo.
Protocolo de red o también Protocolo de Comunicación es el conjunto de reglas que especifican el intercambio de datos u órdenes durante la comunicación entre las entidades que forman parte de una red.

19- ¿Quién es George Boole?
George Boole, (2 de noviembre de 1815 - 8 de diciembre de 1864) fue un matemático y filósofo irlandés.
Como inventor del álgebra de Boole, la base de la aritmética computacional moderna, Boole es considerado como uno de los fundadores del campo de las Ciencias de la Computación. En 1854 publicó “An Investigation of the Laws of Thought” en él desarrollaba un sistema de reglas que le permitía expresar, manipular y simplificar, problemas lógicos y filosóficos cuyos argumentos admiten dos estados (verdadero o falso) por procedimientos matemáticos.
20- ¿Quién es Norbert Wiener?
Norbert Wiener (26 de noviembre de 1894, Columbia, Missouri - 18 de marzo de 1964, Estocolmo, Suecia) fue un matemático estadounidense, conocido como el fundador de la cibernética. Acuñó el término en su libro Cibernética o el control y comunicación en animales y máquinas, publicado en 1948.
Su padre, Leo Wiener, fue profesor en lenguas eslavas en la Universidad de Harvard. Norbert se educó en casa hasta los siete años, edad a la que empezó a asistir al colegio, pero durante poco tiempo. Siguió con sus estudios en casa hasta que volvió al colegio en 1903, graduándose en el instituto de Ayer en 1906.
En septiembre de 1906, a la edad de once años, ingresó en la Universidad Tufts para estudiar matemáticas. Se licenció en 1909 y entró en Harvard. En Harvard estudió zoología, pero en 1910 se trasladó a la Universidad de Cornell para empezar estudios superiores en filosofía. Volvió a Harvard al año siguiente para continuar sus estudios de filosofía. Wiener obtuvo el doctorado por Harvard en 1912 con una tesis que versaba sobre lógica matemática.
21- API
Una API (del inglés Application Programming Interface - Interfaz de Programación de Aplicaciones) es el conjunto de funciones y procedimientos (o métodos si se refiere a programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
22- Aristóteles
Aristóteles (en griego clásico Ἀριστοτέλης Aristotélēs; Estagira, Macedonia 384 a. C. – Calcis Eubea, Grecia 322 a. C.) es uno de los más grandes filósofos de la antigüedad y acaso de la historia de la filosofía occidental. Fue precursor de la anatomía y la biología y un creador de la taxonomía.

23- Lógica
La Lógica es un término que deriva del griego “Λογικός” (logikê-logikós), que a su vez es “λόγος” (logos), que significa razón.1
Se considera que Aristóteles fue el que fundó la Lógica como Propedéutica, herramienta básica para todas las Ciencias.2
La Lógica es una ciencia formal. Esto quiere decir que no tiene contenido, porque estudia las formas válidas de inferencia.3
La lógica tradicional se basaba en el silogismo como razonamiento basado en el juicio categórico aristotélico. Hoy día la lógica utiliza como unidad básica la proposición y las reglas de inferencia en la argumentación discursiva.4
24- Lógica de Aristóteles.
Como su nombre lo indica, el padre de la lógica aristotélica es el filosofo griego Aristóteles; primer pensador en formalizar el sistema lógico de tan acertada manera que sus propuestas han trascendido hasta nuestros días. Aristóteles planteó sus ideas en varias obras, para difundir su conocimiento sobre las leyes del razonamiento, argumentando que estas eran vitales para adentrarse en el mundo de la filosofía.
La lógica aristotélica supone que la mente reproduce sólo la realidad, la existencia de las cosas tal y como son, por ello es una ciencia objetiva que se dedica a estudiar conceptos, desglosándolos en predicables y predicamentos. La lógica analiza juicios y formas de razonamiento y su manera de expresar resultados es el silogismo o razonamiento deductivo categórico. Concepto: Este representa un objeto en la mente del hombre de manera que no pueda ser afectado por los sentidos, la memoria o la mente. Un concepto tiene comprensión (características del objeto) y extensión (hace alusión la cantidad de sujetos a los que el concepto puede aplicarse). Cucharón (siglo III d.c.), en los que se clasifican los conceptos estableciendo entre ellos una relación de jerarquía y subordinación, de mayor a menor extensión.
La que es conocida como lógica clásica (o tradicional) fue enunciada primeramente por Aristóteles, quien elaboró leyes para un correcto razonamiento silogístico. Un silogismo es una proposición hecha de una de estas cuatro afirmaciones posibles: “Todo A es B” (universal afirmativo), “Nada de A es B” (universal negativo), “Algo de A es B” (particular afirmativo) o “Algo de A no es B” (particular negativo). Las letras sustituyen a palabras comunes como “perro”, “animal de cuatro patas” o ‘cosa viviente’, llamadas “términos” del silogismo. Un silogismo bien formulado consta de dos premisas y una conclusión, debiendo tener cada premisa un término en común con la conclusión y un segundo término relacionado con la otra premisa. En lógica clásica se formulan reglas por las que todos los silogismos bien construidos se identifican como formas válidas o no válidas de argumentación.
25- Lógica Difusa
La lógica borrosa o difusa se basa en lo relativo de lo observado. Este tipo de lógica toma dos valores aleatorios, pero contextualizados y referidos entre sí. Así, por ejemplo, una persona que mida 2 metros es claramente una persona alta, si previamente se ha tomado el valor de persona baja y se ha establecido en 1 metro. Ambos valores están contextualizados a personas y referidos a una medida métrica lineal.
26- OLAP
OLAP es el acrónimo en inglés de procesamiento analítico en línea (On-Line Analytical Processing). Es una solución utilizada en el campo de la llamada Inteligencia empresarial (o Business Intelligence) cuyo objetivo es agilizar la consulta de grandes cantidades de datos. Para ello utiliza estructuras multidimensionales (o Cubos OLAP) que contienen datos resumidos de grandes Bases de Datos o Sistemas Transaccionales (OLTP). Se usa en informes de negocios de ventas, marketing, informes de dirección, minería de datos y áreas similares.
La razón de usar OLAP para las consultas es la velocidad de respuesta. Una base de datos relacional almacena entidades en tablas discretas si han sido normalizadas. Esta estructura es buena en un sistema OLTP pero para las complejas consultas multitabla es relativamente lenta. Un modelo mejor para búsquedas, aunque peor desde el punto de vista operativo, es una base de datos multidimensional.
La principal característica que potencia a OLAP, es que es lo más rápido a la hora de ejecutar sentencias SQL de tipo SELECT, en contraposición con OLTP que es la mejor opción para operaciones de tipo INSERT, UPDATE Y DELETE.
27- Trivial
En matemática, el término trivial se usa frecuentemente para los objetos (por ejemplo, cuerpos o espacios topológicos) que tienen una estructura muy simple. Para los no matemáticos, son a veces más difíciles de visualizar o entender que otros objetos más complicados.
Algunos ejemplos incluyen:
conjunto vacío - el conjunto que no contiene elementos
grupo trivial - el grupo matemático que contiene solo el elemento identidad
También, trivial se refiere a soluciones (a una ecuación) que tienen una estructura muy simple, pero que por completitud no pueden ser ignoradas. Estas soluciones se denominan soluciones triviales. Por ejemplo, considérese la ecuación diferencial.


28- Digital
Se dice que una señal es digital cuando las magnitudes de la misma se representan a través de valores discretos en lugar de variables continuas. Por ejemplo, el interruptor de la luz sólo puede tomar dos valores o estados: abierto o cerrado, o la misma lámpara: encendida o apagada (véase circuito de conmutación).
Los sistemas digitales, como por ejemplo el ordenador, usan lógica de dos estados representados por dos niveles de tensión eléctrica, uno alto, H y otro bajo, L (de High y Low, respectivamente, en inglés). Por abstracción, dichos estados se sustituyen por ceros y unos, lo que facilita la aplicación de la lógica y la aritmética binaria. Si el nivel alto se representa por 1 y el bajo por 0, se habla de lógica positiva y en caso contrario de lógica negativa.
Cabe mencionar que además de los niveles, en una señal digital están las transiciones de alto a bajo o de bajo a alto, denominadas flanco de subida o de bajada, respectivamente. En la siguiente figura se muestra una señal digital donde se identifican los niveles y los flancos.

Señal digital: 1) Nivel bajo, 2) Nivel alto, 3) Flanco de subida y 4) Flanco de bajada.
Es conveniente aclarar que, a pesar de que en los ejemplos señalados el término digital se ha relacionado siempre con dispositivos binarios, no significa que digital y binario sean términos intercambiables. Por ejemplo, si nos fijamos en el código Morse, veremos que en él se utilizan, para el envío de mensajes por telégrafo eléctrico, cinco estados digitales que son:
punto, raya, espacio corto (entre letras), espacio medio (entre palabras) y espacio largo (entre frases)
Referido a un aparato o instrumento de medida, decimos que es digital cuando el resultado de la medida se representa en un visualizador mediante números (dígitos) en lugar de hacerlo mediante la posición de una aguja, o cualquier otro indicador, en una escala
29- Análogo
Se refiere a las magnitudes o valores que varían con el tiempo en forma continua (distancia, temperatura, velocidad, voltaje, frecuencia, amplitud, etc.) y pueden representarse en forma de ondas.
Las computadoras emplean lo digital y, por lo tanto, si entra información analógica, se debe convertir; este es el caso de la conexión a Internet por Dial up, donde un módem convierte la señal analógica (el sonido) en digital.
30- Neurona.
La neurona es uno de los tipos de las células nerviosas que se encuentran por todo el cuerpo; son el elemento fundamental de la estructura del sistema nervioso. Son células excitables especializadas en la recepción de estímulos y conducción del impulso nervioso. Una neurona está formada por un cuerpo celular y diferentes prolongaciones. Está encargada principalmente de trasmitir el flujo nervioso. Un cerebro humano contiene aproximadamente 100.000 millones1 de neuronas (1011). Las neuronas se hallan en el encéfalo, la médula espinal y los ganglios nerviosos; forman una red de contacto en todo el cuerpo. Se unen entre ellas a través de una unión discontinua llamada sinapsis. Si dicha sinapsis ocurre por contacto físico se trata de una sinapsis eléctrica, y si es a través de una hendidura, se le llama sinapsis química.
31- Claude Elwood Slawnon
Claude Elwood Shannon (30 de abril de 1916, Michigan - 24 de febrero de 2001), ingeniero eléctrico y matemático, recordado como “el padre de la teoría de la información”.
32- Algebra Booleana.
Álgebra de Boole (también llamada Retículas booleanas) en informática y matemática, son estructuras algebraicas que rigorizan las operaciones lógicas Y, O y NO, así como el conjunto de operaciones unión, intersección y complemento.
Se denomina así en honor a George Boole, matemático inglés que fue el primero en definirla como parte de un sistema lógico a mediados del siglo XIX. Específicamente, el álgebra de Boole fue un intento de utilizar las técnicas algebraicas para tratar expresiones de la lógica proposicional. En la actualidad, el álgebra de Boole se aplica de forma generalizada en el ámbito del diseño electrónico. Claude Shannon fue el primero en aplicarla en el diseño de circuitos de conmutación eléctrica biestables, en 1938.
33- Lenguaje de Alto Nivel
Los lenguajes de programación de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas. En los primeros lenguajes de alto nivel la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales. Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de muy alto nivel se crearon para que el usuario común pudiese solucionar tal problema de procesamiento de datos de una manera más fácil y rápida.
La programación en un lenguaje de bajo nivel como el lenguaje de la máquina o el lenguaje simbólico tiene ciertas ventajas:
Mayor adaptación al equipo.
Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
Pero también tiene importantes inconvenientes:
Imposibilidad de escribir código independiente de la máquina.
Mayor dificultad en la programación y en la comprensión de los programas.
Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman “de tercera generación” o “de alto nivel”, en contraposición a los “de bajo nivel” o “de nivel próximo a la máquina”.
34- Lenguaje de Bajo Nivel.
Un lenguaje de programación de bajo nivel es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.
La palabra “bajo” no implica que el lenguaje sea inferior a un lenguaje de alto nivel; se refiere a la reducida abstracción entre el lenguaje y el hardware.
35- Ciencia Real
Una prueba segura de cualquier afirmación verdaderamente científica es su capacidad de predecir el futuro: de decir qué sucederá bajo circunstancias dadas. Cuando se la somete a medidas válidas y objetivas de predicción, la pseudociencia no obtiene mejores resultados que la mera adivinación, en contraste con la ciencia real. Piense en la historia tal como la predijo la astrología, comparada con la gravedad y la certeza experimental y verificable de la ley del cuadrado inverso.
36- Ciencia Fisión
La ciencia ficción (también fue conocida en su origen como literatura de anticipación) es la denominación popular con que se conoce a uno de los géneros derivados de la literatura de ficción (junto con la literatura fantástica y la narrativa de terror). Nacida como subgénero literario distinguido en la década de 1920 (aunque hay obras reconocibles muy anteriores) y exportada posteriormente a otros medios, el más notable de ellos el cinematográfico, gozó de un gran auge en la segunda mitad del siglo XX debido al interés popular acerca del futuro que despertó el espectacular avance tanto científico como tecnológico alcanzado durante esos años.
Entre los estudiosos del género no se ha podido llegar a un consenso amplio sobre una definición formal, siendo éste un tema de gran controversia. En general se considera ciencia ficción a los cuentos o historias que versan sobre el impacto que producen los avances científicos, tecnológicos, sociales o culturales, presentes o futuros, sobre la sociedad o los individuos.
37- Inteligencia Artificial
Se denomina inteligencia artificial a la rama de la informática que desarrolla procesos que imitan a la inteligencia de los seres vivos. La principal aplicación de esta ciencia es la creación de máquinas para la automatización de tareas que requieran un comportamiento inteligente.
Algunos ejemplos se encuentran en el área de control de sistemas, planificación automática, la habilidad de responder a diagnósticos y a consultas de los consumidores, reconocimiento de escritura, reconocimiento del habla y reconocimiento de patrones. Los sistemas de IA actualmente son parte de la rutina en campos como economía, medicina, ingeniería y la milicia, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrez de computador y otros videojuegos.
El matemático sudafricano, Seymour Papert, es considerado pionero en esta ciencia
38- Programas Tradicionales
Los programas tradicionales se denominan a todas aquellas aplicaciones que los usuarios normales utilizan, tales como paquete para oficinas, email, en general todo lo que se denomina programas de utilería.
39- Generación de los Programas.
Los equipos (el hardware) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la cuarta (circuitos integrados a gran escala) es más discutible.
Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada, y son las siguientes:
Primera generación Los primeros ordenadores se programaban directamente en código binario, que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de máquina.

Segunda generación Los lenguajes simbólicos, asimismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles.

Tercera generación Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas.

Cuarta generación Se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.
Quinta generación Se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.
40- Que es Case.
Las herramientas CASE (Computer Aided Software Engineering, Ingeniería de Software Asistida por Ordenador) son diversas aplicaciones informáticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el coste de las mismas en términos de tiempo y de dinero. Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, calculo de costes, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras.
41- Programas Compactadores.
Son programas que permiten comprimir o compactar un archivo y/o descomprimirlo o descompactarlo . El objeto de estos programas es reducir el tamaño de los archivos que se transmiten o se transportan en disquetes, al reducir su tamaño se reduce también el tiempo de conexión. Este software se basa en el algoritmo de compresión ZIP, que ya se usaba antes del windows con programas como PKZIP y PKUNZIP.

Muchos archivos en la Web están Compactados. Y es Fundamental para el acarreo de grandes volúmenes de información que pueden viajar “zipeados” en lugar de ocupar demasiado tamaño en su formato original. Entre las ventajas que posee esta la de ser posible su uso como herramienta para ejecutar y realizar BACKUPS de archivos y productos, la opción de utilizar claves de seguridad para que solo quienes estén autorizados puedan descompactar y acceder a los datos comprimidos.
42- Lenguaje SQL
El Lenguaje de consulta estructurado (SQL [/esekuele/ en español, /ɛskjuːˈɛl / en inglés] Structured Query Language ) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo lanzar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre la misma. Es un lenguaje de cuarta generación (4GL).

Interface
Como principio, el Diccionario de la Real Academia de la Lengua Española define interfaz como una palabra derivada del término inglés “interface”(superficie de contacto) y la define de la siguiente manera: 1. f. Inform. Conexión física y funcional entre dos aparatos o sistemas independientes.
Por confusión con el término anglosajón “interfazear”, “interfasear”, “interfacear” suele utilizarse en muchos manuales de motherboard, pero no debe tomarse esto como correcto ya que existe una palabra muy simple de referencia de este artículo.
43- ABI
En los programas informáticos, un interfaz de aplicación binaria (ABI) describe el bajo nivel de interfaz entre un programa de aplicación y el sistema operativo, o la interfaz entre una aplicación y sus bibliotecas, o que entre los componentes de una aplicación. Un ABI es similar a una interfaz de programación de aplicaciones (API), sin embargo, este último define una interfaz de código fuente. [1] En pocas palabras, abis permitir la compatibilidad binaria, mientras que las API de permitir la compatibilidad de código fuente.
44- Loger Susana Catherine

45- OLP
OLP (Open License Program) lo cual es un programa de licenciamiento por volumen en el cual una empresa puede adquirir sus licencias con un solo contrato, entre estos programas esta el Open Business y Open Value.
46- OLTP
OLTP (Online Transaction Processing) es un tipo de procesamiento de transacciones a través de una red de computadoras. Algunos tipos de aplicaciones OLTP pueden ser banca electrónica, procesamiento de pedidos o comercio electrónico. Es un programa que facilita y administra aplicaciones transaccionales, usualmente para data entry y transacciones en empresas, incluyendo bancos, aerolíneas, etc.
47- Data Ware House
Es un repositorio de datos de muy fácil acceso, alimentado de numerosas fuentes, transformadas en grupos de información sobre temas específicos de negocios, para permitir nuevas consultas, análisis, reportador y decisiones.
48- Data Monts
Los Data Marts son las bases de datos locales o departamentales basadas en subconjuntos de la información contenida en el Data Warehouse central o maestro.
49- Lisp
Lisp es el segundo lenguaje de programación, después de Fortran, de alto nivel. Lisp es de tipo declarativo y fue creado en 1958 por John McCarthy y sus colaboradores en el MIT.

La Quinta Diciplina

¿Qué es el Pensamiento Sistémico?
El pensamiento sistémico es la actitud del ser humano, que se basa en la percepción del mundo real en términos de totalidades para su análisis, comprensión y accionar, a diferencia del planteamiento del método científico, que sólo percibe partes de éste y de manera inconexa.
¿Qué nos enseña el pensamiento sistémico?
El pensamiento sistémico enseña que hay dos tipos de complejidad: La “complejidad de detalles”, con muchas variables, y la “complejidad dinámica“, donde está la causa y el efecto no están próximo en el espacio y el tiempo, las intervenciones obvias no producen los resultados esperados.
Los sistemas humanos son infinitamente complejos. No podemos comprenderlos del todo que es imposible la comprensiones del todo. No obstante, podemos aguzar de nuestros dominios de la complejidad.
Existen pruebas abrumadoras de que los seres humanos tienen “limitaciones cognitivas”. Las ciencias cognitivas demuestran que solo podemos abordar un pequeño número de variables por vez. Nuestro circuito de procesamiento de información consciente se sobrecarga fácilmente ante la complejidad de detalles, obligándonos a utilizar una heurística simplificadora para comprender las cosas.
¿Cómo explicarnos el acto de conducir un automóvil a 90 km/con tráfico pesado, o de jugar tenis, o de ejecutar una sonata de Mozart?
¡Lo importante es reconocer que tenemos una enorme capacidad para afrontar la complejidad de detalles en nivel sub-consiente, aunque no en el nivel consiente!
“Programando el
Sub-Consiente”
Las culturas, las familia y en entorno donde te desarrollas programa tu sub-Consiente.
El teórico organizacional Charles Kiefer señala: “Cuando este interruptor se activa subconscientemente, uno queda transformado en un pensador sistémico. La realidad se ve automáticamente en forma de sistémica además de lineal. El subconsciente revela como soluciones cierta propuesta que es imposible de ver linealmente. Las soluciones que estaban al margen de nuestro “Conjunto Factible” forman parte de nuestro conjunto factible. Los “Sistémico” se transforma en un modo de pensar (Casi un modo de ser) y no solo una metodología para resolver problemas”.
El subconsciente no está limitado por la cantidad de procesos de realimentación que puede examinar. Así como aborda muchos más detalles que nuestra mente consiente, también puede abordar una complejidad dinámica mucho mas intrigada. Significativamente, al asimilar cientos de relaciones de realimentación en forma simultánea, integran la complejidad de detalles y dinámica.
Por eso la práctica es tan importante. La práctica es esencial en cualquier interjuego significativo entre consciente y subconsciente.
El aprendizaje conceptual no basta, así como no bastaría aprender una lengua extranjera o para aprender a andar en bicicleta. En este contexto, las herramientas como los micromundos cobran peso como medio culturales y como ámbitos para practicar pensamientos y actos sistémicos.
Las organizaciones inteligentes pueden construir una forma de ejercer influencia sobre el complejo sistema de las tareas humanas.
La construcción de organizaciones inteligentes supone formar personas que aprendan a ver como pesadores sistémicos, que desarrollen su propio dominio personal y que aprendan a revelar y reestructurar modelos mentales en colaboración. Dada la influencia de las organizaciones en el mundo actual, quizás esta constituya unas de las medidas más contundentes para ayudarnos a “reescribir el código” alterando no solo lo que pensamos sino nuestro modo de pensar. En este sentido las organizaciones inteligentes pueden ser una herramienta no solo para la evolución de las organizaciones, si no para la evolución de la inteligencia.
Preguntas:

¿Qué demuestran las ciencias cognitivas sobre las limitaciones cognitivas de los seres humanos?

Las ciencias cognitivas demuestran que solo podemos abordar un pequeño número de variables por vez. Nuestro circuito de procesamiento de información consiente se sobrecarga fácilmente ante la complejidad de detalles, obligándonos a utilizar una heurística simplificadora para comprender las cosas.

¿Cómo explicarnos el acto de conducir un automóvil a 90 km/h en medio de un tráfico pesado, o jugar tenis, o ejecutar una sonata de Mozart?
Estas tareas de inmensa complejidad involucran cientos de variables y rápidos cambios que exigen reconocimiento y respuesta inmediatos, mas aun cuando dominamos estas tareas las realizamos con escasa o ninguna atención consiente. Esto se debe que estas tareas después de ser ejecutadas varias veces nos resulta fácil realizarlas porque lo hacemos subconscientemente.

Normas ISO

La 'Norma ISO 9001' ha sido elaborada por el Comité Técnico ISO/TC176 de ISO Organización Internacional para la Estandarización, y especifica los requisitos para un sistema de gestión de la calidad que pueden utilizarse para su aplicación interna por las organizaciones, para certificación o con fines contractuales.
La versión actual de ISO 9001 (la tercera) data de diciembre de 2000, y por ello se expresa como ISO 9001:2000. Se espera una próxima versión para octubre de 2008.
Versiones ISO 9001 hasta la fecha:
Tercera versión: la actual ISO 9001:00 (15/12/2000)
Segunda versión: ISO 90011:94 - ISO 9002:94 - ISO 9003:94 (01/07/1994)
Primera versión: ISO 9001:87 - ISO 9002:87 - ISO 9003:87 (15/03/1987)

En la primera y segunda versión de ISO 9001, la Norma se descomponía en 3 normas: ISO 9001, ISO 9002, e ISO 9003.
ISO 9001 --> organizaciones con diseño de producto
ISO 9002 --> organizaciones sin diseño de producto pero con producción/fabricación.
ISO 9003 --> organziaciones sin diseño de producto ni producción/fabricación (comerciales).
El contenido de las 3 normas era el mismo, con la excepción de que en cada caso se excluían los requisitos de aquello que no aplicaba. Esta mecánica se modificó en la tercera versión, unificando los 3 documentos en un único estandard, sobre el cual se realizan posteriormente las exclusiones.
La cuarta versión de la norma, hasta antes de la publicación del borrador de norma (FDIS), presenta un total de 58 modificaciones que se reparten de la siguiente forma:
66% corresponden al capítulo 7
14% corresponden al capítulo 8
8% corresponden al capítulo 4
8% corresponden al capítulo 6
4% corresponden a los capítulos 0 y 1

ISO 9001 forma parte de la Familia de Normas ISO_9000:
Familia de normas ISO 9000
ISO 9001 : Contiene la especificación del modelo de gestión. Contiene "los requisitos" del Modelo.La norma ISO 9001:2000 contiene los requisitos que han de cumplir los sistemas de la calidad a efectos de confianza interna, contractuales o de certificación.
ISO 9000 : Son los fundamentos y el vocabulario empleado en la norma ISO 9001:2000
ISO 9004 : Es una directriz para la mejora del desempeño del sistema de gestión de calidad
ISO 19011: Especifica los requisitos para la realización de las auditorías de un sistema de gestión ISO 9001, para el sistema de gestión de salud y seguridad ocupacional especificado en OHSAS 18000 (proximamente ISO 18000) y también para el sistema de gestión medioambiental especificado en ISO 14001.

De todo este conjunto de Normas, es ISO 9001 la que contiene el modelo de gestión, y la única certificable.

Terminos Informaticos

Programa.

Un programa, o también llamado programa informático, programa de computación o programa de ordenador, es simplemente un conjunto de instrucciones para una computadora. Las computadoras necesitan de los programas para funcionar, y un programa no hace nada a menos que sus instrucciones sean ejecutadas por el procesador.Un programa se puede referir tanto a un programa ejecutable como a su código fuente, el cual es transformado en un ejecutable cuando es compilado.

Generalmente el código fuente de los programas es escrito por profesionales conocidos como programadores. El código fuente es escrito en un lenguaje de programación que sigue uno de los siguientes dos paradigmas: imperativo o declarativo. El código fuente puede ser convertido en una imagen ejecutable por un compilador. Cuando se pide que el programa sea ejecutado, el procesador ejecuta el programa instrucción por instrucción, hasta que el programa termina.

De acuerdo a sus funciones, los programas pueden ser clasificados en software de sistema y software de aplicación. Pueden ejecutarse muchos programas de forma simultánea en un mismo ordenador, a lo cual se le llama multitarea.


Algoritmo.

En matemáticas, ciencias de la computación, y disciplinas relacionadas, un algoritmo (del latín, dixit algorithmus y éste a su vez del matemático persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema. Dado un estado inicial y una entrada, a través de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solución. Los algoritmos son objeto de estudio de la algoritmia, y su definición queda formalizada por el modelo computacional de la Máquina de Turing.

Su importancia radica en mostrar la manera de llevar a cabo procesos y resolver mecánicamente problemas matemáticos o de otro tipo. Al igual que las funciones matemáticas, los algoritmos reciben una entrada y la transforman en una salida, comportándose como una caja negra. Sin embargo, para que un algoritmo pueda ser considerado como tal, debe ser determinista, tener un número finito de instrucciones y debe acabar. Por determinista se entiende que, si se sigue el mismo proceso más de una vez, se llega siempre al mismo resultado.

El concepto de algoritmo, aunque similar y obviamente relacionado, no debe confundirse con el concepto de programa. Mientras el primero es la especificación de un conjunto de pasos (operaciones, instrucciones, órdenes,...) orientados a la resolución de un problema, el segundo es ese conjunto de operaciones especificadas en un determinado lenguaje de programación y para un computador concreto, susceptible de ser ejecutado (o compilado o interpretado). Un algoritmo, estrictamente hablando, no puede ejecutarse hasta que se implementa, ya sea en un lenguaje de programación, en un circuito eléctrico, en un aparato mecánico, usando papel y lápiz, o en algún otro modelo de computación.

En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemático, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un Sistema lineal de ecuaciones.

Cuando escribimos un programa de computadora, generalmente estamos llevando a cabo un método que se ha inventado para resolver algún problema previamente. Este método es a menudo independiente de la computadora y es probable que sea igualmente apropiado para muchas tipos de computadora y muchos lenguajes de computadora. Es el método, en el programa de computación, el que nosotros debemos estudiar para aprender cómo el problema está atacándose. El término algoritmo se usa en la informática para describir un método problema-solución conveniente para la aplicación en un programa de computadora. Los algoritmos son los materiales de informática: Son los objetos centrales de estudio para muchos, si no la mayoría, de las áreas de campo.


Sentencia


En programación, una sentencia es una línea de código en algún lenguaje de programación. Un programa está constituido por múltiples sentencias de programación, lo que es llamado código fuente.

Un algoritmo de programación está constituido por una o más sentencias de programación.

Las sentencias de programación suelen tener algún caracter que determina su final, por lo general es un punto y coma (;) o un punto final (.), y algunas están separadas simplemente por enters (retorno de carro). Esto depende del lenguaje de programación que se esté empleando. Existen lenguajes que no necesitan un caracter que determine el final de una sentencia.

En algunos lenguajes de programación las sentencias están numeradas, de esta manera, si existe algún error de sintaxis (o alguna advertencia), el compilador entrega un mensaje con el número de sentencia donde fue encontrado.

Una sentencia de programación tiene una sintaxis y una semántica. La sintaxis está determinada por el lenguaje de programación y, si existe algún error, el compilador suele detectarlo. También una sentencia tiene una semántica, si existe algún error de semántica, en general, no puede ser descubierto por el compilador. Esto es porque la semántica está asociada al "significado" o "función" de esa sentencia (o un grupo de sentencias), pero el compilador no puede determinar qué quiere hacer el programador.

Un snippet es un segmento de una o más sentencias de programación, y permite reutilizar códigos, hacer códigos más eficientes o facilitar el trabajo al programador.