lunes, 19 de enero de 2015

Gestión de control de software




Software

El software viene conformado por el conjunto de programas que se instalan en la computadora para crear la interfaz gráfica del usuario

Tipos de Software

Todos los programas que conforman el software, pueden ser divididos en dos bien diferenciados por su función:
Software de sistema: esta compuesta por el conjunto de programas imprescindibles para el funcionamiento del hardware, más un conjunto cuya misión es de facilitar el uso del sistema y optimizar sus recursos.
Software de aplicación: es el conjunto de programas que se desarrollan para que una computadora realice cualquier trabajo controlado por el usuario.

Programas de control

Los programas de control constituyen la parte del sistema operativo dedicada a coordinar el funcionamiento de todos los recursos y elementos de la computadora, es decir, el procesador, la memoria, las operaciones de entrada/salida, la información y en definitiva todo el entorno del sistema incluidos los periféricos.

Los programas de control están especialmente desarrollados para que puedan ayudar con éxito a la computadora, se cual fuese la modalidad con que trabaje: monoprogramación, multiprogramación, proceso distributivo, etc., consiguiendo así la utilización óptima de los recursos disponibles.

En general, un sistema operativo tiene englobados estos programas en un conjunto denominado núcleo (kernel) que se divide en los siguientes núcleos:
Gestión del Procesador:

Los programas del procesador son los encargados de la preparación de los programas de usuario para su ejecución, así como de la asignación de tiempos en el procesador. Sus principales fundones son:
Preparación de programas: su misión es transferir los programas ejecutables de usuario desde la memoria externa a la memoria central de la computadora a partir de una determinada dirección de memoria; por medio de un programa que se denomina cargador.
Planificación del procesador: consiste en el control, a trabes d una determinada política de asignación de tiempos, de utilización del procesador a los distintos procesos que en un momento determinado se en cuantían en el sistema. En los sistemas opresivos actuales existe una gran variedad de formas de planificar el tiempo del procesador.
Asignación de periféricos: en un programa, generalmente, nunca se especifica el periférico concreto que se va a utilizar, sino que se solicita una impresora, un disco, etc. Este grupo de programas de asignación transforma las solicitudes simbólicas, hechas en el programa, en las asignaciones físicas y concretas de cada periférico.
Relanzamiento de programas: a veces, durante la ejecución de un programa en una computadora, se producen interrupciones fortuitas que causan la parada del proceso que se estaba ejecutando, o bien se interrumpe porque se están ejecutando varios procesos a la vez y se tienen que ir turnando. Este grupo de programas se encarga de establecer un punto de control en el instante de la interrupción para que se pueda reproducir el estado que tenía el proceso cuando se vuelve a reactivar. Para ello, se reestablecen los valores de cada electo en el momento de la interrupción hasta conseguir el estado de la ejecución del programa. Una vez subsanada la causa de la parada o le vuelve a tocar el turno, se pone en funcionamiento nuevamente el proceso.

Gestión de Memoria:

Un sistema operativo contiene un conjunto de programas cuya misión es la de asignar y controlar el almacenamiento en la memoria interna y externa de la computadora, fundamentalmente la interna por ser un recurso escaso y caro.
Gestión de memoria central: existe una multitud de métodos de asignación y control de la memoria central o interna según se trate de un sistema operativo monoprogramado (un solo programa en ejecución) o multiprogramado (varios programas en ejecución simultáneamente). Los programas que controlan y gestionan la memoria interna asignan los espacios que deben ocupar las programas y datos estableciendo zonas de seguridad para que no se produzcan colisiones.
Gestión de memoria simultanea: los programas de control y gestión de la memoria secundaria tienen como misión hacer ver al usuario el tratamiento de la información almacenada en la memoria externa, desde el punto de vista lógico ocultándole la realidad física.

