metodología orientada a objetos

Page 1

REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD BICENTENARIA DE ARAGUA

EXTENSION SAN CRISTOBAL

Metodología orientada a objetos para el desarrollo de sistemas de información

autota: Liz Pérez

cambio del modo de pensar

Conceptos

Metodología orientada a objetos para el desarrollo de sistemas de información

Tipos

Medidas de complejidad y reutilizacion

Importancia, característicasy beneficios

Liz Pérez Márquez/ San Cristóbal., Universidad bicentenaria de Aragua.2023

©2023, UNIVERSIDAD BICENTENARIA DE ARAGUA.

©2023, PROGRAMA INGENIERIA EN SISTEMAS.

©2023, LIZ PÉREZ MÁRQUEZ

Edición.

Fondo editorial bicentenaria de Aragua. Universidad bicentenaria de Aragua

San Cristobal, estado Tachira., Venezuela Tel.:(02-77)738.11.51

E.mail: ubatachira@gmail.com

https://campusvirtualuba.net.ve/convenios/# Primera edición: abril 2023

Hecho en Venezuela Made in Venezuela

Todos los derechos reservados . Queda prohibido la reproducción total o parcial de esta obra y su tratamiento o transmisión por cualquier medio o método sin autorización escrita de la Universidad Bicentenaria de Aragua y su autora.

Introducción

El diseño orientado al objeto, al igual que otras metodologías de diseño orientadas a la información, crea una representación del campo del problema del mundo real y lo hace corresponder con el ámbito de la solución, que es el software.

El diseño orientado al objeto produce un diseño que interconecta objetos de datos (elementos dato) y operaciones de una forma que modularía la información y el procesamiento; por el contrario, otros métodos dejan aparte el procesamiento. La naturaleza única del diseño orientado al objeto queda reflejada en su capacidad de construir sobre tres pilares conceptuales importantes del diseño de software:

" Abstracción

" Ocultamiento de información

" Modularidad

Estos conceptos se explicarán en los siguientes puntos. El análisis orientado al objeto (AOO), el diseño orientado al objeto (DOO) y la producción orientada al obieto comprenden un conjunto de actividades de Ingeniería del Software para la construcción del sistema orientado a obietos.

Utilizando el diseño orientado al objeto el diseñador puede crear sus propios tipos abstractos de datos y abstracciones funcionales y hacer corresponder el campo del mundo real con esas abstracciones creadas por el propio programador. Esta correspondencia será la mayoría de las veces mucho más natural, ya que el rango de tipos abstractos de datos que puede inventar el diseñador es virtualmente ilimitado. Más aún, el diseño del software se desliga de los detalles de representación, sin que ello afecte al sistema de software global.

Se trata de un ente abstracto usado en programación que permite separar los diferentes componentes de un programa, simplificando así su elaboración, depuración y posteriores mejoras. Los objetos integran, a diferencia de los métodos procedurales, tanto los procedimientos como las variables y datos referentes al objeto. A los objetos se les otorga ciertas características en la vida real. Cada parte del programa que se desea realizar es tratado como objeto, siendo así estas partes independientes las unas de las otras. Los objetos se componen de 3 partes fundamentales: métodos, eventos y atributos.

Objetos

Métodos: Son aquellas funciones que permite efectuar el objeto y que nos rinden algún tipo de servicio durante el transcurso del programa.

Determinan a su vez como va a responder el objeto cuando recibe un mensaje.

Eventos: Son aquellas acciones mediante las cuales el objeto reconoce que se está interactuando con él.

De esta forma el objeto se activa y responde al evento según lo programado en su código.

Atributos: Características que aplican al objeto solo en el caso en que el sea visible en pantalla por el usuario; entonces sus atributos son el aspecto que refleja, tanto en color, tamaño, posición, si está o no habilitado.

Objetos

Ejemplo de objeto: un auto. Se considera un auto es un objeto, totalmente diferenciado del lugar donde está parqueado. Sus atributos son su color, marca, modelo, número de matrícula, número de puertas; Sus eventos todos aquellas acciones por las cuales si el auto tuviera vida propia reconocería que le estamos dando un uso, como abrir la puerta, girar el volante, embragar, abrir el capot; por otro lado, Los métodos son todo aquello que nos ofrece el auto como hacer sonar

una bocina cuando tocamos el claxon (evento), llevarnos por la carretera, reducir la velocidad al pisar el freno (evento).

Mensaje

