PDF de programación - Unidad Nº II: Diseño de Sistemas - Introducción al Diseño de Sistemas de Información

Imágen de pdf Unidad Nº II: Diseño de Sistemas - Introducción al Diseño de Sistemas de Información

Unidad Nº II: Diseño de Sistemas - Introducción al Diseño de Sistemas de Informacióngráfica de visualizaciones

Publicado el 9 de Diciembre del 2018
317 visualizaciones desde el 9 de Diciembre del 2018
471,4 KB
15 paginas
Introducción al Diseño de Sistemas

de Información

Unidad Nº II: Diseño de Sistemas

Facultad Regional Santa Fe Universidad Tecnológica Nacional

Diseño de Sistemas de Información
Introducción
Veamos ahora con más detenimiento de qué estamos hablando concretamente cuando
hablamos de ‘Diseño de Software’.

Historia – La evolución del software
El contexto en el que se ha desarrollado el software está fuertemente ligado a la evolución de
los sistemas informáticos. Un mejor rendimiento del hardware, una reducción del tamaño y un
costo más bajo, han dado lugar a sistemas informáticos más sofisticados.
La evolución del software dentro del contexto de las áreas de aplicación de los sistemas
basados en computadoras, puede verse de la siguiente manera :

Los primeros años
1950 - 19651
 Orientación por lotes
 Distribución limitada
 Software “a medida”

1965 - 1975

La segunda era
 Multiusuario
 Tiempo real
 Bases de Datos
 Software como

producto

La tercera era
 Sistemas distribuidos

1975 - 1985

Incorporación de
“inteligencia”
 Hardware de bajo

costo
Impacto en el
consumo

1985 -

escritorio

La cuarta era
 Potentes sistemas de
 Tecnología orientada
 Sistemas expertos
 Redes neuronales
 Computación paralela

artificiales

a objetos

En los primeros años de desarrollo de las computadoras, el hardware sufrió continuos
cambios, mientras que el software se contemplaba simplemente como un añadido. La
programación de computadoras era un arte para el cual existían pocos métodos sistemáticos.
El desarrollo de software se realizaba virtualmente sin ninguna planificación (hasta que los
planes comenzaron a desfasarse y los costos a crecer). Durante este período se utilizaba en la
mayoría de los sistemas una orientación por lotes. Algunas excepciones fueron sistemas
interactivos (Sistema de reservas de América Airlines) y sistemas de tiempo real para la
defensa (SAGE). No obstante esto, la mayor parte del hardware se dedicaba a la ejecución de
un único programa que, a su vez, se dedicaba a una aplicación específica.
Lo normal era que el hardware fuera de propósito general. Por otra parte, el software se diseñaba a medida para cada
aplicación y tenía una distribución relativamente pequeña. La mayoría del software se desarrollaba y era utilizado por la
misma persona u organización. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba.
Debido a este entorno personalizado del software, el diseño era un proceso implícito, realizado
en la mente de alguien, y la documentación normalmente no existía.
La segunda era en la evolución de los sistemas de computadoras se extiende desde la mitad
de la década de los 60 hasta finales de los setenta. La multiprogramación y los sistemas
multiusuarios introdujeron nuevos conceptos de interacción hombre máquina. Las técnicas
interactivas abrieron un nuevo mundo de aplicaciones y nuevos niveles de sofisticación del
hardware y del software. Los sistemas de tiempo real podían recoger, analizar y transformar
datos de múltiples fuentes, controlando así los procesos y produciendo salidas en milisegundos
en lugar de en minutos. Los avances en los dispositivos de almacenamiento en línea
condujeron a la primera generación de sistemas de gestión de bases de datos.
Otra característica fue el establecimiento del software como producto y la llegada de las “casas
de software”.
Conforme crecía el número de sistemas, comenzaron a extenderse las bibliotecas de software
de computadora. Se desarrollaban proyectos en los que se producían programas de decenas

1 Los años indicados sirven solamente de referencia. No indican un año exacto de comienzo y fin de una
era.





