sábado, 28 de noviembre de 2009

Sistemas de informacion

Elementos de un sistema de información
Un sistema de información (SI) es un conjunto de datos organizados listos y preparados para su posterior uso,generados por una necesidad:
Personas.
Datos.
Actividades o técnicas de trabajo.
Recursos materiales en general (típicamente recursos informáticos y de comunicación, aunque no tienen por qué ser de este tipo obligatoriamente).
Todo interactúa entre sí para procesar los datos y la información (incluyendo procesos manuales y automáticos) y distribuirla de la manera más adecuada posible en una determinada organización en función de sus objetivos. Normalmente el término es usado de manera errónea como sinónimo de sistema de información informático, estos son el campo de estudio de la tecnología de la información (IT), y aunque puedan formar parte de un sistema de información (como recurso material), por sí solos no se pueden considerar como sistemas de información, este concepto es más amplio que el de sistema de información informático. No obstante un sistema de información puede estar basado en el uso de computadoras. Según la definición de Langefors[1] este tipo de sistemas son:
Un medio implementado tecnológicamente para grabar, almacenar y distribuir expresiones lingüísticas,
así como para extraer conclusiones a partir de dichas expresiones.

Introduccion a las tecnologias de informacion

Las tecnologías de la información y la comunicación (TIC) -la unión de los computadores y las comunicaciones- desataron una explosión sin precedentes de formas de comunicarse al comienzo de los años '90. A partir de ahí, la Internet pasó de ser un instrumento especializado de la comunidad científica a ser una red de fácil uso que modificó las pautas de interacción social.
Por Tecnologías de la información o Tecnologías de la información y de la comunicación (TIC) se entiende un termino dilatado empleado para designar lo relativo a la informática conectada a Internet, y especialmente el aspecto social de éstos. Ya que Las nuevas tecnologías de la información y comunicación designan a la vez un conjunto de innovaciones tecnológicas pero también las herramientas que permiten una redefinición radical del funcionamiento de la sociedad; Un buen ejemplo de la influencia de los TIC sobre la sociedad es el gobierno electrónico.
En resumen las nuevas tecnologías de la Información y Comunicación son aquellas herramientas computacionales e informáticas que procesan, almacenan, sintetizan, recuperan y presentan información representada de la más variada forma. Es un conjunto de herramientas, soportes y canales para el tratamiento y acceso a la información. Constituyen nuevos soportes y canales para dar forma, registrar, almacenar y difundir contenidos informacionales. Algunos ejemplos de estas tecnologías son la pizarra digital (ordenador personal + proyector multimedia), los blogs, el podcast y, por supuesto, la web.Para todo tipo de aplicaciones educativas, las TIC son medios y no fines. Es decir, son herramientas y materiales de construcción que facilitan el aprendizaje, el desarrollo de habilidades y distintas formas de aprender, estilos y ritmos de los aprendices.

Tecnologias de informacin y sus caracteristicas

¿Cuáles son las características de las TICs?
Las tecnologías de información y comunicación tienen como características principales las siguientes:
· Son de carácter innovador y creativo, pues dan acceso ha nuevas formas de comunicación.
· Tienen mayor influencia y beneficia en mayor proporción al área educativa ya que la hace más accesible y
dinámica.
· Son considerados temas de debate publico y político, pues su utilización implica un futuro prometedor.
· Se relacionan con mayor frecuencia con el uso de la Internet y la informática.
· Afectan a numerosos ámbitos de la
ciencias humana como la sociología, la teoría de las organizaciones o la gestión.
· En
América Latinase destacan con su utilización en las universidades e instituciones países como: Argentina y México, en Europa: España y Francia.
· Las principales nuevas tecnologías son:
o Internet
o Robótica
o Computadoras de propósito específico
o Dinero electrónico
· Resultan un gran alivio económico a largo plazo. aunque en el
tiempo de adquisición resulte una fuerte inversión.
· Constituyen
medios de comunicación y adquisición de información de toda variedad, inclusive científica, a los cuales las personas pueden acceder por sus propios medios, es decir potencian la educación a distancia en la cual es casi una necesidad del alumno tener poder llegar a toda la información posible generalmente solo, con una ayuda mínima del profesor.

Licenciatura en informatica

Presentación

La necesidad de información caracteriza nuestra época, requiriéndose cada vez mayor claridad, precisión y rapidez para la toma de decisiones. Eso exige contar con profesionales comprometidos con el avance tecnológico y con las implicaciones que el mismo tiene en el ámbito económico y social.

A través del equilibrio entre una sólida capacitación en el área de los sistemas de información y una adecuada formación científica, el objetivo de este plan de estudios es formar un profesional altamente capacitado, habituado al trabajo en equipo, y con una visión moderna y práctica; que sea capaz de comprender, en base a una formación humanística apropiada, la realidad del mundo y la sociedad, con una clara conciencia social y un alto sentido del comportamiento ético.

El año académico se desarrolla en dos semestres de 15 semanas cada uno. Las clases son de carácter teórico-práctico, de modo que el alumno pueda ver en todo momento la aplicación práctica de todos los conocimientos adquiridos. Los grupos se componen de un número reducido de alumnos permitiendo ofrecer una educación personalizada.

Objetivos de la carrera

El cometido de la carrera es formar profesionales con una base teórica y práctica sólida en informática y una adecuada formación científica, capacitándolos para resolver problemas del mundo real a través de soluciones informáticas y para acompañar la rápida evolución de las tecnologías y ciencias de la computación.

Estructura y títulos

Al culminar sus estudios curriculares el alumno recibe el título de Licenciado en Informática. La carrera consta de ocho semestres lectivos, requiriéndose una dedicación de aproximadamente quince horas de clases teórico-prácticas semanales, que comprenden diferentes áreas temáticas (Programación, Arquitectura de sistemas, Ingeniería de software, Bases de datos, Telecomunicaciones, Estadística, Matemática, Proyectos, Talleres y pasantías, Gestión, Humanística e Idiomas).

El título intermedio de Técnico en Informática es otorgado luego que el alumno ha completado y aprobado las materias correspondientes al cuarto semestre lectivo.

Perfil del egresado

El Licenciado en Informática se caracteriza por ser capaz de construir soluciones robustas de problemas, con conocimiento y dominio del proceso de diseño y programación y la utilización de herramientas modernas y eficientes. Su formación le permite adaptarse a la dinámica organizacional, aplicando su capacitación en gestión, su entrenamiento para el trabajo en grupo y sus habilidades de comunicación y expresión. El egresado podrá proseguir estudios de postgrado (especializaciones, maestrías, doctorados) a los efectos de especializarse en áreas específicas de interés profesional así como contribuir a la creación de conocimiento en el área.

El Técnico en Informática se caracteriza por poseer una formación de base teórico-práctica en el área de la informática, consistente en un alto nivel de conocimientos en técnicas y lenguajes de programación, una formación introductoria al diseño de sistemas de computación y telecomunicación así como una adecuada base científica. El egresado podrá desempeñar tareas de programación de software de base y de aplicaciones así como diseñar sistemas informáticos de mediana complejidad, pudiendo insertarse rápidamente en el mercado laboral. El Técnico en Informática podrá continuar en forma curricular estudios superiores de ingeniería o licenciatura en informática, o bien abordar el estudio de numerosas disciplinas teórico-prácticas en modalidad de actualización profesional.

Inserción profesional

La creciente importancia de la informática en las organizaciones asegura un amplísimo campo de acción y una rápida inserción laboral al Licenciado y al Técnico en Informática. Su capacitación les permite un solvente desempeño en los distintos niveles, de acuerdo a sus perfiles.

