SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Capítulo 1
El diseño de software




         Diseño y Programación Orientado a Objetos
                    Ingeniería Informática
   Ingeniería Técnica de Informática de Sistemas y Gestión
                     Optativa (6 créditos)
        http://www.info-ab.uclm.es/asignaturas/42579
Palabras clave del capítulo

•    Extensibilidad
•    Reutilización
•    Modularidad
•    Facilidad de mantenimiento
•    Factores de calidad del software internos y externos
•    Paradigmas de programación




    Curso 2004/05         Diseño y Programación Orientada a   2
                                       Objetos
Bibliografía de consulta

•    Construcción de software orientado a objetos (Segunda edición)
     Bertrand Meyer.
     Prentice Hall.

•    Inteniería del software. Un enfoque práctico (Quinta edición)
     Roger S. Pressman.
     McGraw Hill.

•    Piensa en Java (Segunda edición)
     Bruce Eckel.
     Prentice Hall.

    Curso 2004/05         Diseño y Programación Orientada a           3
                                       Objetos
Objetivos del capítulo

•    Resaltar la importancia del diseño

•    Presentar factores de calidad del software

•    Presentar directrices y conceptos de diseño

•    Características del software

•    Pasos hacia la programación orientada a objetos




    Curso 2004/05         Diseño y Programación Orientada a   4
                                       Objetos
Introducción (i)

•    El objetivo general de la Ingeniería del Software es producir
     software de calidad
•    Por calidad se entiende la adecuación del software a los
     requisitos exigidos
•    El camino para obtener software de calidad es mediante un
     planteamiento riguroso del problema
•    El proceso de desarrollo de software es aquel en el que las
     necesidades del usuario son traducidas en requisitos de
     software, estos transformados en diseño y el diseño
     implementado en código




    Curso 2004/05         Diseño y Programación Orientada a          5
                                       Objetos
Introducción (y ii)

•    El proceso de desarrollo de software requiere por un lado un
     conjunto de conceptos, una metodología y un lenguaje propio. A
     este proceso también se le denomina ciclo de vida del software

            Análisis


                    Diseño             Implementación


                                                             Instalación


    Curso 2004/05        Diseño y Programación Orientada a                 6
                                      Objetos
La calidad y sus factores

•    Pueden distinguirse dos tipos de factores de calidad:
      – Los factores de calidad externos son aquellos que son
        perceptibles por los usuarios
         • Corrección              • Eficiencia
         • Robustez                • Portabilidad
         • Extensibilidad          • Facilidad de uso
         • Reutilización           • Funcionalidad
         • Compatibilidad
      – Los factores de calidad internos son los perceptibles por los
        profesionales en computación
         • Modularidad
         • Legibilidad

    Curso 2004/05         Diseño y Programación Orientada a             7
                                       Objetos
Factores de calidad. Definiciones (i)

•    Corrección
      – Habilidad de un sistema o producto software para
         desempeñar las funciones, exactamente como le fueron
         definidas en los requisitos y especificaciones
•    Solidez o robustez
      – Habilidad para funcionar aún en condiciones anormales, es
         decir, con aquellos casos no explicitados en las
         especificaciones. Si se presentan el sistema termina
         “limpiamente”
•    Confiabilidad = Corrección + Robustez



    Curso 2004/05        Diseño y Programación Orientada a          8
                                      Objetos
Factores de calidad. Definiciones (ii)

•    Extensibilidad
      – Facilidad para adaptarse a los cambios en las
        especificaciones. Se logra haciendo simples los diseños de
        los módulos autónomos
•    Reutilización
      – Habilidad para utilizar de nuevo productos de software
        completos o partes de ellos en nuevas aplicaciones
•    Compatibilidad
      – Facilidad con la que un producto software puede
        combinarse con otros. Se logra homogeneidad en el diseño
        y estandarización en la comunicación entre programas


    Curso 2004/05        Diseño y Programación Orientada a           9
                                      Objetos
Factores de calidad. Definiciones (iii)

•    Eficiencia
      – Facilidad de utilizar el mínimo de recursos de cómputo para
         conseguir mayor rapidez y menor necesidad de
         almacenamiento
