Tema # 1 CONSIDERACIONES GENERALESvirtual.usalesiana.edu.bo/web/contenido/dossier/22012/1769.pdf ·...

50
Analisis y Diseño II Ing. Nela Benavides Ignacio 1 Tema # 1 CONSIDERACIONES GENERALES 1.- Concepto de Sistema.- Es un conjunto de elementos, componentes, objetos relacionados entre sí que persiguen un objetivo común. 2.- Clasificacion de sistemas.- Básicamente se clasifican en sistemas físicos y lógicos. Un sistema físico es un conjunto de elementos materiales, ocupan un espacio físico, ejemplos: cuerpo humano, sistema computacional, edificio. Un sistema lógico es abstracto, es conceptual, está formado por ideas, ejemplo: sistema social, sistema religioso, etc. 3.- Categorización de sistemas.- Según Arbones, Johasen y Jerez los sistemas tienen la siguiente clasificación: Estelares galaxias, sistema solar, luna Físicos Geológicos: ríos, cordilleras, montañas Moleculares: Orgánicos, átomos Naturales Animales Vivientes Plantas Humanos Sistemas sociales: leyes, doctrinas, costumbres Hechos por el hombre Sistemas de transporte: aereo, terrestre, Sistemas de comunicación: vía satelite, antenas En resumen podemos clasificar a los sistemas de la siguiente manera: a) Sistemas Naturales y hechos por el hombre b) Sistemas físicos y conceptuales c) Sistemas estáticos y dinámicos d) Sistemas abiertos y cerrados Un sistema estático tiene una estructura sin actividad. Ejemplo: puente, almacen Un sistema dinámico cambia su estructura con la actividad. Un sistema abierto es cuando sus actividades son exógenas, cualquier empresa Un sistema cerrado es cuando no intercambia información con el medio ambiente. Empresa quebrada, dos reacciones químicas, un automóvil 4.- Componentes básicos de un sistema.- Un sistema debe tener tres elementos: entrada, proceso y salida. La entrada se define como el componente impulsor del sistema, es cualquier cosa que ingresa al sistema El proceso es la actividad que transforma el insumo o entrada en producto o salida. La salida es el resultado del proceso, es todo lo que sale o egresa del sistema.

Transcript of Tema # 1 CONSIDERACIONES GENERALESvirtual.usalesiana.edu.bo/web/contenido/dossier/22012/1769.pdf ·...

Analisis y Diseño II Ing. Nela Benavides Ignacio

1

Tema # 1 CONSIDERACIONES GENERALES

1.- Concepto de Sistema.- Es un conjunto de elementos, componentes, objetos relacionados entre sí

que persiguen un objetivo común.

2.- Clasificacion de sistemas.- Básicamente se clasifican en sistemas físicos y lógicos. Un sistema

físico es un conjunto de elementos materiales, ocupan un espacio físico, ejemplos: cuerpo humano,

sistema computacional, edificio. Un sistema lógico es abstracto, es conceptual, está formado por ideas,

ejemplo: sistema social, sistema religioso, etc.

3.- Categorización de sistemas.- Según Arbones, Johasen y Jerez los sistemas tienen la siguiente

clasificación:

Estelares galaxias, sistema solar, luna

Físicos Geológicos: ríos, cordilleras, montañas

Moleculares: Orgánicos, átomos

Naturales

Animales

Vivientes Plantas

Humanos

Sistemas sociales: leyes, doctrinas, costumbres

Hechos por el hombre Sistemas de transporte: aereo, terrestre,

Sistemas de comunicación: vía satelite, antenas

En resumen podemos clasificar a los sistemas de la siguiente manera:

a) Sistemas Naturales y hechos por el hombre

b) Sistemas físicos y conceptuales

c) Sistemas estáticos y dinámicos

d) Sistemas abiertos y cerrados

Un sistema estático tiene una estructura sin actividad. Ejemplo: puente, almacen

Un sistema dinámico cambia su estructura con la actividad.

Un sistema abierto es cuando sus actividades son exógenas, cualquier empresa

Un sistema cerrado es cuando no intercambia información con el medio ambiente. Empresa quebrada,

dos reacciones químicas, un automóvil

4.- Componentes básicos de un sistema.- Un sistema debe tener tres elementos: entrada, proceso y

salida.

La entrada se define como el componente impulsor del sistema, es cualquier cosa que ingresa al

sistema

El proceso es la actividad que transforma el insumo o entrada en producto o salida.

La salida es el resultado del proceso, es todo lo que sale o egresa del sistema.

Analisis y Diseño II Ing. Nela Benavides Ignacio

2

Otro componente es la retroalimentación (feed back), que se define como un control que actua como

filtraje dentro del sistema

5.- Otros elementos.- Dentro la teoría de sistemas, interesa también conocer otros elementos como:

a) Entidad.- Sirve para denotar a un objeto de interés de estudio en un sistema, tambien se puede

definir como un subsistema del mismo.

b) Atributo.- Es una cualidad o una propiedad de una entidad

c) Actividad del sistema.- Es todo proceso que provoca cambios en los sistemas (hemeostasis)

d) Medio Ambiente.- Es el medio donde va a interactuar el sistema, a veces cuando ciertas

actividades del sistema producen cambios que no reaccionan en el mismo, se dice que los

cambios que ocurren fuera del sistema ocurren en el medio ambiente del sistema.

e) Estado del sistema.- es la representación de las entidades, atributos y actividades en un instante

específico de tiempo.

6.- Definición de un Sistema de Información.-

Es un conjunto de elementos que interactuan entre sí con el fin de apoyar las actividades de una

empresa.

Es un conjunto de datos, procedimientos y personas

Es una cadena que se filtra en toda la empresa, organización o institución, sirve a todos los

demás elementos.

Es un componente del sistema empresa

SISTEMA EMPRESA

7.- Componentes de un sistema de Información.-

1.- Los datos e información. Son todas las entradas que necesita el S.I. para generar resultados

(información)

ASESORIA

LEGAL GERENCIA

CONTABILIDAD VENTAS ALMACEN

INVESTIGACION ADMINISTRACION

SISTEMAS

PRODUCCION

Analisis y Diseño II Ing. Nela Benavides Ignacio

3

2.- El equipo computacional. Es el HW y SW necesario para que el sistema de información pueda

operar

3.- El recurso humano.Interactua con el sistema el cual está formado por las personas que utilizan y

manejan el sistema.

4.- Los programas que son procesados y producen diferentes resultados según la necesidad.

8.- Objetivos de un S.I.-

Automatizar los procesos operativos de una empresa

Proporcionar información que sirva de apoyo al proceso de toma de decisiones en los tres

niveles

Lograr ventajas competitivas a través de su implantación y uso (estratégico)

9.- Actividades de un Sistema de Información.- Principalmente ejecuta tres actividaes:

Recibe datos de fuentes internas o externas

Actua o procesa datos para producir la información

Produce la información para el usuario

10.- Diseño conceptual de un S.I..-

11.- Análisis de Sistemas.-

Palabra griega que significa: descomposición, unión y composición)

DATOS E

INFORMACION

EQUIPO

COMPUTACIONAL

RECURSO

HUMANO

PROGRAMAS

PROCESO

ENTRADA

DE DATOS

INTERFACE

AUTOMATICAD

E SALIDA

INTERFACE

AUTOMATICA

DE ENTRADA

REPORTE E

INFORME

ALMACENAMIENTO

Analisis y Diseño II Ing. Nela Benavides Ignacio

4

El análisis lógico consiste en la descomposición mental del objeto investigado en sus partes o

componentes y en un método para obtener nuevos conocimientos.

Proceso de clarificación, interpretación de hechos, diagnóstico de problemas, recolección de datos y

empleo de la información para recomendar mejoras al sistema.

Preguntas: Como funciona?

Que hace?

Hay problemas?

Cuales son los procesos manuales y cuales no?

Se puede automatizar

Entender el proceso

Qué pasos o que actividades se realizan?

Podemos concluir diciendo que el análisis es el estudio de un sistema y está asociado a la pregunta

QUE es lo que el sistema debe hacer.

12.- Diseño de Sistemas.-

Es el proceso de planificar, reemplazar o complementar un sistema organizacional existente, pero antes

de llevar a cabo esta planeación es necesario comprender en su totalidad, el viejo sistema y determinar

la mejor forma en que se pueden.

Finalmente el Diseño establece COMO alcanzar el objetivo. Otros autores dividen el diseño de

sistemas en dos fases: el diseño lógico y el diseño físico (implementación).

Dentro de la etapa del diseño de sistemas se consideran las siguientes actividades:

Diseño de salidas (informes, reportes, resúmenes)

Diseño de entradas y control(formularios, formas)

Diseño de interfaces

Diseño de B.D. y archivos

Diseño de Comunicación de datos

13.- Implementación.- Es una actividad que sigue al diseño , se refiere a la generación de códigos de programas realizados en

un determinado lenguaje de programación, para que el sistema se convierta en SW de aplicación.

Analisis y Diseño II Ing. Nela Benavides Ignacio

5

TEMA Nº2

DESARROLLO DE SISTEMAS O.O.

1.- Metodos O.O.

La bibliografía relacionada al paradigma O.O. es variada y aun difusa por cuanto hasta hace cinco años

no existianstandares reconocidos, solo se disponia de algunos principios fundamentales postulados por