El licenciado podrá desempeñarse como consultor en informática en sus diversas especialidades o gerente de desarrollo de software, tanto en organizaciones dedicadas a la construcción de aplicaciones específicas como en las abocadas al desarrollo de software como producto industrial y de exportación. Asimismo podrá integrarse a grupos de investigación y contribuir a la creación del conocimiento.

A través de convenios que la Facultad de Ingeniería mantiene con empresas de plaza, se generan oportunidades de realización de pasantías.

Se cuenta, además, con una permanente bolsa de trabajo, generada por las continuas solicitudes recibidas. En todos los casos, la selección se realiza teniendo en cuenta la escolaridad del alumno y su adecuación al perfil del cargo ofertado, de modo de asegurar el éxito de su gestión.Títulos otorgados:Licenciado en Informática (4 años)Técnico en Informática (2 años)

Ingenieria de software

Ingeniería de software es la disciplina o área de la informática que ofrece métodos y técnicas para desarrollar y mantener software de calidad.
Esta ingeniería trata con áreas muy diversas de la informática y de las ciencias de la computación, tales como construcción de compiladores, sistemas operativos, o desarrollos Intranet/Internet, abordando todas las fases del ciclo de vida del desarrollo de cualquier tipo de sistemas de información y aplicables a infinidad de áreas: negocios, investigación científica, medicina, producción, logística, banca, control de tráfico, meteorología, derecho, Internet, Intranet, etc.
Una definición precisa aún no ha sido contemplada en los diccionarios, sin embargo se pueden citar las enunciadas por algunos de los más prestigiosos autores:
Ingeniería de Software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)
Ingeniería de software es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como Desarrollo de Software o Producción de Software ( Bohem, 1976).
Ingeniería de Software trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales (Bauer, 1972).
Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software; es decir, la aplicación de la ingeniería al software (IEEE, 1993).
En el 2004, en los Estados Unidos, la Oficina de Estadísticas del Trabajo (U. S. Bureau of Labor Statistics) contó 760.840 ingenieros de software de computadora.[1] El término "ingeniero de software", sin embargo, se utiliza en forma genérica en el ambiente empresarial, y no todos los ingenieros de software poseen realmente títulos de Ingeniería de universidades reconocidas.
Algunos autores consideran que Desarrollo de Software es un término más apropiado que Ingeniería de Software (IS) para el proceso de crear software. Personas como Pete McBreen (autor de "Software Craftmanship") cree que el término IS implica niveles de rigor y prueba de procesos que no son apropiados para todo tipo de desarrollo de software.
Indistintamente se utilizan los términos Ingeniería de Software o Ingeniería del Software. En hispanoamérica el término usado normalmente es el primero de ellos.
Contenido
[ocultar]
1 Implicaciones socioeconómicas
1.1 Económicamente
1.2 Socialmente
2 Metodología
2.1 Etapas del proceso
2.1.1 Análisis de requisitos
2.1.2 Especificación
2.1.3 Arquitectura
2.1.4 Programación
2.1.5 Prueba
2.1.6 Documentación
2.1.7 Mantenimiento
3 Modelos de desarrollo de software
3.1 Naturaleza de la IS
3.1.1 Matemáticas
3.1.2 Creación
3.1.3 Gestión de Proyectos
3.1.4 Arte
4 Responsabilidad
5 Educación ética
5.1 Organizaciones
6 Bibliografía
7 Referencias
8 Véase también
9 Enlaces externos
Implicaciones socioeconómicas
La ingeniería de software afecta a la economía y las sociedades de variadas formas.
Económicamente
En los EEUU, el software contribuyó a 1/8 de todo el incremento del PIB durante los 90's (alrededor de 90,000 millones de dólares por año), y 1/9 de todo el crecimiento de productividad durante los últimos años de la década (alrededor de 33,000 millones de dólares por año). La ingeniería de software contribuyó a $1 billón de crecimiento económico y productividad en esa década. Alrededor del globo, el software contribuye al crecimiento económico en formas similares, aunque es difícil de encontrar estadísticas fiables.
Además, con la industria del lenguaje está hallando cada vez más campos de aplicación a escala global.
Socialmente
La ingeniería de software cambia la cultura del mundo debido al extendido uso de la computadora. El correo electrónico (E-mail), la WWW y la mensajería instantánea permiten a la gente interactuar en nuevas formas. El software baja el costo y mejora la calidad de los servicios de salud, los departamentos de bomberos, las dependencias gubernamentales y otros servicios sociales. Los proyectos exitosos donde se han usado métodos de ingeniería de software incluyen a Linux, el software del transbordador espacial, los cajeros automáticos y muchos otros.
La IS se puede considerar como la ingeniería aplicada al software, esto es, por medios sistematizados y con herramientas preestablecidas, la aplicación de ellos de la forma más eficiente para la obtención de resultados óptimos; objetivos que siempre busca la ingeniería. No es sólo de la resolución de problemas, sino más bien teniendo en cuenta las diferentes soluciones, elegir la más apropiada.
Metodología
Un objetivo de décadas ha sido el encontrar procesos y metodologías, que sean sistemáticas, predecibles y repetibles, a fin de mejorar la productividad en el desarrollo y la calidad del producto software.
Etapas del proceso
La ingeniería de software requiere llevar a cabo numerosas tareas, dentro de etapas como las siguientes:
Análisis de requisitos
Extraer los requisitos de un producto de software es la primera etapa para crearlo. Mientras que los clientes piensan que ellos saben lo que el software tiene que hacer, se requiere de habilidad y experiencia en la ingeniería de software para reconocer requisitos incompletos, ambiguos o contradictorios. El resultado del análisis de requisitos con el cliente se plasma en el documento ERS, Especificación de Requerimientos del Sistema, cuya estructura puede venir definida por varios estándares, tales como CMM-I. Asimismo, se define un diagrama de Entidad/Relación, en el que se plasman las principales entidades que participarán en el desarrollo del software.
La captura, análisis y especificación de requisitos (incluso pruebas de ellos), es una parte crucial; de esta etapa depende en gran medida el logro de los objetivos finales. Se han ideado modelos y diversos procesos de trabajo para estos fines. Aunque aún no está formalizada, ya se habla de la Ingeniería de Requisitos.
La IEEE Std. 830-1998 normaliza la creación de las Especificaciones de Requisitos Software (Software Requirements Specification).
Especificación
La Especificación de Requerimientos describe el comportamiento esperado en el software una vez desarrollado. Gran parte del éxito de un proyecto de software radicará en la identificación de las necesidades del negocio (definidas por la alta dirección), así como la interacción con los usuarios funcionales para la recolección, clasificación, identificación, priorización y especificación de los requerimientos del software.
Entre las técnicas utilizadas para la especificación de requerimientos se encuentran:
Casos de Uso,
Historias de usuario,
Siendo los primeros más rigurosas y formales, los segundas más ágiles e informales.
Arquitectura
La integración de infraestructura, desarrollo de aplicaciones, bases de datos y herramientas gerenciales, requieren de capacidad y liderazgo para poder ser conceptualizados y proyectados a futuro, solucionando los problemas de hoy. El rol en el cual se delegan todas estas actividades es el del Arquitecto. El Arquitecto de Software es la persona que añade valor a los procesos de negocios gracias a su valioso aporte de soluciones tecnológicas. La Arquitectura de Sistemas en general, es una actividad de planeación, ya sea a nivel de infraestructura de red y hardware, o de Software. La Arquitectura de Software consiste en el diseño de componentes de una aplicación (entidades del negocio), generalmente utilizando patrones de arquitectura. El diseño arquitectónico debe permitir visualizar la interacción entre las entidades del negocio y además poder ser validado, por ejemplo por medio de diagramas de secuencia. Un diseño arquitectónico describe en general el cómo se construirá una aplicación de software. Para ello se documenta utilizando diagramas, por ejemplo:
Diagramas de clases
Diagramas de base de datos
Diagramas de despliegue
Diagramas de secuencia
Diagramas de infraestructura física
Siendo los dos primeros los mínimos necesarios para describir la arquitectura de un proyecto que iniciará a ser codificado. Depende del alcance del proyecto, complejidad y necesidades, el arquitecto elige qué diagramas elaborar. Entre las herramientas para diseñar arquitecturas de software se encuentran:
Enterprise Archit
Microsoft Visio for Enterprise Architects
Programación
Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de software, pero no necesariamente es la que demanda mayor trabajo y ni la más complicada. La complejidad y la duración de esta etapa está íntimamente relacionada al o a los lenguajes de programación utilizados, así como al diseño previamente realizado.
Prueba
Consiste en comprobar que el software realice correctamente las tareas indicadas en la especificación del problema. Una técnica de prueba es probar por separado cada módulo del software, y luego probarlo de forma integral, para así llegar al objetivo. Se considera una buena práctica el que las pruebas sean efectuadas por alguien distinto al desarrollador que la programó, idealmente un área de pruebas; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas. En general hay dos grandes formas de organizar un área de pruebas, la primera es que esté compuesta por personal inexperto y que desconozca el tema de pruebas, de esta forma se evalúa que la documentación entregada sea de calidad, que los procesos descritos son tan claros que cualquiera puede entenderlos y el software hace las cosas tal y como están descritas. El segundo enfoque es tener un área de pruebas conformada por programadores con experiencia, personas que saben sin mayores indicaciones en qué condiciones puede fallar una aplicación y que pueden poner atención en detalles que personal inexperto no consideraría.
Documentación
Todo lo concerniente a la documentación del propio desarrollo del software y de la gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema.
Mantenimiento
Mantener y mejorar el software para enfrentar errores descubiertos y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniería de software tiene que ver con dar mantenimiento. Una pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte consiste en extender el sistema para hacer nuevas cosas. De manera similar, alrededor de 2/3 de toda la ingeniería civil, arquitectura y trabajo de construcción es dar mantenimiento.
Modelos de desarrollo de software
La ingeniería de software tiene varios modelos, paradigmas o filosofías de desarrollo en los cuales se puede apoyar para la realización de software, de los cuales podemos destacar a éstos por ser los más utilizados y los más completos:
Modelo en cascada o Clásico (modelo tradicional)
Modelo en espiral (modelo evolutivo)
Modelo de prototipos
Desarrollo por etapas
Desarrollo iterativo y creciente o Iterativo e Incremental
RAD (Rapid Application Development)
Naturaleza de la IS
La Ingeniería de Software tiene que ver con varios campos en diferentes formas:
Matemáticas
Los programas tienen muchas propiedades matemáticas. Por ejemplo la corrección y la complejidad de muchos algoritmos son conceptos matemáticos que pueden ser rigurosamente probados. El uso de matemáticas en la IS es llamado métodos formales.
Creación
Los programas son construidos en una secuencia de pasos. El hecho de definir propiamente y llevar a cabo estos pasos, como en una línea de ensamblaje, es necesario para mejorar la productividad de los desarrolladores y la calidad final de los programas. Este punto de vista inspira los diferentes procesos y metodologías que encontramos en la IS.
Gestión de Proyectos
El software comercial (y mucho no comercial) requiere gestión de proyectos. Hay presupuestos y establecimiento de tiempos. Gente para liderar. Recursos (espacio de oficina, computadoras) por adquirir. Todo esto encaja apropiadamente con la visión de la Gestión de Proyectos.
Arte
Los programas contienen muchos elementos artísticos. Las interfaces de usuario, la codificación, etc. Incluso la decisión para un nombre de una variable o una clase. Donald Knuth es famoso porque ha argumentado que la programación es un arte.
Responsabilidad
La responsabilidad en la Ingeniería del Software es un concepto complejo, sobre todo porque al estar los sistemas informáticos fuertemente caracterizados por su complejidad, es difícil apreciar sus consecuencias.
En la Ingeniería del Software la responsabilidad será compartida por un grupo grande de personas, que comprende desde el ingeniero de requisitos, hasta el arquitecto software, y contando con el diseñador, o el encargado de realizar las pruebas. Por encima de todos ellos destaca el director del proyecto. El software demanda una clara distribución de la responsabilidad entre los diferentes roles que se dan en el proceso de producción.
El ingeniero del Software tiene una responsabilidad moral y legal limitada a las consecuencias directas

