Métricas de diseño de interfaz

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 10,46 KB

Diseño de soluciones :guías y definiciones propor por la IEEE para el diseño de SW.
Fundamentos del diseño de software.
La etapa de diseño en el proceso de construcción de sw está organizada en dos fases:
• El diseño arquitectónico; que describe cómo el sw es descompuesto y organizado en componentes, la arquitectura de sw.
• El diseño detallado; que se describe como el comportamiento específico de estos componentes.
Principios de diseño:Abstracción :es enfocarse sobre un objeto para un propósito en particular, con el fin de obtener la info relevante no considerando el resto de la info.
Acoplamiento y cohesión :el acoplamiento es definido como una medida de la interdependencia entre los
módulos de un programa computacional; la cohesión es una medida que define cuán fuertemente asociados se encuentran los elementos de un módulo.
Descomposición y la modularización :un proyecto de sw grande puede ser dividido en componentes
más pequeños, con interfaces bien definidas que describen la interacción entre los componentes. La forma de
hacerlo es colocar diferentes funcionalidades y responsabilidades en componentes diferentes.
Encapsulación u ocultamiento de info :consiste en agrupar y empaquetar los detalles internos
de una abstracción y hacerlos directamente inaccesibles a entidades externas; para su acceso se deben usar interfaces de acceso.
Separación de la interfaz y de la implementación: consiste en definir un componente mediante la
especificación de una interfaz pública (para el cliente) y otra con los detalles de su implementación.
Suficiencia, integridad y primitivismo: el logro de la suficiencia e integridad significa asegurar que un
componente de sw captura únicamente todas las carácterísticas importantes de una abstracción. Con respecto a
la primitividad el diseño debe estar basado en patrones que son fáciles de implementar.
ASPECTOS CLAVE: Concurrencia: cómo se debe descomponer el sw en procesos, tareas e hilos y
tratar temas relacionados con la eficiencia, la atomicidad, la sincronización, y los asuntos
de planificación. Control y manejo de eventos: cómo organizar los datos y controlar el flujo,
cómo manejar eventos reactivos y temporales a través de diversos mecanismos, tales
como invocación implícita y call-back. Distribución de los componentes: cómo distribuir el sw a través
hw. Manejo de errores: excepciones y tolerancia a fallos, cómo prevenir y tolerar los
fallos, además hacer frente a condiciones excepcionales.Interacción y Presentación: cómo estructurar y organizar las interacciones
con los usuarios y la presentación de la info. Persistencia de datos: cómo manejar los datos a través del tiempo.
ASPECTOS A CONSIDERAR:captura de errores y recuperación try-catch en java, C#, javascript, etc.
Notaciones del diseño de software:Muchas notaciones y lenguajes existen para representar los artefactos del diseño de sw. Algunos se utilizan
principalmente para describir un diseño de organización estructural, otros para representar el comportamiento del sw.

Descripción estructural (vista estática)>Lenguajes de descripción de arquitecturas (ADLs). :Son textuales, tienden a ser formales, son lenguajes usados para describir una arquitectura
de sw en términos de componentes y conectores.
Diagramas de clases y de objetos. Se utiliza para representar un conjunto de clases (y objetos) y sus interrelaciones.
Diagramas de componentes. Se usa para representar un conjunto de componentes.
Tarjetas de clase responsabilidad y colaboración (CRCs). Se usan para indicar los nombres de los componentes (clase), sus responsabilidades, y los nombres de los componentes que colaboran.
Diagramas de despliegue. Se utilizan para representar un conjunto de nodos (física) y sus interrelaciones, y, por tanto, para moldear los aspectos físicos de un sistema.
Diagramas de entidadrelación (ERDs). Se utilizan para representar los modelos conceptuales de los datos almacenados en S.I.
Lenguajes descripción de Interfaz (IDLs). Lenguajes de programación que se utilizan para definir las interfaces
Diagramas de estructurales de Jackson. Se utilizan para describir las estructuras de datos en términos de secuencia, selección e iteración.
Diagramas de estructura. Se utilizan para describir la estructura de llamada de los programas


