SlideShare una empresa de Scribd logo
1 de 2
DISEÑO DE SOFTWARE
Tiempo invertido en la fase de implementación
Todo diseño software debe cumplir los siguientes principios.
• Abstracción: Aislar un elemento de su contexto, para centrarse en el qué y no en el cómo.
o Abstracción de datos: Colección identificada de datos que describe un objeto. Su objetivo es encontrar una jerarquía en los datos.
o Abstracción procedimental: Secuencia identificada de instrucciones que tiene una función específica y limitada.
• Modularidad: Criterios estructurales que nos proporcionan información acerca de módulos individuales y sus interconexiones. Se busca conseguir la
mayor independencia entre módulos mediante la cohesión y el acoplamiento
• Cohesión: Mide la relación funcional entre módulos.
• Acoplamiento: Mide el nivel de dependencia entre dos módulos.
• Ocultación de la Información: Los módulos deben diseñarse de manera que la información sea inaccesible a otros módulos que no necesiten dicha
información. Directamente relacionado con Abstracción, Cohesión y Acoplamiento
• Complejidad: mide ciertos aspectos del software con el objetivo de evaluar el diseño. Se puede clasificar en:
o Intra-Modular: Interior de un modulo.
o Inter-Modular: Entre módulos.
Metodologías
Patrones y antipatrones
• Los patrones proporcionan soluciones a problemas recurrentes, facilitando la comprensión, mantenimiento y extensión, apoyando la construcción de
software de calidad. Estos patrones son: open-closed, single responsability, Liskov substitution, interface segregation, dependency inversion.
• Los antipatrones definen situaciones y costumbres que es mejor evitar. Algunos ejemplos son: God class, lava flow, spaguetti code, poltergeist, etc.
• Descomposición Funcional
• Diseño de flujo de datos:
o Utiliza el flujo de información
para derivar la estructura del
programa.
• Diseño basado en estructuras de
datos
• Orientada a objetos
• Booch
• Fusion
• RUP
Consta de 3 pasos:
1. Identificar los objetos.
2. Determinar sus atributos y
servicios.
3. Determinar las relaciones entre
objetos.
• No orientada a objetos

Más contenido relacionado

La actualidad más candente

Programacion Orientado a Objetos
Programacion Orientado a ObjetosProgramacion Orientado a Objetos
Programacion Orientado a Objetoscesarzd15
 
Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertosguestdb98e1
 
Data Model & Singleton pattern
Data Model & Singleton patternData Model & Singleton pattern
Data Model & Singleton patternripoblet
 
DISEÑO ESTRUCTURADO(MAPA CONCEPTUAL)
DISEÑO ESTRUCTURADO(MAPA CONCEPTUAL)DISEÑO ESTRUCTURADO(MAPA CONCEPTUAL)
DISEÑO ESTRUCTURADO(MAPA CONCEPTUAL)marialej90
 
Sistemas expertos
Sistemas expertos  Sistemas expertos
Sistemas expertos Gian Franco
 
Presentacion de sistemas de autor
Presentacion de sistemas de autorPresentacion de sistemas de autor
Presentacion de sistemas de autorkaterin2000
 
Lenguaje de programacion maria gomez
Lenguaje de programacion maria gomezLenguaje de programacion maria gomez
Lenguaje de programacion maria gomezMariaAlejandra420
 

La actualidad más candente (9)

Programacion Orientado a Objetos
Programacion Orientado a ObjetosProgramacion Orientado a Objetos
Programacion Orientado a Objetos
 
Sistemas expertos
Sistemas expertosSistemas expertos
Sistemas expertos
 
Data Model & Singleton pattern
Data Model & Singleton patternData Model & Singleton pattern
Data Model & Singleton pattern
 
DISEÑO ESTRUCTURADO(MAPA CONCEPTUAL)
DISEÑO ESTRUCTURADO(MAPA CONCEPTUAL)DISEÑO ESTRUCTURADO(MAPA CONCEPTUAL)
DISEÑO ESTRUCTURADO(MAPA CONCEPTUAL)
 
Sistemas expertos
Sistemas expertos  Sistemas expertos
Sistemas expertos
 
Diseño conceptual
Diseño conceptualDiseño conceptual
Diseño conceptual
 
Presentacion de sistemas de autor
Presentacion de sistemas de autorPresentacion de sistemas de autor
Presentacion de sistemas de autor
 
Lenguaje de programacion maria gomez
Lenguaje de programacion maria gomezLenguaje de programacion maria gomez
Lenguaje de programacion maria gomez
 
Modularidad
ModularidadModularidad
Modularidad
 

Similar a Diseño de software: principios, metodologías y patrones

Fundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de SoftwareFundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de SoftwareRicardoAlvarez235
 
Fundamentos Básicos para el Diseño del Software - Sistemas II
Fundamentos Básicos para el Diseño del Software - Sistemas IIFundamentos Básicos para el Diseño del Software - Sistemas II
Fundamentos Básicos para el Diseño del Software - Sistemas IIJimmyWilfredMassVerd
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Softwarealfmuny
 
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116AlejandroCoronado26
 
Fundamentos del software
Fundamentos del softwareFundamentos del software
Fundamentos del softwaremrquaife
 
Comunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertidoComunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertidoJamil Cajamarca
 
Diseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetosDiseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetosFabiola Laguna
 
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
 
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
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSCAMILO
 
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
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteCAMILO
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 

Similar a Diseño de software: principios, metodologías y patrones (20)

Fundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de SoftwareFundamentos Basicos para El Diseño de Software
Fundamentos Basicos para El Diseño de Software
 
Fundamentos Básicos para el Diseño del Software - Sistemas II
Fundamentos Básicos para el Diseño del Software - Sistemas IIFundamentos Básicos para el Diseño del Software - Sistemas II
Fundamentos Básicos para el Diseño del Software - Sistemas II
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
 
tecnologiasoo-01-140709001709-phpapp02.pdf
tecnologiasoo-01-140709001709-phpapp02.pdftecnologiasoo-01-140709001709-phpapp02.pdf
tecnologiasoo-01-140709001709-phpapp02.pdf
 
Tecnología Orientada a Objetos
Tecnología Orientada a ObjetosTecnología Orientada a Objetos
Tecnología Orientada a Objetos
 
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
Fundamentos básicos para el Diseño de Software - Alejandro Coronado 26776116
 
Fundamentos del software
Fundamentos del softwareFundamentos del software
Fundamentos del software
 
Comunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertidoComunidad emagister 63082_63082-convertido
Comunidad emagister 63082_63082-convertido
 
Diseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetosDiseño de software y diseño orientado a objetos
Diseño de software y diseño orientado a objetos
 
Semana-ADS-03.pdf
Semana-ADS-03.pdfSemana-ADS-03.pdf
Semana-ADS-03.pdf
 
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
 
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
 
PROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOSPROYECTOS DE SOFTWARE Y COSTOS
PROYECTOS DE SOFTWARE Y COSTOS
 
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
 
Proyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de CosteProyecto de Software y Estimacion de Coste
Proyecto de Software y Estimacion de Coste
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Diseño arquitectonico
Diseño arquitectonicoDiseño arquitectonico
Diseño arquitectonico
 

Más de David M. Martín García

Más de David M. Martín García (7)

Principales características de PostgreSQL
Principales características de PostgreSQLPrincipales características de PostgreSQL
Principales características de PostgreSQL
 
Reverse Engineering in Java: Metaclases
Reverse Engineering in Java: MetaclasesReverse Engineering in Java: Metaclases
Reverse Engineering in Java: Metaclases
 
Anti-patterns in software: Orgía de objetos
Anti-patterns in software: Orgía de objetosAnti-patterns in software: Orgía de objetos
Anti-patterns in software: Orgía de objetos
 
Modelo de vistas de Kruchten - Software Architecture
Modelo de vistas de Kruchten - Software ArchitectureModelo de vistas de Kruchten - Software Architecture
Modelo de vistas de Kruchten - Software Architecture
 
MS DSL Tools - Metamodelo de la prototool
MS DSL Tools - Metamodelo de la prototoolMS DSL Tools - Metamodelo de la prototool
MS DSL Tools - Metamodelo de la prototool
 
Estilos arquitéctonicos en el software
Estilos arquitéctonicos en el softwareEstilos arquitéctonicos en el software
Estilos arquitéctonicos en el software
 
Documentación en el software
Documentación en el softwareDocumentación en el software
Documentación en el software
 

Diseño de software: principios, metodologías y patrones

  • 1. DISEÑO DE SOFTWARE Tiempo invertido en la fase de implementación
  • 2. Todo diseño software debe cumplir los siguientes principios. • Abstracción: Aislar un elemento de su contexto, para centrarse en el qué y no en el cómo. o Abstracción de datos: Colección identificada de datos que describe un objeto. Su objetivo es encontrar una jerarquía en los datos. o Abstracción procedimental: Secuencia identificada de instrucciones que tiene una función específica y limitada. • Modularidad: Criterios estructurales que nos proporcionan información acerca de módulos individuales y sus interconexiones. Se busca conseguir la mayor independencia entre módulos mediante la cohesión y el acoplamiento • Cohesión: Mide la relación funcional entre módulos. • Acoplamiento: Mide el nivel de dependencia entre dos módulos. • Ocultación de la Información: Los módulos deben diseñarse de manera que la información sea inaccesible a otros módulos que no necesiten dicha información. Directamente relacionado con Abstracción, Cohesión y Acoplamiento • Complejidad: mide ciertos aspectos del software con el objetivo de evaluar el diseño. Se puede clasificar en: o Intra-Modular: Interior de un modulo. o Inter-Modular: Entre módulos. Metodologías Patrones y antipatrones • Los patrones proporcionan soluciones a problemas recurrentes, facilitando la comprensión, mantenimiento y extensión, apoyando la construcción de software de calidad. Estos patrones son: open-closed, single responsability, Liskov substitution, interface segregation, dependency inversion. • Los antipatrones definen situaciones y costumbres que es mejor evitar. Algunos ejemplos son: God class, lava flow, spaguetti code, poltergeist, etc. • Descomposición Funcional • Diseño de flujo de datos: o Utiliza el flujo de información para derivar la estructura del programa. • Diseño basado en estructuras de datos • Orientada a objetos • Booch • Fusion • RUP Consta de 3 pasos: 1. Identificar los objetos. 2. Determinar sus atributos y servicios. 3. Determinar las relaciones entre objetos. • No orientada a objetos