Licenciatura en ciencias computacionales

comunicaciones.
Son el uso de estas tecnologías (TICs) quienes están propiciando este cambio de paradigmas facilitando el acceso a la información, permitiendo con ello disminuir la desigualdad social y mejorar el nivel de vida de la població
Importancia social de la carrera: Dentro del campo de las Ciencias Computacionales, los avances no se detienen nunca, y un ejemplo de esto lo constituyen las nuevas disciplinas científicas relacionadas con el concepto de bioinformática o de vida artificial (nombre dado a la nueva disciplina que estudia la “vida natural” con la intención de recrear los fenómenos biológicos a través de computadoras y otros medios artificiales). Estas nuevas disciplinas exigen que las ciencias computacionales se enfoquen en el diseño de aplicaciones tecnológicas de hardware y software que apoyen áreas como nanotecnología, biotecnología, fabricación industrial, etc. que permitan a la humanidad seguir avanzando en temas tan importantes como la salud, el medio ambiente y la sustentabilidad.
Este conjunto de disciplinas son el siguiente paso en la aplicación de principios biológicos a los nuevos sistemas computacionales y promete ser la rama mas innovadora y revolucionaria de lo que será el cómputo del siglo XXI: Una tecnología de convergencias.
Requisitos de ingreso adicionales: Presentar el examen EXCI de la UANL. Asistir al curso propedéutico y aprobar el examen del curso. Presentar el examen de ubicación en las áreas de matemáticas, física y computación definidas previamente por la Administración de la FCFM.
Intereses y aptitudes requeridas: Tener vocación de servicio para la solución de los problemas de la comunidad. Tener interés en la ciencia y la investigación. Tener habilidad de integrarse en trabajo de equipo interdisciplinario para hacer frente a los retos que la sociedad científica e industrial le exige como profesionista.
Enfoque: El enfoque del egresado de LCC va dirigido hacia cuatro acentuaciones: la ingeniería de software, que es ampliamente requerida por el mercado laboral del estado; las telecomunicaciones, con una posible certificación en CISCO, que es reconocida en todo el mundo, y ampliamente solicitada por empresas a nivel global, con excelente remuneración económica; la tercer acentuación se refiere a la Nanotecnología, dirigida a quienes gusten de la ciencia y consideren a esta práctica como el futuro de la Nación; finalmente existe el área de Biotecnología, donde el egresado podrá colaborar en el desarrollo de tecnología de información en distintas áreas de investigación del conocimiento humano, como puede ser la biología, la medicina o la ecología, y que es considerada como una de las 10 profesiones con mejor futuro a nivel mundial.
Es importante incluir que la educación es integral, dando importancia a temas como ética, ambiente y sustentabilidad, administración y recursos humanos entre otros, que son sumamente requeridos por la industria.
Perspectivas de trabajo y campo ocupacional: El Programa Monterrey Ciudad Internacional del Conocimiento tiene como una de sus metas el de posicionar a Nuevo León como el principal proveedor latinoamericano de software para Estados Unidos y Canadá. La industria local de software ya tiene una base importante de empresas, capital humano y conocimiento acumulado, pero necesita profesionistas capacitados y certificados para lograr las metas establecidas.
La tecnología la vemos por todos lados, todas las empresas necesitan personal de TICs, ya sean de giro financiero, manufacturero, comercial o de servicios; instituciones públicas o privadas.
Riesgos profesionales: Esta carrera implica mucho tiempo de trabajo en escritorio, en un ambiente de presión y estrés, por lo que es de suma importancia adquirir la costumbre de practicar ejercicio regularmente, llevar una alimentación sana, respetar los horarios de alimentos y de descanso, y evitar en lo más posible el café y las galletas que son tan comunes en las oficinas. Igualmente implica mucho esfuerzo visual, al trabajar con pantallas, por lo que es conveniente utilizar lentes especiales.
Posibilidades de actualización y superación profesional: La actualización profesional es un tema importantísimo para el profesional en áreas de Tecnología de Información y Comunicaciones, debido a que con los rápidos avances de la tecnología, es muy fácil (y peligroso) quedarse obsoleto. Existen diversas instituciones dedicadas a la actualización, entre las que se encuentra el Centro para el Desarrollo de la Industria del Software, o el Consejo de Software de Nuevo León. La Facultad de Ciencias Físico Matemáticas, ofrece la Maestría en Teleinformática, donde proporciona a los egresados una actualización en el área de Telecomunicaciones, apoyando la superación profesional de los egresados de TICs.

Licenciatura en sistemas computacionales

Propósito
Formar profesionales en un ambiente de excelencia, calidad competitiva y compromiso ético y social, con habilidades y competencias para analizar, diseñar, construir, implantar y mantener sistemas de información organizacionales, así como para definir el entorno de tecnologías de información y comunicaciones necesario para su funcionamiento óptimo.
Visión
Ser un programa educativo de excelencia y prestigio en la formación de profesionales en sistemas computacionales que participa en los procesos de transformación socio-económica a nivel regional, nacional e internacional mediante la investigación, la innovación y el impulso al desarrollo productivo y tecnológico.
Perfil de ingreso
El aspirante a la Licenciatura en Sistemas Computacionales deberá tener alguna de estas capacidades como futuro profesionista:
· Abstracción para el modelado y solución de problemas de tipo numérico y matemático.
· Para el manejo y uso de recursos tecnológicos de cómputo y comunicaciones.
· Para la comunicación con sus semejantes que le permita resolver problemas de otras áreas profesionales.
· Gusto por la lectura y superación de retos intelectuales.
· Capacidad creativa e innovadora.
· Habilidad para establecer relaciones interpersonales y para el trabajo con responsabilidad autocrítica.
· Interés por la investigación.
Perfil de egreso
El egresado tendrá las competencias para:
· Administrar y organizar recursos informáticos, evaluando y diseñando e implantando sistemas de información en la organización, poniendo en práctica su capacidad creativa y de investigación para el desarrollo de proyectos informáticos y de comunicaciones.
· Evaluar los entornos operativos de acuerdo a las necesidades del desarrollo de las organizaciones en un contexto de globalización económica, y propone las arquitecturas de tecnología de información y comunicaciones para interconectar con hardware y software computacional a las diferentes áreas.
· Poseer los conocimientos teóricos metodológicos para el diseño y desarrollo general de software computacional, aplicando simulaciones basadas en computadora construidas con bases experimentales y heurísticas; dentro del marco jurídico y los principios éticos.
· Aplicar los conocimientos y las técnicas para evaluar y mantener la estructura de los recursos tecnológicos en un estado eficiente, para el proceso de la sistematización de la información que apoye a elevar la productividad en las organizaciones o en las actividades de los particulares.
Requisitos de egreso
· Acreditar el mínimo de créditos de la licenciatura
· Acreditar el examen institucional de Inglés
Mercado laboral
· Consultor a organizaciones de distinto tipo sobre las políticas y estrategias de desarrollo de sistemas de información y áreas de sistemas.
· Consultor a organizaciones de distinto tipo sobre la utilización de arquitecturas tecnológicas de hardware, redes de altas prestaciones y software de aplicación computacional a la resolución de problemas concretos.
· Instituciones públicas y privadas como responsables del área de cómputo, jefe de proyectos de software, administrador de sistemas.
· Empresas del sector privado que se dediquen a la venta y distribución de equipos de cómputo, software y accesorios.
· Definir escenarios posibles para el libre empleo profesional, por su capacidad para emprender.
· Empresas que se dediquen a la consultoría y prestación de servicios en el ámbito informático.
· Instituciones que se dediquen a la formación de profesionistas técnicos y a la capacitación de personal de las diferentes empresas de la región en lo referente al ámbito informático.
· Instituciones públicas y privadas dedicadas a la docencia e investigación.

Ingenieria Computacional

Objetivos de la Profesión
Automatizar el procesamiento de la información para darle mayor velocidad, mayor rapidez de acceso a la información (rápida obtención de ella) , mayor confiabilidad en los procesos (menor posibilidad de equivocaciones), y así responder a la necesidad de una toma de decisiones oportuna.
Antes de la aparición de los computadores esta información se ordenaba en archivadores y los procesos se realizaban a mano.
Automatizar y controlar procesos de producción para elevar los niveles de productividad y eficiencia al proceso productivo.

Perfil Profesional
El ingeniero computacional es un profesional capacitado para colaborar en la optimización del procesamiento de la información de una institución o empresa , abordando principalmente las Tecnologías de Información ,correspondiente tanto al *hardware (componentes físicos del computador, *redes de computadores, telecomunicaciones, *multimedia ) como al *software base de funcionamiento ( *bases de datos, *Internet, *Lenguajes computacionales, *sistemas operativos, etc) sobre los que se sustenta este procesamiento de información.
Propone, implanta, dirige y controla el uso de tecnologías de la información.
Debe adaptarse a la velocidad de los cambios tecnológicos y proponer soluciones eficaces.
Aplica los avances tecnológicos más recientes en los campos de redes de computadoras, control *digital y robótica.
En los procesos productivos le corresponde abordar su automatización y control. Posee los conocimientos necesarios en electrónica, computación y matemáticas, aplicando modelos matemáticos a dicha automatización y control de procesos.

Tareas o actividades específicas que se realizan en la profesión
Interactúa con usuarios entendiendo sus necesidades y proponiendo soluciones por medio del análisis, diseño e implementación de sistemas computacionales.
Incorpora permanentemente nuevas tecnologías a las necesidades de información (necesidades informáticas) de las empresas o instituciones, actuando como nexo entre el personal de la empresa y los proveedores de productos computacionales.
Atiende necesidades de sistemas computacionales (*Hardware), actualizándolo o incorporando nuevo hardware para satisfacer necesidades tales como: mayor rapidez de proceso, mejor sistemas de comunicación electrónica, mayor capacidad de almacenamiento de información , mejor calidad de medios de almacenamiento, optimizaciones de audio, video, etc. Es decir todo lo relacionado con el soporte del *software.
Determina tecnologías de información (tales como Internet, bases de datos, multimedia, etc), necesario para implementar el nuevo *sistema de información administrativo.
Determina el software de funcionamiento, necesario para el sistema computacional.
Integra (busca su compatibilidad) elementos de hardware y software en la construcción de soluciones.
Diseña e implementa redes de computadores locales y globales (Internet), bases de datos, uso de multimedia (audio, datos, video), etc
Aplica modelos matemáticos para el control y automatización de procesos.
Construye el software que requiere un sistema digital en un entorno específico para un proceso, su control y automatización.
Evalúa y administra instalaciones computacionales.
Determina la incorporación de nueva tecnología en los distintos niveles de la estructura organizacional de una empresa.

Campo Ocupacional
El sector productivo y de servicios que demanden el uso de sistemas de cómputo para comunicación, control y automatización de procesos, tales como:
Empresas de desarrollo de sistemasIndustrias y Empresas de ServiciosServicios públicosEmpresas pesquerasEmpresas de cultivos acuícolasEmpresas agrícolas y agroindustrialesEmpresas de comunicacionesAsesorías y consultoríasInstitutos de investigaciónEntidades de Educación Superior.Compañías asesoras o comercializadoras de hardware (computadores) y software.Centros de procesamiento de datos de bancos y entidades financierasLibre ejercicio de la profesión, mediante su propia empresa de software.

