Sei sulla pagina 1di 28

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA


ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION I Ciclo II 2017
GUIA Ex - Aula: Lenguaje Unificado de Modelaje Creacin de Diagramas de Clases en C#

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.

La experiencia ha demostrado que la mejor manera de desarrollar una solucin y mantener el


orden de la misma, es a partir de la creacin de Diagramas de Modelado para generar
estndares. A continuacin, se presentarn diferentes elementos que facilitan el diseo,
implementacin y operacin de las soluciones.

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.

Parte I. Marco Terico: Introduccin a POO y a UML


Actualmente una de las reas ms candentes en la industria y en el mbito acadmico es la
orientacin a objetos. La orientacin a objetos promete mejoras de amplio alcance en la
forma de diseo, desarrollo y mantenimiento del software ofreciendo una solucin a largo
plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo
de software: la falta de portabilidad del cdigo y re-usabilidad, cdigo que es difcil de
modificar, ciclos de desarrollo largos y tcnicas de codificacin no intuitivas.
1
Un lenguaje orientado a objetos ataca estos problemas. Tiene tres caractersticas bsicas:

a) Debe estar basado en objetos


b) Debe estar basado en clases
c) Debe ser capaz de tener herencia de clases.

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.

El elemento fundamental de la POO es el Objeto. Se puede definir un objeto como un


conjunto complejo de datos y programas que poseen estructura y forman parte de una
organizacin.

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.

Formalmente, se definirn a continuacin algunos conceptos claves de la POO:

Un Objeto es un conjunto complejo de datos y programas que poseen estructura y forman


parte de una organizacin.

Un Campo es una caracterstica de un objeto, que ayuda a definir su estructura y permite


diferenciarlo de otros objetos.

Un Mtodo es la implementacin de un algoritmo que representa una operacin o funcin


que un objeto realiza.

La Modularidad se define como el proceso de crear partes de un todo que se integran


perfectamente entre s para que funcionen para lograr un objetivo general, y a las cuales se
les pueden agregar ms componentes que se acoplen perfectamente al todo, o extraerle
componentes sin afectar su funcionamiento.

En el caso que se requiera actualizar un mdulo, no hay necesidad de hacer cambios en


otras partes del todo. Un ejemplo clsico es un conjunto de mdulos que, al integrarlos
conforman un armario, el cual puede agregarle ms funcionalidad si se le agregan ms
mdulos o gavetas; o, al contrario, tambin se puede cambiar su finalidad si se reacomodan
esos mdulos para darle otro objetivo: volverlo una mesa.

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 de Software son componentes que integran o conforman el Modelo


Algortmico; pueden ser unidades de cdigo para resolver situaciones especficas, uso de
base de datos, funciones, vectores, etc.

El Modelo Mecnico consiste en el anlisis, diseo e implementacin de prototipo a escala


de un sistema fsico usando objetos concretos.

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.

Un Diagrama es una representacin grfica de un Modelo.

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.

La Reutilizacin es la principal caracterstica de la POO, la cual se logra mediante:

Encapsulacin de Informacin: ocultamiento de informacin, datos o funciones


especiales a los usuarios. En el caso de la programacin, el encapsulamiento es lo
que permite que tanto la estructura (campos) como el comportamiento (mtodos) se
encuentren dentro del mismo cuerpo de cdigo de la clase con la que se crean los
objetos.

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.

Sobreescritura ( override ): posibilidad de heredar un mtodo de un mdulo y


cambiarle el comportamiento en el heredero, con la opcin de poder usar el original, si
se desea.

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).

Es un lenguaje grfico para visualizar, especificar, construir y documentar un sistema. UML


ofrece un estndar para describir un "plano" del sistema (modelo), incluyendo aspectos
conceptuales tales como procesos de negocio, funciones del sistema, y aspectos concretos
como expresiones de lenguajes de programacin, esquemas de bases de datos y
compuestos reciclados.

Es importante remarcar que UML es un "lenguaje de modelado" para especificar o para


describir mtodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos
en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que est
descrito el modelo.

Este lenguaje de modelado NO define un proceso o metodologa a utilizar, TAMPOCO puede


compararse con la Programacin Estructurada (PE) pues UML significa Lenguaje Unificado
de Modelado, no es programacin, slo se diagrama la realidad de una utilizacin en un
requerimiento. Mientras que, PE, es una forma de programar como lo es la POO que viene
siendo un complemento perfecto de UML, pero no por eso se puede utilizar UML slo para
lenguajes orientados a objetos (LOO).

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.

En Ingeniera de Software, un Diagrama de Clases (DC) en Lenguaje Unificado de Modelado


(UML) es un tipo de diagrama de estructura esttica que describe la estructura de un sistema
mostrando las clases del sistema, sus atributos, operaciones (o mtodos), y las relaciones
entre los objetos.

Para especificar la visibilidad de un miembro de la clase (es decir, cualquier atributo o


mtodo), se coloca uno de los siguientes signos delante de ese miembro:

4
UML especifica dos tipos de mbitos para los miembros: instancias y clasificadores y estos
ltimos se representan con nombres subrayados.

Los miembros clasificadores se denotan comnmente como estticos en muchos


lenguajes de programacin. Su mbito es la propia clase.
Los valores de los atributos son los mismos en todas las instancias
La invocacin de mtodos no afecta al estado de las instancias

Los miembros instancias tienen como mbito una instancia especfica.


Los valores de los atributos pueden variar entre instancias
La invocacin de mtodos puede afectar al estado de las instancias (es decir,
cambiar el valor de sus atributos)

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.

Un Enlace es la relacin ms bsica entre objetos.

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.

