• No se han encontrado resultados

ARQUITECTURA DE SOFTWARE SESIÓN 1

N/A
N/A
Protected

Academic year: 2018

Share "ARQUITECTURA DE SOFTWARE SESIÓN 1"

Copied!
40
0
0

Texto completo

(1)

ESCUELA DE CIENCIAS EMPRESARIALES

NÚCLEO DE FORMACIÓN ESPECÍFICA

CARTILLA DE TRABAJO

PRIMERA SESIÓN

ARQUITECTURA DE SOFTWARE

Elaborada por

JORGE RODRIGUEZ INGENIERO DE SISTEMAS

(2)
(3)

CUADRO 1. CONTROL DEL DOCUMENTO CARTILLA DIDÁCTICA

PARTICIPANTE

S

NOMBRE CARGO DEPENDENCIA FECHA

Autor Jorge

Rodríguez

Docente Sistemas 19/07/2013

Revisión Franky

Carrillo

Coordinador Sistemas 20/07/2013

Aprobación Luis

Eduardo

Rodríguez

(4)

CUADRO 2. CONTROL DE ESTADO DE PREPARACIÓN DE LA CARTILLA

EDUCACIÓN A DISTANCIA

VERSIÓN

No.

FECHA DE

FINALIZACIÓN

DE SU

ELABORACIÓN

DESCRIPCIÓN DEL

CAMBIO

SOLICITADO

POR:

01 19/07/2013 Construcción de las

cartillas de Arquitectura

de Software en la

Corporación

Iberoamericana de

Estudios CIES en

función a su cadena de

valor con el fin de

asegurar la calidad de

sus servicios.

(5)

NOMBRE: ___________________________________________________ C.C. : ___________________________________________________ CARRERA:___________________________________________________

JORNADA: MARTES Y MIERCOLES ( ) A.M. _____ P.M. _____ JUEVES Y VIERNES ( ) A.M. _____ P.M. _____ SÁBADOS ( ) A.M. _____ P.M. _____ DOMINGOS ( )

NOMBRE DEL PROFESOR: __________________________________ FECHA : __________________________________ CALIFICACIÓN : __________________________________

___________________________ Firma Docente

Sr. Docente: No firme la cartilla sino está debidamente diligenciada en todos sus campos.

DERECHOS DEL ESTUDIANTE EN EL AULA DE CLASE

Exigir el uso de la cartilla

Exigir firma y sello de la cartilla por parte del docente.

Exigir sus notas al final del módulo.

NINGUNA RECLAMACIÓN SERA ACEPTADA SI SU CARTILLA NO ESTÁ DILIGENCIADA EN TODOS SUS CAMPOS, CON FIRMA Y SELLO DEL

(6)

TABLA DE CONTENIDO

ARQUITECTURA DE SOFTWARE

MODELO

UML

ACTIVIDADES

(7)

ARQUITECTURA DE SOFTWARE

PROPÓSITO GENERAL DEL MÓDULO

Este módulo de Arquitectura de software le prepara para conozca y maneje los conceptos, las aplicaciones y el desarrollo básicos de la teleinformática.

OBJETIVOS

GENERAL

Conocer los elementos, las aplicaciones y el desarrollo de proyectos utilizando como apoyo el lenguaje de modelado, a través de una arquitectura de software bien definida.

ESPECIFICOS

 Realizar la planeación y Diseño de proyectos de software con todos sus

elementos constitutivos.

 Manejar los diferentes conceptos básicos sobre modelado de proyectos

en software.

(8)

GUIAS DE TRABAJO

Las guías de trabajo están orientadas a desarrollar cualquier tipo de representación de proyectos de software.

SESIÓN 1.

 Conceptualización básica de arquitectura de software y modelado.

SESIÓN 2.

 Conceptualización para la representación de casos de uso.

SESIÓN 3.

 Ejemplos y ejercicios de casos de uso.

SESIÓN 4.

(9)

SESION No. 1

OBJETIVO GENERAL

Conceptualización básica de arquitectura de software y modelado.

OBJETIVOS ESPECÍFICOS

 Identificar los conceptos básicos de arquitectura de software.

 Reconocer los conceptos básicos para la solución de proyectos a través

del modelado.

METODOLOGÍA

El modulo de Arquitectura de Software será desarrollado en cuatro (4) sesiones; cada sesión tendrá una duración de cuatro (4) horas; todas ellas dirigidas por el profesor de la asignatura quien emitirá conceptos y despejará inquietudes a los estudiantes; el alumno deberá consultar e investigar permanentemente, desarrollar las practicas y organizar el portafolio virtual.

