domingo, 6 de mayo de 2012

DIAGRAMAS DE ESTADO


También se conoce como motor de estados, es una manera para caracterizar un cambio en un sistema es decir que los objetos que lo componen modificaron su estado como respuestas a los sucesos y al tiempo.

El diagrama de estados UML captura este tipo de cambios. Presenta los estados en los que se encuentra un objeto junto con las transiciones entre los estados.

Simbología

Rectángulo de vértices redondeados que representa a un estado, junto con una línea continua y una punta de flecha, que representa una transición. Ejemplo:

Adición de detalles al icono de estado

El UML le da opción de agregar detalles a la simbología. Así como es posible dividir un símbolo de clase en tres áreas(nombre, atributo y operaciones).

Ejemplo de variables con actividades:


Sucesos y acciones

El suceso provoca una transición y la actividad se ejecuta para que se produzca la transición.
Ejemplo:

¿POR QUÉ SON IMPORTANTES LOS DIAGRAMAS DE ESTADOS?

El diagrama de estados proporciona una gran cantidad de símbolos y abarca varias ideas. Los desarrolladores, deben saber la forma en que los objetos se supone se comportarán, ya que son ellos quienes tendrán que establecer tales comportamientos en el software.

Los diagramas de estado se aseguran que no tendrán que adivinar lo que se supone que harán los objetos, con una clara representación de un objeto aumenta la probabilidad de que el equipo de desarrollo produzca un sistema que cumpla con los requerimientos.



DIAGRAMAS DE CASOS DE USO


El caso de uso es un poderoso elemento que le ayudara a entender el comportamiento de un sistema, le ayuda a reunir requerimientos de parte del usuario.

Representación de un modelo de caso de uso

La representación gráfica es directa. Una elipse representa un caso de uso y una figura agregada representa un actor y una línea asociativa representa la comunicación. Ejemplo:

Secuencias de pasos en los escenarios

Se puede realizar a partir de un diagrama de actividades UML, el cual estudia escenarios que en sí es una secuencia de pasos, lo que se debe entender es que esos pasos no son visibles y por la menor confusión es necesario el uso de notas.

Concepción de las relaciones entre casos de uso

Inclusión

Para representar a la inclusión se utiliza el símbolo de dependencia entre clases, en la línea se agrega un estereotipo con la palabra: incluir. Ejemplo:

Extensión

La extensión sólo se realiza en puntos indicados de manera específica dentro de la secuencia del caso de uso base. A estos puntos se les conoce como puntos de extensión.

Generalización

Las clases pueden heredarse entre sí y eso también se aplica a los casos de uso. La relación de generalización puede establecerse entre actores, así como entre casos de uso. Ejemplo:

Agrupamiento

Forma de organización directa en los casos de uso que se relacionan.

Aplicación de los modelos de caso de uso

Ejemplo: Una LAN  es una red de comunicaciones que una organización utiliza en un ámbito limitado. Permite a los usuarios repartir recursos e información.

Diagrama de comprensión de dominio

El siguiente diagrama se analizará desde el vasto mundo de la consultoría. Ejemplo:

Elementos estructurales

Las clases, objetos, actores, interfaces y casos de uso son cinco de los elementos estructurales en el UML. Aunque tienen diferencias son similares en el sentido de que representan partes ya sean conceptuales o físicas de un modelo.

Relaciones

La asociación, generalización, dependencia y realización, son las relaciones en el UML.

Agrupamiento

El paquete es el único elemento de agrupamiento en el UML, éste permite organizar los elementos estructurales de un modelo.

Ejemplo de organización en UML







INTRODUCCIÓN A LOS CASOS DE USO


Es una colección de situaciones respecto al uso de un sistema. Teniendo en cuenta que cada escenario describe una secuencia de eventos, y cada secuencia se inicia por una persona, otro sistema, una parte del hardware o por el paso del tiempo.

El caso de uso es una excelente herramienta para estimular a que los usuarios potenciales hablen, de un sistema, desde sus propios puntos de vista. La idea es involucrar a los usuarios en las etapas iniciales del análisis y diseño del sistema sólo para que el sistema sea más útil.

Casos de uso adicionales

El objetivo es derivar una colección de casos de uso que mostrará a las personas que diseñen las máquinas y que las construyen. Los casos de usos reflejan lo que los clientes, recolectores y proveedores desean.

Inclusión de los casos de uso

Es lo mismo que decir usar un caso de uso, el objetivo es que se vuelva repetitivo.

