SlideShare una empresa de Scribd logo
4
Lo más leído
13
Lo más leído
22
Lo más leído
IFM-0435 SISTEMAS DE INFORMACION II
                          UNIDAD I
DISEÑO CONCEPTUAL
El diseño conceptual se considera como un análisis de
 actividades y consiste en la solución de negocios para el
 usuario y se expresa con los casos de uso. El diseño lógico
 es la solución del equipo de proyecto del negocio y
 consiste de las siguientes tareas:
Identificar los usuarios y sus roles
Obtener datos de los usuarios
Evaluar la información
Documentar los escenarios de uso
Validar con los usuarios
Validar contra la arquitectura de la empresa
DISEÑO CONCEPTUAL

    Una forma de obtener estos requerimientos es
   construir una matriz usuarios-actividades de
   negocios, realizar entrevistas, encuestas y/o
   visitas a los usuarios, de tal manera que se
   obtenga quién, qué, cuándo, dónde y por qué de
   la solución.
DISEÑO LÓGICO
El diseño lógico traduce los escenarios de uso
 creados en el diseño conceptual en un conjunto de
 objetos de negocio y sus servicios. El diseño lógico se
 convierte en parte en la especificación funcional que
 se usa en el diseño físico. El diseño lógico es
 independiente de la tecnología. El diseño lógico
 refina, organiza y detalla la solución de negocios y
 define formalmente las reglas y políticas específicas
 de negocios.
El diseño lógico es el proceso de construir un
 esquema de la información que utiliza la empresa,
 basándose en un modelo de base de datos específico,
 independiente del SGBD concreto que se vaya a
 utilizar y de cualquier otra consideración física.
ETAPAS Y TAREAS DEL DISEÑO LOGICO
DETALLADO (diseña el exterior y documentarlo)
1.- Generar alternativas de solución (mínimo 2) Se
   puede generar alternativas:
   a) Agregando una función
   b) Eliminando una función o fundiéndola
   c) Modificando fuertemente el interior
   Se evalúan técnica, económica y
   operacionalmente las alternativas generadas.
   (bienes de capital; costo - beneficio) y se elige
   una.
ETAPAS Y TAREAS…

2.- Documentar la alternativa elegida Se debe documentar
 cada función del exterior, en formulario que contendrá:
 - Nombre de la función
 - Situación
 - Objetivo; lo que pretende hacer
 - Información de entrada; y de donde proviene; detallada
 - Información de salida; y a donde va; detallada
 - Archivos internos que usa: fichero, memoria, kárdex,....
 - Recursos utilizados. Secretaria, máquinas, teléfono fax,....
 - Procedimiento general (describir la manera en que ella se
 realizará)
 - Observaciones
ETAPAS Y TAREAS…
3.-Documentar los procedimientos administrativos
Formularios usados; con su diseño. Se debe indicar todos
los formularios a usar, los que usa ahora, y los que usará:

  - Flujograma de formularios; tabla de doble entrada origen
  - destino de los formularios original y copias que se tiene
  contemplado utilizar.

  - Sistemas de codificación usados. Los códigos que se
  utilizará, estén ya en uso o a ser usados ahora.
ETAPAS Y TAREAS…
4.-Requerimientos al interior. Se debe especificar aquí lo
 que se quiere que el computador acepte como información
 de entrada a él y que proveniente del exterior del sistema
 o medio ambiente, y lo que se quiere que el computador
 genere como información de salida para alimentar las
 funciones contempladas en el diseño del SI:
Descripción de la información de Entrada, con el origen,
 cantidad, periodicidad, tipo.
Descripción de la información de Salida. Se hace por
 medio del:
 - Diseño de los formularios de salida (listados que se
 espera)
 - Diseño de las pantallas de consultas (menú, formatos de
 respuestas)
EL DISEÑO LÓGICO GLOBAL
Objetivo:

Establecer las alternativas de diseño en relación a
 la situación actual, y elegir la "mejor" de ellas a
 través de un proceso de evaluación. El resultado
 final es un conjunto de funciones a ser realizadas
 por el sistema, junto con la especificación de la
 manera en que ellas se llevarán a cabo, los flujos
 de información que los conectarán y el rol del
 computador.