diferentes autores.:

Metodo Pressman OMT (Object Modeling Tecnique)

Metodo Coad/Yourdan UML (Unificated Modeling Languaje)

Metodo Martín

Notación Booch

Notación Runbaugh

2.- Sistemas Complejos

En la vida empresarial, cuando queremos desarrollar sistemas, muchas veces se nos presenta problemas

dificiles de resolver Sistemas complejos: Mecanismos ecológicos de la tierra, el sistema nervioso, el

sistema educativo en Bolivia.

Un sistema complejo es cuando el sistema tiene varias variables y cantidades de control. Las

herramientas y metodos tradicionales no son suficientes, ni capaces para administrar la complejidad de

estos nuevos problemas y las situaciones reales exigen ser de alguna manera resueltas. Por otro lado el

mantenimiento de SW existente constituye ser tambien otro problema dificil de resolver, muchas

soluciones propuestas generar aun otros problemas y la situacion no mejora, ni se mantiene, sino que

empeora.

3.- Surgimiento de una técnica

Nuestro mundo real esta rodeado de objetos y cosas para comprender y entender los problemas. Las

personas piensan, analizan y estudian acerca de las cosas a traves de la experiencia la cual determina lo

que aprendemos.

Cuando nosotros pensamos acerca de las cosas como objetos y que ellos estan de alguna forma

relacionados con otros nace el termino O.O.

4.- Un Repaso a los lenguajes O.O.

La P.O.O. nace cubriendo ciertas deficiencias de los lenguajes clasicos, una de las caracteristicas

importantes es la reutilizacion y actualizacion de rutinas, procedimientos modulos de programas.

Asimismo se introduce el termino objeto, encapsulamiento, jerarquia de clases, herencia, polimorfismo.

4.1.- Objeto.- Una buena abstraccion de un ente real que adquiere una cierta autonomia y vida propia

en la computadora, Esta representacion debe tener las mismas caracteristicas del ente real y saber

realizar los mismos conocimientos que el objeto real. Existen objetos fisicos (reales) y logicos

(abstractos).

Un objeto tiene dos aspecto la parte de su comportamiento y la estructura, en el analisis y diseño O.O.

nos interesa el comportamiento del objeto, dicho comportamiento está expresado mediante un conjunto

de estructuras de datos, operaciones y metodos.

Analisis y Diseño II Ing. Nela Benavides Ignacio

6

4.2.- Tipo de objetos (clases). Es una categoria de objeto y el objeto se convierte en una instancia del

tipo de objeto. Ejemplo:

MESAS

Mesa mediana café

Mesa redonda

Mesa pentagonal

El termino clase se utiliza mas que todo en la programación, cada clase define un conjunto de

operaciones permisibles que permiten el acceso y modificación de los datos del objeto.

4.3. Operaciones y métodos. Una operación es una función o transformación que puede ser aplicada a

o por los objetos de una clase, todos los objetos de una misma clase comparten las mismas operaciones.

Los métodos especifican la forma en que se controlan los datos de un objeto, en realidad la

implementación de una operación es un método. Ejemplo:

EMPLEADO COMPAÑÍA

Las operaciones de la clase EMPLEADO son: cobrar sueldo, registrar entrada, trabajar horas extra,

realizar informes, etc.

Las operaciones de la clase COMPAÑÍA son: contratar empleados, firmar convenios, pagar sueldos,

etc.

4.4.- Mensajes.- Para que un objeto haga algo se le enviamos una solicitud, esto hace que se produzca

una operación, la operación hace que se ejecute un método apropiado y de manera opcional produce

una respuesta.

4.5.- Encapsulado.-

Es el resultado o acto de ocultar lso detalles de implantación de un objeto respecto de su usuario, es el

ocultamiento de la información.

4.6.- Herencia.-

Un tipo de objetos puede tener subtipos y cada subtipo podria tener otros subtipos, es decir puede

existir una jerarquia de tipos o clases.. Una subclase hereda la estructura de datos y los metodos, o

algunos metodos de su superclase. Tambien tiene sus metodos e incluso tipos de datos propios.

4.7.- Polimorfismo.-

Se refiere a comportamientos alternos entre subclases. Cuando varias clases heredan atributos y

comportamientos, puede haber casos donde el comportamiento de una subclase deba ser diferente del

de su superclase. Esto significa que un mensaje puede tener diferentes efectos dependiendo de

exactamente que clase de objeto recibe el mensaje.

5.- Analisis y Diseño O.O.-

Analisis : Investigación

Diseño: solución

Analisis y Diseño II Ing. Nela Benavides Ignacio

7

Para crear una aplicación de software hay que describir el problemas y las necesidades o

requerimientos, el Analisis se centra en una investigación del problema, no en la manera de definir una

solución. Por ejemplo si se desea un nuevo sistema para una biblioteca, ¿Cuáles procesos de la

institución se relacionan con su uso?

Para desarrollar una aplicación, también es necesario contar con descripciones detalladas de la solución

lógica y saber como satisface los requerimientos. El diseño pone de relieve una solución lógica, para el

ejemplo de la biblioteca ¿de que manera el sistema capturara y registrara los prestamos de libros?.

Analisis y Diseño II Ing. Nela Benavides Ignacio

8

TEMA Nº3

ANALISIS ORIENTADO A OBJETOS

1.- CONCEPTO.-

Se ocupa de definir las categorias de objetos y la forma en que se asocian. Generalmente nos

preguntamos:

Que tipos de objetos hay?

Cuales son sus relaciones y funciones?

Que subtipos y supertipos son utiles?

Hay algon tipo de objeto compuesto por otros?

Como se organizan los objetos?

2.-IDENTIFICACION DE CLASES ( tipos de objetos)

Varios autores han propuesto varios metodosutiles para la identificacion del objeto y clases. Existen

principalmente dos enfoques:

Enfoque clasico: Propone listas de posibles clases (Brainstorning) tormenta de ideas.

Enfoque probabilistico: Propone el estudio del comportamiento como base para identificar objetos

Existe un metodo informal el cual se denomina la tecnica de las tarjetas CRC (Clases,

responsabilidades y colaboraciones).

3.- DETERMINACION DE REQUERIMIENTOS

La captura de requisitos es el proceso de averiguar normalmente en ciscunstancias difíciles, lo que se

debe construir.

La especificación de requisitos es un documento mas técnico y elaborado de los documentos de

análisis.

Los requerimientos son una descripción de las necesidades o deseos de un producto. La meta primaria

de la fase de requerimientos es identificar y documentar lo que en realidad se necesita, en una forma

que claramente se le comunique al cliente y a los miembros del equipo de desarrollo. El reto consiste

en definirlos de manera inequívoca, de modo que se detecten los riesgos y no se presenten sorpresas al

momento de entregar el producto.

Se recomienda los siguientes artefactos en la fase de requerimientos:

Panorama general

Clientes

Metas

Funciones del sistema

Atributos del sistema

3.1.- Panorama general.-

Analisis y Diseño II Ing. Nela Benavides Ignacio

9

Denominada también presentación general, donde se debe expresar claramente el objeto del proyecto

de sistemas.

3.2.- Clientes

Mencionar el o los clientes o usuarios finales del sistema

3.3.- Metas

Generalmente se una meta se define como algo que se debe alcanzar, son objetivos puntuales que el

sistema lograra en favor de los clientes.

3.4.- Funciones del sistema

Las funciones del sistema son lo que este habrá de hacer, hayque identificarlas y listarlas en grupos

cohesivos y lógicos. Las funciones se clasifican en categorías, las cuales son:

Categoría de la funcion Significado

Evidente Debe realizarse, y el usuario

deberá saber que se ha realizado

Oculta Debe realizarse aunque no es

visible para los usuarios

Superflua Opcionales, su inclusión no

repercute significativamente en

el costo ni otras funciones

Ejemplo: Funciones del sistema en una aplicación de venta de muebles. El objetivo es entender los

detalles del análisis y diseño, no el funcionamiento de una tienda de muebles.

Ref # Funcion Categoria

R1.1 Registra la venta de cada producto

(muebles) en proceso

evidente

R1.2 Calcula el total de la venta actual,

incluye el impuesto, descuentos

Evidente

R1.3 Reduce las cantidades del inventario

cuando se realiza una venta

Oculta

R 1.4 El usuario (cajero) debe introducir

una identificación y contraseña para

utilizar el sistema

Evidente

R 1.5 Codifica y clasifica el producto

(mueble) según corresponda

Oculta

Si es necesario se puede subdividir las funciones y enumerarlas correctamente, tal como se muestra en

el ejemplo.

3.5.- Atributos del sistema

Son cualidades o características del sistema no funcionales. Por ejemplo:

Facilidad de uso

Tolerancia a las fallas

Tiempo de respuesta

Plataforma

Analisis y Diseño II Ing. Nela Benavides Ignacio

10

Calidad

Costo al detalle

Interfaz

4.- Otros artefactos en la fase de requerimientos

Las funciones y los atributos del sistema son los documentos minimos de los

requerimientos, pero también se necesitan otros artefactos importantes para entender el

problema, estos son:

Requerimientos y equipos de enlace: lista de los participantes en la especificación de las

funciones, en la realización de entrevistas, de pruebas, de negociaciones y otras actividades

Suposiciones: Las cosas cuya verdad se supone

Riesgos: las cosas que pueden ocasionar el fracaso o retraso

