Fundamentos del Diseo de Software - PowerPoint PPT Presentation

1 / 41
About This Presentation
Title:

Fundamentos del Diseo de Software

Description:

Etimol gicamente significa componer, por lo que se obtiene la soluci n que habr ... El lenguaje de implementaci n debe soportar tipos de datos abstractos. ... – PowerPoint PPT presentation

Number of Views:193
Avg rating:3.0/5.0
Slides: 42
Provided by: juancarlos3
Category:

less

Transcript and Presenter's Notes

Title: Fundamentos del Diseo de Software


1
Fundamentos del Diseño de Software
  • M.C. Juan Carlos Olivares Rojas

2
Agenda
  • Ingeniería de Software y Diseño de Sistemas
  • Proceso del Diseño
  • Fundamentos del Diseño
  • Diseño Modular Efectivo

3
Agenda
  • Diseño de Datos
  • Diseño Arquitectónico
  • Diseño de Interfaz de Usuario
  • Diseño Procedimental
  • Documentación del Diseño

4
Ingeniería de Software y Diseño de Sistemas
  • El diseño es la primera parte del desarrollo de
    cualquier proyecto.
  • Etimológicamente significa componer, por lo que
    se obtiene la solución que habrá de
    implementarse.
  • Todas las cosas siempre tienen primero una
    creación mental.

5
Diseño de Sistemas
  • El diseño en proyectos informáticos presenta
    cuatro apartados datos, arquitectura, interfaz y
    procedimientos.
  • El diseño de datos se encarga de transformar el
    modelo de información obtenido en el proceso de
    análisis en estructuras de datos. Se pueden
    utilizar diagramas entidad-relación pero
    especificados a mayor detalle.

6
Diseño de Sistemas
  • El diseño arquitectónico tiene la finalidad de
    comprobar las relaciones con los diferentes
    módulos o macrorequisitos del sistema
    (subsistemas).
  • El diseño de interfaz define como se comunica el
    software consigo mismo y hacia el exterior.
  • Existe una estrecha relación entre análisis y
    diseño.

7
Diseño de Sistemas
  • El diseño procedimental o basado en componentes
    consiste en la traducción de cada uno de los
    elementos obtenidos en la especificación de
    procesos, datos y transición hacia elementos
    implementables a través de computadoras.

8
Proceso del Diseño
  • El proceso de diseño sirve de base para la
    codificación del sistema. Se deben seguir algunas
    recomendaciones para su mejor desarrollo como las
    siguientes
  • Se deben especificar todos los elementos
    explícitos e implícitos del modelo de análisis.

9
Procesos del Diseño
  • El diseño deber servir de guía para que cual
    integrante del proyecto pueda construir y
    entender el software.
  • El diseño debe de dar una completa idea de lo que
    es el software.
  • El diseño debe presentar uniformidad e
    integración. Se deben definir reglas y estilos
    que deben seguir los miembros del equipo.

10
Procesos del Diseño
  • El diseño debe estar estructurado, de tal forma
    que permita cambios.
  • El diseño no es escribir código, ni codificar es
    diseñar.
  • Al diseñar se deben tomar en cuenta Factores de
    Calidad Externos (velocidad. Fiabilidad,
    utilidad) y Factores de Calidad Interno
    (abstracción, refinamiento, modularidad).

11
Fundamentos del Diseño
  • A continuación se muestra el glosario básico del
    diseño de proyectos de software
  • Abstracción son los niveles de resolución de
    problema, los cuales pueden ser alto si se
    especifica en lenguaje natural o bajo nivel de
    abstracción si tiene una implantación directa.
  • La abstracción puede ser de datos, procedimientos
    y control.

12
Fundamentos del Diseño
  • Refinamiento es la base del diseño. Es un
    proceso de elaboración que comienza con un nivel
    de abstracción alto y van descendiendo
    sucesivamente de nivel de abstracción hasta
    llegar a un nivel bajo.
  • Durante el proceso de refinamiento se van
    obteniendo detalles tanto de procedimientos como
    de datos obteniendo mejores soluciones más
    fáciles de implementar.