Por otra parte, un sistema puede mantener en un mismo instante un gran numero de usuarios y procesos, y éstos pueden estar solicitando y manejando continuamente archivos en memoria externa, en ocasiones hasta compartiéndolos, y por ello será necesario la existencia de una serie de programas en el sistema operativo que nos aseguren el correcto funcionamiento del almacenamiento secundario.
Gestión de entrada/salida:

Es otra de las misiones de un sistema operativo para facilitar el uso de los distintos dispositivos externo que forman parte del sistema informático, Estos programas de de control tienen como misión gestionar las operaciones que en proceso realice sobre un dispositivo externo.





Controlan y coordinan todas aquellas operaciones relativas al movimiento de datos e informaciones en la computadora.


Control de periféricos: en esta función el procesador cuando recibe una petición de entrada/salida comprueba si el periférico está desocupado.


Control de transferencia de la información: esta transferencia se realiza de dos formas:


En modo múltiplex.


En ráfagas de bloques.


Tratamiento de cada bloque de información: cuando un bloque de información se almacena en la memoria central de una computadora, interviene un nuevo programa del sistema operativo, que se encarga de descomponer cada bloque físico para que pueda ser transferido al periférico correspondiente.


Apertura y cierre de archivos: un archivo se conecta a un programa cuando se abre, quedando desde ese momento asignado automáticamente al mismo mediante una vía o canal de datos.


Acceso a los archivos: existen diversas maneras de acceder a un archivo: secuencialmente, de forma aleatoria, entre otras.


Gestión del sistema:

Este es el verdadero motor del sistema operativo que se encarga de la coordinación y supervisión del funcionamiento del resto de programas, se le denomina supervisor.

- Protección de memoria: funcionan como fronteras de separación de memoria.

- Errores en la memoria: sirve para averiguar donde se produjo algún error de memoria y reenviar nuevamente el dato, subsanando el error sobre la marcha.

- Errores de programa: cuando hay alguna operación errónea, este grupo de programas se encarga de cancelar el programa del usuario y enviar los correspondientes mensajes sobre las características del error encontrado.
Programas de proceso

Están enfocados preferentemente para ayudar al programador en la puesta a punto de los programas. Todo sistema operativo posee en su entorno un conjunto de programas para este fin. Existen dos tipos de programas de proceso: los programas traductores y los programas de servicio.


Programas Traductores:

Son metaprogramas que toman como entrada un programa escrito en lenguaje simbólico alejado de la maquina, denominado programa fuente, y proporcionan como salida otro programa equivalente escrito en un lenguaje comprensible por el hardware de la computadora, denominado programa objeto.

Existen 3 tipos de programas traductores: los ensambladores, copiladores y los intérpretes:


Programas ensambladores: transforman programas fuente escritos en lenguajes simbólicos de bajo nivel (denominados lenguajes ensambladores).


Programas copiladores: son programas traductores encargados de transformar programas fuente escrito en lenguaje simbólico de alto nivel, en programas objeto escritos en lenguaje máquina.


Programas intérpretes: transforman programas fuente escritos en lenguaje de alto nivel en programas objeto escritos, en lenguaje máquina.


Programas de Servicio:

Son un grupo de programas que realizan funcione sutiles para el sistema o para el usuario, denominados comúnmente utilidades.


Programas de manipulación de datos: realiza las siguientes funciones:


Transferencia de informaciones.


Recodificación o transformación de informaciones.


Reorganización de la información en archivos.


Ordenación de datos en archivos, entre otras.

- Programas de servicio del sistema: generan el sistema operativo completamente sobre la computadora.
Sistemas operativos

Es, en principio, el soporte lógico que controla el funcionamiento del equipo físico o hardware haciendo que el trabajo con la computadora sea sencillo.

Desde otro punto de vista podemos definirlo como en conjunto de programas y funcionas que controlan el funcionamiento del hardware ocultando sus detalles, ofreciendo al usuario una vía sencilla y flexible de acceso a la computadora.

