af Alejandro Cortes 2 år siden
129
Mere som dette
Los elementos de un módulo están lógicamente asociados si puede pensarse en ellos como pertenecientes a la misma clase lógica de funciones, es decir aquellas que pueden pensarse como juntas lógicamente. Por ejemplo, se puede combinar en un módulo simple todos los elementos de procesamiento que caen en la clase de "entradas", que abarca todas las operaciones de entrada
La cohesión casual ocurre cuando existe poca o ninguna relación entre los elementos de un módulo. La cohesión casual establece un punto cero en la escala de cohesión. Es muy difícil encontrar módulos puramente casuales. Puede aparecer como resultado de la modularización de un programa ya escrito, en el cual el programador encuentra un determinada secuencia de instrucciones que se repiten de forma aleatoria, y decide por lo tanto agruparlas en una rutina
Diferentes principios asociativos fueron desenvolviéndose a través de los años por medio de la experimentación, argumentos teóricos, y la experiencia práctica de muchos diseñadores
Hemos visto que la determinación de módulos en un sistema no es arbitraria. La manera en la cual dividimos físicamente un sistema en piezas (particularmente en relación con la estructura del problema) puede afectar significativamente la complejidad estructural del sistema resultante, así como el número total de referencias inter modulares.
La segunda dimensión del acoplamiento en la complejidad. Cuanto más compleja es una conexión, mayor acoplamiento se tiene. Un módulo con una interface de 100 parámetros generará mayor acoplamiento que un que solo necesite tres parámetros. El significado de "complejidad" es el de complejidad en términos humanos, tal lo visto anteriormente
Una conexión en un programa, es una referencia de un elemento, por nombre, dirección, o identificador de otro elemento. Una conexión intermodular ocurre cuando el elemento referenciado está en un módulo diferente al del elemento referenciante. El elemento referenciado define una interface, un límite del módulo, a través del cual fluyen datos y control. La interface puede considerarse como residente en el elemento referenciado. Puede pensarse como un enchufe (socket) donde la conexión del elemento referenciante se inserta
Tipo de conexión entre módulos: los sistemas normalmente conectados, tienen menor acoplamiento que aquellos que tienen conexiones patológicas. Complejidad de la interface: Esto es aproximadamente igual al número de ítems diferentes pasados (no cantidad de datos). Más ítems, mayor acoplamiento. Tipo de flujo de información en la conexión: los sistemas con acoplamiento de datos tienen menor acoplamiento que los sistemas con acoplamiento de control, y estos a su vez menos que los que tienen acoplamiento híbrido. Momento en que se produce el ligado de la Conexión: Conexiones ligadas a referentes fijos en tiempo de ejecución, resultan con menor acoplamiento que cuando el ligado tiene lugar en tiempo de carga, el cual tiene a su ver menor acoplamiento que cuando el ligado se realiza en tiempo de linkage-edición, el cual tiene menos acoplamiento que el que se realiza realiza en tiempo de compilación, todos los que a su vez tiene menos acoplamiento que cuando el ligado se realiza en tiempo de codificación.
Muchos aspectos de la modularización pueden ser comprendidos solo si se examinan módulos en relación con otros.
Símbolos gráficos: Identifica y describe los componentes de un sistema y las relaciones entre estos. Diccionarios de datos: Describe todos los datos utilizados en el sistema pueden ser manual o automatizado. Descripciones de procesos y procedimientos: descripción técnica para describir las actividades que se realizan los procesos. Reglas: Pasos a seguir para describir y documentar el ven forma correcta y completa.
Diseño de datos. Transforma el modelo de dominio de la información creado durante el análisis, en las estructuras de datos necesarias para implementar el software. Los objetos de datos y las relaciones definidas en el diagrama entidadrelación y el contenido detallado de datos del diccionario de datos constituyen la base para el diseño de datos. Diseño arquitectónico. Define la relación entre los principales elementos estructurales del programa. Se obtiene a partir del modelo de análisis y de la interacción de subsistemas definidos dentro del modelo de análisis. Diseño de interfaz. Describe como se comunica el software consigo mismo, con los sistemas que operan con él y con los operadores que lo emplean. Los diagramas de flujo de datos y control proporcionan la información necesaria para el diseño de la interfaz. Diseño procedimental. Transforma elementos estructurales de la arquitectura del programa en una descripción procedimental de los componentes del software. Se obtiene a partir de la especificación del proceso, la especificación del control y el diagrama de transición de estados.
enciones para identificar y describir los componentes de un sistema junto con las relaciones entre estos componentes. Diccionario de datos; descripciones de todos los datos utilizados en el sistema. Descripciones de procesos y procedimientos; declaraciones formales que emplean técnicas y lenguajes que permiten a los analistas describir actividades importantes que forman parte del sistema. Reglas; estándares para describir y documentar el sistema en forma correcta y completa
El análisis estructurado, como otros métodos, permite construir modelos de sistemas a partir del análisis de sus procesos y/o actividades que se ejecutan asociados al sistema. Permite al equipo encargado del estudio del desarrollo o la organización conocer de forma lógica un sistema o proceso
Dado el lenguaje de programación elegido se implementa el sistema.
Se modela la solución del sistema, teniendo en cuenta el ambiente de implementación a utilizar, por ejemplo, si el sistema es centralizado o distribuido, la base de datos a utilizar, lenguaje de programación, performance deseada, etc.
Modela los requerimientos del usuariobtopic
El desarrollo de sistemas pequeños, en la cual participan una o dos personas, es una tarea simple.
La descomposición es la separación de una función contenida en un módulo, para un nuevo módulo. Puede ser hecha por cualquiera de las siguientes razones. 1.3.1 Reducir el tamaño del módulo La descomposición es una manera eficiente de trabajar con módulos grandes. Un buen tamaño para un módulo es alrededor de media página (30 líneas). Ciertamente, toda codificación de un módulo debería ser visible en una página (60 líneas).
Otro medio para evaluar la partición en módulos (además del acoplamiento) es observar como las actividades de un módulo están relacionadas unas con otras; este es el criterio de cohesión.
El acoplamiento entre módulos clasifica el grado de independencia entre pares de módulos de un DE. El objetivo es minimizar el acoplamiento, es decir, maximizar la independencia entre módulos
Los diagramas de estructura son simplemente una herramienta para modelar los módulos de un sistema y sus relaciones y, junto con las especificaciones de funcionalidad de los módulos y las estructuras de datos de las cuplas, componen un diseño inicial que deberá ser analizado y mejorado
El diseño orientado al flujo de datos define varias representaciones que transforman el flujo de la información en la estructura del programa. El Diseño Orientado al Flujo de Datos permite una cómoda transformación de las representaciones de la información (DFD) a una descripción de la estructura del programa. Este proceso debe seguir los siguientes pasos: 1) Establecer el tipo de flujo de información. a. Flujo de transformación. b. Flujo de transacción. 2) Determinar los límites del flujo. 3) Convertir el DFD en la estructura del programa. 4) Definir la jerarquía de control descomponiéndola mediante particionalmente. 5) Refinar la estructura resultante usando medidas y heurísticas de diseño.
El objetivo principal del diseño arquitectónico es desarrollar una estructura de programa modular y representar las relaciones de control entre los módulos.
El impacto de la estructura de datos sobre la estructura del programa y la complejidad procedimental hace que el diseño de datos tenga una gran influencia en la calidad del software.
Los métodos de diseño del software se obtienen del estudio de cada uno de los tres dominios del modelo de análisis. El dominio de los datos, el funcional y el de comportamiento sirven de directriz para la creación del diseño.
La primera observación es que la información es menos compleja si se presenta en forma lineal y más compleja si se presenta en forma anidada. La segunda observación es que la información se menos compleja se se presenta en modo afirmativo o positivo
En el punto anterior realizamos un análisis sobre la incidencia de la complejidad en los costos, y cómo manejarla a través de la subdivisión de un problema en problemas menores. Vimos que muchos de nuestros problemas en diseño y programación se deben a la limitada capacidad de la mente humana para lidiar con la complejidad.
En principio diremos que escribir un programa "grande" generalmente lleva más tiempo que escribir un "pequeño". Esto es valedero si medimos "grande" y "pequeño" en unidades apropiadas.
Este concepto es de suma utilidad e importancia en la ingeniería en general, y por ende en el desarrollo de software.
Cuando se trata con un problema de diseño, por ejemplo un sistema que pueda ser desarrollado en un par de semanas, no se tienen mayores problemas, y el desarrollador puede tener todos los elementos del problema "en mente" a la vez.
Ocultamiento
El principio de ocultamiento de la información sugiere que los módulos se han de caracterizar por decisiones de diseño que los oculten unos a otros.
Procediminetos
La estructura del programa define la jerarquía de control, independientemente de las decisiones y secuencias de procesamiento.
Estructura de datos
La estructura de datos es una representación de la relación lógica existente entre los elementos individuales de datos.
Jerarquia del control
La jerarquía de control, también denominada estructura de programa, representa la organización (frecuentemente jerárquica) de los componentes del programa
Arquitectura de software
La arquitectura del software se refiere a dos características importantes del software de computadoras: 1. la estructura jerárquica de los componentes procedimentales (módulos) 2. la estructura de datos.
Modularidad
La arquitectura implica modularidad, el software se divide en componentes con nombres y ubicaciones determinados, que se denominan módulos, y que se integran para satisfacer los requisitos del problema
Abstraccion
La noción psicológica de abstracción permite concentrarse en un problema al mismo nivel de generalización, independientemente de los detalles irrelevantes de bajo nivel.
"El diseño estructurado, tiende a transformar el desarrollo de software de una práctica artesanal a una disciplina de ingeniería". Eficiencia Mantenibilidad Modificabilidad Flexibilidad Generalidad Utilidad
Diseño estructurado es el proceso de decidir que componentes, y la interconexión entre los mismos, para solucionar un problema bien especificado.