SlideShare una empresa de Scribd logo
Diseño del Software e Ingeniería del Software
El diseño del software se encuentra en el núcleo técnico de la ingeniería del software y  se aplica independientemente del modelo de diseño de software que se utilice.  Una vez que se analizan y especifican los requisitos del software, el diseño del software es la primera de las tres actividades técnicas - diseño, generación de código y pruebas- que se requieren para construir y verificar el software.
Los requisitos del software, manifestados por los modelos de datos funcionales y de comportamiento, alimentan la tarea del diseño. Mediante uno de los muchos métodos de diseño la tarea de  diseño produce  un  diseño  de  datos,  un  diseño arquitectónico, un diseño de interfaz y un diseño de componentes.
El diseño de datos transforma el modelo del dominio de información que se crea durante el análisis en las estructuras de datos que se necesitarán para implementar  el software. Los objetos de datos y las relaciones definidas en el diagrama relación entidad y el contenido de datos detallado que se representa en el diccionario de datos proporcionan  la base de la actividad del diseño de datos.
El diseño arquitectónico define la relación entre los elementos estructurales principales del software, los patrones de diseño que se pueden  utilizar para lograr los requisitos que se han definido para el sistema, y las restricciones que afectan  a la manera en que se pueden aplicar los patrones de diseño arquitectónicos  [SHA96].
El  diseño  de  la  interfaz  describe  la  manera  de comunicarse el software dentro de sí mismo, con sis- temas que interoperan dentro de él y con las personas que lo utilizan. Una interfaz implica un flujo de infor- mación (por ejemplo, datos y/o control) y un tipo específico de comportamiento. Por tanto, los diagramas de flujo de control y de datos proporcionan gran par- te de la información que se requiere para el diseño de la interfaz.
El diseño a nivel de componentes transforma los ele- mentos estructurales de la arquitectura del software en una descripción procedimental de los componentes del software. La información que se obtiene de EP, EC y de DTE sirve como base para el diseño de los compo- nentes.
La importancia del diseño del software se puede describir con una  sola palabra -calidad-. El diseño es el lugar en donde se fomentará la calidad en la ingeniería  del  software. El diseño proporciona las representaciones  del software que se pueden evaluar en cuanto a calidad. El diseño es la única forma de convertir exactamente los requisitos de un cliente en un producto o sistema de software finalizado. El dise- ño del software sirve como fundamento para todos los pasos siguientes del soporte del software y de la inge- niería del software.
Diseño y calidad del software Tres características que sirven como guía para la evaluación de un buen diseño: el diseño deberá implementar todos los requisitos explícitos del modelo de análisis, y deberán ajustarse a todos los requisitos implícitos que desea el cliente; el diseño deberá ser una guía legible y comprensible para aquellos que generan código y para aquellos que comprueban y consecuentemente, dan soporte al soft- ware; el diseño deberá proporcionar una imagen completa del software, enfrentándose a los dominios de com- portamiento, funcionales y de datos desde una perspectiva de implementacion
Principiosbásicos del diseño En el proceso de diseño no deberá utilizarse  «orejeras». Un buen diseñador deberá tener en cuenta enfoques alternativos, juzgando  todos  los que se basan en los requisitos del problema. El diseño deberá poderse rastrear hasta el modelo de análisis. El  diseño  no  deberá  inventar  nada  que ya  esté inventado. Los sistemas se construyen  utilizando un conjunto de patrones de diseño
El diseño deberá  «minimizar la distancia  intelectual» [DAV95] entre el software y el problema como si de la misma vida real se tratara. El diseño deberá presentar uniformidad e integración. Un diseño es uniforme si parece que fue una persona la que lo desarrolló por completo El diseño deberá estructurarse para admitir cambios. El diseño deberá evaluarse en función de la calidad mientras se va creando, no después de terminarlo El diseño deberá revisarse para minimizar los errores conceptuales (semánticos).
Arquitectura del software La arquitectura del software alude a la «estructura glo- bal del software y a las formas en que la estructura pro- porciona  la  integridad  conceptual  de  un  sistema»[SHA95a]. En su forma más simple, la arquitectura es la estructura jerárquica de los componentes del pro- grama (módulos), la manera en que los componentes interactúan y la estructura de datos que van a utilizar los  componentes.  Sin embargo,  en  un  sentido  más amplio, los «componentes» se pueden generalizar para representar los elementos principales del sistema .
Jerarquía de control La jerarquia de control, denominada también estructu- ra de programa, representa la organización de los com- ponentes de programa (módulos) e implica una jerarquía de control. No representa los aspectos procedimentales del software, ni se puede aplicar necesariamente a todos los estilos arquitectónicos.
Estructura de datos La estructura de datos es una representación de la rela- ción lógica entre elementos individuales de datos. Como la estructura de la información afectará invariablemente al diseño procedimental final, la estructura de datos es tan importante como la estructura de programa para la representación de la arquitectura del software
Procedimiento de software La estructura de programa define la jerarquía de con- trol sin tener en consideración la secuencia de proceso y de decisiones. El procedimiento de software se centra en el procesamiento de cada módulo individualmente. El procedimiento debe proporcionar una especificación precisa de procesamiento, incluyendo la secuencia de sucesos, los puntos de decisión exactos, las operaciones repetitivas e incluso la estructura/organizaciónde datos.
Heuristica del diseño Una vez que se ha desarrollado una estructura de pro- grama, se puede manipular de acuerdo con el siguiente con junto de heurísticas: .   Evaluar la «primeraiteración» de la estructura de programaparareducir al acoplamiento y mejorar la cohesión .   Intentarminimizarlasestructuras  con un alto grado  de  salida;  esforzarsepor  la  entrada  a medidaqueaumenta la profundidad
Mantener el ámbito del efecto de un módulo dentro del ámbito de control de ese módulo. Evaluar las interfaces de los módulos para reducir la complejidad y la redundancia, y mejorar la con- sistencia.  Definirmóduloscuya función se puedapredecir, peroevitarmódulosqueseandemasiadorestrictivos. Intentar conseguir módulos de «entrada controlada)), evitando «conexiones patológicas».
Documentación del diseño La Especificación del diseño aborda diferentes aspec- tos del modelo de diseño y se completa a medida que el diseñador refina su propia representación del soft- ware. En primer lugar, se describe el ámbito global del esfuerzo realizado en el diseño. La mayor parte de la información que se presenta  aquí se deriva de la Especificación  del sistema  y  del modelo de análisis (Especificación de los requisitos del software).
La Especificación del diseño contiene una referencia cruzada de requisitos. El propósito de esta referencia cruzada (normalmente representada como una matriz simple) es: (1) establecer que todos los requisitos se satisfagan mediante el diseño del software, y (2) indicar cuales son los componentes críticos para la implementación de requisitos específicos.
La moraleja es: ¡No te precipites durante el diseño! Merece la pena esforzarse por un buen diseño.