Aunquelosobjetossehandediferenciarclaramenteenuna aplicación,estossehandepodercomunicarparapoder trabajarenconjuntoyconstruirasíaplicaciones. Estosehaceposibleatravésdeloquesedenominapasode mensajes.Cuandounobjetoquierecomunicarseconotrolo quehaceesenviarleunmensajeconlosdatosquedesea transmitir.

Elcoche,alapretarelclaxon,elobjetoclaxonenvíaunmensaje alabocinaindicándolequehagasonarciertosonido.

Lapotenciadeestesistemaradicaenqueelobjetoemisorno necesitasaberlaformaenqueelobjetoreceptorvaarealizarla acción.Simplementeestelaejecutayelemisorsedesentiende delcomo;dehechonileimporta,solotieneconocimientode queseestárealizando.Paraquetodoestoseaposiblees necesariounabuenaprogramacióndeloseventosydelos métodosdecadaobjeto.

Elconjuntodemensajesalosqueunobjetopuederesponder sedenominaprotocolodelobjeto

Clase

Consta de una serie de métodos y datos que resumen las características de este objeto.es decir, describe el objeto. Definir clases permite trabajar con código reutilizable. Puesto que desde una clase se puede crear una instancia y así reutilizar el código escrito para esta si tener que volver a escribir el código para la instancia.

La instancia toma el patrón de la clase padre. Sin embargo, las variables son independientes.

Importancia de la metodología orientada a objetos

La programación orientada a objetos permite que el código sea restaurable, organizado y fácil de mantener, sigue el principio de desarrollo de software utilizado por muchos programadores DRY (Don ́t repeat yourself) para evitar duplicar el código y crear de esta manera programas eficientes. Por lo tanto, es mas sencillo hacer cambios en un sistema de metodología orientada a objetos, porque facilita la reutilización de códigos, además como las metodología agiles de SCRUM.

POO (programación orientada a objetos) es un estándar en la industria, esta metodología se remonta a 1967 donde los noruegos Ole-Johan Dahl (1931-2002), y Kristen Nygaard (1926-2002) desarrollaron los conceptos básicos de la programación a objetos, en un lenguaje llamado simula 67.

“Losprogramastienenerrores.Desdelospequeñosprogramascomercialespara ordenadorespersonales,quesevendenenlosgrandesalmacenes,hastalos megaprogramasquecorrenenredes

degrandesordenadores,prácticamenteningunoestáasalvodequedevezen cuando,alcumplirse

ciertascondiciones,sufuncionamientoseamuydistintodelprevisto. Siconsiguiéramosdesarrollarcódigodetalformaquequienloleyera(olo escribiera)fueracapaz

decomprenderexactamenteyentodosloscasosposibleselcomportamientodeese código,probablementeloserroresdesaparecerían.

Hoyporhoynoscontentamosconmedirlacomplejidaddelosprogramas,para intentarhacerlos

mássencillos,convistasaqueelmantenimientoycorreccióndeerroresseamás fácilderealizar.”

Característicasdelas técnicaorientadaa objetos

Encapsulamiento

Características de la Programación

Orientada a Objetos Permite agrupar cada elemento que se considere formar parte de un mismo nivel de abstracción y una misma entidad, esto permite elevar la cohesión de los elementos del sistema.

Herencia

Las clases no se aíslan, sino que tienen relación entre ellas, creando una jerarquía de clasificación. Los objetos heredan el comportamiento y las propiedades de cada clase a la que forman parte. La herencia facilita y organista el encapsulamiento y el polimorfismo, haciendo que los objetos sean creados y definidos como tipos especializados de objetos que ya existen. Estos comparten y extienden su comportamiento sin tener que implementarlo de nuevo.

Normalmente se hace al agrupar objetos en clases y estos a su vez presentan un comportamiento en común.

Abstracción

Denota las características principales de un objeto en el cual los comportamientos se capturan. Todo objeto de un sistema se utiliza como ejemplo de un agente abstracto que puede hacer un trabajo, cambiar o informar su estado y tener comunicación con otros objetos en el mismo sistema sin dar a conocer la forma en la cual las características son implementadas. Las funciones, los procesos y los métodos pueden abstraerse, necesitando diversas técnicas para ampliar esa abstracción. Con este proceso es posible escoger las características importantes en un conjunto y saber cuales son los comportamientos comunes que definirán tipos de entidades nuevos en el mundo real. La abstracción es importante en el proceso de diseño y análisis orientado a objetos porque permite crear un conjunto de clases que enseñan el problema o la realidad a tratar.

Polimorfismo