Descripción del comportamiento >Diagramas de actividad. Se utilizan para mostrar el flujo de control de una actividad.
Diagramas de colaboración. Se utilizan para mostrar el resultado de las interacciones que se producen entre un
grupo de objetos, sus vínculos y los mensajes de intercambio en estos enlaces.
Diagramas de flujo de datos (DFDs). Se utilizan para mostrar el flujo de datos entre un conjunto de procesos.
Diagramas y tablas de decisión. Se utilizan para representar combinaciones complejas de condiciones y acciones
Diagramas de flujo y diagramas de flujo estructurado. Se utilizan para representar el flujo de control y las acciones realizadas asociadas.
Diagramas de secuencia. Se utilizan para mostrar el resultado de las interacciones entre un grupo de objetos,
con énfasis en el tiempo-pedido de mensajes.
Diagramas de estados y transición de estados. Se utilizan para mostrar el flujo de control de estado a estado en una máquina de estados.
Lenguajes de especificación formal. Lenguajes textuales que utilizan conceptos básicos de las matemáticas (por ejemplo,
lógica, ju, secuencia) de forma rigurosa y abstracta. Definen el software interfaces, componentes y comportamiento, a menudo en términos de pre y poscondiciones.
Pseudo-código y lenguajes de programación de diseño (PDLs). Lenguajes estructurados, como los lenguajes de programación utilizados para describir
el comportamiento de un procedimiento o método generalmente en la fase de proyecto.

-Estrategias y métodos de diseño del sw
Las estrategias consisten en descripciones generales de un proceso y directrices, dando origen a métodos que pueden
ser usados como referencia por los ingenieros del software al momento de desarrollar un sistema de información.
Estrategias generales Algunas estrategias generales útiles ocupadas para el proceso de diseño son: dividir para lograr óptimos resultados;
realizar un refinamiento paso a paso; la estrategia de arriba hacia abajo versus las de abajo hacia arriba; la extracción
de datos y ocultamiento de información; el uso de la heurística; el uso de patrones y patrones de lenguajes; y el uso de
un enfoque iterativo e incremental.
Diseño orientado a funciones (diseño estructurado) Este es uno de los métodos clásicos de diseño de software, donde los centros de descomposición se realizan en la
identificación de las principales funciones del software y, a continuación, se procede con la elaboración y refinación de arriba hacia abajo.
Diseño orientado a objetos(sustantivo = objeto; verbo = método; adjetivo = atributo), avanzando cada vez más hacia el diseño orientado a objetos, en el que la
herencia y el polimorfismo desempeñan un papel clave.
Diseño centrado en datos Es un diseño centrado en la estructura de datos, en este tipo de diseño el ingeniero de software describe, en primer
lugar, los datos de entrada y salida de estructura (por ejemplo, usando diagramas de estructura de Jackson) y, a continuación,
se desarrolla la estructura del control de programa sobre la base de estos diagramas.
Diseño basado en componentes (CDB) Un componente de software es una unidad independiente, que tiene bien definida interfaces y dependencias que se
pueden componer y desplegar en forma independiente. El diseño basado en componentes aborda temas relacionados con la prestación, desarrollo y la integración de dichos componentes con el fin de mejorar la reutilización.
Tipos de diseño
Diseño a la medida El diseño a la medida se fundamenta en los resultados de los procesos de análisis de requisitos que se han efectuado sobre necesidades específicas de los
clientes que no pueden ser cubiertas por un software genérico. También se lleva adelante un proceso de diseño a la medida cuando los clientes buscan una solución
novedosa con requisitos propios.

Diseño genérico El diseño genérico, utiliza los resultados de diseños anteriores que por sus carácterísticas pueden ser
ajustados a un desarrollo determinado, tal es el caso de los patrones de diseño, que pueden ser utilizados en diversos proyectos informáticos cada vez que se
requiera

Entradas relacionadas: