jueves, 6 de febrero de 2014

Auditoria de sistema

COBIT: (Objetivos de control para la información y tecnologías relacionadas) es una metodología publicada en 1996 por el Instituto de Control de TI y la Isaca(Asociación de Auditoría y Control de Sistemas de Información) que se usa para evaluar el departamento de informática de una compañía; en Francia está representada por la AFAI (Asociación Francesa de Auditoría y Consejo de TI).
Este enfoque se basa en un índice de referencia de procesos, indicadores de objetivos clave (KGl) e indicadores de rendimiento clave (KPI) que se usan para controlar los procesos para recoger datos que la compañía puede usar para alcanzar sus objetivos.
El enfoque COBIT propone 34 procesos organizados en 4 áreas funcionales más grandes que abarcan 318 objetivos:
·         Entrega y asistencia técnica
·         Control
·         Planeamiento y organización
·         Aprendizaje e implementación
Es una guía de mejores prácticas presentado como framework, dirigida a la gestión de tecnología de la información (TI). Mantenido por ISACA (en inglés: Information Systems Audit and Control Association) y el IT Governance Institute (ITGI, en inglés: IT Governance Institute), tiene una serie de recursos que pueden servir de modelo de referencia para la gestión de TI, incluyendo un resumen ejecutivo, un framework, objetivos de control, mapas de auditoría, herramientas para su implementación y principalmente, una guía de técnicas de gestión.
Ediciones: La primera edición fue publicada en 1996; la segunda edición en 1998; la tercera edición en 2000 (la edición on-line estuvo disponible en 2003); y la cuarta edición en diciembre de 2005, y la versión 4.1 está disponible desde mayo de 2007. 
COBIT 5: Isaca lanzó el 10 de abril del 2012 la nueva edición de este marco de referencia. Es la última edición del framework mundialmente aceptado, el cual proporciona una visión empresarial del Gobierno de TI que tiene a la tecnología y a la información como protagonistas en la creación de valor para las empresas. Se basa en COBIT 4.1, y a su vez lo amplía mediante la integración de otros importantes marcos y normas como Val IT y Risk IT, Information Technology Infrastructure Library (ITIL ®) y las normas ISO relacionadas.
COBIT 5 ayuda a empresas de todos los tamaños a:
  • Optimizar los servicios el coste de las TI y la tecnología
  • Apoyar el cumplimiento de las leyes, reglamentos, acuerdos contractuales y las políticas
  • Gestión de nuevas tecnologías de información
En el mes de junio del 2012, ISACA lanzó "COBIT 5 para la seguridad de la información", actualizando la última versión de su marco a fin de proporcionar una guía práctica en la seguridad de la empresa, en todos sus niveles prácticos.
Características de COBIT: Llegan a ser grandes ventajas. COBIT se aplica a los sistemas de información de toda la empresa, incluyendo las mini computadoras, computadoras personales y ambientes distribuidas. Está basado en la filosofía de que los recursos de TI necesitan ser administrados por un conjunto de procesos naturalmente agrupados para proveer la información pertinente y confiable que requiere una organización para lograr sus objetivos.
  • Ha sido diseñado como un estándar habitualmente aceptado y ajustable a las buenas prácticas de seguridad y control en TIC.
  • Suministra herramientas al responsable de los procesos que facilitan el cumplimiento de esta tarea.
  • Tiene una premisa práctica y simple: con el fin de facilitar la información que la organización requiere para alcanzar sus objetivos, señala que los recursos de TIC deben ser administrados por un conjunto de procesos de TIC agrupados en forma natural.
  • Es la herramienta innovadora para el manejo de TIC que ayuda a la gerencia a comprender y administrar los riesgos asociados con TIC
  • Ayuda a proteger las brechas existentes entre necesidades de control, riesgos de negocio y aspectos técnicos. Proporciona “prácticas sanas” por medio de un Marco Referencial de dominios y procesos; presenta actividades en una estructura manejable y lógica.
  • Las prácticas sanas de COBIT representan el consenso de los expertos.
  • Está desarrollado no solo para ser utilizado por usuarios y auditores, sino que en forma más importante, está diseñado para ser utilizado como un Check List detallado para los responsables de cada proceso.

