Buscar este blog

miércoles, 27 de mayo de 2015

Metodología OMT.


Qué es la metodología omt o de rumbaugh?
 
Es una de las metodologías de análisis y diseño orientadas a objetos más maduras y eficientes que existen en la actualidad. La gran virtud que aporta esta metodología es su carácter de abierta (no propietaria), que le permite ser de dominio público y , en consecuencia, sobrevivir con enorme vitalidad. Esto facilita su evolución para acoplarse a todas las necesidades actuales y futuras de la ingeniería de software.[1]

Para qué se utiliza el diagrama de objeto?

Los diagramas de objetos permiten representar gráficamente los objetos, las clases y sus relaciones mediante dos tipos de diagramas: los diagramas de clases y los diagramas de casos concretos (instancias). Los diagramas de clases describen las clases que componen el sistema y que permitirán la creación de casos concretos, los diagramas de casos concretos describen la manera en que los objetos del sistema se relacionan y los casos concretos que existen en el sistema de cada clase. En los diagramas que componen este modelo se pueden representar los siguientes elementos del sistema: objetos y clases, atributos, operaciones, y relaciones o asociaciones.

Fig. 1.0 Organización de la metodología OMT

Fases del diseño:

Las fases que conforman a la metodología OMT son:

Análisis. El analista construye un modelo del dominio del problema, mostrando sus propiedades más importantes. El modelo de análisis es una abstracción resumida y precisa de lo que debe de hacer el sistema deseado y no de la forma en que se hará. Los elementos del modelo deben ser conceptos del dominio de aplicación y no conceptos informáticos tales como estructuras de datos. Un buen modelo debe poder ser entendido y criticado por expertos en el dominio del problema que no tengan conocimientos informáticos.


En esta parte se maneja de forma exacta la construcción de los modelos objetos. 
Pasos: 

IDENTIFICACIÓN DEL MODELO OBJETO: 
  • Identificar los Objetos y Clases. 
  • Identificar la asociación entre Objetos. 
  • Identificar los atributos. 
  • Agrupar las clases y módulos. 
  • Preparar el diccionario de datos.  
IDENTIFICACIÓN DEL MODELO DINÁMICO:

  • Definir para cada objeto qué eventos tendrá. 
  • Construir los diagramas de estado para el comportamiento de los objetos.
IDENTIFICACIÓN DEL MODELO FUNCIONAL:
  •  Manejar la elaboración de diagramas de flujo de datos para identificar la independencia que existe entre operaciones. 
  • Distinguir los valores de entrada y salida.






Diseño del sistema. El diseñador del sistema toma decisiones de alto nivel sobre la arquitectura del mismo. Durante esta fase el sistema se organiza en subsistemas basándose tanto en la estructura del análisis como en la arquitectura propuesta. Se selecciona una estrategia para afrontar el problema.




Diseño de objetos. El diseñador de objetos construye un modelo de diseño basándose en el modelo de análisis, pero incorporando detalles de implementación. El diseño de objetos se centra en las estructuras de datos y algoritmos que son necesarios para implementar cada clase. OMT describe la forma en que el diseño puede ser implementado en distintos lenguajes (orientados y no orientados a objetos, bases de datos, etc.).




Implementación. Las clases de objetos y relaciones desarrolladas durante el análisis de objetos se traducen finalmente a una implementación concreta. Durante la fase de implementación es importante tener en cuenta los principios de la ingeniería del software de forma que la correspondencia con el diseño sea directa y el sistema implementado sea flexible y extensible. No tiene sentido que utilicemos AOO y DOO de forma que potenciemos la reutilización de código y la correspondencia entre el dominio del problema y el sistema informático, si luego perdemos todas estas ventajas con una implementación de mala calidad.




Diagrama de objetos vs. de clase:




Un video que explica vagamente las diferencias principales sobre un diagrama de clases y otro de objetos.