Modelos : Se usa dos tipos de modelos para
 visualizar el sistema.
1º.- Aquí el sistema se concibe como una "malla" o red de
 funciones interactuando a través de información que
 reciben de entradas de las funciones relacionadas, y
 generan salidas hacia ellas, y que además regulan el
 funcionamiento de la malla de los procesos del sistema.
2º Visualizar el sistema como una partición jerárquica de
  cada uno de los elementos que lo componen en la forma:
  Entrada -- Función -- Salida. Los elementos son los que
  están en el modelo descrito en la malla de funciones. Es un
  diagrama del tipo árbol.
DISEÑO FISICO
El diseño físico traduce el diseño lógico en una
 solución implementable y costo-efectiva o económica.
El componente es la unidad de construcción
 elemental del diseño físico. Las características de un
 componente son:
Se define según cómo interactúa con otros
Encapsula sus funciones y sus datos
Es reusable a través de las aplicaciones
Puede verse como una caja negra
Puede contener otros componentes
Acoplamiento y Cohesión
ACOPLAMIENTO:


Mide el grado de independencia entre los módulo. Un
 buen diseño debe minimizar el acoplamiento
 (aumentar la independencia.) por las sig. Razones:
1º Cuanto menos conexiones existan entre 2 módulos,
 menos oportunidad hay de que aparezca el efecto
 RIPPLE (1 defecto de 1 módulo aparece afectando a
 otro).
2º Se desea poder cambiar un modulo sin que afecte a
 otro.
3º Mientras se mantiene un módulo, no debemos
 preocuparnos de otro, máxima sencillez.
COHESIÓN:


Mide el grado de integración de los elementos de un
 módulo, para organizar todos los elementos de forma
 que los que estén más relacionados a la hora de
 realizar una tarea pertenezcan al mismo módulo y los
 elementos relacionados entre sí en módulos
 separados.
Cuanto más vinculados estén los elementos de un
 módulo, más fuerte es su cohesión, lo que lleva a un
 mejor acoplamiento y a un mejor sistema (el SW es
 fácil de mantener y los módulos fáciles de usar).
A medida que aumenta el número de módulos, el
 coste por interfaz crece y el esfuerzo para desarrollar
 cada módulo decrece.
Iceberg de la usabilidad
Qué es la Arquitectura del Software y que
 relación tiene con la usabilidad. Tener en cuenta
 la usabilidad en el momento del diseño de la
 arquitectura de un sistema interactivo nos puede
 ahorrar muchos problemas.
Se podría decir que, en el diseño de un sistema, hay
 tres aspectos a tener en cuenta:
la presentación de la información
la funcionalidad de la aplicación
la Arquitectura del Software


¿Cuántas veces hemos tenido que correr a realizar
 cambios profundos en la funcionalidad de una
 aplicación después de haber detectado problemas de
 usabilidad?
Dick Berry, en su analogía del Iceberg de la usabilidad, explica que los aspectos
relacionados con la presentación, es decir, lo que normalmente entendemos como
look & feel, sólo afectan en un 40% a la usabilidad. El 60% restante está
influenciado por lo que él llama “modelo del usuario”, que está constituido por los
objetivos que el usuario quiere alcanzar con sus tareas.
Arquitectura de software y
              usabilidad
El usuario pueda visualizar el progreso de sus
 peticiones, que pueda deshacer acciones (undo), que
 pueda disponer de un entono multilingüe, que pueda
 cancelar una operación que lleva mucho tiempo en
 espera, que pueda reutilizar información que ha
 introducido anteriormente, y muchas otras cosas.

 Si analizamos estos escenarios de interacción,
 veremos que la causa de que no se puedan
 implementar es que no se tuvo en cuenta al usuario al
 inicio del diseño del sistema, es decir, en la
 Arquitectura del Software.
Arquitectura de software
Arquitectura del Software es el diseño de más alto nivel
de la estructura de un sistema, programa o aplicación y
tiene la responsabilidad de:
Definir los módulos principales
Definir las responsabilidades que tendrá cada uno de
  estos módulos