Dependencias: otras personas, sistemas y productos de los cuales no puede prescindir el

proyecto para su terminación

Casos de Usos: descripciones narrativas de los procesos del dominio

Analisis y Diseño II Ing. Nela Benavides Ignacio

11

TEMA 4

UML (UnifiedModelingLanguage)

ANTECEDENTES.-

Desde que Simula 67 introdujera el concepto de clase y herencia los lenguajes OO han experimentado

una rápida e intensa evolución para acercarse a la realidad que la empresa les reclama. Pero no es hasta

los inicios de la década de los 90 cuando realmente existe un intento serio de normalizar la metodología

OO.

•El Dr. James Rumbaugh en 1991 con Michael Blaha, William Premerlani, Frederick Eddy y William

Lorensen desarrollan "ObjectOrientedModeling and Design" introduciendo OMT

(ObjectModelingTechnique) que él mismo define como "una metodología orientada a objetos para el

desarrollo de software". •El Dr. Ivar Jacobson en 1992 desarrolla el método OOSE (ObjectOrinted

Software Engineer), donde introduce el concepto "use case". •Grady Booch en 1993 crea la

metodología "Booch '93". •J. Rumbaugh y G. Booch en el año 1994 se unen en una empresa común (de

objetivos y de negocio) Rational Software Corporation donde unifican sus dos métodos. •Un año

después y como fruto de dicha unión aparece en octubre del 95 UML 0.8 (UnifiedModelingLanguage).

•A finales de ese mismo año se une al grupo I.

Jacobson.

DR. Ivar Jacobson

Grady Booch

• En junio del 96 los tres padres de UML depositan las especificaciones de UML 0.9 en el

enlace http://www.rational.com/uml de Rational. Este hecho produce una cascada de

adhesiones que en pocos meses, concretamente en enero del 97, va a permitir la creación

de UML 1.0. Por fín se consigue un modelo totalmente unificado

PARTICIPANTES EN UML 1.0

Analisis y Diseño II Ing. Nela Benavides Ignacio

12

Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson)

Digital Equipment

Hewlett-Packard

i-Logix (David Harel)

IBM

ICON Computing (Desmond D’Souza)

Intellicorp and James

Martin & co. (James Odell)

MCI Systemhouse

Microsoft ObjecTime

Platinium Technology

Sterling Software

Taskon

Texas Instruments

Unisys

Microsoft con Active X/COM y Componentes

Oracle con ORDBMS

•En noviembre del 97 UML es aceptado como estándar por OMG (Object Management

Group), después de ser admitidas algunas de sus sugerencias, como el modelado de

negocios. Uno de los requisitos exigidos es que UML no fuese propiedad de nadie. Rational

comercializa una herramienta CASE sin derechos sobre UML.

CONCEPTO DE UML ( UnifiedModelingLanguage)

UML [UML] es un lenguaje para especificar, construir, visualizar y documentar los

artefactos de un sistema de software orientado a objetos (OO). Un artefacto es una

información que es utilizada o producida mediante un proceso de desarrollo de software.

UML se quiere convertir en un lenguaje estándar con el que sea posible modelar todos los

componentes del proceso de desarrollo de aplicaciones. Sin embargo, hay que tener en

cuenta un aspecto importante del modelo: no pretende definir un modelo estándar de

desarrollo, sino únicamente un lenguaje de modelado. Otros métodos de modelaje como

OMT (ObjectModelingTechnique) o Booch sí definen procesos concretos. En UML los

procesos de desarrollo son diferentes según los distintos dominios de trabajo; no puede ser

el mismo el proceso para crear una aplicación en tiempo real, que el proceso de desarrollo

de una aplicación orientada a gestión, por poner un ejemplo.

Las diferencias son muy marcadas y afectan a todas las faces del proceso. El método del

UML recomienda utilizar los procesos que otras metodologías tienen definidos.

Un lenguaje de propósito general para el modelado orientado a objetos

Documento “OMG Unified Modeling Language Specification”

UML combina notaciones provenientes desde:

• Modelado Orientado a Objetos

Analisis y Diseño II Ing. Nela Benavides Ignacio

13

• Modelado de Datos

• Modelado de Componentes

• Modelado de Flujos de Trabajo (Workflows)

OBJETIVOS DELUML

El objetivo es conseguir un modelo unificado, abierto, que siga evolucionando en conjunto

y no por separado tal como estaba ocurriendo hasta ahora, comprensible por el hombre,

utilizable por la máquina y fundamentalmente con la capacidad de unificar las perspectivas

de diferentes sistemas (tanto de software como de negocio).

Como otros objetivos principales de la consecución de un nuevo método que aunara los

mejores aspectos de sus predecesores, sus protagonistas se propusieron lo siguiente:

El método debía ser capaz de modelar no sólo sistemas de software sino otro

tipo de sistemas reales de la empresa, siempre utilizando los conceptos de la

orientación a objetos (OO).

Establecer una notación estándar

Crear un lenguaje para modelado utilizable a la vez por máquinas y por

personas.

Establecer un acoplamiento explícito de los conceptos y los artefactos

ejecutables.

Manejar los problemas típicos de los sistemas complejos de misión crítica.

Lo que se intenta es lograr con esto que los lenguajes que se aplican siguiendo los métodos

más utilizados sigan evolucionando en conjunto y no por separado. Y además, unificar las

perspectivas entre diferentes tipos de sistemas (no sólo software, sino también en el ámbito

de los negocios), al aclarar las fases de desarrollo, los requerimientos de análisis, el diseño,

la implementación y los conceptos internos de la OO.

MODELADO DE OBJETOS

En la especificación del UML podemos comprobar que una de las partes que lo componen

es un metamodelo formal. Un metamodelo es un modelo que define el lenguaje para

expresar otros modelos. Un modelo en OO es una abstracción cerrada semánticamente de

un sistema y un sistema es una colección de unidades conectadas que son organizadas para

realizar un propósito específico. Un sistema puede ser descripto por uno o más modelos,

posiblemente desde distintos puntos de vista.

Una parte del UML define, entonces, una abstracción con significado de un lenguaje para

expresar otros modelos (es decir, otras abstracciones de un sistema, o conjunto de unidades

conectadas que se organizan para conseguir un propósito). Lo que en principio puede

parecer complicado no lo es tanto si pensamos que uno de los objetivos del UML es llegar a

convertirse en una manera de definir modelos, no sólo establecer una forma de modelo, de

esta forma simplemente estamos diciendo que UML, además, define un lenguaje con el que

podemos abstraer cualquier tipo de modelo.

Analisis y Diseño II Ing. Nela Benavides Ignacio

14

UML utiliza parte de este planteamiento obteniendo distintos puntos de vista de la realidad

que modela mediante los distintos tipos de diagramas que posee. Con la creación del UML

se persigue obtener un lenguaje que sea capaz de abstraer cualquier tipo de sistema, sea

informático o no, mediante los diagramas, es decir, mediante representaciones gráficas que

contienen toda la información relevante del sistema. Un diagrama es una representación

gráfica de una colección de elementos del modelo, que habitualmente toma forma de grafo

donde los arcos que conectan sus vértices son las relaciones entre los objetos y los vértices

se corresponden con los elementos del modelo. Los distintos puntos de vista de un sistema

real que se quieren representar para obtener el modelo se dibuja dé forma que se resaltan

los detalles necesarios para entender el sistema.

Modelos y Diagramas

Un modelo captura una vista de un sistema del mundo real. Es una abstracción de dicho

sistema, considerando un cierto propósito. Así, el modelo describe completamente aquellos

aspectos del sistema que son relevantes al propósito del modelo, y a un apropiado nivel de

detalle.

Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan

expresar el producto desde cada una de las perspectivas de interés El código fuente del

sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se

requieren otros modelos ... Cada modelo es completo desde su punto de vista del sistema,

sin embargo, existen relaciones de trazabilidad entre los diferentes modelos

Diagrama es una representación gráfica de una colección de elementos de modelado, a

menudo dibujada como un grafo conexo de arcos (relaciones) y vértices (otros elementos

del modelo). Un diagrama no es un elemento semántico, un diagrama muestra

representaciones de elementos semánticos del modelo, pero su significado no se ve

afectado por la forma en que son representados. Un diagrama está contenido dentro de un

paquete.

La mayoría de los diagramas de UML y algunos símbolos complejos son grafos que

contienen formas conectadas por rutas. La infomación está sobre todo en la topología, no en

el tamaño o la colocación de los símbolos (hay algunas excepciones como el diagrama de

secuencia con un eje métrico de tiempo). Hay tres clases importantes de relaciones visuales:

conexión (generalmente de líneas a formas de dos dimensiones), contención (de símbolos

por formas cerradas de dos dimensiones), y adhesión visual (un símbolo que está "cerca" de

otro en un diagrama). Estas relaciones geométricas se reasignan a conexiones entre nodos

en un gráfico en la forma analizada de la notación.

NOTACION UML

La notación de UML está pensada para ser dibujada en superficies bidimensionales.

Algunas formas bidimensionales son proyecciones de formas tridimensionales tales como

cubos, pero todavía se representan como íconos en una superficie bidimensional.

Hay cuatro clases de construcciones gráficas que se usan en la notación de UML: íconos,

símbolos bidimensionales, rutas y cadenas.

Analisis y Diseño II Ing. Nela Benavides Ignacio