ITIL: La Biblioteca de Infraestructura de Tecnologías de Información, frecuentemente abreviada ITIL (del inglés Information Technology Infrastructure Library), es un conjunto de conceptos y prácticas para la gestión de servicios de tecnologías de la información, el desarrollo de tecnologías de la información y las operaciones relacionadas con la misma en general. ITIL da descripciones detalladas de un extenso conjunto de procedimientos de gestión ideados para ayudar a las organizaciones a lograr calidad y eficiencia en las operaciones de TI. Estos procedimientos son independientes del proveedor y han sido desarrollados para servir como guía que abarque toda infraestructura, desarrollo y operaciones de TI.
La biblioteca de infraestructura de TI (ITIL) toma este nombre por tener su origen en un conjunto de libros, cada uno dedicado a una práctica específica dentro de la gestión de TI. Tras la publicación inicial de estos libros, su número creció rápidamente (dentro la versión 1) hasta unos 30 libros. Para hacer a ITIL más accesible (y menos costosa) a aquellos que deseen explorarla, uno de los objetivos del proyecto de actualización ITIL versión 2 fue agrupar los libros según unos conjuntos lógicos destinados a tratar los procesos de administración que cada uno cubre. De esta forma, diversos aspectos de los sistemas de TIC, de las aplicaciones y del servicio se presentan en conjuntos temáticos. Actualmente existe la nueva versión ITIL v3 que fue publicada en mayo de 2007.
Aunque el tema de Gestión de Servicios (Soporte de Servicio y Provisión de Servicio) es el más ampliamente difundido e implementado, el conjunto de mejores prácticas ITIL provee un conjunto completo de prácticas que abarca no sólo los procesos y requerimientos técnicos y operacionales, sino que se relaciona con la gestión estratégica, la gestión de operaciones y la gestión financiera de una organización moderna.
Objetivos: ITIL como metodología propone el establecimiento de estándares que nos ayuden en el control, operación y administración de los recursos (ya sean propios o de los clientes). Plantea hacer una revisión y reestructuración de los procesos existentes en caso de que estos lo necesiten (si el nivel de eficiencia es bajo o que haya una forma mas eficiente de hacer las cosas), lo que nos lleva a una mejora continua.
Otra de las cosas que propone es que para cada actividad que se realice se debe de hacer la documentación pertinente, ya que esta puede ser de gran utilidad para otros miembros del área, además de que quedan asentados todos los movimientos realizados, permitiendo que toda la gente esté al tanto de los cambios y no se tome a nadie por sorpresa.
En la documentación se pone la fecha en la que se hace el cambio, una breve descripción de los cambios que se hicieron, quien fue la persona que hizo el cambio, así como quien es el que autorizo el cambio, para que así se lleve todo un seguimiento de lo que pasa en el entorno. Esto es más que nada como método con el que se puede establecer cierto control en el sistema de cambios, y así siempre va a haber un responsable y se van a decir los procedimientos y cambios efectuados.
Características: Las siguientes son algunas de las características de ITIL:
  • Es un framework de procesos de IT no propietario.
  • Es independiente de los proveedores.
  • Es independiente de la tecnología.
  • Posee gran cantidad de documentación.
  • Optimizar costos y rendimiento en los procesos.
  • Está basado en "Best Practices".
  • Provee:
§  Una terminología estándar.
§  Las interdependencias entre los procesos.
§  Los lineamientos para la implementación.
§  Los lineamientos para la definición de roles y responsabilidades de los procesos
§  Las bases para comparar la situación de la empresa frente a las “mejores prácticas”.

Sistema Operativo






Un sistema operativo es el encargado de brindar al usuario una forma amigable y sencilla de operar, interpretar, codificar y emitir las ordenes al procesador central para que este realice las tareas necesarias y especificas para completar una orden.