Con esta metodología el estudiante tendrá la oportunidad de practicar el 100% los conocimientos aprendidos en clase y poder desarrollar con destreza, además de las prácticas y actividades de la guía cualquier aplicación.

(10)

1. ARQUITECTURA DE SOFTWARE

DEFINICIÓN

La arquitectura es el conjunto de decisiones significativas sobre la organización de un sistema de software que define los principios que guían el desarrollo, los componentes principales del sistema, sus responsabilidades y la forma en que se interrelacionan”.

Arquitectura del Software se define en la IEEE Std 1471-2000 como: “La Arquitectura del Software es la organización fundamental de un sistema formada por sus componentes, las relaciones entre ellos y el contexto en el que se implantarán, y los principios que orientan su diseño y evolución”.

Arquitectura de un Software es el proceso por el cual se define una solución para los requisitos técnicos y operacionales del mismo. Este proceso define qué componentes forman el software, cómo se relacionan entre ellos, y cómo mediante su interacción llevan a cabo la funcionalidad especificada, cumpliendo con los criterios previamente establecidos; como seguridad, disponibilidad, eficiencia o usabilidad.

La Arquitectura representa la base de un sistema software y debe ser construida pensando en satisfacer las necesidades actuales y en proporcionar al software las capacidades necesarias para permitir su mantenimiento y evolución de acuerdo a las necesidades de negocio y a las solicitudes de los clientes.

La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema, programa o aplicación y tiene la responsabilidad de:

Definir los módulos principales

Definir las responsabilidades de cada uno de estos módulos

Definir la interacción que existirá entre dichos módulos:

Control y flujo de datos

Secuenciación de la información

Protocolos de interacción y comunicación

(11)

La Arquitectura del Software aporta una visión abstracta de alto nivel, posponiendo el detalle de cada uno de los módulos definidos a pasos posteriores del diseño.

La Arquitectura debe ser una respuesta no una imposición. Necesitamos soluciones para problemas reales, no inventar problemas para poder empatar con las nuevas soluciones.

EL ARQUITECTO

Se debe contar con un conjunto de habilidades y conocimientos para ejercer el rol de arquitecto: Cada escenario plantea retos, condiciones y necesidades diferentes.

El arquitecto software es el encargado de establecer a qué nivel, con qué estrategia y que herramientas son necesarias para realizar una implementación que satisfaga los requisitos funcionales y no funcionales de los sistemas.

El arquitecto debe ser una persona capaz de identificar las necesidades de los negocios, las habilidades de su equipo de trabajo y la viabilidad de las tecnologías disponibles para el desarrollo del software.

Para mayor información consulte:

http://unpocodejava.wordpress.com/2012/05/28/que-es-un-arquitecto-software/

La arquitectura de software es importante como disciplina debido a que los sistemas de software crecen de forma tal que resulta muy complicado que sean diseñados, especificados y entendidos por un solo individuo. Uno de los aspectos que motivan el estudio en este campo es el factor humano, en términos de aspectos como inspecciones de diseño, comunicación a alto nivel entre los miembros del equipo de desarrollo, reutilización de componentes y comparación a alto nivel de diseños alternativos (Kazman, 1996).

El proceso de recolección, mantenimiento y validación de la información arquitectónica es tedioso y altamente propenso a errores. Estos son precisamente los candidatos a ser cubiertos por una herramienta (Kazman, 1996). El control de revisión, análisis de dependencias y proceso de pruebas son sólo algunos ejemplos de herramientas que automatizan exitosamente las tareas que se repiten constantemente durante el desarrollo.

(12)

Son esenciales realizar las siguientes interrogantes para cubrir este punto:

¿En qué entorno se desplegará nuestro software? ¿Cómo se pondrá en producción nuestro software? ¿Cómo utilizarán los usuarios nuestro software?

¿Existen requisitos adicionales que el software debe cumplir? (Por ejemplo: seguridad, rendimiento, concurrencia, configuración, disponibilidad, entre otros)

¿Cuáles serían los cambios sobre la arquitectura propuesta, que impactarían al software durante o después de desplegarse?

Para diseñar la arquitectura de un software es de vital importancia tomar en cuenta los intereses de los distintos agentes que participan. Estos, son los usuarios del software, el propio software y los objetivos del negocio.

Cada uno de ellos establece requisitos y restricciones que deben tomarse en cuenta para el diseño de la arquitectura, los que en algún momento podrían entrar en conflicto.

Para los usuarios es importante que el software responda a la interacción de una forma fluida, mientras que para los objetivos del negocio es importante que el software cueste poco. Los usuarios pueden querer que se implemente primero una funcionalidad útil para su trabajo del día a día, mientras que el software puede tener prioridad en que se implemente la funcionalidad que permita definir su estructura.

He aquí, que el trabajo del arquitecto es delinear los escenarios y requisitos de calidad importantes para cada agente así como los puntos clave que debe cumplir y las acciones o circunstancias que no deben ocurrir.

(13)
(14)

QUE NO ES UNA ARQUITECTURA

La arquitectura es sólo un documento

La arquitectura es la estructura

La arquitectura es el diseño

La arquitectura es una ciencia

La arquitectura es un arte

La arquitectura es la infraestructura

<mi tecnología favorita> es arquitectura

Una buena arquitectura es el trabajo de un solo arquitecto

La arquitectura puede ser presentada en un solo diagrama

La arquitectura no se puede medir ni evaluar.

Finalmente, resumamos que la Arquitectura de Software debería poseer las siguientes capacidades:

Mostrar la estructura del software, pero ocultando los detalles.

Concebir y diseñar todos los casos de uso.

Satisfacer en la medida de lo posible los intereses de los agentes.

Ocuparse de los requisitos funcionales y de calidad.

Determinar el tipo de software a desarrollar.

Determinar los estilos arquitecturales que se usarán.

(15)

FLUJOS Y ACTIVIDADES DENTRO DE LA ARQUITECTURA

Dentro de la arquitectura se consideran los siguientes flujos y actividades:

ESTRUCTURAS Y VISTAS ARQUITECTÓNICAS

Las estructuras son el conjunto de elementos y relaciones en si mismo implementados en software y hardware (asignaciones).

Las vistas son las representaciones de las estructuras descriptas en un lenguaje que permita un entendimiento del stakeholder (organización afectada) al cual se dirige.

(16)

ESTRUCTURAS Y ELEMENTOS

La arquitectura se encuentra compuesta de módulos, componentes y conectores, cumpliendo las siguientes funciones:

ESTRUCTURAS Y ALOCACIONES

(17)

Entre las principales vistas de la arquitectura de software se encuentran:

ENTRADAS DE LA ARQUITECTURA DE SOFTWARE

Entre las mínimas entradas que se deben tener en cuenta para la definición de una arquitectura de software se encuentran:

(18)

Los requerimientos de software son las características que debe tener el software instalado en una computadora para poder soportar y/o ejecutar una aplicación o un dispositivo específicos. Contrasta con los requerimientos de hardware.

Los requerimientos de software pueden ser:

Requisitos de sistema operativo.

Requisitos de aplicaciones específicas instaladas.

Requisitos de ciertas aplicaciones no instaladas en el mismo sistema.

Requisitos de determinadas configuraciones en el sistema operativo o en ciertas aplicaciones.

Ejemplo de requerimientos de software:

Sistema operativo: Windows XP (o superior).

Debe estar instalado: Flash Player 9 o superior.

Debe estar instalada la máquina virtual JAVA 1.6 o superior.

Los requerimientos se clasifican en funcionales y no funcionales.

REQUERIMIENTOS FUNCIONALES

Requerimientos funcionales son las capacidades o funcionalidades que son necesitadas por el usuario para completar su trabajo. En otras palabras, lo que el sistema ha de proveer. Estos definen lo que el usuario necesita. Es el que, no el cómo. Los requerimientos son especificados en detalle como:

Procesos de Negocio

(19)

Casos de Uso

Los casos de uso definen una interacción entre un actor y el sistema, para lograr un objetivo de negocio específico en un lugar y momento especifico.

REQUERIMIENTOS NO FUNCIONALES (ATRIBUTOS DE CALIDAD)

Los atributos de calidad, no funcionales, son los aspectos del sistema, que en general, no afectan directamente a la funcionalidad necesitada, sino que definen la calidad y las características que el sistema debe soportar. Pueden ser determinísticos o probabilísticos, generalmente poseen números.

Estos son:

Performance

Availability (Disponibilidad)

Security (Seguridad)

Testability (Testeabilidad)

Modifiability (Modificabilidad)

(20)

RESTRICCIONES DE NEGOCIO Y TECNOLOGÍA

Las restricciones de negocio y de tecnología se refieren a decisiones en firme, tomadas antes del comienzo de la fase de diseño de la Arquitectura A nivel de restricciones de tecnología se tiene la utilización de sistemas legados, integración con sistemas existentes, uso mandatario de tecnologías particulares, protocolos o estándares de obligatorio cumplimiento, etc.

A nivel de las restricciones de negocio se encuentra el público objetivo, costo y beneficios esperados, vida útil esperada del sistema, disponibilidad y conocimientos requeridos por el personal que usará el sistema, estrategias de amortización del sistema a construir, etc.

OTROS EJEMPLOS DE RESTRICCIONES

Restricciones de Negocio

Tiempo al mercado/Limitaciones de Agenda

Limitaciones de Presupuesto

Restricciones Legales

Restricciones de Regulaciones

Aspectos logísticos.

Restricciones de Tecnología

Plataformas Tecnológicas

Sistemas Operacionales

Hardware

Lenguajes de Programación

(21)

La restricción debe ser consignada en el siguiente formato:

MOTIVADORES DE NEGOCIO

Esta sección busca identificar los motivadores de negocio de la organización. Normalmente estos motivadores son encontrados, respondiendo a las preguntas:

Cómo genera utilidad la organización?

De dónde provienen las utilidades de la organización?

Cuáles son los elementos claves del negocio?

En resumen, un motivador de negocio es una descripción corta que define clara y específicamente los resultados deseados de negocio de una organización así como las actividades necesarias para lograrlos. Los motivadores de negocio deben ser: Específicos, Medibles, Agresivos pero viables, Orientados al resultado y limitados en el tiempo. El objetivo es hacer una lista priorizada de motivadores de negocio.

(22)

AYUDA PARA EL USO DEL FORMATO:

El nombre del motivador:

Sigue en general la regla: <verbo> + <elemento a medir> + <área de énfasis>

Ejemplo: Incrementar ventas en las áreas metropolitanas.

La descripción del motivador:

Sigue en general la regla: <Retorno esperado del negocio>+ Mediante+<Actividad planeada de negocio>

Ejemplo: Incrementar ventas en 15 % mediante la apertura de nuevas oficinas.

La medida:

Define en una frase como valorar el impacto en el negocio del motivador. Se organiza por rangos

y se determina para cada rango, la unidad de medida del impacto. Adicionalmente, se definen los valores mínimos y máximos para cada rango de impacto.

Ejemplo:

Medida: Crecimiento de las ventas en áreas metropolitanas medido en millones de pesos.

Ninguna: 0 – 0.9 millones Bajo: 1 millón – 99 millones Moderado: 100 y 499 millones Fuerte: 500 y 899 millones Muy Fuerte: 900 millones o más

La asociación con el negocio define el motivador a que área organizacional pertenece:

Ejemplo:

Definido Por: Gerente de Ventas

Ejecutado Por: Director y Ejecutivos de Ventas

Ubicación en el portafolio: Servicios persona a persona

DIAGRAMA DE ARQUITECTURA

(23)

Toda solución técnica debe tener al menos los siguientes elementos:

Actores o Roles Principales

Los módulos/componentes principales

Los Nodos principales

Repositorios de Datos

Como fluye la información

Las zonas de red.

Ejemplo 1:

(24)

2. MODELO

El modelo es la representación de un objeto, sistema o idea, de forma diferente al de la entidad misma. El propósito de los modelos es ayudarnos a explicar, entender o mejorar un sistema. Un modelo de un objeto puede ser una réplica exacta de éste o una abstracción de las propiedades dominantes del objeto.

(25)

Un modelo se utiliza como ayuda para el pensamiento al organizar y clasificar conceptos confusos e inconsistentes. Al realizar un análisis de sistemas, se crea un modelo del sistema que muestre las entidades, las interrelaciones, etc. La adecuada construcción de un modelo ayuda a organizar, evaluar y examinar la validez de pensamientos.

Al explicar ideas o conceptos complejos, los lenguajes verbales a menudo presentan ambigüedades e imprecisiones. Un modelo es la representación concisa de una situación; por eso representa un medio de comunicación más eficiente y efectivo.

OBJETIVO DEL MODELADO