15

Un ícono es una figura gráfica con un tamaño y forma fijos. No se amplía para contener a

su contenido. Los iconos pueden aparecer dentro de símbolos de área, como terminadores

en las rutas o como símbolos independientes que puedan o no conectar con las rutas.

Los símbolos de dos dimensiones tienen altura y anchura variables, y pueden ampliarse

para permitir otras cosas tales como listas de cadenas o de otros símbolos. Muchos de ellos

están divididos en compartimientos similares o de tipos diferentes. Las rutas se conectan

con los símbolos, el arrastrar o suprimir uno de ellos afecta a su contenido y las rutas

conectadas.

de segmentos de recta o de curva que se unen en sus puntos finales. Conceptualmente una

ruta es una sola entidad topológica, aunque sus segmentos se pueden manipular

gráficamente. unsegemento no debería existir separado de su ruta. Las rutas siempre van

conectdas en ambos extremos.

Las cadenas presentan varias clases de información en una forma "no analizada", UML

asume que cada uso de una cadena en la notación tiene una sintaxis por la cual pueda ser

analizada la información del modelo subyancente. Las cadenas pueden existir como el

contenido de un compartimiento, como elementos en las listas, como etiquetas unidas a los

símbolos o a las rutas, o como elementos independientes en un diagrama.

DIAGRAMAS UML

Los diagramas expresan gráficamente partes de un modelo. UML está compuesto por los

siguientes diagramas:

Diagramas de UML

Diagrama de Casos de Uso

Diagrama de Clases

Diagrama de Objetos

Diagramas de Comportamiento

Diagrama de Estados

Diagrama de Actividad

Diagramas de Interacción

Diagrama de Secuencia

Diagrama de Colaboración

Diagramas de implementación

Diagrama de Componentes

Diagrama de Despliegue

NUEVAS CARACTERÍSTICAS DEL UML

Además de los conceptos extraídos de métodos anteriores, se han añadido otros nuevos que

vienen a suplir carencias antiguas de la metodología de modelado. Estos nuevos conceptos

son los siguientes:

Definición de estereotipos: un estereotipo es una nueva clase de elemento de

modelado que debe basarse en ciertas clases ya existentes en el metamodelo y

constituye un mecanismo de extensión del modelo.

Responsabilidades.

Analisis y Diseño II Ing. Nela Benavides Ignacio

16

Mecanismos de extensibilidad: estereotipos, valores etiquetados y restricciones.

Tareas y procesos.

Distribución y concurrencia (para modelar por ejemplo ActiveX/DCOM y

CORBA).

Patrones/Colaboraciones.

Diagramas de actividad (para reingeniería de proceso de negocios)

Clara separación de tipo, clase e instancia.

Refinamiento (para manejar relaciones entre niveles de abstracción).

Interfaces y componentes.

EL PROCESO DE DESARROLLO

UML no define un proceso concreto que determine las fases de desarrollo de un sistema, las

empresas pueden utilizar UML como el lenguaje para definir sus propios procesos y lo

único que tendrán en común con otras organizaciones que utilicen UML serán los tipos de

diagramas.

Herramientas CASE

Rational Rose es la herramienta CASE que comercializan los desarrolladores de UML y

que soporta de forma completa la especificación del UML 1.1.

Esta herramienta propone la utilización de cuatro tipos de modelo para realizar un diseño

del sistema, utilizando una vista estática y otra dinámica de los modelos del sistema, uno

lógico y otro físico. Permite crear y refinar estas vistas creando de esta forma un modelo

completo que representa el dominio del

problema y el sistema de software.

Desarrollo Iterativo

Rational Rose utiliza un proceso de desarrollo iterativo controlado

(controllediterativeprocessdevelopment), donde el desarrollo se lleva a cabo en una

secuencia de iteraciones. Cada iteración comienza con una primera aproximación del

análisis, diseño e implementación para identificar los riesgos del diseño, los cuales se

utilizan para conducir la iteración, primero se identifican los riesgos y después se prueba la

aplicación para que éstos se hagan mínimos.

Cuando la implementación pasa todas las pruebas que se determinan en el proceso, ésta se

revisa y se añaden los elementos modificados al modelo de análisis y diseño. Una vez que

la actualización del modelo se ha modificado, se realiza la siguiente iteración.

Trabajo en Grupo

Rose permite que haya varias personas trabajando a la vez en el proceso iterativo

controlado, para ello posibilita que cada desarrollador opere en un espacio de trabajo

privado que contiene el modelo completo y tenga un control exclusivo sobre la propagación

de los cambios en ese espacio de trabajo.

Analisis y Diseño II Ing. Nela Benavides Ignacio

17

También es posible descomponer el modelo en unidades controladas e integrarlas con un

sistema para realizar el control de proyectos que permite mantener la integridad de dichas

unidades.

Generador de Código

Se puede generar código en distintos lenguajes de programación a partir de un diseño en

UML.

Ingeniería Inversa

Rational Rose proporciona mecanismos para realizar la denominada Ingeniería Inversa, es

decir, a partir del código de un programa, se puede obtener información sobre su diseño.

Analisis y Diseño II Ing. Nela Benavides Ignacio

18

TEMA 5.

Casos de Uso (Use Case)

Introducción

El diagrama de casos de uso representa la forma en como un Cliente (Actor) opera con el

sistema en desarrollo, además de la forma, tipo y orden en como los elementos interactuan

(operaciones o casos de uso).

Un diagrama de casos de uso consta de los siguientes elementos:

Actor.

Casos de Uso.

Relaciones de Uso, Herencia y Comunicación.

Elementos

Actor:

Una definición previa, es que un Actor es un rol que un usuario juega con respecto

al sistema. Es importante destacar el uso de la palabra rol, pues con esto se

especifica que un Actor no necesariamente representa a una persona en particular,

sino más bien la labor que realiza frente al sistema.

Como ejemplo a la definición anterior, tenemos el caso de un sistema de ventas en

que el rol de Vendedor con respecto al sistema puede ser realizado por un Vendedor

o bien por el Jefe de Local.

Caso de Uso:

Es una operación/tarea específica que se realiza tras una orden de algún agente

externo, sea desde una petición de un actor o bien desde la invocación desde otro

caso de uso.

Analisis y Diseño II Ing. Nela Benavides Ignacio

19

Relaciones:

o Asociación

Es el tipo de relación más básica que indica la invocación desde un actor o

caso de uso a otra operación (caso de uso). Dicha relación se denota con una

flecha simple.

o Dependencia o Instanciación

Es una forma muy particular de relación entre clases, en la cual una clase

depende de otra, es decir, se instancia (se crea). Dicha relación se denota con

una flecha punteada.

o Generalización

Este tipo de relación es uno de los más utilizados, cumple una doble función

dependiendo de su estereotipo, que puede ser de Uso (<<uses>>) o de

Herencia (<<extends>>).

Este tipo de relación esta orientado exclusivamente para casos de uso (y no

para actores).

extends: Se recomienda utilizar cuando un caso de uso es similar a otro

(características).

uses: Se recomienda utilizar cuando se tiene un conjunto de características

que son similares en más de un caso de uso y no se desea mantener copiada

la descripción de la característica.

De lo anterior cabe mencionar que tiene el mismo paradigma en diseño y

modelamiento de clases, en donde esta la duda clásica de usar o heredar.

Ejemplo:

Como ejemplo esta el caso de una Máquina Recicladora:

Sistema que controla una máquina de reciclamiento de botellas, tarros y jabas. El sistema

debe controlar y/o aceptar:

Registrar el número de ítemes ingresados.

Imprimir un recibo cuando el usuario lo solicita:

a. Describe lo depositado

b. El valor de cada item

c. Total

El usuario/cliente presiona el botón de comienzo

Analisis y Diseño II Ing. Nela Benavides Ignacio

20

Existe un operador que desea saber lo siguiente:

a. Cuantos ítemes han sido retornados en el día.

b. Al final de cada día el operador solicita un resumen de todo lo depositado en

el día.

El operador debe además poder cambiar:

a. Información asociada a ítemes.

b. Dar una alarma en el caso de que:

i. Item se atora.

ii. No hay más papel.

Como una primera aproximación identificamos a los actores que interactuan con el sistema:

Luego, tenemos que un Cliente puede Depositar Itemes y un Operador puede cambiar la

información de un Item o bien puede Imprimir un informe:

Además podemos notar que un item puede ser una Botella, un Tarro o una Jaba.

Analisis y Diseño II Ing. Nela Benavides Ignacio

21

Otro aspecto es la impresión de comprobantes, que puede ser realizada después de depositar

algún item por un cliente o bien puede ser realizada a petición de un operador.

Entonces, el diseño completo del diagrama Use Case es:

Analisis y Diseño II Ing. Nela Benavides Ignacio

22

Analisis y Diseño II Ing. Nela Benavides Ignacio

23

TEMA 6

Modelo de Clases

Introducción

Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el

sistema, las cuales pueden ser asociativas, de herencia, de uso y de contenimiento.

Un diagrama de clases esta compuesto por los siguientes elementos:

Clase: atributos, métodos y visibilidad.

Relaciones: Herencia, Composición, Agregación, Asociación y Uso.

Elementos

Clase

Es la unidad básica que encapsula toda la información de un Objeto (un objeto es

una instancia de una clase). A través de ella podemos modelar el entorno en estudio

