Documente Academic
Documente Profesional
Documente Cultură
- complejidad del dominio del problema. - La dificulta de gestionar el dominio del desarrollo. - La posible flexibilidad a travs del software.
basado en clases y capaz de tenerherenciade clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La barrera ms difcil de sortear es usualmente la herencia. O La dificultad de gestionar el proceso de desarrollo. O Es necesario descomponer el problema en centenares de mdulos independientes
Otros problemas
O problemas de fiabilidad,
mantenimiento, adaptacin a los cambios y escalabilidad. O LA flexibilidad a travs del software. O Tenemos en cuenta otros tipos de lenguajes de programacin que facilitan el rendimiento solicitado para una implementacin
plazo. O Los proyectos no se ajustaban alpresupuestoinicial. O Baja calidad del software generado. O Software que no cumpla las especificaciones. O Cdigosin mantener que dificultaba la gestin y evolucin del proyecto.
Programacin
O Laprogramacines el proceso de
disear, codificar,depurary mantener elcdigo fuentede programas computacionales. El cdigo fuente es escrito en unlenguaje de programacin.
Abstraccin
O Laabstraccinconsiste en aislar
El papel de la abstraccin
O A grandes rasgos, laabstraccin, permite que
dispongamos de las caractersticas de un objeto que necesitemos. Si necesitamos el objetoPersona, podramos poner nombre, edad, direccin, estado civil, etc. Si lo necesitamos en unsistemaadministrativo, pero, si lo requerimos para el rea debiologa , dentro de sus atributos quiz tengamos, ADN, RND, Gen x1, Gen x2, etc. Y los atributos antes mencionados no sean requeridos. En general, podemos decir quePersonacuenta con todos los atributos mencionados aqu, pero, por el proceso deabstraccinexcluimos todos aquellos, que no tiene cabida en nuestrosistema. Se define como un mtodo por el cual rescata los datos relevantes e ignora los datos irrelevantes.
Modelo mental
O Un modelo mental es una vista simplificada de
cmo funcionan las cosas de modo que se pueda interactuar con ellas. O En resumen el proceso mental de construccin de modelos es lo mismo que el diseo del software aunque este es el nico. O Cuando la programacin era basada en instrucciones binarias, esta era manejada por los programadores a travs de abstracciones para evitar que tuvieran que recordar la secuencias de bits. O Los procedimientos y funciones fueron unos de los primeros mecanismos de abstraccin que se utilizaron ampliamente en los lenguajes de programacin. El procedimiento proporciono la primera posibilidad de ocultacin de la informacin.
TAD
O Untipo de dato abstracto(TDA)
oTipo abstracto de datos(TAD) es unmodelo matemticocompuesto por una coleccin deoperacionesdefinidas sobre un conjunto dedatospara el modelo.
Programacin Estructurada
O Laprogramacin estructuradaes
una tcnica para escribir programas (programacindecomputadora) de maneraclara. Para ello se utilizan nicamente tres estructuras: secuencia, seleccin e iteracin; siendo innecesario el uso de la instruccin o instrucciones detransferencia incondicional(GOTO, EXIT FUNCTION, EXIT SUB o mltiples RETURN).
Paradigmas de programacin
O conjunto de teoras, y mtodos que
juntos representan un medio de organizacin del conocimiento. O 1. El Paradigma Concurrente 2. El Paradigma Lgico 3. El paradigma funcional
existen cuatro clases de estilos de programacin: O 1. orientado a procedimientos (algoritmos) O 2. orientado a objetos (clases y objetos) O 3. orientado a lgica (expresado en clculo de predicados) O 4. orientado a reglas (reglas if-then)
Razones de POO
O La OO (orientacin a objetos) es especialmente O
O O
adecuada para realizar determinadas aplicaciones, sobre todo realizacin de prototipos y simulacin de programas Los mecanismos de encapsulacin de POO soportan un alto grado de reutilizacin de cdigo, que se incrementa por sus mecanismos de herencia. En el entorno de la base de datos, la OO se adjunta bien a los modelos semnticos de datos para solucionar las limitaciones de los modelos tradicionales. Aumento espectacular de los lenguajes de programacin orientados a objetos. Interfaces de usuarios grficos (por iconos) y visuales. Las interfaces de usuarios de una aplicacin manipulan la entrada y salida del usuario. Por consiguiente, su funcin principal es la comunicacin con el usuario final.
Orientacin a objetos
O Conjunto de disciplinas que
desarrollan y novelizan software que facilitan la construccin de sistemas complejos a partir de componentes. O Los conceptos y herramientas orientados a objetos son tecnologas que permiten que los problemas del mundo real sean expresado de modo fcil y natural.
Abstraccin
O Es uno de los medios con el cual nos
Encapsulamiento
O EnProgramacin modular, y ms
especficamente enprogramacin orientada a objetos, se denominaencapsulamientoal ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que slo se puede cambiar mediante las operaciones definidas para ese objeto. O Cadaobjetoest aislado del exterior, es un mdulo natural, y la aplicacin entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificacin por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.
Modularidad
O Lamodularidades la capacidad
que tiene unsistemade ser estudiado, visto o entendido como la unin de varias partes que interactan entre s y que trabajan para alcanzar un objetivo comn, realizando cada una de ellas una tarea necesaria para la consecucin de dicho objetivo.
Jerarqua
O Propiedad que permite una
ordenacin de las abstracciones. Las dos jerarquas mas importantes de un sistema complejo son: O Estructura de clase O Estructura de objetos
Polimorfismo
O Enprogramacin orientada a
objetoselpolimorfismose refiere a la capacidad para que variasclasesderivadas de una antecesora utilicen un mismo mtodo de forma diferente.
Otras propiedades
O El modelo objeto ideal no slo tiene
las propiedades anteriormente citadas, existes las siguientes: O Concurrencia O Persistencia O Generosidad O Manejo de excepciones
como el uso de cualquier tipo de artefacto (tambin llamado activo), o parte del mismo, creado con anterioridad, en un nuevo proyecto.
Diseo de mdulos
O Divisin de un sistema grande en
mdulos ms pequeos y a la vez manejables, no siempre esta divisin es garanta de un sistema bien garantizado. O Como la propiedad de un sistema que ha sido descompuesto en un conjunto de mdulos cohesivos y dbilmente acoplados.
Acoplamiento de mdulos
O El acoplamiento es una medida del
grado de interdependencia entre mdulos. El objetivo es minimizar el acoplamiento entre mdulos, es decir, minimizar su interdependencia, de modo que un mdulo sea afectado lo menos posible por la estructura de otro mdulo.
debe realizar un conjunto de funciones o tareas de un modo organizado, no puede constar de un conjunto de mdulos totalmente desacoplados. O Como define Booch, un sistema modular dbilmente acoplado facilita. O La sustitucin de un mdulo por otro, de modo que slo unos pocos mdulos sern afectados por el cambio.
Cohesin de modulos
O Se define como lamedida de fuerza
o relacin funcional existente entre las sentencias o grupos de sentencias de un mismo mdulo. Un mdulocohesionado ejecutar una nica tarea sencilla interactuando muy poco o nada con el resto de mdulos del programa. Se persigue que los mdulos tengan una alta cohesin.
Tipos de datos
O Un tipo de dato es un conjunto de
valores y conjunto de operaciones definidas por esos valores. O Un valor depende de su representacin y de la interpretacin de la representacin, por lo que una definicin informal de un tipo de dato es: O Representacin + operaciones.
herramientas mediante los cuales diseadores de lenguajes pueden implementar los modelos abstractos. O La abstraccin ofrecida por los lenguajes de programacin se pueden dividir en dos categoras: O Abstraccin de datos (perteneciente a los datos). O Abstraccin de control (perteneciente a las estructuras de control).
Abstraccin de control
O Describe el orden en que se ejecutan
las sentencias o grupos de sentencias (unidades de programa). Las unidades de programa se utilizan como bloques bsicos.
herramienta potente de abstraccin, ya que durante su implementacin el programador describe como funcionan los subprogramas. O Las abstracciones y estructuras de control se clasifican en estructuras de control a nivel de sentencia y a nivel de unidades
Abstraccin procedimental
O Se basa en la utilizacin de
procedimientos o funciones sin preocuparse de cmo se implementan. Esto es posible si conocemos que hace el procedimiento, la sntesis y semntica.
Abstraccin de datos
O Es la tcnica de programacin que
permite inventar o definir nuevos tipos de datos (tipos de datos definidos por el usuario) adecuados a la aplicacin que se desea realizar. O La abstraccin de datos es una tcnica muy potente que permite disear programas mas cortos, legibles y flexibles.
TAD
O Un TAD (tipo abstracto de datos) se
compone de estructuras de datos y los procedimientos que manipulan esas estructuras de datos. O TAD = representacin (datos) + operaciones (funciones y procedimientos) O Las operaciones desde un enfoque orientado a objetos se suelen denominar mtodos. O La estructura de un tipo abstracto de dato (clase), desde un punto de vista global, se compone de interfaz y de la implementacin
al programador como los siguientes: Permite una mejor conceptualizacin y modelamiento del mundo real. mejora la representacin y facilita la comprensin. Clarifica los objetos basados en estructuras y comportamiento comunes. Mejora la robustez del sistema. O Mejora el rendimiento O Separa la implementacin de la especificacin. O Permite la extensibilidad del sistema
ayuda de la sentencia return. O C no es capaz de realizar verificaciones de tipos durante el proceso de compilacin separada. O No existe en C ninguna estructura para encapsular datos y funciones en una sola entidad. O como C no soporta el tipo de dato clase la implementacin del TAD se realiza mediante typedef, los datos con struct y la implementacin de las operaciones con un conjunto de funciones.
estructura de los datos junto con la coleccin o conjunto de operaciones que acceden a los datos. O Permite al diseador centrarse en como se usan los datos en el sistema para resolver el problema sin tener que preocuparse de cmo se representan y tratan los datos en la memoria de la computadora
TADS en C++
O En C++ la herramienta de
abstraccin de datos que permite la creacin de nuevos tipos se denomina clase (class). una clase en C++ consta de miembros dato y funciones miembro, a travs de los cuales se puede acceder a los detalles internos de la clase.
estructura en C (struc), con la diferencia de que puede contener tres secciones: publica, privada y protegida, y que pude definirse con las palabras reservadas struc y class.
ordinal oestructura de datosen la que el modo de acceso a sus elementos es de tipoLIFO(del inglsLast In First Out,ltimo enentrar, primero ensalir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el rea deinformticadebido a su simplicidad y ordenacin implcita de la propia estructura. O Para el manejo de los datos se cuenta con dos operaciones bsicas:apilar(push), que coloca un objeto en la pila, y su operacin inversa,retirar(o desapilar,pop), que retira el ltimo elemento apilado.
O La implementacin de un tipo
abstractos de datos es oculta. O En la mayora de los lenguajes de programacin orientados a objetos, los tipos abstractos de datos se implementan mediante clases
Que es POO
O La programacin Orientada a objetos
(POO) es una forma especial de programar, ms cercana a como expresaramos las cosas en la vida real. O Grady Booch, autor del mtodo de diseo orientado a objetos, define la POO como:
O Un mtodo de implementacin en el
que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase, y cuyas clases son todas miembros de una jerarqua de clases unidas mediante relaciones de herencia. O 3 importantes partes en la definicin de la POO O Utiliza objetos, no algortmicos O Cada objeto es una instancia de una clase O Las clases se relacionan unas con otras.
Objeto
O Podemos definir un objeto como un
conjunto complejo de datos y programas que poseen estructura y forman parte de una organizacin. O Un objeto no es un dato simple, sino que contiene en su interior cierto nmero de componentes bien estructurados.
Mtodos
O Los mtodos son las operaciones que
pueden realizarse sobre el objeto, que normalmente estarn incorporados en forma de programas (cdigo) que el objeto es capaz de ejecutar y que tambin pone a disposicin de sus descendientes a travs de la herencia.
Mtodos y Mensajes
O Son las funcionalidades asociadas a los
objetos. Cuando estamos programando las clases las llamamos mtodos. Los mtodos son como funciones que estn asociadas a un objeto. Los procedimientos y funciones denominados mtodos o funciones miembro, determinan como actan los objetos cuando reciben un mensaje. Un mensaje es la accin que hace un objeto. Un mtodo es el procedimiento que se invoca para actuar sobre un objeto un mtodo especifica como se ejecuta un mensaje.
Clases
O Una clase es la descripcin de un
conjunto de objetos; consta de mtodos y datos que resumen caractersticas comunes de un conjunto de objetos. Una clase es la declaracin de un tipo de objeto Las clases son declaraciones de objetos, tambin se podran definir como abstracciones de objetos. O Cada vez que se construye un objeto a partir de una clase se esta creando lo que es una instancia de esa clase lo que quiere decir que un objeto no es mas que una instancia de una clase.
Definicin de objetos
O La programacin orientada a objetos
es una de las formas ms populares de programar y viene teniendo gran acogida en el desarrollo de proyectos de software desde los ltimos aos. Esta acogida se debe a sus grandes capacidades y ventajas frente a las antiguas formas de programar.
Identificacin de objetos
O La identificacin de objetos se tiene
examinando la descripcin del problema (anlisis gramatical) y localizando los nombres o clusulas nominales. O Una vez identificados los objetos es preciso identificar los atributos y las separaciones que actan sobre ellos. O Los atributos describen la abstraccin de caractersticas individuales que poseen todos los objetos
en el tiempo; por ello deben ser creados o instanciados (a travs de otros objetos). O Estas operaciones se hace a travs de operaciones especiales llamadas constructores en C++ o inicializadores.
tipo; al igual que un objeto es una instancia de una clase; sin embargo, una clase es mas expresiva que un tipo.
importa lo complejo que pueda ser. Los objetos tienen las siguientes caractersticas: l1.Se agrupan en tipos llamados clases l2.Tiene datos internos que definen su estado actual l3.Soportan ocultacin de datos l4.Pueden heredar propiedades de otros objetos l5.Pueden comunicarse con otros objetos pasando mensajes l6.Tiene mtodos que definen su comportamiento
Datos internos
O Como primer paso vamos a plantear la
O O O O
descripcin de los registros y datos relevantes que utiliza la aplicacin, ya que son el principal medio de intercambio de informacin entre las diversas partes que componen el programa. Respecto a los siguientes puntos: Mapa completo de argumentos entre funciones. Descripcin completa de datos. Descripcin completa de parmetros, tanto en sentencias#definecomo dentro del cdigo. dudo de que la relacin esfuerzo/utilidad justifique este trabajo, largo y tedioso.
Ocultacin de objetos
O Cuando se utiliza un objetos no
necesitamos conocer todos los detalles de la implementacin. Esta practica de limitacin del acceso a cierta informacin interna se llama ocultacin de datos. O C++ soporta las caractersticas de ocultacin de datos con las palabras reservadas public, private y protected.
Atributos
O Describen el estado del objeto;
consta de dos partes: O l* Nombre del atributo O Valor del atributo O Los objetos simples pueden constar de tipos primitivos como enteros, carcter, reales, boolean o tipos simples definidos por el usuario. Los objetos compuestos pueden constar de pilas, conjuntos, listas, etc.
Mtodos
O Describen el comportamiento
asociado a un objeto. Representen las acciones que pueden realizarse por un objeto o sobre un objeto. O Cada mtodo tiene un nombre y un cuerpo que realiza la accin o comportamiento asociado con el nombre del mtodo.
Clases
O Descripcin abstracta de un grupo de
objetos cada uno de los cuales se diferencia por un estado especifico y es capaz de realizar una serie de operaciones. O Las clases son una descripcin abstracta de un grupo de objetos que comparten caractersticas (atributos) y operaciones (mtodos). O Las propiedades de una clase deben ser significativas dentro del entorno de la aplicacin, es decir deben ayudarnos en la identificacin clara y unvoca de cada uno de los objetos.
la extensin de un registro. al igual que una clase, una tabla define los nombres y los tipos de datos de la informacin que contenga. O Una clase ser un mdulo y un tipo. Como mdulo la clase encapsula los recursos que ofrece a otras clases (sus clientes). Como tipo describe un conjunto de objetos o instancias que existen en tiempo de ejecucin.
memoria, y en consecuencia existen en el tiempo, y debern crearse. Dos operaciones comunes en cualquier clase son: Constructor: una operacin que crea un objeto y / o analiza su estado. Destructor: una operacin que libera el estado de un objeto y / o destruye el propio objeto.
Herencia
O La herencia supone una clase base y una
jerarqua de clases que contienen las clases derivadas de la clase base. O La herencia nos permite crear estructuras jerrquicas de clases donde es posible la creacin de sub-clases que incluyan nuevas propiedades y atributos. Estas sub-clases admiten la definicin de nuevos atributos, as como crear, modificar o inhabilitar propiedades.
Clases abstractas
O Permite actuar como un depsito de
mtodos y atributos compartidos para las subclases de nivel inferior. O Las clases abstractas no tienen instancias directamente. Se utilizan para agrupar otras clases y capturar informacin que es comn al grupo. O La clase abstracta puede incluir mtodos implementados y no implementados o abstractos, miembros dato constantes y otros no constantes.
Sobrecarga
O Es una propiedad que describe una
O O O
caracterstica adecuada que utiliza el mismo nombre de operacin para representar operaciones similares que se comportan de modo diferente cuando se aplican a clases diferentes. En lenguajes de programacin estructurados o convencionales soportan sobrecarga para algunas de las operaciones de tipos de datos dentro de las cuales estn: enteros reales caracteres
Ligadura dinmica
O En lenguajes de programacin estructurados o O O O O
convencionales soportan sobrecarga para algunas de las operaciones de tipos de datos dentro de las cuales estn: enteros reales Caracteres la ligadura esttica permite un tiempo de ejecucin mas rpido que la ligadura dinmica que necesita resolver estos enlaces en tiempos de ejecucin , sin embargo en la ligadura esttica se ha de especificar en tiempo de compilacin las operaciones exactas a que responder una invocacin del mtodo especifica as como conocer sus tipos.
Polimorfismo
O Una de las caractersticas
fundamentales de la OOP es el polimorfismo, que es la posibilidad de construir varios mtodos con el mismo nombre, pero con relacin a la clase a la que pertenece cada uno, con comportamientos diferentes. Esto conlleva la habilidad de enviar un mismo mensaje a objetos de clases diferentes.
caracterstica aportada por la OOP. Esta propiedad indica la posibilidad de definir varias operaciones con el mismo nombre, diferencindolas nicamente en los parmetros de entrada. Dependiendo del objeto que se introduzca como parmetro de entrada, se elegir automticamente cual de las operaciones se va a realizar.