Por otra parte, una computadora es una máquina que posee un conjunto de elementos que denominamos recursos, que deben ser racionalmente distribuidos y utilizados, para obtener de ellos el mejor rendimiento. Estos recursos son los siguientes:


El procesador: es el lugar donde se ejecutan las instrucciones y por ello, deben comprobarse los programas que se ejecuten y su secuenciamineto.


La memoria interna: todo programa que se ejote en una computadora, así como todo dato que se desee procesar, debe resistir en la memoria interna, por lo tanto, es necesario regular su uso y ocupación.


La entrada/salida: todo programa, en general, necesita realizar operaciones de entrada/salida sobre sus unidades periféricas para el control y direccionamiento de las mismas.


La información: los datos, sus tipos, tamaños y métodos de representación tienen que estar perfectamente controlado para evitar operaciones erróneas o falsas interpretaciones.

Desde el punto de vista del control de los recursos de una computadora podemos establecer que un sistema operativo es el administrador de los recursos ofrecidos por el hardware para alcanzar un eficaz rendimiento de los mismos.

lunes, 1 de diciembre de 2014

Lenguaje Unificado de Modelado UML

El modelado sirve no solamente para los grandes sistemas, aun en aplicaciones de pequeño tamaño se obtienen beneficios de modelado, sin embargo es un hecho que entre más grande y más complejo es el sistema, más importante es el papel de que juega el modelado por una simple razón: "El hombre hace modelos de sistemas complejos porque no puede entenderlos en su totalidad".

UML es una técnica para la especificación sistemas en todas sus fases. Nació en 1994 cubriendo los aspectos principales de todos los métodos de diseño antecesores y, precisamente, los padres de UML son Grady Booch, autor del método Booch; James Rumbaugh, autor del método OMT e Ivar Jacobson, autor de los métodos OOSE y Objectory. La versión 1.0 de UML fue liberada en Enero de 1997 y ha sido utilizado con éxito en sistemas construidos para toda clase de industrias alrededor del mundo: hospitales, bancos, comunicaciones, aeronáutica, finanzas.

LENGUAJE UNIFICADO DE MODELADO

La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a las cuales se les conoce como modelo. Recordemos que un modelo es una representación simplificada de la realidad; el modelo UML describe lo que hará un sistema, pero no dice cómo implementar dicho sistema.

DIAGRAMAS DE CASO DE USO.
El diagrama de casos de usos representa gráficamente los casos de uso que tiene un sistema. Se define un caso de uso como cada interacción supuesta con el sistema a desarrollar, donde se representan los requisitos funcionales. Es decir, se está diciendo lo que tiene que hacer un sistema y cómo. 

DIAGRAMAS DE CLASES.
Los diagramas de clases describen la estructura estática de un sistema. Las cosas que existen y que nos rodean se agrupan naturalmente en categorías. Una clase es una categoría o grupo de cosas que tienen atributos (propiedades) y acciones similares. Un ejemplo puede ser la clase “Aviones” que tiene atributos como el “modelo de avión”, “la cantidad de motores”, “la velocidad de crucero” y “la capacidad de carga útil”. Entre las acciones de las cosas de esta clase se encuentran: “acelerar”, “elevarse”, “girar”, “descender”, “desacelerar”. Un rectángulo es el símbolo que representa a la clase, y se divide en tres áreas. Un diagrama de clases está formado por varios rectángulos de este tipo conectados por líneas que representan las asociaciones o maneras en que las clases se relacionan entre sí.

DIAGRAMA DE FLUJO DE DATOS
Los diagrma de flujos son una manera de representar visualmente el flujo de datos a través de sistemas de tratamiento de información. Los diagramas de flujo describen que operaciones y en que secuencia se requieren para solucionar un problema dado.
Un diagrama de flujo u organigrama es una representación diagramática que ilustra la secuencia de las operaciones que se realizarán para conseguir la solución de un problema. Los diagramas de flujo se dibujan generalmente antes de comenzar a programar el código frente a la computadora. Los diagramas de flujo facilitan la comunicación entre los programadores y la gente del negocio. Estos diagramas de flujo desempeñan un papel vital en la programación de un problema y facilitan la comprensión de problemas complicados y sobre todo muy largos. Una vez que se dibuja el diagrma de flujo, llega a ser fácil escribir el programa en cualquier idioma de alto nivel. Vemos a menudo cómo los diagramas de flujo nos dan ventaja al momento de explicar el programa a otros. Por lo tanto, está correcto decir que un diagrama de flujo es una necesidad para la documentación mejor de un programa complejo.