Duración aproximada de los años de estudio.
5 años
Principales asignaturas contempladas en el plan de estudios.
Asignaturas de formación Básica.
Álgebra, Cálculo, Ecuaciones Diferenciales, Probabilidades y Estadísticas, Física, Análisis de circuitos, *Fundamentos físicos de la Electrónica Computacional
Área profesional
Electrónica *Digital, *Arquitectura de Computadores, * Metodología y Técnicas de Programación , *Redes de Computadores, Telecomunicaciones, Administración de Instalaciones Computacionales, *Estructura de Datos, *Bases de Datos, *Ingeniería de Software, Herramientas de Software, Teoría de Sistemas y Organizaciones, *Compiladores, *Sistemas Operativos, Evaluación de Sistemas Computacionales.
Asignaturas Complementarias
Legislación Laboral, Inglés Técnico, Relaciones Humanas, Evaluación de Proyectos, *Contabilidad y *Finanzas.

Especialidades
Robótica *Inteligencia Artificial.*Teoría de Autómatas y lenguajes formales *Telemática


Vocación, Habilidades e Intereses necesarios en el postulante a esta carrera.
Intereses.
Curiosidad innata por los avances tecnológicos.Valoración por la tecnología y las ciencias que la sustentan, con base en las ciencias exactas como las matemáticas y la física.Creatividad e iniciativa en la búsqueda de soluciones aplicando sus conocimientos.Valorar la Efectividad y los logros concretos.Motivado por el funcionamiento, perfeccionismo, optimización, innovación, realización…. por hacer bien las cosas.Interés por adquirir nuevos conocimientos en el área tecnológica y realizar innovaciones. Interés por la manualidad
Habilidades.
Capacidad para el pensamiento estructurado.Fuerte capacidad de análisis Razonamiento LógicoHabilidad MatemáticaCapacidad analítica: Método de comprensión que enfoca el todo y lo descompone en sus elementos básicos para luego ver la relación entre dichos elementos.Razonamiento lógico: El que se capta a través de la observación de la realidad, o de un dibujo, o un esquema, el funcionamiento de algo, comportamiento, etc. Habilidad para analizar proposiciones o situaciones complejas, prever consecuencias y poder resolver el problema de una manera coherente.Innovador: Tiende a la inventiva o la innovación en busca de incorporar cosas nuevas, a utilizar el ingenio ya sea en nuevos dispositivos como en procedimientos o formas de realizar las cosas, que le permite solucionar problemas generando nuevos sistemas o adaptando la realidad existente a nuevos requerimientos.
Vocación.
Su servicio se expresa a través de construir para mejorar las condiciones de vida del ser humano.
Personalidad del Postulante.
Personalidad práctica. Creatividad e iniciativa en la búsqueda de soluciones a problemas concretos.Observador, detallista, metódico, ordenado, paciente.Facilidad para trabajar en forma autónoma o integrado a grupos interdisciplinarios.

Ámbito de trabajo.
Laboratorio Tecnológico, trabajando con instrumental y herramientas finas.Trabajo computacional de Oficina, con papeles para diseño y construcción de software.

Carreras afines y relacionadas
Ingeniería de SoftwareIngeniería ElectrónicaIngeniería TelemáticaTelecomunicaciones

*Glosario de Términos
*Arquitectura de Computadores: Trata del diseño interno de los componentes de un computador y la comunicación entre ellos en un lenguaje llamado ensamblador, que es el lenguaje propio de la máquina.
*Base de Datos: Es un conjunto de programas que manejan un stock de datos que están organizados de tal modo que resulte fácil accesarlos, almacenarlos y actualizarlos (estos programas hacen las veces de un bibliotecario que maneja un stock de libros).
La Asignatura estudia la creación de una Base de Datos así como las funciones que en ella operan.
*Compiladores: Estos programas son los que traducen las órdenes del usuario (dadas a través de un programa computacional o una orden dada por consola) que están conformados por letras y números, a un lenguaje de máquina conformado por secuencias de impulsos eléctricos. La Asignatura estudia la teoría del diseño y construcción de estos programas analizadores de lenguajes, esto incluye el estudio de las técnicas de análisis lexicográfico (palabras de un lenguaje), sintáctico (estudio de la ordenación de las palabras en la oración y el enlace entre oraciones) y semántico (significado de las palabras).
*Contabilidad: Orden adoptado para llevar las cuentas en debida forma.
*Digital: *Sistemas Digitales: analiza y diseña circuitos lógicos, es decir circuitos que funcionan basados en la lógica matemática. Enseña a normalizar y sistematizar problemas de casos reales de diseño lógico de estos circuitos.
*Estructuras de Datos: cómo se ordenan u organizan los datos en computador para ser utilizados por los programas computacionales.
*Finanzas: Las Finanzas tratan la obtención y determinación de los flujos de fondos (entrada y salida de dinero) que requiere la empresa, además de la distribución y administración de esos fondos con el objeto de maximizar el valor económico de la empresa.
*Fundamentos físicos de la Electrónica Computacional: Contempla los principios fundamentales de la física, relativos a campos electromagnéticos, circuitos eléctricos y física del estado sólido, todos fundamentos sobre los cuáles se sustenta la electrónica computacional.
*Hardware: de cómo está estructurado internamente un computador y cómo es su funcionamiento interno y en general todo el soporte físico del sistema de información administrativo.
*Ingeniería de Software: asignatura que introduce al alumno en los métodos y técnicas aplicables en la creación de *software así como el empleo de herramientas de apoyo en cada etapa de su creación.
*Inteligencia Artificial: simulación de los procesos de la inteligencia humana, por medio de sistemas de computación.Estudio de los métodos y herramientas más usados en inteligencia artificial. El objetivo es obtener la capacidad de decidir cuál es la más adecuada para la resolución de cada problema particular.
*Internet: red de redes. Sistema mundial de redes de computadoras interconectadas.
*Lenguajes computacionales: Lenguajes de Programación: lenguajes con que trabaja el computador.
* Metodología y Técnicas de Programación: estudia el diseño y la realización de programas primeramente en un lenguaje algorítmico (secuencia de pasos a seguir por el programa) para posteriormente traducirlo a un lenguaje computacional.
*Multimedia: Referido al audio, datos y video.
*Programa Computacional: conjunto de órdenes a ejecutar sobre una variedad de datos. Estas órdenes están escritas en un lenguaje computacional (lenguaje en que el computador entiende).
*Redes de Computadores: conjunto de dos o más computadoras interconectadas, describiendo y estudiando sus diferentes tipos y tecnologías.
*Sistemas de Información Administrativo: Procesamiento de la información dentro de la empresa, tal como procesos de contabilidad, de costos, de inventarios, etc.
*Sistemas Operativos: Corresponde al estudio del software o conjunto de programas dedicados al funcionamiento interno del computador e interpretación de las órdenes dadas por el usuario.
*Software: término general que designa los diversos tipos de programas computacionales.
*Software base: los *programas computacionales orientados al funcionamiento del computador, a diferencia de otros programas orientados a ralizar tareas de los *sistemas de información de la empresa.
*Telemática: parte de las telecomunicaciones que estudia las técnicas y procedimientos en la transmisión de datos en formato digital.
*Teoría de Autómata y lenguajes formales: Introducción a los lenguajes formales, características y clasificación de sus gramáticas y construcción de programas autómatas capaces de reconocer dichos lenguajes. Esta asignatura es fundamental para comprender los principios de funcionamiento de los *compiladores e intérpretes.

ANIEI

