6
Fases del ciclo de vida del software: 1) Análisis, 6% 2) Diseño, 5% 3) Implementación, 7% 4) Depuración, 15% 5) Mantenimiento, 67% Factores calidad del software Eficiencia Portabilidad Verificabilidad Integridad(protección contra procesos sin derecho de acceso) Facilidad de uso Robustez (situaciones anómalas) Extensibilidad Reutilización Compatibilidad, ...  Abstracción en programación  Capacidad para encapsular y ai slar la información del diseño y ejecución. Mecanismos en programación: Procedimientos y funciones Tipos de datos abstractos (TDA) Objetos: son TDA a los que se añaden mecanismos como herencia, métodos, etc. Programación Estructurada Desde principios de los 70. Dificultad de trabajo en grupo. No hay correspondencia estrecha entre datos reales y programas. Abstracción de operaciones Estructura de un módulo: Interfaz Datos de entrada Datos de salida Descripción funcionalidad Implementación Datos locales Secuencia de instrucciones Sintaxis del l enguaje: Organización del código en bloques de instrucciones Definición de funciones y procedimientos Extensión del lenguaje con nuevas operaciones Llamadas a nuevas funciones y procedimi entos Tipos Abstractos de datos Se fundamenta en: Abstracción de Datos + Abstracción de Operaciones Un tipo abstracto de datos consiste en: Estructura de datos que almacena i nformación para representar un determinado concepto Funcionalidad: conjunto de operaciones que se pueden realizar sobre el tipo de datos Sintaxis del lenguaje: Módulos asociados a tipos de datos No introduce necesariamente variaciones respecto a l a programación modular

POO Resumen

Embed Size (px)

Citation preview

5/7/2018 POO Resumen - slidepdf.com

http://slidepdf.com/reader/full/poo-resumen 1/6

 

Fases del ciclo de vida del software:1) Análisis, 6%2) Diseño, 5%3) Implementación, 7%4) Depuración, 15%5) Mantenimiento, 67%

Factores calidad del software EficienciaPortabilidadVerificabilidadIntegridad(protección contra procesos sin derecho de acceso)Facilidad de usoRobustez (situaciones anómalas)ExtensibilidadReutilizaciónCompatibilidad, ...

 Abstracción en programación  Capacidad para encapsular y aislar la información del diseño y ejecución.

Mecanismos en programación:Procedimientos y funcionesTipos de datos abstractos (TDA)Objetos: son TDA a los que se añaden mecanismos como herencia, métodos, etc.

Programación EstructuradaDesde principios de los 70. Dificultad de trabajo en grupo. No hay correspondenciaestrecha entre datos reales y programas.

Abstracción de operacionesEstructura de un módulo:InterfazDatos de entrada

Datos de salidaDescripción funcionalidadImplementaciónDatos localesSecuencia de instruccionesSintaxis del lenguaje:Organización del código en bloques de instruccionesDefinición de funciones y procedimientosExtensión del lenguaje con nuevas operacionesLlamadas a nuevas funciones y procedimientos

Tipos Abstractos de datos

Se fundamenta en:Abstracción de Datos + Abstracción de OperacionesUn tipo abstracto de datos consiste en:Estructura de datos que almacena información para representar un determinadoconceptoFuncionalidad: conjunto de operaciones que se pueden realizar sobre el tipo dedatosSintaxis del lenguaje:Módulos asociados a tipos de datosNo introduce necesariamente variaciones respecto a la programación modular

5/7/2018 POO Resumen - slidepdf.com

http://slidepdf.com/reader/full/poo-resumen 2/6

 

 

P rogramación Orientada a Objetos ( P OO) 

La programación orientada a objetos trata de amoldarse al modo de pensar delhombre y no al de la máquina.Esto es posible gracias a la forma racional con la que se manejan las