La empresa de software exitosa es aquélla que produce de una manera consistente software de calidad que satisface las necesidades de sus usuarios y la empresa; para producir software que cumpla su propósito, hay que conocer e involucrar a los usuarios de forma disciplinada con el fin de extraer los requisitos reales del sistema., hay que idear una sólida base arquitectónica que sea flexible al cambio, software rápido, eficiente, hay que tener gente apropiada y el enfoque apropiado, hay que disponer de un proceso de desarrollo sólido que pueda adaptarse a las necesidades cambiantes del problema y la tecnología.

El modelado es una parte central de todas las actividades que conducen a la producción de buen software.

Construimos modelos para comunicar la estructura y el comportamiento del sistema.

Construimos modelos para visualizar y controlar la arquitectura del sistema.

Construimos modelos para comprender mejor el sistema que estamos construyendo.

Construimos modelos para controlar el riesgo.

IMPORTANCIA DE MODELAR

(26)

Un modelo proporciona los planos de un sistema, y estos pueden involucrar planos detallados, así como los generales que ofrecen una visión global del sistema. Un buen modelo incluye aquellos elementos que tienen una gran influencia.

Objetivos del modelado

Ayudan a visualizar cómo es ó queremos que sea un sistema

Permite especificar la estructura o el comportamiento de un sistema

Proporcionan plantillas que nos guían en la construcción de un sistema

Documentan las decisiones que hemos adoptado.

NOCIONES DEL MODELADO

La elección de qué modelos crear tiene una profunda influencia sobre cómo se acomete un problema y cómo se da forma a una solución

Los modelos elegidos en el software, pueden afectar mucho a nuestra visión:

 Si construimos un sistema con la mirada de un desarrollador de bases

de datos, nos centraremos en los modelos entidad-relación.

 Si construimos un sistema con la mirada de un analista estructurado, se

obtendrán modelos centrados en los algoritmos.

 Si construimos un sistema con mirada de un desarrollador orientado a

objetos, se centra en una arquitectura con un mar de clases y patrones de interacciones.

Por lo tanto cada visión del mundo conduce a un tipo de sistema diferente, con diferentes costos y beneficios.

Cualquier modelo puede ser expresado a diferentes niveles de precisión

(27)
(28)

Un analista o un usuario final se centrará en el qué; un desarrollador se centrará en el cómo. Tanto uno como otros querrán visualizar un sistema a diferentes niveles de detalle en momentos diferentes.

Los mejores modelos están ligados a la realidad.

En el software, el talón de Aquiles de las técnicas de análisis estructurado es el hecho de que hay una desconexión básica entre los modelos de análisis y el modelo de diseño de sistema. No poder salvar este abismo hace que el sistema concebido y el sistema construido diverjan con el paso del tiempo.

En los sistemas orientados a objetos, es posible conectar todas las vistas casi independientes de un sistema en un todo semántico.

Solo un modelo no es suficiente. Cualquier sistema no trivial se aborda mejor a través de un pequeño conjunto de modelos casi independientes.

Dependiendo de la naturaleza del sistema pueden ser más importantes que otros.

MODELADO ORIENTADO A OBJETOS

Hay varias formas de enfocar un modelo en el software. Las dos formas más comunes son la perspectiva orientada a objetos y la perspectiva algorítmica, esta última tiene una visión conduce a los desarrolladores a centrarse en cuestiones de control y de descomposición de algoritmos grandes en otros más pequeños y es algo complejo, mientras la visión orientada o objetos el principal bloque de construcción de todos los sistemas software es objeto o clase, es decir un objeto es una cosa, generalmente extraída del vocabulario del espacio del problema o del espacio de la solución; una clase es una descripción de un conjunto de objetos similares.

(29)

2.1 UML

UML son las siglas del Lenguaje Unificado de Modelado (Unified Modeling Language, UML), el cual es un lenguaje estándar para escribir planos de software.

Este lenguaje de modelado puede utilizarse para visualizar, especificar, construir y documentar los artefactos de un sistema que involucra una gran cantidad de software.

Alcance general de UML

UML es un lenguaje para:

 Visualizar

 Especificar

 Construir

 Documentar

UML es un lenguaje. Un lenguaje de modelado es un lenguaje cuyo vocabulario y reglas se centran en la representación conceptual y física de un sistema, por lo tanto es un lenguaje estándar para los planos del software.

UML es un lenguaje para visualizar. Un programador cuando esta modelando tiene que pensar en:

Primero, la comunicación de esos modelos conceptuales a otros está sujeta a errores a menos que cualquier persona implicada hable del mismo lenguaje.

