miércoles, 21 de diciembre de 2011

UML...Lenguaje Unificado de Modelado

El Lenguaje Unificado de Modelado preescribe un conjunto de notaciones y diagramas estándar para
modelar sistemas orientados a objetos, y describe la semántica esencial de lo que estos diagramas y
símbolos significan. Mientras que ha habido muchas notaciones y métodos usados para el diseño
orientado a objetos, ahora los modeladores sólo tienen que aprender una única notación.
UML se puede usar para modelar distintos tipos de sistemas: sistemas de software, sistemas de hardware,
y organizaciones del mundo real. UML ofrece nueve diagramas en los cuales modelar sistemas.
• Diagramas de Casos de Uso para modelar los procesos ’business’.
• Diagramas de Secuencia para modelar el paso de mensajes entre objetos.
• Diagramas de Colaboración para modelar interacciones entre objetos.
• Diagramas de Estado para modelar el comportamiento de los objetos en el sistema.
• Diagramas de Actividad para modelar el comportamiento de los Casos de Uso, objetos u operaciones.
• Diagramas de Clases para modelar la estructura estática de las clases en el sistema.
• Diagramas de Objetos para modelar la estructura estática de los objetos en el sistema.
• Diagramas de Componentes para modelar componentes.
• Diagramas de Implementación para modelar la distribución del sistema.
 
UML es una consolidación de muchas de las notaciones y conceptos más usadas orientados a objetos.
Empezó como una consolidación del trabajo de Grade Booch, James Rumbaugh, e Ivar Jacobson,
creadores de tres de las metodologías orientadas a objetos más populares.
En 1996, el Object Management Group (OMG), un pilar estándar para la comunidad del diseño
orientado a objetos, publicó una petición con propósito de un metamodelo orientado a objetos de
semántica y notación estándares. UML, en su versión 1.0, fue propuesto como una respuesta a esta
petición en enero de 1997. Hubo otras cinco propuestas rivales. Durante el transcurso de 1997, los seis
promotores de las propuestas, unieron su trabajo y presentaron al OMG un documento revisado de UML,
llamado UML versión 1.1. Este documento fue aprobado por el OMG en Noviembre de 1997. El OMG
llama a este documento OMG UML versión 1.1. El OMG está actualmente en proceso de mejorar una
edición técnica de esta especificación, prevista su finalización para el 1 de abril de 1999.. UML ofrece notación y semántica estándar
 
UML preescribe una notación estándar y semánticas esenciales para el modelado de un sistema orientado
a objetos. Previamente, un diseño orientado a objetos podría haber sido modelado con cualquiera de la
docena de metodologías populares, causando a los revisores tener que aprender las semáticas y
notaciones de la metodología empleada antes que intentar entender el diseño en sí. Ahora con UML,

¿Qué es UML?
diseñadores diferentes modelando sistemas diferentes pueden sobradamente entender cada uno los
diseños de los otros. 

UML no es un Método
Aun así, UML no preescribe un proceso o método estándar para desarrollar un sistema. Hay varias
metodologías existentes; entre las más populares se incluyen las siguientes:
• Catalysis: Un método orientado a objetos que fusiona mucho del trabajo reciente en métodos
orientados a objetos, y además ofrece técnicas específicas para modelar componentes distribuidos.
• Objetory: Un método de Caso de Uso guiado para el desarrollo, creado por Ivar Jacobson.
• Shlaer/Mellor: El método para diseñar sistemas de tiempo real, puesto en marcha por Sally Shlaer y
Steven Mellor en dos libros de 1991, Ciclos de vida de Objetos, modelando el Mundo en Estados y
Ciclos de vida de Objetos, Modelando el mundo en Datos (Prentice Hall). Shlaer/Mellor countinúan
actualizando su método continuamente (la actualización más reciente es el OOA96 report), y
recientemente publicaron una guía sobre cómo usar la notación UML con Shlaer/Mellor.
• Fusion: Desarrollado en Hewlett Packard a mediados de los noventa como primer intento de un
método de diseño orientado a objetos estándar. Combina OMT y Booch con tarjetas CRC y métodos
formales. (www.hpl.hp.com/fusion/file/teameps.pdf)
• OMT: La Técnica de Modelado de Objetos fue desarrollada por James Rumbaugh y otros, y publicada
en el libro de gran influencia "Diseño y Modelado Orientado a Objetos" (Prentice Hall, 1991). Un
método que propone análisis y diseño ’iterative’, más centrado en el lado del análisis.
• Booch: Parecido al OMT, y también muy popular, la primera y segunda edición de "Diseño Orientado
a Objetos, con Aplicaciones" (Benjamin Cummings, 1991 y 1994), (Object-Oriented Design, With
Applications), detallan un método ofreciendo también diseño y análisis ’iterative’, centrándoso en el
lado del diseño.
Además, muchas organizaciones han desarrollado sus propias metodologías internas, usando diferentes
diagramas y técnicas con orígenes varios. Ejemplos son el método Catalyst por Computer Sciences
Corporation (CSC) o el Worlwide Solution Design and Delivery Method (WSDDM) por IBM. Estas
metodologías difieren, pero generalmente combinan análisis de flujo de trabajo, captura de los requisitos,
y modelado de negocio con modelado de datos, con modelado de objetos usando varias notaciones
(OMT, Booch, etc), y algunas veces incluyendo técnicas adicionales de modelado de objetos como Casos
de Uso y tarjetas CRC. La mayoría de estas organizaciones están adoptando e incorporando el UML
como la notación orientada a objetos de sus metodologías.
Algunos modeladores usarán un subconjunto de UML para modelar ’what they’re after’, por ejemplo
simplemente el diagrama de clases, o solo los diagramas de clases y de secuencia con Casos de Uso.
Otros usarán una suite más completa, incluyendo los diagramas de estado y actividad para modelar
sistemas de tiempo real, y el diagrama de implementación para modelar sistemas distribuidos. Aun así, 

  ¿Qué es UML?
otros no estarán satisfechos con los diagramas ofrecidos por UML, y necesitarán extender UML con
otros diagramas como modelos relacionales de datos y ’CRC cards’. 

 Extensiones UML 1.1
Los mecanismos de de extensibilidad incorporados permiten a UML ser una especie de especificación
abierta que puede cubrir aspectos de modelado no especificados en el documento 1.1. Estos mecanismos
permiten extender la notación y semática de UML. 

 Esteroetipos
Los estereotipos son el mecanismo de extensibilidad incorporado más utilizado dentro de UML. Un
estereotipo respresenta una distinción de uso. Puede ser aplicado a cualquier elemento de modelado,
incluyendo clases, paquetes, relaciones de herencia, etc. Por ejemplo, una clase con estereotipo ’actor’ es
una clase usada como un agente externo en el modelado de negocio. Una clase patrón es modelada como
una clase con estereotipo parametrizado, lo que significa que puede contener parámetros. 

Extensiones de Modelado de Negocio
Un documento separado dentro de la especificación UML define clases y estereotipos de asociación
específicos que extienden UML hasta cubrir conceptos de modelado de negocio. Esto incluye
’stereotyping’ una clase como un actor, un trabajador (’both internal and case’), o una entidad, y
’stereotyping’ una asociación como una comunicación simple, o una subcripción entre un origen y un
objetivo. 

Lenguaje restrictivo (constraint) de objetos (OCL)
Una imagen puede describir muchas palabras. De igual modo, un modelo gráfico puede describir una
cierta parte del comportamiento, después de la cual es necesario rellenar detalles adicionales con
palabras. Describiendo algo con palabras, sin embargo, casi siempre desemboca en ambiguedades; por
ejemplo, "¿que quería decir cuando escribió eso?". El Lenguaje Restrictivo (constraint) de Objetos
(OCL) está incorporado en UML como un estándar para especificar detalles adicionales, o precisar
detalles en la estrucutura de los modelos.
Desarrollado dentro de la IBM Insurace Division como un lenguaje de modelado de negocio, el OCL es
un lenguaje formal diseñado para ser fácil de leer y de escribir. OCL es más funcional que el lenguaje
natural, pero no tan preciso como un lenguaje de programación - no puede ser usado para escribir lógicas
de lógica de programación o control de flujo. Puesto que OCL es un lenguaje para la expresión pura, sus
declaraciones están garantizadas de no tener efectos laterales - simplemente transportan un valor y nunca
pueden cambiar el estado del sistema. 

. ¿Qué es UML? 
 Más Extensiones
Dos áreas específicas que UML no cubre actualmente, ni con sus extensiones, son análisis guiados por la
responsabilidad y modelado de bases de datos relacionales. Esta guía introduce estas técnicas como
extensiones actuales del mundo real para UML que se deberían tener en cuenta. 

Análisis guiados por la responsabilidad con tarjetas CRC
Una técnica muy usada para hacerse a la idea de cómo hay que pensar trantando con orientación a
objetos son los análisis guiados por la responsabilidad con las tarjetas CRC (CRC - Colaborador y
Responsabilidad de Clase). Con esta técnica, las clases descubiertas durante el análisis pueden ser
filtradas para determinar qué clases son realmente necesarias para el sistema. 

 Modelo Relacional de datos