•    Portabilidad
      – Facilidad de transferir productos a diferentes plataformas
•    Facilidad de uso
      – Facilidad con la que personas con diferentes niveles de
         experiencia pueden aprender a usar los productos software
         y aplicarlos a resolver problemas



    Curso 2004/05        Diseño y Programación Orientada a            10
                                      Objetos
Factores de calidad. Definiciones (y iv)

•    Funcionalidad
      – Conjunto de posibilidades ofrecido por un sistema
•    Otros factores
      – Oportunidad
      – Economía
      – Integridad
      – Facilidad de reparación
      – Facilidad de verificación
      – ...




    Curso 2004/05        Diseño y Programación Orientada a   11
                                      Objetos
¿Qué es diseño? (i)

•    El proceso de aplicar distintas técnicas y principios con el
     propósito de definir un producto con los suficientes detalles
     como para permitir su realización física.

•    Con el diseño se pretende construir un sistema que:
      – Satisfaga determinada especificación del sistema
      – Se ajuste a las limitaciones impuestas por el medio de
        destino
      – Respete requisitos sobre forma, rendimiento utilización de
        recursos, coste, etc.



    Curso 2004/05         Diseño y Programación Orientada a          12
                                       Objetos
¿Qué es diseño? (y ii)

•    El diseño es la primera etapa técnica del proceso de Ingeniería
     del Software, consiste en producir un modelo o representación
     técnica del software que se va a desarrollar
•    El diseño es el proceso sobre el que se asienta la calidad del
     software
•    El diseño de software es un proceso iterativo a través del cual
     se traducen los requisitos en una representación del software
•    El diseño se representa a un alto nivel de abstracción, un nivel
     que se puede seguir hasta requisitos específicos de datos,
     funcionales y de comportamiento




    Curso 2004/05         Diseño y Programación Orientada a             13
                                       Objetos
Metodologías de diseño

•    Diseño de datos:
      – Modelo de información a estructuras de datos
•    Diseño arquitectónico:
      – Define las relaciones entre los elementos estructurales de
        nuestro programa
•    Diseño procedimental:
      – Se transforman los elementos estructurales de nuestro
        programa en una descripción procedimental del software
•    Diseño de interfaz:
      – Describe cómo se comunica el software consigo mismo y
        con su entorno


    Curso 2004/05         Diseño y Programación Orientada a          14
                                       Objetos
Directrices para un buen diseño

•    El diseño debe implementar todos los requisitos explícitos
     contenidos en el modelo de análisis y debe acomodar todos los
     requisitos implícitos que desee el cliente

•    El diseño debe ser una guía que puedan leer y entender los que
     construyan el código y los que prueban y mantienen el software

•    El diseño debería proporcionar una completa idea de lo que es
     el software, enfocando los dominios de datos, funcional y de
     comportamiento desde la perspectiva de la implementación



    Curso 2004/05        Diseño y Programación Orientada a            15
                                      Objetos
Principios básicos de diseño

•    El diseñador debe considerar enfoques alternativos juzgando a
     cada uno en base a los requisitos del problema, los resultados
     disponibles y los criterios de calidad interna
•    Se deberían poder seguir los pasos de diseño hasta el modelo
     de análisis
•    El diseño no va a reinventar nada que ya esté inventado
•    El diseño debería presentar uniformidad e integración
•    Debe estructurarse para admitir cambios
•    El diseño no es escribir código y escribir código no es diseñar
•    Se debería valorar la calidad del diseño mientras se crea, no
     después de terminado


    Curso 2004/05         Diseño y Programación Orientada a            16
                                       Objetos
Conceptos del diseño (i)

•    A la hora de realizar el diseño del software debes plantearte

      – ¿Qué criterios se pueden usar para dividir el software en
        componentes individuales?

      – ¿Cómo se separan los detalles de una función o de la
        estructura de datos de la representación conceptual del
        software?

      – ¿Existen criterios uniformes que definan la calidad técnica
        de un diseño de programas?


    Curso 2004/05         Diseño y Programación Orientada a           17
                                       Objetos
Conceptos del diseño (ii)