El sistema operativo, es el instrumento indispensable para hacer de la computadora un objeto útil. Bajo este nombre se agrupan todos aquellos programas que permiten a los usuarios la utilización de este enredo de cables y circuitos, que de otra manera serian difíciles de controlar. Un sistema operativo se define como un conjunto de procedimientos manuales y automáticos, que permiten a un grupo de usuarios compartir una instalación de computadora eficazmente.
Tiene dos funciones primordiales, que son:

  • Gestionar el hardware.- Se refiere al hecho de administrar de una forma más eficiente los recursos de la máquina.
  • Facilitar el trabajo al usuario.-Permite una comunicación con los dispositivos de la máquina.

El Sistema Operativo se encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un pedazo de código que se encuentra en el procesador, el cual carga el BIOS, y este a su vez carga el Sistema Operativo que carga todos los programas de aplicación y software variado.

Características de los Sistemas Operativos: En general, se puede decir que un Sistema Operativo tiene las siguientes características:
  • Conveniencia. Un Sistema Operativo hace más conveniente el uso de una computadora.
  • Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.
  • Habilidad para evolucionar. Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.
  • Encargado de administrar el hardware. El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.
  • Relacionar dispositivos (gestionar a través del kernel). El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.
  • Organizar datos para acceso rápido y seguro.
  • Manejar las comunicaciones en red. El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.
  • Procesamiento por bytes de flujo a través del bus de datos.
  • Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.
  • Técnicas de recuperación de errores.
  • Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario.
  • Generación de estadísticas.
  • Permite que se puedan compartir el hardware y los datos entre los usuarios.

Tipos de sistemas operativos: Un sistema Operativo (SO) es en sí mismo un programa de computadora. Sin embargo, es un programa muy especial, quizá el más complejo e importante en una computadora. El SO despierta a la computadora y hace que reconozca a la CPU, la memoria, el tecla do, el sistema de vídeo y las unidades de disco.
Además, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicación.
Los sistemas operativos más conocidos son los siguientes:
  • 1) DOS: El famoso DOS, que quiere decir Disk Operating System (sistema operativo de disco), es más conocido por los nombres de PC-DOS y MS-DOS. MS-DOS fue hecho por la compañía de software Microsoft y es en esencia el mismo SO que el PC-DOS. La razón de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel. Cuando Intel liberó el 80286, DOS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayoría del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacían. Aún con los nuevos sistemas operativos que han salido al mercado, todavía el DOS es un sólido contendiente en la guerra de los SO.
  • 2) Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera una interfaz gráfica amigable para el usuario, y como resultado obtuvo Windows. Este sistema muestra íconos en la pantalla que representan diferentes archivos o programas, a los cuales se puede accesar al darles doble click con el puntero del mouse. Todas las aplicaciones elaboradas para Windows se parecen, por lo que es muy fácil aprender a usar nuevo software una vez aprendido las bases.

  • 3) Windows 95: En 1995, Microsoft introdujo una nueva y mejorada versión del Windows 3.1. Las mejoras de este SO incluyen soporte multitareas y arquitectura de 32 bits, permitiendo así correr mejores aplicaciónes para mejorar la eficacia del trabajo.
  • 4) Windows NT: Esta versión de Windows se especializa en las redes y servidores. Con este SO se puede interactuar de forma eficaz entre dos o más computadoras.
  • 5) OS/2: Este SO fue hecho por IBM. Tiene soporte de 32 bits y su interfaz es muy buena. El problema que presenta este sistema operativo es que no se le ha dad el apoyo que se merece en cuanto a aplicaciones se refiere. Es decir, no se han creado muchas aplicaciones que aprovechen las características de el SO, ya que la mayoría del mercado de software ha sido monopolizado por Windows.
  • 6) Mac OS: Las computadoras Macintosh no serían tan populares como lo son si no tuvieran el Mac OS como sistema operativo de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de manera eficaz. Este fue creado por Apple Computer, Inc.
  • 7) UNIX: El sistema operativo UNIX fue creado por los laboratorios Bell de AT&T en 1969 y es ahora usado como una de las bases para la supercarretera de la información. Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Esto quiere decir que muchos usuarios puede estar usando una misma computadora por medio de terminales o usar muchas de ellas.

