Presentacion de uml (2)

Post on 17-Aug-2015

37 views 2 download

Transcript of Presentacion de uml (2)

Lenguaje de Modelado UnificadoLic. Carlos Villarroel Murga

Arquitectura de softwareEs un instrumento cuya función principal es la de intervenir en favor del hombre

James M Fitch.

Necesitamos soluciones para problemas reales, no inventar problemas para afrontar con nuevas soluciones

Arquitectura de softwareViéndolo de esa forma, en realidad el rol de un arquitecto de edificaciones y un arquitecto de software parecen enfrentar los mismos retos

Arquitectura de softwareNo es lo mismo construir esto

Arquitectura de software

Que esto!!!

Arquitectura de software

O esto ?

Arquitectura de software

Que esto!!!

Cada escenario plantea retos, condiciones y necesidades diferentes!

Arquitectura de software

Que herramientas, personas presupuesto, conocimiento y tiempo necesitamos para cada escenario?

Arquitectura de Software

Todas las consideraciones que se tienen que tomar en cuenta para definir la arquitectura de edificaciones , deberían ser tomadas en cuenta también al definir una Arquitectura de software

Mansión Winchester

160 Habitaciones 3 Ascensores 47 Chimeneas Sistema de

Alcantarillado y calefacción

Todo Adelantado para su época 1922

La arquitectura de esta mansión sorprende y escapa a los limites de la razón

Mansión Winchester

Se pueden encontrar puertas que dan a paredes o que están en medio de las ventanas, etc.

Mansión Winchester

Qué tiene que ver esto con la arquitectura de software

Esta situación es mas común de lo que debería en el desarrollo de software Cuando un desarrollador es asignado a la tarea de mantener y/o actualizar un sistema legado, cuya arquitectura tiene fallas o no esta documentada.

Elegimos reconstruir partes o crear nuestras propias rutas dentro el código.

“Programar sin una arquitectura en mente es como explorar una gruta solo con una linterna: no sabes dónde estás, dónde has estado ni hacia dónde vas”

Danny thorpe

Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer

antes los planos? El modelo, los planos, ayudan a afrontar

la complejidad del proyecto. ¿Cuál es el lenguaje adecuado para

representar los planos?

Comunicación y Representación del Conocimiento

Para representar el conocimiento hace falta un lenguaje adecuado

El conocimiento bien representado ayuda a hacerse las preguntas oportunas: ¿qué falta aquí? ¿qué pasaría si...? ¿por qué no se puede...?

¿Qué es un Modelo? Abstracción o simplificación de la realidad Modelado y lenguaje

El lenguaje es vehículo del pensamiento: ayuda a pensar con claridad

El modelado es un elemento esencial del proceso de desarrollo de software

El modelado requiere un lenguaje adecuado

Modelar no es hacer diagramas sino pensar con diagramas

Propiedades [Deseables] de un Modelo Comprensible: Expresado de tal forma

que se pueda entender fácilmente. Preciso: Representa fielmente el

sistema modelado. Predictivo: Se puede utilizar para

obtener conclusiones correctas sobre el sistema.

Barato: Más económico que construir y estudiar el propio sistema.

UML(Unified Modeling Language)

Historia UML

UMLEs un lenguaje para:

Visualizar Especificar Construir Documentar

Artefactos de sistemas intensivos de software

Lenguajes de modelado, modelos y diagramas

Un lenguaje de modelado permite expresar los distintos modelos que se producen en el proceso de desarrollo.

Un modelo es una representación abstracta de una especificación, un diseño o un sistema desde un punto de vista particular.

Un diagrama es una representación de (parte de) un modelo de diseño

Un modelo se representa por uno o mas diagramas

Lenguaje de Modelado UML 2.0 Elementos primitivos de modelado (estáticos, dinámicos, agrupamiento, anotaciones)

Relaciones Dependencia Asociación Generalización Realización