Segundo, que el software no puede entender a menos que se construyan modelos que trasciendan el lenguaje de programación textual.

Tercero, si el desarrollador que escribió el código no dejó

documentación sobre los modelos, esa información se perderá y será parcialmente reproducible a partir de la implementación.

UML no es un simple montón de símbolos gráficos, en cada símbolo hay una semántica definida.

(30)

UML es un lenguaje para construir. En UML, sus modelos pueden conectarse en forma directa a gran variedad de lenguajes de programación, esta correspondencia permite ingeniería directa: la generación de código a partir de un modelo UML en un lenguaje de programación, también se puede reconstruir a partir de una implementación.

UML es un lenguaje para documentar. Una organización de software que trabaje bien produce:

 Requisitos

 Arquitectura

 Diseño

 Código fuente

 Planificación de proyectos

 Pruebas

 Prototipos

 Versiones

UML cubre la documentación de la arquitectura y proporciona requisitos y pruebas y las actividades de planificación de proyectos.

UTILIZACIÓN DE UML

 UML se puede implementar en:

 Sistemas de información de empresas

 Bancos y servicios financieros

 Telecomunicaciones

 Transporte

 Defensa / industrias aeroespacial

 Comercio

 Electrónica médica

 Ámbito científico

 Servicios distribuidos basados en la Web.

UML UN MODELO PARA CONCEPTOS

Para entender UML, se necesita adquirir un modelo conceptual del lenguaje, y esto se requiere aprender tres elementos principales:

 Los bloques básicos de construcción de UML,

 Las reglas que dictan cómo se pueden combinar estos bloques básicos

(31)

BLOQUES DE CONSTRUCCIÓN DE UML

UML tiene tres clases de bloques de construcción:

 Elementos

 Relaciones

 Diagramas

Los elementos son abstracciones que son cuidados de primera clase en un modelo, las relaciones ligan estos elementos entre sí; y los diagramas agrupan colecciones interesantes de elementos

ELEMENTOS ESTRUCTURALES

Son los nombres de los modelos, son parte estática de un modelo y representan cosas que son conceptuales, hay 7:

Primero.- Es una clase es una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica; implementa una o más interfaces

Ventana Origen Tamaño Abrir() Cerrar() Mover() Dibujar()

Segundo Una interfaz es una colección de operaciones que especifican un servicio de una clase o componente, esta describe el comportamiento visible externamente de ese elemento, puede representar el comportamiento completo de una clase o componente

Una interfaz define un conjunto de especificaciones de operaciones, pero nunca un conjunto de implementaciones de operaciones.

Tercero, Una colaboración define una interacción y es una sociedad de roles y otros elementos que colaboran para proporcionar un comportamiento cooperativo mayor que la suma de los comportamiento de sus elementos, tienen dimensión tanto estructural como de comportamiento, estas representan la implementación de patrones que forman un sistema

Una clase puede participar en varias colaboraciones,

Cadena de responsabilidad

(32)

secuencias de acciones que produce un resultado observable de interés para un actor en particular, es estructurar los aspectos de comportamiento de un modelo.

Es realizado por una colaboración

Realizar Pedido

Quinto Clase activa, es una clase cuyos objetos tienen uno o más procesos o hilos de ejecución y por lo tanto pueden dar origen a actividades de control, presentan elementos cuyo comportamiento es concurrente con otros.

GestorEventos

Suspender() VaciarCola()

Sexto Un componente es una parte física y reemplazable de un sistema que conforma con un conjunto de interfaces y proporciona la implementación de dicho conjunto. Representa típicamente el empaquetamiento físico de diferentes elementos lógicos, como clases, interfaces y colaboraciones.

Séptimo Es un Nodo, un elemento físico que existe en tiempo de ejecución y representa un recurso computacional que por lo general dispone de algo de memoria y con frecuencia, capa con capacidad de procesamiento.

servidor

Estos elementos son los estructurales básicos que se puede incluir en un modelo UML.

También existen variaciones de estos siete elementos, tales como actores, señales, utilidades, procesos e hilos, y aplicaciones, documentos, archivos, bibliotecas, páginas y tablas.

ELEMENTOS DE COMPORTAMIENTO

Son las partes dinámicas de los modelos, son los verbos y representan comportamiento en el tiempo y el espacio. Hay dos tipos principales de elementos de comportamiento:

Primero. Una interacción, es un comportamiento que comprende un conjunto de mensajes intercambiados entre un conjunto de objetos, dentro de un contexto particular, para alcanzar un propósito específico. Una interacción, involucra muchos otros elementos, incluyendo mensajes, secuencias de acción, y enlaces.

(33)

Segundo. Una máquina de estados es un comportamiento que especifica las secuencias de estados por las que pasa un objeto o una interacción durante su vida en respuesta a eventos, junto con sus reacciones a estos eventos.

El comportamiento de una clase individual o una colaboración de clases pueden especificarse con una máquina de estado, e involucra a otros elementos, incluyendo estados, transiciones, eventos, y actividades

Estos dos elementos básicos están conectados normalmente a diversos elementos estructurales, principalmente clases, colaboraciones y objetos.

Elementos de agrupación. Son las partes organizativas de los modelos, son cajas en las que puede descomponerse un modelo. Un paquete es un mecanismo de propósito general para organizar elementos en los grupos. Los elementos estructurales, los elementos de comportamiento e incluso otros elementos de agrupación pueden incluirse en un paquete., también es puramente conceptual.

Reglas del negocio

Elementos de anotación. Son las partes explicativas de los modelos., pueden aplicar para describir, clarificar y hacer observaciones sobre cualquier elemento de un modelo, la Nota es simplemente un símbolo para mostrar las restricciones y comentarios junto a un elemento o una colección de elementos.

Nota

(34)

LAS RELACIONES EN UML

Existen las siguientes relaciones:

Dependencia. Es una relación semántica entre dos elementos, en la cual un cambio a un elemento independiente puede afectar a la semántica del otro elemento dependiente

Depéndencias

Asociación. Es una relación estructural que describe un conjunto de enlaces, los cuales son conexiones entre objetos. La agregación es un tipo especial de asociación, en que representa una relación estructural entre un todo y sus partes

0....1 *

patrón empleado

Generalización. Es una relación de especialización / generalización en la cual los objetos del elemento especializado (hijo) pueden sustituir a los objetos del elemento general (padre). De esta forma, el hijo comparte la estructura y el comportamiento del padre.

Generalizaciones

Realización. Es una relación semántica entre clasificadores, en donde un clasificador especifica un contrato que otro clasificador garantiza que cumplirá. Se pueden encontrar relaciones de realización en dos sitios: entre interfaces y las clases y componentes que las realizan, entre los casos de uso y las colaboraciones que los realizan.

Realización

(35)

DIAGRAMAS DE UML

Un diagrama es la representación gráfica de un conjunto de elementos, visualizado la mayoría de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones). Son 9 los diagramas que incluye UML

Diagrama de clases. Muestra un conjunto de clases, interfaces y colaboraciones, así como sus relaciones, cubren la vista de diseño estático de un sistema, incluyen clases activas cubren la vista de procesos estáticos de un sistema.

Diagrama de objetos. Muestra un conjunto de objetos y sus relaciones representan instantáneas de instancias de los elementos encontrados en los diagramas de clase. Cubren la vista de diseño y proceso estático de un sistema.

Diagrama de casos de uso. Muestra un conjunto de casos de uso y actores y sus relaciones Cubren la vista de casos de uso estática de un sistema.

Los siguientes diagramas son especialmente importantes en el modelado y organización del comportamiento de un sistema.

Diagrama de secuencia. Es un diagrama de interacciones que resalta la ordenación temporal de los mensajes. Es importante mencionar que los diagramas de interacción entre un conjunto de objetos y sus relaciones, incluyendo los mensajes que pueden ser enviados entre ellos.

Diagrama de colaboración. Es un diagrama de interacción que resalta la organización estructural de los objetos que envían y reciben mensajes.

Diagrama de estados (statechart). Muestra una máquina de estados, que consta de estados transiciones, eventos y actividades. Cubren la vista dinámica de un sistema y el comportamiento de una interfaz, una clase o una colaboración y resaltan el comportamiento dirigido por eventos de un objeto.

Diagrama de actividades. Muestra el flujo de actividades dentro de un sistema. Cubren la vista dinámica, son importantes al modelar el funcionamiento del un sistema y resaltan el flujo de control de objetos.

Diagrama de componentes. Muestra la organización y las dependencias entre un conjunto de componentes, cubren la vista de implementación estática, se relacionan con diagramas de clase en que un componente se corresponde con una o más clases, interfaces o colaboraciones.

