SlideShare una empresa de Scribd logo
1 de 6
fundamentos básicos para el
diseño de software
Autor: Luis Javier Pérez García CI: 27229634
Julio del 2021
InstitutoUniversitario
PolitécnicoSantiagoMariño
ExtensiónMérida
Diseño de
Software
 Es el proceso por el que un agente crea una especificación de un
artefacto de software, pensado para cumplir unos objetivos,
utilizando un conjunto de componentes primitivos y sujeto a
restricciones. El diseño de software se puede referir a "toda la
actividad en conceptualizar, enmarcar, implementar, poner en
funcionamiento y, finalmente, modificar sistemas complejos" o "la
actividad que sigue a la especificación de requisitos y precede a la
programación, como en un proceso de ingeniería de software
estilizado.
 El diseño de Software juega un papel importante en el desarrollo
de software lo cual permite al ingeniero de software producir
varios modelos del sistema o producto de que se va a construir el
mismo que forman una especie de plan de la solución de la
aplicación. Estos modelos puede evaluarse en relación con su
calidad y mejorarse antes de generar código, de realizar pruebas y
de que los usuarios finales se vean involucrados a gran escala. El
diseño es el sitio en el que se establece la calidad del software.
Conceptos del
Diseño de
Software
Los conceptos de diseño proporcionan al diseñador de software una base sobre la
que se pueden aplicar métodos más sofisticados. El conjunto de conceptos
fundamentales del diseño ha evolucionado. Son los siguientes:
 Abstracción: La abstracción es el proceso o resultado de la generalización
reduciendo el contenido de información de un concepto o un fenómeno
observable, típicamente para retener información única que es pertinente para
un propósito particular. Es el acto de Representar características esenciales sin
incluir los detalles de fondo o explicaciones.
 Refinamiento: Es el proceso de elaboración. Una jerarquía se desarrolla
descomponiendo una declaración macroscópica de función de un modo sensato
hasta que se logre obtener declaraciones del lenguaje de programación. En cada
paso, una o varias instrucciones de un programa dado se descomponen en
instrucciones más detalladas. La abstracción y El Refinamiento son conceptos
complementarios .
 Modularidad: La arquitectura de software está dividida en componentes
llamados módulos.
 Arquitectura de software: Se refiere a la estructura global del software y las
maneras en que esa estructura proporciona integridad conceptual al sistema.
Una buena arquitectura de software amortizará la inversión en cuanto al
resultado deseado del proyecto, p. ej. en el rendimiento, la calidad, el programa
y el coste.
 Jerarquía de control: Un estructura de programa que representa la organización
de un componente e implica una jerarquía de control.
 Estructural Partitioning: La estructura de programa puede ser dividida
horizontal y verticalmente. Las particiones horizontales definen ramas
separadas de jerarquía modular para cada función importante. Las particiones
verticales sugiere que el control y el trabajo tendrían que ser distribuidos de
arriba abajo en la estructura de programa.
 Estructura de datos: Es una representación de la relación lógica entre los
elementos individuales de los datos.
 Procedimiento de software: Centra en el procesamiento de cada módulo
individualmente.
 Ocultar Información: Los módulos tendrían que ser especificados y diseñados
de modo que la información contenida dentro de un módulo es inaccesible a
otros módulos, que no tienen ninguna necesidad de conocer esa información.
En su modelo de objeto, Grady Booch menciona Abstracción, Encapsulación,
Modularización y Jerarquía como principios fundamentales del diseño de software.
El acrónimo PHAME (del inglés: Principles of Hierarchy, Abstraction,
Modularisation, and Encapsulation) se utiliza a veces para referirse a estos cuatro
principios fundamentales.
Conceptos del
Diseño de
Software
Hay muchos aspectos a considerar en el diseño de una pieza de software. La
importancia de cada consideración tendría que reflejar los objetivos y expectativas
para los que el software está siendo creado. Algunos de estos aspectos son:
 Compatibilidad: El software es capaz de operar con otros productos que están
diseñado para interoperar con otros productos. Por ejemplo, una pieza de
software puede ser compatible con una versión más vieja de sí misma.
 Extensibilidad: Las capacidades nuevas pueden añadirse al software sin cambios
importantes a la arquitectura subyacente.
 Modularidad: El software resultante contiene componentes bien definidos e
independientes que llevan a una mejor mantenibilidad. Los componentes
podrían ser entonces implementados y probados en aislamiento antes de ser
integrados en el sistema de software deseado. Esto permite la división de trabajo
en un proyecto de desarrollo del software.
 Tolerancia a los fallos: El software es resistente y capaz de recuperarse de los
fallos de componente.
 Mantenibilidad: Una forma de medir cómo se consiguen los arreglos de errores
y las modificaciones funcionales. Una alta mantenibilidad puede ser producto de
la modularidad y la extensibilidad.
Consideraciones
de diseño
 Fiabilidad (durabilidad del Software): El software es capaz de realizar una
función bajo determinadas condiciones durante un periodo específico de tiempo.
 Reusabilidad: La capacidad de utilizar algunos o todos los aspectos del software
existente en otros proyectos con pocas o ninguna modificación.
 Robustez: El software es capaz de operar bajo tensión o tolerar una entrada
imprevisible o inexistente. Por ejemplo, puede ser diseñado con resistencia a
condiciones malas de memoria.
 Seguridad: El software es capaz de resistir a influencias y actos hostiles.
 Usabilidad: La interfaz de usuario del software tiene que ser utilizable para su
audiencia objetivo. Los valores por defecto para los parámetros tienen que ser
escogidos de modo que sean una buena elección para la mayoría de los usuarios.
 Rendimiento: El software realiza sus tareas dentro de una ventana temporal que
es aceptable para el usuario, y no requiere demasiada memoria.
 Portabilidad: El software tendría que ser utilizable a través de un número de
entornos y condiciones diferentes.
 Escalabilidad: El software se adapta bien a un número creciente de datos o
usuarios.
Consideraciones
de diseño

Más contenido relacionado

La actualidad más candente

Ingenieria de software basada en componentes -jeiner gonzalez blanco
Ingenieria de software basada en componentes  -jeiner gonzalez blancoIngenieria de software basada en componentes  -jeiner gonzalez blanco
Ingenieria de software basada en componentes -jeiner gonzalez blancoJeiner Gonzalez Blanco
 
Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesEmmanuel Fontán
 
Fundamentos del diseno de software jesus marcano
Fundamentos del diseno de software   jesus marcanoFundamentos del diseno de software   jesus marcano
Fundamentos del diseno de software jesus marcanoGalderIL057
 
4. Diseño e Implementación de Software
4. Diseño e Implementación de Software4. Diseño e Implementación de Software
4. Diseño e Implementación de SoftwareMario A Moreno Rocha
 
14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentesGary Araujo Viscarra
 
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 SoftwareAmbarRuz1
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de softwareLuis Jesus Curbata
 
Software basado en Componentes
Software basado en ComponentesSoftware basado en Componentes
Software basado en ComponentesJeissonAlexander7
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de softwaresairarcf
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Joan Manuel Zabala
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesmellcv
 

La actualidad más candente (20)

Ingenieria de software basada en componentes -jeiner gonzalez blanco
Ingenieria de software basada en componentes  -jeiner gonzalez blancoIngenieria de software basada en componentes  -jeiner gonzalez blanco
Ingenieria de software basada en componentes -jeiner gonzalez blanco
 
Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentes
 
Diseño de Software
Diseño de SoftwareDiseño de Software
Diseño de Software
 
Fundamentos del diseno de software jesus marcano
Fundamentos del diseno de software   jesus marcanoFundamentos del diseno de software   jesus marcano
Fundamentos del diseno de software jesus marcano
 
4. Diseño e Implementación de Software
4. Diseño e Implementación de Software4. Diseño e Implementación de Software
4. Diseño e Implementación de Software
 
Modelamiento software
Modelamiento softwareModelamiento software
Modelamiento software
 
Nixon torrealbav
Nixon torrealbavNixon torrealbav
Nixon torrealbav
 
14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes
 
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
 
Mda mde
Mda mdeMda mde
Mda mde
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
 
Software basado en Componentes
Software basado en ComponentesSoftware basado en Componentes
Software basado en Componentes
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de software
 
Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software Atributos de calidad en el desarrollo de software
Atributos de calidad en el desarrollo de software
 
Presentaciondefundamentosdesoftware
PresentaciondefundamentosdesoftwarePresentaciondefundamentosdesoftware
Presentaciondefundamentosdesoftware
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Ingenieria en Software
Ingenieria en SoftwareIngenieria en Software
Ingenieria en Software
 
Morales aguirreguillermo
Morales aguirreguillermoMorales aguirreguillermo
Morales aguirreguillermo
 
Principios de Ingenieria
Principios de IngenieriaPrincipios de Ingenieria
Principios de Ingenieria
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 

Similar a Fundamentos básicos para el diseño de software

Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software AlessandreMndez
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPedroLuces3
 
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 softwaremichellvillegas3
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadYenny Salazar
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un softwaressalzar
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Softwarealfmuny
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareGerardo Valera
 
Fundamentos Básicos del Diseño de Software
Fundamentos Básicos del Diseño de SoftwareFundamentos Básicos del Diseño de Software
Fundamentos Básicos del Diseño de SoftwareJoseCaira2
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareJesús Molleda
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwarejuankexmisiodj
 
Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +Valentina
 
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
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructuradoDascorp
 
Fundamentos del sofware
Fundamentos del sofwareFundamentos del sofware
Fundamentos del sofwareKatyPerez17
 

Similar a Fundamentos básicos para el diseño de software (20)

Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro LucesPresentación Fundamentos Básicos del Diseño de Software Pedro Luces
Presentación Fundamentos Básicos del Diseño de Software Pedro Luces
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
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
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de Calidad
 
Fundamentos para el diseño de un software
Fundamentos para el diseño de un softwareFundamentos para el diseño de un software
Fundamentos para el diseño de un software
 
Diseno Software
Diseno SoftwareDiseno Software
Diseno Software
 
Presentacion
PresentacionPresentacion
Presentacion
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de software
 
Fundamentos Básicos del Diseño de Software
Fundamentos Básicos del Diseño de SoftwareFundamentos Básicos del Diseño de Software
Fundamentos Básicos del Diseño de Software
 
Fundamentos basicos del diseño de software
Fundamentos basicos del diseño de softwareFundamentos basicos del diseño de software
Fundamentos basicos del diseño de software
 
Prueba de dominio
Prueba de dominioPrueba de dominio
Prueba de dominio
 
Tecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.softwareTecnicas.de.ingenieria.de.software
Tecnicas.de.ingenieria.de.software
 
Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +Diseño, Mantenimiento de Software +
Diseño, Mantenimiento de Software +
 
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
 
Juan velasquez
Juan velasquezJuan velasquez
Juan velasquez
 
8.conceptos de diseño
8.conceptos de diseño8.conceptos de diseño
8.conceptos de diseño
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Fundamentos del sofware
Fundamentos del sofwareFundamentos del sofware
Fundamentos del sofware
 

Último

TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 

Último (20)

TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 

Fundamentos básicos para el diseño de software

  • 1. fundamentos básicos para el diseño de software Autor: Luis Javier Pérez García CI: 27229634 Julio del 2021 InstitutoUniversitario PolitécnicoSantiagoMariño ExtensiónMérida
  • 2. Diseño de Software  Es el proceso por el que un agente crea una especificación de un artefacto de software, pensado para cumplir unos objetivos, utilizando un conjunto de componentes primitivos y sujeto a restricciones. El diseño de software se puede referir a "toda la actividad en conceptualizar, enmarcar, implementar, poner en funcionamiento y, finalmente, modificar sistemas complejos" o "la actividad que sigue a la especificación de requisitos y precede a la programación, como en un proceso de ingeniería de software estilizado.  El diseño de Software juega un papel importante en el desarrollo de software lo cual permite al ingeniero de software producir varios modelos del sistema o producto de que se va a construir el mismo que forman una especie de plan de la solución de la aplicación. Estos modelos puede evaluarse en relación con su calidad y mejorarse antes de generar código, de realizar pruebas y de que los usuarios finales se vean involucrados a gran escala. El diseño es el sitio en el que se establece la calidad del software.
  • 3. Conceptos del Diseño de Software Los conceptos de diseño proporcionan al diseñador de software una base sobre la que se pueden aplicar métodos más sofisticados. El conjunto de conceptos fundamentales del diseño ha evolucionado. Son los siguientes:  Abstracción: La abstracción es el proceso o resultado de la generalización reduciendo el contenido de información de un concepto o un fenómeno observable, típicamente para retener información única que es pertinente para un propósito particular. Es el acto de Representar características esenciales sin incluir los detalles de fondo o explicaciones.  Refinamiento: Es el proceso de elaboración. Una jerarquía se desarrolla descomponiendo una declaración macroscópica de función de un modo sensato hasta que se logre obtener declaraciones del lenguaje de programación. En cada paso, una o varias instrucciones de un programa dado se descomponen en instrucciones más detalladas. La abstracción y El Refinamiento son conceptos complementarios .  Modularidad: La arquitectura de software está dividida en componentes llamados módulos.  Arquitectura de software: Se refiere a la estructura global del software y las maneras en que esa estructura proporciona integridad conceptual al sistema. Una buena arquitectura de software amortizará la inversión en cuanto al resultado deseado del proyecto, p. ej. en el rendimiento, la calidad, el programa y el coste.
  • 4.  Jerarquía de control: Un estructura de programa que representa la organización de un componente e implica una jerarquía de control.  Estructural Partitioning: La estructura de programa puede ser dividida horizontal y verticalmente. Las particiones horizontales definen ramas separadas de jerarquía modular para cada función importante. Las particiones verticales sugiere que el control y el trabajo tendrían que ser distribuidos de arriba abajo en la estructura de programa.  Estructura de datos: Es una representación de la relación lógica entre los elementos individuales de los datos.  Procedimiento de software: Centra en el procesamiento de cada módulo individualmente.  Ocultar Información: Los módulos tendrían que ser especificados y diseñados de modo que la información contenida dentro de un módulo es inaccesible a otros módulos, que no tienen ninguna necesidad de conocer esa información. En su modelo de objeto, Grady Booch menciona Abstracción, Encapsulación, Modularización y Jerarquía como principios fundamentales del diseño de software. El acrónimo PHAME (del inglés: Principles of Hierarchy, Abstraction, Modularisation, and Encapsulation) se utiliza a veces para referirse a estos cuatro principios fundamentales. Conceptos del Diseño de Software
  • 5. Hay muchos aspectos a considerar en el diseño de una pieza de software. La importancia de cada consideración tendría que reflejar los objetivos y expectativas para los que el software está siendo creado. Algunos de estos aspectos son:  Compatibilidad: El software es capaz de operar con otros productos que están diseñado para interoperar con otros productos. Por ejemplo, una pieza de software puede ser compatible con una versión más vieja de sí misma.  Extensibilidad: Las capacidades nuevas pueden añadirse al software sin cambios importantes a la arquitectura subyacente.  Modularidad: El software resultante contiene componentes bien definidos e independientes que llevan a una mejor mantenibilidad. Los componentes podrían ser entonces implementados y probados en aislamiento antes de ser integrados en el sistema de software deseado. Esto permite la división de trabajo en un proyecto de desarrollo del software.  Tolerancia a los fallos: El software es resistente y capaz de recuperarse de los fallos de componente.  Mantenibilidad: Una forma de medir cómo se consiguen los arreglos de errores y las modificaciones funcionales. Una alta mantenibilidad puede ser producto de la modularidad y la extensibilidad. Consideraciones de diseño
  • 6.  Fiabilidad (durabilidad del Software): El software es capaz de realizar una función bajo determinadas condiciones durante un periodo específico de tiempo.  Reusabilidad: La capacidad de utilizar algunos o todos los aspectos del software existente en otros proyectos con pocas o ninguna modificación.  Robustez: El software es capaz de operar bajo tensión o tolerar una entrada imprevisible o inexistente. Por ejemplo, puede ser diseñado con resistencia a condiciones malas de memoria.  Seguridad: El software es capaz de resistir a influencias y actos hostiles.  Usabilidad: La interfaz de usuario del software tiene que ser utilizable para su audiencia objetivo. Los valores por defecto para los parámetros tienen que ser escogidos de modo que sean una buena elección para la mayoría de los usuarios.  Rendimiento: El software realiza sus tareas dentro de una ventana temporal que es aceptable para el usuario, y no requiere demasiada memoria.  Portabilidad: El software tendría que ser utilizable a través de un número de entornos y condiciones diferentes.  Escalabilidad: El software se adapta bien a un número creciente de datos o usuarios. Consideraciones de diseño