Más contenido relacionado

La actualidad más candente

Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de software
paoaboytes
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
Jose Patricio Bovet Derpich
 
Una metodología para el desarrollo de sistemas de información
Una metodología para el desarrollo de sistemas de informaciónUna metodología para el desarrollo de sistemas de información
Una metodología para el desarrollo de sistemas de informaciónLeonardo Fleire Morales
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
Juan Pablo Bustos Thames
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITEC
mrojas_unitec
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
José Antonio Sandoval Acosta
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de SoftwareGustavo Bazan Maal
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
Renny Batista
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
Micky Jerzy
 
Métodos estructurados
Métodos estructuradosMétodos estructurados
Métodos estructurados
Andres Morales
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasSergio Sanchez
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Software
Jiuseppe Flores
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
Coesi Consultoria
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
Juan Pablo Bustos Thames
 
Metodologias para el desarrollo del software
Metodologias para el desarrollo del softwareMetodologias para el desarrollo del software
Metodologias para el desarrollo del software
yeltsintorres18
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
Rafael Fdo Lopez Castillo
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
Francisco Gómez
 
Arquitectura de Software Y Normas ISO
Arquitectura de Software Y Normas ISOArquitectura de Software Y Normas ISO
Arquitectura de Software Y Normas ISO
Gregory Lara
 

La actualidad más candente (20)

Cuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de softwareCuadro comparativo modelos para el desarrollo de software
Cuadro comparativo modelos para el desarrollo de software
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Una metodología para el desarrollo de sistemas de información
Una metodología para el desarrollo de sistemas de informaciónUna metodología para el desarrollo de sistemas de información
Una metodología para el desarrollo de sistemas de información
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Procesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITECProcesos de Software EGEL-UNITEC
Procesos de Software EGEL-UNITEC
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 
tecnicas de revisión del software
tecnicas de revisión del softwaretecnicas de revisión del software
tecnicas de revisión del software
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Métodos estructurados
Métodos estructuradosMétodos estructurados
Métodos estructurados
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Unidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De SistemasUnidad 2.1 DiseñO De Sistemas
Unidad 2.1 DiseñO De Sistemas
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Software
 
Sesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
 
Conceptos de diseño
Conceptos de diseñoConceptos de diseño
Conceptos de diseño
 
Metodologias para el desarrollo del software
Metodologias para el desarrollo del softwareMetodologias para el desarrollo del software
Metodologias para el desarrollo del software
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Arquitectura de Software Y Normas ISO
Arquitectura de Software Y Normas ISOArquitectura de Software Y Normas ISO
Arquitectura de Software Y Normas ISO
 

Destacado

Conceptos basicos de analisis y diseño
Conceptos basicos de analisis y diseñoConceptos basicos de analisis y diseño
Conceptos basicos de analisis y diseño
Universidad Pedagógica y Tecnológica de Colombia
 
Analisis y Diseño de sistemas de información
Analisis y Diseño de sistemas de informaciónAnalisis y Diseño de sistemas de información
Analisis y Diseño de sistemas de informaciónysik granja
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
Maricela Ramirez
 
introduccion metododologias de analisis y diseño de software
 introduccion metododologias de analisis y diseño de software introduccion metododologias de analisis y diseño de software
introduccion metododologias de analisis y diseño de software
Universidad Pedagógica y Tecnológica de Colombia
 
Modelado del AnáLisis
Modelado del AnáLisisModelado del AnáLisis
Modelado del AnáLisisCarolina Rojas
 
Tecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareTecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de software
Reynaldo Mayz
 
Ingenieria del software ( grupo 2)
Ingenieria del software ( grupo 2)Ingenieria del software ( grupo 2)
Ingenieria del software ( grupo 2)
mariaccuyares
 
Especificación de requisitos de software
Especificación de requisitos de softwareEspecificación de requisitos de software
Especificación de requisitos de software481200601
 

Destacado (8)

Conceptos basicos de analisis y diseño
Conceptos basicos de analisis y diseñoConceptos basicos de analisis y diseño
Conceptos basicos de analisis y diseño
 
Analisis y Diseño de sistemas de información
Analisis y Diseño de sistemas de informaciónAnalisis y Diseño de sistemas de información
Analisis y Diseño de sistemas de información
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
introduccion metododologias de analisis y diseño de software
 introduccion metododologias de analisis y diseño de software introduccion metododologias de analisis y diseño de software
introduccion metododologias de analisis y diseño de software
 
Modelado del AnáLisis
Modelado del AnáLisisModelado del AnáLisis
Modelado del AnáLisis
 
Tecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de softwareTecnicas y herramientas para el desarrollo de software
Tecnicas y herramientas para el desarrollo de software
 
Ingenieria del software ( grupo 2)
Ingenieria del software ( grupo 2)Ingenieria del software ( grupo 2)
Ingenieria del software ( grupo 2)
 
Especificación de requisitos de software
Especificación de requisitos de softwareEspecificación de requisitos de software
Especificación de requisitos de software
 

Similar a DiseñO Del Software E IngenieríA Del Software

presentacion hebelyn
presentacion hebelynpresentacion hebelyn
presentacion hebelyn
HebelynBravo
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-software
AndresRealp1
 
Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docx
KeiberOrtiz1
 
Mandala Diseño de Software
Mandala Diseño de SoftwareMandala Diseño de Software
Mandala Diseño de Software
YizuzErTipo
 
Ingenieria de requerimientos
Ingenieria de requerimientos Ingenieria de requerimientos
Ingenieria de requerimientos
Miguel Sanchez
 
DISEÑO ESTRUCTURADO
DISEÑO ESTRUCTURADO DISEÑO ESTRUCTURADO
DISEÑO ESTRUCTURADO
Eliezer Alas
 
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
Gerardo Valera
 
Presentacion
PresentacionPresentacion
Presentacion
Gerardo Valera
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemasAlan9126
 
Fundamentos
FundamentosFundamentos
Fundamentos
Monica Naranjo
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
Ricardo Gomez
 
Metodología de Diseño Estructurado.pptx
Metodología de Diseño Estructurado.pptx Metodología de Diseño Estructurado.pptx
Metodología de Diseño Estructurado.pptx
AlvareL
 
Tema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de softwareTema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de software
Magemyl Egana
 
Análisis y diseño
Análisis y diseñoAnálisis y diseño
Análisis y diseño
Emmanuel Figueroa
 
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
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del softwareduberlisg
 

Similar a DiseñO Del Software E IngenieríA Del Software (20)

presentacion hebelyn
presentacion hebelynpresentacion hebelyn
presentacion hebelyn
 