A una asociacin se le puede asignar un nombre, y en sus extremos se puede hacer


indicaciones, como el rol que desempea la asociacin, los nombres de las clases
relacionadas, su multiplicidad, su visibilidad, y otras propiedades.

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.

La Agregacin es una variante de la relacin de asociacin tiene un. La agregacin es


ms especfica que la asociacin. Se trata de una asociacin que representa una relacin de
tipo parte-todo o parte-de.

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.

1. Luego de cargar la sesin en su equipo de trabajo, abrir el Explorador de Windows


2. Abrir la Carpeta: Mis documentos\Visual Studio 2015\Projects y verificar que est
ubicado dentro de Projects
3. Crear la carpeta de estudiante usando el nmero de carnet como nombre (esto es
slo para la primera sesin). Debe ir escrito en maysculas y sin guiones o espacios.
Por ejemplo: AB16777
4. Abrir la carpeta de estudiante y, dentro de ella, crear la carpeta-[#Gua] como se
muestra en el ejemplo asi para la primera prctica seria con el nombre: PRACTICAEA
5. Todo ejercicio desarrollado durante esta Prctica, debe ser guardado en la carpeta
PRACTICAEA
6. Iniciar Visual Studio 2015.
7. Una vez iniciado el Entorno, continuar con la Parte II de esta Gua.

Ejemplo 1: Realizar el Diagrama de Clases (DC) para un sistema de alquiler de pelculas

SOLUCION: En este ejemplo, se crear solamente el DC estableciendo las relaciones entre


las clases para ello se debe crear un Nuevo Proyecto -> Aplicacin de Consola.

Colocar el nombre al proyecto, seleccionar la ubicacin donde se guardar el proyecto y dar


clic en Aceptar:

6
Luego en el Explorador de Soluciones:
Clic Derecho > Aadir > Nuevo elemento (Crtl + Shift + A)

Seleccionar Diagrama de Clases:

7
Luego a dar clic en Agregar, se abrir la siguiente vista:

En el Cuadro de Herramientas, seleccionar Clase y arrastrar hacia el centro de la pantalla:

8
Escribir el nombre y dar clic en Aceptar:

Aparecer lo siguiente:

Si la ventana Detalle de Clase (Class Details) no aparece puede agregarla de la siguiente


forma: Ver-> Otras ventanas y seleccionar Detalle de la Clase luego usted puede ubicarla
segn su conveniencia en el rea de trabajo.

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:

Nombre Tipo de Dato


Codigo int
Titulo string
Actor string
Genero string
Sinopsis string

El Detalle de Clase en la seccin de propiedades se visualizar de la siguiente forma:

Despus de agregar esta clase, el rea de trabajo quedara de la siguiente manera:

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:

Luego nos podemos ubicar en la ventana Detalle de Clase en la seccin de propiedades y


colocar cada una de sus propiedades con su correspondiente tipo de datos, como se muestra
a continuacin:

11
Al finalizar, la clase Cliente contar con las siguientes propiedades:

Nombre Tipo de Dato


Dui int
Nombre string
Celular string
Direccion string

Ahora, ya podemos agregar las siguientes clases con sus respectivas propiedades al DC:

Al finalizar la creacin y colocacin en DC de todas las clases, el rea de trabajo sera:

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:

Agregando mtodos desde la ventana Detalle de Clase:

Agregar los siguientes mtodos a:

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:

Ahora, continuaremos, agregando Herencia a nuestra clases:

Esto lo podemos realizar seleccionando herencia en el cuadro de


herramientas

De esta forma seleccionamos la clase desde la cual queremos


heredar hacia la clase que heredar los propiedades, en este
caso queremos que la clase Pelicula herede propiedades y
mtodos de la clase Empleado.

Entonces seleccionaramos la clase Empleado primero y luego a


la clase Pelicula

Como se ve a continuacin:

14
1 2

Este sera el resultado de la operacin:

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:

public class Cliente:Pelicula

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.

Crear un Nuevo Proyecto, seleccionando, como el ejemplo anterior, Aplicacin de Consola:

18
Agregar Diagrama de clase a nuestro proyecto:

Luego desde el Cuadro de Herramientas, seleccionar Clase y arrastrar hacia el centro de la


pantalla (como se realiz en el ejemplo anterior). Agregar la clase Operacin

19
La clase Operacion quedar de la siguiente forma:

Luego, agregar la clase Sumar:

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:

Al finalizar de agregar las clases, el rea de trabajo quedar de la siguiente forma:

Luego, para agregar herencia, seleccionamos desde la barra de propiedades:

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):

El DC quedar como se muestra a continuacin:

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

Hacer los cambios siguientes:

24
De igual forma, suceder con la clase Restar, el cdigo generado Restar.cs, es:

Modificarlo de la siguiente forma:

25
Para continuar, con la clase Sumar, el cdigo Sumar.cs, es:

Actualizarlo de la siguiente forma:

26
Y, por ltimo, vamos a modificar el archivo Program.cs de la siguiente forma:

Al ejecutar nuestro programa, se observar de la siguiente manera:

Ahora, tomando el Ejemplo 2 como base, se le pide agregar las clases que faltan: Dividir y
Multiplicar, con sus respectivos mtodos

Parte IV. Ejercicios Propuestos


A continuacin, se presentan una serie de Ejercicios Propuestos. En este momento, el
estudiante posee los conocimientos necesarios para desarrollar estos ejercicios y le bastar
con seguir las instrucciones y procedimientos presentados en esta Gua. Debe crear una
nueva Solucin/Proyecto para cada ejercicio.

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

Potrebbero piacerti anche