Está en la página 1de 5

Ingeniería de software

3.2.7 Patrones de diseño Los patrones de diseño son la base para la búsqueda de soluciones
a problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de
interacción o interfaces. Un patrón de diseño es una solución a un problema de diseño no
trivial que es efectiva (ya que se resolvió el problema satisfactoriamente en ocasiones
anteriores) y reutilizable (se puede aplicar a diferentes problemas de diseño en distintas
circunstancias).

El modelo de calidad de ISO 9126-1 establece 3 niveles: (1) Característica, (2) Su


característica y (3) Métricas. Existen métricas internas y externas. Las métricas internas
pueden ser aplicadas a un software no ejecutable durante el diseño y la codificación. Las
métricas externas se utilizan en el software ejecutable. El modelo de calidad interna y
externa está formado por las siguientes características: (1) Funcionalidad, (2) Confiabilidad,
(3) Facilidad de uso, (4) Eficiencia, (5) Facilidad de mantenimiento y (6) Portabilidad.

Funcionalidad: La funcionalidad es la extensión o cantidad de posibilidades provistas por


un sistema. Uno de los problemas más difíciles que encuentra un líder de proyecto es saber
cuánta funcionalidad es suficiente. La presión por más funciones, conocida como
“adornitis” (requerimientos desmedidos). El problema es la pérdida de consistencia que
puede resultar por el aumento inmoderado de funciones y propiedades, afectando la
facilidad de uso. Lo que para una persona puede ser un rasgo insignificante puede ser una
característica indispensable para otra. Las subcaraterísticas de la “Funcionalidad” son:
Aptitud, Precisión, Interoperabilidad, Conformidad, Seguridad y Trazabilidad.

Confiabilidad: La fiabilidad o confiabilidad del software es "la probabilidad que un


programa realice su objetivo satisfactoriamente (sin fallos) en un determinado periodo de
tiempo y en un entorno concreto (denominado perfil operacional)". Puede ser medida o
estimada mediante datos históricos o de desarrollo. La fiabilidad del software se define en
términos estadísticos como la probabilidad de operación libre de fallos de un programa de
computadora en un entorno determinado y durante un tiempo específico. Las
subcaracterísticas de la “Confiabilidad” son: Madurez, Tolerancia a fallas, Facilidad de
Recuperación, Disponibilidad y Degradabilidad.

-confiable es cuando mide consistentemente las variables de una prueba, es decir que los
resultados que esta arroja son similares o coincidentes entre sí.

Facilidad de uso: La facilidad de uso consiste en la simplicidad con que la gente puede
aprender a usar el software y aplicarlo para resolver problemas. También incluye la
facilidad de instalación, operación y monitoreo. cómo proveer orientación a los usuarios
novatos y cómo no aburrir a los usuarios expertos, al mismo tiempo.
La facilidad de uso es una medida que facilita a los usuarios específicos la realización de
ciertas tareas, tales como: (1) aprendizaje del manejo del sistema, (2) disminución de la
probabilidad de cometer errores, (3) efectividad y eficiencia en la realización de dichas
tareas, y (4) satisfacción en el uso del sistema. Las subcaracterísticas de la “Facilidad de
Uso” son: Comprensibilidad, Facilidad de aprendizaje, Operatividad, Explicitud,
Adaptabilidad al usuario, Atractividad, Claridad, Facilidad de ayuda y Amistoso al usuario.

Eficiencia: La eficiencia es la habilidad del software para poner la cantidad mínima de


demanda sobre los recursos de hardware como sea posible, tales como el tiempo de
procesador, espacio ocupado en memorias internas o externas, ancho de banda usado en
dispositivos de comunicación. Normalmente se identifica eficiencia como velocidad de
ejecución. Esta interpretación no es correcta. El software es eficiente si realiza un uso
racional de todos los recursos de hardware. La eficiencia incluye la utilización equilibrada
de: (1) tiempo de CPU, (2) memoria principal, (3) memoria secundaria, (4) canales de
entrada/salida, (5) velocidad de ejecución y (6) tiempo de respuesta. Las
subcaracterísticas de la “Eficiencia” son: Respecto al tiempo y Respecto a los recursos.

Facilidad de Mantenimiento: El mantenimiento del software representa más esfuerzo que


cualquier otra actividad de la Ingeniería del Software. La facilidad de mantenimiento es la
facilidad con la cual se puede corregir un programa si se encuentra un error, adaptarlo si su
entorno cambia, o mejorarlo si el cliente desea un cambio en los requisitos. Una métrica
sencilla orientada al tiempo es el tiempo medio entre cambios (TMEC), el tiempo que lleva
analizar el cambio requerido, diseñar una modificación apropiada, implementar el cambio,
probarlo y distribuirlo a todos los usuarios. Las subcaraterísticas de la “Facilidad de
Mantenimiento” son: Facilidad de análisis, Facilidad de cambio, Estabilidad y Facilidad de
prueba.