Aunque las bases de datos orientadas a objetos se están volviendo más populares, en el entorno de
desarrollo actual, la base de datos relacional sigue siendo el método predominante para almacenar datos.
Los diagramas de clases de UML se pueden usar para modelar la base de datos relacional en la que el
sistema está basado, sin embargo, los diagramas tradicionales de modelado de datos capturan más
información sobre la base de datos relacional y son más adecuados para modelarla. Esta guía trata el uso
de Diagramas de Relaciones de Entidad (ER) como una extensión importante de UML para el modelado
de bases de datos relacionales.
 
 Una perspectiva general de UML 
Una vuelta por un caso de uso
Una vez más, UML es una notación, no un método. No preescribe un proceso para modelar un sistema.
No obstante, como UML incluye los diagramas de casos de uso, se le considera estar dotado de una
aproximación al diseño centrada en el problema con los casos de uso. El Diagrama de Caso de Uso nos
da el punto de entrada para analizar los requisitos del sistema, y el problema que necesitamos solucionar.
La Figura 1 muestra un flujo general de cómo los diagramas de UML, con extensiones, interactuan en
una aproximación al diseño con los casos de uso. 

Casos de Uso y Diagramas de Interacción
Un caso de uso se modela para todos los procesos que el sistema debe llevar a cabo. Los procesos se
describen dentro de el caso de uso por una descripción textual o una secuencia de pasos ejecutados. Los
Diagramas de Actividad se pueden usar también para modelar escenarios gráficamente. Una vez que el
comportamiento del sistema está captado de esta manera, los casos de uso se examinan y amplian para
mostrar qué objetos se interrelacionan para que ocurra este comportamiento. Los Diagramas de
Colaboración y de Secuencia se usan para mostrar las relaciones entre los objetos. 

 Clases y Diagramas de Implementación
Conforme se van encontrando los objetos, pueden ser agrupados por tipo y clasificados en un Diagrama
de Clase. Es el diagrama de clase el que se combierte en el diagrama central del análisis del diseño
orientado a objetos, y el que muestra la estructura estática del sistema. El diagrama de clase puede ser
dividido en capas: aplicación, y datos, las cuales muestran las clases que intervienen con la interfaz de
usuario, la lógica del software de la aplicación, y el almacentamiento de datos respectivamente. Los
Diagramas de Componentes se usan para agrupar clases en componentes o módulos. La distribución
general del hardware del sistema se modela usando el Diagrama de Implementación. 

Tarjetas CRC (CRC cards) - Una extensión informal de UML
Como una extensión informal a UML, la técnica de las tarjetas CRC se puede usar para guiar el sistema a
través de análisis guiados por la responsabilidad. Las clases se examinan, se filtran y se refinan en base a
sus responsabilidades con respecto al sistema, y las clases con las que necesitan colaborar para completar
sus responsabilidades. 

. Una perspectiva general de UML 
Diagramas de Estado
El comportamiento en tiempo real de cada clase que tiene comportamiento dinámico y significativo, se
modela usando un Diagrama de Estado. El diagrama de actividad puede ser usado también aquí, esta vez
como una extensión del diagrama de estado, para mostrar los detalles de las acciones llevadas a cabo por
los objetos en respuesta a eventos internos. El diagrama de actividad se puede usar también para
representar gráficamente las acciones de métodos de clases.

Implementando el diseño
La implementación del sistema trata de traducir información desde múltiples modelos UML en código y
estructura de bases de datos. Cuando se modela un sistema grande, es útil fragmentar el sistema en su
capa ’business’ (incluyendo los objetos de la interfaz de usuario), su capa de aplicación (incluyendo los
objetos de implementación), y su capa de datos (incluyendo la estrucutra de la base de datos y el acceso a
objetos). 

 Implementando la aplicación
El Diagrama de Clase se usa para generar una estructura base del código en el lenguaje escogido.
Información de los diagramas de interacción, estado, y actividad, puede ofrecer detalles de la parte
procedimental del código de implementación. 

Implementando el diseño de Bases de Datos
La capa de datos del diagrama de clase se puede usar para implementar direcatmente un diseño orientado
a objetos de una base de datos, o, como extensión de UML, puede ser referenciado en un diagrama de
relación de entidad para más análisis de relaciones de entidad. Está en el diagrama de relación de entidad
(ER diagram, entity relationship) el cual relaciona entre entidades que pueden ser modeladas basadas en
atributos clave. El diagrama de relación de entidad lógico ofrece una base desde la cual construir un
diagrama físico representando las tablas y relaciones actuales de la base de datos relacional. 
 Probar teniendo en cuenta los requisitos
Los casos de uso se utilizan también para probar el sistema y ver si satisface los requisitos iniciales. Los
pasos de los casos de uso van llevando a cabo para determinar si el sistema está satisfacciendo los
requisitos del usuario.
 
Un estudio a fondo de UML
Las siguientes secciones presentan una vista más detallada al modelado con UML. Un sistema de reserva
de aerolíneas simple se va a usar para mostrar los diagramas y técnicas de modelado con UML. Se
cubren los siguientes puntos:
• Organizando tu sistema con paquetes
• Modelando con Casos de Uso, y usándolos para averiguar los requisitos del sistema
• Modelando con Diagramas de Secuencia y Colaboración
• Analizando y diseñando con el Diagrama de Clase, y extendiendo UML con la técnica de las tarjetas
CRC
• Modelando comportamiento con Diagramas de Actividad y de Estado
• Modelando componentes de software, distribución e implementación
• Extendiendo UML con el diseño de Bases de Datos relacionales
Una de las tareas clave para modelar un sistema de sofware de grandes dimensiones es dividirlo primero
en áreas manejables. Aunque estas áreas se llaman dominios, categorías o subsistemas, la idea es la
misma: dividir el sistema en áreas que tengan competencias parecidas.
UML introduce la noción de un paquete como el ítem universal para agrupar elementos, permitiendo a
los modeladores subdividir y categorizar sistemas. Los paquetes pueden ser usados en cualquier nivel,
desde el nivel más alto, donde son usados para subdividir el sistema en dominios, hasta el nivel más bajo,
donde son usados para agrupar casos de uso individuales, clases, o componentes.
 
 Modelado de Casos de Uso
El modelado de Casos de Uso es la técnica más efectiva y a la vez la más simple para modelar los
requisitos del sistema desde la perspectiva del usuario. Los Casos de Uso se utilizan para modelar cómo
un sistema o negocio funciona actualmente, o cómo los usuarios desean que funcione. No es realmente
una aproximación a la orientación a objetos; es realmente una forma de modelar procesos. Es, sin
embargo, una manera muy buena de dirigirse hacia el análisis de sistemas orientado a objetos. Los casos
de uso son generalmente el punto de partida del análisis orientado a objetos con UML.
 
Un estudio a fondo de UML
El modelo de casos de uso consiste en actores y casos de uso. Los actores representan usuarios y otros
sistemas que interaccionan con el sistema. Se dibujan como "muñecos" de palo. Actualmente representan
el tipo de usuario, no una instancia de usuario. Los casos de uso representan el comportamiento del
sistema, los escenarios que el sistema atraviesa en respuesta a un estímulo desde un actor. Se dibujan
como elipses.

Cada caso de uso se documenta por una descripción del escenario. La descripción puede ser escrita en
modo de texto o en un formato paso a paso. Cada caso de uso puede ser también definido por otras
propiedades, como las condiciones pre- y post- del escenario --- condiciones que existen antes de que el
escenario comience, y condiciones que existen después de que el escenario se completa. Los Diagramas
de Actividad ofrecen una herramienta gráfica para modelar el proceso de un Caso de Uso. éstos son
descritos en una sección posterior de este documento. 

 Estudiar y descubrir los requisitos
El objetivo final en cualquier diseño de software es satisfacer los requisitos del usuario para el sistema.
Estos requisitos pueden ser requisitos de software, requisitos de productos, o requisitos de pruebas. La
meta de capturar y comprobar los requisitos del usuario es asegurar que todos los requisitos son
completados por el diseño, y que el diseño es acorde con los requisitos especificados.
Muchas veces los requisitos del sistema ya existen en forma de documentos de requisitos. Los casos de
uso se utilizan para correlacionar cada escenario con los requisitos que completa. Si los requisitos no
existen, modelar el sistema a través de los Casos de Uso, permite el descubrimiento de estos requisitos. 

 Organización de Diagramas de Casos de Uso
Durante el análisis de negocio (business) del sistema, puedes desarrollar un modelo de caso de uso para
este sistema, y construir paquetes para representar los varios dominios de negocio (business) del sistema.
Puedes descomponer cada paquete con un Diagrama de Caso de Uso que contenga los Casos de Uso de
un dominio, con interacciones de actor. 