(una Casa, un Auto, una Cuenta Corriente, etc.).

En UML, una clase es representada por un rectángulo que posee tres divisiones:

En donde:

o Superior: Contiene el nombre de la Clase

o Intermedio: Contiene los atributos (o variables de instancia) que

caracterizan a la Clase (pueden ser private, protected o public).

o Inferior: Contiene los métodos u operaciones, los cuales son la forma como

interactúa el objeto con su entorno (dependiendo de la visibilidad: private,

protected o public).

Ejemplo:

Una Cuenta Corriente que posee como característica:

o Balance

Analisis y Diseño II Ing. Nela Benavides Ignacio

24

Puede realizar las operaciones de:

o Depositar

o Girar

o y Balance

El diseño asociado es:

Atributos y Métodos:

o Atributos:

Los atributos o características de una Clase pueden ser de tres tipos, los que

definen el grado de comunicación y visibilidad de ellos con el entorno, estos

son:

public (+, ): Indica que el atributo será visible tanto dentro

como fuera de la clase, es decir, es accsesible desde todos lados.

private (-, ): Indica que el atributo sólo será accesible desde

dentro de la clase (sólo sus métodos lo pueden accesar).

protected (#, ): Indica que el atributo no será accesible desde

fuera de la clase, pero si podrá ser accesado por métodos de la clase

además de las subclases que se deriven (ver herencia).

o Métodos:

Los métodos u operaciones de una clase son la forma en como ésta

interactúa con su entorno, éstos pueden tener las características:

public (+, ): Indica que el método será visible tanto dentro como

fuera de la clase, es decir, es accsesible desde todos lados.

private (-, ): Indica que el método sólo será accesible desde

dentro de la clase (sólo otros métodos de la clase lo pueden accesar).

Analisis y Diseño II Ing. Nela Benavides Ignacio

25

protected (#, ): Indica que el método no será accesible desde

fuera de la clase, pero si podrá ser accesado por métodos de la clase

además de métodos de las subclases que se deriven (ver herencia).

Relaciones entre Clases:

Ahora ya definido el concepto de Clase, es necesario explicar como se pueden

interrelacionar dos o más clases (cada uno con características y objetivos

diferentes).

Antes es necesario explicar el concepto de cardinalidad de relaciones: En UML, la

cardinalidad de las relaciones indica el grado y nivel de dependencia, se anotan en

cada extremo de la relación y éstas pueden ser:

o uno o muchos: 1..* (1..n)

o 0 o muchos: 0..* (0..n)

o número fijo: m (m denota el número).

o

v. Herencia (Especialización/Generalización):

Indica que una subclase hereda los métodos y atributos especificados por

una Super Clase, por ende la Subclase además de poseer sus propios

métodos y atributos, poseerá las características y atributos visibles de la

Super Clase (public y protected), ejemplo:

Analisis y Diseño II Ing. Nela Benavides Ignacio

26

En la figura se especifica que Auto y Camión heredan de Vehículo, es decir,

Auto posee las Características de Vehículo (Precio, VelMax, etc) además

posee algo particular que es Descapotable, en cambio Camión también

hereda las características de Vehiculo (Precio, VelMax, etc) pero posee

como particularidad propia Acoplado, Tara y Carga.

Cabe destacar que fuera de este entorno, lo único "visible" es el método

Caracteristicas aplicable a instancias de Vehículo, Auto y Camión, pues

tiene definición publica, en cambio atributos como Descapotable no son

visibles por ser privados.

vi. Agregación:

Para modelar objetos complejos, n bastan los tipos de datos básicos que

proveen los lenguajes: enteros, reales y secuencias de caracteres. Cuando se

requiere componer objetos que son instancias de clases definidas por el

desarrollador de la aplicación, tenemos dos posibilidades:

Por Valor: Es un tipo de relación estática, en donde el tiempo de

vida del objeto incluido esta condicionado por el tiempo de vida del

que lo incluye. Este tipo de relación es comunmente llamada

Composición (el Objeto base se contruye a partir del objeto incluido,

es decir, es "parte/todo").

Por Referencia: Es un tipo de relación dinámica, en donde el tiempo

de vida del objeto incluido es independiente del que lo incluye. Este

tipo de relación es comunmente llamada Agregación (el objeto base

utiliza al incluido para su funcionamiento).

Un Ejemplo es el siguiente:

En donde se destaca que:

Un Almacen posee Clientes y Cuentas (los rombos van en el objeto

que posee las referencias).

Cuando se destruye el Objeto Almacen también son destruidos los

objetos Cuenta asociados, en cambio no son afectados los objetos

Cliente asociados.

Analisis y Diseño II Ing. Nela Benavides Ignacio

27

La composición (por Valor) se destaca por un rombo relleno.

La agregación (por Referencia) se destaca por un rombo

transparente.

La flecha en este tipo de relación indica la navegabilidad del objeto

refereniado. Cuando no existe este tipo de particularidad la flecha se

elimina.

vii. Asociación:

La relación entre clases conocida como Asociación, permite asociar objetos

que colaboran entre si. Cabe destacar que no es una relación fuerte, es decir,

el tiempo de vida de un objeto no depende del otro.

Ejemplo:

Un cliente puede tener asociadas muchas Ordenes de Compra, en cambio

una orden de compra solo puede tener asociado un cliente.

viii. Dependencia o Instanciación (uso):

Representa un tipo de relación muy particular, en la que una clase es

instanciada (su instanciación es dependiente de otro objeto/clase). Se denota

por una flecha punteada.

El uso más particular de este tipo de relación es para denotar la dependencia

que tiene una clase de otra, como por ejemplo una aplicación grafica que

instancia una ventana (la creación del Objeto Ventana esta condicionado a la

instanciación proveniente desde el objeto Aplicacion):

Cabe destacar que el objeto creado (en este caso la Ventana gráfica) no se

almacena dentro del objeto que lo crea (en este caso la Aplicación).

Casos Particulares:

o Clase Abstracta:

Analisis y Diseño II Ing. Nela Benavides Ignacio

28

Una clase abstracta se denota con el nombre de la clase y de los métodos con

letra "itálica". Esto indica que la clase definida no puede ser instanciada

pues posee métodos abstractos (aún no han sido definidos, es decir, sin

implementación). La única forma de utilizarla es definiendo subclases, que

implementan los métodos abstractos definidos.

o Clase parametrizada:

Una clase parametrizada se denota con un subcuadro en el extremo superior

de la clase, en donde se especifican los parámetros que deben ser pasados a

la clase para que esta pueda ser instanciada. El ejemplo más típico es el caso

de un Diccionario en donde una llave o palabra tiene asociado un

significado, pero en este caso las llaves y elementos pueden ser genéricos.

La genericidad puede venir dada de un Template (como en el caso de C++)

o bien de alguna estructura predefinida (especialización a través de clases).

Analisis y Diseño II Ing. Nela Benavides Ignacio

29

TEMA 6

Diagrama de Interacción

Introducción

El diagrama de interacción, representa la forma en como un Cliente (Actor) u Objetos

(Clases) se comunican entre si en petición a un evento. Esto implica recorrer toda la

secuencia de llamadas, de donde se obtienen las responsabilidades claramente.

Dicho diagrama puede ser obtenido de dos partes, desde el Diagrama Estático de Clases o

el de Casos de Uso (son diferentes).

Los diagramas de interaccion se dividen en:

Diagramas de secuencia

Diagramas de colaboracion

Los componentes de un diágrama de interacción son:

Un Objeto o Actor.

Mensaje de un objeto a otro objeto.

Mensaje de un objeto a si mismo.

Elementos

Objeto/Actor:

El rectángulo representa una instancia de un Objeto en particular, y la línea

punteada representa las llamadas a métodos del objeto.

Mensaje a Otro Objeto:

Analisis y Diseño II Ing. Nela Benavides Ignacio

30

Se representa por una flecha entre un objeto y otro, representa la llamada de un

método (operación) de un objeto en particular.

Mensaje al Mismo Objeto:

No solo llamadas a métodos de objetos externos pueden realizarse, también es

posible visualizar llamadas a métodos desde el mismo objeto en estudio.

Ejemplo

En el presente ejemplo, tenemos el diagrama de interacción proveniente del siguiente

modelo estatico:

Aquí se representa una aplicación que posee una Ventana gráfica, y ésta a su vez posee

internamente un botón.

Entonces el diagrama de interacción para dicho modelo es:

Analisis y Diseño II Ing. Nela Benavides Ignacio

31

En donde se hacen notar las sucesivas llamadas a Draw() (entre objetos) y la llamada a

Paint() por el objeto Botón.

La vista de interacción describe secuencias de intercambios de mensajes entre los roles que

implementan el comportamiento de un sistema. Un rol clasificador, o simplemente "un rol",

Analisis y Diseño II Ing. Nela Benavides Ignacio

32

es la descripción de un objeto, que desempeña un determinado papel dentro de una

interacción, distinto de los otros objetos de la misma clase. Esta visión proporciona una

vista integral del comportamiento del sistema, es decir, muestra el flujo de control a través

de muchos objetos. La vista de interacción se exhibe en dos diagramas centrados en

distintos aspectos pero complementarios: centrados en los objetos individuales y centrados

en objetos cooperantes.

Los objetos interactúan para realizar colectivamente los servicios ofrecidos por las

aplicaciones. Los diagramas de interacción muestran cómo se comunican los objetos en una

interacción. Existen dos tipos de diagramas de interacción: el Diagrama de Colaboración y

el Diagrama de Secuencia.

El Diagrama de Secuencia es más adecuado para observar la perspectiva cronológica de las

interacciones, muestra la secuencia explícita de mensajes y son mejores para

especificaciones de tiempo real y para escenarios complejos. El Diagrama de Colaboración

ofrece una mejor visión espacial mostrando los enlaces de comunicación entre objetos,

muestra las relaciones entre objetos y son mejores para comprender todos los efectos que

tiene un objeto y para el diseño de procedimientos. El diagrama de Colaboración puede

obtenerse automáticamente a partir del correspondiente diagrama de Secuencia (o

viceversa).

Diagramas de Secuencia:

1.Muestra la secuencia de mensajes entre objetos durante un escenario concreto 2.Cada

objeto viene dado por una barra vertical 3.El tiempo transcurre de arriba abajo 4.Cuando

existe demora entre el envío y la atención se puede indicar usando una línea oblicua

Diagramas de Colaboración:

Analisis y Diseño II Ing. Nela Benavides Ignacio

33

1.Son útiles en la fase exploratoria para identificar objetos. 2.La distribución de los objetos

en el diagrama permite observar adecuadamente la interacción de un objeto con respecto de

los demás 3.La estructura estática viene dada por los enlaces; la dinámica por el envío de

mensajes por los enlaces

Qué es una Colaboración?

Es una descripción de una colección de objetos que interactúan para implementar un cierto

comportamiento dentro de un contexto. Describe una sociedad de objetos cooperantes

unidos para realizar un cierto propósito. Una colaboración contiene ranuras que son

rellenadas por los objetos y enlaces en tiempo de ejecución. Una ranura de colaboración se

llama Rol porque describe el propósito de un objeto o un enlace dentro de la colaboración.

Un rol clasificador representa una descripción de los objetos que pueden participar en una

ejecución de la colaboración, un rol de asociación representa una descripción de los enlaces

que pueden participar en una ejecución de colaboración. Un rol de clasificador es una

asociación que está limitada por tomar parte en la colaboración. Las relaciones entre roles

de clasificador y asociación dentro de una colaboración sólo tienen sentido en ese contexto.

En general fuera de ese contexto no se aplican las mismas relaciones.

Analisis y Diseño II Ing. Nela Benavides Ignacio

34

Una Colaboración tiene un aspecto estructural y un aspecto de comportamiento. El aspecto

estrucutral es similar a una vista estática: contiene un conjunto de roles y relaciones que

definen el contexto para su comprtamiento. El comportamiento es el conjunto de mensajes

intercambiados por los objetos ligados a los roles. Tal conjunto de mensajes en una

colaboración se llama Interacción. Una colaboración puede incluir una o más interacciones.

Qué es una Interacción?

Es el conjunto de mensajes intercambiados por los roles de clasificador a través de los roles

de asociación. Un mensaje es una comunicaión unidireccional entre dos objetos, un flujo de

objeto con la información de un remitente a un receptor. Un mensaje puede tener

parámetros que transporten valores entre objetos. Un mensaje puede ser una señal

(comunicación explícita entre objetos, con nombre y asíncrona) o una llamada (la

invocación síncrona de una operación con un mecanismo para el control, que retorna

posteriormente al remitente). Un patrón de intercambios de mensajes que se realizan para

lograr un propósito específico es lo que se denomina una interacción.

Qué es Patrón?

Un patrón es una colaboración parametrizada, junto con las pautas sobre cuándo utilizarlo.

Un parámetro se puede sustituir por diversos valores, para producir distintas

colaboraciones. Los parámetros señalan generalmente las ranuras para las clases. El uso de

un patrón se representa como una elipse de línea discontinua conectada con cada una de las

clases por una línea discontinua, que se etiqueta con el nombre del rol.

Analisis y Diseño II Ing. Nela Benavides Ignacio

35

TEMA 7

Diagrama de Actividades 1.- Definicion

El Diagrama de Actividad es una especialización del Diagrama de Estado, organizado respecto de las

acciones y usado para especificar:

Un método

Un caso de uso

Un proceso de negocio (Workflow)

Un estado de actividad representa una actividad: un paso en el flujo de trabajo o la ejecución de una

operación. Un grafo de actividades describe grupos secuenciales y concurrentes de actividades. Los

grafos de actividades se muestran en diagramas de actividades. Las actividades se enlazan por

transiciones automáticas. Cuando una actividad termina se desencadena el paso a la siguiente

actividad.

Un diagrama de actividades es provechoso para entender el comportamiento de alto nivel de la

ejecución de un sistema, sin profundizar en los detalles internos de los mensajes. Los parámetros de

entrada y salida de una acción se pueden mostrar usando las relaciones de flujo que conectan la

acción y un estado de flujo de objeto.

Un grafo de actividades contiene estados de actividad que representa la ejecución de una secuencia

en un procedimiento, o el funcionamiento de una actividad en un flujo de trabajo. En vez de esperar

un evento, como en un estado de espera normal, un estado de actividad espera la terminación de su

cómputo. Cuando la actividad termina, entonces la ejecución procede al siguiente estado de actividad

dentro del diagrama. una transición de terminación es activada en un diagrama de actividades cuando

se completa la actividad precedente. Los estados de actividad no tienen transiciones con eventos

explícitos, peor pueden ser abortados por transiciones en estados que los incluyen._

Un grafo de actividades puede contener también estados de acción, que son similares a los de

actividad pero son atómicos y no permiten transiciones mientras están activos. Los estados de acción

se deben utilizar para las operaciones cortas de mantenimiento.

Un diagrama de actividades puede contener bifurcaciones, así como divisiones de control en hilos

concurrentes. los hilos concurrentes representan actividades que se pueden realizar concurrentemente

por los diversos objetos o personas. La concurrencia se representa a partir de la agregación, en la cual

cada objeto tiene su propio hilo. Las actividades concurrentes se pueden realizar simultáneamente o

en cualquier orden. Un diagrama de actividades es como un organigrama tradicional, excepto que

permite el control de concurrencia además del control secuencial.

2.- Notación Un estado de actividad se representa como una caja con los extremos redondeados que contiene una

descripción de actividad. Las transacciones simples de terminación se muestran como flechas. Las

ramas se muestran como condiciones de guarda en transiciones o como diamantes con múltiples

flechas de salida etiquetadas. Una división o una unión de control se representa con múltiples flechas

Analisis y Diseño II Ing. Nela Benavides Ignacio

36

que entran o salen de la barra gruesa de sincronización.

Cuando es necesario incluir eventos externos, la recepción de un evento se puede mostrar como un

disparador en una transición, o como un símbolo especial que denota la espera de una señal.

A menudo es útil organizar las actividades en un modelo según su responsabilidad. Esta clase de

asignación puede mostrarse organizando las actividades en regiones distintas separads por líneas en

el diagrama. Debido a su aspecto, esto es conocido como Calles.

Un diagrma de actividades puede mostrar el flujo de objetos como valores. Para un valor de salida, se

dibuja una flecha con línea discontinua desde la actividad al objeto. Para un valor de entrada, se

dibuja una flecha con línea discontinua desde el objeto a una actividad.

Analisis y Diseño II Ing. Nela Benavides Ignacio

37

Tema 8

Diagramas de Componentes

Los diagramas de componentes describen los elementos físicos del sistema y sus relaciones.

Muestran las opciones de realización incluyendo código fuente, binario y ejecutable. Los

componentes representan todos los tipos de elementos software que entran en la fabricación

de aplicaciones informáticas. Pueden ser simples archivos, paquetes de Ada, bibliotecas

cargadas dinámicamente, etc. Las relaciones de dependencia se utilizan en los diagramas de

componentes para indicar que un componente utiliza los servicios ofrecidos por otro

componente.

Un diagrama de componentes representa las dependencias entre componentes software,

incluyendo componentes de código fuente, componentes del código binario, y componentes

ejecutables. Un módulo de software se puede representar como componente. Algunos

componentes existen en tiempo de compilación, algunos en tiempo de enlace y algunos en

tiempo de ejecución, otros en varias de éstas.

Un componente de sólo compilación es aquel que es significativo únicamente en tiempo de

compilación. Un componente ejecutable es un programa ejecutable.

Un diagrama de componentes tiene sólo una versión con descriptores, no tiene versión con

instancias. Para mostrar las instancias de los componentes se debe usar un diagrama de

despliegue.

Un diagrama de componentes muestra clasificadores de componentes, las clases definidas en

ellos, y las relaciones entre ellas. Los clasificadores de componentes también se pueden anidar

dentro de otros clasificadores de componentes para mostrar relaciones de definición.

Un diagrama que contiene clasificadores de componentes y de nodo se puede utilizar para

mostrar las dependencias del compilador, que se representa como flechas con líneas

discontinuas (dependencias) de un componente cliente a un componente proveedor del que

depende. Los tipos de dependencias son específicos del lenguaje y se pueden representar

como estereotipos de las dependencias.

El diagrama de componente hace parte de la vista física de un sistema, la cual modela la

estructura de implementación de la aplicación por sí misma, su organización en componentes

y su despliegue en nodos de ejecución. Esta vista proporciona la oportunidad de establecer

correspondecias entre las clases y los componentes de implementación y nodos. La vista de

implementación se representa con los diagramas de componentes.

Analisis y Diseño II Ing. Nela Benavides Ignacio

38

Diagramas de Despliegue Los Diagramas de Despliegue muestran la disposición física de los distintos nodos que

componen un sistema y el reparto de los componentes sobre dichos nodos. La vista de despliegue

representa la disposición de las instancias de componentes de ejecución en instacias de nodos

conectados por enlaces de comunicación. Un nodo es un recurso de ejecución tal como un

computador, un dispositivo o memoria. Los estereotipos permiten precisar la naturaleza del

equipo:

Dispositivos

Procesadores

Memoria

Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse.

Esta vista permite determinar las consecuencias de la distribución y la asignación de recursos.

Las instancias de los nodos pueden contener instancias de ejecución, como instancias de

componentes y objetos. El modelo puede mostrar dependencias entre las instancias y sus

interfaces, y también modelar la migración de entidades entre nodos u otros contenedores.

Esta vista tiene una forma de descriptor y otra de instancia. La forma de instancia muestra la

localización de las instancias de los componentes específicos en instancias específicas del nodo

como parte de una configuración del sistema. La forma de descriptor muestra qué tipo de

componentes pueden subsistir en qué tipos de nodos y qué tipo de nodos se pueden conectar, de

forma similar a una diagrama de clases, esta forma es menos común que la primera.

Analisis y Diseño II Ing. Nela Benavides Ignacio

39

Diagramas de Estado

Muestra el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicación,

junto con los cambios que permiten pasar de un estado a otro.

Los Diagramas de Estado representan autómatas de estados finitos, desde el p.d.v. de los estados

y las transiciones. Son útiles sólo para los objetos con un comportamiento significativo. Cada

objeto está en un estado en cierto instante. El estado está caracterizado parcialmente por los

valores algunos de los atributos del objeto. El estado en el que se encuentra un objeto determina

su comportamiento. Cada objeto sigue el comportamiento descrito en el Diagrama de Estados

asociado a su clase. Los Diagramas de Estados y escenarios son complementarios, los Diagramas

de Estados son autómatas jerárquicos que permiten expresar concurrencia, sincronización y

jerarquías de objetos, son grafos dirigidos y deterministas. La transición entre estados es

instantánea y se debe a la ocurrencia de un evento.

Estado Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto está esperando

alguna operación, tiene cierto estado característico o puede recibir cierto tipo de estímulos. Se

representa mediante un rectángulo con los bordes redondeados, que puede tener tres

compartimientos: uno para el nombre, otro para el valor característico de los atributos del objeto

en ese estado y otro para las acciones que se realizan al entrar, salir o estar en un estado (entry,

exit o do, respectivamente).

Eventos Es una ocurrencia que puede causar la transición de un estado a otro de un objeto. Esta

ocurrencia puede ser una de varias cosas:

Condición que toma el valor de verdadero o falso

Recepción de una señal de otro objeto en el modelo

Recepción de un mensaje

Paso de cierto período de tiempo, después de entrar al estado o de cierta hora y fecha

particular

El nombre de un evento tiene alcance dentro del paquete en el cual está definido, no es local a la

clase que lo nombre.

Envío de mensajes Además de mostrar y transición de estados por medio de eventos, puede representarse el

momento en el cual se envían mensajes a otros objetos. Esto se realiza mediante una línea

punteada dirigida al diagrama de estados del objeto receptor del mensaje.

Analisis y Diseño II Ing. Nela Benavides Ignacio

40

Diagramas de Objetos Objeto es una entidad discreta con límites bien definidos y con identidad, es una unidad atómica

que encapsula estado y comportamiento. La encapsulación en un objeto permite una alta

cohesión y un bajo acoplamiento. el Objeto es reconocido también como una instancia de la clase

a la cual pertenece.

La encapsulación presenta tres ventajas básicas:

1. Se protegen los datos de accesos indebidos

2. El acoplamiento entre las clases se disminuye

3. Favorece la modularidad y el mantenimiento

Un objeto se puede ver desde dos perspectivas relacionadas: como una entidad de un

determinado instante de tiempo que posee un valor específico (Un objeto puede caracterizar una

entidad física -coche-) y como un poseedor de identidad que tiene distintos valores a lo largo del

tiempo (abstracta -ecuación matemática-).

Cada objeto posee su propia identidad exclusiva y se puede hacer referencia a él mediante una

denominación exclusiva que permite accederle. El Modelado de Objetos permite representar el

ciclo de vida de los objetos a través de sus interacciones. En UML, un objeto se representa por

un rectángulo con un nombre subrayado.

Objeto = Identidad + Estado + Comportamiento

El estado está representado por los valores de los atributos.

Un atributo toma un valor en un dominio concreto.

La regla general para la notación de instancias consiste en utilizar el mismo símbolo geométrico

que el descriptor. En la instancia se muestran los posibles valores pero las propiedades

compartidas sólo se pone de manifiesto en el descriptor. La notación canónica es un rectángulo

con tres compartimientos. En el primero va el nombre del objeto, en el segundo sus atributos y

en el tercero sus operaciones. Este último puede ser omitido si así se prefiere.

Oid (ObjectIdentifier)

Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes

características:

Constituye un identificador único y global para cada objeto dentro del sistema.

Es determinado en el momento de la creación del objeto.

Es independiente de la localización física del objeto, es decir, provee completa

independencia de localización.

Es independiente de las propiedades del objeto, lo cual implica independencia de valor y

de estructura.

Analisis y Diseño II Ing. Nela Benavides Ignacio

41

No cambia durante toda la vida del objeto. Además, un oid no se reutiliza aunque el

objeto deje de existir.

No se tiene ningún control sobre los oids y su manipulación resulta transparente. Sin embargo, es

preciso contar con algún medio para hacer referencia a un objeto utilizando referencias del

dominio (valores de atributos).

Características alrededor de un objeto:

Estado:

El estado evoluciona con el tiempo. Algunos atributos pueden ser constantes, el comportamiento

agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto. Las

operaciones de un objeto son consecuencia de un estímulo externo representado como mensaje

enviado desde otro objeto.

Persistencia:

La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo,

podremos después reconstruirlo, es decir, cogerlo de memoria secundaria para utilizarlo en la

ejecución (materialización del objeto). Los lenguajes OO no proponen soporte adecuado para la

persistencia, la cual debería ser transparente, un objeto existe desde su creación hasta que se

destruya.

Comunicación:

Un sistema informático puede verse como un conjunto de objetos autónomos y concurrentes que

trabajan de manera coordinada en la consecución de un fin específico. El comportamiento global

se basa pues en la comunicación entre los objetos que la componen.

Categorías de objetos:

Activos o Pasivos

Cliente -- Servidores, Agentes

1. Objeto Activo: posee un hilo de ejecución (thread) propio y puede iniciar una actividad.

2. Objeto Pasivo: no puede iniciar una actividad pero puede enviar estímulos una vez que se

le solicita un servicio.

3. Cliente es el objeto que solicita un servicio.

4. Servidor es el objeto que provee el servicio solicitado.

5. Los agentes reúnen las características de clientes y servidores. Son la base del mecanismo

de delegación. Introducen indirección: un cliente puede comunicarse con un servidor que

no conoce directamente.

Mensajes:

La unidad de comunicación entre objetos se llama mensaje. El mensaje es el soporte de una

comunicación que vincula dinámicamente los objetos que fueron separados previamente en el

proceso de descomposición. Adquiere toda su fuerza cuando se asocia al polimorfismo y al

enlace dinámico. Un estímulo causará la invocación de una operación, la creación o destrucción

de un objeto o la aparición de una señal. Un mensaje es la especificación de un estímulo.

Analisis y Diseño II Ing. Nela Benavides Ignacio

42

Tipos de flujo de control:

1. Llamada a procedimiento o flujo de control anidado

2. Flujo de control plano

3. Retorno de una llamada a procedimiento

4. Otras variaciones

5. Esperado (balking)

6. Cronometrado (time-out)

Diagrama de Paquetes

Cualquier sistema grande se debe dividir en unidades más pequeñas, de modo que las personas

puedan trabajar con una cantidad de información limitada, a la vez y de modo que los equipos de

trabajo no interfieran con el trabajo de los otros.

Un paquete es una parte de un modelo. Cada parte del modelo debe pertenecer a un paquete.

Pero para ser funcional, la asignación debe seguir un cierto principio racional, tal como

funcionalidad común, implementación relacionada y punto de vista común. UML no impone una

regla para componer los paquetes.

Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas

agrupando elementos de modelado. Cada paquete corresponde a un submodelo (subsistema) del

modelo (sistema). Los paquetes son unidades de organización jerárquica de uso general de los

modelos de UML. Pueden ser utilizados para el almacenamiento, el control de acceso, la gestión

de la configuración y la construcción de bibliotecas que contengan fragmentos reutilizables del

modelo.

Un paquete puede contener otros paquetes, sin límite de anidamiento pero cada elemento

pertenece a (está definido en) sólo un paquete.

Los paquetes contienen elementos del modelo al más alto nivel, tales como clases y sus

relaciones, máquinas de estado, diagramas de casos de uso, interacciones y colaboraciones;

atributos, operaciones, estados, líneas de vida y mensajes están contenidos en otros elementos y

no aparecen como contenido directo de los paquetes.

Dependencias en los paquetes

Las dependencias que se presentan entre elementos individuales, pero en un sistema de cualquier

tamaño, deben ser vistas en un nivel más alto. Las dependencias entre paquetes resumen

dependencias entre los elementos internos a ellos, es decir, las dependencias del paquete son

derivables a partir de las dependencias entre los elementos individuales.

La presencia de una dependencia entre paquetes implica que existe en un enfoque ascendente

(una declaración de existencia), o que se permite que exista más adelante en un enfoque

Analisis y Diseño II Ing. Nela Benavides Ignacio

43

descendente (una restricción que limita cualquier otra relación), por lo menos un elemento de

relación con el tipo de dependencia indicado entre elementos individuales dentro de los paquetes

correspondientes.

Las dependencias múltiples del mismo tipo entre elementos individuales se agregan a una sola

dependencia entre los paquetes que contienen los elementos. Si las dependencias entre elementos

contienen estereotipos, éste puede ser omitido en la dependencia del paquete, para dar una sola

dependencia de alto nivel.

Una clase de un paquete puede aparecer en otro paquete por la importación a través de una

relación de dependencia entre paquetes. Todas las clases no son necesariamente visibles desde el

exterior del paquete, es decir, un paquete encapsula a la vez que agrupa.

En general, un paquete no puede tener acceso al contenido de otro paquete. Los paquetes son

opacos, a menos que sean abiertos por una dependencia de acceso o de importación. La

dependencia de acceso indica que el contenido del paquete del proveedor puede aparecer en

referencias efectuadas por los elementos del paquete cliente. En general, un paquete puede ver

solamente los elementos de otros paquetes que tienen visibilidad pública. Los elementos con

visibilidad protegida pueden ser vistos únicamente por los paquetes que son descendientes del

paquete contenedor de dichos elementos. Los elementos con visibilidad privada sólo son vistos

por su paquete contenedor y anidados. La visibilidad también se aplica a las clases. El permiso

de acceso y visibilidad son necesarios para hacer referencia a un elemento.

La dependencia de acceso no modifica el espacio de nombres del cliente no crea las referencias

automáticamente, simplemente concede permiso para establecer referencias. La dependencia de

importación se utiliza para agregar nombres al espacio de nombres del paquete del cliente como

sinónimos de los caminos completos.

Los paquetes se dibujan como rectángulos con pestañas (similar al icono "carpeta"), las

dependencias se muestran como flechas con líneas discontinuas. El operador "::" permite

designar una clase definida en un contexto distinto del actual.

Analisis y Diseño II Ing. Nela Benavides Ignacio

44

Analisis y Diseño II Ing. Nela Benavides Ignacio

45

Analisis y Diseño II Ing. Nela Benavides Ignacio

46

Analisis y Diseño II Ing. Nela Benavides Ignacio

47

LECTURAS COMPLEMENTARIAS

1.- Tipos y usos de los Sistemas de Información.

a) Sistemas de procesamiento de transacciones (sistemas transaccionales). Su función

primordial en procesar transacciones a nivel operativo, tales como: pagos, cobros,

pólizas, entradas, salidas, etc.

Ejemplos: Sistema de facturación, sistemas de nóminas, cuentas por cobrar,

contabilidad general, control de inventarios, registro e inscripciones, etc.

b) Sistemas de Soporte a la Toma de decisiones. Son aquellos sistemas que generan