•    Para ayudar a resolver las anteriores preguntas se han
     establecido unos conceptos fundamentales del diseño del
     software
      – Abstracción
      – Refinamiento
      – Modularidad
      – Arquitectura del software
      – Jerarquía de control
      – Partición estructural (horizontal y vertical)
      – Estructura de datos
      – Procedimientos
      – Ocultamiento de la información

    Curso 2004/05        Diseño y Programación Orientada a     18
                                      Objetos
Conceptos del diseño (y iv)

•    El diseño modular efectivo reduce la complejidad, facilita los
     cambios y produce como resultado una implementación más
     sencilla, permitiendo el desarrollo paralelo de las diferentes
     partes del sistema

•    La independencia funcional se adquiere desarrollando módulos
     con una clara función evitando una excesiva interacción con
     otros módulos. Este concepto está derivado de la modularidad,
     la abstracción y el ocultamiento de la información




    Curso 2004/05         Diseño y Programación Orientada a           19
                                       Objetos
Conceptos del diseño (iii)

•    La independencia funcional se mide con dos criterios:

      – Cohesión: extensión del concepto de ocultamiento de
        información. Un módulo cohesivo ejecuta una tarea sencilla
        de un procedimiento de software y requiere poca interacción
        con procedimientos que ejecutan otras partes de un
        programa
      – Acoplamiento: medida de la interconexión entre módulos de
        un programa

•    Interesa una cohesión alta y un acoplamiento bajo


    Curso 2004/05        Diseño y Programación Orientada a            20
                                      Objetos
Modularidad

•    Criterios                   •            Reglas
      – Descomposición modular                 – Correspondencia directa
      – Composición modular                    – Pocas interfaces
      – Comprensibilidad modular               – Interfaces pequeñas
      – Continuidad modular                    – Interfaces explicitas
      – Protección modular                     – Ocultación de la información
                    •   Principios
                         – Unidades modulares lingüísticas
                         – Auto-documentación
                         – Acceso uniforme
                         – Principio de abierto-cerrado
                         – Elección única
    Curso 2004/05           Diseño y Programación Orientada a               21
                                         Objetos
Programación Orientada a Objetos

•    Como paradigma es una filosofía de la que surge una cultura
     nueva que incorpora técnicas y metodologías diferentes
•    En ella el universo computacional está poblado por objetos,
     cada uno responsable de si mismo, y comunicándose con los
     demás por medio de mensajes. Cada objeto representa una
     instancia de alguna clase, y estas clases son miembros de una
     jerarquía de clases unidas vía relaciones de herencia
•    La diferencia entre un objeto y una clase es que un objeto es
     una entidad concreta que existe en tiempo y espacio, mientras
     que una clase representa una abstracción, la esencia de un
     objeto.



    Curso 2004/05        Diseño y Programación Orientada a           22
                                      Objetos
Principios del modelo orientado a objetos

•    Abstracción
      – Descripción simplificada del sistema que resalta unos
        detalles y suprime otros
•    Encapsulación
      – Ocultar detalles de un objeto que no contribuyen a sus
        características esenciales
•    Modularidad
      – Propiedad de un sistema que ha sido descompuesto en un
        conjunto de módulos coherentes e independientes
•    Jerarquía o herencia
      – Abstracciones organizadas por niveles


    Curso 2004/05       Diseño y Programación Orientada a        23
                                     Objetos
Evolución histórica

•    Programación estructurada
•    Programación modular
•    Programación orientada a objetos
•    Programación orientada a aspectos
•    Programación orientada a componentes




    Curso 2004/05       Diseño y Programación Orientada a   24
                                     Objetos
Principios de construcción

FUNCTION busquedaColección(x: elemento, t:colección): BOOLEAN
VAR
  pos: posición;            Variación de tipos
BEGIN                       Variación en implementación
  pos = Comenzar(x, t);
  WHILE not Completa(pos, t) and not Encontrado(pos, t) DO
       pos = Siguiente(pos, x, t);
  busquedaColección = not Completa(pos, t);
END;                        Independencia de la representación
                            Agrupación de rutinas
                            Factorizar los comportamientos comunes

   Curso 2004/05       Diseño y Programación Orientada a        25
                                    Objetos