Procesador: Es el componente principal del ordenador y otros dispositivos programables, que interpreta las instrucciones contenidas en los programas y procesa los datos. Las CPU proporcionan la característica fundamental del ordenador digital (la programabilidad) y son uno de los componentes necesarios encontrados en los ordenadores de cualquier tiempo, junto con la memoria principal y los dispositivos de entrada/salida. Se conoce como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los años 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los tipos de CPU y hoy en día, el término "CPU" es aplicado usualmente a todos los microprocesadores. La expresión "unidad central de proceso" es, en términos generales, un dispositivo lógico que pueden ejecutar complejos programas de ordenador. Esta amplia definición puede fácilmente ser aplicada a muchos de los primeros ordenadores que existieron mucho antes que el término "CPU" estuviera en amplio uso. Sin embargo, el término en sí mismo y su acrónimo han estado en uso en la industria de la Informática por lo menos desde el principio de los años 60. La forma, el diseño y la implementación de las CPU ha cambiado drásticamente desde los primeros ejemplos, pero su operación fundamental ha permanecido bastante similar. Las primeras CPU fueron diseñados a la medida como parte de un ordenador más grande, generalmente un ordenador único en su especie. Sin embargo, este costoso método de diseñar las CPU a la medida, para una aplicación particular, ha desaparecido en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y estandarizados adaptados para uno o muchos propósitos. Esta tendencia de estandarización comenzó generalmente en la era de los transistores discretos, ordenadores centrales y microordenadores y fue acelerada rápidamente con la popularización del circuito integrado (IC), éste ha permitido que sean diseñados y fabricados CPU más complejas en espacios pequeños (en la orden de milímetros). Tanto la miniaturización como la estandarización de las CPU han aumentado la presencia de estos dispositivos digitales en la vida moderna mucho más allá de las aplicaciones limitadas de máquinas de computación dedicadas. Los microprocesadores modernos aparecen en todo, desde automóvilestelevisoresneverascalculadorasaviones, hasta teléfonos móviles o celularesjuguetes, entre otros. En la actualidad muchas personas llaman CPU al armazón del computador (torre), confundiendo de esta manera a los principiantes en el mundo de la computación.

Memoria: se refiere a parte de los componentes que integran una computadora. Son dispositivos que retienen datos informáticos durante algún intervalo de tiempo. Las memorias de computadora proporcionan una de las principales funciones de la computación moderna, la retención o almacenamiento de información. Es uno de los componentes fundamentales de todas las computadoras modernas que, acoplado a una unidad central de procesamiento (CPU por su sigla en inglés, central processing unit), implementa lo fundamental del modelo de computadora de Arquitectura de von Neumann, usado desde la década de 1940.
En la actualidad, memoria suele referirse a una forma de almacenamiento de estado sólido conocido como memoria RAM (memoria de acceso aleatorio, RAM por sus siglas en inglés random access memory) y otras veces se refiere a otras formas de almacenamiento rápido pero temporal. De forma similar, se refiere a formas de almacenamiento masivo como discos ópticos y tipos de almacenamiento magnético como discos duros y otros tipos de almacenamiento más lentos que las memorias RAM, pero de naturaleza más permanente. Estas distinciones contemporáneas son de ayuda porque son fundamentales para la arquitectura de computadores en general.
Además, se refleja una diferencia técnica importante y significativa entre memoria y dispositivos de almacenamiento masivo, que se ha ido diluyendo por el uso histórico de los términos "almacenamiento primario" (a veces "almacenamiento principal"), para memorias de acceso aleatorio, y "almacenamiento secundario" para dispositivos de almacenamiento masivo. 


Assembler:  se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por el microprocesador.
El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por su código de operación correspondiente en sistema binario para la plataforma que se eligió como destino en las opciones específicas del ensamblador.
Tipos de assembler: Podemos distinguir entre dos tipos de ensambladores:
  • Ensambladores básicos. Son de muy bajo nivel, y su tarea consiste básicamente en ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas tales como los modos.
  • Ensambladores modulares 32-bits o de alto nivel. Son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con programas con estructuras de 16 bits. Además de realizar la misma tarea que los anteriores, permitiendo también el uso de macros, permiten utilizar estructuras de programación más complejas propias de los lenguajes de alto nivel.
