Sunteți pe pagina 1din 6

CLASES, ABSTRACCIÓN Y MODIFICADORES DE

ÁMBITO
Julián Cendales- Ricardo Sotelo

285577-285610

Resumen Ejecutivo:
El siguiente informe pretende sintetizar el trabajo realizado con el fin de verificar el
aprendizaje y correcto uso de los conceptos básicos de la Programación Orientada
a Objetos. Inicialmente se planteó un sistema en el cual se representaba una
señal de entrada como un problema y mediante un sistema o caja negra, se puede
llegar a una salida. Por medio del uso de diagramas de clases se planteó un
bosquejo del diseño de la solución al sistema dado. Permitir establecer
comparaciones entre los valores obtenidos en la entrada, facilita dar una
dimensión al problema.

Pese a que el sistema propuesto es teóricamente capaz de solucionar todos los


problemas, en la vida práctica los problemas no pueden ser siempre abordados de
forma simultánea. Existen problemas cuya gravedad es bastante mayor a otros
para los cuales su situación puede ser despreciable o solucionada tiempo
después. El solucionar un problema en el momento indicado puede es uno de los
motivos por los que se puede valorar como conveniente a una solución sobre el
resto de soluciones. Es por esto que el sistema debe considerar un análisis de las
variables y los datos tomados en el dominio del tiempo y ser consecuente con la
urgencia que esta pueda representar.

Esquematizar las variables y la cantidad ponderada que cada una de estas


representa puede dar una apreciación cercana a la realidad. Como se mencionó
anteriormente, la solución propuesta consta de 3 partes. La entrada será la
encargada de recoger los datos, la caja negra recibirá los datos y los procesará
por medio de funciones, finalmente la salida imprimirá los resultados y generará
una prevención a la causa del problema.

El programa ofrece al usuario la toma de decisiones. Si bien el programa sugiere


que es lo más conveniente en cada una de las etapas es el usuario final quien
guiándose en los mensajes del programa decide qué hacer con cada una de las
soluciones. Este punto es bueno resaltarlo porque no importa que tan bueno sea
el modelo que se asuma para describir un problema, ningún software reemplazará
el criterio del usuario. Por medio de los modificadores de ámbito escogeremos que
información resulta más conveniente ocultarla y que información se puede
necesitar para todas las fases del programa.

Por más difícil que pueda presentarse el problema, si se usa una abstracción
correcta es considerable que la complejidad baje y el problema sea más fácil de
tratar.

Marco Teórico:

En este laboratorio se incluyen conceptos básicos de la Programación Orientada a


Objetos, es necesario reconocer los conceptos aplicados con el fin de identificarlos
y entender porque se consideró el uso de estos al momento de implementar el
diseño. A continuación se presenta una descripción de los conceptos usados.

Una clase es el plano desde el cual se bosquejan las funciones y atributos que
modelan un problema, es conveniente el uso de clases para diferenciar fases y
responsabilidades asociadas a lo largo del tiempo de ejecución. El uso de clases
facilita el orden y la lectura del código. La abstracción de datos permite identificar
cuales datos son realmente importantes para el usuario y cuales deben
mantenerse reservados por el programa. Se debe considerar al momento de
realizar una abstracción lograr la mayor simplicidad para describir el problema sin
perder la fidelidad del modelo respecto al problema inicial.

Para escoger que datos son exclusivos de una clase o que datos pueden saltar de
una clase a otra, se usan los modificadores de ámbito. Son palabras que van
dentro de la declaración de la clase que caracterizan la accesibilidad de los
diferentes tipos de atributos y métodos, dando forma especial a la conexión de
diferentes clases.

Si bien se sabe que la clase es el plano para desarrollar la solución de un


problema, de nada sirve tener la clase declarada, si no se instancia. Al instanciar
la clase se genera un objeto que será el que ejecute todas las funciones existentes
en las demás clases.

Finalmente usamos una propiedad de las clases, la herencia. La herencia nos


permite pasar datos de una clase a otra. Por medio de un esquema podemos
establecer la dependencia de una clase sobre otra y transferir datos. Es
importante que se tenga un orden al momento de heredar, teniendo en cuenta un
lineamiento que caracterice la herencia y que siga una jerarquía coherente con el
problema.
Diagramas de Clases:
Al principio se decidió hacer un diagrama de clases como el de la figura 1. La
propiedad de herencia facilita el manejo entre las clases de los datos lo que
simplifica el diagrama de la figura 1 y permite tratar lo que en primer lugar se había
tomado como métodos ahora como atributos

