Análisis y diseño de sistemas de información

En esta unidad aprenderá los conceptos principales de diseño estructurado y
entenderá la importancia de los sistemas de información, así como sus conexiones
para solucionar problemas

Tema 1

Definición

Diseño estructurado es el proceso de decidir que componentes, y la
interconexión entre los mismos, para solucionar un problema bien especificado.

Objetivos

"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

Principios

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.

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

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.

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

Estructura de datos

La estructura de datos es una representación de la
relación lógica existente entre los elementos individuales de datos.

Procediminetos

La estructura del programa define la jerarquía de control,
independientemente de las decisiones y secuencias de
procesamiento.

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.

Tema 2

Definicion

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.

Concepto cajas negras

Este concepto es de suma utilidad e importancia en la ingeniería en general, y por
ende en el desarrollo de software.

Manejo de 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.

Complejidad en términos humanos

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.

Estructura

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

Tema 3

Definición

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.

Diseño de datos

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.

Diseño arquitectonico

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.

Proceso de diseño arquitectonico

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.

Tema 4

Definición

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

Acoplamiento

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

Cohesion

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.

Descomposicion

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).

En esta unidad hablaremos sobre la introducción y la Presentación de las
herramientas de diseño estructurado. Aquellos que están obligados a guardar una
forma convencional. Entre éstos tenemos a los administrativos, los cuales son

importantes porque sirven para transmitir la información entre el tiempo en que los

requisitos del usuario son definidos y documentados. Aquí Veremos las técnicas

de cohesión y acoplamiento de módulos.

Tema 1

Definicion

El desarrollo de sistemas pequeños, en la cual participan una o
dos personas, es una tarea simple.

Analisis

Modela los requerimientos del usuariobtopic

Diseño

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.

Inmplementacion

Dado el lenguaje de programación elegido se implementa
el sistema.

Tema 2

Definicion

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

Conceptos que se relacionan

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

Fase de diseño

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.

Componentes

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.

Tema 3

Definicion

Muchos aspectos de la modularización pueden ser
comprendidos solo si se examinan módulos en relación con
otros.

Factores que influencian

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.

Tipos de conexiones

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

Complejidad de la interface

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

Tema 4

Definicion

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.

Niveles de cohesion

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

Cohesion casual

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

Cohesion logica

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

David Alejandro Cortes Ramírez 20192578127