Powered By Blogger

martes, 3 de julio de 2012

DISEÑO ORIENTADO A OBJETOS


Diseño orientado a objeto
     Patrones de diseño, componentes, diseño de interfases del sistema, notación de diseño.
LLos patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. Un patrón de diseño es una solución a un problema de diseño. Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.

   El componente básico del diseño orientado a objetos es la clase de objetos.
Se distinguen tres tipos de clases:
·         Objetos Entidad
·         Objetos de Interfaz
·         Objetos de Control.
Para cada clase identificada se describen:
·         Operaciones
·         Atributos
·         Restricciones
  Adicionalmente el OSM describe las asociaciones entre objetos o clases de objetos. Se distinguen los siguientes tipos de asociaciones:
·         Relaciones Estáticas
·         Herencia
·         Agregación
·         Comunicación por mensajes

  El diseño de interfaces de sistema es una tarea que ha adquirido relevancia en el desarrollo de un sistema. La calidad de la interfaz de usuario puede ser uno de los motivos que conduzca a un sistema al éxito o al fracaso. Los principios que se presentan son de utilidad para creación de interfaces funcionales y de fácil operación. A pesar de no ser capaces de resolver todos los aspectos propios del contexto con el que se esté trabajando, pueden ser combinados con la prototipación y la aplicación de heurísticas de evaluación para facilitar el proceso de diseño. El presente artículo se centra en los componentes de software de las interfaces de usuario, quedando fuera del alcance de mismo otros aspectos, como hardware y documentación. Lo anteriormente expuesto se complementa con un caso práctico de diseño de interfaces de usuario, producto de realizar la actividad de "Definición de Interfaces de Usuario" (EFS 4) de la metodología Métrica Versión 2.
  La notación de diseño, junto con los conceptos de programación estructurada, permite al diseñador representar detalles procedimentales de manera que se facilite la traducción a código. Hay disponibles notaciones gráficas, tabulares y de texto.


     Medición de los atributos del diseño.
L  la  medicion del software en las primeras etapas del ciclo de vida resulta insatisfactoria debido a las deficiencias que presentan las metricas y los sistemas predictivos existentes, en este trabajo se parte de la utilizacion de una metodologia formalizada, que permite definir dos metricas macov que son validas desde el punto de vista teorico.
    se  construye un sistema predictivo premacov que permite predecir los los valores de macov a partir del analisis del correspondiente diagrama de flujo de datos expandido. incluye tambien la validacion de premacov segun la teoria de la medicion, asi como un analisis de su aplicacion practica mediante la recogida de valores en trabajos de alumnos y en dos aplicaciones profesionales de gestion.

      Métricas del diseño.
   permiten medir de forma cuantitativa la calidad de los atributos internos del software. Esto permite al ingeniero evaluar la calidad durante el desarrollo del sistema.
L las métricas se centran en cuantificar tanto la complejidad, como la funcionalidad y eficiencia inmersa en el desarrollo de software. Inclina sus objetivos a mejorar la comprensión de la calidad del producto, a estimar la efectividad del proceso y mejorar la calidad del trabajo.
   las métricas empleadas están diseñadas para evaluar los siguientes atributos de calidad:
§  Responsabilidad . Consiste en la responsabilidad asignada a una clase en un marco de modelado de un dominio o concepto, de la problemática propuesta.
§  Complejidad de implementación. Consiste en el grado de dificultad que tiene implementado un diseño de clases determinado.
§  Reutilización. Consiste en el grado de reutilización presente en una clase o estructura de clase,dentro de un diseño de software.
§  Acoplamiento. Consiste en el grado de dependencia o interconexión de una clase o estructura de clase, con otras, está muy ligada a la característica de Reutilización.
§  Complejidad del mantenimiento. Consiste en el grado de esfuerzo necesario a realizar para desarrollar un arreglo, una mejora o una rectificación de algún error de un diseño de software. Puede influir indirecta, pero fuertemente en los costes y la planificación del proyecto.

      Técnicas de reingeniería e ingeniería de reverso.

Reingeniería del software se puede definir como: “modificación de un producto software, o de ciertos componentes, usando para el análisis del sistema existente técnicas de Ingeniería Inversa y, para la etapa de reconstrucción, herramientas de Ingeniería Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilización, comprensión o evaluación.”
Entre la técnicas de Reingeniería tenemos:

Reestructuración de Datos: Esto es reversar el modelo físico al modelo lógico para obtener el modelo de E-R de la base de datos, recuperando el diccionario de datos, atributos, entidades, dominios, cardinalidad etc, la mayoría de las herramientas CASE del mercado cumplen con esta función.

Reestructuración de Código: Llevar a cabo esta actividad requiere analizar el código fuente empleando una herramienta de reestructuración, de no tener el código fuente disponible puede aplicarse ingeniería inversa sobre el compilado para obtener el código fuente original siempre y cuando la licencia del software lo permita, inmediatamente se indican las violaciones de las estructuras de programación estructurada u orientada a objetos, y entonces se reestructura el código (esto se puede hacer automáticamente). El código reestructurado resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalías. Se actualiza la documentación interna del código.
§  Responsabilidad . Consiste en la responsabilidad asignada a una clase en un marco de modelado de un dominio o concepto, de la problemática propuesta.
§  Complejidad de implementación. Consiste en el grado de dificultad que tiene implementado un diseño de clases determinado.
§  Reutilización. Consiste en el grado de reutilización presente en una clase o estructura de clase,dentro de un diseño de software.
§  Acoplamiento. Consiste en el grado de dependencia o interconexión de una clase o estructura de clase, con otras, está muy ligada a la característica de Reutilización.
§  Complejidad del mantenimiento. Consiste en el grado de esfuerzo necesario a realizar para desarrollar un arreglo, una mejora o una rectificación de algún error de un diseño de software. Puede influir indirecta, pero fuertemente en los costes y la planificación del proyecto.


     Estándares de calidad.
Son normas y protocolos internacionales que deben cumplir productos de cualquier indole para su distribución y consumo por el cliente final.

Herramientas case.

Son diversas aplicaciones informáticasdestinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero. Estas herramientas nos pueden ayudar en todos los aspectos del ciclo de vida de desarrollo del software en tareas como el proceso de realizar un diseño del proyecto, cálculo de costos, implementación de parte del código automáticamente con el diseño dado, compilación automática, documentación o detección de errores entre otras, que analizaba la relación existente entre los requisitos de un problema y las necesidades que éstos generaban, el lenguaje en cuestión se denominaba PSL (Problem Statement Language) y la aplicación que ayudaba a buscar las necesidades de los diseñadores PSA (Problem Statement Analyzer).









No hay comentarios:

Publicar un comentario