Un Caso de Uso para cada escenario
El objetivo es construir un Diagrama de Caso de Uso para cada tipo de escenario diferente en el sistema.
Cada escenario muestra una secuencia diferente de interacciones entre actores y el sistema, sin
condiciones ’or’.
 
 Un estudio a fondo de UML 
 Modelar secuencias alternas a través de la relación "Extiende"
(extends)
Típicamente, uno modela cada Caso de Uso con una secuencia normal de acciones. El usuario entonces
considera condiciones "que si" para cada paso, y desarrolla Casos de Uso basados en estas secuencias
alternas de eventos. Las secuencias alternas se modelan en casos de uso separados, los cuales están
relacionados con el caso de uso original mediante una relación "Extiende" (extends). Las relacciones
Extiende (extends) pueden ser pensadas como un caso de uso equivalente a herencia, en el cual el caso de
uso extendido, hereda y modifica el comportamiento del caso de uso original. 

 Eliminar el modelado redundante a través de la relación "Usa"
(uses)
Para eliminar el modelado redundante de buena parte del comportamiento que aparezca en varios casos
de uso, la parte del comportamiento puede ser modelada en un caso de uso separado que está relacionado
con los otros casos de uso mediante la relación "Usa" (uses). La relación Usa (uses) se puede pensar
como un caso de uso equivalente ’of aggregation’.
 
Ayuda en casos de uso probando el sistema frente a los requisitos
Los Casos de Uso también se utilizan para constriur scripts de prueba que se usan a su vez para
comprobar que la aplicación satisface los requisitos de negocio y de sistema.
Cuando has llegado al caso de uso del nivel más bajo, podrías crear un Diagrama de Secuencia para el
Caso de Uso. Con los Diagramas de Secuencia y de Colaboración puedes modelar la implementación del
escenario. 

Diagramas de Secuencia
El Diagrama de Secuencia es uno de los diagramas más efectivos para modelar interacción entre objetos
en un sistema. Un diagrama de secuencia se modela para cada caso de uso. Mientras que el diagrama de
caso de uso permite el modelado de una vista ’business’ del escenario, el diagrama de secuencia contiene
detalles de implementación del escenario, incluyendo los objetos y clases que se usan para implementar
el escenario, y mensajes pasados entre los objetos.
Típicamente uno examina la descripción de un caso de uso para determinar qué objetos son necesarios
para la implementación del escenario. Si tienes modelada la descripción de cada caso de uso como una
 
Un estudio a fondo de UML
secuencia de varios pasos, entonces puedes "caminar sobre" esos pasos para descubrir qué objetos son
necesarios para que se puedan seguir los pasos.
Un diagrama de secuencia muestra los objetos que intervienen en el escenario con líneas discontinuas
verticales, y los mensajes pasados entre los objetos como vectores horizontales. Los mensajes se dibujan
cronológicamente desde la parte superior del diagrama a la parte inferior; la distribución horizontal de
los objetos es arbitraria.
 
Diagrama de Secuencia para un escenario
Durante el análisis inicial, el modelador típicamente coloca el nombre ’business’ de un mensaje en la
línea del mensaje. Más tarde, durante el diseño, el nombre ’business’ es reemplazado con el nombre del
método que está siendo llamado por un objeto en el otro. El método llamado, o invocado, pertenece a la
definición de la case instanciada por el objeto en la recepción final del mensaje. 

Diagramas de Colaboración
El Diagrama de Colaboración presenta una alternativa al diagrama de secuencia para modelar
interacciones entre objetos en el sistema. Mientras que el diagrama de secuencia se centra en la
secuencia cronológica del escenario que estamos modelando, el diagrama de colaboración se centra en
estudiar todos los efectos de un objeto dado durante un escenario. Los objetos se conectan por medio de
enlaces, cada enlace representa una instancia de una asociación entre las clases implicadas. El enlace
muestra los mensajes enviados entre los objetos, el tipo de mensaje (sincrónico, asincrónico, simple,
blanking, y ’time-out’), y la visibilidad de un objeto con respecto a los otros.
 
 Análisis y Diseño con el Diagrama de Clase
El Diagrama de Clase es el el diagrama principal de diseño y análisis para un sistema. En él, la estrucutra
de clases del sistema se especifica, con relaciones entre clases y estructuras de herencia. Durante el
análisis del sistema, el diagrama se desarrolla buscando una solución ideal. Durante el diseño, se usa el
mismo diagrama, y se modifica para satisfacer los detalles de las implementaciones.
 
Un estudio a fondo de UML 
 Desarrollo de Diagramas de Clase durante el análisisAproximación a un Caso de Uso guiado
En una aproximación a un Caso de Uso guiado hacia el análisis orientado a objetos, el diagrama de
clases se desarrolla a través de información obtenida en los Casos de Uso, Diagramas de Secuencia y
Diagramas de Colaboración. Los objetos encontrados durante el análisis son modelados en términos de
la clase a la que instancian, y las interacciones entre objetos son referenciados a relaciones entre las
clases instanciadas.
 
Diagrama de Clase durante la fase de análisis 
 Extensión guiada por la responsabilidad
La técnica de la tarjeta CRC se usa a veces como una extensión a UML para análisis guiados por la
responsabilidad. Las definiciones de clase son refinadas basándose en las responsabilidades de clase y en
otras clases con las que colabora para completar sus responsabilidades.
Cada clase se representa en una tarjeta índice (index card), y los diseñadores establecen los papeles
(roles) de las clases en el sistema para definir su trabajo, y con qué otras necesitan colaborar para
completar sus responsabilidades. Esta información se pasa directamente a un diagrama de clase; las
responsabilidades coinciden con los métodos de clase, las colaboraciones se traducen en asociaciones
entre clases.
 
 Diseño del sistema con Diagramas de Clase
Durante el diseño, el Diagrama de Clase se elabora para tener en cuenta los detalles concretos de la
implementación del sistema. 

 Arquitecturas Multicapas
Una vez concienciados del diseño, estableceremos la arquitectura del sistema. Esto incluye establecer si
será un sistema simple diseñado para correr en una sola máquina, un sistema ’two-tiered’ consistente en
un cliente y un servidor, o un sistema ’multi-tiered’ con objetos interfaz de usuario separados de los
objetos ’business’, separado de la base de datos, cada uno corriendo en plataformas distintas.
 
Un estudio a fondo de UML
Una aproximación a dirigir el diagrama de clase para un sistema complejo es separar el diagrama en
seccionesque muestren la lógica de la aplicación, el diseño de la interfaz de usuario, y las clases
implicadas con el almacenamiento de los datos. Esto se puede hacer físicamente segmentando el
diagrama de clase, usando diagramas separados para cada sección, o simplemente añadiendo una
propiedad a cada clase que ’tracks’ cada ’tier’ al cual pertenece. 

Diseño de Componentes
Un componente es un grupo de objetos o componentes más pequeños que interaccionan entre ellos y se
combinan para dar un servicio. Un componente es similar a una caja negra, en la cual los servicios del
componente se especifican por su interface o interfaces, sin ofrecer concimiento del diseño e
implementación internas del componente. El desarrollo basado en componentes es el proceso de
ensamblar la combinación correcta de componentes en la configuración correcta para llevar acabo la
funcionalidad deseada para un sistema. Los componenetes se representan en el diagrama de clases de
UML especificando la interfaz de una clase o paquete. Hay dos notaciones para mostrar una interfaz -
una es mostrar la interfaz como una ’regular class symbol’ con el estereotipo "interfz", con una lista de
operaciones soportadas por esta interfaz, detalladas en el ’operation department’ (departamento de
operación). ’The alternate, shortcut notation’ es mostrar la interfaz como un circulo pequeño junto con la
clase con una línea sólida, con el nombre de la interfaz en el círculo.
El ejemplo de la Figura 9 muestra que la clase ’Pasajero’ ofrece la operación move(x coord, y coord)
para su apariencia en un GUI, a través de su interfaz ’Displayable’. Ambas notaciones UML de interfaz,
se muestran en la figura. Además, la clase Pasajero también ofrece una opción save(store at) a través de
su interfaz Persistente. Una clase de o componente para conectar con una base de datos podría usar esta
interfaz.
 
Análisis y diseño ’Iterative’
El diagrama de clase se puede desarrollar en una ’iterative fashion’, a través de un ciclo repetido de
análisis, diseño e implementación, y después vuelta al análisis, para empezar el ciclo de nuevo. Este
proceso se suele llamar ’round-trip engineering’. El modelado de herramientas como System Architect
2001 puede facilitar este proceso permitiéndote implementar el diseño en un lenguaje como C++ o Java,
y después traer de vuelta al código a al diagrama de clase, automáticamente actualizando la información
contenida en el diagrama y en el ’underlying repository’.
 
Un estudio a fondo de UML 
 Modelando el comportamiento de las Clases con Diagramas de