Exclusión de los casos de uso

Es posible volver a utilizar un caso de uso de una forma distinta a una inclusión. En ocasiones se crea un caso de uso  agregándole algunos pasos a un caso de uso existente.

Inicio del análisis de un caso de uso

Empieza con entrevistas a los clientes que lo llevan a los diagramas iniciales, luego se entrevistan los usuarios, después se describe brevemente cada caso de uso,  y se pone de manifiesto la lista de todos los actores involucrados.





AGREGACIÓN, COMPOSICIÓN, INTERFACES Y REALIZACIÓN


Agregación

También conocida como acumulación, se da cuando una clase cuenta con otras clases. Una asociación por agregación se representa por una línea entre el componente y el todo con un rombo sin relleno que conforma el todo. Ejemplo:

Composición

Cada componente dentro de una composición puede pertenecer tan sólo a un todo. Un rombo relleno representa esta relación. Ejemplo:

Las composiciones figuran en gran medida en los diagramas de contexto, un mapa de contexto es como un gran mapa que contiene otros mapas con grandes dimensiones., éste muestra los componentes de una clase en un diagrama anidado en un rectángulo. Ejemplo:

Interfaces y realizaciones

Una interfaz es un conjunto de operaciones que especifica cierto aspecto de la funcionalidad de una clase, y es un conjunto de operaciones que una clase presenta a otras. Y la relación entre una clase y una interfaz se conoce como realización.
La realización se indica con una línea discontinua y con una flecha al final sin rellenar o también puede representarse con un pequeño circulo que conecte con una línea a una clase.

Ejemplos:

Visibilidad

La visibilidad se aplica a atributos u operaciones, y establece la proporción en que otras clases podrán utilizar los atributos y operaciones de una clase dada. Existen tres niveles de visibilidad: nivel público (la funcionalidad se extiende a otras clases), nivel protegido (la funcionalidad se da sólo a las clases que se heredan de la clase original) y el nivel privado (sólo la clase puede utilizar el atributo u operación). Ejemplo:

Ámbito

El ámbito es otro aspecto de los atributos y operaciones. Hay dos clases de ámbitos: el ámbito de instancia que consiste en cada objeto de una clase cuenta con su atributo u operación y el ámbito de archivador que dice que sólo hay un valor para un atributo o una operación en particular a través de un conjunto de objetos de una clase.





USO DE RELACIONES


Asociaciones:


Las clases se conectan entre sí de forma conceptual.

 Ejemplo:

La asociación puede ser inversa o incluso conectar a más de una clase. Ejemplo:

Ejemplo de asociaciones con otras clases:

Restricciones en las asociaciones

Es la normatividad que se debe seguir dentro de una asociación. Ejemplo:



Vínculos

Un vínculo es la instancia de una asociación, conecta a los objetos en lugar de las clases, debe ser subrayado para reconocerse. Ejemplo:

Multiplicidad

Señala la cantidad de objetos de una clase que pueden relacionarse con un objeto de la clase asociada. Ejemplo:


Asociaciones calificadas

Un calificador en una asociación resuelve el problema de la búsqueda. En el UML la información de identidad se conoce como calificador, su símbolo es un pequeño rectángulo adjunto a la clase que hará la búsqueda. Ejemplo:

Asociaciones reflexivas

Es la que se encarga de trazar la línea de la clase hacia sí misma. Ejemplo:



Herencia y generalización

La programación orientada a objetos tiene una estrecha relación con la vida cotidiana por eso es fácil trasladarla a varias categorías. Transfiriendo esto a otro término encontramos a la herencia, el UML lo llama o conoce también como generalización.
En la generalización, una clase secundaria es sustituible por una clase principal.

Ejemplo de jerarquía en la herencia:

Clases abstractas

Se denominan a aquellas que no proveen objetos. Ejemplos en clases como jugador y reloj.  Una clase abstracta se distingue por tener sus letras  cursivas. Ver la ilustración:

Dependencia

Se da cuando una clase utiliza a otra. Su representación es una flecha que está conectada a una línea discontinua. Ejemplo:









USO DE LA ORIENTACIÓN A OBJETOS


Clase

En UML es representada por un rectángulo, generalmente su nombre comienza en mayúscula y su posición se encuentra en la parte superior, en caso de que conste de dos palabras deben ir juntas. Ejemplo:


Se evitan los nombres acentuados o con la letra ñ.
Un paquete es la manera en el que UML organiza los diagramas de elementos por eso se representa como una carpeta tabular cuyo nombre es una cadena de texto. Los dos puntos se usan para separar el nombre del paquete que se encuentra a la izquierda  del nombre de la clase que está a la derecha. Ejemplo:


Al anterior ejemplo se le conoce como nombre de ruta.

Atributos

Es una propiedad o una característica de una clase y describe un rango de valores que la propiedad podrá contener en los objetos, es decir, instancias de clase. El UML da la opción de indicar información adicional de los atributos, entre los tipos de valores se encuentran: cadena (string,), número de punto flotante (float),entero(integer) y booleano(boolean). Ejemplos de atributos dentro de la clase:







Operaciones     
   
Es la ejecución dentro de una clase, van dentro de paréntesis y ahí se especifica el parámetro que funcionara con el dato. La lista de operaciones se inicia debajo de una línea que separa a las operaciones de los atributos. Ver la ilustración:






Atributos, operaciones y concepción

Es necesario a veces dejar los atributos y las operaciones en un campo vacío para no saturar el diagrama con tantos elementos, o en caso de querer mostrar algunos atributos u operaciones deberán indicarse con tres puntos, así se entenderá que no se encuentran en todo el conjunto. Ejemplos:




Si tiene una larga lista de atributos u operaciones se puede utilizar un estereotipo para organizarla de forma que se comprenda mejor, un estereotipo en UML es el modo que se puede extender un objeto, es decir, crear nuevos elementos que son específicos de un problema que se intenta resolver. En sí es una estructura flexible, un ejemplo puede ser el nombre de una clase que se usa para indicar una característica de la misma.



Responsabilidades y restricciones

La responsabilidad es una descripción de lo que hará una clase y la restricción es un texto libre bordeado por llaves.
La responsabilidad va en la parte inferior:


Ejemplo de restricción:


Notas adjuntas

Sirve para agregar información a una clase mediante una figura de notas adjuntas. Una nota puede contener tanto imagen como texto.

En síntesis las clases son el vocabulario o la terminología de un área del conocimiento, conforme a su análisis y diseño de sistemas se podrá entender y modelar los términos de clases en UML.
Ejemplo de diagrama:


















sábado, 28 de abril de 2012

ORIENTACIÓN A OBJETOS


La orientación a objetos es un paradigma que es importante para el diseño de software .El UML influye al permitirle  generar modelos fáciles de usar para que los desarrolladores puedan convertirlos.
Hay objetos virtuales y concretos, y por lo general los programas imitan los objetos existentes al alrededor de los seres humanos, Un objeto es una instancia de clase o categoría, también cuanta con unos atributos (propiedades) y acciones(son todas las actividades que los objetos pueden realizar). Los atributos y acciones en conjunto se conocen como  características o rasgos.
En la orientación a objetos una clase tiene una segunda función a parte de la categorización y es servir de plantilla para fabricar objetos. El propósito de este mecanismo es desarrollar software que refleje particularmente un esquema del mundo, entre más atributos y acciones tome de la realidad mayor eficacia tendrá la simulación del objeto. Ejemplo:


Conceptos claves en la orientación a objetos:

Abstracción: Su función es quitar las acciones y propiedades de un objeto para dejar solamente las necesarias.

Herencia: El objeto tiene todas las características de la clase a la que proviene. Ejemplo:

Los electrodomésticos heredan los atributos y las acciones de la clase Electrodoméstico vista en la parte superior, cada electrodoméstico es una subclase y Electrodoméstico es la superclase de cada subclase.

Polimorfismo: Una operación tiene el mismo nombre en diferentes clases.


Por ejemplo, la operación abrir se aplica en distintas circunstancias con cada objeto.

Encapsulamiento: Cuando un objeto trae su funcionalidad está misma se oculta. Permite reducir el potencial de errores que pueden ocurrir, una ilustración la puede dar el proceso interno de un televisor que nadie ve.

Envío de mensajes

Un objeto envía a otro objeto un mensaje para realizar la operación y el receptor la ejecuta.

Asociaciones

Relaciones de objetos entre sí. Ejemplo:



Una clase puede asociarse con una clase distinta (multiplicidad):


Agregación: Parte de un sistema que complementa. Refleja casos extremadamente comunes y ayuda a crear modelos. Ejemplo:



La  recompensa

Los objetos y sus asociaciones conforman la columna vertebral de la funcionalidad de los sistemas. Lo importante es utilizar la orientación a objetos para el área de comprensión del cliente.