Comportamientos distintos que se asocian a diferentes objetos pueden compartir un mismo nombre. Cuando son llamados por el mismo, se usa el comportamiento que corresponde al objeto utilizado. Las colecciones y referencias de objetos pueden tener objetos de diversos tipos. Invocar un comportamiento en una referencia generará el correcto comportamiento para el tipo real del objeto al que se hace la referencia.

modularidad es la propiedad con la que se puede subdividir a una aplicación en secciones de menor tamaño. Cada una de estas debe ser independiente de la aplicación general y de las demás partes. Estos módulos pueden compilarse por separado, pero se conectan a otros.

Modularidad

Principio de ocultación

Todo objeto se encuentra lejos del exterior como un módulo natural y cada clase de objeto denota una interfaz con otros que informan la manera en la que se interactúa con los objetos de la clase. El aislamiento cuida las propiedades de un objeto frente a su modificación por alguien que no pueda acceder a las mismas, únicamente los mismos métodos internos que tiene el objeto pueden hacerlo. Esto impide que otros objetos modifiquen el estado interno de uno de forma inesperada, sustrayendo interacciones inesperadas y efectos secundarios.

Recolección de basura

Recolectar basura es la técnica con la que el entorno de objetos destruye de forma automática y desvincula la memoria que se asocia a los objetos que no tienen referencia a ellos. El entorno asigna la memoria cuando se crea un objeto nuevo y se libera cuando no está en uso.

Beneficios que ofrece la metodología orientada a objetos

● Reutilización del código.

● Convierte cosas complejas en estructuras simples reproducibles.

● Evita la duplicación de código.

● Permite trabajar en equipo gracias al encapsulamiento, puesto que minimiza la posibilidad de duplicar funciones cuando distintas personas trabajan sobre un mismo objeto al mismo tiempo.

● Al estar la clase bien estructurada permite la corrección de errores en diversos lugares del código.

● Protege la información mediante la encapsulación, pues solo se puede acceder a los datos del objeto mediante propiedades y métodos privados.

● La abstracción nos permite construir sistemas más complejos y de un modo más sencillo y organizado.

Hoy en día, la metodología orientada a objetos es el paradigma que más se usa para diseñar aplicaciones y programas informáticos. Sus ventajas son evidentes, especialmente cuando se necesita resolver retos de programación complejos. Además, permite una mejor estructura de datos y reutilización del código, lo que facilita el ahorro de tiempo a largo plazo.

Ahora bien, para ello se necesita pensar bien en la estructura del programa, planificar al inicio de la codificación, además de analizar los requisitos en clases simples y reutilizables que pueden usarse para diseñar instancias de objetos.

Medidas de complejidad de un programa

La complejidad de un programa depende de: La máquina y el compilador utilizados

El tamaño de los datos de entrada que depende del tipo de datos y del algoritmo

El valor de los datos de entrada.

Complejidad temporal: Se define como el tiempo que tarda un algoritmo en una entrada de tamaño n.

La complejidad en el caso peor proporciona una medida pesimista, pero fiable.

Dado que se realiza un estudio teórico de la complejidad, ignorando aspectos como las características de la máquina y el compilador, se tiene en cuenta que las diferencias en eficiencia se hacen más significativos para tamaños grandes de los datos de entrada se analiza la complejidad en términos de su comportamiento asintótico, dejando de lado la forma exacta de la función de complejidad

En muchos casos, la complejidad de tiempo de un algoritmo es igual para todas las instancias de tamaño n del problema. En otros casos, la complejidad de un algoritmo de tamaño n es distinta dependiendo de las instancias de tamaño n del problema que resuelve. Esto nos lleva a estudiar la complejidad del peor caso, mejor caso, y caso promedio.

Para un tamaño dado (n), la complejidad del algoritmo en el peor caso resulta de tomar el máximo tiempo (complejidad máxima) en que se ejecuta el algoritmo, entre todas las instancias del problema (que resuelve el algoritmo) de tamaño n; la complejidad en el caso promedio es la esperanza matemática del tiempo de ejecución del algoritmo para entradas de tamaño n, y la complejidad mejor caso es el menor tiempo en que se ejecuta el algoritmo para entradas de tamaño n. Por defecto se toma la complejidad del peor caso como medida de complejidad T(n) del algoritmo.

Aún cuando son los programas que los llegan realmente a consumir recursos computacionales (memoria, tiempo, entre otros) sobre una máquina concreta, se realiza el análisis sobre el algoritmo de base, considerando que se ejecuta en una máquina hipotética.

Reutilizacion

Lareutilizacióndecódigoserefierealcomportamientoyalastécnicasque garantizanqueunaparteolatotalidaddeunprogramainformáticoexistentese

puedaemplearenlaconstruccióndeotroprograma.Deestaformase aprovechaeltrabajoanterior,seeconomizatiempo,ysereducelaredundancia.

Lamaneramásfácildereutilizarcódigoescopiarlototaloparcialmentedesdeel programaantiguoalprogramaendesarrollo.Peroestrabajosomantener múltiplescopiasdelmismocódigo,porloqueengeneralseeliminala redundanciadejandoelcódigoreusableenunúnicolugar,yllamándolodesde losdiferentesprogramas.Esteprocesoseconocecomoabstracción.La abstracciónpuedeverseclaramenteenlasbibliotecasdesoftware,enlasquese agrupanvariasoperacionescomunesaciertodominioparafacilitareldesarrollo deprogramasnuevos.Haybibliotecasparaconvertirinformaciónentre diferentesformatosconocidos,accederadispositivosdealmacenamiento externos,proporcionarunainterfazconotrosprogramas,manipularinformación demaneraconocida(comonúmeros,fechas,ocadenasdetexto).

Paraqueelcódigoexistentesepuedareutilizar,debedefiniralgunaformade comunicaciónointerfaz.Estosepuededarporllamadasaunasubrutina,aun objeto,oaunaclase.

Encuantoalos cambiospodemos verqueenlas personassedenota losiguiente:

MODO DE PENSAR

Reusabilidad.Cuandohemosdiseñado adecuadamentelasclases,sepuedenusar endistintaspartesdelprogramayen numerososproyectos.

Mantenibilidad.Debidoalassencillezpara abstraerelproblema,losprogramas orientadosaobjetossonmássencillosde leerycomprender,puesnospermiten ocultardetallesdeimplementacióndejando visiblessóloaquellosdetallesmás relevantes.

Modificabilidad.Lafacilidaddeañadir, suprimiromodificarnuevosobjetosnos permitehacermodificacionesdeunaforma muysencilla.

Fiabilidad.Aldividirelproblemaenpartes máspequeñaspodemosprobarlasde maneraindependienteyaislarmuchomás fácilmentelosposibleserroresquepuedan surgir.

La programación orientada a objetos permite la optimización del código generado gracias a que mediante técnicas de herencia, atributos estáticos entre otros permiten, que el código sea genérico de manera que sea reutilizable.

Mediante las técnicas aprendidas en el presente curso podemos establecer una solución primitiva de un problema real, tan solo con relacionarlo con objetos lógicos que serán usados para el desarrollo del software.

Podemos dar a conocer de una forma sencilla los mecanismos que se usan en este nivel de programación, a personas que deseen una explicación rápida y sencilla de lo que es la programación orientada a obietos.

Tenemos los conocimientos necesarios como para enfrentar un problema real y desarrollo en otro lenguaje de programación, pues concebimos la idea de que el lenguaje C es la base de la programación.

Al trabajar con la programación orientada a obietos sea esta desarrollada en otras plataformas de programación o en lenguaje C, sabemos las formas de lograr un mejor rendimiento del equipo a controlar y aplicar soluciones sencillas, de manera que sea fácilmente digeribles para el usuario y/o destinatario del trabajo final.

Conclusion

Referencia

[1] Piattini, M., Calvo Manzano, J. A., Cervera, J. y Fernández, L. "Análisis y Diseño Detallado de Aplicaciones Informáticas de Gestión. Ra-ma. 1996. Pressman, Roger S. "Ingenieria del Software: Un Enfoque Práctico". 4ª Ed. McGraw-Hill, 1997.

[3] Rumbaugh, James, Blaha, Michael, Premerlani, William, Eddy, Frederick and Lorensen, William. "Object-Oriented Modeling and Design". Prentice-Hall. 1991.

Rational Software Corporation et al. "UML I.1 Documentation Set".

http://www.rational.com/uml. 1 September 1997.

[5]

García Peñalvo, Francisco José y Pardo Aguilar, Carlos. "UML 1.1. Un lenguaje de modelado estándar para los métodos de ADOO*. RPP, N°36. Enero, 1998.

[6] Jacobson, Ivar, Christerson, M., Jonsson, P., Overgaard, G. "Object-Oriented Software Engineering: A Use Case Driven Approach*. Addison-Wesley. 1992. [71

García Peñalvo, Francisco José, Marqués Corral, José Manuel y Maudes Raedo, Jesús Manuel. "Análisis y Diseño Orientado al Objeto para Reutilización".

Technical Report (TR-GIRO-01-97V2.1), Universidad de Valladolid. Octubre 1997.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.