Estado
Mientras los diagramas de interacción y colaboración modelan secuencias dinámicas de acción entre
grupos de objetos en un sistema, el diagrama de estado se usa para modelar el comportamiento dinámico
de un objeto en particular, o de una clase de objetos.
Un diagrama de estado se modela para todas las clases que se consideran con un comportamiento
dinámico. En él, modelas la secuencia de estado que un objeto de la clase atraviesa durante su vida en
respuesta a los estímulos recibidos, junto con sus propias respuestas y acciones.
Por ejemplo, un comportamiento de un objeto se modela en términos de en qué estado está inicialmente,
y a qué estado cambia cuando recibe un evento en particular. También modelas qué acciones realiza un
objeto en un estado en concreto.
Los estados representan las condiciones de objetos en ciertos puntos en el tiempo. Los eventos
representan icendentes que hacen que los objetos pasen de un estado a otro. Las líneas de transición
describen el movimiento desde un estado hasta otro. Cada línea de transición se nombre con el evento
que causa esta transición. Las acciones ocurren cuando un objeto llega a un estado.
 
Diagramas de Actividad
El Diagrama de Actividad es un diagrama de flujo del proceso multi-propósito que se usa para modelar el
comportamiento del sistema. Los diagramas de actividad se pueden usar para modelar un Caso de Uso, o
una clase, o un método complicado.
Un diagrama de actividad es parecido a un diagrama de flujo; la diferencia clave es que los diagramas de
actividad pueden mostrar procesado paralelo (parallel processing). Esto es importante cuando se usan
diagramas de actividad para modelar procesos ’bussiness’ algunos de los cuales pueden actuar en
paralelo, y para modelar varios hilos en los programas concurrentes. 

Usando Diagramas de Actividad para modelar Casos de Uso
Los Diagramas de Actividad ofrecen una herramienta gráfica para modelar el proceso de un Caso de Uso.
Se pueden usar como un añadido a una descripción textual del caso de uso, o para listar los pasos del caso
de uso. Una descripción textual, código, u otros diagramas de actividad pueden detallar más la actividad.
 
Un estudio a fondo de UML 
 Usando Diagramas de Actividad para modelar Clases
Cuando se modela el comportamiento de una clase, un diagrama de estado de UML se suel usar
normalmente para modelar situaciones donde ocurren eventos asincrónicos. El diagrama de actividad se
usa conado todos o la mayoría de los elementos representan el desarrollo de los pasos dados por las
acciones generadas internamente. Deberías asignar actividades a las clases antes de terminar con el
diagrama de actividad.
 
Modelando Componentes de Software
El Diagrama de Componentes se usa para modelar la estructura del software, incluyendo las
dependencias entre los componentes de software, los componentes de código binario, y los componentes
ejecutables. En el Diagrama de Componentes modelas componentes del sistema, a veces agrupados por
paquetes, y las dependencias que existen entre componentes (y paquetes de componentes).
 
Modelando la Distribución y la Implementación
Los Diagramas de Implementación se usan para modelar la configuración de los elementos de procesado
en tiempo de ejecución (run-time processing elements) y de los componentes, procesos y objetos de
software que viven en ellos. En el diagrama ’deployment’, empiezas modelando nodos físicos y las
asociaciones de comunicación que existen entre ellos. Para cada nodo, puedes indicar qué instancias de
componentes viven o corren (se ejecutan) en el nodo. También puedes modelar los objetos que contiene
el componente.
Los Diagramas de Implementación se usan para modelar sólo componentes que existen como entidades
en tiempo de ejecución; no se usan para modelar componentes solo de tiempo de compilación o de
tiempo de enlazado. Puedes también modelar componentes que migran de nodo a nodo u objetos que
migran de componente a componente usando una relación de dependencia con el estereotipo ’becomes’
(se transforma)
 
Un estudio a fondo de UML 
 Diseño de Bases de Datos Relacionales -- Una extensión
informal de UML
El Diagrama de Clase presenta un mecanismo de implementación neutral para modelar los aspectos de
almacenado de datos del sistema. Las clases persistentes, sus atributos, y sus relaciones pueden ser
implementadas directamente en una base de datos orientada a objetos. Aun así, en el entorno de
desarrollo actual, la base de datos relacional es el método más usado para el almacenamiento de datos.
Es en el modelado de este área donde UML se queda corto. El diagrama de clase de UML se puede usar
para modelar algunos aspectos del diseño de bases de datos relacionales, pero no cubre toda la semántica
involucrada en en el modelado relacional, mayoritariamente la noción de atributos clave que relacionan
entre sí las tablas unas con otras. Para capturar esta información, un Diagrama de Relación de Entidad
(ER diagram) se recomienda como extensión a UML.
El Diagrama de Clase se puede usar para modelar el estructura lógica de la base de datos,
independientemente de si es orientada a objetos o relacional, con clases representando tablas, y atributos
de clase representando columnas. Si una base de datos relacional es el método de implementación
escogido, entonces el diagrama de clase puede ser referenciados a un diagrama de relación de entidad
lógico. Las clases persistentes y sus atributos hacen referencia directamente a las entidades lógicas y a
sus atributos; el modelador dispone de varias opciones sobre cómo inferir asociaciones en relaciones
entre entidades. Las relaciones de herencia son referenciadas directamente a super-sub relaciones entre
entidades en un diagrama de relación de entidad (ER diagram).

Ya en el Diagrama de Relación de Entidad, el modelador puede empezar el proceso de determinar cómo
el modelo relacional encaja; y qué atributos son claves primarias, claves secundarias, y claves externas
basadas en relaciones con otras entidades. La idea es constriur un modelo lógico que sea conforme a las
reglas de normalización de datos.
Al implementar el diseño relacional, es una estrategia encaminada a hacer referencia al diagrama de
relación de entidad lógico a un diagrama físico que represente el objetivo, el RDBMS. El diagrama físico
puede ser denormalizado para lograr un diseño de base de datos que tiene tiempos eficientes de acceso a
los datos. Las relaciones super-sub entre entidades se resuelven por las estructuras de tablas actuales.
Además, el diagrama físico se usa para modelar propiedades específicas de cada fabricante para el
RDBMS. Se crean varios diagramas físicos si hay varios RDBMSs siendo ’deployed’; cada diagrama
físco representa uno de los RDBMS que son nuestro objetivo.
 
Uso de una Herramienta de
Modelado
El intercambio de información de diseño e ideas usando la notación UML sería hecho en los medios que
siempre han sido populares: pizarras, cuadernos y trozos de papel por nombrar algunos. Pero UML se
sirve mejor por una herramienta de modelado, la cual puede ser usada para capturar, guardar, rechazar,
integrar automáticamente información, y diseño de documentación.
Una característica que beneficia a los modeladores, UML también hace más fácil escoger una
herramienta de modelado. Hace tiempo, el modelador primero tenía que selecionar una notación de
metodología, y después estaba limitado a seleccionar una herramienta que la soportara. Ahora con UML
como estándar, la elección de notación ya se ha hecho para el modelador. Y con todas las herramientas
de modelado soportando UML, el modelador puede seleccionar la herramienta basada en las áreas claves
de funcionalidad soportadas que permiten resolver los problemas y documentar las soluciones.
Como una buena caja de herramientas, una buena herramienta de modelado ofrece todas las herramientas
necesarias para conseguir hacer eficientemente varios trabajos, sin dejarte nunca sin la herramienta
correcta. Dentro de la estructura de diseño de sistemas descrito en esta guía, esto incluye lo siguiente:
• Soporte para toda la notación y semántica de UML
• Soporte para una cantidad considerable de técnicas de modelado y diagramas para complementar
UML - incluyendo tarjetas CRC, modelado de datos, diagramas de flujo, y diseño de pantallas de
usuario. Posibilidad de reutilizar información obtenida por otras ténicas todavía usadas, como
modelado tradicional de procesos.
• Facilitar la captura de información en un repositorio subyacente - permitiendo la reutilización entre
diagramas.
• Posibilidad de personalizar las propiedades de definición de elementos subyacentes de modelos UML.
• Permitir a varios equipos de analistas trabajar en los mismos datos a la vez.
• Posibilidad de capturar los requisitos, asociarlos con elementos de modelado que los satisfagan y
localizar cómo han sido satisfechos los requisitos en cada uno de los pasos del desarrollo.
• Posibilitar la creación de informes y documentación personalizados en tus diseños, y la salida de estos
informes en varios formatos, incluyenod HTML para la distribución en la Internet o Intranet local.
• Posibilidad para generar y ’reverse’ código (por ejemplo C++, Java, etc) para facilitar el análisis y
diseño ’iterative’, para volver a usar código o librerías de clase existentes, y para documentar el
código.
 
Uso de una Herramienta de Modelado 
 System Architect 2001
Popkin software ofrece soporte para modelar sistemas con UML en System Architect 2001. Ofrece todas
las características descritar arriba para permitir el modelado eficiente de sistemas. Para más información
en los distintos productos de Popkin Software, visite www.popkin.com
 
Sumario
UML 1.1 es un buen comienzo - ofrece a los arquitectos de sistemas una notación estándar para modelar
sistemas. Ahora, igual que los arquitectos leen los planos, un modelador de objetos puede coger
cualquier diseño y entender qué se está capturando. UML también es bueno para la comunidad del
modelado - en vez de gastar tiempo acordando cómo expresar la información que se captura, los
modeladores puden resolver el problema a mano, lo cual es diseñar el sistema.
Sin embargo, aunque UML se presta a una aproximación a los Casos de Uso guiados, UML no responde
a la pregunta de cómo construir un sistema. Esta elección de qué metodología, o proceso usar tdoavía
queda abierta para que el modelador lo decida o dé con él.
Desde un punto de vista notacional, UML 1.1 no es todavía la solución completa; pero se espera que
UML continúe evolucionando con el tiempo. Mientras tanto, los modeladores usarán UML cono una
base, extendiéndolo mediante una combinación de otras técnicas, como los análisis guiados por la
responsabilidad y el modelado relacional de datos, para modelar el mundo real.
 
Referencias
• Entendiendo UML: La guía del desarrollador, con una aplicación java basada en web, por Paul
Harmon y Mark Watson; Morgan Kauffman Publishers, Inc., 1998
(www.mkp.com/books_catalog/1-55860-465-0.asp).
• ¿Qué le falta a UML? un artículo por Scott Ambler, ’Objet Magacine’, Octubre de 1997, SIGS
Publications (www.sigs.com/omo/articles/ambler.html)
• Especificación UML 1.1 (Centro de Recursos de UML en www.popkin.com)
• Objetos, componentes y Estructuras con UML, The Catalysis Aproach, por Desmond F. D’Souza y
Alan C. Wills, Addison Wesley Longman, 1998.

sábado, 1 de octubre de 2011

DISPOSITIVOS DE SALIDAS

Dispositivos de salida: Son instrumentos que interpretan la información y permiten la comunicación entre los seres humanos y las computadoras. Estos dispositivos convierten los resultados que produce el procesador y que están en código de máquina en una forma susceptible de ser empleada por las personas.
Los dispositivos de salida de un computador son el hardware que se encarga de mandar una respuesta hacia el exterior del computador, como pueden ser: los monitores, impresoras, sistemas de sonido, módem, entre otros. Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las manipulaciones de datos del computador.
Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las manipulaciones de datos del computador, algunos ejemplos de dispositivos de salida son:
MONITORES:
Dispositivos de salida más comunes de las computadoras con el que los usuarios ven la información en pantalla. Recibe también los nombres de CRT, pantalla o Terminal. En computación se distingue entre el “monitor”, que incluye todo el aparato que produce las imágenes, y la “pantalla”, que es sólo el área donde vemos las imágenes. Así, el dispositivo de salida es todo el monitor, no solamente la pantalla.
Toda la información (letras, gráficas y colores) de una pantalla está formada por pequeños puntos llamados pixels (Picture Elements). La unidad del sistema manda la información al monitor acerca de los píxeles que deben estar apagados (color negro) y los que deben de estar prendidos (iluminados) con un determinado color o intensidad. Así, punto por punto, se van formando las letras y las áreas iluminadas de una imagen.
Los primeros monitores de computadoras eran monocromáticos, es decir, desplegaban un solo color, generalmente verde o amarillo. Además, las imágenes tenían muy poca resolución, ya que cada píxel era muy grande. Actualmente estos monitores se pueden ver en algunas terminales de aeropuertos.
Los monitores más recientes no tienen problema en presentar gráficas, líneas y áreas de colores, además de letras de diferentes tipos y tamaños. Por esto también se les conoce como monitores gráficos.
En la actualidad hay monitores que pueden presentar 256 colores o tonos a la vez en una pantalla
TUBOS DE RAYOS CATÓDICOS
Prácticamente todas las computadoras de escritorio utilizan tubos de rayos catódicos o CRT. Esta tecnología consiste en un aparato colocado en la parte trasera del monitor, que proyecta imágenes sobre la pantalla. Por eso, los monitores con CRT son aparatos grandes , que necesitan de determinado espacio interno para proyectar imágenes. Sin embargo, esta tecnología es mucho más barata y eficaz que la tecnología utilizada en los monitores de computadoras portátiles.
MONITORES PLANOS
Este tipo de monitores son usados en la mayoría de los casos en las computadoras portátiles. Se requiere que sean aparatos ligeros y que consuman poca energía.
A continuación se mencionan los tipos de monitores planos más comunes:
· Liquid- Cristal Display (LCD): Trabajan mediante una placa de cristal líquido de cuarzo, como la de algunos relojes. Al aplicar una carga de energía eléctrica a partes de esta placa, cambian sus propiedades ópticas y es posible ver caracteres que se están desplegando. Debido a que estos dispositivos no emiten luz, es difícil ver la información, y su resolución es poca, por lo que están orientados a desplegar sólo textos y números.
· Electroluminiscencia(EL): Están fabricados con un material que al aplicarle una carga eléctrica emiten luz. Se pueden lograr diferentes tonos variando la intensidad de la carga, lo cual permite ver fácilmente la información que se está desplegando la pantalla.
· Gas- plasma: Emplean (como en una lámpara de neón) un gas al recibir una carga eléctrica emite luz. Estos monitores manejan un solo color, pero tienen mayores resoluciones y capacidad de desplegar diversas tonalidades, llegando así al estándar VGA. Sin embargo, su costo de fabricación es elevado y consumen relativamente mucha energía, lo que limita su portabilidad.
IMPRESORA:
Como indica su nombre, la impresora es el periférico que el ordenador utiliza para presentar información impresa en papel. Las primeras impresoras nacieron muchos años antes que el PC e incluso antes que los monitores, siendo durante años el método más usual para presentar los resultados de los cálculos en aquellos primitivos ordenadores, todo un avance respecto a las tarjetas y cintas perforadas que se usaban hasta entonces.
Aunque en nada se parecen las modernas impresoras a sus antepasadas de aquellos tiempos, no hay duda de que igual que hubo impresoras antes que PCs, las habrá después de éstos, aunque se basen en tecnologías que aún no han sido siquiera inventadas. Resulta muy improbable que los seres humanos abandonemos totalmente el papel por una fría pantalla de ordenador; Gutenberg estaría orgulloso.
Generalidades y definiciones:
Antes de adentrarnos en este complejo mundo de las impresoras, vamos a exponer algunos de los conceptos básicos sobre las mismas.
Velocidad
La velocidad de una impresora se suele medir con dos parámetros:
· ppm: páginas por minuto que es capaz de imprimir;
· cps: caracteres (letras) por segundo que es capaz de imprimir.
Actualmente se usa casi exclusivamente el valor de ppm, mientras que el de cps se reserva para las pocas impresoras matriciales que aún se fabrican. De cualquier modo, los fabricantes siempre calculan ambos parámetros de forma totalmente engañosa; por ejemplo, cuando se dice que una impresora de tinta llega a 7 páginas por minuto no se nos advierte de que son páginas con como mucho un 5% de superficie impresa, en la calidad más baja, sin gráficos y descontando el tiempo de cálculo del ordenador.
Y aún así resulta prácticamente imposible conseguir dicha cifra; en realidad, rara vez se consiguen más de 3 ppm de texto con una impresora de tinta, si bien con una láser es más fácil acercarse a las cifras teóricas que indica el fabricante.
Resolución
Probablemente sea el parámetro que mejor define a una impresora. La resolución es la mejor o peor calidad de imagen que se puede obtener con la impresora, medida en número de puntos individuales que es capaz de dibujar una impresora.
Se habla generalmente de ppp, puntos por pulgada (cuadrada) que imprime una impresora. Así, cuando hablamos de una impresora con resolución de "600x300 ppp" nos estamos refiriendo a que en cada línea horizontal de una pulgada de largo (2,54 cm) puede situar 600 puntos individuales, mientras que en vertical llega hasta los 300 puntos. Si sólo aparece una cifra ("600 ppp", por ejemplo) suele significar que la resolución horizontal es igual que la vertical.
De cualquier modo, no todo es "tirar puntos" sobre el papel. Dos impresoras de la misma resolución teórica pueden dar resultados muy dispares, ya que también influye el tamaño de esos puntos y la precisión a la hora de colocarlos sobre el papel. De nada sirve colocar 360.000 puntos en una pulgada cuadrada si están puestos unos sobre otros emborronando la imagen.
Existen 4 tipos de impresora las cuales son:
INYECCIÓN DE TINTA:
Por supuesto, las impresoras matriciales utilizan tinta, pero cuando nos referimos a impresora de tinta nos solemos referir a aquéllas en las que la tinta se encuentra en forma más o menos líquida, no impregnando una cinta como en las matriciales.
La tinta suele ser impulsada hacia el papel por unos mecanismos que se denominan inyectores, mediante la aplicación de una carga eléctrica que hace saltar una minúscula gota de tinta por cada inyector, sin necesidad de impacto. De todas formas, los entresijos últimos de este proceso varían de una a otra marca de impresoras (por ejemplo, Canon emplea en exclusiva lo que denomina "inyección por burbuja") y no son realmente significativos a la hora de adquirir una u otra impresora.
Estas impresoras destacan por la sencilla utilización del color. Antiguamente (y todavía en algunos modelos de muy baja gama o en impresoras portátiles), para escribir cualquier cosa en color se tenía que sustituir el cartucho de tinta negra por otro con tintas de los colores básicos (generalmente magenta, cyan y amarillo). Este método tenía el inconveniente de que el texto negro se fabricaba mezclando los tres colores básicos, lo que era más lento, más caro en tinta y dejaba un negro con un cierto matiz verdoso. En la actualidad, la práctica totalidad de estas impresoras incorporan soporte para el uso simultáneo de los cartuchos de negro y de color.
La resolución de estas impresoras es en teoría bastante elevada, hasta de 1.440 ppp, pero en realidad la colocación de los puntos de tinta sobre el papel resulta bastante deficiente, por lo que no es raro encontrar que el resultado de una impresora láser de 300 ppp sea mucho mejor que el de una de tinta del doble de resolución. Por otra parte, suelen existir papeles especiales, mucho más caros que los clásicos folios de papelería, para alcanzar resultados óptimos a la máxima resolución o una gama de colores más viva y realista.
El principal destinatario de este tipo de impresoras es el usuario doméstico, además del oficinista que no necesita trabajar con papel continuo ni con copias múltiples pero sí ocasionalmente con color (logotipos, gráficos, pequeñas imágenes...) con una calidad aceptable. Fabricantes existen decenas, desde los clásicos contendientes Epson y Hewlett-Packard (HP) hasta otros de mucho menor volumen de ventas pero que no desmerecen nada, como son Canon, Tektronik, Lexmark, Oki...
Una nota sobre los cartuchos de tinta: son relativamente caros, debido a que generalmente no sólo contienen la tinta, sino parte o la totalidad del cabezal de impresión; este sistema asegura que el cabezal siempre está en buen estado, pero encarece el precio. Existen decenas de sistemas de recarga de cartuchos para rellenar el cartucho aprovechando el cabezal, pero en el 99% de los casos son un engorro y se pone todo perdido de tinta.
IMPRESORA LÁSER:
Son las de mayor calidad del mercado, si entendemos por calidad la resolución sobre papel normal que se puede obtener, unos 600 ppp reales. En ellas la impresión se consigue mediante un láser que va dibujando la imagen electrostáticamente en un elemento llamado tambor que va girando hasta impregnarse de un polvo muy fino llamado tóner (como el de fotocopiadoras) que se le adhiere debido a la carga eléctrica. Por último, el tambor sigue girando y se encuentra con la hoja, en la cual imprime el tóner que formará la imagen definitiva.
Crean imágenes en forma de puntos (como las de matriz de puntos) sobre un tambor, valiéndose para ello de una fuente luminosa de rayo láser. Los caracteres son tratados con un tóner magnéticamente cargado, semejante a tinta, y después transferidos del tambor al papel. Entonces se aplica calor para conseguir la adherencia de los caracteres. Esta tecnología es similar a la de las fotocopiadoras. Sus imágenes son de excelente calidad, tanto en caracteres como en gráficos. Su aplicación es para casos que requieran una salida de alta calidad. Han beneficiado la industria de la autoedición.
Las peculiares características de estas impresoras obligan a que dispongan de su propia memoria para almacenar una copia electrónica de la imagen que deben imprimir. A mayor tamaño y calidad de impresión necesitaremos mayor cantidad de memoria, que estará entorno a 1 ó 2 MB; si el documento a imprimir fuera muy largo y complejo, por ejemplo con varias fotografías o a una resolución muy alta, puede producirse un error por overflow (falta de memoria), lo que puede evitarse mediante la tecnología GDI comentada anteriormente (es decir, utilizando memoria del propio PC) o preferiblemente instalando más memoria a la impresora.
El único problema de importancia de las impresoras láser es que sólo imprimen en blanco y negro. En realidad, sí existen impresoras láser de color, que dan unos resultados bastante buenos, pero su precio es absolutamente desorbitado.
Las láser son muy resistentes, mucho más rápidas y mucho más silenciosas que las impresoras matriciales o de tinta, y aunque la inversión inicial en una láser es mayor que en una de las otras, el tóner sale más barato a la larga que los cartuchos de tinta, por lo que a la larga se recupera la inversión. Estas impresoras suelen ser utilizadas en el mundo empresarial, ya que su precio de coste es más alto que el de las de inyección de tinta, pero su coste de mantenimiento es más bajo, y existen dispositivos con una muy alta velocidad por copia y calidad y disponibilidad superiores, así como también admiten una mayor carga de trabajo.
Una de las características más importantes de estas impresoras es que pueden llegar a velocidades muy altas, medidas en páginas por minuto. Su resolución también puede ser muy elevada y su calidad muy alta. Empiezan a ser habituales resoluciones de 1.200 ppm (puntos por pulgada) y velocidades de 16 ppm, aunque esta velocidad puede ser mucho mayor en modelos preparados para grupos de trabajo, hasta 40 ppm y más.
Otras características importantes son la cantidad de memoria disponible y el modelo de procesador, que suele ser de tipo RISC. La memoria es importante para actuar como "buffer" en donde almacenar los trabajos que le van llegando y para almacenar fuentes y otros motivos gráficos o de texto que permitan actuar como "preimpresos" e imprimirlos en cada una de las copias sin necesidad de mandarlos en cada página
IMPRESORAS DE MATRIZ Y MARGARITA:
Fueron las primeras que surgieron en el mercado. Se las denomina "de impacto" porque imprimen mediante el impacto de unas pequeñas piezas (la matriz de impresión) sobre una cinta impregnada en tinta, la cual suele ser fuente de muchos quebraderos de cabeza si su calidad no es la que sería deseable.
Según cómo sea el cabezal de impresión, se dividen en dos grupos principales: de margarita y de agujas. Las de margarita incorporan una bola metálica en la que están en relieve las diversas letras y símbolos a imprimir; la bola pivota sobre un soporte móvil y golpea a la cinta de tinta, con lo que se imprime la letra correspondiente. El método es absolutamente el mismo que se usa en muchas máquinas de escribir eléctricas, lo único que las diferencia es la carencia de teclado.
Las impresoras de margarita y otros métodos que usan tipos fijos de letra están en completo desuso debido a que sólo son capaces de escribir texto; además, para cambiar de tipo o tamaño de letra deberíamos cambiar la matriz de impresión (la bola) cada vez. Por otra parte, la calidad del texto y la velocidad son muy altas, además de que permiten obtener copias múltiples en papel de autocopia o papel carbón.
Las impresoras de agujas, muchas veces denominadas simplemente matriciales, tienen una matriz de pequeñas agujas que impactan en el papel formando la imagen deseada; cuantas más agujas posea el cabezal de impresión mayor será la resolución, que suele estar entre 150 y 300 ppp, siendo casi imposible superar esta última cifra.
Aunque la resolución no sea muy alta es posible obtener gráficos de cierta calidad, si bien en blanco y negro, no en color. El uso de color implica la utilización de varias cintas o cintas más anchas, además de ser casi imposible conseguir una gama realista de colores, más allá de los más básicos.
Al ser impresoras de impacto pueden obtener copias múltiples, lo que las hace especialmente útiles en oficinas o comercios para la realización de listados, facturas, albaranes y demás documentos. Su velocidad en texto es de las más elevadas, aunque a costa de producir un ruido ciertamente elevado, que en ocasiones llega a ser molesto. Resulta muy común encontrarlas con alimentadores para papel continuo, lo que sólo ocurre con algunas impresoras de tinta de precio elevado.
En general, las impresoras matriciales de agujas se posicionan como impresoras de precio reducido, calidad media-baja, escaso mantenimiento y alta capacidad de impresión. Entre los pocos fabricantes que quedan de estas impresoras destaca Epson, con un enorme catálogo con opciones y precios para todos los gustos.
BOCINAS:
Cada vez las usa más la computadora para el manejo de sonidos, para la cual se utiliza como salida algún tipo de bocinas. Algunas bocinas son de mesas, similares a la de cualquier aparato de sonidos y otras son portátiles (audífonos). Existen modelos muy variados, de acuerdo a su diseño y la capacidad en watts que poseen.
MULTIMEDIA:
Combinación de Hardware y Software que puede reproducir salidas que emplean diversos medios como texto, gráficos, animación, video, música, voz y efectos de sonido.
PLOTTERS O GRAFICADORAS::
Es una unidad de salida de información que permite obtener documentos en forma de dibujo.
Las graficadoras son dispositivos de dibujo de propósito especial para la producción de gráficas de barras, mapas, planos arquitectónicos e incluso ilustraciones tridimensionales. Puede producir documentos multicolores de alta calidad, como también documentos que por su tamaño, es imposible manejar por la mayoría de las impresoras.
Existen plotters para diferentes tamaños máximos de hojas (A0, A1, A2, A3 y A4); para diferentes calidades de hojas de salida (bond, calco, acetato); para distintos espesores de línea de dibujo (diferentes espesores de rapidógrafos), y para distintos colores de dibujo (distintos colores de tinta en los rapidógrafos).
Existen dos tipos de estos dispositivos:
· Flatbed plotter(trazador plano): Trazador de gráficos que dibuja en hojas de papel que han sido colocadas en un tablero. El tamaño del tablero determina el tamaño máximo de las hojas que pueden utilizarse.
· Drum plotter(Trazador de tambor): Trazador gráfico que envuelve el papel alrededor de un tambor. El tambor gira para producir una dirección de trazado, el lápiz se mueve para proporcionar la otra.
DATA SHOW O CAÑONES:
Es una unidad de salida de información. Es básicamente una pantalla plana de cristal líquido, transparente e independiente. Acoplado a un retroproyector permite la proyección amplificada de la información existente en la pantalla del operador.
Existe una variante tecnológica del data show, conocida como el cañón de proyección, que puede ser catalogada como un sistema independiente de proyección mediante lentes, muy similar a un proyector de video. Los modelos más recientes de cañones utilizan LCDs.
CÁMARAS
Cámara digital: Es una cámara equipada con un captador electrónico fotosensible. Las imágenes digitales son almacenadas directamente en la memoria de la cámara y pueden ser utilizadas inmediatamente después en un ordenador.
Cámara para Internet: Son aquellas que podemos observar en la parte superior del monitor de una computadora. Su utilidad no es muy grande, pero permite al usuario captar imágenes y luego almacenarlas en la memoria de la computadora. Así mismo, se usa para intercambio de imágenes por Internet ya que , si uno lo desea, puede iniciar una charla con imágenes o enviar imágenes en la red.

CONCLUSIÓN
Podemos concluir que los dispositivos de salida, se conocen también con el nombre de dispositivos periféricos o simplemente periféricos ya que normalmente, son externos a la computadora.
Además como se ha podido observar existen muchos tipos de dispositivos que utiliza la computadora y que son muy importantes para poder comunicarnos con la máquina.. Así como los diferentes tipos de impresoras que son utilizadas como dispositivos de salida.
Como pudimos observar a lo largo del trabajo, la tecnología avanza cada día más en busca de mejores cosas y mayor comodidad para el usuario.
Es por ello que debemos tener en cuenta cuales son los dispositivos periféricos y para que se utilizan para obtener un mayor aprovechamiento de cada uno de ellos y hacer nuestro trabajo más rápido y con la mayor comodidad posible



FUENTE DE INFORMACION: http://iwia.sis.epn.edu.ec/~elascano/sistemasmultimediales/mediosytc/teclados.html.
· http://www.braunker.com/impa.htm.
· http://www.compaq.com/athome/presariohelp/sp/storage/stgitd.html.
· http://www.conozcasuhardware.com/quees/impres1.htm.
· http://www.conozcasupc.com.ar/mouse.htm.
· http://www.espe.edu.ec/cursos-e/sistemas/temas-basicos/temas-basicos-6.htm.
· http://www.ipn.mx/sitios_interes/sanlovdra/impresora1.htm.
· http://www.microsoft.com/spain/hardware/keyboard/intkey.asp.
· http://www3.labc.usb.ve/EC4514/AUDIO/MICROFONOS/Microfonos.html.
· Enciclopedia Microsoft Encarta 2003.
· Informática básica. Alcalde Eduardo García Miguel.
· Diccionario de la computación. Editorial Alfaguara. 2000

lunes, 13 de septiembre de 2010

SISTEMAS OPERATIVOS

Sistema operativo
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.

Un núcleo monolítico es un tipo de núcleo o kernel de un sistema operativo. Como ejemplo de sistema operativo de núcleo monolítico están UNIX, Linux y FreeBSD.
Estos sistemas tienen un núcleo grande y complejo, que engloba todos los servicios del sistema. Está programado de forma no modular, y tiene un rendimiento mayor que un micronúcleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la recompilación del núcleo y el reinicio del sistema para aplicar los nuevos cambios.

FreeBSD es un sistema operativo libre para computadoras basado en las CPU de arquitectura Intel, incluyendo procesadores 386, 486 (versiones SX y DX), y Pentium. También funciona en procesadores compatibles con Intel como AMD y Cyrix. Actualmente también es posible utilizarlo hasta en once arquitecturas distintas2 como Alpha, AMD64, IA-64, MIPS, PowerPC y UltraSPARC.
FreeBSD está basado en la versión 4.4 BSD-Lite del Computer Systems Research Group (CSRG) de la University of California, Berkeley siguiendo la tradición que ha distinguido el desarrollo de los sistemas BSD. Además del trabajo realizado por el CSRG, el proyecto FreeBSD ha invertido miles de horas en ajustar el sistema para ofrecer las máximas prestaciones en situaciones de carga real.

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.

Software propietario:
El término software propietario, privativo o de código cerrado hace referencia a cualquier programa informático en el que los usuarios tienen limitadas las posibilidades de usarlo, modificarlo o redistribuirlo (con o sin modificaciones), o cuyo código fuente no está disponible o el acceso a éste se encuentra restringido. -En el software de código cerrado una persona física o jurídica (compañía, corporación, fundación, etc.) posee los derechos de autor sobre un software lo que le da la posibilidad de controlar y restringir los derechos del usuario sobre su programa. Esto implica por lo general que el usuario sólo tiene derecho a ejecutar el software y no dispone de acceso a su código fuente o aún teniendo acceso a él no tiene derecho a modificarlo ni distribuirlo.

Software libre:
El software libre es software que viene con autorización para que cualquiera pueda usarlo, copiarlo y distribuirlo, ya sea literal o con modificaciones, gratis o mediante una gratificación. En particular, esto significa que el código fuente debe estar disponible. "Si no es fuente, no es software''. Ésta es una definición simplificada; ver también la definición completa. Si un programa es libre, entonces puede ser potencialmente incluido en un sistema operativo libre tal como GNU, o sistemas GNU/Linux libres.

Hardware las partes físicas y tangibles de una computadora:
sus componentes eléctricos, electrónicos, electromecánicos y mecánicos; 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 y es definido por la RAE como el "Conjunto de los componentes que integran la parte material de una computadora". 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).
Dispositivos de Red: Es un conjunto de dispositivos físicos "hardware" y de programas "software", mediante el cual podemos comunicar computadoras para compartir recursos (discos, impresoras, programas, etc.) así como trabajo (tiempo de cálculo, procesamiento de datos, etc.).
A cada una de las computadoras conectadas a la red se le denomina un nodo. Se considera que una red es local si solo alcanza unos pocos kilómetros.

Tipos De Redes
Las redes de información se pueden clasificar según su extensión y su topología. Una red puede empezar siendo pequeña para crecer junto con la organización o institución. A continuación se presenta los distintos tipos de redes disponibles:
Extensión
De acuerdo con la distribución geográfica:

• Segmento de red (subred)
Un segmento de red suele ser definido por el "hardware" o una dirección de red específica. Por ejemplo, en el entorno "Novell NetWare", en un segmento de red se incluyen todas las estaciones de trabajo conectadas a una tarjeta de interfaz de red de un servidor y cada segmento tiene su propia dirección de red.

• Red de área locales (LAN)
Una LAN es un segmento de red que tiene conectadas estaciones de trabajo y servidores o un conjunto de segmentos de red interconectados, generalmente dentro de la misma zona. Por ejemplo un edificio.

• Red de campus
Una red de campus se extiende a otros edificios dentro de un campus o área industrial. Los diversos segmentos o LAN de cada edificio suelen conectarse mediante cables de la red de soporte.

• Red de área metropolitanas (MAN)
Una red MAN es una red que se expande por pueblos o ciudades y se interconecta mediante diversas instalaciones públicas o privadas, como el sistema telefónico o los suplidores de sistemas de comunicación por microondas o medios ópticos.

• Red de área extensa (WAN y redes globales)
Las WAN y redes globales se extienden sobrepasando las fronteras de las ciudades, pueblos o naciones. Los enlaces se realizan con instalaciones de telecomunicaciones públicas y privadas, además por microondas y satélites.

. Topología
La topología o forma lógica de una red se define como la forma de tender el cable a estaciones de trabajo individuales; por muros, suelos y techos del edificio. Existe un número de factores a considerar para determinar cual topología es la más apropiada para una situación dada. Existen tres topologías comunes:

• Anillo
Las estaciones están unidas unas con otras formando un círculo por medio de un cable común. El último nodo de la cadena se conecta al primero cerrando el anillo. Las señales circulan en un solo sentido alrededor del círculo, regenerándose en cada nodo. Con esta metodología, cada nodo examina la información que es enviada a través del anillo. Si la información no está dirigida al nodo que la examina, la pasa al siguiente en el anillo. La desventaja del anillo es que si se rompe una conexión, se cae la red completa.

• Estrella
La red se une en un único punto, normalmente con un panel de control centralizado, como un concentrador de cableado . Los bloques de información son dirigidos a través del panel de control central hacia sus destinos. Este esquema tiene una ventaja al tener un panel de control que monitorea el tráfico y evita las colisiones y una conexión interrumpida no afecta al resto de la red.

• "Bus"
Las estaciones están conectadas por un único segmento de cable. A diferencia del anillo, el bus es pasivo, no se produce regeneración de las señales en cada nodo. Los nodos en una red de "bus" transmiten la información y esperan que ésta no vaya a chocar con otra información transmitida por otro de los nodos. Si esto ocurre, cada nodo espera una pequeña cantidad de tiempo al azar, después intenta retransmitir la información.

• Híbridas
El bus lineal, la estrella y el anillo se combinan algunas veces para formar combinaciones de redes híbridas.

* Anillo en estrella
Esta topología se utiliza con el fin de facilitar la administración de la red. Físicamente, la red es una estrella centralizada en un concentrador, mientras que a nivel lógico, la red es un anillo.

* "Bus" en estrella
El fin es igual a la topología anterior. En este caso la red es un "bus" que se cablea físicamente como una estrella por medio de concentradores.

* Estrella jerárquica
Esta estructura de cableado se utiliza en la mayor parte de las redes locales actuales, por medio de concentradores dispuestos en cascada par formar una red jerárquica.

Protocolos de redes
Un protocolo de red es como un lenguaje para la comunicación de información. Son las reglas y procedimientos que se utilizan en una red para comunicarse entre los nodos que tienen acceso al sistema de cable. Los protocolos gobiernan dos niveles de comunicaciones:
o Los protocolos de alto nivel: Estos definen la forma en que se comunican las aplicaciones.
o Los protocolos de bajo nivel: Estos definen la forma en que se transmiten las señales por cable.
Como es frecuente en el caso de las computadoras el constante cambio, también los protocolos están en continuo cambio. Actualmente, los protocolos más comúnmente utilizados en las redes son Ethernet, Token Ring y ARCNET. Cada uno de estos esta diseñado para cierta clase de topología de red y tienen ciertas características estándar.

Ethernet
Actualmente es el protocolo más sencillo y es de bajo costo. Utiliza la topología de "Bus" lineal.

Token Ring
El protocolo de red IBM es el Token ring, el cual se basa en la topología de anillo.
Arnet
Se basa en la topología de estrella o estrella distribuida, pero tiene una topología y protocolo propio.

Dispositivos de redes

NIC/MAU (Tarjeta de red)
"Network Interface Card" (Tarjeta de interfaz de red) o "Medium Access Unit" (Medio de unidad de acceso). Cada computadora necesita el "hardware" para transmitir y recibir información. Es el dispositivo que conecta la computadora u otro equipo de red con el medio físico.

La NIC es un tipo de tarjeta de expansión de la computadora y proporciona un puerto en la parte trasera de la PC al cual se conecta el cable de la red. Hoy en día cada vez son más los equipos que disponen de interfaz de red, principalmente Ethernet, incorporadas. A veces, es necesario, además de la tarjeta de red, un transceptor. Este es un dispositivo que se conecta al medio físico y a la tarjeta, bien porque no sea posible la conexión directa (10 base 5) o porque el medio sea distinto del que utiliza la tarjeta.

Hubs (Concentradores)
Son equipos que permiten estructurar el cableado de las redes. La variedad de tipos y características de estos equipos es muy grande. En un principio eran solo concentradores de cableado, pero cada vez disponen de mayor número de capacidad de la red, gestión remota, etc. La tendencia es a incorporar más funciones en el concentrador. Existen concentradores para todo tipo de medios físicos.

Repetidores
Son equipos que actúan a nivel físico. Prolongan la longitud de la red uniendo dos segmentos y amplificando la señal, pero junto con ella amplifican también el ruido. La red sigue siendo una sola, con lo cual, siguen siendo válidas las limitaciones en cuanto al número de estaciones que pueden compartir el medio.

"Bridges" (Puentes)
Son equipos que unen dos redes actuando sobre los protocolos de bajo nivel, en el nivel de control de acceso al medio. Solo el tráfico de una red que va dirigido a la otra atraviesa el dispositivo. Esto permite a los administradores dividir las redes en segmentos lógicos, descargando de tráfico las interconexiones. Los bridges producen las señales, con lo cual no se transmite ruido a través de ellos.

"Routers" (Encaminadores)
Son equipos de interconexión de redes que actúan a nivel de los protocolos de red. Permite utilizar varios sistemas de interconexión mejorando el rendimiento de la transmisión entre redes. Su funcionamiento es más lento que los bridges pero su capacidad es mayor. Permiten, incluso, enlazar dos redes basadas en un protocolo, por medio de otra que utilice un protocolo diferente.

"Gateways"
Son equipos para interconectar redes con protocolos y arquitecturas completamente diferentes a todos los niveles de comunicación. La traducción de las unidades de información reduce mucho la velocidad de transmisión a través de estos equipos.

Servidores
Son equipos que permiten la conexión a la red de equipos periféricos tanto para la entrada como para la salida de datos. Estos dispositivos se ofrecen en la red como recursos compartidos. Así un terminal conectado a uno de estos dispositivos puede establecer sesiones contra varios ordenadores multiusuario disponibles en la red. Igualmente, cualquier sistema de la red puede imprimir en las impresoras conectadas a un servidor.

Módems
Son equipos que permiten a las computadoras comunicarse entre sí a través de líneas telefónicas; modulación y demodulación de señales electrónicas que pueden ser procesadas por computadoras. Los módems pueden ser externos (un dispositivo de comunicación) o interno (dispositivo de comunicación interno o tarjeta de circuitos que se inserta en una de las ranuras de expansión de la computadora).

VECTORES

Vectores

Los vectores (arrays) junto con las listas son dos elementos estructurados habituales de un lenguje de programación. En MetaTalk se puede trabajar a modo de listas puesto que las variables no tienen un tamaño predefinido y puede crecer o disminuir con los contenidos que se les asignan. En este caso el siguiente o el antecesor se han de traducir a operaciones con los trozos (chunks) que permite direccionar el lenguaje

El caso de los vectores es tanto o más interesante. Los elementos del vector se puede indexar a partir de valores numéricos, como es usual entre corchetes.

local codics

on mouseUp
repeat with i = 1 to 3
put (i*10+1) into codics[ i ]
end repeat

put the keys of codics

repeat with i = 1 to the number of lines of (the keys of codics)
answer i & return & codics[ i ]
end repeat
end mouseUp


El número de dimensiones de los vectores no está limitado, así que se pueden construir matrices (matrix) y operar con ellas con las funciones que incorpora el lenguaje.

local matriuA, matriuB, matriuC, dimensio

on mouseUp
repeat with i = 1 to 3
repeat with j = 1 to 3
put (i&j) into matriuA[i,j]
put 2 into matriuB[i,j]
end repeat
end repeat

put matrixMultiply(matriuA, matriuB) into matriuC
put extents(matriuC) into dimensio
put "a" && extents(matriuA) && return &\
"b" && extents(matriuB) && return &\
"c" && dimensio

repeat with i = 1 to the second item of line 1 of dimensio
repeat with j = 1 to the second item of line 2 of dimensio
answer i & "," & j && matriuC[ i,j ]
end repeat
end repeat
end mouseUp

#Per si tens interés, deu donar:
# C = A * B
# 72 72 72 11 12 13 2 2 2
#132 132 132 = 21 22 23 * 2 2 2
#192 192 192 31 32 33 2 2 2


La función extents permite obtener el número de entradas; en realidad el índice menor y el mayor utilizados. Si tuviese más de una dimensión, cada rango de valores aparece en separado del siguiente por un salto de línea. La función keys también lo obtiene, además de los valores de los índices de una variable; se ha introducido aquí para comparar el tratamiento con los vectores asociativos. El interés de estos radica en la facilidad con que se implemetan los diccionarios y otros objetos que consisten en indexar los elementos por una clave no numérica. Estos son una variante de los vectores donde los elementos índice no son numéricos sino alfabéticos.

El siguiente ejemplo muestra cómo se puede generar un vector asociativo a partir de una cadena de caracteres, cómo se pueden ordenar los elementos de índice (el criterio no tiene por qué ser alfabético, pero era el más sencillo) y cómo acceder a los valores almacenados. Por si lo está pensado: sí, existe una orden combine que hace la operación inversa a split. Sencillo, ¿verdad?

local codicsTecles="codic_a=97&codic_e=101&codic_i=105&codic_o=111&codic_u=117"

on mouseUp
put "Inicialment:" && codicsTecles

answer "Antes" & return & keys( codicsTecles ) titled "Antes"
split codicsTecles by "&" and "="

put keys( codicsTecles ) into varAux
sort lines of varAux
answer "Despues" & return & varAux titled "Despues"

repeat with i = 1 to the number of lines of varAux
answer codicsTecles[ (line i of varAux) ] && return & (line i of varAux)
end repeat
end mouseUp