Definir la interacción que existirá entre dichos
  módulos:
Control y flujo de datos
Secuenciación de la información
Protocolos de interacción y comunicación
Ubicación en el hardware
La definición oficial de Arquitectura del Software es la
 IEEE Std 1471-2000 que reza así: “La Arquitectura del
 Software es la organización fundamental de un
 sistema formada por sus componentes, las relaciones
 entre ellos y el contexto en el que se implantarán, y
 los principios que orientan su diseño y evolución”
Uno de los modelos más conocidos es el “4+1” de Philippe
  Kruchten, vinculado al Rational Unified Process (RUP),
  que define cuatro vistas diferentes:

Vista lógica: describe el modelo de objetos.
Vista de proceso: muestra la concurrencia y sincronía de
 los procesos.
Vista física: muestra la ubicación del software en el
 hardware.
Vista de desarrollo: describe la organización del entorno
 de desarrollo.
Existe una quinta vista que consiste en una selección de
 casos de uso o de escenarios que los arquitectos pueden
 elaborar a partir de las cuatro vistas anteriores
Heurísticas de diseño
Las heurísticas de diseño son un conjunto de
 recomendaciones que ayudan a mejorar la estructura
 del sistema, optimizando la modularidad. La aplicación
 de estas recomendaciones depende en gran medida del
 diseño específico, así como de las características del
 equipo físico donde se desarrolla el sistema.
1).- Tamaño del módulo
El desarrollo del sistema de una estructura modular define
  la funcionalidad propia de cada módulo. Sin embargo, es
  recomendable revisar independientemente cada módulo a
  efectos de optimizar su tamaño en número de sentencias,
  para facilitar el desarrollo técnico del programa y su
 posterior mantenimiento.
En general, podemos resumir diferentes versiones sobre el
 tamaño óptimo de un módulo definiendo que, el coste en el
 desarrollo y mantenimiento de un sistema será óptimo,
 cuando su estructura esté compuesta por módulos con un
 tamaño comprendido entre 10 y 100 sentencias.
Tamaño del módulo
Un módulo demasiado grande a menudo puede deberse a:

a) Dos o más funciones han sido combinadas (frecuentemente con
cohesión lógica) en un mismo módulo.
2).- Ámbito de control
Se llama ámbito de control de un módulo a todos los
 módulos llamados por él y a los llamados por éstos, es
 decir, a todos los módulos que hay por debajo de él, en
 esa rama del diagrama de descomposición funcional.
Un módulo que llama a muchos otros puede ser difícil
 de entender, y en el otro extremo, si los módulos
 forman una larga secuencia lineal, es posible que pueda
 suprimirse alguno de ellos. Debe evitarse ambos
 extremos:
Ambito de control alto:
 Normalmente se produce cuando no se tienen en cuenta los niveles
  intermedios. El estudio de los grupos de módulos subordinados que
  permitan combinar sus funciones en una sola, puede solucionar el
  problema.
 Resistencia por parte del diseñador a delegar responsabilidades en
  módulos subordinados.

 Solución: debe considerarse la posibilidad de agruparse varios
  subordinados en una función combinada. El principio de cohesión debe
  guiar este proceso para evitar módulos de baja cohesión.
Ámbito de control bajo:

Para optimizar una estructura de este tipo se deben revisar
  las posibilidades de descomponer las funciones en
  subfunciones con entidad propia, para formar nuevos
  módulos, o por el contrario, comprimir módulos
  subordinados en el módulo de nivel superior. esto es
  válido si se puede dar a los nuevos módulos un sentido
  dentro de la estructura del problema.
Ámbito de control correcto

Más contenido relacionado

