martes, 12 de noviembre de 2013

Metodologías Orientadas a Objetos

Planteamiento del problema

 Una biblioteca desea incorporar sus servicios en un sistema de software automatizado, que incluya los procesos de:
  • §  Préstamo de libros
  • §  Administración de usuarios
  • §  Administración de préstamos de libros
  • §  Búsquedas en el catálogo electrónico y
  • §  Renovación de suscripción.

El funcionamiento requerido del sistema es el siguiente:

Bibliotecario y Préstamo
Para poder realizar un préstamo es necesario que el bibliotecario autentifique al usuario y al libro. Si el usuario tiene vigente su suscripción se procede a realizar el préstamo y el libro se marca como prestado en el catálogo, se agrega a la lista de préstamos y se le asignan fechas de préstamo, entrega y renovación.
Si el usuario no ha renovado su suscripción, no se realiza el préstamo y es necesario que el usuario renueve su suscripción para tener acceso a préstamos de libros.
El bibliotecario también renueva préstamos, hace el proceso de los libros devueltos, de libros extraviados y administra la información del usuario para renovar su suscripción.

Catalogador y los libros
Procesa los libros, agrega un nuevo registro al catálogo en línea o una copia a un registro existente. También puede buscar ese libro en el catálogo; ya sea por nombre, materia, título o número de registro del libro para ver su información completa.

Administrador
Solicita un listado de todos los libros cuyo plazo de préstamo ha vencido por más  del mínimo  de días establecido. Envía notificaciones sobre vencimiento de préstamos.

Usuario
El usuario puede buscar, reservar, renovar y administrar su información a través del sitio Web del Online Public Access Catalog (OPAC), libros, publicaciones periódicas, materiales audiovisuales.

Introducción

Los métodos de diseño orientado a objetos han evolucionado para ayudar a los desarrolladores a explotar el poder de los lenguajes de programación basados en objetos y orientados a objetos, utilizando las clases y objetos como bloques de construcción básicos.
Actualmente el modelo de objetos ha sido influenciado por un número de factores no sólo de la Programación Orientada a Objetos, POO (Object Oriented Programming, OOP por sus siglas en inglés). Además, el modelo de objetos ha probado ser un concepto uniforme en las ciencias de la computación, aplicable no sólo a los lenguajes de programación sino también al diseño de interfaces de usuario, bases de datos y arquitectura de computadoras por completo. La razón de ello es, simplemente, que una orientación a objetos nos ayuda a hacer frente a la inherente complejidad de muchos tipos de sistemas.
Un objetivo fundamental de las técnicas orientadas a objetos es lograr la reutilización masiva al construir el software.
Ventajas de la metodología orientada a objetos
En síntesis, algunas ventajas que presenta son:
  • Reutilización.
  • Estabilidad.
  • El diseñador piensa en términos del comportamiento de objetos y no en detalles de bajo nivel.
  • Se construyen clases cada vez más complejas.
  • Calidad.
  • Un diseño más rápido.
  • Integridad.
  • Mantenimiento más sencillo.
  • Una interfaz de pantalla sugestiva para el usuario.
  • Independencia del diseño.
  • Interacción.

Casos de uso

Un caso de uso es una descripción de un conjunto de secuencias de acciones, incluyendo algunas variantes que ejecuta un sistema para producir un resultado de valor para un actor. Cada caso de uso debe tener su nombre que lo distinga de los demás casos de uso.
El actor representa un conjunto coherente de roles que los usuarios de los casos de uso juegan al interactuar con éstos. Un actor puede representar un rol que es jugado por una persona, un dispositivo hardware e incluso otro sistema.
Los casos de uso pueden organizarse especificando relaciones de generalización, inclusión y extensión entre ellos.
La generalización significa que el caso de uso hijo hereda el comportamiento y significado del caso de uso padre.
Una relación de inclusión significa que un caso de uso base incorpora explícitamente el comportamiento de otro caso de uso en el lugar especificado en el caso base. Este caso de uso nunca se encuentra aislado, sino que es instanciado solo como parte de algún caso de uso base más amplia que lo incluye.
Una relación extendida se utiliza para modelar la parte de un caso de uso que el usuario puede ver como comportamiento opcional del sistema. De esta forma se separa el comportamiento opcional del obligatorio.

Plantillas












Diagramas

 Administrador
 Bibliotecario
 Catalogador
Usuario

Modelado de la base de datos

Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.
El diseño de una base de datos es un proceso complejo que abarca decisiones a muy distintos niveles. La complejidad se controla mejor si se descompone el problema en subproblemas y se resuelve cada uno de estos subproblemas independientemente, utilizando técnicas específicas. Así, el diseño de una base de datos se descompone en diseño conceptual, diseño lógico y diseño físico.
Son abstracciones que permiten la implementación de un sistema de base de datos en un proceso complejo que contienen decisiones en muchos distintos niveles, si se descompone el problema en sub problemas esto se resuelve independientemente, utilizando técnicas especificas. Así serán los siguientes modelos (Conceptual, Lógico, Físico).



Diagrama de clases

Son los diagramas más comunes en el modelado de sistemas orientados a objetos.
Un diagrama de clase muestra un conjunto de clases, interfaces, y colaboraciones y sus relaciones entre ellos.
Los diagramas de clase se usan en el diseño del modelo estático para ver un sistema. Para las demás partes, este modelado involucra el vocabulario del sistema, el modelado de colaboraciones, o modelado de esquemas. Los diagramas de clase son también la base para un par de diagramas relacionados: Diagramas de Componente y Diagramas de Instalación(Deployment).
Los diagramas de clase son importantes no solo para la visualización, especificación y documentación del modelo estructural, pero también para la construcción de sistemas ejecutables. Ingeniería hacia adelante e ingeniería inversa.
La construcción de software tiene muchas características similares, excepto, que la calidad(Fluidez) de software, uno tiene la habilidad de definir la construcción de bloques básicos para ir detallando(scratch).

Diagrama de secuencias

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





Consluiones

Conclusión Itzel 

Su principal ventaja es que reutiliza el código ya que está basada en componentes.
La idea principal es saber qué tipos de datos hay que utilizar, así como sus características y cómo es que se relacionan. Trata de abstraer objetos del mundo real para modelarlos y enfoca su atención en la estructura de los datos. El diseñador piensa en términos del comportamiento de objetos y no en detalles de bajo nivel, esto lo logra mediante el encapsulamiento. Su mantenimiento es más sencillo ya que el programador encargado del mantenimiento cambia un método de clase a la vez y cada clase efectúa sus funciones independientemente de las demás.

Conclusión Mitchel

La metodología orientada a objetos nos ofrece la ventaja de que trata de modelar el problema que se desea atacar a través de una abstracción que caracteriza a este paradigma de programación. Nos da las ventajas de que los atributos del objeto que se desea modelar se protegen a través del encapsulamiento, de tal forma que se tiene un control más severo sobre la manipulación de la clase.

Conclusión Alan

Las metodologías Orientadas  a Objetos gracias a la modularidad con la que atacan los sistemas, nos ayudan a disminuir la complejidad que en ocasiones muchos de ellos pueden presentarnos. Pues permiten la manipulación de objetos de manera organizada usando técnicas de notación ya definidas, proporcionando así mayor calidad en nuestro sistema. UML nos permite documentar, modelar y construir. Su notación ya definida y las herramientas CASE nos ayudan a hacer esto de manera aún más sencilla.

No hay comentarios:

Publicar un comentario