Diagrama de Contexto: Nivel 0
En el diagrama de contexto se caracterizan todas las interacciones que realiza un sistema con su entorno (entidades externas), estas pueden ser otros sistemas, sectores internos a la organización, o factores externos a la misma. Se dibuja un sólo proceso que representa al sistema en cuestión y se escribe su nombre en dicha burbuja como un sustantivo común más adjetivos. De él solamente parten los flujos de datos que denotan las interrelaciones entre el sistema y sus agentes externos, no admitiéndose otros procesos ni almacenamientos en el dibujo.

Resulta de gran utilidad para los niveles posteriores de análisis como herramienta de balanceo. Y es conocido como el Diagrama de Flujo de Datos DFD de Nivel "0"

Diagrama de Nivel Superior: Nivel 1
En el diagrama de nivel superior se plasman todos los procesos que describen al proceso principal. En este nivel los procesos no suelen interrelacionarse directamente, sino que entre ellos debe existir algún almacenamiento o entidad externa que los una. Esta regla de construcción sirve como ayuda al analista para contemplar que en un nivel tan elevado de abstracción (DFD Nivel 1) es altamente probable que la información que se maneja requiera ser almacenada en el sistema aunque no esté especificado por un requisito funcional , siendo en realidad un requisito-no funcional.

Diagrama de Detalle o Expansión: Nivel 2
En un diagrama de nivel 2 o mayor, comienzan a explotarse las excepciones a los caminos principales de la información dado que aumenta progresivamente el nivel de detalle. De aquí en adelante se permiten los flujos entre procesos.

El DFD (Diagrama De Flujo De Datos) nivel 2 puede considerarse el máximo para ser validado en forma conjunta con el usuario dado que en los niveles posteriores el alto grado de complejidad del diagrama puede resultar de muy difícil lectura para personas ajenas al equipo de sistemas. También se recomienda el diagrama de nivel superior.







Diagrama de comportamiento

INTRODUCCIÓN
En esta clase solo vimos de forma ràpida lo que son los diagrama de comportamiento.No estudiamos todos los diagramas.Pero aquì les dare a conocer un poco de cada diagrama.