PDF
Ciclo de vida de los sistemas de informacion
PPTX
Metodologia Kendall y Kendall (1.997)
PPTX
Diseño físico y lógico de los sistemas de informacion
PPTX
Metodologia estructurada
PPTX
Diseño de sistemas
PPTX
Tecnicas y herramientas para el desarrollo de software
PDF
Diseño de entradas para sistemas de información
PDF
Diseño logico de una base de datos
Ciclo de vida de los sistemas de informacion
Metodologia Kendall y Kendall (1.997)
Diseño físico y lógico de los sistemas de informacion
Metodologia estructurada
Diseño de sistemas
Tecnicas y herramientas para el desarrollo de software
Diseño de entradas para sistemas de información
Diseño logico de una base de datos

La actualidad más candente (20)

PPTX
Sistema De Gestión De Base De Datos
DOCX
Pruebas de sistemas y aceptacion
PPTX
Componentes de sgbd
PPTX
Fundamentos de los sistemas de información
PDF
Mapa conceptual BD
DOCX
Organigrama funcional de una empresa desarrolladora de software
PPTX
DESARROLLO DE PROTOTIPOS
PPTX
Base de datos con conclusion
PDF
54714841 ejemplo-propuesta-de-desarrollo-de-software
PPTX
PPT
Técnicas para la Obtención de Requerimientos
PPTX
Funciones de un administrador de base de datos
PPTX
TIPOS DE BASE DE DATOS
PDF
Cuadro comparativo modelos para el desarrollo de software
DOCX
Linea del tiempo del software
DOCX
Metodologias Para El Analisis Y Diseño De Sistemas.
PDF
Sistema de-maquina-virtual
PPTX
Uml lenguaje unificado de modelado
DOCX
Fase de implementación de sistemas de información
DOCX
Ingenieria de requisitos y requerimientos
Sistema De Gestión De Base De Datos
Pruebas de sistemas y aceptacion
Componentes de sgbd
Fundamentos de los sistemas de información
Mapa conceptual BD
Organigrama funcional de una empresa desarrolladora de software
DESARROLLO DE PROTOTIPOS
Base de datos con conclusion
54714841 ejemplo-propuesta-de-desarrollo-de-software
Técnicas para la Obtención de Requerimientos
Funciones de un administrador de base de datos
TIPOS DE BASE DE DATOS
Cuadro comparativo modelos para el desarrollo de software
Linea del tiempo del software
Metodologias Para El Analisis Y Diseño De Sistemas.
Sistema de-maquina-virtual
Uml lenguaje unificado de modelado
Fase de implementación de sistemas de información
Ingenieria de requisitos y requerimientos
Publicidad

Similar a diseño lógico y diseño físico (20)

PDF
Apuntes ing-sof-unidad-4-1-2015
PPT
Diseño de bases de datos
PDF
METODOLOGIAS PARA EL ANALISI Y DISEÑO DE SISTEMAS
PPTX
Diseño del sistema
DOC
Diseno Software
PDF
Software exposicion
PPTX
Diaspositivas de_informatik_para_presentar_
PPTX
Diaspositivas de informatik para presentar
PDF
Analisis y diseño de sistemas
PPTX
Fundamentos de Diseño - Grupo Delta
PPT
Diseño de objetos y diseño de sistemas
PPTX
Unidad # 6 primera parte diseño estructurado
PPTX
Ingenieria de requerimientos
PDF
DDS 2019 - Modulo 5 - Diseño - 1x1.pdf
PPTX
presentacion hebelyn
PPTX
Fundamentos del software
PPTX
Diseño de Software
PPTX
Diseño de sistemas
PDF
Metodología J. Llorens Fabregas - Version Final (Larga).
PPTX
Fundamentos Básicos para el Diseño del Software - Sistemas II
Apuntes ing-sof-unidad-4-1-2015
Diseño de bases de datos
METODOLOGIAS PARA EL ANALISI Y DISEÑO DE SISTEMAS
Diseño del sistema
Diseno Software
Software exposicion
Diaspositivas de_informatik_para_presentar_
Diaspositivas de informatik para presentar
Analisis y diseño de sistemas
Fundamentos de Diseño - Grupo Delta
Diseño de objetos y diseño de sistemas
Unidad # 6 primera parte diseño estructurado
Ingenieria de requerimientos
DDS 2019 - Modulo 5 - Diseño - 1x1.pdf
presentacion hebelyn
Fundamentos del software
Diseño de Software
Diseño de sistemas
Metodología J. Llorens Fabregas - Version Final (Larga).
Fundamentos Básicos para el Diseño del Software - Sistemas II
Publicidad

