lunes, 13 de agosto de 2012

Diagrama de Clases y Diagrama de Objetos



El diagrama de clases es utilizado para modelar la vista diseño estática del sistema, es la base para el diagrama de componentes y despliegue, consta de clases, interfaces y relaciones.
Una clase es la descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica.



Nombre de una clase: una clase debe tener un nombre que la distingue de las otras, un  nombre calificado  consta del nombre de la clase precedido dl nombre del paquete  en el que se encuentra.
Normalmente se pone en mayúscula  la primera letra de cada palabra como en Credito o SensorDeTemperatura

Atributos: es una propiedad  de una clase  identificada, que describe un rango de valores que pueden tomar las instancias de la propiedad. Un atributo representa una propiedad del elemento que se está modelando que es compartida por todos los objetos de esa clase.
El nombre de un atributo se pone en mayúscula la primera letra de cada palabra excepto la primera letra, como en numeroTdCredito

Operación: Una operación es la implementación de un servicio, que puede ser requerido  a cualquier objeto de la clase para que muestre un comportamiento.
El nombre tiene la misma estructura que el de los atributos.

Técnicas de modelado

Las clases se utilizan para modelar abstracciones  extraídas dl problema a resolver, cada abstracción es la parte del vocabulario del sistema, es decir que representan elementos importantes para el sistema.

RELACIONES

Una relación es una conexión entre elementos. Las tres relaciones más importantes son las de Dependencias, generalizaciones y asociaciones. Gráficamente se representan con diferentes tipos d líneas.

Dependencia: una dependencia es una relación que indica que un elemento utiliza la información y los servicios de otro elemento, pero no necesariamente a la inversa



Generalización: es una relación entre un elemento general llamado padre o superclase y  otro elemento más específico llamado hijo o subclase que hereda propiedades y operaciones de la superclase.

Un objeto de la clase hija puede asociar una variable o un parámetro cuyo tipo venga dado por el padre, pero no a la inversa.

Cuando una clase hijo implementa una misma operación  de la clase padre (con el mismo nombre y atributos) se denomina Polimorfismo.

Asociación: s una relación estructural que especifica que los objetos de un elemento están conectados a los objetos de otro elemento.

               
Multiplicidad: Representan cuantos objetos pueden conectarse a través de una asociación. Puede existir multiplicidad uno (1), cero o uno (0..1), muchos (0..*) uno o más (1..*)



Agregación: es una relación todo/parte en la cual una clase representa un todo que consta de elementos más pequeños.




                                Características avanzadas de las clases

Visibilidad: Indica si los atributos y operaciones pueden ser usados por otros clasificadores

Public (+) Indica que cualquier clase extrna con visibilidad a la clase puede utilizar la caractristica.