Diagramas UML (13 diagramas) Diagramas estáticos Diagramas de comportamiento

RELACIONES

Dependencia

Una relación semántica entre dos elementos, tal que

un cambio en una de ellos (el independiente) puede

afectar al otro (el dependiente).

A B

“B depende de A”

RELACIONES

Asociación

Es una relación estructural que describe un

conjunto de links, siendo un link una conexión

entre objetos

0..1 *

empleador empleado

RELACIONES

Generalización

Una relación de generalización/especialización

en la que el elemento especializado

(descendiente) se construye sobre la

especificación del elemento generalizado

(ancestro)

RELACIONESRealización

Es una relación semántica en la que un clasificador, tal como una interfaz o un caso de uso, especifica un “contrato” que otro clasificador, tal como una clase o una colaboración, garantiza llevar a cabo.

DIAGRAMAS UMLDiagramas estáticos

Diagrama de clases

Diagrama de componentes

Diagrama de distribución

Diagramas UMLDiagramas de comportamiento Diagramas de casos de uso Diagrama de secuencia Diagrama de colaboración Diagrama de estados Diagrama de actividades

Diagrama de Casos de Uso Parte desde el punto de

vista del usuario final. Da una buena pauta para

conocer más a fondo los requisitos que deberá tener el sistema a desarrollar.

Muestra la manera en la que un usuario final va a interactuar con el sistema sin tomar en cuenta los mecanismos que se van a utilizar para crear o hacer funcionar el sistema.

Diagrama de Estados Conforme un sistema

interactúa con los usuarios y otros sistemas, sus objetos pasan por cambios que ajustan las interacciones.

Un cambio en un sistema se da debido a que los objetos que componen dicho sistema modificaron su estado como respuesta a los sucesos y al tiempo.

Un diagrama de estados también se conoce como un "motor de estado."

Diagrama de Secuencias Muestra una interacción ordenada según la

secuencia de eventos vista a la luz de una línea de tiempo.

Muestra los objetos participantes en la interacción y los mensajes que intercambian.

Diagrama de Colaboración Muestra una interacción organizada, basándose en los objetos

que toman parte en la interacción y los enlaces entre los mismos.

A diferencia de los diagramas de secuencia, los diagramas de colaboración muestran las relaciones entre los roles de los objetos.

Diagrama de Actividades Es en cierta medida, un diagrama de flujo reforzado. Muestra los pasos (conocidos como actividades) así

como puntos de decisión y bifurcaciones Muestran una visión simplificada de lo que ocurre

durante una operación o proceso.

Diagrama de Componentes Un componente de

software es una parte física de un sistema, y se encuentra en la computadora, no en la mente del analista.

Ejemplos de componentes son tablas, archivos de datos, ejecutables, bibliotecas de vínculos dinámicos, documentos y cosas por el estilo.

Contiene componentes, interfaces y relaciones.

Diagrama de Distribución Se enfoca

específicamente al hardware de un sistema determinado.

El elemento primordial del hardware es un nodo, que es un nombre genérico para todo tipo de recurso de cómputo.

Cada uno de los nodos puede contener otros componentes, incluyendo software,

Diagrama de Clases Describe la estructura de un sistema mostrando

las clases del sistema, sus atributos, operaciones (o métodos), y las relaciones entre los objetos.

Se utiliza para que la atención se centre en los aspectos lógicos de las clases en lugar de en su implementación.

Herramientas de Modelado

ConclusionesA diferencia de los arquitectos de edificaciones, los arquitectos de software son los encargados de construir la base de la arquitectura de los proyectos

Conclusiones

En desarrollo de software servirá de guía para el desarrollo de un sistema

Planos y maquetas en arquitectura

Conclusiones

A través de los diagramas se representa el diseño y distribución del software, pueden mostrar diferentes vistas de un mismo sistema y de las condiciones que existen en el entorno donde se despliega

ConclusionesEs la herramienta por excelencia que utilizan los arquitectos de software.