Último (20)

PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
Diapositiva proyecto de vida, materia catedra
PDF
capacitación de aire acondicionado Bgh r 410
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
modulo seguimiento 1 para iniciantes del
Power Point Nicolás Carrasco (disertación Roblox).pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Propuesta BKP servidores con Acronis1.pptx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Curso de generación de energía mediante sistemas solares
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
SAP Transportation Management para LSP, TM140 Col18
Presentación PASANTIAS AuditorioOO..pptx
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
TRABAJO DE TECNOLOGIA.pdf...........................
Diapositiva proyecto de vida, materia catedra
capacitación de aire acondicionado Bgh r 410
El-Gobierno-Electrónico-En-El-Estado-Bolivia
introduccion a las_web en el 2025_mejoras.ppt
informe_fichas1y2_corregido.docx (2) (1).pdf
la-historia-de-la-medicina Edna Silva.pptx
Influencia-del-uso-de-redes-sociales.pdf
modulo seguimiento 1 para iniciantes del

diseño lógico y diseño físico

  • 1. IFM-0435 SISTEMAS DE INFORMACION II UNIDAD I
  • 2. DISEÑO CONCEPTUAL El diseño conceptual se considera como un análisis de actividades y consiste en la solución de negocios para el usuario y se expresa con los casos de uso. El diseño lógico es la solución del equipo de proyecto del negocio y consiste de las siguientes tareas: Identificar los usuarios y sus roles Obtener datos de los usuarios Evaluar la información Documentar los escenarios de uso Validar con los usuarios Validar contra la arquitectura de la empresa
  • 3. DISEÑO CONCEPTUAL Una forma de obtener estos requerimientos es construir una matriz usuarios-actividades de negocios, realizar entrevistas, encuestas y/o visitas a los usuarios, de tal manera que se obtenga quién, qué, cuándo, dónde y por qué de la solución.
  • 4. DISEÑO LÓGICO El diseño lógico traduce los escenarios de uso creados en el diseño conceptual en un conjunto de objetos de negocio y sus servicios. El diseño lógico se convierte en parte en la especificación funcional que se usa en el diseño físico. El diseño lógico es independiente de la tecnología. El diseño lógico refina, organiza y detalla la solución de negocios y define formalmente las reglas y políticas específicas de negocios. El diseño lógico es el proceso de construir un esquema de la información que utiliza la empresa, basándose en un modelo de base de datos específico, independiente del SGBD concreto que se vaya a utilizar y de cualquier otra consideración física.
  • 5. ETAPAS Y TAREAS DEL DISEÑO LOGICO DETALLADO (diseña el exterior y documentarlo) 1.- Generar alternativas de solución (mínimo 2) Se puede generar alternativas: a) Agregando una función b) Eliminando una función o fundiéndola c) Modificando fuertemente el interior Se evalúan técnica, económica y operacionalmente las alternativas generadas. (bienes de capital; costo - beneficio) y se elige una.
  • 6. ETAPAS Y TAREAS… 2.- Documentar la alternativa elegida Se debe documentar cada función del exterior, en formulario que contendrá: - Nombre de la función - Situación - Objetivo; lo que pretende hacer - Información de entrada; y de donde proviene; detallada - Información de salida; y a donde va; detallada - Archivos internos que usa: fichero, memoria, kárdex,.... - Recursos utilizados. Secretaria, máquinas, teléfono fax,.... - Procedimiento general (describir la manera en que ella se realizará) - Observaciones
  • 7. ETAPAS Y TAREAS… 3.-Documentar los procedimientos administrativos Formularios usados; con su diseño. Se debe indicar todos los formularios a usar, los que usa ahora, y los que usará: - Flujograma de formularios; tabla de doble entrada origen - destino de los formularios original y copias que se tiene contemplado utilizar. - Sistemas de codificación usados. Los códigos que se utilizará, estén ya en uso o a ser usados ahora.
  • 8. ETAPAS Y TAREAS… 4.-Requerimientos al interior. Se debe especificar aquí lo que se quiere que el computador acepte como información de entrada a él y que proveniente del exterior del sistema o medio ambiente, y lo que se quiere que el computador genere como información de salida para alimentar las funciones contempladas en el diseño del SI: Descripción de la información de Entrada, con el origen, cantidad, periodicidad, tipo. Descripción de la información de Salida. Se hace por medio del: - Diseño de los formularios de salida (listados que se espera) - Diseño de las pantallas de consultas (menú, formatos de respuestas)
  • 9. EL DISEÑO LÓGICO GLOBAL Objetivo: Establecer las alternativas de diseño en relación a la situación actual, y elegir la "mejor" de ellas a través de un proceso de evaluación. El resultado final es un conjunto de funciones a ser realizadas por el sistema, junto con la especificación de la manera en que ellas se llevarán a cabo, los flujos de información que los conectarán y el rol del computador. Modelos : Se usa dos tipos de modelos para visualizar el sistema.
  • 10. 1º.- Aquí el sistema se concibe como una "malla" o red de funciones interactuando a través de información que reciben de entradas de las funciones relacionadas, y generan salidas hacia ellas, y que además regulan el funcionamiento de la malla de los procesos del sistema.
  • 11. 2º Visualizar el sistema como una partición jerárquica de cada uno de los elementos que lo componen en la forma: Entrada -- Función -- Salida. Los elementos son los que están en el modelo descrito en la malla de funciones. Es un diagrama del tipo árbol.
  • 13. El diseño físico traduce el diseño lógico en una solución implementable y costo-efectiva o económica. El componente es la unidad de construcción elemental del diseño físico. Las características de un componente son: Se define según cómo interactúa con otros Encapsula sus funciones y sus datos Es reusable a través de las aplicaciones Puede verse como una caja negra Puede contener otros componentes
  • 15. ACOPLAMIENTO: Mide el grado de independencia entre los módulo. Un buen diseño debe minimizar el acoplamiento (aumentar la independencia.) por las sig. Razones: 1º Cuanto menos conexiones existan entre 2 módulos, menos oportunidad hay de que aparezca el efecto RIPPLE (1 defecto de 1 módulo aparece afectando a otro). 2º Se desea poder cambiar un modulo sin que afecte a otro. 3º Mientras se mantiene un módulo, no debemos preocuparnos de otro, máxima sencillez.
  • 16. COHESIÓN: Mide el grado de integración de los elementos de un módulo, para organizar todos los elementos de forma que los que estén más relacionados a la hora de realizar una tarea pertenezcan al mismo módulo y los elementos relacionados entre sí en módulos separados.
  • 17. Cuanto más vinculados estén los elementos de un módulo, más fuerte es su cohesión, lo que lleva a un mejor acoplamiento y a un mejor sistema (el SW es fácil de mantener y los módulos fáciles de usar). A medida que aumenta el número de módulos, el coste por interfaz crece y el esfuerzo para desarrollar cada módulo decrece.
  • 18. Iceberg de la usabilidad Qué es la Arquitectura del Software y que relación tiene con la usabilidad. Tener en cuenta la usabilidad en el momento del diseño de la arquitectura de un sistema interactivo nos puede ahorrar muchos problemas.
  • 19. Se podría decir que, en el diseño de un sistema, hay tres aspectos a tener en cuenta: la presentación de la información la funcionalidad de la aplicación la Arquitectura del Software ¿Cuántas veces hemos tenido que correr a realizar cambios profundos en la funcionalidad de una aplicación después de haber detectado problemas de usabilidad?
  • 20. Dick Berry, en su analogía del Iceberg de la usabilidad, explica que los aspectos relacionados con la presentación, es decir, lo que normalmente entendemos como look & feel, sólo afectan en un 40% a la usabilidad. El 60% restante está influenciado por lo que él llama “modelo del usuario”, que está constituido por los objetivos que el usuario quiere alcanzar con sus tareas.
  • 21. Arquitectura de software y usabilidad El usuario pueda visualizar el progreso de sus peticiones, que pueda deshacer acciones (undo), que pueda disponer de un entono multilingüe, que pueda cancelar una operación que lleva mucho tiempo en espera, que pueda reutilizar información que ha introducido anteriormente, y muchas otras cosas. Si analizamos estos escenarios de interacción, veremos que la causa de que no se puedan implementar es que no se tuvo en cuenta al usuario al inicio del diseño del sistema, es decir, en la Arquitectura del Software.
  • 22. Arquitectura de software Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema, programa o aplicación y tiene la responsabilidad de: Definir los módulos principales Definir las responsabilidades que tendrá cada uno de estos módulos Definir la interacción que existirá entre dichos módulos: Control y flujo de datos Secuenciación de la información Protocolos de interacción y comunicación Ubicación en el hardware
  • 23. La definición oficial de Arquitectura del Software es la IEEE Std 1471-2000 que reza así: “La Arquitectura del Software es la organización fundamental de un sistema formada por sus componentes, las relaciones entre ellos y el contexto en el que se implantarán, y los principios que orientan su diseño y evolución”
  • 24. Uno de los modelos más conocidos es el “4+1” de Philippe Kruchten, vinculado al Rational Unified Process (RUP), que define cuatro vistas diferentes: Vista lógica: describe el modelo de objetos. Vista de proceso: muestra la concurrencia y sincronía de los procesos. Vista física: muestra la ubicación del software en el hardware. Vista de desarrollo: describe la organización del entorno de desarrollo. Existe una quinta vista que consiste en una selección de casos de uso o de escenarios que los arquitectos pueden elaborar a partir de las cuatro vistas anteriores
  • 25. Heurísticas de diseño Las heurísticas de diseño son un conjunto de recomendaciones que ayudan a mejorar la estructura del sistema, optimizando la modularidad. La aplicación de estas recomendaciones depende en gran medida del diseño específico, así como de las características del equipo físico donde se desarrolla el sistema.
  • 26. 1).- Tamaño del módulo El desarrollo del sistema de una estructura modular define la funcionalidad propia de cada módulo. Sin embargo, es recomendable revisar independientemente cada módulo a efectos de optimizar su tamaño en número de sentencias, para facilitar el desarrollo técnico del programa y su posterior mantenimiento. En general, podemos resumir diferentes versiones sobre el tamaño óptimo de un módulo definiendo que, el coste en el desarrollo y mantenimiento de un sistema será óptimo, cuando su estructura esté compuesta por módulos con un tamaño comprendido entre 10 y 100 sentencias.
  • 27. Tamaño del módulo Un módulo demasiado grande a menudo puede deberse a: a) Dos o más funciones han sido combinadas (frecuentemente con cohesión lógica) en un mismo módulo.
  • 28. 2).- Ámbito de control Se llama ámbito de control de un módulo a todos los módulos llamados por él y a los llamados por éstos, es decir, a todos los módulos que hay por debajo de él, en esa rama del diagrama de descomposición funcional. Un módulo que llama a muchos otros puede ser difícil de entender, y en el otro extremo, si los módulos forman una larga secuencia lineal, es posible que pueda suprimirse alguno de ellos. Debe evitarse ambos extremos:
  • 29. Ambito de control alto:  Normalmente se produce cuando no se tienen en cuenta los niveles intermedios. El estudio de los grupos de módulos subordinados que permitan combinar sus funciones en una sola, puede solucionar el problema.  Resistencia por parte del diseñador a delegar responsabilidades en módulos subordinados.  Solución: debe considerarse la posibilidad de agruparse varios subordinados en una función combinada. El principio de cohesión debe guiar este proceso para evitar módulos de baja cohesión.
  • 30. Ámbito de control bajo: Para optimizar una estructura de este tipo se deben revisar las posibilidades de descomponer las funciones en subfunciones con entidad propia, para formar nuevos módulos, o por el contrario, comprimir módulos subordinados en el módulo de nivel superior. esto es válido si se puede dar a los nuevos módulos un sentido dentro de la estructura del problema.
  • 31. Ámbito de control correcto