SOFTWARE
Javier Martn
Centro Asociado de Mstoles /
Tres Cantos
UNED
Introduccin
JUEVES/VIERNES de 7 a 9
PLAN DE TRABAJO
Exposicin
Temas
INTRODUCCIN
ESPECIFICACIN DEL SOFTWARE
FUNDAMENTOS DEL DISEO
SOFTAWARE
TCNICAS GENERALES DE DISEO
SOFTWARE
CODIFICACIN Y PRUEBAS
AUTOMATIZACIN Y PROCESO DE
DESARROLLO
INGENIERA DEL SOFTWARE Javier Martn
Tema 1: INTRODUCCIN
MODELO EN CASCADA
10
MODELO EN CASCADA
12
MODELO EN CASCADA
13
MODELO EN V
14
MODELO EN V AMPLIADO
15
MODELO EN V
16
PROTOTIPOS
17
PROTOTIPOS RPIDOS
18
PROTOTIPOS RPIDOS
19
PROTOTIPOS EVOLUTIVOS
PROTOTIPOS EVOLUTIVOS
21
MODELO EN ESPIRAL
22
MODELO EN ESPIRAL
23
24
GESTIN DE CAMBIOS
GARANTA DE CALIDAD
27
REVISIONES
28
PRUEBAS
29
GESTIN
DE
CONFIGURACIN
CONFIGURACIN, disposicin de las partes que componen una cosa y le
dan su peculiar figura.
La CONFIGURACN SOFTWARE se refiere a la manera en que diversos
elementos se combinan para construir un producto software.
Se han de combinar todos los elementos que intervienen en el desarrollo:
Documentos del desarrollo
Cdigo fuente
Programas, datos y resultado de las pruebas
Manuales de usuario
Documentos de mantenimiento, informes de problemas y cambios
Prototipos intermedios
Normas particulares del proyecto
Dado que los elementos software van evolucionando a lo largo del
desarrollo se requiere:
Control de versiones, almacenar de forma organizada las sucesivas
versiones de cada elemento de la configuracin.
Control de cambios, garantizar que las diferentes configuraciones del
software se componen de elementos compatibles entre s (lnea base).
INGENIERA DEL SOFTWARE Javier Martn
30
NORMAS Y ESTNDARES
31
Tema 2:
ESPECIFICACIN DE SOFTWARE
32
MODELADO DE SISTEMAS
33
CONCEPTO DE MODELO
Un modelo conceptual es una abstraccin lgicomatemtica del mundo real que facilita la comprensin del
problema a resolver. Se trata de ofrecer una visin de lato
nivel, sin descender a explicar detalles concretos del
mismo. Indica QU hace el sistema y no CMO lo debe
hacer.
Los OBJETIVOS a cubrir con los modelos son:
Facilitar la comprensin de l problema
Establecer un marco para la discusin que simplifique y
sistematice el anlisis
Fijar las base para el diseo
Facilitar la verificacin del cumplimiento de los objetivos del
sistema
34
35
36
El anlisis es la fase de definicin del futuro sistema y tiene una importancia decisiva
en el desarrollo de todas las etapas posteriores.
Con el anlisis de requisitos se trata de caracterizar el problema a resolver. El
cliente trabaja con el analista para elaborar las especificaciones y posteriormente
se encargarn de verificar el cumplimiento de las mismas (contrato).
El anlisis debe producir un modelo vlido necesario y suficiente para recoger todas
las necesidades y exigencias del sistema, as como las restricciones que los limiten.
Para una especificacin correcta se requiere:
Completo y sin omisiones
Conciso y sin trivialidades
Sin ambigedades
Sin detalles de diseo o implementacin
Fcilmente entendible por el cliente
Separando requisitos funcionales u no funcionales (capacidades mnimas y
mximas, interfaces estndares, recursos necesarios, seguridad, fiabilidad,
mantenimiento, etc.
Divisin y jerarqua del modelo global, con el fin de simplificar su comprensin
Incluyendo los criterios de validacin del sistema, para comprobar si se ajusta al
contrato inicial.
INGENIERA DEL SOFTWARE Javier Martn
37
39
40
41
42
43
MODELO DE SRD
1.
Introduccin
1.
Objetivo: objetivos, participantes, calendario,...
2.
3.
4.
5.
2.
Descripcin general
1.
2.
3.
4.
5.
6.
7.
44
MODELO DE SRD
3.
4.
Requisitos especficos, lista detallada y completa de los requisitos del sistema, indicando su
grado de cumplimiento (obligatorio, recomendable, opcional. No incluir aspectos de diseo o
desarrollo, ni tampoco soluciones particulares que no sean obligadas
3.
Requisitos especficos, QU debe hacer el sistema especificando el tratamiento de
la informacin.
4.
Requisitos de interfase, conexin con otros sistemas con los que interacta (bases
de datos, ficheros, SSOO,...).
5.
Requisitos de operacin, es decir, del interfaz de usuario
6.
Requisitos de capacidad, volumen procesador, tiempo respuesta, tamao ficheros.
Se debe cuantificar para el peor, el mejor y el caso ms habitual.
7.
Requisitos de verificacin, que debe cumplir el sistema para que se posible verificar
su correccin
8.
Requisitos de pruebas de aceptacin
9.
Requisitos de recursos, instalaciones y elementos necesarios para el
funcionamiento del sistema
10.
Requisitos de documentacin
11.
Requisitos de transportabilidad, para adaptalo a otras plataformas
12.
Requisitos de calidad, que no hayan sido recogidos en otros apartados
13.
Requisitos de fiabilidad, imponiendo un lmite aceptable de fallos
14.
Requisitos de mantenibilidad
15.
Requisitos de seguridad, contra utilizacin indebida
16.
Requisitos de salvaguarda, para evitar consecuencias graves en equipos o en
personas
APENDICES, para complementar el contenido del documento
INGENIERA DEL SOFTWARE Javier Martn
45
46
47
48
49
50
51
Tema 3:
FUNDAMENTOS DEL DISEO DEL
SOFTWARE
52
CONCEPTO DE DISEO
53
ABSTACCIN, identificar los elementos significativos del sistema y abstraer la utilidad especfica de cada uno
ABSTRACCIONES FUNCIONALES, sirven para crear expresiones parametrizadas usando funciones o
procedimientos
TIPOS ABSTRACTOS, junto con el tipo de datos se deben crear los mtodos que manejan estos datos
MQUINAS ABSTRACTAS, definicin formal del comportamiento de una mquina
MODULARIDAD, el diseo modular propone dividir el sistema en partes diferenciadas y definir sus interfaces. Sus
ventajas: claridad, reduccin de costos y reutilizacin
REFINAMIENTO, a partir de una idea no muy concreta se va refinando mediante aproximaciones hasta el detalle
ESTRUCTURAS DE DATOS, para organizar la informacin que maneja el sistema: registros, conjuntos, listas, pilas,
colas, rboles, grafos, tablas, ficheros, ...
OCULTACIN, de la organizacin de los datos internos y de los detalles del algoritmo, se muestra en el interfaz slo
aquello que resultar invariable ante cambios. Ventajas: depuracin, mantenimiento, ...
GENERICIDAD, consiste en disear un elemento genrico, con las caractersticas comunes a todos los elementos
agrupados
HERENCIA, los elementos hijos heredan del padre su estructura y operaciones para ampliarlos, mejorarlos o
adaptarlos. Es conveniente utilizar un lenguaje de programacin orientado a objetos
POLIMORFISMO, es la propiedad de los elementos que pueden variar su formar sin cambiar su naturaleza. Se
emplea el concepto de genericidad. En los hijos se puede producir la anulacin de una operacin. A veces en el
padre interesa declarar un mtodo sin implementarlo, lo harn los hijos en diferido
CONCURRENCIA, se trata de aprovechar al mximo el procesador garantizando unos tiempos mximos de
respuesta para tareas crticas. Problemas de los sistemas con restricciones:
Tareas concurrentes, asegurar que todas cumplen sus restricciones
Sincronizacin de tareas, determinando los puntos de sincronizacin entre ellas
Comunicacin entre tareas, unas sern productoras de datos y otras consumidoras. Para evitar la corrupcin
de datos compartidos permitir slo concurrencia en lectura con semforos, monitores y regiones crticas
Interbloqueos (deadlock) cuando varias tareas esperan un evento que nunca se producir
55
CAJAS
DE BLOQUES
ADOSADAS
56
DIAGRAMAS DE ESTRUCTURA
(Yourdon)
Describen la estructura de los sistemas software como una
jerarqua de mdulos, reflejando slo su organizacin
esttica
RECTNGULO,
mdulo
LNEA, relacin
entre mdulos, el
superior utiliza el
mdulo inferior
ROMBO, opcional
ARCO, repetitiva
CIRCULO CON
FLECHA, envio de
datos o informacin
de control (correcto,
repetir, desconectar,
etc)
57
Y en los diagramas
HIPO de detalle
hay 3 zonas:
Entrada, Proceso y
Salida
58
DIAGRAMAS DE JACKSON
El proceso de diseo es sistemtico y se
lleva a cabo en tres pasos:
Especificacin de la estructura de datos de
entrada y de salida
Obtencin de la estructura del programa
59
NOTACIONES ESTTICAS
60
NOTACIONES DINMICAS
61
El dato encapsulado tiene como el tipo abstracto contenido y operaciones, pero no permite declarar otras variables de su
mismo tipo.
62
No existe nada equivalente a los datos encapsulados ni a las abstracciones funcionales en el modelo de
objetos
2.
63
1. INTRODUCCIN Para dar una visin general de todo el documento. Los contenidos de los apartados como en el SRD
1.1 Objetivo ...
1.2 mbito
1.3 Definiciones, siglas y abreviaturas
1.4 Referencias
2. PANORMICA DEL SISTEMA, visin general de los requisitos funcionales y de otro tipo del sistema a disear
3. CONTEXTO DEL SISTEMA, si posee conexiones con otros
3.n Definicin de interfaz externa
4. DISEO DEL SISTEMA, se describe el nivel superior del diseo del sistema
4.1 Metodologa de diseo de alto nivel
4.2 Descomposicin del sistema , primer nivel de descomposicin del sistema en sus componentes principales
5. DISEO DE LOS COMPONENTES, se procede a la decripcin detallada de l,os componentes mencionados en 4.2
5.n Identificador del componente
5.n.l Tipo (subprograma, mdulo, procedimiento, proceso, datos
5.n.2 Objetivo, o necesidad de que exista el componente
5.n.3 Funcin , lo que hace el componente
5.n.4 Subordinados, se enumeran todos los componentes que utiliza
5.n.5 Dependencias y su naturaleza: invocacin de operacin, datos compartidos, inicializacin, creacin, etc.
5.n.6 Interfases, de cmo otros componentes interactan con ste
5.n.7 Recursos , elementos usados por el componente
5.n.8 Referencias, que se han utilizado en el texto
5.n.9 Proceso, algoritmos o reglas que utiliza el componente para realizar su funcin
5.n.l0 Datos, descripcin de los datos, su tipo, sus valores iniciales, se puede realizar con un diccionario de datos
6. VIABILIDAD y RECURSOS ESTIMADOS
7. MATRIZ REQUISITOS/COMPONENTES, se pone en las filas los requisitos y en las columnas los componentes
64
65
Tema 4:
TCNICAS GENERALES DE
DISEO SOFTWARE
66
TCNICAS DE DISEO
67
DESCOMPOSICIN MODULAR
Independencia fucional
Acoplamiento
Cohesin
Comprensibilidad
Adaptabilidad
INGENIERA DEL SOFTWARE Javier Martn
68
El grado de acoplamiento mide la interrelacin entre dos mdulos, segn el tipo de conexin y la
complejidad de la interfase:
FUERTE,
POR CONTENIDO, cuando desde un mdulo se pueden cambiar datos locales de otro
COMN, se emplea una zona comn de datos a la que tienen acceso varios mdulos
MODERADO,
DE CONTROL, la zona comn es un dispositivo externo al que estn ligados los mdulos,
esto implica que un cambio en el formato de datos afecta a todos estos mdulos
POR ETIQUETA, en ontercambio de datos se realiza mediante una referencia a la
estructura completa de datos (vector, pila, rbol, grafo, ...)
DBIL,
DE DATOS, viene dado por los datos que intercambian los mdulos. Es el mejor posible
SIN ACOPLAMIENTO DIRECTO, es el acoplamiento que no existe
INGENIERA DEL SOFTWARE Javier Martn
69
Es necesario lograr que el contenido de cada mdulo tenga la mxima coherencia. Para que el n de
mdulos no sea demasiado elevado y complique el diseo se tratan de agrupar elementos afines y
relacionados en un mismo mdulo.
ALTA
MEDIA
BAJA
COHESIN LGICA, se agrupan elementos que realizan funciones similares. Ejs.: mdulos
de E/S o de tratamiento de errores
Si la descripcin no se refiere a algo especfico (Ej. Todos los errores), cohesin lgica
70
71
72
73
74
Segn esta tcnica, la tarea de diseo consiste en pasar de los DFDs a los
diagramas de estructura.
Hay que establecer una jerarqua o estructura de control entre los diferentes
mdulos, que no est implcita en el modelo funcional descrito en los DFDs
Para dos mdulos relacionados en el DFD (A) tenemos 3 posibilidades de
organizacin modular diferentes.
75
76
77
78
79
A partir de la descripcin o especificacin de los mdulos es posible identificar las palabras o trminos que
puedan corresponder a elementos significativos del diseo:
Atributos
Operaciones
Palabra
Caracteres
Imprimir
Prrafo
Separador
Lnea salida
Iniciar prrafo
Poner palabra
Terminar prrafo
Separador de
prrafo
Lneas en blanco
Sangrado
Lnea
Sangrado
Palabras
Iniciar lnea
cabe palabra?
Poner palabra
Imprimir sin ajustar
Imprimir ajustada
80
81
82
83
(a)
(b)
(c)
84
Tema 5:
CODIFICACIN Y PRUEBAS
85
Nos vamos a referir a las ltimas fases del ciclo de vida: codificacin,
pruebas de unidades, integracin y pruebas de sistema.
Cuando alguna de las pruebas no resulta positiva es necesario repetir
la codificacin o la integracin y probar de nuevo.
La fase de codificacin constituye el ncleo central en cualquiera de los
modelos y tiene una importancia fundamental ya que elabora los
programas fuente.
Previamente a la codificacin es necesario elegir el lenguaje que se
emplear as como la metodologa de programacin. Tambin se
pueden establecer en el equipo unas normas y un estilo de
programacin comn, lo que mejorar la coordinacin y facilitar el
trabajo. Adems se consigue facilitar el mantenimiento y mejorar la
reusabilidad del software.
Cuando el resultado de las pruebas no sea satisfactorio ser necesario
modificar el cdigo, lo que podr introducir nuevos errores. Si la
programacin es estructurada ser ms fcil localizar la disfuncin y la
posterior modificacin y las pruebas del cdigo, dnde podemos
introducir puntos de test.
INGENIERA DEL SOFTWARE Javier Martn
86
LENGUAJES DE PROGRAMACIN
Aunque los lenguajes han evolucionado mucho desde los aos 50 todava estn ms prximos a la mquina que al pensamiento humano.
Los lenguajes suelen adoptar los avances metodolgicos que se producen en el desarrollo del software. Ej.: C y C++
DESARROLLO HISTRICO, muchos han sido desarrollados con fines experimentales y muy pocos han llegado a ser utilizados
industrialmente:
3 GENERACIN: programacin estructurada con declaracin de tipos. Los ltimos van asociados a otros paradigmas.
PASCAL, fue diseado para la enseanza de la programacin estructurada. Tipificacin rgida y no contempla la codificacin
por separado
MDULA-2, descendiente de pascal, se incorpora la estructura de mdulo. Se mejora modularidad, concurrencia, abstraccin
y ocultacin
C, desarrollado para la codificacin del UNIX. Flexible y potente. No hay restricciones sobre las operaciones con distintos
tipos.
ADA, descendiente de pscal, mucho ms potente y complejo. Incorpora modularidad, abstraccin, ocultacin, concurrencia y
sincronizacin entre tareas.
LISP, lenguaje funcional usado en IA y sistemas expertos. Basado en listas admite recursividad. Maneja bien los smbolos
PROLOG, lenguaje lgico en que se construye una base de conocimiento basada en reglas a partir de la cual podemos inferir
nuevos hechos o reglas.
OTROS: herramientas para la especificacin y verificacin formal de programas, lenguajes de simulacin, de prototipos, etc.
87
CORRUTINAS, tienen una estructura semejante a subprogramas pero con una transferencia del
control ms flexible. El avance en la ejecucin de las corrutinas se produce segn el avance entre
ellas.
FORK-JOIN, es la propuesta de UNIX.
COBEGIN-COEND, entre estas palabras se inician todas las tareas y se finalizan. Es posible el
anidamiento.
PROCESOS; cada tarea se declara como un proceso y estos y se ejecutan concurrentemente. En
algunos casos es posible lanzar dinmicamente nuevos procesos una vez iniciado el programa.
PARA LA COMUNICACIN ENTRE TAREAS.
VARIABLES COMPARTIDAS
SEMFOROS
REGIONES CRTICAS
MONITORES
PASO DE MENSAJES
CSP
LLAMADA A PROCEDIMIENTOS REMOTOS
REDENZVOUS, DE ADA
88
DATOS SIMPLES. Para los eneros hay que tener en cuenta el rango posible y para los de coma flotante la
precisin. En ocasiones tambin permiten el manejo de complejos.
DATOS COMPUESTOS, son combinaciones de datos simples y compuestos ya definidos. Pueden ser
homogneos como los ARRAYS y heterogneos como los RECORDS o STRUCTS.
Nivel 0: sin tipos, no es posible declarar nuevos tipos y todos los datos deben pertenecer a tipos predefinidos
Nivel 1: tipado automtico, el compilador decide cul es el tipo ms adecuado para cada dato.
Nivel 2: tipado dbil, el compilador hace inferencias sobre los tipos y solo son posibles determinadas
conversiones
Nivel 3: tipado semirgido, todos los datos deben ser declarados con su tipo
Nivel 4: tipado fuerte, aqu adems de declarar los tipos, el programador est obligado a hacer explcita cualquier
conversin de tipos.
ABSTRACCIONES Y OBJETOS.
CONSTANTES, en los lenguajes modernos se pueden declarar constantes simblicas, sin indicar
directamente su valor numrico.
COMPROBACIN DE TIPOS, se pueden distinguir 5 niveles:
Otros tipos simples son char y string, para el manejo de cadenas. Los tipos enumerados tambin pueden
resultar tiles, un tipo enumerado muy frecuente son los booleanos.
En ocasiones los lenguajes permiten utilizar subrangos.
ABSTRACCIONES FUNCIONALES
TIPOS ABSTRACTOS DE DATOS
OBJETOS
89
90
ASPECTOS METODOLGICOS
Estos aspectos pueden mejorar la codificacin bajo determinados puntos de vista: claridad, manejo de errores eficiencia y
transportabilidad.
Normas y estilo, para conseguir un trabajo del equipo homogneo. Ejemplos:
Restricciones sobre el tamao del os mdulos, evitar anidamiento excesivo, no usar goto, etc.
Manejo de errores. Las causas de los errores pueden estar en el hardware o en el software, incluso de pueden producir
por la introduccin de datos incorrectos.
DEFECTO, incorreccin en el software. Pueden permanecer ocultos hasta que no se ejecutan determinadas
partes del programa
FALLO, elemnto del programa que no funciona correctamente, produciendo un resultado errneo
PREVENCIN DE ERRORES, consiste en detectar los fallos antes de que provoquen un error. Hay que
evitar la propagacin de errores y tener siempre a la salida un resultado correcto o una seal de fallo.
RECUPERACIN DE ERRORES, Cuando no es posible depurar todos los fallos es necesario hacer un
tratamiento de errores para devolver al programa a un estado vlido y evitar que el error se propague
1.
Deteccin del error
2.
Recuperacin del error. Se pueden usar dos esquemas en general:
1.
RECUPERACIN HACIA DELANTE, hay que programas un mecanismo de excepciones para
que cuando se detecte el error se corrija el estado y se contine correctamente la ejecucin.
2.
RECUPERACIN HACIA ATRS, corrige el estado no vlido restaurando el programa a un
estado correcto anterior,
Una transaccin es una operacin que puede terminar con xito o con fallo, en cuyo caso se
aborta y se restaura el estado de antes de comenzar dicha transaccin.
91
Utilizacin de estndares
Aislar las peculiaridades, colocndolas en mdulos separados. Se procurar evitar aquellos
elementos no consolidados y que pueden estar sujetos a futuros cambios o revisiones.
92
TCNICAS DE PRUEBAS
93
Lo importante es la elaboracin de los casos de prueba con el objetivo de descubrir los errores e
incorrecciones. Mtodos:
94
CUBRIMIENTO LGICO, consiste en no dejar ninguna seccin PRUEBAS DE BUCLES, que son elemento esencial en
del cdigo sin ejecutar en pruebas. Se llama camino bsico a
cualquier programa. Casos:
cualquier recorrido sobre el diagrama de flujo que nos permita
Bucles con n no acotado de repeticiones, probar 0, 1, 2,
llegar al final desde el punto de entrada.
bastantes y muchas iteraciones.
Hay que determinar el conjunto de caminos bsicos
que recorran todas las lneas de flujo del programa al menos una Bucles con n mximo de repeticiones, probar 0, 1, 2
bastantes, M-1, M y M+1 iteraciones
vez.
N mximo de caminos = N predicados + 1
En un segundo nivel de casos de prueba se trata de
que se ejecuten todas las combinaciones de caminos bsicos por
parejas
95
96
97
ESTRATEGIAS DE INTEGRACIN
Se integran los mdulos del sistema para conformar el sistema completo. Causas de error:
Desacuerdos en el interfaz entre mdulos
Interaccin indebida entre mdulos
Imprecisiones acumuladas
Estrategias bsicas para la integracin:
INTEGRACIN BIG BANG, en un nico paso se integran todos los mdulos, de forma que todos
los defectos se manifiestan a la vez. Solo recomendable para sistemas pequeos.
INTEGRACIN DESCENDENTE, se parte de un mdulo principal P, que se prueba con
mdulos de andamiaje, los cuales van siendo sustituidos por los verdaderos de forma
progresiva por niveles. Los mdulos de andamiaje;
El trabajo de elaborar estos mdulos puede ser aprovechado para hacer un prototipo y mostrar al
cliente un avance del programa. Inconvenientes:
INTEGRACIN ASCENDENTE, se codifican por separado y en paralelo todos los mdulos del
nivel ms bajo. Para probarlos se codifican mdulos gestores o conductores que los hacen
funcionar independientemente o en combinaciones sencillas. Las ventajas son:
La Integracin Sandwich consiste en realizar integracin ascendente con los mdulos de nivel
ms bajo y descendente con los de nivel ms alto.
INGENIERA DEL SOFTWARE Javier Martn
98
99
PRUEBAS DE SISTEMA
100
Tema 6:
AUTOMATIZACIN DE PROCESO
DE DESARROLLO
101
102
103
104
HERRAMIENTAS DE SOFTWARE
Herramientas clsicas.
Editor de texto.
Compilador
Montador de enlaces. Construye ejecutables combinando varios ficheros objeto.
Gestor de librera. Combina ficheros objeto en una librera.
Herramienta MAKE. Automatiza la actualizacin de los ficheros a partir de otros.
Intrprete interactivo. Casi Constituye un entorno de programacin completo (si lo es se debe clasificar a nivel de banco de trabajo y no de
herramienta). Engloba funciones equivalentes a las de edicin, compilacin, montaje y ejecucin.
Compilador/Intrprete. Procesador de un lenguaje interpretado de forma no interactiva.Incluye un compilador a cdigo intermedio y un
intrprete de ejecucin de dicho cdigo intermedio con todas las libreras de soporte. No incluye funciones de editor de programas.
Depurador absoluto. Ejecuta el programa de forma controlada. Resulta incomodo de usar ya que hace referencia a posiciones de memoria y a
los registros del procesador.
Depurador simblico. Realiza una funcin anloga al anterior pero con referencia al cdigo fuente por lo que es ms cmodo de usar.
Herramientas evolucionadas.
Editores orientados al lenguaje. Son editores de estructura.
Herramienta MAKE automtica. Se incorpora la funcin MAKE al compilador.
Manejador de versiones. Almacena de forma organizada y eficiente una serie de versiones del mismo elemento software. Se suelen usar desde
las utilidades MAKE al recompilar una aplicacin en desarrollo.
Procesadores/Analizadores de cdigo fuente. Grupo en que se pueden incluir diferentes herramientas que procesan el texto fuente para obtener
mediciones, generar tablas de referencias, encolumnar etc. Estas funciones podran estar incorporadas en los compiladores.
Procesadores de documentos. No son especficos del desarrollo pero son un soporte fundamental.
Herramientas de control de pruebas. Ayudan a la realizacin de pruebas unitarias o de
integracin.
Herramientas de control de cambios. Ayudan a la realizacin del desarrollo y al mantenimiento de aplicaciones.
Procesadores de ficheros de texto.
Herramientas de 4 generacin.
Hojas de clculo. Procesadores de documentos
Gestores de bases de datos Lenguajes de 4 generacin.
Generadores de programas.
105
ENTORNOS INTEGRADOS
Integracin de datos. Significa que la informacin almacenada en el entorno es gestionada de manera uniforme, con independencia de las
transformaciones que se hagan con cada elemento de informacin. Debe de conseguir:
Interoperatividad entre herramientas.
No redundancia de datos
Consistencia de datos.
Paso de datos de una herramienta a otra.
La integracin de datos puede conseguirse de diversas maneras:
Transferencia directa de datos de una herramienta a otra. Eficiente pero poco flexible. Complicada para integrar muchas
herramientas diferentes.
Transferencia mediante ficheros. Es la ms sencilla. Existe un formato normalizado (CDIF).
Transferencia basada en comunicacin. Alternativa a la anterior y puede ser usada en sistemas distribuidos y en sistemas
abiertos.
Repositorio comn. Se utiliza en los entornos modernos con un grado de integracin elevado.
Integracin de control. Consiste en la combinacin flexible de funciones para cumplir con las particularidades del proceso y actividades que
hay que informatizar. El mayor grado se consigue cuando desde una herramienta se puede invocar funciones de otra herramienta. Exige
como paso previo la integracin de los datos.
Integracin de la presentacin. Trata de realizar la interaccin con el usuario de manera uniforme, con cierta independencia dela funcin o
herramienta en uso. Para ello se deben conseguir los objetivos de un sistema amigable:
Limitar el nmero de formas de interaccin diferentes.
Usar formas de interaccin y presentacin adecuadas al modelo mental que el usuario tiene del entorno.
Satisfacer los tiempos de respuesta esperados y dar indicacin del avance del proceso en caso de tratamiento de larga duracin.
Mantener informacin til a disposicin del usuario.
Integracin del proceso. Consiste en que las herramientas se combinan de manera que apoyan o fuerzan el uso de una metodologa de
desarrollo definida. Este modo exige una buena integracin de control y datos. El proceso de desarrollo puede definirse en base a los
siguientes elementos.
Un paso del desarrollo es una unidad de trabajo concreta que produce un resultado (por ejemplo revisin del DDD).
Un suceso o evento es un condicin que ocurre durante la ejecucin de un paso y que puede desencadenar la ejecucin de una
accin asociada (compilacin de un mdulo).
Una restriccin del desarrollo es una limitacin que debe cumplirse.
Un buen grado de integracin del proceso exige que todo los pasos, eventos y restricciones que definen de forma natural la metodologa de
desarrollo a utilizar, sean representables y tratables dentro del entorno.
106
107
108