abstraccionesque representan las entidades del dominio del problema, y apropiedades como la jerarquía o el encapsulamiento.El elemento básico de este paradigma no es la función (elemento básico de laprogramación estructurada), sino un ente denominado ObjetoUn objeto es la representación de un concepto para un programa, y contiene lainformación necesaria para abstraer dicho concepto:los datos que describen su estadolas operaciones que pueden modificar dicho estado, y determinan las capacidadesdel objeto.Un objeto es un trocito de programaUn programa es un conjunto de objetosSe programan cosas que pueden ser muy complejas y para mantener esacomplejidad bajo control hay que partir el problema en piezas controlables

Divide y vencerásl

Los objetos son objetos? Los objetos de programación NO son objetos materialesInicialmente los objetos se inventaron para estructurar programas de simulaciónflujo viales: un auto, un peatón, una calle, un semáforo, ...Actualmente se usan para estructurar objetos materiales, servicios, conceptos, ...,en general cualquier abstracción mental. Ejemplos de objetos Una estructura algebraica (ej. un grupo)Un ámbito de trabajo (ej. colores)Un objeto material (ej. un satélite)Un servicio inmaterial (ej. www)

Algo muy ³real´: una cuenta corrienteHabitualmenteun programaempleamuchosobjetosde la mismaclasemuchoscoches, muchossatélites, muchasconexioneswww, muchostransistores, ...Los programadoresdefinenclasesclass Car { ... detalles... }Y luegocreanobjetosde lasclasesdefinidas

CarmiAuto= new Car (...);CarautoDeElisa= new Car (...);Ventajas de uso:Reusabilidad (mecanismos de abstracción y herencia)En programación convencional: uso de funciones y procedimientosAdecuación a entornos de bases de datos.Idónea para tratamiento de Interfaces de Usuario.

Adecuada en prototipos y simulación.

C aracterísticas de P OO El modelo objeto(Booch, Object-Oriented Analysis and Design with Applications,1994):Abstracción

Las características esenciales del objetoDocumento: insertar, borrar, ...Encapsulamiento (ocultamiento de información)

5/7/2018 POO Resumen - slidepdf.com

http://slidepdf.com/reader/full/poo-resumen 3/6

 

 Una clase contiene:+ una interfaz pública+ una implementaciónDocumento: posicionPrevia

Modularidad

Subdivisión de una aplicación en otras más pequeñas (módulos).Un módulo es un conjunto de clasesEditor, Fuente, Documento, «

JerarquíaOrdenamiento de las abstraccionesTipos:Herencia (³es-un´); generalización/especializaciónHerencia simple o múltipleMensaje es-un DocumentoAgregación (³parte-de´)Mensaje: Destinatarios,Asunto,Contenido

PolimorfismoUna misma operación (método) realizada de diferente modoDocumento: Añadir texto, imagen, «Mensaje: Añadir destinatario, «Otras propiedadesconcurrencia (multitarea)Persistencia (guardar)uso de excepciones (errores)

 Importancia de las palabras  Nombres:ObjetosPropiedadesde objetosAdjetivos:Valoresde laspropiedades-Verbos:Comportamientode los objetos

Lenguajes de P OO Cronología resumida:Fortran (1958)LISP (1959)BASIC (1964)Pascal (1969)Prolog (1971)C++ (1986)Object Pascal (1988)

CLOS (1989)Java (1995)

The journal of object-oriented programming (1988)Primeros lenguajes POO:Simula-67Objeto (datos+métodos). Clase. Herencia.Smalltalk-80Verdadero primer lenguaje de POOConcepto de paso de mensajes (activación de métodos)

5/7/2018 POO Resumen - slidepdf.com

http://slidepdf.com/reader/full/poo-resumen 4/6

 

Otros aspectos de la P OOVentajas del uso de la POOAdecuada en prototipos y simulación.Reusabilidad (mecanismos de abstracción y herencia)En programación convencional: uso de funciones y procedimientosAdecuada para entornos de bases de datos y en sistemas Cliente/ServidorIdónea para tratamiento de Interfaces de Usuario.

Beneficios:Mejor mantenimientoEstructuras más reales de la informaciónEscalabilidadAdaptabilidad

Inconvenientes:Necesidades de estandarización (OMG, Object Management Group)