Resumen

•    El diseño es el proceso sobre el que se asienta la calidad del
     software
•    Por calidad se entiende la adecuación del software a los
     requisitos exigidos
•    El diseño modular efectivo reduce la complejidad, reduce la
     complejidad, facilita los cambios y produce como resultado una
     implementación más sencilla
•    Los principios del modelo orientado a objetos son: abstracción,
     encapsulación, modularidad y jerarquía




    Curso 2004/05         Diseño y Programación Orientada a            26
                                       Objetos

Mais conteúdo relacionado

Mais procurados

Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Jose Emilio Labra Gayo
 
Implementation issues software engineering
Implementation issues software engineeringImplementation issues software engineering
Implementation issues software engineeringrishi ram khanal
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and viewsDr Reeja S R
 
Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9Ian Sommerville
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareBetania Amundaray
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIvano Malavolta
 
Ingenieria de requerimientos 1
Ingenieria de requerimientos 1Ingenieria de requerimientos 1
Ingenieria de requerimientos 1jmpov441
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9Ian Sommerville
 
Diseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesDiseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesAndresRealp1
 
Ch1-Software Engineering 9
Ch1-Software Engineering 9Ch1-Software Engineering 9
Ch1-Software Engineering 9Ian Sommerville
 
Estrategias de procesamiento de consultas distribuidas
Estrategias de procesamiento de consultas distribuidasEstrategias de procesamiento de consultas distribuidas
Estrategias de procesamiento de consultas distribuidasJosé Mendoza
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsAmr E. Mohamed
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project managementjhudyne
 

Mais procurados (20)

Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001
 
Implementation issues software engineering
Implementation issues software engineeringImplementation issues software engineering
Implementation issues software engineering
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
Ch4-Software Engineering 9
Ch4-Software Engineering 9Ch4-Software Engineering 9
Ch4-Software Engineering 9
 
Ch3 - Agile SW Dev
Ch3 - Agile SW DevCh3 - Agile SW Dev
Ch3 - Agile SW Dev
 
Ch16 component based software engineering
Ch16 component based software engineeringCh16 component based software engineering
Ch16 component based software engineering
 
Fundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de softwareFundamentos básicos para el diseño de software
Fundamentos básicos para el diseño de software
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Modelos concurrentes
Modelos concurrentesModelos concurrentes
Modelos concurrentes
 
Ch3. agile sw dev
Ch3. agile sw devCh3. agile sw dev
Ch3. agile sw dev
 
Ingenieria de requerimientos 1
Ingenieria de requerimientos 1Ingenieria de requerimientos 1
Ingenieria de requerimientos 1
 
Requirements Engineering
Requirements EngineeringRequirements Engineering
Requirements Engineering
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9
 
Prototipado del software
Prototipado del softwarePrototipado del software
Prototipado del software
 
Diseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesDiseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentes
 
Ch1-Software Engineering 9
Ch1-Software Engineering 9Ch1-Software Engineering 9
Ch1-Software Engineering 9
 
Estrategias de procesamiento de consultas distribuidas
Estrategias de procesamiento de consultas distribuidasEstrategias de procesamiento de consultas distribuidas
Estrategias de procesamiento de consultas distribuidas
 
SE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design Patterns
 
Software engineering project management
Software engineering project managementSoftware engineering project management
Software engineering project management
 
Unit 2
Unit 2Unit 2
Unit 2
 

Destaque

Capitulo04
Capitulo04Capitulo04
Capitulo04martin
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Softwarelcastillo110
 
7 Principios de Diseño para un software amigable
7 Principios de Diseño para un software amigable7 Principios de Diseño para un software amigable
7 Principios de Diseño para un software amigableJavier Gala
 
Sesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y disenoSesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y disenoJulio Pari
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Oswaldo Hernández
 
Fundamentos del diseño
Fundamentos del diseñoFundamentos del diseño
Fundamentos del diseñoflacorpsemuh
 
Fundamentos del diseño
Fundamentos del diseñoFundamentos del diseño
Fundamentos del diseñoOmar Duarte
 