El lenguaje ensamblador: es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico de cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que idealmente son portátiles.
Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje ensamblador al código de máquina del computador objetivo. El ensamblador realiza una traducción más o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemónicas a las instrucciones y datos de máquina. Esto está en contraste con los lenguajes de alto nivel, en los cuales una sola declaración generalmente da lugar a muchas instrucciones de máquina.
Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de depuración. Particularmente, la mayoría de los ensambladores modernos incluyen una facilidad de macro (descrita más abajo), y son llamados macro ensambladores.
Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, alto rendimiento, o un uso de recursos controlado y reducido.
Muchos dispositivos programables (como los microcontroladores) aún cuentan con el ensamblador como la única manera de ser manipulados.
ComputadorEs una máquina capaz de procesar o tratar automáticamente a gran velocidad cálculos y complicados procesos que requieren una toma rápida de decisiones, mediante la aplicación sistemática de los criterios preestablecidos, siguiendo las instrucciones de un programa, la información que se le suministra, es procesada para así obtener un resultado deseado.
Las computadoras son verdaderamente importantes porque introduce un cambio cualitativo, tanto en la organización como en el desarrollo del trabajo y el ocio. Y no por lo que es, sino por lo que hace. Si hoy en día las computadoras realizan muchas cosas se puede decir que en un futuro realizara todo o casi todo. Ésta totalidad no es absoluta porque las aplicaciones informáticas no están necesariamente limitadas por la esencia material de la computadora, sino por el propio hombre.
En definitiva, la computadora es una maquina de propósitos o uso general. Los conceptos de estructura física y de programación constituyen el soporte material y lógico de esa realidad. Es una dualidad solidaria que también recibe los nombres de Hardware o soporte fisco y Software o soporte lógico.
El hardware (soporte físico): es un conjunto de elementos físicos (máquinas, circuitos), mientras que el software es el conjunto de programas, datos, diseño e instrucciones. Este es difícilmente modificado, mientras que el software (soporte lógico) puede ser alterado para la realización de cada tarea.
Los PC tienen 4 elementos básicos (hardware): el teclado, que es principalmente para facilitar la introducción de información al computador; la memoria, que es la que se encarga de almacenar la información y el programa; la unidad de proceso (CPU), es el que lleva a cabo las instrucciones contenidas en el programa; una impresora es una máquina que es capaz de sacar en papel todo la información que se le dio al computador que pueden ser alfanuméricos; una pantalla que es simplemente para ver los resultados del trabajo realizado, entre otros periféricos que no son mas que elementos que forman parte del sistema físico y que cumplen funciones adicionales, pero no necesarias.
Los programas o softwares son el conjunto de instrucciones que le dicen al computador qué debe hacer. Sin ellos, el computador es una máquina inútil. Hay diferentes clases de programas. Las dos principales categorías son los sistemas operativos y el software aplicativo o aplicaciones.
El sistema operativo: es el programa más importante, porque controla el funcionamiento del computador y el de los demás programas. Las aplicaciones son todos los programas que permiten al usuario realizar tareas: procesadores de palabras para escribir, juegos para divertirse, hojas de cálculo para trabajo financiero, browsers para navegar por la red.
El sistema operativo establece las reglas y parámetros para que el software aplicativo interactúe con el computador, ya que en lugar de hablar directamente con el hardware las aplicaciones hablan con el sistema operativo y este actúa como su intérprete.
El lenguaje de programación, es el software que se usa para escribir los programas en el lenguaje de la máquina, el único que el procesador del computador entiende, el código binario.


Intérprete: es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.
Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ejemplo. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables específicos a cada sistema.
Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son más flexibles como entornos de programación y depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la máquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual).
Para mejorar el desempeño, algunas implementaciones de programación de lenguajes de programación pueden interpretar o compilar el código fuente original en una más compacta forma intermedia y después traducir eso al código de máquina (ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente guardados en esta representación intermedia (ej. Python, UCSD Pascal y Java).
Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito.
En la actualidad, uno de los entornos más comunes de uso de los intérpretes informáticos es Internet, debido a la posibilidad que estos tienen de ejecutarse independientemente de la plataforma.
Compilador: es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente.


jueves, 30 de enero de 2014

Análisis de sistema

Requerimientos del sistema 

Los Sistemas de Información por computadora normalmente están integrados por muchos componentes. En la mayor parte de los casos, es difícil para los analistas entender todos estos componentes aún mismo tiempo; por lo tanto los investigadores tienen que comenzar con preguntas de tipo general con relación al propósito del sistema sus entradas y salidas de los procesos incluidos.

En los grandes proyectos de sistema varios analistas llevan a cabo una investigación en forma seccionada que la distribuyen entre ellos mismos, de manera que cada uno pueda trabajar en forma independiente.

Existen dos estrategias ampliamente utilizadas para determinar los requerimientos de información. Se clasifican en dos tipos:
1. - Flujo de Datos.
2. - Estrategias de Análisis de Decisión para el Conocimiento para los Sistema de Información.

Etapas en la Estrategia del Análisis del Flujo de Datos
1. - Estudiar las operaciones y procesos en marcha.
2. - Identificar cómo se procesan los datos al manejar transacciones y terminar las tareas.
3. - Seguir el flujo de datos:
* Proceso
* Almacenamiento
* Recuperación
* Salida
4. - Añadir gradualmente detalles a los niveles inferiores.

Etapas en la Estrategia del Análisis de Decisión
1. -Estudiar los objetivos y decisiones necesarias.
2. - Desarrollar un modelo del proceso de decisión.
3. - Probar el modelo con datos de prueba.
4. - Identificar los requerimientos del proceso para los datos.

Requerimientos de entrada: Es el enlace que une al sistema de información con el mundo y sus usuarios, en esta existen aspectos generales que todos los analistas deben tener en cuenta estos son:
  • Objetivos del Diseño de Entrada.
  • Captura de Datos para la Entrada.

Objetivo del Diseño de Entrada: Consiste en el desarrollo de especificaciones y procedimientos para la preparación de datos, la realización de los procesos necesarios para poner los datos de transacción en una forma utilizable para su procesamiento así como la entrada de los datos se logra al instruir a la computadora para que lea ya sea documentos escritos, impresos ó por personas que los escriben directamente al sistema. Existen cinco objetivos que controlan la cantidad de entrada requerida, a enviar los retrasos, controlar los errores y mantener la sencillez de los pasos necesarios, estos son:
  • Control de la Calidad de Entrada
  • Evitar los Retrasos
  • Evitar los errores en los datos
  • Evitar los pasos adicionales
  • Mantener la Sencillez del Proceso

Captura de Datos para la Entrada: En una transacción existen datos importantes y otros que no, el analista debe saber cuales utilizará y cuales en realidad deben formar la entrada. Existen dos tipos de datos:
  • datos variables
  • datos de identificación

Requerimientos de salida: El término salida, como es probable que el lector lo conozca, se refiere a los resultados e información generados por el sistema. Para muchos usuarios finales, la salida es la única razón para el desarrollo del sistema y la base sobre la que ellos evaluarán la utilidad de la aplicación. En la realidad, muchos usuarios no operan el sistema de información y tampoco ingresas datos en él, pero utilizan la salida generada por el sistema. Cuando diseñan la salida, los analistas deben de realizar lo siguiente:
  • Determinar qué información presentar.
  • Decidir si la información será presentada en forma visual, verbal o impresa y seleccionar el medio de salida.
  • Disponer la presentación de la información en un formato aceptable.
  • Decidir cómo distribuir la salida entre los posibles destinatarios.
Para llevar a cabo las actividades antes mencionadas, se requieren decisiones específicas tales como el empleo de formatos ya impresos cuando se preparan reportes, cuántas líneas planear sobre una página impresa o si se debe emplear gráficas y colores.
 La salida es la única razón para el desarrollo del sistema y la base sobre la que ellos evaluarán la utilidad de la aplicación.  En la realidad, muchos usuarios no operan el sistema de información y tampoco ingresan datos en él, pero utilizan la salida generada por el sistema.

Requerimientos de almacenamiento: La memoria de la computadora (RAM) es un lugar provisional de almacenamiento para los archivos que usted usa. La mayoría de la información guardada en la RAM se borra cuando se apaga la computadora. Por lo tanto, su computadora necesita formas permanentes de almacenamiento para guardar y recuperar programas de software y archivos de datos que desee usar a diario. Los dispositivos de almacenamiento (también denominados unidades) fueron desarrollados para satisfacer esta necesidad.


Los siguientes constituyen los tipos más comunes de dispositivos de almacenamiento:

Unidades de:
  • Disco duro
  • Disquete
  • Compresión ZIP
  • CD
  • DVD
Carta estructurada 

La carta estructurada también es conocida como el modelo de producto, es una metodología de análisis y diseño de sistemas de análisis estructurado, lo que muestra es un mapa de diseño de arriba hacia abajo (top-down) de tipo jerárquico en el que se asienta cómo será programado el proyecto, construido, integrado y probado. La Carta Estructurada consta de módulos, los cuales podemos definir como un subsistema que agrupa funcionalmente programas, objetos, herramientas y , bases de datos según su funcionalidad y objetivos vinculantes. Por ejemplo, el objetivo de un modulo de nomina es generar el pago a los empleados, el objetivo de un modulo de compras es proveer a  la empresa de material necesario para su funcionamiento y así sucesivamente.

El diseño modular te permite asentar "los módulos" en los que estará dividida tu aplicación, digamos que ordenas tus módulos de manera que puedas "dividir el trabajo". Por ejemplo, si vas a hacer un sistema administrativo para una empresa a lo mejor tienes tus módulos de nómina, personal, inventario, compras, ventas, etc por decir algo. A lo mejor tu cliente necesita urgentemente primero la nómina; entonces es necesario que hagas el diseño de los módulos de todo el sistema para que desde el principio se tome en cuenta su crecimiento, o para dividir en equipos de trabajo que desarrollen los módulos por separado y pueda existir comunicación, estén acordes los datos, entradas con salidas, etc.


Pasos para obtener una apropiada carta estructurada:
1) Fraccionar el sistema en unidades apropiadas a través del análisis de transacciones.
2) Convertir cada uno de esas unidades en una carta de estructura a través del análisis de transformaciones.
3) Refinar cada una de las cartas de estructuras obtenidas y vinculadas en la implantación del sistema.