Coste de conversión de software legado (legacy)

C reación y destrucción de objetos 

Equivalencia de conceptos con programación clásica:Tipo = ClaseDato = ObjetoVariable: existe en ambos tipos de programaciónCreación (uso de constructor):Ejemplo:robot1 = Robot(1,2)robot2 = Robot(3)DestrucciónAutomática (Java, G arbage collection)

E ncapsulamientoEl contenido de alguna información está ocultoBarrera conceptual sobre colección de datos que solo me permite modificarlos através de las operaciones definidas por esa barreraUna clase contiene:una interfaz públicauna implementaciónVentajas:Reducción de la cohesión entre distintos objetos, lo que implica laconstrucción deobjetos independientes. Cambiar un objeto no afecta al resto, sólo al objeto encuestión.Localización: la información relativa a un objeto está centrada en la definición deél mismo y no distribuida en otros objetos. Esto implica fácil modificación, fáciladaptación a los cambios, rápida ubicación de lo que hay que cambiar.Protección Integridad: sólo permite cambiar el estado por sí mismo, a través de sus operaciones propias. Esto asegura laintegridad y la consistencia de la Data.

Miembros privados y públicosInterfaz pública de una clase:Miembros públicos (datos y métodos)Se pueden invocar desde fuera de la clase

Ejemploclase RobotDatos:privado x (entero)privado y (entero)

5/7/2018 POO Resumen - slidepdf.com

http://slidepdf.com/reader/full/poo-resumen 5/6

 

Constructores:público Robot (entero, entero)público Robot (entero)

clase Robot (continuación)Métodos:público void avanzar (entero, entero)

público entero getX ()público entero getY ()público void avanzar (entero)

E  jecución de métodos  Un método es un algoritmo que se puede ejecutar a partir de un objeto.Se dice que un método se ejecuta cuando el objeto recibe un mensaje de ejecucióndel método.Puede acceder a todos los miembros de la clase y a sus argumentos, que son otrosobjetos.Ejemplo:Objeto robot1 (Robot)robot1=Robot(3,2)

robot1.avanzar(1,2)

Herencia Representa el concepto de ³ser un tipo especial de´ o ³ser un/a´ Se establece mediante la definición de subclases, que dan lugar a una jerarquía declasesEjemplo:

RobotConFrontera como subclase de Robothereda sus miembros (x, y)y métodos (avanzar, getX, getY)Ejemplo:Clase: RobotConFronteraClase padre: RobotDatos:privado limX (entero)privado limY (entero)

Herencia simple:Figura, Círculo, Rectángulo, Cuadrado, TriánguloHerencia múltiple:Persona, Profesor, Investigador, ProfesorUniversitarioProblemas de ambigüedad

5/7/2018 POO Resumen - slidepdf.com

http://slidepdf.com/reader/full/poo-resumen 6/6

 

TIPOS DE DATOS PRIMITIVOS

En el lenguaje C existen tres tipos de datos básicos que son el int, floaty char. Apartir de estos tipos se crean otros que funcionan igual pero que difieren en eltamaño como el long, el double, y otros. Estos que son parte del lenguaje seconsideran como tipos "primitivos³.A partir de estos datos primitivos se pueden hacer tipos compuestos:Estructuras y

uniones.

EnterosLos enteros son el tipo de dato más primitivo. Se usan para representar númerosenteros, valga la redundancia. Pero siempre se pueden encontrar otras aplicacionespara los números enteros. En general se pueden usar para representar cualquiervariable discreta.

FlotantesLos valores flotantes son más modernos y se usan mucho en aplicaciones quetrabajan con gráficos o que necesitan de mucha precisión.

Caracteres

Los caracteres o el tipo char solo tienen 1 byte de tamaño y usa la mismarepresentación que los número enteros. La única diferencia es su tamaño y que elchar es usado para representar los 255 caracteres de la tabla ASCII.Este método de ordenación se usa como estándar para que de alguna manera todoslos ordenadores funcionen de la misma forma a la hora de trabajar con caracteres.