Fundamento Diseño, Color, Principios Diseño Textil
Fundamento Diseño, Color, Principios Diseño TextilFundamento Diseño, Color, Principios Diseño Textil
Fundamento Diseño, Color, Principios Diseño TextilCesar Coutiño
 
FUNDAMENTOS DEL DISEÑO: DISEÑO Y FORMA
FUNDAMENTOS DEL DISEÑO: DISEÑO Y FORMAFUNDAMENTOS DEL DISEÑO: DISEÑO Y FORMA
FUNDAMENTOS DEL DISEÑO: DISEÑO Y FORMAguest950130
 
Unidad 1 conceptos del diseño
Unidad 1 conceptos del diseñoUnidad 1 conceptos del diseño
Unidad 1 conceptos del diseñoSarai Rojas Aguiar
 
Fundamentos del diseño 2 unidad uno
Fundamentos del diseño 2 unidad unoFundamentos del diseño 2 unidad uno
Fundamentos del diseño 2 unidad unomirkamarcelamoreno
 

Destaque (20)

Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Capitulo04
Capitulo04Capitulo04
Capitulo04
 
DiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del SoftwareDiseñO Del Software E IngenieríA Del Software
DiseñO Del Software E IngenieríA Del Software
 
7 Principios de Diseño para un software amigable
7 Principios de Diseño para un software amigable7 Principios de Diseño para un software amigable
7 Principios de Diseño para un software amigable
 
Sesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y disenoSesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y diseno
 
Proceso de diseño
Proceso de diseñoProceso de diseño
Proceso de diseño
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
Diagramas de Clases, Secuencia, Patrones de Diseño MVC, Disño de Interfaces d...
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Pilas Colas
Pilas ColasPilas Colas
Pilas Colas
 
Análisis de objeto
Análisis de objetoAnálisis de objeto
Análisis de objeto
 
Fundamentos del diseño
Fundamentos del diseñoFundamentos del diseño
Fundamentos del diseño
 
Fundamentos de diseño
Fundamentos de diseñoFundamentos de diseño
Fundamentos de diseño
 
Fundamentos del diseño
Fundamentos del diseñoFundamentos del diseño
Fundamentos del diseño
 
Fundamento Diseño, Color, Principios Diseño Textil
Fundamento Diseño, Color, Principios Diseño TextilFundamento Diseño, Color, Principios Diseño Textil
Fundamento Diseño, Color, Principios Diseño Textil
 
FUNDAMENTOS DEL DISEÑO: DISEÑO Y FORMA
FUNDAMENTOS DEL DISEÑO: DISEÑO Y FORMAFUNDAMENTOS DEL DISEÑO: DISEÑO Y FORMA
FUNDAMENTOS DEL DISEÑO: DISEÑO Y FORMA
 
Unidad 1 conceptos del diseño
Unidad 1 conceptos del diseñoUnidad 1 conceptos del diseño
Unidad 1 conceptos del diseño
 
Fundamentos del diseño 2 unidad uno
Fundamentos del diseño 2 unidad unoFundamentos del diseño 2 unidad uno
Fundamentos del diseño 2 unidad uno
 

Semelhante a Diseño de Software

Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CosteCAMILO
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoCAMILO
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de dosteCAMILO
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y CosteCAMILO
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 
Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUPAngelDX
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareEdit Lopez Veloz
 
4. Metodología-2020.pdf
4. Metodología-2020.pdf4. Metodología-2020.pdf
4. Metodología-2020.pdfOscarOlivar4
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranMarijoalbarranb
 
Ingeniería de software - definiciones
Ingeniería de software - definicionesIngeniería de software - definiciones
Ingeniería de software - definicionesdettebe
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECmrojas_unitec
 

Semelhante a Diseño de Software (20)

Presentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de CostePresentacion de Software y Estimacion de Coste
Presentacion de Software y Estimacion de Coste
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
presentacion de software y estimacion de doste
presentacion de software y estimacion de dostepresentacion de software y estimacion de doste
presentacion de software y estimacion de doste
 
Proyecto de Software y Coste
Proyecto de Software y CosteProyecto de Software y Coste
Proyecto de Software y Coste
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 
Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUP
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Clase1
Clase1Clase1
Clase1
 
Introducción a la Ingeniria del Software
Introducción a la Ingeniria del SoftwareIntroducción a la Ingeniria del Software
Introducción a la Ingeniria del Software
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
4. Metodología-2020.pdf
4. Metodología-2020.pdf4. Metodología-2020.pdf
4. Metodología-2020.pdf
 
Actividad remedial_Maria_Albarran
Actividad remedial_Maria_AlbarranActividad remedial_Maria_Albarran
Actividad remedial_Maria_Albarran
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Ingeniería de software - definiciones
Ingeniería de software - definicionesIngeniería de software - definiciones
Ingeniería de software - definiciones
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITEC
 
Optativa ii unidad i - 2013
Optativa ii   unidad i - 2013Optativa ii   unidad i - 2013
Optativa ii unidad i - 2013
 
Plan
PlanPlan
Plan
 

Último

Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 

Último (20)

Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 

Diseño de Software

  • 1. Capítulo 1 El diseño de software Diseño y Programación Orientado a Objetos Ingeniería Informática Ingeniería Técnica de Informática de Sistemas y Gestión Optativa (6 créditos) http://www.info-ab.uclm.es/asignaturas/42579
  • 2. Palabras clave del capítulo • Extensibilidad • Reutilización • Modularidad • Facilidad de mantenimiento • Factores de calidad del software internos y externos • Paradigmas de programación Curso 2004/05 Diseño y Programación Orientada a 2 Objetos
  • 3. Bibliografía de consulta • Construcción de software orientado a objetos (Segunda edición) Bertrand Meyer. Prentice Hall. • Inteniería del software. Un enfoque práctico (Quinta edición) Roger S. Pressman. McGraw Hill. • Piensa en Java (Segunda edición) Bruce Eckel. Prentice Hall. Curso 2004/05 Diseño y Programación Orientada a 3 Objetos
  • 4. Objetivos del capítulo • Resaltar la importancia del diseño • Presentar factores de calidad del software • Presentar directrices y conceptos de diseño • Características del software • Pasos hacia la programación orientada a objetos Curso 2004/05 Diseño y Programación Orientada a 4 Objetos
  • 5. Introducción (i) • El objetivo general de la Ingeniería del Software es producir software de calidad • Por calidad se entiende la adecuación del software a los requisitos exigidos • El camino para obtener software de calidad es mediante un planteamiento riguroso del problema • El proceso de desarrollo de software es aquel en el que las necesidades del usuario son traducidas en requisitos de software, estos transformados en diseño y el diseño implementado en código Curso 2004/05 Diseño y Programación Orientada a 5 Objetos
  • 6. Introducción (y ii) • El proceso de desarrollo de software requiere por un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le denomina ciclo de vida del software Análisis Diseño Implementación Instalación Curso 2004/05 Diseño y Programación Orientada a 6 Objetos
  • 7. La calidad y sus factores • Pueden distinguirse dos tipos de factores de calidad: – Los factores de calidad externos son aquellos que son perceptibles por los usuarios • Corrección • Eficiencia • Robustez • Portabilidad • Extensibilidad • Facilidad de uso • Reutilización • Funcionalidad • Compatibilidad – Los factores de calidad internos son los perceptibles por los profesionales en computación • Modularidad • Legibilidad Curso 2004/05 Diseño y Programación Orientada a 7 Objetos
  • 8. Factores de calidad. Definiciones (i) • Corrección – Habilidad de un sistema o producto software para desempeñar las funciones, exactamente como le fueron definidas en los requisitos y especificaciones • Solidez o robustez – Habilidad para funcionar aún en condiciones anormales, es decir, con aquellos casos no explicitados en las especificaciones. Si se presentan el sistema termina “limpiamente” • Confiabilidad = Corrección + Robustez Curso 2004/05 Diseño y Programación Orientada a 8 Objetos
  • 9. Factores de calidad. Definiciones (ii) • Extensibilidad – Facilidad para adaptarse a los cambios en las especificaciones. Se logra haciendo simples los diseños de los módulos autónomos • Reutilización – Habilidad para utilizar de nuevo productos de software completos o partes de ellos en nuevas aplicaciones • Compatibilidad – Facilidad con la que un producto software puede combinarse con otros. Se logra homogeneidad en el diseño y estandarización en la comunicación entre programas Curso 2004/05 Diseño y Programación Orientada a 9 Objetos
  • 10. Factores de calidad. Definiciones (iii) • Eficiencia – Facilidad de utilizar el mínimo de recursos de cómputo para conseguir mayor rapidez y menor necesidad de almacenamiento • Portabilidad – Facilidad de transferir productos a diferentes plataformas • Facilidad de uso – Facilidad con la que personas con diferentes niveles de experiencia pueden aprender a usar los productos software y aplicarlos a resolver problemas Curso 2004/05 Diseño y Programación Orientada a 10 Objetos
  • 11. Factores de calidad. Definiciones (y iv) • Funcionalidad – Conjunto de posibilidades ofrecido por un sistema • Otros factores – Oportunidad – Economía – Integridad – Facilidad de reparación – Facilidad de verificación – ... Curso 2004/05 Diseño y Programación Orientada a 11 Objetos
  • 12. ¿Qué es diseño? (i) • El proceso de aplicar distintas técnicas y principios con el propósito de definir un producto con los suficientes detalles como para permitir su realización física. • Con el diseño se pretende construir un sistema que: – Satisfaga determinada especificación del sistema – Se ajuste a las limitaciones impuestas por el medio de destino – Respete requisitos sobre forma, rendimiento utilización de recursos, coste, etc. Curso 2004/05 Diseño y Programación Orientada a 12 Objetos
  • 13. ¿Qué es diseño? (y ii) • El diseño es la primera etapa técnica del proceso de Ingeniería del Software, consiste en producir un modelo o representación técnica del software que se va a desarrollar • El diseño es el proceso sobre el que se asienta la calidad del software • El diseño de software es un proceso iterativo a través del cual se traducen los requisitos en una representación del software • El diseño se representa a un alto nivel de abstracción, un nivel que se puede seguir hasta requisitos específicos de datos, funcionales y de comportamiento Curso 2004/05 Diseño y Programación Orientada a 13 Objetos
  • 14. Metodologías de diseño • Diseño de datos: – Modelo de información a estructuras de datos • Diseño arquitectónico: – Define las relaciones entre los elementos estructurales de nuestro programa • Diseño procedimental: – Se transforman los elementos estructurales de nuestro programa en una descripción procedimental del software • Diseño de interfaz: – Describe cómo se comunica el software consigo mismo y con su entorno Curso 2004/05 Diseño y Programación Orientada a 14 Objetos
  • 15. Directrices para un buen diseño • El diseño debe implementar todos los requisitos explícitos contenidos en el modelo de análisis y debe acomodar todos los requisitos implícitos que desee el cliente • El diseño debe ser una guía que puedan leer y entender los que construyan el código y los que prueban y mantienen el software • El diseño debería proporcionar una completa idea de lo que es el software, enfocando los dominios de datos, funcional y de comportamiento desde la perspectiva de la implementación Curso 2004/05 Diseño y Programación Orientada a 15 Objetos
  • 16. Principios básicos de diseño • El diseñador debe considerar enfoques alternativos juzgando a cada uno en base a los requisitos del problema, los resultados disponibles y los criterios de calidad interna • Se deberían poder seguir los pasos de diseño hasta el modelo de análisis • El diseño no va a reinventar nada que ya esté inventado • El diseño debería presentar uniformidad e integración • Debe estructurarse para admitir cambios • El diseño no es escribir código y escribir código no es diseñar • Se debería valorar la calidad del diseño mientras se crea, no después de terminado Curso 2004/05 Diseño y Programación Orientada a 16 Objetos
  • 17. Conceptos del diseño (i) • A la hora de realizar el diseño del software debes plantearte – ¿Qué criterios se pueden usar para dividir el software en componentes individuales? – ¿Cómo se separan los detalles de una función o de la estructura de datos de la representación conceptual del software? – ¿Existen criterios uniformes que definan la calidad técnica de un diseño de programas? Curso 2004/05 Diseño y Programación Orientada a 17 Objetos
  • 18. Conceptos del diseño (ii) • Para ayudar a resolver las anteriores preguntas se han establecido unos conceptos fundamentales del diseño del software – Abstracción – Refinamiento – Modularidad – Arquitectura del software – Jerarquía de control – Partición estructural (horizontal y vertical) – Estructura de datos – Procedimientos – Ocultamiento de la información Curso 2004/05 Diseño y Programación Orientada a 18 Objetos
  • 19. Conceptos del diseño (y iv) • El diseño modular efectivo reduce la complejidad, facilita los cambios y produce como resultado una implementación más sencilla, permitiendo el desarrollo paralelo de las diferentes partes del sistema • La independencia funcional se adquiere desarrollando módulos con una clara función evitando una excesiva interacción con otros módulos. Este concepto está derivado de la modularidad, la abstracción y el ocultamiento de la información Curso 2004/05 Diseño y Programación Orientada a 19 Objetos
  • 20. Conceptos del diseño (iii) • La independencia funcional se mide con dos criterios: – Cohesión: extensión del concepto de ocultamiento de información. Un módulo cohesivo ejecuta una tarea sencilla de un procedimiento de software y requiere poca interacción con procedimientos que ejecutan otras partes de un programa – Acoplamiento: medida de la interconexión entre módulos de un programa • Interesa una cohesión alta y un acoplamiento bajo Curso 2004/05 Diseño y Programación Orientada a 20 Objetos
  • 21. Modularidad • Criterios • Reglas – Descomposición modular – Correspondencia directa – Composición modular – Pocas interfaces – Comprensibilidad modular – Interfaces pequeñas – Continuidad modular – Interfaces explicitas – Protección modular – Ocultación de la información • Principios – Unidades modulares lingüísticas – Auto-documentación – Acceso uniforme – Principio de abierto-cerrado – Elección única Curso 2004/05 Diseño y Programación Orientada a 21 Objetos
  • 22. Programación Orientada a Objetos • Como paradigma es una filosofía de la que surge una cultura nueva que incorpora técnicas y metodologías diferentes • En ella el universo computacional está poblado por objetos, cada uno responsable de si mismo, y comunicándose con los demás por medio de mensajes. Cada objeto representa una instancia de alguna clase, y estas clases son miembros de una jerarquía de clases unidas vía relaciones de herencia • La diferencia entre un objeto y una clase es que un objeto es una entidad concreta que existe en tiempo y espacio, mientras que una clase representa una abstracción, la esencia de un objeto. Curso 2004/05 Diseño y Programación Orientada a 22 Objetos
  • 23. Principios del modelo orientado a objetos • Abstracción – Descripción simplificada del sistema que resalta unos detalles y suprime otros • Encapsulación – Ocultar detalles de un objeto que no contribuyen a sus características esenciales • Modularidad – Propiedad de un sistema que ha sido descompuesto en un conjunto de módulos coherentes e independientes • Jerarquía o herencia – Abstracciones organizadas por niveles Curso 2004/05 Diseño y Programación Orientada a 23 Objetos
  • 24. Evolución histórica • Programación estructurada • Programación modular • Programación orientada a objetos • Programación orientada a aspectos • Programación orientada a componentes Curso 2004/05 Diseño y Programación Orientada a 24 Objetos
  • 25. Principios de construcción FUNCTION busquedaColección(x: elemento, t:colección): BOOLEAN VAR pos: posición; Variación de tipos BEGIN Variación en implementación pos = Comenzar(x, t); WHILE not Completa(pos, t) and not Encontrado(pos, t) DO pos = Siguiente(pos, x, t); busquedaColección = not Completa(pos, t); END; Independencia de la representación Agrupación de rutinas Factorizar los comportamientos comunes Curso 2004/05 Diseño y Programación Orientada a 25 Objetos
  • 26. Resumen • El diseño es el proceso sobre el que se asienta la calidad del software • Por calidad se entiende la adecuación del software a los requisitos exigidos • El diseño modular efectivo reduce la complejidad, reduce la complejidad, facilita los cambios y produce como resultado una implementación más sencilla • Los principios del modelo orientado a objetos son: abstracción, encapsulación, modularidad y jerarquía Curso 2004/05 Diseño y Programación Orientada a 26 Objetos