Software exposicion
Software exposicionSoftware exposicion
Software exposicion
 
Diseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-softwareDiseño de-la-arquitectura-de-software
Diseño de-la-arquitectura-de-software
 
Arquitectura de software.docx
Arquitectura de software.docxArquitectura de software.docx
Arquitectura de software.docx
 
Mandala Diseño de Software
Mandala Diseño de SoftwareMandala Diseño de Software
Mandala Diseño de Software
 
Ingenieria de requerimientos
Ingenieria de requerimientos Ingenieria de requerimientos
Ingenieria de requerimientos
 
DISEÑO ESTRUCTURADO
DISEÑO ESTRUCTURADO DISEÑO ESTRUCTURADO
DISEÑO ESTRUCTURADO
 
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
 
Presentacion
PresentacionPresentacion
Presentacion
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Guillermo cárdenas
Guillermo cárdenasGuillermo cárdenas
Guillermo cárdenas
 
Guillermo cárdenas
Guillermo cárdenasGuillermo cárdenas
Guillermo cárdenas
 
Diseño de sistemas
Diseño de sistemasDiseño de sistemas
Diseño de sistemas
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Diseño Estructurado
Diseño EstructuradoDiseño Estructurado
Diseño Estructurado
 
Metodología de Diseño Estructurado.pptx
Metodología de Diseño Estructurado.pptx Metodología de Diseño Estructurado.pptx
Metodología de Diseño Estructurado.pptx
 
Tema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de softwareTema 4: Diseño arquitectónico de software
Tema 4: Diseño arquitectónico de software
 
Análisis y diseño
Análisis y diseñoAnálisis y diseño
Análisis y diseño
 
Fundamentos del diseño de software
Fundamentos del diseño de software Fundamentos del diseño de software
Fundamentos del diseño de software
 
Diseño del software
Diseño del softwareDiseño del software
Diseño del software
 

Último

Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
ManuelCampos464987
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 

Último (20)

Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 