Se conocerá cuáles eran los beneficios que se obtienen al utilizar cada uno de estos diagramas, es bueno referirse de que cada diagrama tiene su función, esto ayudan a resolver problemas, a desarrollar de mejor manera un proyecto de software.
MARCO TEORICO
DIAGRAMA DE COMPORTAMIENTO.
Los diagramas de comportamiento se emplean para visualizar, especificar, construir y documentar los aspectos dinámicos de un sistema.
Los aspectos dinámicos de un sistema  de softwareinvolucran cosas tales como el flujo de mensajes a lo largo del tiempo y el movimiento físico de componentes  en una red. A continuación se describe y ejemplifica cada uno de los cinco diagramas de comportamiento de UML.
Diagrama de casos de uso
Los casos de uso y el diagrama de uso de caso UML ayudan a determinar la funcionalidad y características del software desde la perspectiva del usuario. Para proporcionarle una aproximación a la manera en la que funcionan los casos de uso y los diagramas de uso de caso, se crearán algunos para una aplicación de software que gestiona archivos de música digital, similar al software iTunes de Apple. Algunas de las cosas que puede incluir el software son funciones para:
• Descargar un archivo de música MP3 y almacenarlo en la biblioteca de la aplicación.
• Capturar música de streaming (transmisión continua) y almacenarla en la biblioteca de la aplicación.
• Gestionar la biblioteca de la aplicación (por ejemplo, borrar canciones u organizarlas en listas de reproducción).
• Quemar en CD una lista de las canciones de la biblioteca.
• Cargar una lista de las canciones de la biblioteca en un iPod o reproductor MP3.
• Convertir una canción de formato MP3 a formato AAC y viceversa.
Un caso de uso describe la manera en la que un usuario interactúa con el sistema, definiendo los pasos requeridos para lograr una meta específica (por ejemplo, quemar una lista de canciones ¿en un CD). Las variaciones en la secuencia de pasos describen varios escenarios (por ejemplo, ¿y si todas las canciones de la lista no caben en un CD?).
Un diagrama UML de uso de caso es un panorama de todos los casos de uso y sus relaciones.
El mismo proporciona un gran cuadro de la funcionalidad del sistema. En este diagrama.Por lo general, los sistemas complejos tienen más de un actor. Por ejemplo, una aplicación de máquina expendedora puede tener tres actores que representan clientes, personal de reparación y proveedores que rellenan la máquina.
En el diagrama de uso de caso, los casos de uso se muestran como óvalos. Los actores se conectan mediante líneas a los casos de uso que realizan. Observe que ninguno de los detalles de los casos de uso se incluye en el diagrama y, en vez de ello, necesita almacenarse por separado.
Observe también que los casos de uso se colocan en un rectángulo, pero los actores no.
Este rectángulo es un recordatorio visual de las fronteras del sistema y de que los actores están afuera del sistema.
Algunos casos de uso en un sistema pueden relacionarse mutuamente. Por ejemplo, existen pasos similares al de quemar una lista de canciones en un CD y cargar una lista de canciones en un iPod. En ambos casos, el usuario crea primero una lista vacía y luego agrega las canciones de la biblioteca a la lista. Para evitar duplicación en casos de uso, por lo general es mejor crear un nuevo caso de uso que represente la actividad duplicada y luego dejar que los otros casos de uso incluyan este nuevo caso de uso como uno de sus pasos. Dado que despliega todos los casos de uso, un diagrama de uso de caso es un auxiliar útil para asegurar que cubrió toda la funcionalidad del sistema. En el organizador de música digital,seguramente querría más casos de uso, tal como uno para reproducir una canción de la biblioteca.

Diagrama de actividad
Un diagrama de actividad UML muestra el comportamiento dinámico de un sistema o de parte deun sistema a través del flujo de control entre acciones que realiza el sistema. Es similar a un diagrama de flujo, excepto porque un diagrama de actividad puede mostrar flujos concurrentes.
El componente principal de un diagrama de actividad es un nodo acción, representado mediante un rectángulo redondeado, que corresponde a una tarea realizada por el sistema de software. Las flechas desde un nodo acción hasta otro indican el flujo de control; es decir, una flecha entre dos nodos acción significa que, después de completar la primera acción, comienza la segunda acción. Un punto negro sólido forma el nodo inicialque indica el punto de inicio de la actividad. Un punto negro rodeado por un círculo negro es el nodo final que indica el fin de la actividad.
Un tenedor(fork) representa la separación de actividades en dos o más actividades concurrentes.
Se dibuja como una barra negra horizontal con una flecha apuntando hacia ella y doso más flechas apuntando en sentido opuesto. Cada flecha continua representa un flujo de controlque puede ejecutarse de manera concurrente con los flujos correspondientes a las otras flechas continuas. Dichas actividades concurrentes pueden realizarse en una computadora, usando diferentes hebras o incluso diferentes computadoras.
Ejemplo:
La figura que se  muestra  a continuación, es un ejemplo de diagrama de actividad que involucra hornear un pastel.
El primer paso es encontrar la receta. Una vez encontrada pueden medirse los ingredientes secos y líquidos, mezclarse y precalentar el horno. La mezcla de los ingredientes secos puede hacerse en paralelo con la mezcla de los ingredientes líquidos y el precalentado del horno.
Una unión (join) es una forma de sincronizar flujos de control concurrentes. Se representa mediante una barra negra horizontal con dos o más flechas entrantes y una flecha saliente. Elflujo de control representado por la flecha saliente no puede comenzar la ejecución hasta que todos los flujos representados por las flechas entrantes se hayan completado.
En la figura muestra que se tiene una unión antes de la acción de mezclar en conjunto los ingredientes líquidos y secos.
Esta unión indica que todos los ingredientes secos deben mezclarse y que debe hacerse lo mismo con todos los ingredientes líquidos antes de poder combinar las dos mezclas. La segunda unión en la figura indica que, antes de comenzar a hornear el pastel, todos los ingredientes deben mezclarse juntos y el horno debe estar a la temperatura correcta.
Un nodo de decisión corresponde a una rama en el flujo de control con base en una condición.
Tal nodo se despliega como un triángulo blanco con una flecha entrante y dos o más flechas salientes. Cada flecha saliente se etiqueta con una guardia (una condición dentro de corchetes).
El flujo de control sigue la flecha saliente cuya guardia es verdadera. Es recomendable asegurarsede que las condiciones cubran todas las posibilidades, de modo que exactamente una de ellas sea verdadera cada vez que se llegue a un nodo de decisión. La figura muestra un nodo de decisión que sigue al horneado del pastel. Si el pastel está hecho, entonces se saca del horno. De otro modo, se hornea un poco más.


Una de las cosas que no dice el diagrama de actividad de la figura ya anteriormente observada es quién o qué hace cada una de las acciones. Con frecuencia, no importa la división exacta de la mano de obra. Pero si quiere indicar cómo se dividen las acciones entre los participantes, puede decorar el diagrama de actividad con “canales”, como se muestra en la siguiente figura. Los canales, como el nombreimplica, se forman dividiendo el diagrama en tiras o “carriles”; es decir como si fuera una alberca con carriles de natación, cada uno de los cuales corresponde a uno de los participantes. Todas las acciones en un carril las realiza el participante correspondiente. En la figura, Evan es responsable de la mezcla de los ingredientes secos y, luego, de mezclar juntos los ingredientes secos y los líquidos; Helen es responsable de calentar el horno y sacar el pastel; y Mary es responsable de todo lo demás.


Diagrama de Estado
Un diagrama de estado UML modela los estados de un objeto, las acciones que se realizandependiendo de dichos estados y las transiciones entre los estados del objeto.
Como ejemplo, considere el diagrama de estado para una parte de un compilador Java. La entrada al compilador es un archivo de texto, que puede considerarse como una larga cadena de caracteres. El compilador lee caracteres uno a uno y a partir de ellos determina la estructura del programa. Una pequeña parte de este proceso de lectura de caracteres involucra ignorarcaracteres de “espacio blanco” (por ejemplo, los caracteres espacio, tabulador, línea nueva y retorno) y caracteres dentro de un comentario.
Un diagrama de estado muestra los estados mediante rectángulos redondeados, cada uno de los cuales tieneun nombre en su mitad superior. También existe un círculo llamado “pseudoestado inicial”, queen realidad no es un estado y en vez de ello sólo apunta al estado inicial.