información para la toma de decisiones en los dos niveles superiores de una empresa,

suelen introducirse después de haber implantado un sistema transaccional. Ejemplos:

Sistemas para la compra de materiales, flujo de fondos, proyecciones financieras, modelos

de inventarios, etc. Dentro de estos sistemas están:

Sistemas para la toma de decisiones de grupo

Sistemas expertos de soporte a la toma de decisiones

Sistemas de información para ejecutivos

Sistemas de información administrativos

c) Sistemas estratégicos. Los cuales se desarrollan en las organizaciones con el fin de lograr

ventajas competitivas a través del uso de la tecnología de información. Ejemplo: Sistemas

de planificación de recursos, cajeros automáticos.

Ejemplos:

1.- Sistema de Información de control de personal

Objetivo: Llevar un control automatizado de todos los empleados de un empresa

Actividades:

Captura de datos de un empleado

Crear políticas de créditos de pago y categorías

Cálculos de sueldos

Recepción de facturas

Registro de horas trabajadas, extras, atrasos, etc

Calculo de antigüedad

Reportes de pagos

2.- Sistema de Información contable

Objetivo: proporcionar información acerca de todas las actividades contables de una

empresa

Actividades:

Generar Reportes

Plan de cuentas

Libro diario

Libro Mayor

Facturación