de miles de sentencias fuente. Todos esos programas (todas esas sentencias fuentes) tenían
que ser corregidos cuando se detectaban fallos, modificados cuando cambiaban los requisitos
de los usuarios o adaptados a nuevos dispositivos que se hubieran incorporado. Estas
actividades se llamaron mantenimiento del software. El esfuerzo gastado en el mantenimiento
comenzó a absorber recursos en una medida alarmante. Había comenzado una “crisis del
software”.
La tercera era en la evolución de los sistemas de computadoras comenzó a mediado de los
setenta y llega hasta el momento actual. El procesamiento distribuido (múltiples computadoras,
cada una ejecutando funciones concurrentemente y comunicándose con alguna otra)
incrementó notablemente la complejidad de los sistemas informáticos. Las redes de área local
y de área global, las comunicaciones digitales de alto ancho de banda y la creciente demanda
de acceso “instantáneo” a los datos, pusieron una fuerte presión sobre los desarrolladores del
software.
En esta era se produce la llegada de los microprocesadores y las computadoras personales.
Las computadoras personales han sido el catalizador del gran crecimiento de muchas
compañías de software. Estas compañías venden decenas y centenares de copias de sus
productos de software.
La cuarta era del software de computadora está evolucionando ahora. Las tecnologías
orientadas a objetos están comenzando a ser utilizadas en muchas áreas de aplicación. Las
técnicas de cuarta generación para el desarrollo de software ya están cambiando la forma en
que algunos segmentos de la comunidad informática construyen los programas. Los sistemas
expertos y el software de inteligencia artificial se han trasladado del laboratorio a las
aplicaciones prácticas. El software de redes neuronales artificiales ha abierto excitantes
posibilidades para el reconocimiento de formas y habilidades de procesamiento de información
al estilo de como lo hacen los humanos.
Conforme transitamos por la cuarta era, continúan intensificándose los problemas asociados
con el software de computadoras :

1. La sofisticación del hardware ha dejado desfasada nuestra capacidad de construir

software que pueda explotar el potencial del hardware.

2. Nuestra capacidad de construir nuevos programas no puede dar abasto a la

demanda de nuevos programas.

3. Nuestra capacidad de mantener los programas existentes está amenazada por el

mal diseño y el uso de recursos inadecuados.

La complejidad de los problemas
No todos los sistemas de software son complejos. En particular las aplicaciones que son
especificadas, construidas, mantenidas, y usadas por la misma persona, no pueden
considerarse problemas complejos. Estos sistemas tienden a tener propósitos limitados y un
ciclo de vida muy corto. Estas aplicaciones generalmente son más tediosas que difícil de
desarrollar, y en consecuencia aprender cómo se diseñan no es de nuestro interés.
Las aplicaciones de mayor envergadura (las que presentan comportamiento variado,
mantienen la integridad de cientos de transacciones de registro de información, control de
tráfico, etc.), son esencialmente complejas.
Esta complejidad es, en general, imposible de ser comprendida en su totalidad por una sola
persona. Por esto se deben considerar formas disciplinadas para manejar la complejidad.

“La complejidad del software es una propiedad esencial, no una cuestión accidental” (Brooks).

En general la complejidad deriva de cuatro elementos :

La complejidad del dominio del problema,
La dificultad para administrar el proceso de desarrollo,
La posible flexibilidad del software, y
Los problemas de caracterizar el comportamiento de sistemas discretos.

La complejidad del dominio del problema
Los problemas que se intenta resolver en software frecuentemente involucran elementos de
complejidad, tales como requerimientos que compiten entre sí, o contradictorios. A la
complejidad propia del problema hay que agregarle las que surgen de requerimientos no







funcionales o de ‘calidad’, tales como usabilidad, performance, costo, continuidad en el tiempo,
y confiabilidad.
Otro aspecto de la complejidad surge por el problema de comunicación entre los usuarios y los
desarrolladores: los usuarios generalmente encuentran muy difícil dar en forma precisa sus
necesidades de manera que los desarrolladores puedan entenderlas. En algunos casos
extremos los usuarios pueden tener sólo una vaga idea de lo que desean. Los usuarios y
desarrolladores tienen diferentes perspectivas de la naturaleza de la solución. En realidad, aún
si los usuarios tienen perfecto conocimiento de sus necesidades, los desarrolladores tienen
pocos instrumentos para capturar en forma precisa estos requerimientos. La manera común de
expresar los requerimientos es con texto, acompañados por algunos diagramas. Estos
documentos son difíciles de comprender, son abiertos a
interpretación variada, y
frecuentemente contienen elementos que son de diseño en vez de requerimientos esenciales.
Otra complicación adicional es que los requerimientos de un sistema frecuentemente cambian
durante su desarrollo.

La dificultad de administrar el proceso de desarrollo
Hoy en día es habitual encontrar sistemas cuyo tamaño se mide en cientos de miles, y aún millones, de líneas de
código. Ninguna persona puede entender tales sistemas en forma completa. Si estos sistemas son descompuestos de
alguna manera significativa, nos podemos encontrar con cientos o miles de módulos separados. Esto hace que se
utilicen grupos de desarrollo, e idealmente tan pequeño como sea posible. Más desarrolladores significa más
complejidad de comunicación y de aquí más dificultad de coordinación, y en particular si el grupo está geográficamente
disperso. Con un grupo de desarrollo, la clave del desafío de administración es siempre mantener una unidad
  • Links de descarga
http://lwp-l.com/pdf14488

Comentarios de: Unidad Nº II: Diseño de Sistemas - Introducción al Diseño de Sistemas de Información (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad