Beruflich Dokumente
Kultur Dokumente
Objetivos Específicos
INICTEL-UNI 1 Módulo 1
Desarrollo de Aplicaciones I
Objetivo General
Objetivos Específicos
INICTEL-UNI 2 Módulo 1
Desarrollo de Aplicaciones I
Introducción
Nuestro camino comenzará seleccionando la metodología que utilizaremos para modelar, visualizar y
documentar cada una de las partes que comprende el desarrollo de nuestra aplicación..
INICTEL-UNI 3 Módulo 1
Desarrollo de Aplicaciones I
Sumario
INICTEL-UNI 4 Módulo 1
Desarrollo de Aplicaciones I
1.1.1 Introducción
Si se quiere que el sistema sea robusto y mantenible es necesario que el problema sea analizado y la
solución sea cuidadosamente diseñada. Se debe seguir un proceso robusto, que incluya las
actividades principales. Si se sigue un proceso de desarrollo que se ocupa de plantear cómo se
realiza el análisis y el diseño, y cómo se relacionan los productos de ambos, entonces la construcción
de sistemas software va a poder ser planificable y repetible, y la probabilidad de obtener un sistema
de mejor calidad al final del proceso aumenta considerablemente, especialmente cuando se trata de
un equipo de desarrollo formado por varias personas.
Una estadística muy importante nos dice que en un proyecto de desarrollo de software sólo el 15% es
codificación, entonces debemos pensar que todo se basa en planificar.
INICTEL-UNI 5 Módulo 1
Desarrollo de Aplicaciones I
Estructura Empresa
En todo desarrollo de software se tiene que entender cual es el rol del profesional informático frente a
la empresa, la Figura Nº 3 muestra la estructura clásica de cualquier empresa, lo importante no sólo
es entender el comportamiento de la misma sino definir en este punto un problema muy común en la
mayoría de entornos empresariales; el problema es originado cuando sólo se empiezan a realizar
aplicaciones de carácter Operativo y se deja de lado a la Alta Dirección, es decir se hacen sistema de
Facturación, Inventarios logrando de esta forma aliviar el trabajo a los dos últimos niveles de la
Pirámide (Sistema de Transacciones y Dirección Operativa) pero no se hace llegar ninguna
información a la Alta Dirección o quizá si se envía, sea esta la misma que ofrece el aplicativo a los
niveles antes mencionados; esta información no sirve ya que no está resumida. Un tema importante
a la hora de desarrollar software es no olvidarse que estos están en íntima relación con la
planificación de la empresa, específicamente con el Plan estratégico que da los lineamientos
generales para la meta anual. El siguiente grafico muestra la relación existente entre los distintos
planes que son desarrollados a nivel empresarial, así también se puede ver la parte de competencia
de cada uno.
Planificación
INICTEL-UNI 6 Módulo 1
Desarrollo de Aplicaciones I
Al momento de definir la arquitectura final del software es necesario tener en consideración los
diferentes planes definidos a nivel de la parte más alta de la pirámide empresarial, es decir la plana
Directiva. Para esto se define un Plan estratégico que describe a nivel macro el rumbo que tomará la
empresa o institución, luego se establece un marco táctico para crear los posibles escenarios a los
cuales se podría llegar, por último las áreas involucradas establecen un Plan Operativo que realiza la
matriz o plano de los que se desea, estableciendo objetivos, metas, indicadores, entre otros.
A nivel informático es el Plan Operativo el que describe todas las actividades que serán desarrolladas
a lo largo de un periodo determinado. No debemos olvidar que éstas están en función del Plan
Estratégico, por ejemplo si en el plan estratégico se decide no realizar gastos en tecnologías de
información para el presente periodo, entonces en nuestro plan Operativo deberíamos definir la
forma en que trabajaremos sin ningún tipo de recurso adicional, es decir como nos mantenemos sin
comprar nada adicional a lo que ya tenemos.
1.2 Metodologías
INICTEL-UNI 7 Módulo 1
Desarrollo de Aplicaciones I
Es una forma de enfocar la tarea de desarrollo y programación; toma las mejores ideas del diseño
estructurándolo y combinándolo con nuevos y poderosos conceptos; que permiten descomponer
fácilmente un problema en subgrupos de partes relacionadas. Cada uno de estos subgrupos se
puede traducir en un objeto que tendrá un comportamiento propio.
Orientarnos a modelar objetos, permite una representación más directa del mundo real, reduciendo
fuertemente la transformación radical; los objetos son entidades que podemos entender y relacionar
fácilmente como personas, empresas, documentos, libros, etc. Cada objeto por lo tanto tendrá sus
propias características (información y comportamiento) y también similitudes con otros objetos. Entre
objetos además pueden interactuar enviándose mensajes. Los objetos también los podemos
organizar utilizando jerarquías que nos permitan establecer estas diferencias y similitudes
En sus inicios la metodología Orientada a Objetos se aplicó en programación (POO) pero sus buenos
resultados han hecho que ahora sea aplique el análisis y diseño de sistemas de software.
INICTEL-UNI 8 Módulo 1
Desarrollo de Aplicaciones I
El primer lenguaje que introdujo los conceptos de orientación a objetos fue SIMULA 67 creado en
Noruega, por un grupo de investigadores dirigido por O. J. Dahl y K. Nygaard, con el fin de realizar
simulaciones discretas de sistemas reales. En estos tiempos no existían lenguajes de programación
que se ajustarán a sus necesidades, así que se basaron en el lenguaje ALGOL 60 y lo extendieron
con conceptos de objetos, clases, herencia, el polimorfismo por inclusión (que se obtiene
introduciendo la herencia de clases) y procedimientos virtuales. Estos últimos permiten la sobrecarga
de procedimientos, de tal forma que para un sólo procedimiento se pueden tener varias
implementaciones, dependiendo del nivel de jerarquía de la herencia de clases en el cual está
definido un procedimiento. El lenguaje fue utilizado sobre todo en Europa y no tuvo mucho impacto
comercial, sin embargo los conceptos que se definieron en él, se volvieron sumamente importantes
para el futuro del desarrollo de software.
Alrededor de los años 70´s fue desarrollado el lenguaje de programación OO llamado SMALLTALK
en los laboratorios Xerox en Palo Alto, EE.UU. Este lenguaje adoptó los conceptos nombrados
anteriormente como su fundamento. El hecho de ser creado en EE.UU., ayudó a que se introdujera a
nivel mundial el término de Orientación a Objetos (Object Oriented) y que cobrara importancia entre
los diseñadores de lenguajes de programación. Los puntos importantes de este lenguaje fueron, por
un lado, adoptar el concepto de objeto y clase como núcleo del lenguaje y la programación
interactiva,
incorporando las ideas ya conocidas de lenguajes funcionales. Es decir que se tuviese un lenguaje
interpretado y no compilado.
En 1995 apareció JAVA, el más reciente lenguaje OO, desarrollado por SUN, que hereda conceptos
de C++, pero los simplifica y evita la herencia múltiple. A cambio se introduce el término de interfaz y
la herencia múltiple de interfaces. Obtiene una rápida aceptación gracias a los applets, que son unos
programas en JAVA insertado en páginas WEB dentro del código HTML. Estos programas pueden
INICTEL-UNI 9 Módulo 1
Desarrollo de Aplicaciones I
viajar a través de la Internet y brindarle al usuario mayor interactividad con las páginas WEB. JAVA
introduce también, la programación concurrente y distribuida. El lenguaje es mitad compilado y mitad
interpretado dando como resultado la portabilidad a distintas plataformas. JAVA aún sigue
evolucionando y se espera que en los próximos años logre la madurez adecuada para volverse un
lenguaje de desarrollo de mayor importancia.
Cuando modelamos utilizando objetos, dividimos los sistemas en unidades (objetos) que nos
permitan representar información y comportamientos que interactúan entre si, dándonos una visión
detallada del funcionamiento esperado de dicho sistema.
a. Definición de Objeto:
Empecemos entendiendo que es un objeto del mundo real. Un objeto del mundo real es
cualquier cosa que vemos a nuestro alrededor. Un automóvil, un avión, un monitor de
computadora, una impresora, una factura, un libro.
En términos de programación, un objeto es una abstracción conceptual del mundo real que se
puede traducir a un lenguaje programación. De esta manera los objetos pueden ser reales o
abstractos, por ejemplo: una persona, un documento, una pantalla de usuario, etc.
Estos objetos de software al igual que los objetos del mundo real, también tienen
características y comportamientos. Un objeto de software mantiene sus características en una
o más "variables", e implementa su comportamiento con "métodos". Un método es una
función o subrutina asociada a un objeto.
INICTEL-UNI 10 Módulo 1
Desarrollo de Aplicaciones I
AUTOMOVIL OBJETO
método arrancar()
método retroceder()
Entre las características del objeto cabe destacar que un objeto puede distinguirse de otros,
esto se conoce como identidad y para esto posee un identificador OID (Object Identifier) que
debe cumplir:
• 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.
• No cambia durante toda la vida del objeto. Además, un OID no se reutiliza aunque
el objeto deje de existir.
El comportamiento del objeto está representado por una serie de operaciones, funciones o
métodos que modifican o no el estado del objeto, haciendo que ocurra un cambio de estado
en el mismo, el cual representa el comportamiento visible del objeto en la realidad. El estado
y el comportamiento de un objeto están relacionados.
Ejemplo: no es posible frenar un automóvil si este no ha arrancado primero.
b. Definición de Clase:
La clase es un modelo o prototipo que define las variables y métodos comunes a todos los
objetos de cierta clase. También se puede decir que una clase es una plantilla genérica para
INICTEL-UNI 11 Módulo 1
Desarrollo de Aplicaciones I
un conjunto de objetos de similares características. Por otro lado, una instancia de una clase
es otra forma de llamar a un objeto. En realidad no existe diferencia entre un objeto y una
instancia. Sólo que el objeto es un término más general, pero los objetos y las instancias son
ambas representación de una clase.
En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo,
nuestro teléfono celular es sólo uno de los miles que hay en el mundo. Si hablamos en
términos de la programación orientada a objetos, podemos decir que nuestro objeto celular es
una instancia de una clase conocida como "celular". Los celulares tienen características
(marca, modelo, sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y recibir
llamadas, enviar mensajes multimedia, transmisión de datos, etc.).
Clase: CELULAR
CELULAR
Objeto: Mi_Celular
Var Marca = string()
método llamar()
método colgar()
c. Definición de Herencia:
La herencia es uno de los conceptos más cruciales en la POO. La herencia básicamente
consiste en que una clase puede heredar sus variables y métodos a varias subclases (la
clase que hereda es llamada superclase o clase padre). Esto significa que una subclase,
aparte de los atributos y métodos propios, tiene incorporados los atributos y métodos
heredados de la superclase. De esta manera se crea una jerarquía de herencia.
Por ejemplo, imaginemos que estamos haciendo el análisis de un Sistema para una tienda
que vende y repara equipos celulares.
INICTEL-UNI 12 Módulo 1
Desarrollo de Aplicaciones I
CELULAR
Marca = string()
Modelo = string()
método llamar()
método colgar()
CELULAR CELULAR
NUEVO MALOGRADO
Estructuralmente, un mensaje consta de tres partes: la identidad del objeto receptor, el método
ejecución se ha solicitado y cualquier otra información adicional que el receptor pueda necesitar
para ejecutar el método requerido. Esta información suele darse en forma de parámetros.
a. Abstracción
La abstracción consiste en captar las características esenciales de un objeto, así como su
comportamiento. Por ejemplo, volvamos al ejemplo de los automóviles, ¿Qué características
podemos abstraer de los automóviles? O lo que es lo mismo ¿Qué características semejantes
tienen todos los automóviles? Todos tendrán una marca, un modelo, número de chasis, peso,
llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automóviles
podrán acelerar, frenar, retroceder, etc.
INICTEL-UNI 13 Módulo 1
Desarrollo de Aplicaciones I
// métodos
}
b. Encapsulamiento
El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto
es, las variables y métodos. Es tener todo esto es una sola entidad. En los lenguajes
estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la
abstracción y el ocultamiento que veremos a continuación.
c. Ocultamiento
Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer
sólo los detalles que sean necesarios para el resto del sistema.
Para el desarrollo de software orientado a objetos no basta usar un lenguaje orientado a objetos.
También se necesitará realizar un análisis y diseño orientado a objetos.
El modelamiento visual es la clave para realizar el análisis OO. Desde los inicios del desarrollo de
software OO han existido diferentes metodologías para hacer esto del modelamiento, pero sin lugar a
duda, el Lenguaje de Modelamiento Unificado (UML) puso fin a la guerra de metodologías.
UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los
elementos que forman un sistema software orientado a objetos. UML entrega una forma de modelar
cosas conceptuales como lo son procesos de negocio y funciones de sistema, además de cosas
INICTEL-UNI 14 Módulo 1
Desarrollo de Aplicaciones I
concretas como lo son escribir clases en un lenguaje determinado, esquemas de base de datos y
componentes de software reusables.
El lenguaje de modelado es la parte más importante del método, es la clave para la comunicación;
para poder analizar un diseño se necesita comprender el lenguaje de modelado; no el proceso que se
siguió para lograr el diseño.
• Desplegar los límites de un sistema, sus principales funciones mediante casos de uso y
actores.
• Representar la estructura estática de un sistema usando diagramas de clases.
INICTEL-UNI 15 Módulo 1
Desarrollo de Aplicaciones I
• Debe ser un lenguaje universal, como cualquier lenguaje de modelado de propósito general,
que pueden usar todos los modeladores. No tiene propietario y está basado en el común
acuerdo de gran parte de la comunidad informática.
• Ser tan simple como sea posible pero manteniendo la capacidad de modelar toda la gama de
sistemas que se necesita construir. UML necesita ser lo suficientemente expresivo para
manejar todos los conceptos que se originan en un sistema moderno, tales como la
concurrencia y distribución, así como también los mecanismos de la ingeniería de software,
como son la encapsulación y componentes.
• Establecer un acoplamiento explícito entre los modelos conceptuales como los de
implementación.
• Modelar Sistemas (y no sólo software) utilizando conceptos Orientado a Objetos.
• Resolver los problemas de sistemas complejos.
UML es un lenguaje para modelamiento de propósito general evolutivo, ampliamente aplicable, dable
de ser soportado por herramientas e industrialmente estandarizado. Se aplica a una multitud de
diferentes tipos de sistemas, dominios y métodos o procesos.
INICTEL-UNI 16 Módulo 1
Desarrollo de Aplicaciones I
Los diagramas se utilizan para dar diferentes perspectivas del problema según lo que nos interese
representar en un determinado momento, vale decir que en algunos casos no es necesario
representar los nueve diagramas.
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. El diagrama de uso es
muy útil para definir como debería ser el comportamiento de una parte del sistema, ya que sólo
especifica como deben comportarse y no como están implementadas las partes que define.
Representa los distintos requerimientos que le hacen los usuarios al sistema, especificando las
características de funcionalidad y comportamiento durante su interacción con los usuarios u otros
sistemas.
Un caso Diagrama de Casos de Uso puede existir tanto a nivel del Modelo de Negocio como en el
nivel de Modelo de Construcción del Software. A nivel de Negocio muestra el Caso de Uso de
Negocio relacionado con los actores internos y externos de negocio. A nivel de Sistema muestra la
funcionalidad total del Sistema Software que se construye. El Diagrama de Casos de Uso a nivel de
INICTEL-UNI 17 Módulo 1
Desarrollo de Aplicaciones I
Sistema permite definir los privilegios del Sistema por actor, teniendo en cuenta aspectos de auditoria
al considerar el módulo de IDENTIFICACIÓN, como obligatorio.
Actor
Actualizar Elaborar <<use>> Elaborar
carga Informe de Planificación
Administrativa Actividades de Actividad
Los elementos que pueden aparecer en un Diagrama de Casos de Uso son: actores, casos de uso y
relaciones entre casos de uso.
a) Actores.- Un actor es algo con comportamiento, como una persona identificada por un rol
(comprador, vendedor, cobrador, etc.), un sistema informatizado u organización, y que realiza
algún tipo de interacción con el sistema. Se representa mediante una figura humana dibujada
con palotes. Esta representación sirve tanto para actores que son personas como para otro
tipo de actores.
Representación de un actor
Cada usuario puede acceder al sistema asumiendo el rol de diferentes actores. Un actor tiene
un único rol para cada Caso de Uso que se comunica con él.
La palabra rol especifica que un Actor no necesariamente representa a una persona en
particular, sino más bien la labor que realiza frente al sistema.
INICTEL-UNI 18 Módulo 1
Desarrollo de Aplicaciones I
Los procesos se describen dentro del caso de uso por una descripción textual o una
secuencia de pasos ejecutados. Un caso de uso es justamente una forma de representar
como un actor usa nuestro sistema.
c) Relaciones entre Casos de Uso.- Un caso de uso, en principio, debería describir una tarea
que tiene un sentido completo para el usuario. Sin embargo, hay ocasiones en las que es útil
describir una interacción con un alcance menor como caso de uso. La razón para utilizar
estos casos de uso no completos en algunos casos, es mejorar la comunicación en el equipo
de desarrollo, el manejo de la documentación de casos de uso. Para el caso de que
queramos utilizar estos casos de uso más pequeños, las relaciones entre estos y los casos
de uso ordinarios pueden ser de los siguientes tres tipos:
• Incluye (include): Un caso de uso base incorpora explícitamente a otro caso de uso en
un lugar especificado en dicho caso base. Se suele utilizar para encapsular un
comportamiento parcial común a varios casos de uso.
<<include>>
Hacer una cita Identificarse
Paciente
El caso de uso Hacer una Cita puede incluir el comportamiento del caso de uso
Identificarse.
INICTEL-UNI 19 Módulo 1
Desarrollo de Aplicaciones I
<<extends>>
Pagar con tarjeta Pagar
Cliente
• Uso (uses): Cuando un caso de uso hace uso de otro caso de uso para realizar una
tarea.
<<uses>>
Pagar con tarjeta Imprimir Voucher
Cliente
El caso de uso Pagar con tarjeta Usa el caso de uso imprimir Voucher.
Muestran un conjunto de clases, así como sus relaciones. Son los más comunes en el modelado de
sistemas orientados a objetos.
a) Clase
La clase se representa con un rectángulo dividido en tres compartimentos ( Ver Figura 20):
<Nombre Clase>
<Atributos>
<Operaciones
o Metodos>
INICTEL-UNI 20 Módulo 1
Desarrollo de Aplicaciones I
El primero indica el nombre de la clase, que nos da una idea de lo que representa y no lo
que ella hace.
El segundo contiene los atributos expresados con su nombre, que representa alguna
propiedad de los objetos que estamos modelando y que son compartidos por todos los
objetos de una clase; muestran su visibilidad, multiplicidad, tipo de dato, valor inicial, etc.
El tercero indica sus operaciones expresadas con el nombre de la operación, que pueden
realizar los objetos de una clase, mostrando su visibilidad, nombre, lista de parámetros, tipo
de dato retornado, valores por defecto y el alcance de las operaciones. El conjunto de
operaciones describen el comportamiento de los objetos de una clase; como una clase
interactúa con su entorno.
• Dependencia: Es una relación de uso, es decir una clase usa a otra, que la necesita para
su cometido. Se representa con una flecha que va desde la clase utilizadora a la clase
utilizada. Con la dependencia mostramos que un cambio en la clase utilizada puede
afectar al funcionamiento de la clase utilizadora, pero no al contrario.
Producto
descripcion Presentacion
descripcionBreve 0..* tiene 1 descripcion
fechaRegistro
descripcionBreve
cantidad
simbolo
fechaUsuario
horaUsuario
• Herencia: Es una relación entre dos clases en donde una de ellas, llamada subclase o
clase hija (subclase o child), hereda los atributos y el comportamiento de otra, llamada
superclase o clase padre (superclase o parent).
INICTEL-UNI 21 Módulo 1
Desarrollo de Aplicaciones I
P e rs o n a N a tu r a l
a p e llid o P a t e rn o
a p e llid o M a t e rn o
n o m b re
n o m b re B re ve
fe c h a U s u a r i o
h o ra U s u a rio
E m p le a d o R e p re s e n ta n te C lie n t e
fe c h a N a c i m i e n t o fe c h a U s u a r i o
fe c h a U s u a r i o h o ra U s u a rio
h o ra U s u a rio
U s u a rio
n o m b re
n u m e ro E s t a c io n
n ive lA c c e s o
s u b N ive lA c c e s o
n u m e ro A c c e s o s
Esquema de Herencia
Produc to
Persona descripcion
compra por factura descripcionBreve
fechaRegistro 0.. * 0..*
fechaRegis tro
fechaUsuario
cantidad
horaUsuario
fechaUsuario
horaUs uario
Asociación binaria
- Asociación ternaria: Los atributos de enlace o clases asociativas nacen para romper
relaciones con multiplicidades de muchos a muchos, este tipo de relación se conoce
como relación ternaria.
INICTEL-UNI 22 Módulo 1
Desarrollo de Aplicaciones I
P roduc to
des c ripc ion P ers ona
des c ripc ionB reve
c ompr a por fac t ura fec haRegis tro
fec haRegis tro
fec haUs uario
c antidad 0..* 0..* horaUs uario
fec haUs uario
horaUs uario
F ac tura
num eroItem F ac tura
unidadM edida
prec ioUnitario
c antidad
des c uento
DeptoG
nom bre
nom breB reve
1..*
Provincia
nom bre
nom breB reve
• Nombre: Toda relación debe llevar un nombre la cual consta de una cadena de caracteres
que sirve para identificar a la relación.
• Multiplicidad: Indican cuantos elementos de una clase se conectan con la otra clase. Se
escriben en cada extremo de la relación y estas pueden ser:
- uno o muchos: 1..* (1..n)
- 0 o muchos: 0..* (0..n)
INICTEL-UNI 23 Módulo 1
Desarrollo de Aplicaciones I
Muestra un conjunto de objetos (instancias de las clases) y sus relaciones. Modelan las instancias de
elementos contendidos en los diagramas de clases, es decir las ocurrencias de cada elemento que
constituye una clase, a cada uno de estos elementos se les llama objetos. Son como fotos
instantáneas de los diagramas de clases.
Diagramas de objetos
Abstracciones más generales
Vehículo
INICTEL-UNI 24 Módulo 1
Desarrollo de Aplicaciones I
Diagrama de secuencia
:USUARIO :USUARIO :TOTAL_D
AUTORIZADO AUTORIZADO
ACTUALIZAR
DEPOSITO F.T.
OK ACTUALIZAR
TOTAL_D
OK
ACTUALIZAR ACTUALIZAR
DEPOSITO F.T. TOTAL_D
OK OK
Objetos: Un objeto se representa con un rectángulo, que contiene el nombre y la clase del objeto en
un formato nombreObjeto: nombreClase.
b) Mensaje: El envió de mensajes entre objetos se representa mediante una línea sólida dirigida
con cabeza de flecha abierta, desde el objeto emisor del mensaje hacia el objeto receptor.
INICTEL-UNI 25 Módulo 1
Desarrollo de Aplicaciones I
Envío de mensaje
Un Diagrama de Colaboración muestra una interacción organizada basándose en los objetos que
toman parte en la interacción y los enlaces entre los mismos (en cuanto a la interacción se refiere). A
INICTEL-UNI 26 Módulo 1
Desarrollo de Aplicaciones I
diferencia de los Diagramas de Secuencia, los Diagramas de Colaboración muestran las relaciones
entre los roles de los objetos. La secuencia de los mensajes y los flujos de ejecución concurrentes
deben determinarse explícitamente mediante números de secuencia. Los diagramas de colaboración
permiten mostrar mejor como se vinculan los objetos, a cambio de hacer más difícil observar el orden
de ejecución, pues enumeran los mensajes en lugar de mostrar al tiempo como una dimensión, tal
como lo hacen los diagramas de secuencia.
Diagramas de colaboración
1: Solicita acceso al Sistema
: Usuario
: Administrador : Interfaz de Identificación
2: Verificar datos de
acceso(usuario y
password) 4: Guardar (usuario y
password)
5: Crear Ventana Principal
3: buscar conexión a red
a) Objeto: Se representa con un rectángulo, que contiene el nombre y la clase del objeto en un
formato nombreObjeto: nombreClase.
INICTEL-UNI 27 Módulo 1
Desarrollo de Aplicaciones I
Un Diagrama de Estados muestra la secuencia de estados por los que pasa bien un caso de uso,
bien un objeto a lo largo de su vida, o bien todo el sistema. En él se indican qué eventos hacen que
se pase de un estado a otro y cuáles son las respuestas y acciones que genera. En cuanto a la
representación, un diagrama de estados es un grafico cuyos nodos son estados y cuyos arcos
dirigidos son transiciones etiquetadas con los nombres de los eventos. Capturan los cambios de
estado que sufren los objetos en respuesta a eventos. Los diagramas de clases y de objetos
correspondientes, sólo muestran los aspectos estáticos pero no muestran como son afectados los
objetos cuando ocurre algo. Sin embargo, estos comportamientos tienen que implementarse
mediante software y representarlos en algún sitio, asegura que los desarrolladores no adivinen el
comportamiento y produzcan software que satisfaga los requerimientos.
INICTEL-UNI 28 Módulo 1
Desarrollo de Aplicaciones I
Diagramas de Estados
Persona
Usuario
Todo objeto mantiene un estado durante algún tiempo, esperando a que ocurra algún evento que
produzca una transición de un estado a otro.
a) Estado: Queda definido por ciertas características que un objeto mantiene en un periodo de
tiempo, en el cual el objeto puede recibir cierto tipo de estímulo como alguna condición,
operación u evento. Se representa mediante un rectángulo con los bordes redondeados, que
puede tener tres comportamientos: uno par el nombre del estado, otro para las variables de
estado (que son los valores característicos de los atributos del objeto en ese estado) y otro
para las acciones.
P e rs o n a
N a t u ra l
INICTEL-UNI 29 Módulo 1
Desarrollo de Aplicaciones I
c) Estado final: Define el final de un estado. Se representa mediante un círculo relleno rodeado
por una circunferencia.
d) Transición: Define el paso de una transición a otra. Una transición es una relación entre dos
estados que indica que un objeto en el primer estado puede o no entrar al segundo estado y
ejecutar ciertas operaciones, cuando un evento ocurre y si ciertas condiciones son
satisfechas.
e) Transición hacia el mismo: Define una transición ocurrida en un mismo objeto. Es una
transición que permanece en el mismo estado, en vez de involucrar dos estados distintos.
Representa un evento que no causa cambio de estado. Se denota como una cadena
adicional en el compartimiento de acciones del estado.
Muestra la realización de operaciones para conseguir un objetivo. Presentan una visión simplificada
de lo que ocurre en un proceso, mostrando los pasos que se realizan. Los diagramas de actividad,
son una extensión de los diagramas de estado. Los diagramas de estado resaltan los estados y
muestran las actividades que dan lugar a cambios de estado, mientras que los diagramas de
actividad, resaltan justamente las actividades.
En el modelado de una operación, utilizando los diagramas de actividad como diagramas de flujo para
mostrar detalles de un algoritmo, haciendo amplio uso de las condiciones y modelado de procesos
concurrentes
INICTEL-UNI 30 Módulo 1
Desarrollo de Aplicaciones I
Diagrama de Actividades
Administrador de Compras Asistente del Administrador de Compras
Diagrama de Actividades:
Generar Recibo de Pago
Consultar cantidad de
deuda de AGUESMA
Genera Recibo
de Pago
Verificar la existencia de activos
para realizar la compra
si existe
¿Existe activos para ¿Existe
realizar la compra? efectivo? si existe
no existe Entregar al Proveedor Recibo de
Pago mas cantidad en efectivo
Generar Cheque
de Pago
no existe
Entregar al Proveedor Recibo de
Pago mas Cheque de Pago
INICIO
INICTEL-UNI 31 Módulo 1
Desarrollo de Aplicaciones I
Los diagramas de componentes permiten visualizar las partes de un sistema, mostrando las diversas
formas en que pueden ensamblarse para construir ejecutables. Un diagrama de componentes
muestra las dependencias entre componentes físicos de software, tales como archivos de código
INICTEL-UNI 32 Módulo 1
Desarrollo de Aplicaciones I
Diagramas de Componentes
Reservaci
ón
LISTADO
AGENCIADE
VIAJES Actualizar
INTERFAZ
a) Componentes: Son cada una de las partes físicas y reemplazables de un sistema formados
por un conjunto de elementos lógicos como las clases y colaboraciones que proveen la
realización de un conjunto de interfaces. Se dice que es parte física en el sentido que viven
en el mundo de bites y no sólo en el mundo lógico de los esquemas conceptuales, así un
componente se encuentra en la computadora y no en la mente del analista. Se dice que es
reemplazable pues puede ser sustituido por un nuevo componente que mejore la
funcionalidad o añada alguna otra, sin que afecte a otros componentes. Esto se logra
mediante el uso de interfaces bien definidas. Así pues, los componentes no se ejecutan
solos, sino que necesitan 7de otros componentes para poder hacer que el sistema cumpla su
cometido, constituyendo una parte importante en cualquier software. Los componentes se
representan con un rectángulo que tiene en uno de sus lados dos pequeños rectángulos
sobresalientes.
Tipos de componentes:
INICTEL-UNI 33 Módulo 1
Desarrollo de Aplicaciones I
b) Interfaces: Es una colección de operaciones que son usadas para especificar un servicio
provisto por una clase o un componente. Una interfaz es el rostro que presenta al mundo un
componente o una clase con la cual interaccionan otros componentes o clases. Las interfaces
de los componentes deben ser las mismas que las de las clases que lo conforman. Sólo se
pueden efectuar operaciones de los componentes por su interfaz, además el componente
puede hacer disponible su interfaz para que otros la usen. Las interfaces se representan, en
su forma compacta, mediante un círculo con una línea que lo une al componente que la
implementa.
El diagrama de despliegue, modela la topología del hardware sobre el cual correrá nuestra aplicación
y nos indica en donde se ejecutará cada uno de nuestros componentes; muestra las relaciones físicas
entre los componentes de software y el hardware de nuestro sistema.
Los diagramas de despliegue muestran la forma en que físicamente lucirá nuestro sistema, sólo
deben mostrarse los nodos y componentes que utilizarán en su versión ejecutable. El término original
para estos diagramas es deployment diagram que en nuestro idioma ha sido traducido como
diagramas de distribución, emplazamiento, implantación o despliegue
Diagrama de despliegue
SERVIDOR
Representa la <<Base de Datos >>
visualización de
listado
los reservaciones
componentes
sobre los CLIENTE: PC
dispositivos
Agencia de Viajes
físicos.
INICTEL-UNI 34 Módulo 1
Desarrollo de Aplicaciones I
Tipos de nodos:
1.4 ArgoUML
ArgoUML es una herramienta Open Source para modelar sistemas utilizando UML
INICTEL-UNI 35 Módulo 1
Desarrollo de Aplicaciones I
http://argouml.tigris.org
ArgoUML está escrito 100% en Java, por esta razón debe funcionar en cualquier máquina con un
motor de Java. Java2, versión 1,3 o superior. Si no dispone de Java lo puede bajar libremente desde
Sun MicroSystems ( www.sun.com ). Observe que sólo necesita el ambiente runtime de Java (JRE),
no hay necesidad de descargar el kit entero del desarrollo de Java (JDK
ArgoUML necesita una cantidad razonable de recursos. Una PC con procesador 200MHz, 64Mb y
10Mb del espacio disponible en un disco.
Las tres opciones están libremente disponibles con el Web site del proyecto, argouml.tigris.org.
INICTEL-UNI 36 Módulo 1
Desarrollo de Aplicaciones I
En primer lugar crearemos un directorio donde realizaremos la descarga y la instalación del paquete
ArgoUML. Por ejemplo, vamos a crear el directorio llamado argoUML. Para descargar la última
versión conéctese a la página http://argouml.tigris.org/.
Si elegimos descargar el binario hay que asegurarnos de descargar la versión más estable que en
este momento es la version 0.18.1. Una vez realizada la descarga descomprima el ZIP dentro del
directorio creado.
• Si usa Linux desde una consola introduciendo la orden: java -jar argouml.jar
• Si usa Windows hacer doble clic en el archivo argouml.jar
Pantalla Principal
INICTEL-UNI 37 Módulo 1
Desarrollo de Aplicaciones I
a) Barras de herramientas.
b) Zona de dibujo: donde se realizan los diagramas en notación UML.
c) zona de jerarquía de objetos.
d) zona de características de objeto.
e) entre otras que no aparecen.
Desde esta barra de herramientas podremos seleccionar el diagrama de dibujo de UML que
deseamos construir. Sitúese con el cursor sobre cada icono para ver qué diagrama representa.
Algunos de ellos aparecen inicialmente desactivados. Los diagramas inicialmente activos son: el
diagrama de clases, diagrama de casos de uso y el diagrama de instalación (deployment).
Barra Herramientas
Zona de dibujo
En esta zona podremos modelar (dibujar) algo usando la notación (elementos de dibujo) del diagrama
seleccionado.
Área de Dibujo
INICTEL-UNI 38 Módulo 1
Desarrollo de Aplicaciones I
En esta zona de la pantalla se irá mostrando la jerarquía de objetos que se van creando en la zona de
dibujo.
Jerarquía Objetos
Es una zona donde podremos editar las características (visuales o no) del objeto que queremos
modelar.
Características Objetos
INICTEL-UNI 39 Módulo 1
Desarrollo de Aplicaciones I
1.5 ACTIVIDADES
INICTEL-UNI 40 Módulo 1
Desarrollo de Aplicaciones I
d) Ninguna
8. El comportamiento de un objeto esta representado por los valores de las variables que
almacena.
a) Verdadero
b) Falso
9. ArgoUML permite hacer modelamiento de base de datos
a) Verdadero
b) Falso
10. ArgoUML puede jalar diagramas de otros programas
a) Verdadero
b) Falso
1.5.2 Laboratorio
Laboratorio 1
Generando Diagrama Caso de Usos
Duración
30 minutos
Objetivos
• Diseñar aplicaciones comerciales
• Comprender el modelamiento de aplicaciones usando UML
Recursos
01 Equipo PC con Linux y ArgoUML
Proceso de Ejecución
1. En primer lugar deberíamos tener en ejecución la aplicación ArgoUML, para eso utilice el
comando java –jar argouml.java o use el acceso directo que encuentre en el escritorio de su
PC.
2. Para crear un proyecto nuevo sólo hay que seleccionar la secuencia de opciones Archivo >
Nuevo en el menú principal. Como se puede ver en la parte izquierda de la ventana, un
proyecto nuevo genera por defecto un diagrama de casos de clases y un diagrama de casos
de uso (ambos vacíos) con los nombres "Use Case Diagram 1" y "Class Diagram 1",
respectivamente.
3. El nombre por omisión para el proyecto es "untitledModel". Para cambiar un nombre de
elemento en la ventana de jerarquías (parte izquierda) se hace seleccionando el elemento y
modificando el nombre en la casilla "Nombre" de la ventana de características (ventana
INICTEL-UNI 41 Módulo 1
Desarrollo de Aplicaciones I
Laboratorio 2
Generando Diagrama de Clases
Duración
INICTEL-UNI 42 Módulo 1
Desarrollo de Aplicaciones I
30 minutos
Objetivos
• Diseñar aplicaciones comerciales
• Comprender el modelamiento de aplicaciones usando UML
Recursos
01 Equipo PC con Linux y ArgoUML
Proceso de Ejecución
1. Ahora vamos a dibujar un diagrama de clases para nuestro ejemplo, para ello y como antes,
dado que tenemos un diagrama de clases creado por defecto en el proyecto, vamos a
renombrarlo para nuestros propósitos. Vamos a darle el nombre "El Restaurante".
2. Tras modificar el nombre, pulse en la ventana de dibujo para empezar a realizar el diagrama
de clases.
3. Comience primero introduciendo las clases en el diagrama, asignándole un nombre a cada
clase en el momento que las genere. Por omisión, la sección de atributos y operaciones de
una clase se muestran vacías.
4. Como puede comprobar en el diagrama, sólo introduciremos algunas operaciones para
alguna de las clases del diagrama, para simplificar el ejercicio: Clientes, Camarero,
Cocinero, Cajero.
5. Por tanto, un cliente podrá realizar las siguientes operaciones:
o pedir un plato de comida: pedirComida()
o pedir un vaso de vino: pedirVino()
o pedir la factura: pedirFactura()
o pagar la factura: pagarFactura()
6. El camarero podrá realizar las siguientes operaciones:
o pedir comida a cocina: pedirComida()
o servir el vino al cliente: servirVino()
o servir el plato de comida al cliente: servirComida()
7. El cocinero podrá realizar las siguientes operaciones:
o cobrar la factura: cobrarFactura()
8. El orden en el que se introduzcan las operaciones dentro de una clase no influye en el
resultado final del diagrama. Introduzca las operaciones para aquellas clases indicadas.
9. Seleccione este icono para introducir nuevas operaciones en una clase. Este icono lo podrá
encontrar en la barra de herramientas de la ventana de dibujo, o en la barra de herramientas
de la ventana de características (abajo), siempre que haya seleccionado la clase.
10. Introduzca las conexiones entre clases siguiendo el modelo de la figura objetivo. Seleccione
primero el tipo de conexión que desea (en la forma explicada), luego pulse sobre la clase
origen y sin soltar el botón del ratón, arrastre el cursor sobre la clase destino con la que
INICTEL-UNI 43 Módulo 1
Desarrollo de Aplicaciones I
desea conectar, por último suelte el botón izquierdo. Puede reorganizar la forma y
orientación de las líneas y la ubicación de las clases directamente con el cursor del ratón.
11. Asigne nombres a las conexiones, tal y como se indica en la figura objetivo.
12. La cardinalidad se puede introducir situando el cursor sobre uno de los extremos de la línea
de conexión y luego pulsando el botón derecho del ratón. Luego, en la opción de
multiplicidad seleccione la cardinalidad que requiera.
Sitios Web
o http://argouml.tigris.org/ (ArgoUML)
o http://www.uml.org/ (UML)
INICTEL-UNI 44 Módulo 1