En la figura que está a continuación el estado start es el estado inicial. Las flechas de un estado a otro estado indican transiciones o cambios en el estado del objeto. Cada transición se etiqueta con un evento disparador, una diagonal (/) y una actividad. Todas las partes de las etiquetas de transición son opcionales en los diagramas de estado. Si el objeto está en un estado y el evento disparador ocurre para una de sus transiciones, entonces se realiza dicha actividad de transición y el objeto toma un nuevo estado, indicado por la transición. Por ejemplo, en la figura A1.13, si el objeto EliminadorEspacioBlancoyComentario está en el estado start y el siguiente carácter es “/”, entonces EliminadorEspacioBlancoyComentario avanza desde dicho carácter y cambia al estado vio ‘/’.
Si el carácter después de “/” es otra “/”, entonces el objeto avanza al estado línea comentario y permanece ahí hasta que lee un carácter de fin de línea. Si en vez de ello el siguiente carácter después de “/” es “*”, entonces el objeto avanza al estado bloque comentario y permanece ahí hasta que ve otro “*” seguido por un “/”, que indica el final del bloque comentario. Estudie el diagrama para asegurarse de que lo entiende. Observe que, después de avanzar por el espacio en blanco o por un comentario, EliminadorEspacioBlancoyComentario regresa al estado start y comienza de nuevo. Dicho comportamiento es necesario, pues puede haber varios comentarios sucesivos o caracteres de espacio en blanco antes de cualquier otro carácter en el código fuente Java.
Un objeto puede transitar a un estado final, lo que se indica mediante un círculo negro con un círculo blanco alrededor de él, lo que indica que ya no hay más transiciones. En la figura, el objeto EliminadorEspacioBlancoyComentario termina cuando el siguiente carácter no es espacio en blanco o parte de un comentario. Observe que todas las transiciones, excepto las dos que conducen al estado final, tienen actividades que consisten en avanzar al siguiente carácter. Las dos transiciones hacia el estado final no avanzan sobre el siguiente carácter porque el siguiente carácter es parte de una palabra o símbolo de interés para el compilador.
Observe que, si el objeto está en el estado vio ‘/’, pero el siguiente carácter no es “/” o“*”, entonces “/” es un operador división o parte del operador /= y, por tanto, no se quiere avanzar.
De hecho, se quiere regresar un carácter para hacer el “/” en el siguiente carácter, de modo que “/” pueda usarse por parte del compilador. En la figura, esta actividad se etiqueta como retroceder ‘/’.
 



Un diagrama de estado le ayudará a descubrir situaciones pérdidas o inesperadas, es decir, con un diagrama de estado, es relativamente sencillo garantizar que todos los posibles eventos disparadores para todos los estados posibles se representaron. Por ejemplo, en la figura que se observó anteriormente, puede verificar fácilmenteque cada estado incluyó transiciones para todos los posibles caracteres.
Los diagramas de estado UML pueden contener muchas otras características no incluidas en la figura ya observada. Por ejemplo, cuando un objeto está en un estado, por lo general no hace más que sentarse y esperar que ocurra un evento disparador. Sin embargo, existe un tipo especial deestado, llamado estado de actividad, donde el objeto realiza alguna actividad, llamada haceractividad, mientras está en dicho estado. Para indicar que un estado es un estado de actividad en el diagrama de estado, se incluye, en la mitad inferior del rectángulo redondeado del estado, la frase “do/” seguida por la actividad que debe realizar mientras está en dicho estado. El “hacer actividad” puede terminar antes de que ocurra cualquier transición de estado, después de lo cual el estado de actividad se comporta como un estado normal de espera. Si una transición del estado de actividad ocurre antes de terminar el “hacer actividad”, entonces se interrumpe el “hacer actividad”.
Puesto que un evento disparador es opcional cuando ocurre una transición, es posible que ningún evento disparador pueda mencionarse como parte de una etiqueta de transición. En tales casos, para estados de espera normales, el objeto inmediatamente transitará de dicho estado al nuevo estado. Para estados de actividad, tal transición se realiza tan pronto como termina el “hacer actividad”.

Diagrama de Comunicación
El diagrama de comunicación UML (llamado “diagrama de colaboración” en UML 1.X) proporciona otro indicio del orden temporal de las comunicaciones, pero enfatiza las relaciones entre los objetos y clases en lugar del orden temporal. El diagrama de comunicación que se ilustra en la figura siguiente, despliega las mismas acciones que se muestran en el diagrama de secuencia.
 


