Sie sind auf Seite 1von 22

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA


ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
PROGRAMACION I Ciclo II 2016
GUIA 1: Lenguaje Unificado de Modelaje Creacin de Diagramas de Clases

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.

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, de los cuales el instructor le asignar dos al grupo de estudiantes que componen
cada laboratorio.

Equipo, Materiales y Herramientas:


Computadora Personal con Windows 10 y Conexin a Internet.
Navegador de Internet (Chrome, Firefox, Opera, Internet Explorer u otro similar).
Visual Studio 2015 Community Edition

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

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.

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

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

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.

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.

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.

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

Parte II. DC en Visual Studio 2015


La preparacin de carpetas, slo aparecer en esta Gua. 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. Si la computadora est apagada, debe encenderla y esperar que se cargue el sistema


2. Verificar que el usuario activo es PRN-115. Si no lo es, iniciar sesin con PRN-
115, cuya clave de acceso es: visual
3. Iniciar el Explorador de Windows
4. Abrir la Carpeta de Asignatura: Mis documentos\Visual Studio 2015\Projects y
verificar que est ubicado dentro de Projects
5. 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
6. Abrir la carpeta de estudiante y, dentro de ella, crear la carpeta para la primera
prctica, con el nombre: PRACTICA-1
7. Todo ejercicio desarrollado durante esta Prctica, debe ser guardado en la carpeta
PRACTICA-1, mencionada en el numeral anterior.
8. Iniciar Visual Studio. Para ello, dar click en botn Inicio y digitar Visual Studio en la
caja de dilogo de Buscar Programa. En la lista aparece Visual Studio 2015, dar
click para iniciar.
9. En caso que sea la primera vez que se inicie el Visual Studio en la computadora
asignada, se le solicitar que seleccione configuracin de desarrollo inicial. En dicho
caso, seleccionar Visual C# en la lista y en el tema seleccione Azul luego de dar click
en Iniciar Visual Studio para continuar. Espere unos momentos a que inicie el
Entorno (IDE).
10. Una vez iniciado el Entorno, continuar con la Parte II de esta Gua.

ADVERTENCIA: reconozca y sepa identificar la PC asignada por su docente instructor


porque ser el responsable de dicho equipo, en cuanto a darle el uso y cuidados
correspondientes.
Ejemplo 1: La pizzera La Super Pizza desea llevar el control de los precios e ingredientes
en su tienda, para lo cual ha requerido del servicio de los estudiantes de Programacin I para
desarrollar el sistema que le facilite dicha informacin. Tomar en cuenta que slo se venden
3 tipos de pizza (Clsica: Queso, Chile y Salsa; Peperoni: Clsica ms Pepperoni y Suprema:
Clsica ms Carne ms Cebolla). Adems, slo se desea llevar el control de los ingredientes
y el precio de cada especialidad.
6
SOLUCION: Crear un Nuevo Proyecto como Aplicacin de Console. Poner Nombre y
Ubicacin y dar Clic en Aceptar:

En el Explorador de Soluciones
Clic Derecho > Aadir > Nuevo elemento (Crtl + Shift + A)

7
Seleccionar Diagrama de Clases:

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

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

Escribir el nombre y dar clic en Aceptar:

9
Aparecer lo siguiente:

Escribir en Propiedades: Ingredientes de tipo string y Precio de tipo float:

10
Del Cuadro de Herramientas, Luego, del mismo Cuadro de Herramientas,
seleccionar y arrastrar una clase: seleccionar Herencia:

Dar clic en la clase hija (PizzaClasica) y arrastrar hacia la clase padre(Pizza):

Luego de realizar el proceso indicado aparecer lo siguiente:

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.

El DC diseado aparecer as:

12
Se pueden ocultar las Propiedades de la Clase Sellada PizzaClasica (dar clic a ) y
moverla de posicin:

Observar cmo cambia de a

De la misma manera como se cre una CLASE,


se crear una Clase Abstracta:

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:

Posteriormente, crear las dems clases (PizzaPepperoni y PizzaSuprema) que se van a


necesitar:

14
Escribir las propiedades de la Clase PizzaPepperoni:

Escribir las propiedades y mtodos de la Clase PizzaSuprema:

15
Agregar la herencia desde la clase hija hacia la clase padre (PizzaCapas):

Como resultado final, quedar un DC como el siguiente:

16
Parte III. Solucin Programada en C#

Como ya se mencion anteriormente, si se presta atencin al Explorador de Soluciones cada


uno de los recuadros del DC resultante es una clase en cdigo:

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:

Interfaz Pizza, archivo: Pizza.cs

17
Clase Sellada PizzaClasica, archivo PizzaClasica.cs

Clase Abstracta PizzaCapas, archivo: PizzaCapas.cs

18
Clase PizzaPepperoni, archivo: PizzaPepperoni.cs

Clase PizzaSuprema, archivo: PizzaSuprema.cs

19
Para mostrar los resultados, se utiliza la Clase Program, archivo Program.cs:

Los resultados obtenidos en pantalla, luego a ejecutar el programa son:

Parte IV. Ejercicios Propuestos


A continuacin, se presentan una serie de Ejercicios Propuestos. Como parte de la prctica
debe desarrollar dos de estos ejercicios, los cuales debern ser indicados por su docente
instructor. El estudiante posee los conocimientos necesarios para desarrollar estos ejercicios
y basta con que siga las instrucciones de la Gua y las de su instructor para desarrollarlos.
Debe crear una nueva Solucin/Proyecto para cada ejercicio.
20
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
21
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.

POR FAVOR, SIEMPRE AL FINALIZAR SU PRCTICA, CIERRE VISUAL STUDIO 2015 Y


APAGUE LA PC, PERO NO LOS UPS o REGULADORES DE VOLTAJE

22

Das könnte Ihnen auch gefallen