Portabilidad: La portabilidad consiste en la facilidad de transportar productos de software


a varios ambientes de hardware y software. Esta característica se ocupa de la combinación
hardware-software, que es la máquina que en realidad programamos, que incluye el sistema
operativo, el sistema gráfico, y otras herramientas fundamentales. El término “plataforma”
es usado para denotar un tipo de máquina hardware-software; un ejemplo es “Intel x86 con
Windows NT”. Las subcaracterísticas de la “Portabilidad” son: Adaptabilidad, Facilidad
de instalación, Conformidad y Facilidad de reemplazo.

Modelo Vista Controlador


El modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa
los datos de una aplicación, la interfaz de usuario y la lógica de control en tres componentes
distintos. El modelo es Sistema de Gestión de Base de Datos y el controlador representa la
Lógica del negocio

Modelo: Es la representación específica de la información con la cual el sistema opera. La


lógica de datos asegura la integridad de éstos y permite derivar nuevos datos. El modelo
encapsula los datos y las funcionalidades principales de la aplicación. Este nivel es el
encargado de manejar el lugar donde se almacenará la información que tiene relación con
ella.
▪ Vista: También llamada “Capa de Presentación”, despliega toda la información al usuario
en un formato adecuado para la interacción a partir de los datos generados por el Modelo.
▪ Controlador: También llamado “Capa de Control”, es el encargado de establecer la
comunicación entre el Modelo y las Vistas. Cada Vista tiene un componente Controlador
asociado, que se encarga de recibir las entradas del usuario (usualmente en forma de
eventos como: movimiento del ratón o entradas de teclado).

Se pueden encontrar diferentes implementaciones del MVC, sin embargo, el flujo que sigue
el control, generalmente es el siguiente:
1. El usuario actúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa
un botón).
2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la
acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente
a través de un gestor de eventos.
3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma
adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza el carro
de la compra del usuario). Los controladores complejos están a menudo estructurados
usando un patrón de comando que encapsula las acciones y especifica su extensión.
4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario.
La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario
donde se refleja los cambios en el modelo (por ejemplo, produce un listado del contenido
del carro de la compra).
5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo
nuevamente.
es utilizado mayoritariamente para construir interfaces de usuario.
MVP es un patrón arquitectónico de interfaz de usuario diseñada para facilitar pruebas de
unidad automatizada y mejorar la separación de inquietudes en lógica de presentación:

El modelo: es una interfaz que define los datos que se mostrará o no actuado en la interfaz
de usuario.
El presentador: actúa sobre el modelo y la vista. Recupera datos de los repositorios (el
modelo), y los formatea para mostrarlos en la vista.
La vista: es una interfaz pasiva que exhibe datos (el modelo) y órdenes de usuario de las
rutas (eventos) al presentador para actuar sobre los datos.
facilidad con la que nuevos usuarios desarrollan una interacción efectiva con el sistema o
producto. Está relacionada con la predictibilidad, sintetización, familiaridad, la
generalización de los conocimientos previos y la consistencia.

Capacidad del sistema o componente para operar según lo previsto en presencia de fallos
hardware o software.

La escalabilidad está íntimamente ligada al diseño del sistema. Influye en el rendimiento de


forma significativa. Si una aplicación está bien diseñada, la escalabilidad no constituye un
problema.

Una arquitectura multicapas es un conjunto ordenado de subsistemas, cada uno de cuales


está constituido en términos de los que tiene por debajo (pirámide) y proporciona la base de
la implementación de aquellos que están por encima de él.

Una arquitectura multicapa particiona todo el sistema en distintas unidades funcionales:


cliente, presentación, lógica-de-negocio, integración, y sistema de información empresarial
(EIS). Esto asegura una división clara de responsabilidades y hace que el sistema sea más
mantenible y extensible.

La escalabilidad horizontal consiste en potenciar el rendimiento del sistema desde un


aspecto de mejora global, a diferencia de aumentar la potencia de una única parte del
mismo.

Este modelo implica tener varios servidores (conocidos como Nodos) trabajando como un
todo. Se crea una red de servidores conocida como Cluster, con la finalidad de repartirse el
trabajo entre todos nodos del cluster, cuando el performance del cluster se ve afectada con
el incremento de usuarios, se añaden nuevos nodos al cluster, de esta forma a medida que es
requeridos, más y más nodos son agregados al cluster.

También podría gustarte