En un diagrama de comunicación, los objetos interactuantes se representan mediante rectángulos.
Las asociaciones entre objetos lo hacen mediante líneas que conectan los rectángulos.
Por lo general, en el diagrama existe una flecha entrante hacia un objeto que comienza la secuencia de pase de mensaje. Esa flecha se etiqueta con un número y un nombre de mensaje. Si el mensaje entrante se etiqueta con el número 1 y si hace que el objeto receptor invoque otros mensajes en otros objetos, entonces los mencionados mensajes se representan mediante flechas desde el emisor hacia el receptor a lo largo de una línea de asociación y reciben números 1.1, 1.2, etc., en el orden en el que se llaman. Si tales mensajes a su vez invocan otros mensajes, se agrega otro punto decimal y otro número al número que etiqueta dichos mensajes para indicar un anidado posterior del pase de mensaje.
 

Diagrama de Secuencia
En contraste con los diagramas de clase y con los diagramas de implementación, que muestran la estructura estática de un componente de software, un diagrama de secuencia se usa para mostrar las comunicaciones dinámicas entre objetos durante la ejecución de una tarea. Este tipo de diagrama muestra el orden temporal en el que los mensajes se envían entre los objetos para lograr dicha tarea. Puede usarse un diagrama de secuencia para mostrar las interacciones en un caso de uso o en un escenario de un sistema de software.
En la figura que se ilustra a continuación se ve un diagrama de secuencia para un programa de dibujo. El diagramamuestra los pasos involucrados, resaltando una figura en un dibujo cuando se le da clic. Por lo general, cada caja de la fila que hay en la parte superior del diagrama corresponde a un objeto, aunque es posible hacer que las cajas modelen otras cosas, como clases. Si la caja representa un objeto (como es el caso en todos los ejemplos), entonces dentro de la caja puede establecerse de manera opcional el tipo del objeto, precedido por dos puntos. También se puede escribir un nombre del objeto antes de los dos puntos, como se muestra en la tercera caja de la figura.
Abajo de cada caja hay una línea punteada llamada línea de vida del objeto. El eje vertical que hay en el diagrama de secuencia corresponde al tiempo, donde el tiempo aumenta conforme se avanza hacia abajo.
Un diagrama de secuencia muestra llamadas de método usando flechas horizontales desde el llamador hasta el llamado, etiquetado con el nombre del método y que opcionalmente incluye sus parámetros, sus tipos y el tipo de retorno. Por ejemplo, en la figura, MouseListener(escucha de ratón) llama al método getFigureAt() (obtener figura en) de Drawing (dibujo).
Cuando un objeto ejecuta un método (es decir, cuando tiene un marco de activación en la pila), opcionalmente puede mostrar una barra blanca, llamada barra de activación, abajo de la línea de vida del objeto. En la figura, las barras de activación se dibujan para todas las llamadas de método. El diagrama también puede mostrar opcionalmente el retorno de una llamada de método con una flecha punteada y una etiqueta opcional. En la figura, el retorno de la llamada de método getFigureAt() se muestra con una etiqueta del nombre del objeto que regresa.
 


CONCLUSIÓN
Los diagramas de casos de uso se utilizan para ilustrar los requerimientos del sistema al mostrar como reacciona una respuesta a eventos que se producen en el mismo.
El diagrama de estados, o de transiciones de estado, es otra herramienta para determinar los métodos delas clases.
Los diagramas de actividad muestran la secuencia de actividades en un proceso, incluyendo las actividades secuenciales y paralelas, además de las decisiones que se toman.
Los diagramas de secuencia pueden ilustrar una sucesión de interacciones entre clases o instancias de objetos a través del tiempo.
Los diagramas de comunicación describen las interacciones entre dos o más cosas en el sistema que desempeñan un comportamiento mayor a lo que cualquiera de las dos cosas pueden hacer por su cuenta.
BIBLIOGRAFÍA
Pressman, R. 2010. INGENIERÍA DEL SOFTWARE. Un enfoque práctico. Séptima edición.