Programación orientada a objetos




La Programación Orientada a Objetos (POO u OOPsegún sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo, y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.
El término de Programación Orientada a Objetos indica más una forma de diseño y una metodología de desarrollo desoftware que un lenguaje de programación, ya que en realidad se puede aplicar el Diseño Orientado a Objetos (Eninglés abreviado OOD, Object Oriented Design), a cualquier tipo de lenguaje de programación.
El desarrollo de la OOP empieza a destacar durante la década de lo 80 tomando en cuenta la programación estructurada, a la que engloba y dotando al programador de nuevos elementos para el análisis y desarrollo de software.
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.
Características de la POO: Existe un acuerdo acerca de qué características contempla la "orientación a objetos". Las características siguientes son las más importantes:





Tipos

Entre los lenguajes orientados a objetos se destacan los siguientes: 
  • ABAP 
  • ABL Lenguaje de programación de OpenEdge de Progress Software 
  • ActionScript 
  • ActionScript 3 
  • Ada 
  • C++ 
  • C# 
  • Clarion 
  • Clipper (lenguaje de programación) (Versión 5.x con librería de objetos Class(y)) 
  • D 
  • Object Pascal (Delphi) 
  • Gambas 
  • Harbour 
  • Eiffel 
  • Java 
  • JavaScript (la herencia se realiza por medio de la programación basada en prototipos) 
  • Lexico (en castellano) 
  • Objective-C 
  • Ocaml 
  • Oz 
  • R 
  • Perl (soporta herencia múltiple. La resolución se realiza en preorden, pero puede modificarse al algoritmo linearization C3 por medio del módulo Class::C3 en CPAN) 
  • PHP (a partir de su versión 5) 
  • PowerBuilder 
  • Python 
  • Ruby 
  • Smalltalk (Proyecto investigativo. Influenció a Java.) 
  • Magik (SmallWorld) 
  • Vala 
  • VB.NET 
  • Visual FoxPro (en su versión 6) 
  • Visual Basic 6.0 
  • Visual Objects 
  • XBase++ 
  • Lenguaje DRP 
  • Lenguaje de programación Scala (lenguaje usado por Twitter)
Clase

En la programación orientada a objetos, una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y contiene el comportamiento que todos los objetos creados a partir de esa clase tendrán. Un objeto creado a partir de una determinada clase se denomina una instancia de esa clase.
Una clase por lo general representa un sustantivo, como una persona, lugar o cosa. Es el modelo de un concepto dentro de un programa de computadora. Fundamentalmente, delimita los posibles estados y define el comportamiento del concepto que representa. Encapsula el estado a través de espacios de almacenaje de datos llamados atributos, y encapsula el comportamiento a través de secciones de código reutilizables llamadas métodos.

Metodos


En la programación orientada a objetos, un método es una subrutina cuyo código es definido en una clase y puede pertenecer tanto a una clase, como es el caso de los métodos de clase o estáticos, como a un objeto, como es el caso de los métodos de instancia. Análogamente a los procedimientos en los lenguajes imperativos, un método consiste generalmente de una serie de sentencias para llevar a cabo una acción, un juego de parámetros de entrada que regularán dicha acción o, posiblemente, un valor de salida (o valor de retorno) de algún tipo.
La diferencia entre un procedimiento (generalmente llamado función si devuelve un valor) y un método es que éste último, al estar asociado con un objeto o clase en particular, puede acceder y modificar los datos privados del objeto correspondiente de forma tal que sea consistente con el comportamiento deseado para el mismo. Así, es recomendable entender a un método no como una secuencia de instrucciones sino como la forma en que el objeto es útil (el método para hacer su trabajo). 
Análisis costo-beneficio
Tiene como objetivo fundamental proporcionar una
medida de la rentabilidad de un proyecto, mediante la comparación de los costos previstos con los
beneficios esperados en la realización del mismo.
Un análisis Costo/Beneficio por si solo no es una guía clara para tomar una buena decisión. Existen
otros puntos que deben ser tomados en cuenta, ej. La moral de los empleados, la seguridad, las
obligaciones legales y la satisfacción del cliente.

El análisis de costo-beneficio es una técnica importante dentro del ámbito de la teoría de la decisión. Pretende determinar la conveniencia de proyecto mediante la enumeración y valoración posterior en términos monetarios de todos los costos y beneficios derivados directa e indirectamente de dicho proyecto. Este método se aplica a obras sociales, proyectos colectivos o individuales, empresas privadas, planes de negocios, etc., prestando atención a la importancia y cuantificación de sus consecuencias sociales y/o económicas.


El análisis Costo-Beneficio, permite definir la factibilidad de las alternativas planteadas o de un

proyecto a ser desarrollado.
La utilidad de la presente técnica es la siguiente:

• Para valorar la necesidad y oportunidad de la realización de un proyecto.

• Para seleccionar la alternativa más beneficiosa de un proyecto.
• Para estimar adecuadamente los recursos económicos necesarios, en el plazo de realización
de un proyecto.

Punto de equilibrio: Es el punto en donde los ingresos totales recibidos se igualan a los costos asociados con la venta de un producto (IT = CT). Un punto de equilibrio es usado comúnmente en las empresas u organizaciones para determinar la posible rentabilidad de vender un determinado producto. Para calcular el punto de equilibrio es necesario tener bien identificado el comportamiento de los costos; de otra manera es sumamente difícil determinar la ubicación de este punto.

Sean IT los ingresos totales, CT los costos totales, P el precio por unidad, Q la cantidad de unidades producidas y vendidas, CF los costos fijos, y CV los costos variables, entonces:
Si el producto puede ser vendido en mayores cantidades de las que arroja el punto de equilibrio tendremos entonces que la empresa percibirá beneficios. Si por el contrario, se encuentra por debajo del punto de equilibrio, tendrá pérdidas.