Analisis y Diseño II Ing. Nela Benavides Ignacio

48

PRINCIPALES HERRAMIENTAS Y TECNOLOGIAS

Case Computer-Aided Software Engineering

(Ingeniería del Software Asistido por Computadora)

Las herramientas Case. Software que se utiliza en una o cualquiera de la fases de desarrollo de sistemas de información, incluyendo análisis, diseño y programación. Por ejemplo las herramientas de diagramación ayudan en las fases de análisis y diseño mientras que los generadores de aplicaciones aceleran la fase de programación.

Las herramientas CASE proporcionan métodos automáticos para diseñar y documentar las técnicas tradicionales de Programación Orientada a Objetos.

La meta es proveer un lenguaje para describir un sistema complejo, que sea suficiente para generar todos los programas necesarios.

I-Case Integrate Case

(Cases Integrados)

Un I-Case se refiere a un conjunto de herramientas Case que soportan todas las fases del ciclo de vida incluyendo la generación de código, con un repositorio único y consistente.

Programación Visual

La programación Visual es una forma de case que expresa el diseño de programa con gráfico, color y posiblemente sonido. Los objetos se representan en forma visual y pueden ser concebidos como si fueran máquinas físicas que pasan de un estado a otro.

La programación visual permite a los desarrolladores, ingresar, comprender "pensar con", ejecutar y manipular programas, usando fundamentalmente notaciones gráficas.

