Beruflich Dokumente
Kultur Dokumente
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.
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, de los cuales el instructor le asignar dos al grupo de estudiantes que componen
cada laboratorio.
Metodologa:
El docente instructor ingresar a los estudiantes por listado y les ir asignando una PC a
cada uno. Luego se presentar formalmente, explicar la forma de trabajo para todas las
prcticas del ciclo y luego explicar las Partes II y III de esta Gua, despus el docente
instructor indicar a los estudiantes que desarrollen dos ejercicios de la Parte IV, los cuales
debe desarrollar el estudiante durante la prctica. NOTA: Favor desalojar el Local de
Laboratorio puntualmente.
1
Parte I. Marco Terico: Introduccin a POO y a UML
Un lenguaje orientado a objetos ataca estos problemas. Tiene tres caractersticas bsicas:
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).
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.
3
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.
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
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:
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.
5
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).
En el Explorador de Soluciones
Clic Derecho > Aadir > Nuevo elemento (Crtl + Shift + A)
7
Seleccionar Diagrama de Clases:
8
En el Cuadro de Herramientas, seleccionar Interfaz y arrastrar hacia el centro de la pantalla:
9
Aparecer lo siguiente:
10
Del Cuadro de Herramientas, Luego, del mismo Cuadro de Herramientas,
seleccionar y arrastrar una clase: seleccionar Herencia:
11
Entrar en el archivo PizzaClasica.cs y agregar la palabra sealed antes de class:
La palabra clave sealed permite impedir la herencia de una clase. En este caso, PizzaClasica
es una clase sellada, sealed class. Esto es, las clases se pueden declarar como selladas si
se incluye la palabra clave sealed antes de la definicin de clase.
Una clase sellada no se puede utilizar como clase base. Por esta razn, tampoco puede ser
una clase abstracta. Las clases selladas evitan la derivacin. Puesto que nunca se pueden
utilizar como clase base, algunas optimizaciones en tiempo de ejecucin pueden hacer que
sea un poco ms rpido llamar a miembros de clases selladas.
12
Se pueden ocultar las Propiedades de la Clase Sellada PizzaClasica (dar clic a ) y
moverla de posicin:
La palabra clave abstract permite crear clases y miembros de clase que estn incompletos y
se deben implementar en una clase derivada.
No se pueden crear instancias de una clase abstracta. El propsito de una clase abstracta es
proporcionar una definicin comn de una clase base que mltiples clases derivadas pueden
compartir. Por ejemplo, una biblioteca de clases puede definir una clase abstracta que se
utiliza como parmetro para muchas de sus funciones y solicitar a los programadores que
utilizan esa biblioteca que proporcionen su propia implementacin de la clase mediante la
creacin de una clase derivada.
13
Escribir las Propiedades y Mtodos de la Clase Abstracta PizzaCapas:
Observar cmo se van agregando archivos .cs en el Explorador de Soluciones con cada una
de las clases agregadas al DC.
Agregar Herencia:
14
Escribir las propiedades de la Clase PizzaPepperoni:
15
Agregar la herencia desde la clase hija hacia la clase padre (PizzaCapas):
16
Parte III. Solucin Programada en C#
Para codificar la solucin, abrir y completar cada uno de los archivos, llevando el orden con
el que fueron creadas las clases en el DC:
17
Clase Sellada PizzaClasica, archivo PizzaClasica.cs
18
Clase PizzaPepperoni, archivo: PizzaPepperoni.cs
19
Para mostrar los resultados, se utiliza la Clase Program, archivo Program.cs:
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).
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.
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.
22