Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Objetivo General:
Conocer y aplicar algunos conceptos relacionados con el Diseo de Sistemas de Software.
Objetivos Especficos:
Conocer y comprender el concepto de UML.
Aprender a crear Diagramas de Clases, DC.
Aprender a usar C# como herramienta para escribir DC.
Introduccin:
Cuando se tiene un equipo de desarrolladores y se desea llevar un estndar para la
produccin de software de una manera ordenada y, as, no desperdiciar recursos, es
aconsejable, crear Diagramas de Modelado, debido a que facilitan la tarea de programar y
permiten elaborar programas de una manera ptima, rpida y eficaz.
Esta Gua consta de cuatro partes. La primera parte trata el Marco Terico (Introduccin a
POO y a UML, incluyendo una pequea resea acerca de los Diagramas de Clases (DC); la
segunda, plantea los pasos a seguir para crear un DC en Visual Studio 2015 (VS), para, en la
tercera parte, exponer el cdigo generado y, finalmente, la cuarta parte, son los Ejercicios
Propuestos a ser desarrollados por los estudiantes de manera Ex-Aula.
Metodologa:
Esta es una Gua que se realizar de forma Ex-Aula; es decir, fuera de los Laboratorios de
Computacin de la EISI y sin supervisin de sus respectivos instructores. Se recomienda:
leer cuidadosamente la Gua de Laboratorio y, a continuacin, realizar los ejemplos para,
finalmente, resolver los ejercicios de la Parte IV. Recuerde si hay una preguntas sobre la
Gua puede asistir a las sesiones de consulta o hacer llegar sus dudas a su docente-
instructor por medio del Aula Virtual.
Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La
caracterstica ms difcil de cumplir es, usualmente, la herencia.
Dado que la POO se basa en la idea natural de la existencia de un mundo lleno de objetos y
que la resolucin del problema se realiza en trminos de objetos, un lenguaje se dice que
est basado en objetos si soporta objetos como una caracterstica fundamental del mismo.
Esta definicin, especifica varias propiedades importantes de los objetos. En primer lugar, un
objeto no es un dato simple, sino que contiene en su interior cierto nmero de componentes
bien estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma
parte de una organizacin jerrquica o de otro tipo.
Este concepto de POO se puede ver como una intuitiva correspondencia entre un software
de simulacin de un sistema fsico y el sistema fsico en s (o su modelo mecnico).
2
El Modelo Algortmico, se define como el anlisis, diseo e implementacin de un software,
usando Objetos de Software.
Los Objetos Concretos son las partes fsicas del Modelo Mecnico, no del sistema real; o
sea, los objetos planeta no son los planetas reales.
Un Modelo es una vista de un sistema del mundo real; es decir, una abstraccin de dicho
sistema considerando un cierto propsito. As, el modelo describe completamente aquellos
aspectos del sistema que son relevantes al propsito del Modelo y a un apropiado nivel de
detalle.
La Abstraccin es la propiedad del ser humano que permite distinguir a un objeto de los
dems, observando sus caractersticas y comportamientos, pensando en qu es y no en
cmo se codificara en un lenguaje. Con la abstraccin se destaca lo importante y se ignora
lo irrelevante, o sea, hay ocultamiento de informacin.
Herencia: propiedad que permite a los objetos ser construidos a partir de otros; es
recibir de un mdulo superior sus caractersticas, tales como atributos o funciones
(campos y mtodos o comportamientos), para usarlos en el mdulo actual. Heredar es
compartir atributos.
Mtodos Unidos a los Objetos: los mtodos de un objeto son inseparables y siempre
formarn parte de su cuerpo, como un todo.
3
Unicidad de los Objetos: son nicos y no se repiten, aunque sean de la misma clase.
As como se puede definir varias variables del tipo INT cada una de las cuales es
nica, se pueden crear o instanciar varios objetos de una misma clase.
El Lenguaje Unificado de Modelado (por sus siglas en ingls, Unified Modeling Language)
es el lenguaje de modelado de sistemas de software ms conocido y utilizado en la
actualidad; est respaldado por el OMG (Object Management Group).
ACLARACION: UML cuenta con varios tipos de diagramas, los cuales muestran diferentes
aspectos de las entidades representadas, pero en sta Gua slo se aprender la utilizacin
de los Diagramas de Clase.
4
UML especifica dos tipos de mbitos para los miembros: instancias y clasificadores y estos
ltimos se representan con nombres subrayados.
Para indicar que un miembro posee un mbito de clasificador, hay que subrayar su nombre.
De lo contrario, se asume por defecto que tendr mbito de instancia.
Una Asociacin representa a una familia de enlaces. Una asociacin binaria (entre dos
clases) normalmente se representa con una lnea continua. Una misma asociacin puede
relacionar cualquier nmero de clases. Una asociacin que relacione tres clases se llama
asociacin ternaria.
Hay cuatro tipos diferentes de asociacin: bidireccional, unidireccional, agregacin (en la que
se incluye la composicin) y reflexiva. Las asociaciones unidireccional y bidireccional son las
ms comunes.
Al ser un tipo de asociacin, una agregacin puede tener un nombre y las mismas
indicaciones en los extremos de la lnea. Sin embargo, una agregacin no puede incluir ms
de dos clases; debe ser una asociacin binaria.
Una agregacin se puede dar cuando una clase es una coleccin o un contenedor de otras
clases, pero a su vez, el tiempo de vida de las clases contenidas no tienen una dependencia
fuerte del tiempo de vida de la clase contenedora (de el todo).
5
Parte II. DC en Visual Studio 2015
La preparacin de carpetas es la misma que se realiz en la Gua 1, tome esta seccin como
un modelo a la hora de guardar su trabajo en su propio equipo. Para el resto de prcticas,
este procedimiento es algo que el estudiante debe hacer sin que se le pida o indique,
inmediatamente antes de iniciar el trabajo con la Gua de Laboratorio.
6
Luego en el Explorador de Soluciones:
Clic Derecho > Aadir > Nuevo elemento (Crtl + Shift + A)
7
Luego a dar clic en Agregar, se abrir la siguiente vista:
8
Escribir el nombre y dar clic en Aceptar:
Aparecer lo siguiente:
Para este ejemplo, primero comenzaremos agregando las clases y sus propiedades que
necesitaramos para nuestra solucin, luego agregaremos mtodos a las clases que lo
necesiten y por ltimo estableceremos las relaciones entre las clases.
9
La clase Pelicula contar con las siguientes propiedades:
Tambin podemos agregar nuevas clases dando clic derecho en nuestra rea de trabajo.
De esta forma crearemos la clase Cliente:
10
El rea de trabajo, quedar de la siguiente manera:
11
Al finalizar, la clase Cliente contar con las siguientes propiedades:
Ahora, ya podemos agregar las siguientes clases con sus respectivas propiedades al DC:
12
Ahora, continuaremos, agregando mtodos a las clases, para nuestro ejemplo agregaremos
un nuevo mtodo a la clase Empleado, podemos hacerlo desde la ventana Detalle de Clase
como lo hicimos con las propiedades o seleccionado la clase a la que le queremos agregar
un nuevo mtodo, dar clic derecho agregar -> mtodo, como se muestra en la imagen a
continuacin:
Clase Pelicula: Busqueda, Agregar, Modificar y Eliminar, del tipo void, por el momento.
Clase Cliente: AlquilarPelicula, EntregarPelicula, SolicitarPelicula.
Clase Alquiler: Busqueda,CancelarAlquiler, Agregar.
Clase Devolucion: Busqueda, Eliminar, Adicionar.
13
Este sera el resultado final:
Como se ve a continuacin:
14
1 2
15
Lo cual indica que la clase Pelicula ya hered las propiedades y los mtodos de la clase
Empleado.
Al crear las clases en el diagrama DC, tambin se han creado los archivos *.cs de las clases
que hemos colocado. Si damos doble clic sobre la clase Cliente nos desplegara el cdigo
que se nos ha generado a medida que hemos ido agregando las propiedades y los mtodos
como se ve a continuacin:
Tambin podemos agregar herencia agregando : despus del nombre de la clase que va a
heredar y, luego, a continuacin escribir el nombre de la clase proporcionara los mtodos y
propiedades como herencia. En este caso queremos que la clase Cliente herede
propiedades de la clase Pelicula por lo que slo se debe de modificar el cdigo sealado en
la imagen anterior como se ve a continuacin:
Esto tambin modificar nuestro diagrama DC, indicando que se ha efectuado la herencia
entre las clases:
16
Al finalizar el ejemplo, nuestro diagrama DC quedar de la siguiente manera:
Como podemos observar, se ha creado un archivo por cada clase que se ha colocado en el
DC junto con el archivo de nuestro archivo ClassDiagram1.cd donde se encuentra nuestro
Diagrama de Clase:
17
Parte III. Solucin Programada en C#
Ejemplo 2: Brindar una solucin para programar una aplicacin de calculadora sencilla.
SOLUCION: Primero se va a crear el DC, en este caso utilizaremos la clase Operacion que
heredar sus propiedades a las clases Sumar y Restar.
18
Agregar Diagrama de clase a nuestro proyecto:
19
La clase Operacion quedar de la siguiente forma:
Esta clase, slo tendr el mtodo suma ya que las dems propiedades y mtodos los
heredar de la clase Operacion.
20
Continuaremos, agregando la clase Restar a nuestro DC, con el mtodo resta como se
muestra a continuacin:
21
La herencia se coloca primero desde la clase que recibe las propiedades hacia la clase
origen o padre. En este caso, como la clase Sumar es la que heredar las propiedades y
mtodos de la clase Operacion (se debe comenzar seleccionando primero la case Sumar y
luego la clase Operacin):
22
Se debe realizar el mismo proceso con la clase Restar y Operacion:
Simultneamente, se han creado los archivos *.cs correspondientes a cada clase de nuestro DC:
23
Al hacer doble clic sobre el archivo Operacion.cs, tambin se ha generado un cdigo para
nuestra clase acorde a las propiedades y mtodos que hemos agregado a la clase pero si se
observa falta programar cada uno de los mtodos para que nuestro programa funcione
eficientemente para ello vamos a modificar un poco cada una de nuestras clases (dentro de
los archivos *.cs). A continuacin est el cdigo generado para el archivo Operacion.cs
24
De igual forma, suceder con la clase Restar, el cdigo generado Restar.cs, es:
25
Para continuar, con la clase Sumar, el cdigo Sumar.cs, es:
26
Y, por ltimo, vamos a modificar el archivo Program.cs de la siguiente forma:
Ahora, tomando el Ejemplo 2 como base, se le pide agregar las clases que faltan: Dividir y
Multiplicar, con sus respectivos mtodos
27
1. Suponer que un Vehiculo (Moto o Carro), se ha averiado y es necesario llevarlo al taller. Disear una
solucin en VS, basado en C# de cmo se llevara a cabo este proceso. Adicionalmente, considerar los
siguientes aspectos:
a) La Programacin Orientada a Objetos es una virtualizacin del Mundo Real.
b) La solucin debe ser viable tanto para una moto como para un carro.
c) El taller tiene un espacio limitado.
d) Los vehculos debern tener los mtodos que poseen en la vida realidad
2. Un banco tiene 3 clientes que pueden hacer depsitos y retiros. Tambin el banco requiere que al final del
da se calcule la cantidad de dinero que hay depositada. La Solucin tendr el siguiente esquema: Se deben
definir los atributos y los mtodos de cada clase:
Cliente Banco
atributos atributos
nombre 3 Cliente (3 objetos de la clase Cliente)
monto mtodos
mtodos constructor
constructor Operar
Depositar DepositosTotales
Retirar
RetornarMonto
3. Plantear una clase llamada Alumno y definir como atributos su nombre y su edad. En el constructor realizar
el ingreso de datos. Definir otros dos mtodos para imprimir los datos ingresados y un mensaje si es apto de
portar DUI (edad >=18).
4. Definir un vector para almacenar los nombres de 5 personas. Realizar un diseo de programa que los
ordene alfabticamente.
5. Dados los nombres de algunas gasolineras y los precios de gasolina super, regular y de diesel, disear una
solucin que imprima los precios ms bajos de cada combustible y el nombre de la gasolinera respectiva.
6. Dadas las notas (de la A a la E) y los nombres de un grupo de estudiantes, disear una solucin que
imprima la nota y la lista de nombres que tienen dicha nota. Por ejemplo, puede imprimir:
A---> Maria, Juan, Miguel
B---> Jos, Teresa, Alfredo
C---> Ana
D---> Pedro, Carlos
E---> Odilia
7. El Centro Meteorolgico Nacional necesita una solucin que le permita registrar la magnitud de los sismos
que acontecen diariamente, cada vez que hay un sismo debe de registrarse la magnitud. Al final del da se
desea imprimir la magnitud mediana de los sismos, la cantidad y porcentaje de sismos ligeros arriba de la
mediana, si los hay o indicar que no los hay.
8. Dadas las edades de un grupo de personas, disear una solucin que imprima la cantidad de nios (<18
aos), la cantidad de adultos (18 a 60 aos) y la cantidad de adultos mayores (>60 aos) e imprima las
edades ordenadas.
9. El compendio de Industrias Tu Bebida Favorita, necesita llevar el control de las bebidas envasadas en su
empresa y separarlas por tipo y precio, adems si es envase de plstico o vidrio. Al final del da se solicitar
la cantidad vendida, total y precio unitario.
28