13
Fundamentos del Diseño
  • El refinamiento tiene como objetivos encontrar
    detalles de bajo nivel que podrían ser difíciles
    de plasmar.
  • La modularidad es el atributo de software que
    permite un programa sea manejable
    intelectualmente.
  • El software monolítico es muy difícil de manejar.
    Se debe aplicar el principio de divide y
    vencerás

14
Fundamentos del Diseño
  • Los módulos son los componentes básicos de todo
    sistema y tienden a satisfacer a uno o más
    requerimientos.
  • Se han definido cinco métricas para evaluar el
    diseño modular capacidad de descomposición,
    reutilización, capacidad de comprensión,
    continuidad modular y protección modular.

15
Fundamentos del Diseño
  • La arquitectura del software hace referencia a la
    estructura global del sistema, dicha estructura
    es jerárquica en forma de módulos.
  • La arquitectura de software debe ayudar a definir
    como interactúan los componentes de software
    entre sí y las estructuras de los datos.

16
Fundamentos del Diseño
  • La jerarquía de control representa dos
    características visibilidad y conectividad.
  • La visibilidad es el conjunto de componentes de
    un programa que pueden ser invocados o utilizados
    sus datos por un componente aun de manera
    directa.
  • La conectividad indica el conjunto de componentes
    que son accedidos de manera directa por otros
    componentes.

17
Fundamentos del Diseño
  • La partición estructural de una arquitectura de
    software puede ser horizontal datos, procesos y
    control o bien vertical definiendo una jerarquía
    de módulos.
  • Los módulos deben programarse de tal forma que
    los datos no estén accesibles por otros módulos.

18
Diseño Modular Efectivo
  • El diseño modular ayuda a reducir la complejidad,
    facilita los cambios y ayuda a producir
    soluciones más sencillas.
  • Los tres tipos de módulos existentes son
    secuencial, incremental y paralelo.
  • La independencia funcional se adquiere cuando se
    desarrollan los conceptos de modularidad,
    abstracción y ocultamiento de información.

19
Diseño Modular Efectivo
  • La independencia funcional se mide en base a dos
    criterios cohesión y acoplamiento.
  • Cohesión es una extensión del principio de
    ocultamiento de información, es deseable tener
    una alta cohesión. Esta se obtiene cuando un
    módulo realiza una tarea sencilla sin depender de
    otros módulos

20
Diseño Modular Efectivo
  • El acoplamiento es una medida de interconexión de
    los módulos. Es necesario tener un bajo
    acoplamiento. El acoplamiento se mide en las
    relaciones que guardan los módulos con sus
    interfaces de entrada y salida.
  • Hay tres tipos de acoplamiento común, de datos y
    control.

21
Diseño de Datos
  • Algunas recomendaciones para el diseño de datos
    son
  • Definir todas las posibles operaciones a realizar
    sobre los datos.
  • Se deben refinar las estructuras de datos hasta
    tener representaciones de bajo nivel.

22
Diseño de Datos
  • Se deben desarrollar bibliotecas útiles para la
    manipulación de datos.
  • El lenguaje de implementación debe soportar tipos
    de datos abstractos.
  • Se debe tener cuidado a la hora de diseñar
    diccionarios de datos, para que no se tengan
    basureros de datos en lugar de almacenes de
    datos.

23
Diseño Arquitectónico
  • El concepto de Arquitectura de Software tiene
    mucho tiempo de antigüedad, pero no fue hasta la
    década de los 1990s que comenzó a utilizarse de
    manera formal.
  • Analizando los sistemas se puede observar que
    existen patrones que se repiten conformando lo
    que se conoce como estilos arquitectónicos.

24
Diseño Arquitectónico
  • Un estilo arquitectónico define un conjunto de
    familias de patrones de software con una
    determinada estructura y restricciones.
  • Generalmente los patrones de diseño y
    arquitectura definen soluciones para medios
    repetitivos.
  • La arquitectura de software es una abstracción
    del sistema que nos permite ver su estructura y
    su relaciones.

25
Diseño Arquitectónico
  • Para el desarrollo del Diseño Arquitectónico se
    recomiendan seguir los siguientes pasos
  • Estructuración del sistema
  • Modelado de control
  • Descomposición modular
  • Existen diferentes estilos arquitectónicos que a
    continuación se mencionan.