La ANIEI es una asociación civil que agrupa a la casi la totalidad de universidades, escuelas superiores e instituciones que imparten programas curriculares de computación o de informática. Fue creada en octubre de 1982 y sus objetivos fundamentales son:
Orientar, proponer y difundir las actividades que se realizan en el área de informática como son: docencia, investigación y extensión educativa.
Propugnar para que las instituciones de educación en informática del país preparen profesionales con sentido de servicio a la comunidad, capaces de actuar como agentes de cambio para el desarrollo del país.
Contribuir a la integración, actualización y superación de la educación en informática, en todos los niveles.
Servir como órgano de consulta a la administración pública central, estatal , paraestatal, municipal y demás instituciones.
En materia de docencia: analizar los problemas relacionados con la enseñanza de la informática, proponer soluciones y colaborar en su implantación.
En materia de investigación y desarrollo: promover y apoyar la investigación vinculada con la educación en informática.
En materia de difusión: promover la realización y divulgación de actividades, libros, artículos y trabajos relacionados con la educación en informática.
En materia de relación interna: promover actividades encaminadas a la unificación de criterios entre las instituciones de educación en informática.
Finalmente, promover, su vinculación con las comunidades nacionales e internacionales.

Funcionamiento de la ANIEI
La operación de la ANIEI está reglamentada por los estatutos, aprobados por el máximo cuerpo de gobierno: la Asamblea General.
El capítulo I de los estatutos (Artículos 1 a 4) define a la asociación; los capítulos II (Art. 5) y III (Art. 6) especifican los objetivos y las funciones.
El capítulo IV (Art. 7) define que en el Distrito Federal reside el domicilio legal de la asociación, independientemente de en donde se encuentre la institución que represente a la presidencia de la Mesa Directiva.
El capítulo V (Art. 8) define como integrantes de la asociación a las instituciones educativas de nivel medio superior, superior y de posgrado que tengan programas de formación en informática o computación, y que estén organizados con base en los ordenamientos federales y estatales sobre educación. Cada institución asociada tiene derecho a un voto en las reuniones de asamblea y puede nombrar a tantos miembros como institutos, facultades, escuelas, centros, colegios, unidades, campus, planteles y divisiones tengan que impartan programas académicos en informática y computación. Los asociados se clasifican en tres grupos, atendiendo al número de sus miembros registrados: Asociado tipo 1 - instituciones con hasta 3 miembros con vigencia en su cuota anual. Asociado tipo 2 - instituciones con más de 3 y hasta 10 miembros vigentes. Asociado tipo 3 - instituciones con más de 10 miembros vigentes.
En el capítulo VI (Arts. 9 a 11) se detallan los derechos y obligaciones de los asociados y miembros.
El capítulo VII (Arts. 12 a 28) define el modo de funcionamiento de la organización y especifica que la autoridad máxima de la ANIEI reside en la Asamblea General de Asociados. Divide al país en 8 regiones y define a la Mesa Directiva y sus funciones.
El capítulo VIII (Arts. 29 a 36) trata sobre la operación de las reuniones de la asociación y los mecanismos para las votaciones. Se especifica que deberá haber al menos una asamblea anual ordinaria.
El capítulo IX (Art. 37) define el criterio para la renovación (bianual) de la mesa directiva.
En el capítulo X (Arts. 38 y 39) se indica el criterio para la posible reforma de los estatutos.
El capítulo XI (Arts. 40 a 42) habla sobre las cuotas y el financiamiento de la asociación.
El capítulo XII (Arts. 43 a 48) se dedica a las actividades requeridas para una eventual disolución y liquidación de la asociación.
Por último, el capítulo XIII (Art 49), en cumplimiento con la legislación federal, especifica la exclusión de extranjeros en la asociación.

Elementos que intervienen en un software

Software[1] (pronunciación AFI:[ˈsɔft.wɛɻ]), palabra proveniente del inglés (literalmente: partes blandas o suaves), que en español no posee una traducción adecuada al contexto, por lo cual se la utiliza asiduamente sin traducir y así fue admitida por la Real Academia Española (RAE). Aunque no es estrictamente lo mismo, suele sustituirse por expresiones tales como programas (informáticos) o aplicaciones (informáticas).[2]
La palabra «software» se refiere al equipamiento lógico o soporte lógico de una computadora digital, y comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware).

Interfaces y ventanas de Programas en una pantalla.
Tales componentes lógicos incluyen, entre otros, aplicaciones informáticas tales como procesador de textos, que permite al usuario realizar todas las tareas concernientes a edición de textos; software de sistema, tal como un sistema operativo, el que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y el resto de las aplicaciones, también provee una interfaz para el usuario.
En la figura 1 se muestra uno o más software en ejecución, en este caso con ventanas, iconos y menúes que componen las interfaces gráficas, que comunican la computadora con el usuario, y le permiten interactuar.

Elementos que intervienen en un hardware

Hardware típico de una computadora personal.1. Monitor2. Placa base3. CPU4. Memoria RAM5. Tarjeta de expansión6. Fuente de alimentación7. Disco óptico8. Disco duro9. Teclado10. Mouse
Hardware (pronunciación AFI: /ˈhɑːdˌwɛə/ ó /ˈhɑɹdˌwɛɚ/) corresponde a todas las partes físicas y tangibles[1] de una computadora: sus componentes eléctricos, electrónicos, electromecánicos y mecánicos;[2] sus cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado; contrariamente al soporte lógico e intangible que es llamado software. El término proviene del inglés[3] y es definido por la RAE como el "Conjunto de los componentes que integran la parte material de una computadora".[4] Sin embargo, el término, aunque es lo más común, no necesariamente se aplica a una computadora tal como se la conoce, así por ejemplo, un robot también posee hardware (y software).[5] [6]
La historia del hardware del computador se puede clasificar en tres generaciones, cada una caracterizada por un cambio tecnológico de importancia. Este hardware se puede clasificar en: básico, el estrictamente necesario para el funcionamiento normal del equipo, y el complementario, el que realiza funciones específicas.
Un sistema informático se compone de una CPU, encargada de procesar los datos, uno o varios periféricos de entrada, los que permiten el ingreso de la información y uno o varios periféricos de salida, los que posibilitan dar salida (normalmente en forma visual o auditiva) a los datos.

Caracterisicas del software y hardware

Software

