Tema 3 Desarrollo de Software Orientado a Objetos PDF

Document Details

YouthfulEuphonium

Uploaded by YouthfulEuphonium

José A. Cruz-Lemus, Félix Óscar García, Ignacio García

Tags

software development object-oriented programming UML software engineering

Summary

This document provides lecture notes on object-oriented software development and UML. It covers topics such as objects, classes, relationships, polymorphism, and UML diagrams. The lecture also includes some discussion about the practical applications and benefits of using object-oriented programming.

Full Transcript

Tema 3 Desarrollo de Software Orientado a Objetos Ingeniería del Software Grado en Ingeniería Informática José A. Cruz-Lemus Félix Óscar García Ignacio García Objetivos § Recordar los conceptos básicos de la orientación a objetos § Aprender...

Tema 3 Desarrollo de Software Orientado a Objetos Ingeniería del Software Grado en Ingeniería Informática José A. Cruz-Lemus Félix Óscar García Ignacio García Objetivos § Recordar los conceptos básicos de la orientación a objetos § Aprender los conceptos básicos de UML como lenguaje de modelado. § Bibliografía: › Schach, S.R. (2004) Classical and Object-Oriented Software Engineering. McGraw Hill › Pressman, R. S. (2005) Ingeniería del Software: Un enfoque práctico. McGraw-Hill. ISBN: 9789701054734 › Sitio Web de OMG para UML, con información del estándar y otros recursos (http://www.uml.org/) 2 Contenidos § Objetos § Introducción § Objeto § Clase § Relaciones entre clases § Jerarquías de clases § Polimorfismo § UML § Introducción a UML § Tipos de Diagramas § Arquitectura del Software 3 Introducción § Áreas de Aplicación: § Lenguajes de programación § Bases de datos § Reingeniería de procesos § CASE § Inteligencia artificial § Sistemas operativos § Interfaces de usuario § Hardware § Beneficios Potenciales: § Mejorar la calidad del software § Acortar los tiempos de desarrollo § Aumentar la productividad del programador § Incrementar la reutilización del software 4 Introducción (ii) § En el Diseño Estructurado PROGRAMAS DATOS D.F.D. Mod. E/R S. Información La Orientación a Objetos...es un paradigma unificador 5 Objeto: Concepto § Unidad atómica formada por la unión de estado y Comportamiento comportamiento. visible § La encapsulación proporciona una cohesión interna fuerte y un OBJETO acoplamiento externo débil. § Para manipular los objetos Estado interno se utilizan los mensajes. Objeto = Estado + Comportamiento + Identidad 6 Objeto: estado de un objeto § Contiene los valores de sus atributos (variables) cuya información cualifica al objeto. § Existe un rango de valores para los atributos § El estado en un instante dado corresponde a una selección de valores de entre todos los posibles en cada atributo. Automóvil Automóvil 50 litros Verde Recorrido de 150 Km. 120 CV Automóvil 1000 Kg. 30 litros 7 Objeto: comportamiento § Describe las acciones y reacciones de los objetos. § Cada operación es un átomo de comportamiento. § Las operaciones se desencadenan por estímulos externos (mensajes), enviados por otros objetos. § El estado y el comportamiento están relacionados. Mensaje Segundo Primer Objeto Objeto Método 1 Método 2....... Método n 8 Objeto: identidad § Caracteriza la existencia de un objeto. § Le distingue de los demás de manera no ambigua independientemente de su estado § Dos objetos se pueden distinguir a pesar de tener atributos idénticos § En el modelado no se representa la identidad de manera específica. § El concepto de identidad es independiente del de estado. 9 Objeto: Encapsulamiento Interfaz pública (qué) Mundo Públicos Atributos Privados Representación privada (cómo) Métodos Privados Públicos 10 Clase § La clase “Persona” § Atributos › Nombre: string › Fecha de nacimiento: fecha › Color del pelo: (negro, blanco, pelirrojo, rubio) § Métodos › Nacer › Crecer › Morir Persona Ana Paco Andrés …. 23 19 40 rubio negro blanco Objetos de la Clase Persona 11 Relaciones entre clases (i) § Los enlaces particulares que relacionan los objetos pueden verse de manera abstracta en el mundo de las clases: § A cada familia de enlaces entre objetos corresponde una relación entre las clase de estos mismos objetos § Existen dos tipos de relaciones entre clases: › La asociación › La agregación 12 Relaciones entre clases (ii) § La Asociación: § Expresa una conexión semántica bidireccional entre clases. § Es una abstracción de los enlaces que existen entre los objetos instancias de esas clases. § Se representan como los enlaces y se diferencian por el contexto del diagrama. enlaces Pepe: Estudiante e1 e2 D.E. de Sistemas Antonio: Estudiante e3 Sara: Estudiante Pepe: Estudiante e1 Ing. Programación e2 Isabel: Estudiante Asignatura Estudiante asociación 13 Relaciones entre clases (iii) § Asociación: Trabaja en > Persona Compañía < Emplea a Persona Compañía Trabaja en > Persona Compañía 1..* 1 Alumnos Asignaturas 1..* 1..* 14 Relaciones entre clases (iv) § La Agregación: 1 Agregado componentes § Es una forma particular de * asociación pero con acoplamiento fuerte y 1 asimétrico coche motor § Una de las clases cumple 1 una función más * importante que la otra. !"#$% !"#$%& § Permite representar asociaciones * * amo/esclavo, &'()*# Persona todo/partes, compuestos / componentes. 15 Relaciones entre clases (v) § La Agregación: Coche marca:String modelo:String Rueda cilindrada:entero anchura:entero diámetro:entero r1, r2, r3, r4: inflar() desinflar() 16 Relaciones entre clases (vi) § La Composición: Suele caer en el examen, echarle un ojo * Texto * Cuadro de texto Contiene Ventana * Botón * Menu 17 Las jerarquías de clases (i) § Las jerarquías de clases o clasificaciones permiten gestionar la complejidad ordenando los objetos dentro de árboles de clases § La Generalización: › Consiste en factorizar los elementos comunes (atributos, operaciones y restricciones) de un conjunto de clases en una clase más general llamada superclase Abstracciones más generales Vehículo Vehículo terrestre Vehículo aéreo Coche Camión Avión Helicópt ero 18 Las jerarquías de clases (ii) § Las jerarquías de clases o clasificaciones permiten gestionar la complejidad ordenando los objetos dentro de árboles de clases § La Especialización: › Permite capturar particularidades de un conjunto de objetos no discriminados por las clases ya identificadas. Las nuevas características se representan por una nueva clase, subclase de una de las clases existentes. Transmisión Continua Discreta Cambio Embrague Caja de Cam bios Extensión por especialización 19 Las jerarquías de clases (iii) § Herencia/Generalización/Especialización § Las subclases heredan las propiedades y métodos de las superclases § Las subclases especializan a la superclase § La superclase es una definición generalista de las subclases Las subclases pueden... Superclase q Añadir a1, a2, a3 q Inhibir m1, m2, m3 q Redefinir Subclase 1 Subclase 2 a1, a2, a3, a3, a7 a1, a2, a3, a4, a5 m1, m2, m3, m3, m5 m1, m2, m3, m3, m4 20 Polimorfismo § Capacidad de una operación de tener más de una interpretación en más de una clase. § Facultad de un método de poder aplicarse a objetos de clases diferentes § Dos formas de polimorfismo § De subclases § De sobrecarga que se utiliza para varias cosas como la suma que en programación puede sumar 2 numero, concatenar 2 letras o frase --> 2+3; 'a'+'v'; 'hola'+'adios' Ejemplo 21 Polimorfismo Objetos es mas eficaz, mas sencillo y menos cambios que el estructurado Objetos vs Estructurado Public class Zoo { Animal[] animales; Public class Animal { public void DarSomnifero (Animal a) { abstract void Dormir () { a.dormir; } }} } Public class Leon extends Public class Tigre extends Public class Oso extends Animal { Animal { Animal { public void Dormir () { public void Dormir () { public void Dormir () { // dormir sobre el vientre // dormir sobre la espalda // dormir en un árbol }} }} }} Polimorfismo Procedure DormirLeon Type TipoAnimal = [ Begin Leon, Oso, Tigre] // Dormir sobre el vientre End Procedure Procedure DormirOso Procedure DormirTigre Begin Begin // Dormir en un árbol // Dormir sobre la espalda End Procedure End Procedure Procedure DarSomnifero Objetos vs Begin Estructurado Select Case TipoAnimal: Leon: DormirLeon; Tigre: DormirTigre; Oso: DormirOso; End Case End Procedure Polimorfismo Objetos vs Estructurado Introducción a UML § UML es un lenguaje de modelado que sirve para visualizar, especificar , construir y documentar un sistema software. § Lenguaje Modelado = Notación + Reglas (Sintácticas, Semánticas) para modelar (representar, comprender) un sistema § UML es apropiado para modelar diversos sistemas § desde SI en empresas hasta aplicaciones distribuidas basadas en la Web, sistemas empotrados de tiempo real muy exigentes, etc. Introducción a UML § Lenguaje muy expresivo que cubre las distintas vistas necesarias para el desarrollo de sistemas § Aprender a aplicar UML de modo eficaz comienza por crear un modelo conceptual de lenguaje, lo cual requiere aprender tres elementos: § Bloques básicos de construcción de UML § Reglas que dictan cómo pueden combinarse esos bloques § Mecanismos comunes que se aplican a lo largo del lenguaje Introducción a UML § UML es sólo un lenguaje § Independiente del Proceso § Uso óptimo con procesos dirigidos por casos de uso, centrados en la arquitectura, iterativos e incrementales § Lenguaje para: § Visualizar § Especificar § Construir y § Documentar Introducción a UML § Lenguaje de modelado estándar: § Vocabulario y reglas centradas en la representación conceptual y física de un sistema § Para la descripción de los planos del software § Cubre las diferentes vistas de la arquitectura de un sistema mientras evoluciona a través del ciclo de vida del desarrollo de software › Vistas Software (estáticas, dinámicas, etc..) à Son como los distintos planos de una casa (fontanería, electricidad, etc..) Introducción a UML § UML para especificar: § Especificar es equivalente a construir modelos que cumplan las condiciones de › no ambigüedad y › completitud. § UML cubre la especificación del análisis, diseño e implementación de un sistema software. Introducción a UML UML para construir § Es posible hacer corresponder con los lenguajes de Ingeniería Directa programación (Java, C++, Modelo CÓDIGO B.Datos, etc.). UML Ingeniería Inversa Introducción a UML § UML cubre la documentación de un sistema: – Requisitos – Arquitectura – Diseño – Código fuente – Planificación – Pruebas – Prototipos – Versiones Tipos de Diagramas § UML 2 tiene 14 tipos de diagramas § Veremos 9 tipos: § Clases § Objetos § Casos de uso § Secuencia § Comunicación § Transición entre estados/de estados § Actividad § Componentes § Despliegue Tipos de Diagramas § Diagrama de Casos de Uso: Ca l cu l a r Nó m i n a Usu a ri o § Muestra un conjunto de casos de uso y actores y sus relaciones. § Cubren la vista de casos de uso estática de un sistema. § Son importantes en el modelado y organización del comportamiento de un sistema. Empleado § Diagrama de Clases: Fi jo Temporal § Muestra un conjunto de clases, interfaces y colaboraciones, así como sus relaciones. § Cubren la vista de diseño estática de un sistema. Tipos de Diagramas § Diagrama de Objetos: § Muestra un conjunto de objetos y sus relaciones. § Representan instantáneas de instancias de los elementos encontrados en los diagramas de clases. § Diagrama de Secuencia: § Es un diagrama de interacción que C lase 1 C las e2 resalta la ordenación temporal de los L L am ad a() mensajes. § Diagrama de Comunicación: § Es un diagrama de interacción que Clase 1 Clase2 resalta la organización estructural de llamada() los objetos que envían y reciben mensajes. Tipos de Diagramas § Diagrama de Transición de Estados: § Máquinas de estados, que constan de: › estados, transiciones, eventos y actividades. § Cubren la vista dinámica de un sistema. § Especialmente importantes en el modelado del comportamiento de: › una interfaz, una clase o una colaboración § Resaltan el comportamiento dirigido por eventos de un objeto § Diagramas de Actividad: Es tado inicial § Tipo especial de diagramas de estado Actividad § Muestra el flujo de actividades dentro entry/ HacerTalCosa() de un sistema. do/ EscribirMilPrimerosPrimos() exit/ LeerHora() § Cubren la vista dinámica de un sistema. [ Hora=13 ] § Resaltan el flujo de control entre Dar saludo vespertino Es tado final objetos. entry/ Mostrar("Buenas tardes") Tipos de Diagramas § Diagrama de Componentes: § Muestran la organización y las dependencias entre un conjunto de componentes. S ervid o r § Cubren la vista de implementación estática de un sistema. F S ervid o r.java S ervid o r.java C lien te.java § Diagramas de Despliegue: § Muestra la configuración de nodos de procesamiento en tiempo de ejecución y los componentes que T erminal residen en ellos. P ro cesad o r S ervido r U n id ad § Cubren la vista de despliegue estática de una arquitectura. Co n so la Arquitectura de un Sistema § La visualización, especificación, construcción y documentación de un sistema con gran cantidad de software requiere que el sistema sea visto desde varias perspectivas § La arquitectura es el mejor artefacto que puede emplearse para: § Manejar los diferentes puntos de vista § Controlar el desarrollo iterativo e incremental de un sistema a lo largo de su ciclo de vida

Use Quizgecko on...
Browser
Browser