Analisis y Diseño II Ing. Nela Benavides Ignacio

49

Máquina de Inferencia

Es un software que hace de hechos y reglas usando técnicas de inferencia lógica. Una máquina de inferencia opera con una colección de reglas acerca de un área del conocimiento. Selecciona las reglas y el encadenamiento hacia adelante (razonamiento orientado a ingreso input), el encadenamiento hacia atrás (razonamiento orientado a metas) o ambos permite a las computadoras hacer deducciones complejas sin un programa de aplicación. Es una técnica principal usada en Inteligencia Artificial.

Generadores de Código

Siempre que sea posible, los programadores deben ser generados automáticamente a partir de diseños de alto nivel, especificaciones o

imágenes en una pantalla de un CASE, El código puede generarse a partir de las tablas de decisión, reglas diagramas de acción, diagramas de eventos, diagramas de transición de estado, representaciones de objetos y sus propiedades y relaciones, etc. Los generadores de código producen códigos libres de errores de sintaxis a partir de diseños de alto nivel, cuadro o especificaciones.

Base de Datos Orientado a Objetos

Una base de datos orientada a objetos es una base de datos inteligente. Soporta los paradigmas orientados a objetos, almacenamientos de métodos y datos, más que simplemente datos. Esta diseñada para ser físicamente eficiente en el almacenamiento de datos complejos. Un repositorio en un base de datos orientada a objetos (aún cuando las herramientas CASE no soporten análisis, diseño y programación orientada a objeto).

Tecnología Cliente/Servidor

Es un software que ejecuta en múltiples computadoras tales como sistemas servidoras LAN, sistemas cooperativos, procesamiento distribuido y computadoras en paralelo. La tecnología cliente/servidor puede describirse como sigue: Un cliente es un módulo de software que solicita una operación. Un servidor es un módulo de software que atiende el requerimiento, cliente/servidor y puede ejecutarse en máquinas separadas dispuestas en casi cualquier configuración.

Lenguajes no Procedurales

Con los Lenguajes Procedurales (tal como Cobol o C), nosotros instruimos al computador cómo debe ejecutar una secuencia de operaciones. Con los Lenguajes No-Procedurales, definimos los resultados requeridos. Un interprete o compilador genera el código.

Analisis y Diseño II Ing. Nela Benavides Ignacio

50

BIBLIOGRAFIA

OBRA AUTOR LUGAR de EDIC EDITORIAL AñO

Análisis y Diseño de SIstemas

James Seen Mexico Limusa 1983

Analisis y Diseño de Sistemas

Kendall & Kendall España Prentice Hall

1998

Ingenieria del Software

Roger Pressman

UML gota a gota Fewler

Direcciones de internet:

www.monografias.com

www.programaciónfacil.com

www.rational.com

www.rincondelprogramador

GLOSARIO TECNICO

CASE – Ingeniería de Software asistido por Computadora

Clase – Conjunto de objetos

UML – Lenguaje Unificado de modelación

Reutilización – volver a utilizar ciertos módulos, procedimientos, funciones

Polimorfismo – varias formas de comportamiento que tienen los objetos

Encapsulamiento – ocultamiento de la información

Estereotipo – etiqueta o marca que se utilizan en la relación de clases

Metodo – Conjunto de pasos para lograr una determinada actividad

Tecnología – Conjunto de técnicas

Paradigma – Forma de pensar o conceptualizar una cosa.