1. El software se desarrolla o construye; no se manufactura en el sentido clásico.
A pesar de que existen similitudes entre el desarrollo del software y la manufactura del hardware, las dos actividades serian diferentes en lo fundamental. En ambas la alta calidad se alcanza por medio del buen diseño, la fase de manufactura del hardware puede incluir problemas de calidad existentes en el software.
2. El software no se desgasta.
El software es inmune a los males ambientales que desgasten el hardware. Por lo tanto la curva de tasas de fallas para el software debería tener la forma de la “curva idealizada”. Los defectos sin descubrir causan tasas de fallas altas en las primeras etapas de vida de un programa. Sin embargo, los errores se corrigen y la curva se aplana: el software no se desgasta, pero si se deteriora.
3. A pesar de que la industria tiene una tendencia hacia la construcción por componentes, la mayoría del software aun se construye a la medida.
Un componente de software se debe diseñar e implementar de forma que puede utilizarse en muchos programas diferentes.
Los componentes reutilizables modernos encapsulan tanto los datos como el proceso se aplican a estos, lo que permite al ingeniero de software crear nuevas aplicaciones nuevas a partir de partes reutilizables.
hardware
A grandes rasgos, la máquina posee las siguientes características
Microprocesador AMD Geode de 366 Mhz.
Liviana y práctica
Conexión inalámbrica
3 puertos USB
Salida a monitor VGA
512 MB para almacenamiento de usuario.
1 Conector serie tipo RS232
Detalles técnicos
Los siguientes detalles técnicos de la máquina puede estar sujeto a algunos cambios, ya que el modelo definitivo no ha sido fabricado cantidad.
Dimensiones
Medidas: 193mm × 229mm × 64mm
Peso: Menos de 1.5 KG
Resistente y robusta
Núcleo del microprocesador
CPU:
Velocidad del reloj de la CPU: 366 Mhz
Compatibilidad: X86/X87-compatible
Chipset: AMD CS5536 South Bridge (datasheet)
Controlador gráfico: Integrado en el Geode CPU; arquitectura de memoria unificada
Controlador embebido (en producción), ENE KB3700: Imagen:KB3700-ds-01.pdf
Memoria DRAM: 128MB dynamic RAM
Data rate: Dual – DDR266 – 133 Mhz
BIOS: 1024KB SPI-interface flash ROM; LinuxBIOS open-source BIOS
Soporte de almacenamiento masivo: 512MB SLC NAND flash, controlador flash de alta velocidad
Discos: no contiene medios móvil
Pantalla
Pantalla de cristal líquido: 7.5” Dual-mode TFT display
Area visible: 151.6 mm × 113.4 mm
Resolución: 1200 (H) × 900 (V) resolución (200 dpi)
Pantalla monocromática: Alta-Resolución, modo monocromática reflectiva
Colores: Resolución estándar, modo de color transmitible
Periféricos integrado:
Teclado: 70+ teclas
Teclas de control del cursor: Cinco-teclas de control del cursos; cuatro teclas de dirección más la tecla enter
Touchpad: Doble capacidad/resistencia; soporta modo de escritura de entrada
Audio: Analog Devices AD1888, AC97-compatible audio codec; estereo, con dos parlantes incorporados; monofónico, con micrófono incorporado y usando el Analog Devices SSM2211 para la aplificación del audio
Inalámbrica: Marvell 88W8388, 802.11b/g compatible; ajuste doble, antenas coaxil rotable; soporte a recepción diversa
Status indicators: Power, battery, WiFi; visible lid open or closed
Cámara video: 640x480 resolution, 30FPS
Conectores externos:
Alimentación: 2-pin DC-input, 10 to 25 V, -23 to -10 V
Lineas de salida: Estandar 3.5mm 3-pin stereo audio jack
Micrófono: Estandar 3.5mm 2-pin mono micrófono jack
Expansión: 3 conectores Tipo-A USB-2.0; Ranura para tarjetas SD
Consumo máximo: 500 mA (total)
Batería:
Tipo: 5 Celdas, configuración 6V series
Batería cambiable
Capacidad: 22.8 Watt-horas
Tipo de celda: NiMH
Sensor térmico integrado
Ciclo de vida: Mínimo 2,000 ciclos de carga/descarga
BIOS/loader:
LinuxBIOS es utilizado para la línas de producción

Microprocesadores

El microprocesador es un circuito integrado que contiene algunos o todos los elementos hardware, y el de CPU, que es un concepto lógico. Una CPU puede estar soportada por uno o varios microprocesadores, y un microprocesador puede soportar una o varias CPU. Un núcleo suele referirse a una porción del procesador que realiza todas las actividades de una CPU real.
La tendencia de los últimos años ha sido la de integrar más núcleos dentro de un mismo empaque, además de componentes como memorias Cache y controladores de memoria, elementos que antes estaban montados sobre la placa base como dispositivos individuales.[1]

Funciones de los buses


En arquitectura de computadores, el bus es un sistema digital que transfiere datos entre los componentes de un ordenador o entre ordenadores. Está formado por cables o pistas en un circuito impreso, dispositivos como resistencias y condensadores además de circuitos integrados. En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera que la comunicación entre las partes de computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.
La tendencia en los últimos años es el uso de buses seriales como el USB, Custom Firewire para comunicaciones con periféricos y el reemplazo de buses paralelos para conectar toda clase de dispositivos, incluyendo el microprocesador con el chipset en la propia placa base. Son conexiones con lógica compleja que requieren en algunos casos gran poder de computo en los propios dispositivos, pero que poseen grandes ventajas frente al bus paralelo que es menos inteligente.
Existen diversas especificaciones de bus que definen un conjunto de características mecánicas como conectores, cables y tarjetas, además de protocolos eléctricos y de señales.

Sistemas Operativos


Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración de los dispositivos periféricos.
Cuando se aplica voltaje al procesador de un dispositivo electrónico, éste ejecuta un reducido código en lenguaje ensamblador localizado en una dirección concreta en la ROM (dirección de reset) y conocido como reset code, que a su vez ejecuta una rutina con la que se inicializa el hardware que acompaña al procesador. También en esta fase suele inicializarse el controlador de las interrupciones. Finalizada esta fase se ejecuta el código de arranque (startup code), también código en lenguaje ensamblador, cuya tarea más importante es ejecutar el programa principal (main()) del software de la aplicación.[1]
Un sistema operativo se puede encontrar en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras, radios, etc).
Funciones básicas
Los sistemas operativos, en su condición de capa software que posibilitan y simplifica el manejo de la computadora, desempeñan una serie de funciones básicas esenciales para la gestión del equipo. Entre las más destacables, cada una ejercida por un componente interno (módulo en núcleos monolíticos y servidor en micronúcleos), podemos reseñar las siguientes:
Proporcionar más comodidad en el uso de un computador.
Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas)
Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).
Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático: suministro de interfaz al usuario, administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades.
Interfaces del usuario
Es la parte del sistema operativo que permite comunicarse con él, de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.
Administración de recursos
Sirven para administrar los recursos de hardware y de redes de un sistema informático, como la CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
Administración de archivos
Un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas. También implica mantener el registro de la ubicación física de los archivos en los discos magnéticos y en otros dispositivos de almacenamiento secundarios.
Administración de tareas
Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales. Los programas controlan qué áreas tienen acceso al CPU y por cuánto tiempo. Las funciones de administración de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad.
Servicio de soporte
Los servicios de soporte de cada sistema operativo dependerán de la implementación particular de éste con la que estemos trabajando. Entre las más conocidas se pueden destacar las implementaciones de Unix, desarrolladas por diferentes empresas de software, los sistemas operativos de Apple Inc., como Mac OS X para las computadoras de Apple Inc., los sistemas operativos de Microsoft, y las implementaciones de software libre, como GNU/Linux o BSD producidas por empresas, universidades, administraciones públicas, organizaciones sin fines de lucro y/o comunidades de desarrollo.
Estos servicios de soporte suelen consistir en:
Actualización de versiones.
Mejoras de seguridad.
Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente para administrar alguna determinada función, ...).
Controladores para manejar nuevos periféricos (este servicio debe coordinarse a veces con el fabricante del hardware).
Corrección de errores de software.
Otros.
No todas las utilidades de administración o servicios forman parte del sistema operativo, además de éste, hay otros tipos importantes de software de administración de sistemas, como los sistemas de administración de base de datos o los programas de administración de redes. El soporte de estos productos deberá proporcionarlo el fabricante correspondiente (que no tiene porque ser el mismo que el del sistema operativo).
Perspectiva histórica