DiseñO Del Software E IngenieríA Del Software

  • 1. Diseño del Software e Ingeniería del Software
  • 2. El diseño del software se encuentra en el núcleo técnico de la ingeniería del software y se aplica independientemente del modelo de diseño de software que se utilice. Una vez que se analizan y especifican los requisitos del software, el diseño del software es la primera de las tres actividades técnicas - diseño, generación de código y pruebas- que se requieren para construir y verificar el software.
  • 3. Los requisitos del software, manifestados por los modelos de datos funcionales y de comportamiento, alimentan la tarea del diseño. Mediante uno de los muchos métodos de diseño la tarea de diseño produce un diseño de datos, un diseño arquitectónico, un diseño de interfaz y un diseño de componentes.
  • 4. El diseño de datos transforma el modelo del dominio de información que se crea durante el análisis en las estructuras de datos que se necesitarán para implementar el software. Los objetos de datos y las relaciones definidas en el diagrama relación entidad y el contenido de datos detallado que se representa en el diccionario de datos proporcionan la base de la actividad del diseño de datos.
  • 5. El diseño arquitectónico define la relación entre los elementos estructurales principales del software, los patrones de diseño que se pueden utilizar para lograr los requisitos que se han definido para el sistema, y las restricciones que afectan a la manera en que se pueden aplicar los patrones de diseño arquitectónicos [SHA96].
  • 6. El diseño de la interfaz describe la manera de comunicarse el software dentro de sí mismo, con sis- temas que interoperan dentro de él y con las personas que lo utilizan. Una interfaz implica un flujo de infor- mación (por ejemplo, datos y/o control) y un tipo específico de comportamiento. Por tanto, los diagramas de flujo de control y de datos proporcionan gran par- te de la información que se requiere para el diseño de la interfaz.
  • 7. El diseño a nivel de componentes transforma los ele- mentos estructurales de la arquitectura del software en una descripción procedimental de los componentes del software. La información que se obtiene de EP, EC y de DTE sirve como base para el diseño de los compo- nentes.
  • 8. La importancia del diseño del software se puede describir con una sola palabra -calidad-. El diseño es el lugar en donde se fomentará la calidad en la ingeniería del software. El diseño proporciona las representaciones del software que se pueden evaluar en cuanto a calidad. El diseño es la única forma de convertir exactamente los requisitos de un cliente en un producto o sistema de software finalizado. El dise- ño del software sirve como fundamento para todos los pasos siguientes del soporte del software y de la inge- niería del software.
  • 9. Diseño y calidad del software Tres características que sirven como guía para la evaluación de un buen diseño: el diseño deberá implementar todos los requisitos explícitos del modelo de análisis, y deberán ajustarse a todos los requisitos implícitos que desea el cliente; el diseño deberá ser una guía legible y comprensible para aquellos que generan código y para aquellos que comprueban y consecuentemente, dan soporte al soft- ware; el diseño deberá proporcionar una imagen completa del software, enfrentándose a los dominios de com- portamiento, funcionales y de datos desde una perspectiva de implementacion
  • 10. Principiosbásicos del diseño En el proceso de diseño no deberá utilizarse «orejeras». Un buen diseñador deberá tener en cuenta enfoques alternativos, juzgando todos los que se basan en los requisitos del problema. El diseño deberá poderse rastrear hasta el modelo de análisis. El diseño no deberá inventar nada que ya esté inventado. Los sistemas se construyen utilizando un conjunto de patrones de diseño
  • 11. El diseño deberá «minimizar la distancia intelectual» [DAV95] entre el software y el problema como si de la misma vida real se tratara. El diseño deberá presentar uniformidad e integración. Un diseño es uniforme si parece que fue una persona la que lo desarrolló por completo El diseño deberá estructurarse para admitir cambios. El diseño deberá evaluarse en función de la calidad mientras se va creando, no después de terminarlo El diseño deberá revisarse para minimizar los errores conceptuales (semánticos).
  • 12. Arquitectura del software La arquitectura del software alude a la «estructura glo- bal del software y a las formas en que la estructura pro- porciona la integridad conceptual de un sistema»[SHA95a]. En su forma más simple, la arquitectura es la estructura jerárquica de los componentes del pro- grama (módulos), la manera en que los componentes interactúan y la estructura de datos que van a utilizar los componentes. Sin embargo, en un sentido más amplio, los «componentes» se pueden generalizar para representar los elementos principales del sistema .
  • 13. Jerarquía de control La jerarquia de control, denominada también estructu- ra de programa, representa la organización de los com- ponentes de programa (módulos) e implica una jerarquía de control. No representa los aspectos procedimentales del software, ni se puede aplicar necesariamente a todos los estilos arquitectónicos.
  • 14. Estructura de datos La estructura de datos es una representación de la rela- ción lógica entre elementos individuales de datos. Como la estructura de la información afectará invariablemente al diseño procedimental final, la estructura de datos es tan importante como la estructura de programa para la representación de la arquitectura del software
  • 15. Procedimiento de software La estructura de programa define la jerarquía de con- trol sin tener en consideración la secuencia de proceso y de decisiones. El procedimiento de software se centra en el procesamiento de cada módulo individualmente. El procedimiento debe proporcionar una especificación precisa de procesamiento, incluyendo la secuencia de sucesos, los puntos de decisión exactos, las operaciones repetitivas e incluso la estructura/organizaciónde datos.
  • 16. Heuristica del diseño Una vez que se ha desarrollado una estructura de pro- grama, se puede manipular de acuerdo con el siguiente con junto de heurísticas: . Evaluar la «primeraiteración» de la estructura de programaparareducir al acoplamiento y mejorar la cohesión . Intentarminimizarlasestructuras con un alto grado de salida; esforzarsepor la entrada a medidaqueaumenta la profundidad
  • 17. Mantener el ámbito del efecto de un módulo dentro del ámbito de control de ese módulo. Evaluar las interfaces de los módulos para reducir la complejidad y la redundancia, y mejorar la con- sistencia. Definirmóduloscuya función se puedapredecir, peroevitarmódulosqueseandemasiadorestrictivos. Intentar conseguir módulos de «entrada controlada)), evitando «conexiones patológicas».
  • 18. Documentación del diseño La Especificación del diseño aborda diferentes aspec- tos del modelo de diseño y se completa a medida que el diseñador refina su propia representación del soft- ware. En primer lugar, se describe el ámbito global del esfuerzo realizado en el diseño. La mayor parte de la información que se presenta aquí se deriva de la Especificación del sistema y del modelo de análisis (Especificación de los requisitos del software).
  • 19. La Especificación del diseño contiene una referencia cruzada de requisitos. El propósito de esta referencia cruzada (normalmente representada como una matriz simple) es: (1) establecer que todos los requisitos se satisfagan mediante el diseño del software, y (2) indicar cuales son los componentes críticos para la implementación de requisitos específicos.
  • 20. La moraleja es: ¡No te precipites durante el diseño! Merece la pena esforzarse por un buen diseño.