Protected (#) Indica que cualquier decendiente de la clase pued utilizar la caracteristica.

Private (-) indica que solo el propio clasificador puede utilizar la caracteristica.

Package (~) indica que solo los clasificadores declarados en el mismo paquete pueden utilizar la caacteristica.

Ejemplo de un Diagrama de clases del Glottone S.A


Relación Entre Paquetes

Se  ha utilizado paquetes para organizar las clases que intervienen, la utilización de paquetes es opcional (se puede o no utilizar) podemos observar los nombres calificados de cada una de las clases y la relación entre paquetes.
Nota: en la figura se muestran  los atributos y operaciones más importantes de cada clase.
A continuación se detalla la relación entre las clases de un mismo paquete.


Diagrama de clases de paquete Registro
Existe una relación de asociación




Podemos definir los atributos y operaciones en una hoja de clase de la siguiente manera:

Clase: Producto
Atributos:
codProducto
nombreProducto
precioProducto
descripciónProducto
unidadMedida
imagen
videoEnlace
stock

Operaciones
Registrar Nuevo Producto

ingresarProducto(codProducto, nombreProducto, precioProducto , descripciónProducto  ,unidadMedida,umagen, videoEnlace,stock)
Actualizar Producto

modificarProducto(codProducto, nombreProducto, precioProducto , descripciónProducto  ,unidadMedida,umagen, videoEnlace,stock)

Eliminar Producto
eliminarProducto(codProducto)




Diagrama de clases de paquete Negocio

Existe una relación de dependencia, entre las clases.

Diagrama de Objetos

Este diagrama muestra un conjunto de objetos y sus relaciones, son iguales que los diagramas de clase pero con casos reales o prototipos, ejemplo
 
                             

domingo, 12 de agosto de 2012

Conceptos Básicos para Modelar


Antes de dar paso a la realización de nuevos diagramas indispensables para  el análisis y diseño de sistemas,  considero necesario  detallar  los conceptos  importantes para poder desarrollar diseños de software.

Los diseños que se presentaran estarán realizados en  el Lenguaje  UML.

UML es un lenguaje para Visualizar, Especificar, Construir y Documentar los artefactos de un sistema con gran cantidad de software. Es un lenguaje de modelado que se centra en la representación conceptual y física de un sistema.

Visualizar: un modelo explicito facilita la comunicación.

Especificar: Significa construir modelos precisos  y completos, permite especificar todas las decisiones del análisis

Construir: UML permite realizar la ingeniería directa e inversa, es decir que es  posible establecer correspondencias desde un modelo UML a código de programación y viceversa.

Documentar: UML cubre la documentación de la arquitectura del sistema y todos sus detalles.

Modelo conceptual de UML


Ø  Elementos Estructurales: Son los nombres de los modelos, partes estáticas, estos se denominan  clasificadores:

Clase: es un conjunto de  objetos que comparten los mismos atributos, operaciones, relaciones y semántica.

Una interfaz  muestra el comportamiento completo o parcial de una clase.

Colaboración: proporciona un comportamiento cooperativo  mayor a la suma de comportamiento de sus elementos.

Caso de uso: descripción de un conjunto de secuencias de acciones que ejecuta un sistema.

Clase activa: sus objetos tienen uno o ms procesos o hilos de ejecución

Componente: es una parte reemplazable de un sistema que conforma y proporciona la implementación de un conjunto de interfaces (clases, librerías).

Artefacto: Es una parte física  y reemplazable de un sistema que contiene información física (bits) hay tipos de artefactos como: código fuente, ejecutables y scripts.



Nodo: Es un  elemento físico que existe en tiempo de ejecución y representa un recurso computacional que, generalmente, tiene alguna memoria y, a menudo capacidad de procesamiento.


Ø  Elementos de comportamiento: Son las partes  dinámicas de los modelos UML

Interacción:
Es una conexión entre objetos, comprende mensajes intercambiados entre un conjunto de objetos


Máquinas de estado: es un comportamiento  que especifica las secuencias de estados por las que pasa u objeto o interacción durante su vida en respuesta a eventos.


Actividad: Comportamiento que especifica una secuencia de pasos que ejecuta el proceso computacional. Una actividad es una acción.

Ø  Elementos de agrupación: Son las partes organizativas de los modelos.

Paquete: sirve para organizar el propio diseño, en él se pueden incluir los elementos estructurales, comportamiento e incluso otros elementos de agrupación.

Ø  Elementos de anotación: son las partes explicativas del modelo

Nota: Es un símbolo para mostrar restricciones y comentarios junto a un elemento  o colección de elementos

Las relaciones y  diagramas lo veremos en las siguientes publicaciones.
  




¿Qué  se entiende por arquitectura de un sistema?

Un sistema con gran cantidad de software requiere ser visto desde diferentes perspectivas (usuarios). La arquitectura permite manejar los diferentes puntos de vistas y controlar el desarrollo del sistema.

Se describe con 5 vistas interrelacionadas



Vista de casos de uso: Describen el comportamiento del sistema tal y como es percibido por usuarios finales, analistas y encargados de pruebas.

Vista de diseño: Comprende clases, interfaces y colaboraciones, forman el vocabulario y  solución.

Vista de interacción: Muestra el flujo de control  de diversas partes, incluyendo mecanismos de concurrencia y sincronización.

Vistas de Implementación: Comprende artefactos utilizados para ensamblar y poner en producción el sistema físico.

Vista de despliegue: Contiene los nodos que forman la topología  del hardware sobre la que se ejecuta el sistema.

¿Qué son los diagramas?

Un diagrama es la representación gráfica de un conjunto de elementos, los cuales  se crean para visualizar un sistema desde diferentes perspectivas, representa una vista resumida.
Existen diagramas que permiten representar la parte estática de un sistema y otros que representan la parte dinámica.


DIAGRAMAS ESTÁTICOS
DIAGRAMAS DINÁMICOS

  Ø  Diagramas de clases  
  Ø  Diagramas de componentes
  Ø  Diagramas de estructura compuesta  
  Ø  Diagramas de objetos
  Ø  Diagramas de despliegue  
  Ø  Diagramas de artefactos

  Ø  Diagramas de Casos de uso
  Ø  Diagramas de secuencia
  Ø  Diagramas de  comunicación
  Ø  Diagramas de estados
  Ø  Diagramas de actividades


sábado, 11 de agosto de 2012

MODELO CONCEPTUAL


Al realizar un estudio o análisis para construir un sistema de software, una parte primordial, constituye la construcción de un modelo conceptual del problema como también de la solución.

El modelo conceptual del problema  ayuda a  conocer el estado actual del lugar en el cual vamos a implementar el sistema e identificar el problema o las necesidades para proporcionar una solución que guiará la correcta construcción del software. Sirve para conocer el dominio del problema.


El modelo conceptual de la solución se realiza cuando se ha logrado comprender que es lo que se requiere implementar, es una solución al problema presentado.

A continuación se presenta un ejemplo de Modelo conceptual del problema de Glottone S.A




Como se puede observar la estrategia para realizar un modelo conceptual consiste en extraer los conceptos principales (palabras claves) del enunciado.



Ejemplo de Diagrama de Casos de Uso y Casos de Usos Expandidos


Con la finalidad de que la información publicada acerca de los Casos de uso , se comprenda mejor, a continuación proporciono un ejemplo sencillo dictado en clases, éste consta del diagrama de casos de uso y caso de uso expandido.

GLOTTONE S.A
GLOTTONE S.A es una cadena de comisariato tipo Gourmet. Su selecta clientela (de la alta sociedad), no le gusta hacer grandes columnas. El dueño de la cadena Mr. Tak-nhonni considera utilizar altas tecnologías para agilizar el proceso de facturación. La alta sociedad no usa dinero. Mr. Tak-nhonni desea utilizar geoposicionamiento, realidad aumentada y códigos Qr para cumplir con su objetivo.

Diagrama de Casos de Uso


En este diagrama, podemos observar una relación de tipo  <<include>>  entre el caso de uso ”Vender Productos ” y “Facturar Productos ”  lo cual representa  un llamado obligatorio a “Facturar Productos”


Nota: Pueden existir casos de uso con relación de tipo Extend lo cual indica que un caso de uso puede llamar a otro solo en ciertas circunstancias, pero no en todas.
A continuación se presenta el desarrollo de caso de uso extendido para “Vender Productos”

Caso de Uso Expandido


Caso de uso:
Vender Productos
Actores:
Cliente
Propósito:
Registrar una nueva venta de productos.

Resumen:
El Cliente al capturar la imagen del código Qr de un producto, puede visualizar toda la información del mismo y elegirlo para su compra.
Tipo:
Primario
Pre condiciones:
Deben estar ingresados los productos y los clientes
Curso Normal de Eventos
Acción del Autor
Respuestas del Sistema
1. Este caso de uso empieza cuando el cliente captura el código del producto, el cual lo direcciona al formulario de ventas.

3. Escoge la opción Agregar para comprar el producto.
4. Si no desea seguir agregando productos, escoge la opción Facturar
2. Muestra toda la información del producto.





5 .Genera el formulario facturar

Línea 4.   Ver Sección Facturar Productos
Sección Facturar Productos
Acción del Autor
Respuestas del Sistema
2. El cliente verifica que la información generada para la transacción esté correcta

3. Acepta la facturación
1. Carga los datos de la venta y determina el IVA, descuento y precio total.

4. Registra la nueva factura.
Flujo Alterno
Línea 3: Si no desea comprar producto, escoger cancelar.


Datos Relacionados:




Casos de usos Relacionados:
Registrar cliente
Registrar Productos
Diseño de Formulario:



Operaciones y Validaciones:
Operaciones:
Calcular IVA
Calcular descuento
Calcular precio total