Estimación del uso actual de sistemas operativos según una muestra de computadoras con acceso a Internet (Fuente: W3counter).
Los primeros sistemas (1945 - 1950) eran grandes máquinas operadas desde la consola maestra por los programadores. Durante la década siguiente (1950 - 1960) se llevaron a cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas magnéticas, etc. Esto a su vez provocó un avance en el software: compiladores, ensambladores, cargadores, manejadores de dispositivos, etc.
Problemas de explotación y soluciones iniciales
El problema principal de los primeros sistemas era la baja utilización de los mismos, la primera solución fue poner un operador profesional que manejaba el sistema, con lo que se eliminaron las hojas de reserva, se ahorró tiempo y se aumentó la velocidad.
Para ello, los trabajos se agrupaban de forma manual en lotes mediante lo que se conoce como procesamiento por lotes (batch) sin automatizar.
Monitores residentes

Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecución secuencial
Según fue avanzando la complejidad de los programas, fue necesario implementar soluciones que automatizaran la organización de tareas sin necesidad de un operador. Debido a ello se crearon los monitores residentes: programas que residían en memoria y que gestionaban la ejecución de una cola de trabajos.
Un monitor residente estaba compuesto por un cargador, un Intérprete de comandos y un Controlador (drivers) para el manejo de entrada/salida.
Sistemas con almacenamiento temporal de E/S
Se avanza en el hardware, creando el soporte de interrupciones. Luego se lleva a cabo un intento de solución más avanzado: solapar la E/S de un trabajo con sus propios cálculos. Por ello se crea el sistema de buffers con el siguiente funcionamiento:
Un programa escribe su salida en un área de memoria (buffer 1).
El monitor residente inicia la salida desde el buffer y el programa de aplicación calcula depositando la salida en el buffer 2.
La salida desde el buffer 1 termina y el nuevo cálculo también.
Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer 1.
El proceso se puede repetir de nuevo.
Los problemas surgen si hay muchas más operaciones de cálculo que de E/S (limitado por la CPU) o si por el contrario hay muchas más operaciones de E/S que cálculo (limitado por la E/S).
Spoolers
Hace aparición el disco magnético con lo que surgen nuevas soluciones a los problemas de rendimiento. Se eliminan las cintas magnéticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas). Debido al solapamiento del cálculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line).
Sistemas Operativos Multiprogramados
Surge un nuevo avance en el hardware: el hardware con protección de memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento:
Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos.
Se pueden mantener en memoria varios programas.
Se asigna el uso de la CPU a los diferentes programas en memoria.
Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo que éste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas Operativos multiprogramados, los cuales cumplen con las siguientes funciones:
Administrar la memoria.
Gestionar el uso de la CPU (planificación).
Administrar el uso de los dispositivos de E/S.
Cuando desempeña esas tareas, el monitor residente se transforma en un sistema operativo multiprogramado.
Llamadas al Sistema Operativo
Definición breve: llamadas que ejecutan los programas de aplicación para pedir algún servicio al SO.
Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es el interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO, y abrimos un programa diseñado para trabajar sobre el anterior, en general el programa no funcionará, a no ser que el nuevo SO tenga la misma interfaz. Para ello:
Las llamadas correspondientes deben tener el mismo formato.
Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior.
Modos de ejecución en un CPU
Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el SO, tiene que poder utilizar todo el juego de instrucciones del CPU. Por ello, una CPU debe tener (al menos) dos modos de operación diferentes:
Modo usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido de las aplicaciones.
Modo supervisor: la CPU debe poder ejecutar el juego completo de instrucciones.
Llamadas al Sistema
Una aplicación, normalmente no sabe dónde está situada la rutina de servicio de la llamada. Por lo que si ésta se codifica como una llamada de función, cualquier cambio en el SO haría que hubiera que reconstruir la aplicación.
Pero lo más importante es que una llamada de función no cambia el modo de ejecución de la CPU. Con lo que hay que conseguir llamar a la rutina de servicio, sin tener que conocer su ubicación, y hacer que se fuerce un cambio de modo de operación de la CPU en la llamada (y la recuperación del modo anterior en el retorno).
Esto se hace utilizando instrucciones máquina diseñadas específicamente para este cometido, distintas de las que se usan para las llamadas de función.
Bibliotecas de interfaz de llamadas al sistema
Las llamadas al sistema no siempre tienen una expresión sencilla en los lenguajes de alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema. Las hay para distintos lenguajes de programación.
La aplicación llama a una función de la biblioteca de interfaz (mediante una llamada normal) y esa función es la que realmente hace la llamada al sistema.
Interrupciones y excepciones
El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones:
Algún dispositivo de E/S necesita atención.
Se ha producido una situación de error al intentar ejecutar una instrucción del programa (normalmente de la aplicación).
En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es decir, no figura en el programa.
Según los dos casos anteriores tenemos las interrupciones y la excepciones:
Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la operación de la que se estaba ocupando, ya ha terminado.
Excepción: una situación de error detectada por la CPU mientras ejecutaba una instrucción, que requiere tratamiento por parte del SO.
Tratamiento de las interrupciones
Una interrupción se trata en todo caso, después de terminar la ejecución de la instrucción en curso.
El tratamiento depende de cuál sea el dispositivo de E/S que ha causado la interrupción, ante la cual debe poder identificar el dispositivo que la ha causado.
Importancia de las interrupciones
El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicación, mientras otra permanece a la espera de que concluya una operación en un dispositivo de E/S.
El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se continúe ejecutando.
En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).
Excepciones
Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad de control lanza una excepción para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupción, la instrucción en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas.
Clases de excepciones
Las instrucciones de un programa pueden estar mal construidas por diversas razones:
El código de operación puede ser incorrecto.
Se intenta realizar alguna operación no definida, como dividir por cero.
La instrucción puede no estar permitida en el modo de ejecución actual.
La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.
Importancia de las excepciones
El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecución de la CPU y los mecanismos de protección de la memoria, que las aplicaciones realicen operaciones que no les están permitidas. En cualquier caso, el tratamiento específico de una excepción lo realiza el SO.
Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y éste es el que trata la situación como convenga.
Es bastante frecuente que el tratamiento de una excepción no retorne al programa que se estaba ejecutando cuando se produjo la excepción, sino que el SO aborte la ejecución de ese programa. Este factor depende de la pericia del programador para controlar la excepción adecuadamente.
Componentes de un sistema operativo
Gestión de procesos
Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:
Crear y destruir los procesos.
Parar y reanudar los procesos.
Ofrecer mecanismos para que se comuniquen y sincronicen.
La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.
Gestión de la memoria principal
La Memoria (informática) es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:
Conocer qué partes de la memoria están utilizadas y por quién.
Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
Asignar y reclamar espacio de memoria cuando sea necesario.
Gestión del almacenamiento secundario
Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:
Planificar los discos.
Gestionar el espacio libre.
Asignar el almacenamiento.
El sistema de E/S
Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.
Sistema de archivos
Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de:
Construir y eliminar archivos y directorios.
Ofrecer funciones para manipular archivos y directorios.
Establecer la correspondencia entre archivos y unidades de almacenamiento.
Realizar copias de seguridad de archivos.
Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT2, NTFS...
Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS , que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante información ya que el tamaño máximo de un fichero con un Sistema de Archivos FAT32 está limitado a 4 gigabytes sin embargo en un sistema NTFS el tamaño es considerablemente mayor.
Sistemas de protección
Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:
Distinguir entre uso autorizado y no autorizado.
Especificar los controles de seguridad a realizar.
Forzar el uso de estos mecanismos de protección.
Sistema de comunicaciones
Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.
Programas de sistema
Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:
Manipulación y modificación de archivos.
Información del estado del sistema.
Soporte a lenguajes de programación.
Comunicaciones.
Gestor de recursos
Como gestor de recursos, el Sistema Operativo administra
La CPU (Unidad Central de Proceso, donde está alojado el microprocesador).
Los dispositivos de E/S (entrada y salida)
La memoria principal (o de acceso directo).
Los discos (o memoria secundaria).
Los procesos (o programas en ejecución).
...
y en general todos los recursos del sistema.

Componentes del Sistema Operativo
Características
Administración de tareas
Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.
Administración de usuarios
Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo.
Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
Manejo de recursos
Centralizado: Si permite utilizar los recursos de una sola computadora.
Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos... ) de más de una computadora al mismo tiempo.
Revolución de los Sistemas Operativos:Windows