(36)
(37)

LOS MECANISMOS DE UML

Los siguientes mecanismos que se aplican de forma consistente a través de todo el lenguaje:

 Especificaciones

 Adornos

 Divisiones comunes

 Mecanismos de Extensibilidad.

Especificaciones. Las especificaciones, proporcionan una explicación textual de la semántica de ese bloque de construcción; se utiliza para visualizar un sistema, y también para detallar el sistema.

Las especificaciones en UML proporcionan una base semántica que incluye a todos los elementos de todos los modelos de un sistema, y cada elemento está relacionado con otros de manera consistente.

Los diagramas de UML son así simples proyecciones visuales de esa

base y cada diagrama revela un aspecto específico interesante del sistema.

Adornos. La notación de la clase también revela los aspectos más importantes de una clase a saber: su nombre, atributos y operaciones.

La especificación de una clase puede incluir otros detalles, tales como si es abstracta o la visibilidad de sus atributos y operaciones. Muchos de estos detalles se pueden incluir como adornos gráficos o textuales en la notación rectangular básica de la clase.

Transacción

+ Ejecutar()

+ Rollback()

# prioridad()

(38)

Arquitectura

Ciente

Nombre Dirección teléfono

Elisa

La segunda división la tenemos entre interfaz e implementación. Una interfaz declara un contrato, y una implementación representa una realización concreta de ese contrato, responsable de hacer efectiva la forma fidedigna la semántica completa de la interfaz

Asistenteortog.dll

Mecanismos de Extensibilidad son:

 Estereotipos

 Valores etiquetados

 Restricciones

Estereotipo. Extiende el vocabulario de UML, permitiendo crear nuevos tipos de bloques de construcción que deriven de los existentes pero sean específicos a un problema.

(39)

Restricción. extiende la semántica de un bloque de construcción de UML, permitiendo añadir nuevas reglas o modificar las existentes.

ACTIVIDADES

ACTIVIDAD 1.

Consultar en qué consisten cada una de las vistas principales de la arquitectura de software, documentar en el blog del grupo y socializarlas a través de comentarios entre los blogs todo el curso.

ACTIVIDAD 2.

Plantear un sistema e identificar los requerimientos funcionales y no funcionales, exponer en el blog.

ACTIVIDAD 3.

Para el anterior sistema diligenciar un formato de restricción de negocio y uno de tecnología, así como el formato de motivadores de negocio. Exponer las imágenes en el blog.

ACTIVIDAD 4.

(40)

BIBLIOGRAFÍA COMENTADA

Título Editorial Comentarios Autor/es

A UML Pattern Language

Macmillan Technical Publishing

Indianapolis 2000

Desarrolla el concepto de patrón aplicable en todos los artefactos de

UML

Paul Evitts

Applying UML and Patterns

An Introduction to Object-Oriented Analysis and Design

second edition

-Prentice Hall

New Jersey

2001

Una de las mejores introducciones a UML y a la utilización de patrones (la segunda edición largamente esperada

aún mejor)

<<imprescindible>>

<<Novedad>>

Craig Larman

Applying Use Case Driven Object Modeling with UML

Addison Wesley

Boston Massachusetts

2001

Desarrollo de un caso práctico sobre comercio electrónico para mostrar los

distintos elementos que interactúan dentro de un Caso de Uso

<<Novedad>> Dough Rosenberg & Kendall Scott El Lenguaje Unificado de Modelado Addison Wesley Madrid 1999

Libro introductorio sobre la notación

UML escrito por sus creadores Booch Grady

James Rumbaugh Ivar Jacobson El Lenguaje Unificado de Modelado. Manual de

Referencia

Addison Wesley

Madrid

2000

La referencia definitiva sobre la notación UML escrita por sus

creadores James Rumbaugh Ivar Jacobson Grady Booch

El Proceso Unificado de Desarrollo de

Software

Addison Wesley

Madrid

2000

La guía completa del Proceso Unificado escrita por sus creadores

Figure

CUADRO 1. CONTROL DEL DOCUMENTO  CARTILLA DIDÁCTICA
CUADRO 2. CONTROL DE ESTADO DE PREPARACIÓN DE LA CARTILLA EDUCACIÓN A DISTANCIA VERSIÓN No

Referencias

Documento similar

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)

D) El equipamiento constitucional para la recepción de las Comisiones Reguladoras: a) La estructura de la administración nacional, b) La su- prema autoridad administrativa