Ventajas

  • Proporciona una serie de pasos perfectamente definidos al desarrollador.
  • Tratamiento especial de la herencia.
  • Facilita el mantenimiento dada la gran cantidad de información que se genera en el análisis.
  • Es fuerte en el análisis

Metodología OMT 2:

-OMT2 declara que los casos de uso están limitados a la etapa de análisis de OMT. Esto requiere añadir 2 nuevos modelos a la etapa de análisis:
  • Modelo de dominio. Este modelo es creado explorando el dominio general y adquiriendo conocimiento de las tareas que serán efectuadas. 
  • Modelo de aplicación. Este modelo es construido sobre el modelo de dominio examinando los casos de uso del dominio.
-—Introduce cambios en el modelo de objetos para hacerlo compatible con UML.


Conclución:


Resulta fundamental entender las diferencias entre un diagrama de clases y uno de objetos motivo por el cual puse el video informativo anterior, OMT según lo leido es una metodología madura y eficiente, lo que resulta útil a la hora de definir con precisión la estructura del sistema lo cual lo vuelve una herramienta ideal para el diseño en la ingeniería de software. Se debe tener eso si una referencia adecuada para no caer en un espaguetis de clases.







Fuentes:


[1] Victor E Chavez and Juan C Olivares, "Metodología OMT," Monografía 2013.
[2] geocities. [Online]. http://www.geocities.ws/alpizarcbh/archivos/tapsu4.pdf
[3] http://es.slideshare.net/MCruz29/analisis-y-diseo-de-sistemas-2-momt
[4] https://adnerugma.wikispaces.com/file/view/OMT4.pdf

lunes, 11 de mayo de 2015

Github, plataforma de desarrollo colaborativo utilizando git.


Qué es un software de control de versiones? 


Un software de control de versiones es utilizado para gestionar las modificaciones de un software de en un entorno compartido, la mayoría de éstos softwares son utilizados tanto para gestionar
el código como la documentación, esquemas, diagramas, hasta dibujos, entre otros recursos, lo que lo hace útil para no solo un entorno de desarrollo, si no también de diseño. Estos softwares están pensado en el desarrollo en un entorno compartido, donde trabajan desde unos cuantos a decenas de personas sobre un mismo proyecto, como por ejemplo un par de programadores trabajando sobre un mismo repositorio (figura 1.0).

Figura 1.0: Trabajando en un mismo repositorio.

Por qué github?


Github es uno de los lideres de plataforma de desarrollo colaborativo en la actualidad, utiliza el control de versiones git que opera sobre una plataforma online donde los usuarios de ésta comunidad suben sus proyectos, repositorios y códigos. Además de mostrarte cuales son los lenguajes actuales, te permite trabajar sobre repositorios existentes subidos por usuario. Git es en la actualidad el software de control de versiones mas utilizados por los programadores, a pesar de que muchos desarrolladores optan por mercurial, cvs, svn, etc, la gran mayoría elige github por la inmensa comunidad que tiene por detrás y el gran numero de repositorio disponible gracias a ésta comunidad.


Ejemplo de código c++ modificado en github.


Leyenda: en un tono de magenta se ven las lineas de código de versión anterior, y en verde las modificadas.

Para comenzar con github


Git immersion es una página dónde se puede descargar git, es muy útil para empezar a entender el software. Sitio: http://gitimmersion.com

Github tiene también su tutorías para principiantes, así cómo hay numerosos videos que ayudan a entender a la plataforma y/o al scv.

Aquí un video interesante con una breve introducción a los sistemas de control de versiones.






Blog bastante interesante y amplio para comenzar con github:
http://conociendogithub.readthedocs.org/en/latest/data/dinamica-de-uso/

Git para científicos de la computación



Demostraciones de cómo se puede utilizar git para diferentes aspectos de la ciencia de la computación. Sitio:http://eagain.net/articles/git-for-computer-scientists/