26
Diseño Arquitectónico
  • La Arquitectura de Flujo de Datos parte del DFD
    para obtener una arquitectura del sistema
  • Se establece el tipo de flujo de información
  • Se indican los límites del flujo
  • Se convierte el DFD en una estructura del
    programa

27
Diseño Arquitectónico
  • Se define la jerarquía de control mediante
    particionamiento.
  • Se refina la estructura resultante utilizando
    heurísticas de diseño.
  • La Arquitectura Centrada en Datos tiene como
    componente principal un repositorio, del cual
    surgen los demás componentes.

28
Diseño Arquitectónico
  • Las Arquitecturas Estratificadas son de las más
    utilizadas en la actualidad, dado que dividen las
    actividades y responsabilidades de sistemas por
    capas.
  • El software más elaborado como los sistemas
    operativos, software de base, sistemas
    distribuidos y otros maneja variantes de esta
    arquitectura.

29
Diseño Arquitectónico
  • El diseño se debe refinar realizando cada uno de
    los siguientes pasos
  • Desarrollar una descripción del procedimiento
    para cada módulo.
  • Desarrollar una descripción de la interfaz para
    cada módulo.

30
Diseño Arquitectónico
  • Se definen las estructuras de datos generales y
    globales.
  • Se anotan todas las limitaciones/restricciones
    del sistema.
  • Se debe refinar el diseño hasta que esté
    completo. Se recomienda completar la arquitectura
    con el Diseño de Interfaces.

31
Diseño de Interfaz de Usuario
  • El diseño de interfaces se refiere al estudio de
    las relaciones entre los usuarios y las
    computadoras para que un sistema se pueda
    ejecutar.
  • El diseño de una interfaz puede definir el éxito
    de cualquier proyecto, ya que la utilización de
    cualquier interfaz de usuario depende de factores
    humanos.

32
Diseño de Interfaces de Usuario
  • Existen algunas reglas de oro para el buen diseño
    de Interfaces de Usuario
  • Dar el control al usuario
  • Reducir la carga de memoria del usuario
  • Construir una interfaz consecuente

33
Diseño de Interfaces de Usuario
  • Existen cuatro modelos diferentes para el
    desarrollo de interfaces
  • Modelo de diseño que consiste en representar el
    software de acuerdo a los datos, arquitectura,
    interfaz y procedimiento.
  • Modelo de Usuario Representa el perfil del
    usuario (edad, cultura, etnia, educación, etc.)

34
Diseño de Interfaces de Usuario
  • Existen tres tipos de usuario Principiantes,
    Esporádicos y Frecuentes.
  • La percepción del sistema (modelo de usuario) es
    la idea que tienen los usuarios sobre la posible
    interfaz del sistema.
  • La imagen del sistema es un modelo que intenta
    mezclar lo que es la estructura del sistema con
    analogías de la vida real.

35
Diseño de Interfaces de Usuario
  • Las fases del proceso del desarrollo de
    interfaces de usuario son
  • Análisis de usuarios, tareas y entornos
  • Diseño de la interfaz
  • Implementación de la interfaz
  • Validación de la interfaz

36
Diseño de Interfaces de Usuario
  • Se deben seguir las siguientes recomendaciones
  • Establecer los objetivos e intenciones de cada
    tarea.
  • Hacer correspondencia entre cada objetivo con una
    secuencia de interacción
  • Especificar la secuencia de acciones de tareas y
    subtareas

37
Diseño de Interfaces de Usuario
  • Se debe indicar el estado del sistema
  • Se deben definir mecanismos de control
  • Se debe mostrar la forma en como los mecanismos
    de control afectan el estado del sistema.
  • Se debe indicar la forma en que el usuario
    interpreta el estado del sistema a partir de la
    información presente en la interfaz.

38
Diseño de Interfaces de Usuario
  • Los principales problemas que se presentan al
    diseñar una interfaz de usuario son
  • El tiempo de respuesta del sistema
  • Los servicios de ayuda al usuario
  • La manipulación de información de errores
  • El etiquetado de órdenes

39
Diseño Procedimental
40
Documentación del Diseño
41
Preguntas, dudas y comentarios?
Write a Comment
User Comments (0)
About PowerShow.com