Caja Negra
-Newnumer : double
Entrada -Newtext : string
-Numericos : double -Newbool : bool
-Texto : string -Confrontar_comportamiento_ideal con ()
-Booleano : bool -Análisis_variables_críticas()
+Leer_problema() : void -Priorizar_zonas_críticas()
+Designar_variables_al_problema() : void +Construir_solución()
-Eliminar_causas()
-Integrar_al_sistema()

Salida
-Final_Number : double
-Final_text : string
-Final_bool : bool
+Imprimir_Salida() : Salida
Figura 1. Diagrama de Clases base (preinforme).

El diagrama escogido para la implementación del ejemplo de las lluvias:

Dessarrollo
-reparacion : int
Datos
-transito : int
+Deslizan : int -riego : int Salida
+precipi : int -danocri : int -terminar
+dato() : int +prioridadef : int +salir() : void
-lluvias : int
+arreglar() : int
Para el ejemplo del reparche de la calzada:

Desarrollo

Dato +reparacion : int


+transito : int salida
+Gente : int +prioridadef : int -terminar
+Danoinicial : int +danocri : int
+Salir() : void
+dato() +prioridad : int
+dano : int
+arreglar(int reparar)() : int

Para el planeador de actividades del ejemplo 3 el diagrama de clases es:

Desarrollo
Dato +x : int
+Dp : int +y : int Salida
+Im : int +z : int -R
+Ac : int +m : int
+n : int +salir()
+dato() +Ac : int
+q()

Figura 2.Diagrama de clases de los programas que son solución a los


ejemplos.(a)Reparchada calzada (problema 1).(b) población damnificada por el invierno
(problema 2).(c)Planeador de actividades (problema 3)
Descripción de métodos y atributos de las clases

Para los diagramas de clase los atributos deslizan y precipi, gente y danoinicial,
Dp y Im son asignados para recibir los datos. Siendo parte de la clase datos (clase
de entrada) sirven para que el usuario ingrese por teclado las muestras tomadas
en cada uno de los problemas.

A continuación la función dato nos devuelve un número dado por la variable daño.
En el archivo sim.cc vemos que este número que retorna toma el atributo de la
función arreglar.

La clase desarrollo es una clase heredada de la clase dato, por tanto hereda los
atributos públicos de esta clase.

Esta función opera el valor de daño y valida las condiciones para las cuales lluvias
y deslizan, dano y gente, Ac e Im se vuelven críticas. De modo que para una
situación en que las dos variables sean críticas o tengan un valor elevado se hará
una validación mediante condicionales para determinar si el valor es crítico y
requiere de reparación urgente.

De ahí pasan a un switch que dice si la situación es altamente crítica, crítica,


medianamente crítica, bajamente crítica o sin riesgo. Esta función opera y crea la
solución del problema, pero solo sugiere al usuario en hacer o no una operación.

La decisión la toma entonces el usuario en la salida, una clase heredada de


desarrollo. Se ha dejado únicamente la solución como pública para todos los
casos, con fin que solo herede esta, debido a que el resto no tiene importancia
alguna para el problema. El usuario en la clase salida tiene la opción de arreglar o
no el problema. En caso de que decida arreglarlo, le saldrá un mensaje que da
solución al problema y de paso genera una viable solución que elimina la causa de
estos mismos. En caso de que decida no arreglar el problema, el valor asignado al
problema será dejado igual, se sacará un mensaje que reafirma las causas
posibles del problema y se saldrá del programa.
Conclusiones:

 El uso de diagramas de clase, permite bosquejar una idea de la


estructuración, diseño y funcionamiento del problema. Identificar y analizar
las variables posibilita una mejor ordenamiento en la disposición del código.

 La herencia facilitó el traspaso de datos de una clase a otra, disminuyendo


la sintaxis de código. Para el preinforme se asumieron métodos que fueron
reemplazados por atributos mediante la clase heredada, facilitando su
comprensión y aplicación.

 El tener una disposición adecuada con los modificadores de ámbito de cada


clase es la base para la transmisión de información deseada en la herencia.
El uso de modificadores de ámbito permite complicar, denegar o facilitar el
acceso según conveniencia del usuario.

 Crear modelos semejantes para la solución de diferentes problemas sin


perder fidelidad con la descripción real de cada una de estas situaciones,
puede simplificar la realización de una solución dejando las cosas más
generales de forma idéntica, y dejando espacio para que se enfoque a las
condiciones más específicas de dicho problema.

BIBLIOGRAFIA:

DEITEL, Harvey. COMO PROGRAMAR EN C-C++Y JAVA. 4ª EDICION.


PEARSON PRENTICE HALL. Pág 525-558 y 631-644.

S-ar putea să vă placă și