The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Ingeniería del Software - 5ta Edición - Roger S. Pressman

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Marvin's Underground Latino USA, 2018-09-02 15:06:47

Ingeniería del Software - 5ta Edición - Roger S. Pressman

Ingeniería del Software - 5ta Edición - Roger S. Pressman

hwttwp:w//l.iberlesroialu-ucniiovnerasritiaor.ina.ebtlogspot.com

INGENIERiA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

S% cubrir los errores) y depurado después (para eliminar www.elsolucionario.net
los errores). Cuando se publica finalmente el software,
CLAVE la utilización práctica descubre aun más defectos, y
comienza otro ciclo de comprobación y depuración.Este
las característicasmás importantes que distinguen trabajo repetido asociado a las actividades menciona-
la sala limpia son lo comprobación de corrección das resulta costoso y lleva mucho tiempo. Y lo que es
y la comprobación estadísticade utilización. peor, puede ser degenerativo; la corrección de errores
puede (inadvertidamente) dar lugar a la introducción de
Evidentemente, el enfoque de sala limpia aplica la otros errores.
mayor parte, si es que no todos, de los principios bási-
cos de ingeniería del software y de los conceptos que En la ingeniería del software de sala limpia, la com-
se han presentado a lo largo de este libro. Son esencia- probación unitaria y la depuración se ven sustituidas
les unos buenos procedimientos de análisis y diseño si por una verificación de corrección y por pruebas basa-
es que se desea producir una elevada calidad. Pero la das en la estadística.Estas actividades,junto con el man-
ingeniería de sala limpia diverge de las prácticas de tenimiento de registros para una continua mejora, hacen
software convencionales al quitar importancia (hay que el enfoque de sala limpia sea único.
quien diría eliminar) al papel de las pruebas de unidad
y a la depuración y al reducir dramáticamente (o elimi-
nar) la cantidad de comprobaciones que son realizadas
por quien desarrolla el software'.

En el desarrollo convencional del software, los erro-
res se aceptan como cosas que pasan. Dado que se con-
sidera que los errores son inevitables, cada módulo del
programa debe ser comprobadounitariamente (para des-

26.2 ESPECIFICACIÓN FUNCIONAL

Independientementedel método de análisis selecciona- Caja negra. Esta caja especifica el comportamien-
do, los principios de operación presentados en el Capí- to del sistema, o de parte de un sistema. El sistema (o
tulo 1 1 siempre serán aplicables. Se modelan los datos, parte de él) responde a estímulos específicos (sucesos)
las funciones y el comportamiento. Los modelos resul- mediante la aplicación de un conjunto de reglas de
tantes deben de ser descompuestos (refinados) para pro- transición que hacen corresponder el estímulo con la
porcionar un grado de detalle cada vez más elevado. El respuesta.
objetivo global consiste en pasar de una especificación
que captura la esencia de un problema, a una especifi- Caja de estado. Esta caja encapsula los datos de
cación que proporciona una cantidad de detalle sustan- estados y de servicios (operaciones) de forma análo-
cial para su implementación. ga a los objetos. En esta vista de especificación, se
representan las entradas de la caja de estados (los estí-
La ingeniería del software de sala limpia satisface mulos) y sus salidas (las respuestas). La caja de esta-
los principios de análisis operacional por cuanto emplea dos también representa la «historia de estímulos» de
un método denominado especijicución de estructuru de la caja negra, es decir, los datos encapsulados en la
caja Una < a j a »encapsula el sistema (o algún aspec- caja de estado que deben ser mantenidos entre las tran-
to del sistema) con un cierto grado de detalle. Median- siciones implicadas
te un proceso de refinamiento progresivo, se van
refinando las ca-jaspara formar una jerarquía en la cual Caja limpia. Las funciones de transición que están
cada caja tiene transparencia referencial. Esto es, «el implicadas en la caja de estado se definen en la caja
contenido de información de cada especificación de caja limpia. Dicho literalmente, la caja limpia contiene el
basta para definir su refinamiento, sin depender de la diseño procedimental correspondiente a la caja de esta-
implementación de ninguna otra caja» [LIN94]. Esto dos.
capacita al analista para desglosar jerárquicamente el
sistema, pasando de la representación esencial situada ¿ Cómo se lleva o cabo
en la parte superior, hasta los detalles específicos de la el refinamiento como parte
implementación situados en la parte inferior. Se utili- de lo especificación de estructura
zan tres tipos de ca-jas: de caja negra?

' Las pruebas se realizan, pero las efectúa un equipo independiente

de pruebas
462

www.elsolucionario.net
. C A P ~ T U L O26 I N G E N I E R I A DEL SOFTWARE DE S A L A L I M P I A

La Figura 26.2 ilustra el enfoque de refinamiento 26.2.1. Especificación de caja negra www.elsolucionario.net
mediante el uso de una especificación de estructura de
cajas. Una caja negra (CN,) define las respuestas de Una especificación de caja negra describe una abstrac-
todo un conjunto completo de estímulos. CN, se pue- ción, estímulos y respuestas empleando la notación que
se muestra en la Figura 26.3. [MILSS]. La funciónf'se
,de refinar en un conjunto de cajas negras, desde CN, aplica a una secuencia, S*, de entradas (estímulos) y
esta función los transforma en una salida (respuesta),
hasta CN, ,,,cada una de las cuales aborda una cierta R . Para componentes sencillos de software,f; puede ser
clase de comportamiento. El refinamiento prosigue una función matemática, pero en genera1,f se describe
hasta que se identifique una clase cohesiva de com- empleando el lenguaje natural ( o bien un lenguaje de
especificación formal).
,portamiento (por ejemplo, CN, ,). A continuación, se
,define una caja de estado (CE, ,) para la caja negra Muchos de los conceptos introducidos para sistemas
orientados a objetos son aplicables también para la caja
,(CN, , ,).En este caso, CE, , contiene todos los datos negra. Las abstracciones de datos y las operaciones que
manipulan estas abstracciones, se ven encapsuladas por
y servicios necesarios para implementar el comporta- la caja negra. Al igual que una jerarquía de clases, la
especificación de caja negra puede mostrar las jerar-
miento definido por CN, ! ,. Por último, se refina quías de utilización en que las cajas de nivel inferior
heredan las propiedades de las cajas de nivel superior
, ,CE, para formar un conjunto de cajas transparen- dentro de la estructura de árbol.

, ,tes (CT, ") y se especifican los detalles de diseño de l o s toiiteptos orienlaoos o obleros se destriheii
en el Capituio 20.
procedimientos.
A medida que se va realizando cada uno de estos 26.2.2. Especificación de caja de estado

pasos de refinamiento, se produce también una verifi- La caja de estado es «una generalización sencilla de una
cación de la corrección. Se verifican las especifica- máquina de estado» [MILSX].Recordando la descripción
ciones de las cajas de estado para asegurar que todas del modelado de comportamiento y de los diagramas de
y cada una de ellas se ajustan al comportamiento defi- transición de estados que se ofrece en el Capítulo 12, un
nido por la especificación de la caja negra predeceso- estado es algún modo observablede comportamientodel
ra. De manera similar, se verifican las especificaciones sistema. A medida que se produce el procesamiento, el
de las cajas transparentes con respecto a la caja de esta- sistema va respondiendo a sucesos (estímulos)efectuan-
dos predecesora. do una transición que parte del estado y llega a algún nue-
vo estado. A medida que se efectúa la transición, puede
%+* producirse una acción. La caja de estado utiliza una abs-
tracción de datos para determinar la transición al estado
CLAVE siguiente (respuesta) que se producirá como consecuen-
cia de la transición.
El refinamiento de la estructura de coias y la verificación
de corrección ocurren simultáneamente.

Es preciso tener en cuenta que los métodos de espe-
cificación basados en métodos formales (Capítulo 25)
se pueden utilizar en lugar del enfoque de especifica-
ción de estructura de cajas. El unico requisito es que se
puede verificar formalmente cada uno de los niveles de
especificación.

FIGURA 26.3.Una especificación de caja negra [MIL881.

S +R

FIGURA 26.2.Refinamiento de la estructura de cajas. FIGURA 26.4.Una especificación de caja de estado [MIL88].

463

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

Según se muestra en la Figura 26.4, la caja de estado tituida por las estructuras de programación estructura-
contiene una caja negra. El estímulo, S, que se introduce da que implementa g.
en la ca-janegra, procede de alguna fuente externa y de un
conjunto de estados internos del sistema, T. Mills pro- El diseño de procedimientos y la programación
porciona una descripción matemática de la función,,f, de estructurada se describenen el Capítulo 16.
la caja negra contenida en el seno de la caja de estado:
Como ejemplo, considérese la caja limpia que se
g:S*xT*+RxT muestra en la Figura 26.5. La caja negra g, que se mues-
tra en Figura 26.4 se ve sustituida por una sucesión de
donde g es una subfunción que está asociada a un esta- estructuras que contienen una estructura condicional.
do específico t. Cuando se consideran en su conjunto, Éstas, a su vez, se pueden refinar para formar Lajas trans-
las parejas de estados y subfunciones (t, g ) definen la parentes del interior a medida que vaya avanzando el
función de caja negra.6 procedimiento de refinamiento progresivo.

26.2.3. Especificación de caja limpia Es importante tener en cuenta que la especificación
de procedimientos descrita en la jerarquía de caja liin-
La especificación de caja limpia está íntimamente rela- pia se puede demostrar a efectos de corrección. Este
cionada con el diseño de procedimientos y con la pro- tema se considerará en la sección siguiente.
gramación estructurada. En esencia, la subfunción g,
que se encuentra dentro de la caja de estado, se ve sus-

26.3 REFINAMIENTO Y VERIFICACIÓN DEL DISEÑO www.elsolucionario.net

El enfoque de diseño que se utiliza en la ingeniería del pero ¿qué pasa con el diseño de datos'? En este aspec-
software de sala limpia hace mucho uso de la filosofía to, entra en juego un cierto número de conceptos fun-
de la programación estructurada. Pero, en este caso, la damentales de diseño (Capítulo 13). Los datos del
programación estructurada se aplica de forma mucho programa se encapsulan como un conjunto de abstrac-
más rigurosa. ciones a las cuales prestan servicio las subfuncionec.
Los conceptos de encapsulamiento de datos, oculta-
miento de información y los tipos de datos se utilizan
entonces para crear el diseño de datos.

El programa DoD STARTS ha desarrollado varias guías
y documentos de sala limpio: ftp.cdrom.com/

pub/ada/docs/tleanrm

S- + R 26.3.1. Refinamiento y verificación del diseño

FIGURA 26.5. Una especificación de caja transparente. Cada especificación de caja limpia representa el diseño
de un procedimiento (subfunción) necesario para efec-
La funciones básicas de procesamiento (que se des- tuar una transición de caja de estado. Mediante la caja
cribían durante los refinamientos anteriores de la espe- limpia, se utilizan las estructuras de programación
cificación) se refinan ahora utilizando una «expansión estructurada y de refinamiento progresivo según se ilus-
progresiva de funciones matemáticas en estructuras de tra en la Figura 26.6. Una función de programa, .f;se
conectividad lógica [por ejemplo, si-entonces-sino] y refina para dar lugar a una sucesión de subfunciones 8
subfunciones, donde la expansión [se] efectúa hasta que y h. Éstas a su vez se refinan para formar estructuras
todas las funciones identificadas pudieran ser enuncia- condicionales (si-entonces-sino y hacer-mientras).Un
das directamente en el lenguaje de programación utili- refinamiento posterior ilustra la elaboración lógica con-
zado para la implementación» [DYE92]. tinuada.

El enfoque de la programación estructurada se pue- t Qué condiciones
de utilizar de forma eficiente para refinar la función,
se aplican para probar
que las construcciones
estructuradas son correctas?

464

www.elsolucionario.net
. CAPITULO 26 INGENIERIA DEL SOFTWARE DE SALA LIMPIA

FIGURA 26.6.Refinamiento progresivo. Cada vez que se refina una caja limpia hasta el www.elsolucionario.net
siguiente nivel de detalle, se aplican las condiciones de
En cada nivel de refinamiento, el equipo de sala lim- corrección indicadas anteriormente.
pia2lleva a cabo una verificación formal de corrección.
Para lograr esto, se asocia un conjunto de condiciones Es importante tener en cuenta que la utilización de
de corrección genéricas a las estructuras de programa- estructuras de programación estructurada restringe el
ción estructurada. Si se expande una funciónf para dar número de comprobaciones de corrección que es pre-
una sucesión g y h, entonces la condición de corrección ciso efectuar. Se verifica una sola condición en busca
para todas las entradas defes: de sucesiones; se verifican dos condiciones para los si-
entonces-sino; y se verifican tres condiciones para los
¿Es cierto que g seguido por h da lugar af! bucles.
Si se refina una función p para llegar a una estruc-
tura condicional (si-entonces-sino),la condición de Con objeto de ilustrar alguna verificación de correc-
corrección para toda entrada de p es: ción para un diseño de procedimientos, se utiliza un sen-
;Siempre que sea cierta la condición (c) es cierto cillo ejemplo presentado por primera vez por parte de
que q realizap y siempre que (c) sea falsa, es Linger y sus colaboradores [LYN79].Nuestro objetivo
cierto que Y realizap? es diseñar y verificar un pequeño programa que calcu-
Si se refina una función m en forma de bucle, las le la parte entera, y, de una raíz cuadrada de un entero
condiciones de corrección para todas las entradas dado, x. El diseño de procedimientos se representa
de ni son: empleando el diagrama de flujo de la Figura 26.7.
¿Está garantizada la finalización?
¿Siempre que (c) sea verdadera es cierto que IZ Raíz cuadrada 1
seguido por m realiza m,siempre que (c) sea
falso, sigue realizándose m si se obvia el bucle? J

Si nos limitamos o construcciones estructurodoscuando FIGURA 26.7. Cálculo de la parte entera de una raíz
se creo un diseño de procedimientos, lo pruebo cuadrada [LIN79].
de lo correccfón es sencillo. Si se violan los construcciones,
los pruebm de corrección son difíciles o imposibles. Para verificar la corrección de este diseño, es preci-
so definir las condiciones de entrada y de salida que se
indican en la Figura 26.8. La condición de entrada indi-
ca que x debe ser mayor o igual a O. La condición de
salida requiere que x permanezca intacta y que adopte
un valor dentro del intervalo mostrado en la figura. Para
demostrar que el diseño es correcto, es necesario demos-
trar que las condiciones c o n ~ i ~ i ~bzuocl,e, w n t , si y sali-
da mostradas en la Figura 26. 8 son ciertas en todos los
casos. En algunas ocasiones se denominan suhdemos-
tr-aciones.

* Dado que todo el equipo está implicado en el proccso de verifica-.

ción,es menos probable que se produzca un error al efectuar la veri-
ficación en sí.

465

www.elsolucionario.net

INGENIERIA DEL SOFTWARE. UN ENFOQUE PRACTICO .

Raíz ción que utilice x. Por tanto, queda intacto. Dado que www.elsolucionario.net

t salida: x intacto, e y2< x 5 ( y + 1)2 la comprobación de condiciones (y + 1)2 5 Y, tiene

FIGURA 26.8.Demostración de la corrección del diseño que fallar para alcanzar la condición solido, se sigue
[LIN791.
que (u + i)2 5 x. Además, la condición buc,lc debe
1. La condición comienzo exige que [s 2 O e y = O].
Basándose en los requisitos del problema, se supone seguir siendo verdadera (esto es, y* 5 .v). Consi-
que la condición de entrada es correcta'. Consi-
guienteinente, se satisface la primera parte de la con- guientemente, que (y + i ) 2 > x e y 2 5 se pueden
dición conzienzo, x 2 O. En el diagrama de flujo, la
sentencia que precede inmediatamente a la condi- combinar para satisfacer la condición de sulido.
ción coniierzzo hace que y = O. Consiguientemente,
la segunda parte de la condición conzienzo también Además, es preciso asegurar que finalice el bucle.
se satisface. De aquí que comienzo sea verdadero. Un examen de la condición del bucle indica que dado
que y se va incrementando y que x 2 O, el bucle final-
2. La condición bucle se puede encontrar de dos mane- mente debe terminar.
ras: (1) directamente saliendo de conzienzo (en este
caso, la condición del bucle se satisface directamente) Los cinco pasos indicados anteriormente son una
o bien (2) a través del control de flujo que pasa por demostración de la corrección del diseño del algoritmo
la condición cont. Dado que la condición cont es indicado en la Figura 26.7. Ahora estamos seguros de
idéntica a la condición bude, bucle es verdadera inde- que el diseño calculará, realmente, la parte entera de
pendientemente de la rama de flujo que lleve a ella. una raíz cuadrada.
9'
Es posible utilizar un enfoque matemáticamente más
b%* riguroso de la Verificación del diseño. Sin embargo, un
debate sobre este tema iría más allá del alcance de este
CLAVE libro. Los lectores interesados pueden consultar [LIN79].

Poro demostrar lo corrección de un diseño, primero 26.3.2. Ventajas de la verificación del diseño4
se deben identificar todos los condiciones y demostrar
que todo uno de ellos tomo un volor Booleono. La verificación de corrección rigurosa de cada uno de
Esto es lo que se llamo subdemostroción. los refinamientos del diseño de ca.ja limpia posee un
cierto número de ventajas evidentes. Linger [ LIN941
3. Se llega a la condición cont únicamente después de las describe de la siguiente manera:
haber incrementado en 1 el valor de y. Además, la
ruta de flujo de control que lleva a c m t solamente se Sc' reduce lu i.lel-ificacióna un proceso finito. La
puede invocar si la condición si también es verda- forma anidada y secuencial, en que se organizan las
estructuras de control en una caja limpia, define de
dera. Consiguientemente si ( y + I l2 i s,se sigue que manera natural una .jerarquía que revela las condi-
ciones de corrección que es preciso verificar. Un
y 2 Is. La condición c m t se satisface. axioma de sustitución [LIN79] nos permite reein-
4. La condición s i se comprueba en la lógica condicio- plazar las funciones objetivo por sus refinamientos
de estructura de control dentro de la jerarquía de sub-
nal que se muestra. Consiguientemente, la condición
s i debe de ser verdadera cuando el flujo de control Por e.jemplo, la subdemostracióii
pase por la vía mostrada. al f 1 de la Figura 26.9 requiere que
5 . La condición salido exige, en primer lugar, que x no la comprobación de las operaciones g l y g2 con la
haya cambiado. Un examen del diseño indica que s función final f2 produ7ca sobre los datos el mismo
no aparece en ningún lugar a la izquierda de un ope- efecto f 1. Obsérvese que f2 reemplaza a todos los
rador de asignación. No hay ninguna llamada a fun- detalles de su refinamiento dentro de la deino\tra-
ción. Esta sustitución localiza el argumento de
demostración en la estructura de control que se está
emdiando. De hecho, permite al ingeniero del soft-
ware real izar demostraciones en cualquier orden.

t Qué es lo que se gana

realizando las demostraciones
de corrección?

E s impusil?le usociui- LIMU impoi-turzc~iuc~xcesiiwal
efecto positivo yire posee sobre lo culidod lo r.educ,-
ciíín de la i~er-ifi'cac~icaíriu n p i w r s o finito. Aun
cuando todos, salvo los programas más triviales,
muestran un con.junto, que en esencia es infinito, de

Un valor negativo para una raia cuadrada carece de significad« en Esta seccion y las Figuras 26 7 hasta la 26 9 se han adaptado de
este contexto. ILIN941 Sc utilizan con permiso del autor

466

hwttwp:w//l.iberlesroialu-ucniiovnerasritiaor.ina.ebtlogspot.com
.

C A P ~ T U L O26 I N G E N I E R I A DEL SOFTWARE D E S A L A LIMPIA

rutas de ejecución, se pueden verificar en un número de acuerdo en que cada condición es correcta, por
finito de pasos. tanto, un error solamente es posible si todos y cada
uno de los miembros del equipo verifican incorrec-
Aun cuondo en un proyromo hoy uno contidod tamente una condición. El requisito de acuerdo uná-
nime basada en las verificaciones individuales de
extremodomente grande de formas de ejecución, resultados da lugar a un software que posee pocos o
ningún defecto antes de su primera ejecución.
los posos poro demostrar que un proyromo
es correcto son muy pocos. Es escaluhle. Todo sistema de software, indepen-
dientemente de su tamaño, posee unos procedi-
[fll f 1 = [DO g l ; 92; [f21 ENDI ? mientos de caja transparente del más alto nivel
DO formados por estructuras de secuencia, alternancias
e iteraciones. Cada uno de estos invoca típicamente
gl f 2 = [WHILE p l DO [f3] ENDI ? a un gran subsistema que posee miles de líneas de
código -cada uno de estos subsistemas posee su
92 propio nivel superior de funciones y procedimientos
[f21 finales-. Por tanto, las condiciones de corrección
para estas estructuras de control de alto nivel se veri-
WHILE fican de la misma forma en que se procede con las
estructuras de bajo nivel. Las verificaciones de alto
Pl f 3 = [DO g3; [f41; 98 ENDI ? nivel pueden requerir, y merecerá la pena, una mayor
DO [f3] cantidad de tiempo, pero no se necesita más teoría.

93 Produce un código mejor qiie la cwnpi-ohacicínm i - www.elsolucionario.net
If41 f4 = [IF p2; THEN [f5] ELSE [f61 ENDI ? furia. La comprobación unitaria solamente com-
IF prueba los efectos de ejecutar vías de pruebas
seleccionadas entre muchas vías posibles. Al basar
P2 la verificación en la teoría de funciones, el enfoque
THEN [f5] f 5 = [DO 94; g5 ENDI ? de sala limpia puede verificar todos y cada uno de
los posibles efectos sobre los datos, porque aun
94 cuando un programa pueda tener múltiples vías de
95 ejecución, solamente posee una función. La verifi-
ELSE [f6] f 6 = [DO g6; 97 ENDI ? cación es, además, más eficiente que la comproba-
ción unitaria. La mayor de las condiciones de
g6 verificación se pueden verificar en unos pocos minu-
97 tos, pero las comprobaciones unitarias requieren una
END cantidad notable de tiempo para prepararlas, ejecu-
tarlas y comprobarlas.
g8
END Es importante tener en cuenta que la verificación de
diseño debe de aplicarse en última instancia al código
END fuente en sí. En este contexto, suele denominarse v e r -
ficación de cwwccicín.
FIGURA 26.9.Diseño con subdemostraciones [LIN94].

Permite que los equipos de sala limpiu iw.ijiquen
todas las l í i w d~e~úisefioy de ccídigo. Los diseños
pueden efectuar la verificación mediante un análisis
y debate en grupo de las bases del teorema de correc-
ción y pueden producir pruebas escritas cuando se
necesite una confianza adicional en algún sistema
crítico para vidas o misiones.

Da lugar a un nivel de defectos p:.cíximo a cero.
Durante una revisión en equipo, se verifica por tur-
nos la corrección de todas y cada una de las estruc-
turas de control. Cada miembro del equipo debe estar

26.4 PRUEBA DE SALA LIMPIA El comportamiento visible para el usuario de ese pro-
grama está controlado por las entradas y sucesos que
La táctica y estrategia de la prueba de sala limpia es algo suelen ser producidos por el usuario. Pero en casos com-
fundamentalmente distinto de los enfoques convencio- plejos, el espectro posible de entradas y sucesos (esto
nales de comprobación. Los métodos convencionales es, los casos prácticos) pueden ser extremadamente
derivan de casos de prueba para descubrir errores de variables. ¿Cuál es el subconjunto de casos prácticos
diseño y de codificación. El objetivo de los casos de que verifica adecuadamente el comportamiento del pro-
prueba de sala limpia es validar los requisitos del soft- grama? Ésta es la primera cuestión que aborda la prue-
ware mediante la demostración de que una muestra esta- ba estadística de casos prácticos.
dística de casos prácticos (Capítulo 11) se han ejecutado
con éxito. La prueba estadística de casos «equivale a probar
el software en la forma en que los usuarios tienen
26.4.1. Prueba estadística de casos prácticos intención de utilizarlo» LLIN94). Para lograr esto, los
equipos de prueha de sulu linipiu (también llamados
El usuario de un programa de computadora no suele equipos de certijicución) deben determinar la distri-
necesitar comprender los detalles técnicos del diseño.

www.elsolucionario.net

INGENIERIA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

bución de probabilidad de utilización correspondien- el intervalo de distribuciirn que se muestra en la tabla www.elsolucionario.net
te al software. La especificación (caja negra) de cada anterior:
incremento del software se analiza para definir un con-
junto de estímulos (entradas o sucesos) que pueden HD-P-HD-HD-HD-FZ
dar lugar a que el software modifique su comporta- P-HD-HD-HD-C-HD-H D
miento. Basándose en entrevistas con posibles usua- HD-HD-FZ-P-P-HD
rios, en la creación de escenarios de utilización y en
una comprensión general del dominio de la aplica- El equipo de prueba ejecuta los casos prácticos indi-
ción, se asigna una probabilidad de utilización a cada cados anteriormente (y otros más) y verifica el compor-
uno de los estímulos. tamiento del software frente a la especificación del
sistema. La temporización de las pruebas se registra, de
Los casos prácticos se generan para cada uno de los modo que sea posible determinar los intervalos tempo-
estímulos' de acuerdo con la distribución de probabili- rales. Mediante el uso de intervalos temporales, el equi-
dad de utilización. Como ejemplo, considérese el siste- po de certificaciónpuede calcular el tiempo-mínimo-entre
ma de seguridad HogarSegur-o descrito anteriormente fallos. Si se lleva a cabo una larga sucesión de pruebas
en este libro. Se está utilizando la ingeniería del soft- sin fallo, el TMEF es bajo, y se puede suponer que la fia-
ware de sala limpia para desarrollar un incremento del bilidad del software es elevada.
software que gestione la interacción del usuario con el
teclado del sistema de seguridad. Para este incremento 26.4.2. Certificación
se pueden identificar cinco estímulos. El análisis indi-
ca el porcentaje de probabilidad de cada estímulo. Para Las técnicas de verificación y prueba descritas ante-
hacer que sea más sencilla la selección de casos de prue- riormente en este capítulo dan lugar a componente5
ba, estas probabilidades se hacen corresponder con inter- de software (y a incrementos completos) que ,e pue-
valos numerados entre 1 y 99 [LIN94], lo que se muestra den certificar. En el contexto del enfoque de la inge-
en la tabla siguiente: niería del software de sala limpia, la certificaciórz
implica que la fiabilidad (medida por el tiempo míni-
Estímulos Probabilidad Intervalo mo de fallo, TMDF) podrá ser especificada para cada
del programa componente.
1-49
habilitar/ 50% 50-63 El posible impacto de los componentes de software
deshabilitar (HD) 15% 64-78 certificables va más allá de un sencillo proyecto de \ala
fijar zona (FZ) 15% 79-94 limpia. Los componentes de 5oftware reutili7ables \e
consulta (C) 15% 95-99 pueden almacenar junto con sus escenarios de utiliza-
prueba (P) 5% ción, con los estímulo\ del programa y con las corres-
alarma (A) pondientes distribuciones de probabilidad. Cada uno de
los componentes dispondrá de una fiabilidad certifica-
Para generar una sucesión de casos de prueba de da dentro del escenario de utilización y dentro del régi-
utilización que se ajuste a la distribución de probabi- men de comprobación dem-ito. Esta información es
lidades de utilización, se genera una serie de núme- sumamente valiosa para otras personas que tengan inten-
ros aleatorios entre 1 y 99. El número aleatorio ción de utilizar estos componentes.
corresponde al intervalo de distribución de probabi-
lidad anteriormente destacado. Consiguientemente, la El enfoque de la certificación implica cinco paw\
sucesión de casos prácticos se define aleatoriamente [WOH94]:
pero se corresponde con la probabilidad correspon-
diente de aparición de ese estímulo. Por ejemplo, 1. Es preciso crear escenarios de utilización.
suponga que se generan las siguientes sucesiones de
números aleatorios 2. Se especifica un perfil de utilización.

13-94-22-2445-56 3. Se generan casos de prueba a partir del perfil.
81-19-31-6945-9 4. Se ejecutan pruebas y los dato5 de los fallos \e
38-21-52-84-864
registran y se analizan.
Se derivan los siguientes casos prácticos median- 5 . Se calcula y se certifica la fiabilidad.
te la selección de los estímulos adecuados basados en
¿ Cómo se certifica un

componente de software?

Los pasos 1 a 4 se han descrito en secciones ante-
riores. En esta sección, nos concentramos en la certifi-
cación de fiabilidad.

Se utilizan herramientas automatizadas con este fin Para mas infor
macion, vease [DYE92]

468

www.elsolucionario.net

.

CAPITULO 26 INGENIERIA DEL SOFTWARE DE SALA LIMPIA

La certificación para la ingeniería del software de sala Modelo de Certificación.Se estima y certifica la tia-
limpia requiere la creación de tres modelos [POO34]: bilidad global del sistema.

Modelo de muestreo. La comprobación de softwa- Al final de la prueba estadística de utilización, el
re ejecuta m casos de prueba aleatorios, y queda certi- equipo de certificación posee la información necesaria
ficada si no se produce ningún fallo o si se produce un para proporcionar un software que tenga un TMEF cer-
número de fallos inferior al especificado. El valor de m tificado que se habrá calculado empleando todos estos
se deriva matemáticamente para asegurar que se alcan- modelos.
ce la fiabilidad necesaria.
Una descripción detallada del cálculo de los mode-
Modelo de componentes. Es preciso certificar un sis- los de muestreo, de componentes y de certificación va
tema compuesto por n componentes. El modelo de com- más allá del alcance de este libro. El lector interesado
ponentes capacita al analistapara determinar la probabilidad encontrará detalles adicionales en [MUSS7], [CUR86]
de que falle el componente i antes de finalizarel programa. y [P0093].

RESUMEN definen condiciones de salida para cada una de las sub- www.elsolucionario.net
funciones y se aplica un conjunto de subpruebas. Si se
La ingeniería del software de sala limpia es un enfoque satisfacen todas y cada una de las condiciones de sali-
formal para el desarrollo del software, que puede dar da, entonces el diseño debe ser correcto.
lugar a un software que posea una calidad notablemen-
te alta. Emplea la especificación de estructura de cajas Una vez finalizada la verificación de corrección,
(o métodos formales) para el modelado de análisis y comienza la prueba estadística de utilización. A dife-
diseño, y hace hincapié en la verificación de la correc- rencia de la comprobación condicional, la ingeniería del
ción, más que en las pruebas, como mecanismo funda- software de sala limpia no hace hincapié en la prueba
mental para hallar y eliminar errores. Se aplica una unitaria o de integración. En su lugar, el software se
prueba estadística de utilización para desarrollar la infor- comprueba mediante la definición de un conjunto de
mación de tasa de fallos necesaria para certificar la fia- escenarios, mediante la determinación de las probabi-
bilidad del software proporcionado. lidades de utilización de cada uno de esos escenarios y
mediante la aplicación posterior de pruebas aleatorias
El enfoque de sala limpia comienza por unos modelos que satisfagan estas probabilidades. Los registros de
de análisis y diseño que hacen uso de una representación error resultantes se combinan con modelos de muestreo,
de estructurade cajas. Una «caja» encapsula el sistema (o de componentes y de certificación para hacer posible el
algún aspecto del sistema) en un determinado nivel de cálculo matemático de la fiabilidad estimada de ese com-
abstracción. Se utilizan cajas negras para representar el ponente de software.
comportamiento observable externamente de ese sistema.
Las cajas de estado encapsulan los datos y operaciones de La filosofía de sala limpia es un enfoque riguroso de
ese estado. Se utiliza una caja limpia para modelar el dise- la ingeniería del software. Se trata de un modelo de pro-
ño de procedimientos que está implicado por los datos y ceso del software que hace hincapié en la verificación
operaciones de la caja de estados. matemática de la corrección y en la certificación de la
fiabilidad del software. El resultado final son unas tasas
Se aplica la verificación de corrección una vez que de fallo extremadamente bajas, que sería difícil o impo-
está completo el diseño de estructura de cajas. El dise- sible de conseguir empleando unos métodos menos for-
ño de procedimientos para un componente de software males.
se desglosará en una serie de subfunciones. Para demos-
trar la corrección de cada una de estas subfunciones, se

REFERENCIAS

[CUR86] Currit, P.A., M. Dyer y H.D. Mills, «Certifying the [HEN95] Henderson, J., «Why isn't cleanrooin the Univcr-
Reliabiiity of Software»,IEEE Truns. Softwai.e Enginee- sal Software Development Methodology?»,Ci-osstalk,vol.
rin,g, vol. SE-12, n." 1, Enero de 1994. 8, n.g 5 , Mayo de 1995, pp. 11-14.

[DYE92] Dyer, M., The Cleunr-oonzApproucIi tn Quality Sof- [HEV93] Hevner, A.R., y H.D. Mills, «Box Structure Methods
w w e Deidopment, Wiley, 1992. for System Development with Objectw, /BM Sy.stcwzs ./our-
nal, vol. 31, n.s 2, Febrero de 1993,pp. 232-251.
[HAU94]Hausler, P.A., R. Linger y C. Trammel, ({Adopting
Cleanroom Software Engineering with a phased Appro- [LIN79] Linger, R. M., H. D. Mills y B.1. Witt, Sti.uc~tiii*ed
ach»,IBM Systenzs.Tournu1,vol. 33, n." 1, Enero de 1994, Pmgramiriing: Theor-y uizd Pructice, Addison-Wesley,
pp. 89-109. 1979.

469

www.elsolucionario.net

.

INGENIERiA DEL S O F T W A R E . UN E N F O Q U E P R Á C T I C O

[LIN88] Linger, R. M., y H. D. Mills, «A Case Study in Cle- (MUS871Musa, J.D., A. Iannino y K. Okumoto, Etzgincering
anroom Software Engineering: The IBM COBOL Struc- und Munaging Software with Rrliuhility Measures,
turing Facilityn, Proc. COMPSAC '88, Chicago, Octubre McGraw-Hill, 1987.
de 1988.
[PO0881 Poore, J. H., y H.D. Mills, «Bringing Software
[LIN94] Linger, R., «Cleanroom Process Modeh, IEEE Sojt- Under Statistical Quality Control», Quality P r o g ~ s s . ~ ,
wwe, vol. 11, n.Q2, Marzo de 1994, pp. 50-58. Noviembre de 1988, pp. 52-55.

[ MIL871 Mills, H.D., M. Dyer y R. Linger, «Cleanroom Soft- [PO0931 Poore, J. H., H.D. Mills y D. Mutchler, «Planning
ware Engineeringn, IEEE Software, vol. 4, n.Q5 , Sep- and Certifying Software System Reliability», IEEE Sop-
tiembre de 1987, pp. 19-24. w w r , vol. 10, n." 1, Enero de 1993, pp. 88-99.

[MIL881 Mills, H.D., «Stepwise Refinement and Verification [WOH94] Wohlin, C., y P. Runeson, «Certification of Soft-
in Box Structured Systemw, Coniputer, vol. 21, n.Q6, Junio ware Components», IEEE Trans, Sqftwaw EngincclYng,
de 1988, pp. 23-35. vol. 20, n.s 6, Junio de 1994, pp. 494-499.

PROBLEMAS Y PUNTOS A CONSIDERAR

26.1. Si tuviera que seleccionar un aspecto de la ingeniería del Descomponer el diseño en subfunciones y definir un conjun- www.elsolucionario.net
software de sala limpia que la hiciera radicalmente distinta de to de condiciones que hagan posible demostrar que este algo-
los enfoques convencionales u orientados a objetos de la inge- ritmo es correcto.
niería del software, i,cuál sería'?
26.7. Documentar una demostración de verificación de correc-
26.2. ¿,Cómose combinan el modelo de proceso incremental ción para la ordenación por el método de la burbuja descrita
y el trabajo de certificación para construir un soltware de ele- en el Problema 26.6.
vada calidad'!
26.8. Seleccionar un componente de programa que se haya
26.3. Empleando la estructura de especificaciónde cajas, desa- diseñado en otro contexto ( o bien asignado por el instruc-
rrollar un análisis de «primer paso» y unos modelos de dise- tor) y desarrollar para él una demostración completa de
ño para cl sistema HogarSeguro. corrección.

26.4. Desarrolle una especificación de estructura de cajas para 26.9. Seleccionar un programa quc se utilice regularmente (por
u n a parte del sistema SSRB presentado en el Problema 12.13. ejemplo, un gestor de correo electrónico, u n procesador dc
texto, una hoja de cálculo). Crear un con.junto de escenarios
26.5. Desarrolle una especificación de cstructura de cajas para de utilización para ese programa. Definir la probabilidad de
el sistema de correo electrónico en el Problcnia 21.14. utilización de cada escenario y desarrollar entonces una tabla
de estímulos del programa y de distribución de probabilida-
26.6. Se define el algoritmo de ordenación por el método de des parecida a la que se muestra en la Sección 26.4.1.
las burbujas de la forma siguiente:
26.10. Para la tabla de estímulos del programa y de distribu-
proceduve ordenburbuja; ción de probabilidadcs desarrollada en el Problema 26.9, uti-
lizar un generador de números aleatorios con objeto de
rqpeat i m t i l t = a [ 7 ] ; desarrollar un conjunto de casos de prueba para utilizarlo en
ill una prueba estadística de utilización.

f o i - j := 2 to n do 26.11. Con sus propias palabras, describa el objetivo de la cer-
i t a [ j - 1 7 > aljl t.heri b e g i n tificación en el contexto de la ingeniería del software de sala
t:= a [ ; - l j ; limpia.
a [ ; - l j : = a[j]
a[;] := t; 26.12. Escribir un pequeño'trabajo que describa las mateiná-
cric:' ticas utilizadas para definir los modelos de certificación des-
critos brevemente en la Sección 26.4.2. Utilícense [MUS87],
endi-ep [CUR86] y [POP93] como punto de partida.
enu'

Prowell et al. (Clcwnroonz Sqfiwal-e Engineeririg: Tclclino- excelente para aquellas personas que no estCii familiarizadas
logy and Proc~c,ssA, ddison-Wesley, 1999) describe con con las prácticas de sala limpia.
profundidad todos los aspectos importantes del enfoque de
sala limpia. Estudios Útiles sobre los teinas de sala limpia The Clranr-oom Panphlet (Software Technology Support
han s i d o editados por Poore y Trammell (Clrani-oon?Soft- Center, Hill AF Base, UT, abril 1995) contiene reimpresiones
MWP: A Reader, Blackwell Publishing, 1996). Becker y de varios artículos importantes. Linger [LIN94]es una de las
Whittaker (Clrani-oomSqftwai-e En,gineo-ing Practices, mejores introducciones a este tema. Asset S o w - c ~ f i i rS.o f i M w
Idea Group Publishing, 1996) presentan una visión general IY Engineering Technology,ASSET (Departamento de Defen-
sa americano) ofrece un conjunto excelente de seis volúmenes

470

www.elsolucionario.net
.

CAPfTULO 26 INGENIERfA DEL SOFTWARE D E SALA LIMPIA

de Cleanroom Engineering Handbooks. Se puede contactar Deck, M.D., «Using Box Structures to Link Cleanroom www.elsolucionario.net
con ASSET en [email protected]. Lockheed Martin ha and Object-Oriented Software Engineenng», Technicd Report
preparado la guía Guide to the Integrution of Object-Orien- 94.01h, Cleanroom Software Engineering Inc., Boulder, CO,
ted Methods and CleanroomSoftware Engineering (1997) que 1994.
contiene un proceso genérico de sala limpia para sistemas ope-
rativos y está disponible en: Dyer, M. «Designing Software for Provable Correctness:
http://www.asset.com/stars/cleanroom/oo/guidhome.htm the direction for quality software», InfOrmation and Sqftvta
re Technology, vol. 30, n.g6, Julio/Agosto de 1988, pp. 33 1-
Linger y Trammell (Cleanroom Software Engineering 340.
Reference Model, SE1 Technical Report CMU/SEI-96-TR-
022, 1996) han definido un conjunto de 14 procesos de sala Pruebas y Certificación
limpia y 20 productos de trabajos que forman la base del SE1 Dyer, M., «An Approach to Software Reliability Measu-
CMM para la ingeniería del software de sala limpia rement», Informution and Sojtwwe Technology, vol. 29, n."
(CMU/SEI-96-TR-023). 8, Octubre de 1987, pp. 415-420.
Head, G.E., «Six-Sigma Software Using Cleanroom Soft-
Michael Deck, de Cleanroom Software Engineering, Inc., ware Engineering Techniques)), Hewlett-Packard Joiu-nal,
ha preparado una bibliografía sobre temas de sala limpia. Junio de 1994, pp. 40-50.
Entre las referencias se encuentran las siguientes: Oshana, R., «Quality Software via a Cleanroom Metho-
dology», Emhedded Systems Progi-uniniing,Septiembre de
Generales e Introductorias 1996, pp. 36-52.
Deck, M.D., «Cleanroom Software Engineering Myths Whittaker, J.A., y Thomason, M.G., «A Markov Chain
and Realities», Quality Week 1997, San Francisco, CA, Mayo Model for Statistical Software Testing», IEEE Tmns. on Sqfi-
de 1997. wure Engineering, Octubre de 1994, pp. 8 12-824.
Deck, M.D, y J.A. Whittaker, «Lessons Learned from Fif-
teen Years of Cleanroom Testing», Software Testing,Analysis, Estudios de casos e informes experimentales
and Review (STAR) '97,San José, CA, 5-9 de Mayo de 1997. Head, G.E., «Six-Sigma Software Using Cleanrooin Soft-
Lokan, C.J., «The Cleanroom for Software Development», ware Engineering Techniyues», Hewlett-Packard Journal,
The Australian Computer Journal, vol. 25, n.g4, Noviembre Junio de 1994, pp. 40-SO.
de 1993. Hevner, A.R., y H.D. Mills, «Box-structurcd methods for
Linger, Richard C., «Cleanroom Software Engineering for systems development with objects», IBM systcnzs Journal,
Zero-Defect Software», Pioc. 15th International Conferen- vol. 32, n.n2, 1993, pp. 232-25 1.
ce Internationul on Software Engineering, Mayo de 1993. Tann, L-G., «OS32 and Cleanrooim, Proc. 1"' Annual
Keuffel, W., &lean Your Room: Formal Methods for the European Industrial Symposium on Cleanlaoni Sofiwure Engi-
90's», Conzputer Language, Julio de 1992, pp. 39-46. neering, Copenhagen, Denmark, 1993, pp. 1-40.
Hevner, A.R, S.A. Becker y L.B. Pedowitz, 4ntegrated Hausler, P.A., «A Recent Cleanroom Success Story: The
CASE for Cleanroom Development», IEEE Software, Mar- Redwing Project», Proc. 17thAnnLiul Soj?ware Engineering
zo de 1992, pp. 69-76. Workshop,NASA Goddard Space Flight Center, Diciembre
Cobb, R.H. y H.D. Mills, «Engineering Software under de 1992.
Statistical Quality Control», IEEE Sofhvare, Noviembre de
1990,pp. 44-45. Trammel, C.J., Binder L.H. y Snyder, C.E., «The Auto-
mated Production Control Documentation System: A Case
Practicas de Gestión Study in Cleanroom Software Engineeringn, ACM P a n s . on
Becker, S.A.,M.D. Deck y T. Janzon, «Cleanroom and Orga- Software Engineering and Methodology, vol. 1, n.g 1, Enero
de 1992, pp. 8 1-94.
nizational Change),,Proc. 14thPac& Northwest Software Qw-
lis Confel-ence,Portland, OR, 29-30 de Octubre de 1996. La verificación de diseños mediante pruebas de correc-
ción se encuentra en el centro del enfoque de sala limpia. En
Linger, R.C., «Cleanroom Process Model», IEEE Soft- los libros de Baber (Error-Free Software, Wiley, 1991) y
ware, marzo de 1994, pp. 50-58. Schulmeyer (Zero Deject Software, McGraw-Hill, 1990) se
estudia la prueba de corrección de forma muy detallada.
Linger, R.C. y Spangler, R.A., «The IBM Cleanroom Soft-
ware Engineering Technology Transfer Program», Sixth SE1 En Internet se puede encontrar disponible mucha infor-
Conference on Software Engineering Education, San Diego, mación variada sobre la ingeniería del software dc sala lim-
CA, Octubre de 1992. pia y sobre temas relacionados. Para conseguir una lista
actualizada de referencias que sea relevante para la ingenie-
Especificación, Diseño y Revisión ría del software de sala limpia se puede visitar http://www
Deck, M.D., «Cleanroom and Object-Oriented Software pressman5.com
Engineering:AUnique Synergy»,I Y96 Software Technology
Conference, Salt Lake City, UT, 24 de Abril de 1996.

47 1

hwttwp:w//l.iberlesroialu-ucniiovnerasritiaor.ina.ebtlogspot.com
.

www.elsolucionario.net

www.elsolucionario.net
.

CAPÍTULO

EN el contexto de la ingeniería del software, la reutilización se puede considerar una idea www.elsolucionario.net
nueva y antigua. Los programadores han reutilizado ideas, abstracciones y procesos des-
de el principio de la era de los computadores, pero el primer enfoque de reutilización era
muy concreto. Hoy en día, los sistemas complejos y de alta calidad basados en computadora se
deben construir en períodos de tiempo muy cortos. Esto se mitiga con un enfoque de reutiliza-
ción más organizado.

La ingeniería del software basada en componentes (ISBC) es un proceso que se centra en
el diseño y construcción de sistemas basados en computadora que utilizan «componentes» de
software reutilizables. Clements [CLE95] describe la ISBC de la manera siguiente:

[La ISBC] está cambiando la forma en que se desarrollan los sistemas de software. [La ISBC] repre-
senta la filosofía de «comprar, no construir», que expusieron Fred Brooks y otros. De la misma manera que
las primeras subrutinas liberaban al programador de tener que pensar en detalles, [ISBC] cambia su objeti-
vo y pasa de programar el software a componer sistemas de software. La implementación ha dado paso a
la integración como núcleo del enfoque. Se puede decir que en su base se encuentra la suposición de que
en muchos siskmas grandes de software existe una base común suficiente como para justificar los compo-
nentes reutilizables para explotar y satisfacer a esa base común.

Sin embargo, surgen muchas preguntas. ¿Es posible construir sistemas complejos ensamblán-
dolos a partir de un catálogo de componentes de softwarereutilizables? ¿Se puede conseguir de una
manera rentable y en poco tiempo? ¿Se pueden establecer incentivos para animar a que los inge-
nieros del softwarereutilicen y no reinventen? ¿Están dispuestos los directivos a contraer los gastos

;Qué es? Compre un equipo de música diciendo que los sistemas basados en en la arquitectura del sistema; (3)adap-
estéreo y lléveselo a casa. Cada com- componentes son más fáciles de ta los componentes si se deben hacer
ponente ha sido diseñado para aco- ensamblar y, por tanto, más caros de modificaciones para poderlos integrar
plarse en un estilo arquitectónico construir a partir de piezas separadas. adecuadamente; (4) integra los compo-
específico -las conexiones son están- Además, la ISBC hace hincapié en la nentes para formar subsistemas y l a
dar y puede preestablecerse el protoco- utilización de patrones arquitectónicos aplicación completa. Además, los com-
lode comunicación-. El ensamblaje es predecibles y en una infraestructura de pónentes personalizados se han dise-
fácil porque el sistema no tiene que software estándar, lo que lleva a un ñado para afrontar esos aspectos del
construirse a partir de piezas por s e p - resultado de calidad superior. sistema que no pueden implementarse
rado. La ingeniería del software basa- utilizando componentes que ya existen.
da en componentes (ISBC)lucha por ;Cuáles son los pasos?La ISBC acom-
conseguir lomismo.Un conjuntode com- paña a dos actividades de ingeniería ;Cuál es el producto obtenido? El
ponentes de software preconstruidos y paralelas: la ingeniería del dominio y producto de la ISBC es el software ope-
estandarizados están disponibles para el desarrollo basado en componentes. racional ensamblado utilizando los
encajar en un estiloarquitectónicoespe- La ingeniería del dominio explora un componentes de software existentes y
cífico pura algún dominiode aplicación. dominio de aplicaciones con la inten- los que se acaban de desarrollar.
La aplicación seensambla entonces uti- ción de encontrar específicamente los
l i d 0 estos componentesy no las .pie- componentes de datos funcionales y de &Cómopuedo estar seguro de que
zas por separado. de un lenguaje de comportamiento candidatos para l a lo he hecho correctamente?Utili-
programación convencional. reutilización. Estos componentes se zando las mismas prácticas SQA que
encuentran en bibliotecas de reutiliza- se aplican e n todos los procesos de
;Quién l o hace ? Los ingenieros del ción. El desarrollo basado e n compo- ingeniería del software -las revisio-
software. nentes obtiene los requisitos del cliente nes técnicas formales evalúan los
y selecciona el estilo arquitectónico modelos de análisis y diseño-: las
;Por qué es importante? La instala- adecuado para cumplir los objetivos revisiones especializadas tienen en
ción del equipo estéreo solo lleva unos del sistema que se va a construir, y a consideración temas asociados con los
pocos minutos, porque los componen- continuación: (1)selecciona posibles componentes adquiridos; y la compro-
tes están diseñados para integrarse componentes para la reutilización; (2) bación se aplica para descubrir enores
con facilidad. Aunque el software es cualifica los componentes p r a asegu- en el software nuevo y en componentes
considerablemente más complejo que rarse de que encajan adecuadamente reutilizables que se hayan integrado en
el sistema estéreo, se puede seguir la arquitectura.

473

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO .

añadidos y asociados con la creación de componentes de software reutilizables? ¿Se puede crear una biblioteca con los
componentes necesariospara llevar a cabo la reutilización de manera accesible para aquellos que la necesitan?

Estas y otras preguntas siguen vivos en la comunidad de investigadores y de profesionales de la industria que
luchan por hacer que la reutilización de componentes de software sea el enfoque más convencional de la ingenie-
ría del software. Algunas de estas preguntas se estudian en este capítulo.

Superficialmente, la ISBC parece bastante similar a la ¿Cuáles son las actividades www.elsolucionario.net
ingeniería del software orientada a objetos. El proceso del marco de trabaio ISBC?
comienza cuando un equipo de software establece los
requisitos del sistema que se va a construirutilizando las Adaptación de componentes. En el Capítulo 14 se
técnicas convencionalesde obtención de requisitos (Capí- señaló que la arquitectura del software representa los
tulos 10 y 11). Se establece un diseño arquitectónico patrones de diseño que están compuestos de componen-
(Capítulo 14),pero en lugar de entrar inmediatamente en tes (unidades de funcionalidad), conexiones y coordina-
tareas de diseño detalladas, el equipo examina los requi- ción. Esencialmentela arquitectura define las normas del
sitos para determinar cuál es el subsistema que está dis- diseño de todos los componentes,identificando los modos
puesto para la composición, y no para la construcción. de conexión y coordinación. En algunos casos, es posi-
Esto es, el equipo formula las siguientes preguntas para ble que los componentes reutilizables actuales no se
todos y cada uno de los requisitos del sistema: correspondan con las normas del diseño de la arquitec-
tura. Estos componentes deben de adaptarse para cum-
¿Es posible disponer de componentes comerciales plir las necesidades de la arquitectura o descartarse y
reemplazarse por otros componentes más adecuados.
ya desarrollados (CYD) para implementar el requi-
sito? Composición de componentes. El estilo arquitec-
tónico vuelve a jugar un papel clave en la forma en que
¿Se dispone de componentes reutilizables desarro- los componentes del software se integran para formar
un sistema de trabajo. Mediante la identificación de los
llados internamente para implementar el requisito? mecanismos de conexión y coordinación (por ejemplo,
las propiedades de ejecución en el diseño), la arquitec-
¿Son compatibles las interfaces de los componentes tura dicta la composición del producto final.

que están disponibles dentro de la arquitectura del Actualización de componentes. Cuando se imple-
sistema a construir? mentan sistemas con componentes CYD, la actualiza-
ción se complica por la imposición de una tercera parte
El equipo intenta modificar o eliminar aquellos requi- (es decir, es posible que la empresa que desarrolló el
sitos del sistema que no se pueden implementar con componentereutilizable no tenga el control de la empre-
componentes CYD o de desarrollo propio'. Si los requi- sa de ingeniería del software).
sitos no se pueden ni cambiar ni borrar, se aplican méto-
dos de ingeniería del software convencionales u Todas y cada una de las actividades ISBC se estu-
orientados a objetos para desarrollar los componentes dian más profundamente en la Sección 27.4.
nuevos que se deben diseñar para cumplir los requisi-
tos. Pero para esos requisitos que se afrontan con los En la primera parte de esta sección el término wom-
componentes disponibles comienza un conjunto dife- ponente» se ha utilizando en repetidas ocasiones,a pesar
rente de actividades de ingeniería del software: de que es difícil de efectuar una descripción definitiva
del término. Brown y Wallnau [BR096] sugieren las
Cualificación de componentes. Los requisitos del siguientes posibilidades:
sistema y la arquitectura definen los componentes que
se van a necesitar. Los componentes reutilizables (tan-
to si son CYD como de desarrollo propio) se identifican
normalmente mediante las características de sus inter-
faces. Es decir, se describen «los servicios que se pro-
porcionan y el medio por el que los consumidores
acceden a estos servicios» [BR096] como parte de la
interfaz del componente. Pero la interfaz no proporcio-
na una imagen completa del acople del componente en
la arquitectura y en los requisitos. El ingeniero del soft-
ware debe de utilizar un proceso de descubrimientoy de
análisis para cualificar el ajuste de cada componente.

' La implicación es que la organización ajusta sus requisitos comer-

ciales o del producto de manera que se puede lograr la implementa-

ción basada en componentes sin la necesidad de una ingeniería
personalizada. Este enfoque reduce el coste del sistema y mejora el

tiempo de comercialización, pero no siempre es posible.

474

www.elsolucionario.net
.

CAPfTULO 27 INGENIERÍA DEL SOFTWARE BASADA EN COMPONENTES

componente-una parte reemplazable, casi indepen- cionalidad sino también el rendimiento, la fiabilidad y www.elsolucionario.net
diente y no trivial de un sistema que cumple una fun- otros factoresde calidad (Capítulol9) encajan con los
ción clara en el contexto de una arquitectura bien requisitos del sistema/productoque se va a construir;
definida;
lo certificociónde componentesse puede realizar
componente del software en ejecución- un paquete con los métodos de salo limpo. Para obtener
dinámico de unión de uno o más programas gestio- más informotiin consulteel Caplhiio 26.
nados como una unidad, a los que se accede a través
de interfaces documentadas que se pueden descubrir componentes adaptados- adaptados para modificar
en la ejecución; (también llamados «enmascarados»o «envoltorios»)
[BR096] las características no deseadas.
componente de software- una unidad de composi- componentes ensamblados- integrados en un estilo
ción que solo depende del contexto contractual de arquitectónico e interconectados con una infraes-
forma específica y explícita; tructura de componentes adecuada que permite coor-
dinar y gestionar los componentes de forma eficaz;
componente de negocio-la implementación de soft- componentes actualizados- el software actual se
ware de un concepto comercial «autónomo» o de un reemplaza a medida que se dispone de nuevas ver-
proceso comercial; siones de componentes;
Dado que la ISBC es una disciplina en evolución, no
Además de las descripciones anteriores, los compo- es probable que en el futuro surja una definición unifi-
nentes del software también se pueden caracterizar por el cada.
uso en el proceso ISBC.Además de los componentesCYD,
el proceso ISBC produce los siguientes componentes:

componentes cualificados- evaluados por los inge-
nieros de software para asegurar que no sólo la fun-

,

O DE ISB.C;.__

En el Capítulo 2, se utilizó un «modelo de desarrollo El modelo de proceso para la ingeniería del softwa-
basado en componentes» (Fig. 2.12) para ilustrar la for- re basada en componentes hace hincapié en las pistas
ma en que se integra una biblioteca de «componentes paralelas en las que aparece concurrentemente la inge-
candidatos» reutilizables en un modelo típico de pro- niería del dominio (Sección 27.3) con el desarrollo basa-
do en componentes. La ingeniería del dominio realiza
ceso evolutivo. Sin embargo, el proceso ISBC se debe el trabajo que se requiere para establecer el conjunto de
caracterizar de forma que no sólo identifique los com- componentes de software que el ingeniero del softwa-
ponentes candidatos sino que también cualifique la inter- re puede reutilizar. Estos componentes entonces se trans-
faz de cada componente, que adapte los componentes fieren a través de un «límite» que separa la ingeniería
para extraer las faltas de coincidencias arquitectónicas, del dominio del desarrollo basado en componentes.
que ensamble los componentes en un estilo arquitectó-
nico seleccionado y que actualice los componentes a 'Referencia web/
medida que cambian los requisitos del sistema [BR096].
l a página de tecnología de componentes proporciono
información útil sobre ISBC:
www.odateam.tom/top/

FIGURA 27.1. Un modelo de proceso de soporte a la ISBC. La Figura 27.1 ilustra un modelo de proceso típico que
acopla la ISBC explícitamente [CHR95].La ingenieríadel
dominio crea un modelo de dominio de aplicación que se
utiliza como base para analizar los requisitos del usuario
en el flujo de la ingeniería del software. Una arquitectura
de software genérica (y los puntos de estructura corres-
pondientes, véase la Sección 27.3.3) proporciona la entra-
da para el diseño de la aplicación. Finalmente, después de
que se han comprado los componentes reutilizables, se han
seleccionadoa partir de las bibliotecas existentes o se han
construido (como parte de la ingeniería del dominio), los
ingenieros del software dispondrán de ellos durante la acti-
vidad de desarrollo basada en componentes.

475

www.elsolucionario.net

I N G E N I E R ~ ADEL SOFTWARE. UN ENFOQUE PRACTICO .

El objetivo de la ingeniería del dominio es identificar, 1 . Seleccionar funciones y objetos específicos.
construir, catalogar y diseminar un conjunto de compo- 2. Abstraer funciones y objetos.
nentes de software que tienen aplicación en el software 3. Definir una taxonomía.
actual y futuro dentro de un dominio de aplicación en 4. Identificar las características comunes.
particular. El objetivo general consiste en establecermeca- 5. Identificar las relaciones específicas.
nismos que capaciten a los ingenieros del software para 6. Abstraer las relaciones.
compartir estos componentes-para reutilizarlos-a lo 7. Derivar un modelo funcional.
largo de su trabajo en sistemas nuevos o actuales. 8. Definir un lenguaje del dominio.

¿Cómo se pueden identificar

- y clasificar los componentes

reutilizables?

La ingeniería del dominio incluye tres actividades El lenguaje del dominio hace posible la especifica- www.elsolucionario.net
principales: análisis, construcción y diseminación. En ción y construcción posterior de aplicaciones dentro del
el Capítulo 21 se presentó una revisión general del aná- dominio.
lisis del dominio. Sin embargo, este tema se vuelve a
tratar en las secciones siguientes. La construcción y la Aun cuando los pasos indicados anteriormente pro-
diseminación del dominio se describirán más adelante porcionan un modelo Útil para el análisis del dominio,no
en otras secciones dentro de este mismo capítulo. proporcionanninguna guía para decidir cuáles son los com-
ponentes de software que son candidatos para la reutiliza-
Se podría argumentar que «la reutilización desapa- ción. Hutchson y Hindley [HUT88] sugieren el siguiente
recerá, no mediante la eliminación, sino mediante la conjunto de cuestiones pragmáticas como guía para iden-
integración>>en el entramado de prácticas de la inge- tificar los componentes del software reutilizables:
niería del software [TRA95]. Como la reutilización cada
vez recibe más importancia, todavía hay quien cree que ¿Es la funcionalidad del componente un requisito
en la próxima década la ingeniería del dominio tendrá para futuras implementaciones ?
tanta importancia como la ingeniería del software.
¿Hasta qué punto es corriente la función del com-
27.3.1. El proceso de análisis del dominio ponente dentro del dominio?

En el Capítulo 21 se describía el enfoque general del ¿Existe una duplicación de la función del compo-
análisis del dominio en el contexto de la ingeniería del nente dentro del dominio?
software orientado a objetos. Las pasos del proceso se
definían de la siguiente manera: ¿Depende ese componente del hardware?

1 . Definir el dominio que hay que investigar. ¿Permanece intacto el hardware entre implementa-
ciones?
2. Categorizar los elementos extraídos del dominio.
¿Cuáles son
3. Recoger una muestra representativa de las aplica- ’ 10scomponentes
ciones del dominio. identificados durante el análisis
del dominio que serán candidatos
4. Analizar cada aplicación de la muestra. de la reutilización?

5. Desarrollar un modelo de análisis para los objetos. ¿Es posible trasladar las partes específicas del hard-
ware a otro componente?
Es importante tener en cuenta que el análisis del ¿Está el diseño suficientemente optimizado para la
dominio se puede aplicar a cualquier paradigma de la siguiente implementación?
ingeniería del software, siendo posible aplicarlo tanto ¿Es posible parametrizar un componente no reutili-
para el desarrollo convencional como para el desarro- zable para que pase a ser reutilizable?
llo orientado a objetos. ¿Es reutilizable ese componente en muchas imple-
mentaciones con cambios solo menores?
Prieto-Diaz [PRI87]amplía el segundo paso del aná- ¿Es viable la reutilización mediante modificaciones?
lisis del dominio indicado anteriormente y sugiere un ¿Se puede descomponer un componente no reutili-
enfoque de ocho pasos para la identificación y clasifi- zable para producir componentes reutilizables?
cación de componentes reutilizables: ¿Hasta qué punto es válida la descomposición del
componente para su reutilización?

476

whtwtp:w//l.iebrlseroialu-ucnioivnearsritioar.inae.btlogspot.com
.

CAPÍTULO27 INGENIERIA DEL SOFTWARE BASADA EN COMPONENTES

Una descripción en profundidad de los métodos de 4. claramente relevante, y si el software nuevo no posee www.elsolucionario.net
análisis del dominio va más allá del alcance de este libro. esta característica, la reutilización será ineficiente
Para más información acerca del análisis del dominio, pero quizás siga siendo posible
véase [PRI93].
5. es claramente relevante, y si el software nuevo no
27.3.2. Funciones de caracterización posee esta característica, la reutilización será inefi-
ciente y la reutilización sin esta característica no es
A veces resulta difícil determinar si un componente poten- recomendable.
cialmentereutilizable es realmente aplicable en una situa- Cuando se va a construir un software nuevo, w ,den-
ción determinada. Para llevar a cabo esta determinación,
es necesario definir un conjunto de características del tro del dominio de la aplicación, se deriva para él un
dominio que sean compartidaspor todo el softwareen el conjunto de característicasdel dominio. A continuación,
seno del dominio. Una característicadel dominio define se efectúa una comparación entre Dpiy .Dwi,para deter-
algún atributo genérico de todos los productos que exis- minar si el componentep se puede reutilizar eficazmente
ten dentro del dominio. Por ejemplo, entre las caracte- en la aplicación w.
rísticas genéricas se podría incluir: la importancia de la
seguridad y fiabilidad, el lenguaje de programación, la Para encontrar referenciasvaliosas sobre
concurrencia de procesamiento, y muchas más. una tecnología de objetos de direccionamiento
de informes, arquitecturas y anólisis de dominios,
Un conjunto de característicasde dominio de un com- se puede visitar lo dirección de Internet:
ponente reutilizable se puede representar como [ O p }en www.sei.tmu.edu/mbse/ wisr-report.html
donde cada elemento Dpi del conjunto representa una
característica específica de dominio. El valor asignado La Tabla 27.1 [BAS94] enumera las características
típicas del dominio que pueden tener impacto en la reu-
a D representa una escala ordinal como una indicación tilización del software. Estas características del domi-
nio deben de tenerse en cuenta con objeto de reutilizar
fade relevancia de esa característicapara el componente un componente de forma eficiente.

p . Una escala típica [BAS94] podría ser: Aun cuando el software que se vaya a construir exis-
ta claramente en el seno de un dominio de aplicación,
1. no es relevante para que la reutilización sea o no ade- los componentes reutilizables situados dentro de ese
cuada. dominio deberán ser analizados con objeto de determi-
nar su aplicabilidad. En algunos casos (esperemos que
2. relevante sólo en circunstancias poco comunes. sea un número limitado), la «reinvención de la rueda»
puede seguir siendo la opción más rentable.
3. relevante: el componente se puede modificar para
poder utilizarlo, a pesar de las diferencias. 27.3.3. Modelado estructural y puntos de estructura

Producto Proceso Personal Cuando se aplica el análisis del dominio, el analista bus-
ca tramas repetidas en las aplicaciones que residen den-
Estabilidad Modelo Mo t ¡vació n tro del dominio. El modelado estructural es un enfoque
de requisitos de proceso de ingeniería basado en tramas que opera efectuando la
suposiciónconsistente en que todo dominiode aplicación
Software Ajuste Educación posee tramas repetidas (de función, de datos y de com-
concurrente del proceso portamiento) que tienen un potencial de reutilización.

Restricciones Entorno Experiencia/ Pollak y Rissman [POL94] describen los modelos
de memoria del proyecto formación estructurales de la siguiente manera:

Tamaño Restricciones dominio Los modelos estructurales constan de un pequeño número
de aplicaciones de elementos estructurales que manifiestan unas tramas de
de planificación de aplicación interacción claras. Las arquitecturasde sistemas que utilizan
modelos estructuralesse caracterizan por múltiplesensambla-
Complejidad Restricciones proceso jes formados por estos elementos del modelo. De esta mane-
de interfaz ra,las interacciones complejasentre sistemasque tienen muchas
de usuario de presupuesto unidades arquitectónicas,surgen de tramas sencillas de inte-
racción que existen en el conjunto pequeño de elementos.
Lenguajeb) Productividad plataforma
Todo dominio de aplicación se puede caracterizar
de programación por un modelo estructural (por ejemplo, la aviónica difie-
re mucho en los aspectos específicos, pero todo el soft-
Seguridad lenguaje
y fiabilidad

Requisitos Productividad
de la duración global del equipo
de desarrollo

Calidad del producto

Fiabilidad
del Droducto

TABLA 27.1. Características del dominio que afectan
al software IBAC941.

477

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

ware moderno de este dominio tiene el mismo modelo un mecanismo de establecimiento de límites que per- www.elsolucionario.net
estructural). Por tanto, el modelo estructural es un esti- mite al usuario establecer límites sobre los paráme-
lo arquitectónico (Capítulo 14)que puede y debe reuti- tros que hay que medir;
lizarse en aplicaciones pertenecientes al dominio.
un mecanismode gestión de sensores que se comunica
McMahon [MCM95] describe un punto de estruc- con todos los sensores empleadosen la monitorización;
tura como una «estructura bien diferenciada dentro de
un modelo estructural». Los puntos de estructura tienen un mecanismo de respuesta que reacciona frente a
tres características bien claras: las entradas proporcionadas por el sistema de ges-
tión de sensores;
1. Un punto de estructura es una abstracción que debe
de tener un número limitado de instancias. Al replan- un mecanismo de control que capacita al usuario
tear esta característica en la jerga orientada a obje- para controlar la forma en que se efectúa la moni-
tos (Capítulo 20), el tamaño de la jerarquía de clases torización.
debe ser pequeño. Además, la abstracción debe repe-
tirse a lo largo de las aplicaciones del dominio. En a$$
caso contrario, el esfuerzo requerido para verificar,
documentar y diseminar ese punto de estructura no CLAVE
puede justificarse en términos de coste.
Un punto de estructura se puede ver como un patrón
¿Qué es un «punto de diseño que aparece repetidas veces en aplicaciones
de estructura)) y cuáles dentro de un dominio específico.
son sus características?
Cada uno de estos puntos de estructura está integra-
2. La reglas que rigen la utilización del punto de estruc- do en una arquitectura de dominio.
tura deben entenderse fácilmente. Además, la inter-
faz con el punto de estructura debe ser relativamente Es posible definir los puntos de estructura genéricos
sencilla. que trascienden a un número de dominios de aplicacio-
nes diferentes [STA94]:
3. El punto de estructura debe implementar el oculta-
miento de información aislando toda la complejidad Aplicaciones cliente. La IGU, que incluye todos los mentís,
dentro del punto de estructura en sí. Esto reduce la paneles y capacidades de entrada y edición de órdenes.
complejidad percibida del sistema en su conjunto.
Bases de datos. El depósito de todos los objetos relevantes
Como ejemplo de puntos de estructura como tramas para el dominio de la aplicación
arquitectónicas para un sistema, considérese el domi-
nio del software de sistemas de alarma. El dominio del Motores de cálculo. Los modelos numéricos y no numéri-
sistema puede abarcar sistemas tan simples como cos que manipulan datos.
HogarSeguro (descritos en capítulos anteriores) o tan
complejos como el sistema de alarma de un proceso Función de reproducciónde informes. La función que pro-
industrial. Sin embargo, se encuentran un conjunto de duce salidas de todo tipo.
tramas estructurales predecibles:
Editor de aplicaciones. Mecanismo adecuado para perso-
una interfaz que capacita al usuario para interactuar nalizar la aplicación ajustándola a las necesidades de usuarios
con el sistema; específicos.

Los puntos de estructura se han sugerido como alter-
nativa a las líneas de código y a los puntos de función
para la estimación del coste del software ([MCM95].
En la Sección 27.6.2 se presenta una descripción breve
del coste utilizando puntos de estructura.

27 7

El desarrollo basado en componentes es una actividad Una vez que se ha establecidola arquitectura,se debe
de la ISBC que tiene lugar en paralelo a la ingeniería popularizar mediante los componentes que (1) están dis-
del dominio. La utilización de métodos de diseño arqui- ponibles en bibliotecas de reutilización, y/o (2) se han
tectónico y de análisis se ha descrito anteriormente en diseñado para satisfacer las necesidades del cliente. De
otra sección de este texto, en donde el equipo del soft- aquí que el flujo de una tarea de desarrollo basada en
ware refina el estilo arquitectónico adecuado para el componentes tenga dos caminos posibles (Fig. 27.1).
modelo de análisis de la aplicación que se va a cons- Cuando los componentes reutilizables están disponibles
truir2. para una integración futura en la arquitectura, deben

'Se debería destacar que el estilo arquitectónicosuele estar influen-
ciado por el modelo de estructura genérico creado en la ingeniería
del dominio (véase Figura 27.1)

www.elsolucionario.net
.

CAPiTULO 27 INGENIERIA DEL SOFTWARE BASADA EN COMPONENTES

estar cualificadosy adaptados. Cuando se requieren com- Cada uno de los factores anteriores es relativamen- www.elsolucionario.net
ponentes nuevos, deben diseñarse. Los componentes te fácil de valorar cuando se proponen los componen-
resultantes entonces se «componen»(se integran) en una tes reutilizables que se han desarrollado dentro de la
plantilla de arquitectura y se comprueban a conciencia. misma aplicación. Si se han aplicado prácticas de inge-
niería del software de buena calidad durante el desa-
27.4.1. Cualificación, adaptación y composición rrollo, se pueden diseñar respuestas para las preguntas
de componentes relacionadas con la lista anterior. Sin embargo, es mucho
más difícil determinar el funcionamientointerno de com-
Como se acaba de ver, la ingeniería del dominio propor- ponentes CYD o de terceras partes, porque la Única
ciona la biblioteca de componentes reutilizables necesa- información disponible es posible que sea la misma
rios para la ingeniería del softwarebasada en componentes. interfaz de especificaciones.
Algunos de estos componentes reutilizables se desarro-
llan dentro de ella misma, otros se pueden extraer de las Adaptación de componentes
aplicaciones actuales y aun otros se pueden adquirir de Lo ideal sería que la ingeniería del dominio creara una
terceras partes. biblioteca de componentesque pudieran integrarse fácil-
mente en una arquitectura de aplicaciones. La implica-
Desgraciadamente,la existencia de componentes reu- ción de una «integración fácil» es que: ( 1 ) se hayan
tilizables no garantiza que estos componentes puedan implementado los métodos consecuentesde la gestión de
integrarsefácilmente, o de forma eficaz, en la arquitec- recursos para todos los componentes de la biblioteca; (2)
tura elegida para una aplicación nueva. Esta es la razón que existan actividades comunes, tales como la gestión
por la que se aplica una sucesión de actividadesde desa- de datos para todos los componentes, y (3) que se hayan
rrollo basada en componentes cuando se ha propuesto implementado interfaces dentro de la arquitectura y con
que se utilice un componente. el entorno externo de manera consecuente.

Cualificación de componentes En realidad, incluso después de haber cualificado
un componente para su utilización dentro de una arqui-
La cualificación de componentes asegura que un com- tectura de aplicación, es posible exhibir conflictos en
ponente candidato llevará a cabo la función necesaria, una o más de las áreas anteriores. Para mitigar estos
encajará además «adecuadamente» en el estilo arqui- conflictos se suele utilizar una técnica de adaptación
tectónico especificado para el sistema y exhibirá las llamada «encubrimiento de componentes>>[BR096].
características de calidad (por ejemplo, rendimiento, fia- Cuando un equipo de software tiene total acceso al dise-
bilidad, usabilidad) necesarias para la aplicación. ño interno y al código de un componente (no suele ser
el caso de los componentes CYD) se aplica el encu-
La descripción de la interfaz proporciona informa- brimiento de caja blanca. Al igual que su homólogo en
ción útil sobre la operación y utilización de los compo- las pruebas del software (Capítulo 17), el encubrimiento
nentes del software, pero no proporciona toda la de caja blanca examina los detalles del procesamien-
información necesaria para determinar si un componente to interno del componente y realiza las modificaciones
propuesto puede de hecho volver a reutilizarse de mane- a nivel de código para eliminar los conflictos. El encu-
ra eficaz en una aplicación nueva. A continuación, se brimiento de caja gris se aplica cuando la biblioteca
muestran algunos factores de los muchos a tener en cuen- de componentes proporciona un lenguaje de extensión
ta durante la cualificación de los componentes [BR096]: de componentes, o API, que hace posible eliminar o
enmascarar los conflictos. El encubrimiento de caja
la interfaz de programación de aplicaciones (API); negra requiere la introducción de un preprocesamien-
to o postprocesamiento en la interfaz de componentes
las herramientas de desarrollo e integración necesa- para eliminar o enmascarar conflictos. El equipo de
rias para el componente; software debe determinar si se justifica el esfuerzo
requerido para envolver adecuadamenteun componente
requisitos de ejecución, entre los que se incluyen la o si por el contrario se debería diseñar un componente
utilización de recursos (por ejemplo, memoria o alma- personalizado (diseñado para eliminar los conflictos
cenamiento),tiempo o velocidad y protocolo de red; que se encuentren).

¿Cuáles son los factores

a tener en cuenta durante
la cualificación de componentes?

requisitos de servicio, donde se incluyen las interfa-
ces del sistema operativo y el soporte por parte de
otros componentes;

funciones de seguridad, como controles de acceso y
protocolo de autenticación;

supuestos de diseños embebidos, incluyendo la uti-
lización de algoritmos numéricos y no numéricos;

manipulación de excepciones.

479

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. U N ENFOQUE PRACTICO .

Composición de componentes OMGKORBA. El Grupo de gestión de objetos (Object www.elsolucionario.net
Management Group) ha publicado una arquitectura común de
La tarea de composición de componentes ha ensam- distribución de objetos(OMG/CORBA). Los distribuidoresde
blado componentes cualificados, adaptados y diseña- objetos (ORB) proporcionan toda una gama de servicios que
dos para popularizar la arquitectura establecida para hacen posible que los componentes reutilizables (objetos) se
una aplicación. Para poder llevarlo a cabo, debe esta- comuniquen con otros componentes, independientemente de
blecerse una infraestructura donde los componentes su ubicación dentro del sistema. Cuando se construyen com-
estén unidos a un sistema operacional. La infraestruc- ponentes empleandoel estándar OMG/CORBA, la integración
tura (normalmenteuna biblioteca de componentes espe- de esos componentes(sin modificación) dentrodel sistema que-
cializados) proporciona un modelo para la coordinación da garantizada si se crea una interfaz mediante un lenguaje de
de componentes y servicios específicos que hacen posi- definiciónde interfaces (LDI) para cada componente.
ble coordinar unos componentes con otros, y llevar a
cabo las tareas comunes. *.

Entre los muchos mecanismos para crear una infraes- ’-Referencia Web/
tructura eficaz, existe un conjunto de cuatro «ingre-
dientes arquitectónicos» [ADL95] que se debería La información m6s actualizada sobre CORBA se puede
presentar para lograr la composición de componentes: obtener en www.omg.org

Modelo de intercambio de datos. Se trata de mecanismos Utilizando una metáfora cliente/servidor,los objetos situa-
que capacitan a los usuarios y a las aplicaciones para interac- dos dentro de la aplicación cliente solicitan uno o más ser-
tuar y transferir datos (por ejemplo, arrastrar y soltar, cortar y vicios del servidor de ORB. Las solicitudes se hacen a través
pegar), y que deberían estar definidos para todos los compo- del LDI, o bien dinámicamente en el momento de la ejecu-
nentes reutilizables.Los mecanismos de intercambio de datos ción. Un repositorio de interfaces contiene toda la informa-
no solamente permiten la transferencia de datos entre hombre ción necesaria acerca de las solicitudes de servicio y de los
y programa, y entre componentes, sino que también hacen posi- formatos de respuesta. CORBA se estudia con más detalle
ble la transferencia entre los recursos del sistema (por ejem- en el Capítulo 28.
plo, arrastrar un archivo al icono de una impresora para
imprimirlo). COM de Microsoft. Microsoft ha desarrollado un mode-
lo de objetos para componentes (COM) que proporciona una
Automatización. Para facilitar la interacción entre com- especificación para utilizar los componentes elaborados por
ponentes reutilizables se deberían de implementar herramien- diferentes fabricantes dentro de una aplicación única bajo el
tas, macros y guiones. sistema operativo Windows. COM abarca dos elementos: las
interfaces COM (irnplementadas como objetos COM) y un
¿Cuáles son los ingredientes conjunto de mecanismos para registrar y pasar mensajes entre
interfaces COM. Desde el punto de vista de la aplicación, «el
necesarios para lograr foco no está en cómo [se implementan los objetos COM], sino
en el hecho de que el objeto tiene una interfaz que se registra
la composiciónde componentes? con el sistema, y que utiliza el sistema de componentes para
comunicarse con otros objetos COM» [HAR98].
Almacenamiento estructurado. Los datos heterogéneos
(por ejemplo, los datos gráficos, de voz, texto, vídeo y datos 3Referencia Web
numéricos)dentro de un «documentocompuesto»,deben estar
organizados para poder acceder a ellos como si de una sola l a información más actualizada sobre COM se puede
estructura de datos se tratase, en lugar de comportarse como si obtener en www.mitrosoft.com/COM
fueran toda una colección de archivos por separado. «Los datos
estructurados mantienen un índice descriptivo de estructuras Componentes JavaBean de SUN. El sistema de compo-
de anidamiento, que las aplicaciones pueden recorrer libre- nentes JavaBean es una infraestructura ISBC portátil e inde-
mente para localizar,crear o editar el contenido de datos indi- pendiente de la plataforma que utiliza el lenguaje de
viduales según lo indique el usuario final» [ADL95]. programación Java. El sistema JavaBean amplía el applet4de
Java para acoplar los componentes de software más sofistica-
Modelo de objetossubyacente.El modelo de objetos ase- dos necesarios para el desarrollo basado en componentes.
gura que los componentes desarrolladosen distintos lenguajes
de programación que residan en distintas plataformas pueden ’Referencia Web/
ser interoperables. Esto es, los objetos deben ser capaces de
comunicarse en una red. Para lograr esto, el modelo de obje- Para obtener recursos excelentes de estimación
tos define un estándar para la interoperabilidadde los compo-
nentes. visite la Red de Gestores de Proyectosen
iava.sun.tom/beans
Dado que el impacto futuro de la reutilización y de
la ISBC en la industriadel softwarees enorme, una gran
cantidad de empresas importantes y consorcios indus-
triales3 han propuesto estándares para el software por
componentes:

En [ORF96]y [YOUSS] se presenta un estudio excelente sobre los En este contexto, un applet se puede considerar un componente

estándares de ([objetosdistribuidos.. simple.

480

www.elsolucionario.net
.

CAPfTULO 27 INGENIERfA DEL SOFTWARE BASADA EN COMPONENTES

El sistema de componentes JavaBean acompaña un con- «correspondenciade especificaciones».Bellinzoni y sus www.elsolucionario.net
junto de herramientas llamadas Kit de DesarrolloBeun (BDK), colaboradores [BEL95] describen un enfoque para los
que permite a los desarroiiadores:(1) analizarel funcionamiento sistemas orientados a objetos:
de los Beans (componentes); ( 2 )personalizar su comporta-
miento y aspecto; (3)establecer mecanismos de coordinación Los componentes se definen y se almacenan como clases
y comunicación; (4)desarrollar Beans personalizados para su de especificación,diseñoe implementación con diferentesnive-
utilización en una aplicación específica;y (5) probar y evaluar les de abstracción (cada clase es una descripción ya realizada
el comportamiento de un Bean. de un producto procedente de aplicacionesanteriores). El cono-
cimiento de especificación -conocimiento de d e s a r r o l l e
¿Cuál de estos estándares dominará la industria? Por se almacenaen la forma de clases que sugieren la reutilización,
el momento, no hay una respuesta fácil. Aunque muchos y que contienen indicacionespara recuperar componentes reu-
desarrolladores han establecido normas en base a uno tilizables basándose en su descripción y también para compe
de estos estándares, es probable que grandes empresas nerlos y ajustarlos una vez recuperados.
de software tengan la posibilidad de elegir entre tres
estándares, dependiendo de las categorías y plataformas Aunque la empresano haga ingenieriade dominios,
de aplicación que hayan seleccionado. hay que ir realizándola a medda que avanza el trabajo.
Cuandocanstruyael modela de análisispregúntese:
27.4.2. Ingeniería de componentes
((2Esprabable que este objeta a funciónse pueda encontra1
Como se ha señalado anteriormente en este capítulo, el en otras aplicacianes de este tipo?» Si la respuesto
proceso de ISBC fomenta la utilización de los compo-
nentes de software existentes. Sin embargo, hay oca- es drmafivo, puede que el componenteya existo.
siones en que se deben diseñar los componentes. Es
decir, los componentes de software nuevos deben desa- Las herramientas automatizadas se utilizan para
rrollarse e integrarse con los componentesCYD ya exis- explorar el repositorio en un intento de hacer coinci-
tentes y los de desarrollo propio. Dado que estos dir el requisito indicado en la especificación actual con
componentes nuevos van a formar parte de la bibliote- los descritos para unos componentes reutilizables ya
ca de desarrollo propio de componentes reutilizables, existentes (clases). Las funciones de caracterización
deberían diseñarse para su reutilización. (Sección 27.3.2) y las palabras reservadas se emplean
como ayuda para hallar componentes potencialmente
No hay nada de mágico en la creación de compo- reutilizables.
nentes de software que se pueden reutilizar. Conceptos
de diseño tales como abstracción, ocultamiento, inde- Si la correspondencia de especificaciones produce
pendencia funcional,refinamiento y programación estruc- componentes que se ajustan a las necesidades de la
turada, junto con los métodos orientados a objetos, aplicación en cuestión, el diseñador puede extraer
pruebas, SQA y métodos de verificación de corrección, estos componentes de una biblioteca de reutilización
todos ellos contribuyen a la creación de componentes de (repositorio) y utilizarlos para diseñar el nuevo siste-
software que son reutilizables'. En esta sección no se ma. Si no es posible hallar componentes de diseño, el
revisarán estos temas, sino que, por el contrario, se ten- ingeniero del software entonces debe aplicar métodos
drán en consideración los temas específicos de la reuti- de diseño convencionales u O 0 para crearlos. Es en
lización para prácticas sólidas de ingeniería del software. este momento - c u a n d o el diseñador comienza a crear
un nuevo componente- en el que debe de conside-
27.4.3. Análisis y diseño para la reutilización rarse el diseño para la reutilización (DPR).

Los componentes de diseño y análisis se han tratado Aunque existen asuntas especialesa tener en cuenta
detalladamente en las Partes Tercera y Cuarta de este cuando el objetivaes la reutilización, hay que centrme
libro. Los modelos de datos, funcional y de comporta- en las principiosbásicos de un buen diseño. Si se siguen
miento (representados mediante una gama de notacio- estos principias, las probabilidadesde reutilización
nes distintas) se pueden crear con objeto de describir lo oumentoránsignificativamente.
que debe realizar una determinada aplicación. A conti-
nuación, se utilizan unas especificaciones por escrito Tal como se ha indicado anteriormente, el DPR
para describir estos modelos, y obtener como resultado requiere que el ingeniero del software aplique unos sóli-
final una descripción completa de los requisitos. dos conceptos y principios de diseño del software (Capí-
tulo 13). Pero las características del dominio de la
Lo ideal sería analizar el modelo de análisis para aplicación también tienen que tenerse en cuenta. Bin-
determinar aquellos elementos del modelo que indican der [BIN93] sugiere un cierto número de asuntos6 fun-
unos componentes reutilizables ya existentes. El pro-
blema consiste en extraer información a partir del mode- En general las preparaciones indicadas para el diseño destinado a
lo de requisitos, de forma que pueda llevar a una la reutilización deberían de llevarse a cabo como parte de la inge-
niería del dominio (Sección27.3).
Para aprender más sobre estos temas, véase desde el Capítulo 13
hasta el 16, y desde el 20 al 22.

httpw://wlibwre.erials-uonluivceirosnitaarriaio.b.nloegtspot.com
.

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO

damentales que deben considerarse como base del dise- Una vez que se han establecido los datos estándar,
ño para la reutilización: las interfaces y las plantillas de programa, el diseñador
posee un marco de referencia en el cual puede crear el
Datos estándar. Es preciso investigarel dominio de la apli- diseño. Los componentes nuevos que se ajustan a este
cación, y es preciso identificar las estructuras de datos están- marco de referencia tendrán una mayor probabilidad de
dar globales (por ejemplo, las estructuras de archivos o toda ser posteriormente reutilizables.
una base de datos completa). Entonces se pueden caracterizar
todos los componentes de diseño para uso de estas estructuras Al igual que el diseño, la construcción de compo-
de datos estándar. nentes reutilizables se basa en métodos de la ingeniería
del software que ya se han descrito en otras partes de
Protocolosde inteqaz estándar. Deberían establecerse tres este libro. La construcción se puede efectuar emplean-
niveles de protocolo de interfaz: la naturaleza de las interfaces do lenguajes convencionales de programación, de ter-
intramodulares, el diseño de interfaces técnicas externas (no cera generación, lenguajes de cuarta generación y
humanas) y la interfaz hombre-máquina. generadores de código, técnicas de programación visual
o herramientas más avanzadas.
Plantillas de programa. El modelo de estructura (Sección
27.3.3) puede servir como plantilla para el diseño arquitectó-
nico de un nuevo programa.

Considere una gran biblioteca universitaria. Para su El concepto de un componente de software es una www.elsolucionario.net
utilización tiene disponibles decenas de millares de «descripción de lo que hace el componente» [WHI95].
libros, periódicos y otras fuentes de información. La interfaz con el componente se describe completa-
Ahora bien, para acceder a estos recursos es preciso mente y su semántica -representada dentro del con-
desarrollar algún sistema de clasificación. Para reco- texto de pre y postcondiciones-se identifica también.
rrer este gran volumen de información, los bibliote- El concepto debe comunicar la intención del compo-
carios han definido un esquema de clasificación que nente.
incluye un código de clasificación de la biblioteca,
palabras reservadas, nombres de autor y otras entra- a$$?+
das de índice. Todas ellas capacitan al usuario para
encontrar el recurso necesario de forma rápida y sen- CLAVE
cilla.
Poro describir un componente reutilizable, se tendrá
que describir su concepto, contenido y contexto.

Considere ahora un gran depósito de componentes. El contenido de un componente describe la forma en
Residen en él decenas de millares de componentes de que se construye el concepto. En esencia, el contenido
software reutilizables. ¿Cómo puede hallar el ingenie- es una información que queda oculta a los ojos del usua-
ro del software el componente que necesita? Para res- rio habitual y que solamente necesita conocer quien
ponder a esta pregunta, surge otra pregunta más. ¿Cómo intentará modificar ese componente.
se describen los componentes de software en términos
de no ambiguos y fácilmente clasificables? Se trata de El contexto sitúa el componente de software reutili-
cuestiones difíciles y todavía no se ha desarrollado una zable en el seno de su dominio de aplicabilidad, esto es,
respuesta definitiva. En esta sección, se exploran las ten- mediante la especificación de características concep-
dencias actuales que capacitarán a los futuros ingenie- tuales, operacionales y de implementación, el contexto
ros del software para navegar por las bibliotecas capacita al ingeniero del software para hallar el com-
reutilizables. ponente adecuado para satisfacer los requisitos de la
aplicación.
27.5.1. Descripción de componentes reutilizables
3Referencia Web
Un componente de software reutilizable se puede des-
cribir de muchas maneras, pero la descripción ideal abar- Uno detallado guía de reutilización de componentes
ca lo que Tracz [TRA90] ha llamado el Modelo 3C se puede descargarde lo dirección
-concepto, contenido y contexto-. webl .ssg.gunter.af.mil/
sep/SEPver40/Main.html#GD

Para que resulte útil en un sentido práctico, el con-
cepto, el contenido y el contexto tienen que traducirse

482

www.elsolucionario.net
.

CAPfTULO 27 INGENIERIA DEL SOFTWARE BASADA EN COMPONENTES

en un esquema de especificaciónconcreto. Se han escri- Vocabulario www.elsolucionario.net
to varias docenas de artículos y trabajos acerca de los
esquemas de clasificación para componentes de soft- Diccionario
ware reutilizables (por ejemplo, [WHI95] contiene una
extensa bibliografía). Los métodos propuestos se pue- FIGURA 27.2’. Una taxonomía de métodos de indexación
den descomponer en tres zonas fundamentales: méto- [FRA94].
dos de las ciencias de la documentación y de
biblioteconomía, métodos de inteligenciaartificial y sis- Clasificación por faceias. Se analiza una cierta área del
temas de hipertexto. La gran mayoría de los trabajos dominio y se identifica un conjunto de caractensticas descnp-
realizados hasta el momento sugiere la utilización de tivas básicas. Estas características, que se denominan facetas,
métodos propios de biblioteconomía para la clasifica- reciben entonces diferentesprioridades según su importanciay
ción de componentes. se relacionan con un componente. La faceta puede describir la
función que lleva a cabo el componente, los datos que se mani-
La Figura 27.2 presenta una taxonomía de los méto- pulan, el contexto en que se aplican o cualquier otra caracterís-
dos de indexación en biblioteconomía. Los vocabula- tica. El conjunto de facetas que describen los componentes se
rios controlados de indexación limitan los términos y denomina descriptor de facetas. Generalmente, la descripción
sintaxis que se pueden utilizar para clasificar los obje- por facetas se limita a un máximo de siete u ocho facetas.
tos (componentes). Los vocabularios de indexación no
controlados no imponen restricciones sobre la naturale-
za de la descripción. La gran mayoría de los esquemas
de clasificación para los componentes de software se
encuentran dentro de las tres categorías siguientes:

Clasificación enumerada.Los componentes se describen
mediante la definición de una estructura jerárquica en la cual
se definen clases y diferentes niveles de subclases de compo-
nentes de software. Los componentes en sí se enumeran en el
nivel más bajo de cualquierruta de lajerarquía enumerada.Por

i:ejem lo, una jerarquía enumerada para operaciones con ven-

tanas podríaser

operaciones ventana ¿Cuáles son las opciones
disponibles para clasificar
vi sual ización componentes?

abrir Como ilustración sencilla del uso de facetas en la clasifica-
ción de componentes, considérese un esquema [LL493] que
basados en menú hace uso del siguiente descriptor de facetas:
ventanaAbi erta
(función, tipo de objeto, tipo de sistema)
basados en sistemas
Cada una de las facetas del descriptorde facetas adopta uno
v e n t a n a s i c tema o más valores que en general serán palabras reservadas des-
criptivas. Por ejemplo, si función es una faceta de un compo-
cerrar nente, entonces entre los valores típicos que se asignan a esta
faceta podríamos contar:
a través de puntero
función = (copiar,desde) o bien (copiar,reemplazar,
.... todo)

cambio de tamaño La utilización de múltiples valores de faceta hace posible
que la función primitiva copiar se refine más exactamente.
a través de órdenes
Laspalabras reservadas(valores)se asignan al conjuntode
establecerTamVen tana, redimensionadoEs- facetas de cada componente de una cierta biblioteca de reutili-
tandar, contraerventana zación. Cuandoun ingenierodel softwaredesea ocultar la bibiio-
por arrastre teca en busca de posibles componentes para un diseño, se
especifica una lista de valores y se consultala biblioteca en bus-
arras trarventana, estirarventana ca de posibles candidatos. Para incorporar una función de dic-
cionario se pueden emplear herramientas automatizadas. Esto
reordenación de planos hace posible que la búsqueda no sólo abarquelas palabras reser-
vadas especificadaspor el ingeniero del software,sino también
.... otros sinónimos técnicos de esas mismas palabras reservadas.

desplazamiento
....

cierre

....

La estructurajerárquicade un esquemade clasificación enu-
merado hace que sea sencillo comprenderlo y utilizarlo. Sin
embargo, antes de poder construir una jerarquía, es preciso Ile-
vara cabo una ingenieríadel dominio para que esté disponible
una cantidad suficientede conocimientos acerca de las entra-
das correctas de esa jerarquía.

’Solamente se indica un pequeño subconjunto de todas las opera-

ciones posibles.

483

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. U N ENFOQUE PRÁCTICO .

Un esquema de clasificaciónpor facetas proporcionaal inge- tos) que permite a la aplicación cliente recuperar www.elsolucionario.net
niero del dominio una mayor flexibilidad al especificar des- los componentes y servicios del servidor de la
criptores complejos de los componentes [FRA94]. Dado que biblioteca.
es posible añadir nuevos valores de facetas con facilidad, el
esquema de clasificación por facetas es más fácil de extender unas herramientas CASE que prestan su apoyo a la
y de adaptar que el enfoque de enumeración.
integración de componentes reutilizadosen un nuevo
Clasificaciónde atributos y valores.Para todos los com- diseño o implementación.
ponentes de una cierta zona del dominio se define un conjun-
to de atributos. A continuación, se asignan valores a estos Cada una de estas funciones interactúa con una
atributos de forma muy parecida a una clasificación por face- biblioteca de reutilización o bien se encuentra incorpo-
tas. De hecho, la clasificación de atributos y valores es pareci- rada a esta última.
da a la clasificaciónpor facetas con las excepcionessiguientes:
(1) no hay límite para el número de atributos que se pueden La biblioteca de reutilización es un elemento de un
utilizar; (2)no se asignan prioridades a los atributos;y (3) no repositorio CASE más extenso (Capítulo 3 1) y propor-
se utiliza la función diccionario. ciona las posibilidades adecuadas para el almacena-
miento de una amplia gama de elementos reutilizables
Basándose en un estudio empírico de cada una de las (por ejemplo, especificación, diseño, casos de prueba,
técnicasanterioresde clasificación,Frakes y Pole [FRA94] guías para el usuario). La biblioteca abarca una base de
indican que no existe una técnica que sea claramente «la datos y las herramientas necesarias para consultar esa
mejor>>y que «ningúnmétodo es más que moderadamente base de datos y recuperar de ella componentes. Un
esquema de clasificación de componentes (Sección
adecuado en lo tocante a efectividad de búsqueda.. ..». 27.5.1) servirá como base para consultas efectuadas a
la biblioteca.
Parece entonces que es preciso realizar un trabajo más
extenso en el desarrollo de unos esquemas de clasifica- Las consultas suelen caracterizarse mediante el uso
ción efectivospara las bibliotecas de reutilización. del elemento de contexto del Modelo 3C que se descri-
bía anteriormente. Si una consulta inicial da lugar a una
27.5.2. El entorno de reutilización lista voluminosa de candidatos a componentes, enton-
ces se refina la consulta para limitar esa lista. A conti-
La reutilización de componentes de software debe de nuación, se extraen las informaciones de concepto y
estar apoyada por un entorno que abarque los elemen- contenido (después de haber hallado los candidatos a
tos siguientes: componentes) para ayudar al desarrollador a que selec-
cione el componente adecuado.
una base de datos de componentes capaz de almace-
nar componentesde software,así como la información Una descripción detallada de la estructura de biblio-
de clasificación necesaria para recuperarlos. tecas de reutilización y de las herramientas que las ges-
un sistema de gestión de bibliotecas que pro- tionan va más allá de los límites de este libro. El lector
porciona acceso a la base de datos. interesado debería consultar [H0091] y [LIN95] para
más información.
un sistema de recuperación de componentes de
software (por ejemplo, un distribuidor de obje-

27.7

La economía de la ingeniería del software basada en les indican que es posible obtener notables beneficios
componentes tiene un atractivo evidente. En teoría, de negocios mediante una reutilización agresiva del soft-
debería proporcionar a las empresas de software unas ware. Se mejora tanto la calidad del producto, como la
ventajas notables en lo tocante a la calidad y a los tiem- productividad del desarrollador y los costes en general.
pos de realización. Éstas, a su vez, deberían traducirse
en ahorros de costes. ¿Existen datos reales que presten lSBC no es un w m p e crismasa económico
apoyo a nuestra intuición? si los componentesdisponiblesson /as correctos
para el trabajo. Si lo reutilizaciónexige
Para responder a esta pregunta primero es preciso personalizoción, hoy que proceder con precaución.
comprender lo que se puede reutilizar en un contexto
de ingeniería del software, y cuáles son los costes aso- Calidad. En un entorno ideal, un componente del
ciados a la reutilización. Como consecuencia, será posi- software que se desarrolle para su reutilización estará
ble desarrollar un análisis de costes y de beneficios para verificado en lo tocante a su corrección (véase el Capí-
la reutilización. tulo 26) y no contendrá defectos. En realidad, la verifi-
cación formal no se lleva a cabo de forma rutinaria, y
27.6.1.Impacto en la calidad, productividady coste los defectos pueden aparecer y aparecen. Sin embargo,
con cada reutilización, los defectos se van hallando y
A lo largo de los Últimos años, existen notables evi-
dencias procedentes de casos prácticos en la industria
(por ejemplo, [HEN95], [MCM95]y [LIM94]),las cua-

484

www.elsolucionario.net

.

CAPfTULO 27 INGENIERfA DEL SOFTWARE BASADA EN COMPONENTES

eliminando,y como resultado la calidad del componente ¿Cuáles son los tostes www.elsolucionario.net
mejora. Con el tiempo, el componente llega a estar vir-
tualmente libre de defectos. asociados a la reutilizatión
del software?
En un estudio realizado en Hewlet-Packard, Lim
[LIM94]informa que la tasa de defectos para el código Incremento de la documentaciónpara facilitar la reu-
reutilizado es de 0,9 defectos por KLDC, mientras que tilización;
la tasa para el software recién desarrollado es de 4,l
defectos por KLDC. Para que una aplicación esté com- Mantenimiento y mejora de componentes de la reu-
puesta por un 68 por 100de código reutilizado, la tasa tilización;
de defectos será de 2,Odefectos-una mejora del 5 1 por
100 para la tasa esperada si la aplicación hubiera sido Licenciaspara componentesadquiridos externamente;
desarrollada sin reutilización-. Henry y Faller [HEN95] Creación o adquisición y funcionamientode un depó-
sito para la reutilización;
informan de una mejora de calidad del 35 por 100.Aun Formación del personal en el diseño y construcción
para la reutilización.
cuando existen recortes anecdóticos que abarcan un
espectrorazonablemente amplio en porcentajes de mejo- Aun cuando los costes asociados al análisis del domi-
ra de la calidad, es justo que la reutilización proporcio- nio (Sección 27.4)y el funcionamiento de un reposito-
ne un beneficio no despreciable en función de la calidad rio para la reutilización pueden resultar notables, muchos
y fiabilidad del software proporcionado. de los costes restantes indicados anteriormente se enfren-
tan con temas que forman parte de las buenas prácticas
% de la ingeniería del software, tanto si se considera prio-
CLAVE ritaria la reutilización como si no.

Aunque los datos empíricosvaríen, la evidencia 27.6.2. Análisis de coste empleando puntos

industrial indica que la reutilización proporciona de estructura
un beneficio sustancialen coste.
En la Sección 27.3.3se definía un punto de estructura
Productividad. Cuando se aplican componentesreu- como una trama arquitectónica que aparece repetida-
tilizables a lo largo del proceso del software, se invierte mente en el seno de un determinado dominio de apli-
menos tiempo creandolos planes, modelos, documentos, caciones. El diseñador del software (o el ingeniero del
código y datos necesarios para crear un sistema fiable. sistema) puede desarrollar una arquitectura para una
Se sigue proporcionandoun mismo nivel de funcionali- nueva aplicación, sistema o producto mediante la defi-
dad al cliente con menos esfuerzo. Consiguientemente, nición de una arquitectura del dominio y poblándola
mejora la productividad. Aun cuando los informes acer- entonces con puntos de estructura. Estos puntos de
ca de las mejoras de productividad son sumamente difí- estructura son, o bien componentes reutilizables, o bien
ciles de interpretar*,parece que una reutilización de entre paquetes de componentes reutilizables.
el 30 y el 50 por 100puede dar lugar a mejoras de pro-
ductividad que se encuentrenentre el intervaloque media Aun cuando los puntos de estructura sean reutiliza-
entre el 25 y el 40 por 100. bles, su adaptación, integración y costes de manteni-
miento no serán despreciables. Antes de seguir adelante
Coste. El ahorro neto de costes para la reutilización con la reutilización, el gestor del proyecto debe enten-
se estima proyectando el coste del proyecto si se hubie- der los costes asociados al uso de puntos estructura.
ra desarrollado éste desde cero, C , y restando después
la suma de los costes asociados para la reutilización, C,, Dado que todos los puntos de estructura (y todos los
y el coste real del software cuando este finalmente se componentes reutilizables en general) poseen una his-
implanta, Ci. toria pasada, es posible recoger datos de costes para cada
uno de ellos. En una situación ideal, los costes de adap-
C se puede determinar aplicando una o más de las tación, integración y mantenimiento asociados a los com-
técnicas de estimación descritas en el Capítulo 5. Los ponentes de una biblioteca de reutilización se mantienen
costes asociados a la reutilización, C,, incluyen para cada caso de utilización. Entonces es posible ana-
[CHR95]: lizar estos datos para desarrollar una estimación de cos-
tes para el próximo caso en que se utilicen.
Modelado y análisis del dominio;
Como ejemplo, considérese una nueva aplicación,
Desarrollo de la arquitectura del dominio; X , que requiere un 60 por 100de código nuevo, y la reu-
tilización de tres puntos de estructura, PE,, PE, y PE,.
Cada'uno de estos componentes reutilizables ha sido

* Existen muchas circunstancias atenuantes (por ejemplo, área de

aplicación, complejidad del problema, estructura y tamaño del equipo,
duración del proyecto, tecnología aplicada) que puede tener su
impacto sobre la productividad del equipo de un proyecto.

485

www.elsolucionario.net

.

INGENlERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO

utilizado en un cierto número de aplicaciones adicio- lización en un sistema basado en computadoras. Los
nales, y los costes medios de adaptación, integración y beneficios asociados a la reutilización dentro de un sis-
mantenimiento están disponibles. tema S se pueden expresar como el siguiente cociente

¿Existe un cálculo rápido Rb (’)= rCsin reutiiización- con reutilización]/‘sin reutilización (27.1)
que permita estimar
el beneficio de la reutilización donde
de componentes en términos
de coste? Csin es el coste de desarrollar S sin reutilización,
Y
Para estimar el esfuerzo requerido para proporcionar
la aplicación,X, es preciso efectuar el siguiente cálculo: C,,, es el coste de desarrollar S con reutilización

donde De lo que se deduce que R,(S) se puede expresar

Enuev=0 es el esfuerzo que el ingeniero requiere para cons- como un valor no dimensional que se encuentra en el
truir los nuevos componentes de software (que se determina-
rá empleando las técnicas descritas en el Capítulo 5); intervalo

Eigua=l es el esfuerzo requerido para cualificar PE,,PE, y o 5 Rb(S)5 1 (27.2)
PE,;
Devanbu y sus colaboradores [DEV95] sugieren que www.elsolucionario.net
Eadaptaci=ónes el esfuerzo requerido para adaptar PE,,PE, (1) R, se verá afectado por el diseño del sistema; (2)
Y PE,; dado que R, se ve afectado por el diseño, es importan-
te hacer que R, forme parte de la estimación de alter-
Eintegraci=ónes el esfuerzo requerido para integrar PE,,PE, nativas de diseño; y (3) los beneficios asociados a la
Y PE,; reutilización estarán íntimamente relacionados con los
beneficios en términos de costes de cada uno de los com-
El esfuerzo necesario para cualificar, adaptar e ints- ponentes reutilizables individuales.
grar PE,, PE, y PE, se determina calculando la media
de datos históricos recogidospara la cualificación,adap- Se define una medida general de reutilización en los
tación e integración de los componentes reutilizables sistemas orientados a objetos, denominada u p r ~ ~ ~ r c l z a -
en otras aplicaciones. miento de reutilización [BAN94] en la siguiente forma:

27.6.3. Métricas de reutilización Raprovechado = oBJreutilizados/oBJconstniido\ (27.3)
Se ha desarrollado toda una gama de métricas de soft-
ware en un intento de medir los beneficios de la reuti- donde

OBJre,tilizadoes el número de objetos reutilizados en el
sistema;

OBJ,o,,tmidos es el número de objetos construidos para el
sistema.

De lo que se deduce que a medida que aumenta
Raprovechadot,ambién aumenta R,.

La ingeniería del software basada en componentes rrollo basado en componentes cualifica, adapta e inte-
proporciona unos beneficios inherentes en lo tocante a gra estos componentes para su reutilización en un siste-
calidad del software, productividad del desarrollador y ma nuevo. Además, el desarrollo basado en componentes
coste general del sistema. Sin embargo, es preciso ven- diseña componentes nuevos que se basan en los requi-
cer muchas dificultades antes de que el modelo de pro- sitos personalizados de un sistema nuevo.
ceso ISBC se utilice ampliamente en la industria.
Las técnicas de análisis y diseño de componentes
Además de los componentes del software, un inge- reutilizables se basan en los mismos principios y con-
niero del software puede adquirir toda una gama de ceptos que forman parte de las buenas prácticas de inge-
elementos reutilizables. Entre estos se cuentan las niería del software. Los componentes reutilizables
representaciones técnicas del software (por ejemplo, deberían de diseñarse en el seno de un entorno que esta-
especificación, modelos de arquitectura, diseños y blezca unas estructuras de datos estándar, unos proto-
códigos), documentos, datos de prueba e incluso tare- colos de interfaz y unas arquitecturas de programa para
as relacionadas con los procesos (por ejemplo, técni- todos los dominios de aplicación.
cas de inspección).
La ingeniería del software basada en componentes
El proceso ISBC acompaña a dos subprocesos con- hace uso de un modelo de intercambio de datos; herra-
currentes -ingenieríadel dominio y desarrollo basado mientas, almacenamiento estructurado y un modelo
en componentes-. El objetivo de la ingeniería del domi- objeto subyacente para construir aplicaciones. EL mode-
nio es identificar, construir, catalogar y diseminar un lo de objetos suele ajustarse a uno o más estándares de
conjunto de componentes de software en un determi- componentes (por ejemplo, OMGKORBA) que defi-
nado dominio de aplicación. A continuación, el desa- nen la forma en que una aplicación puede acceder a los

486

hwttpw://wlib.erelrsiao-luuncivioenrsaitrairoia.n.belotgspot.com
.

CAPfTULO 27 INGENIERfA DEL SOFTWARE BASADA EN COMPONENTES

objetos reutilizables. Los esquemas de clasificación La economía de reutilización del software se abar-
capacitan al desarrollador para hallar y recuperar com- ca con una Única pregunta: ¿Es rentable construir
ponentes reutilizables y se ajustan a un modelo que iden- menos y reutilizar más? En general, la respuesta es
tifica conceptos,contenidos y contextos. La clasificación «sí», pero un planificador de proyectos de software
enumerada, la clasificación de facetas, y la clasifica- debe considerar los costes no triviales asociados a la
ción de valores de atributos son representativas de adaptación e integración de los componentes reutili-
muchos esquemas de clasificación de componentes. zables.

[ADL95] Adler, R.M., «Engineering Standards for Compo- [HUT88] Hutchinson, J.W., y P.G. Hindley, «A Preliminary www.elsolucionario.net
nent Software», Computer, vol. 28, n.' 3, Marzo de 1995, Study of Large Scale Software Reuse», Sofnvare Enginee-
pp. 68-77. ring Journal, vol. 3, n.' 5, 1998, pp. 208-212.

[BAS94]Basili,V.R., L.C. Briand y W.M. Thomas, «Domain [LIM94] Lim, W.C., «Effects of Reuse on Quality, Producti-
Analysis for the Reuse of Software Development Expe- vity, and Economics»,IEEE Software, Septiembrede 1994,
riencew, Proc. Of the 19thAnnual Software Engineering pp. 23-30.
Workshop,NASA/GSFC, Greenbelt, MD, Diciembre de
1994. [LIA93] Liao, H., y F. Wang, «Software Reuse Based on a
Large Object-Oriented Library», ACM Software Enginee-
[BEL95]Bellinzona, R., M.G. Gugini y B. Pemici, «Reusing ring Notes, vol. 18, n.' 1, Enero de 1993, pp. 74-80.
Specifications in O 0 Applications», IEEE Software, Mar-
zo de 1995, pp. 65-75. [LIN95] Linthicum, D.S., «Component Development (a spe-
cial feature)», Application Development Trends, Junio de
[BIN93] Binder, R., «Design for Reuse is for Real», Ameri- 1995, pp. 57-78.
can Programmer, vol. 6, n.' 8, Agosto de 1993, pp. 33-
37. [MCM95]McMahon,P.E., «Pattem-BasedArchitecture: Brid-
ging Software Reuse and Cost Managemenb, Crosstalk,
[BR096] Brown, A.W., y K.C. Wallnau, «Engineering of vol. 8, n.' 3, Marzo de 1995, pp. 10-16.
Component Based Systems», Component-Based Soft-
ware Engineering, IEEE Computer Society Press, 1996, [ORF96] Orfali, R., D. Harkey y J. Edwards, The Essential
pp. 7-15. Distributed Objects Survival Guide, Wiley, 1996.

[CHR95] Christensen, S.R., «Software Reuse Iniciatives at [PRI87] Prieto-Díaz, R., «Domain Analysis for Reusabi-
Lockheed»,Crosstalk, vol. 8, n.' 5,Mayo de 1995,pp. 26- lity», Proc. COMPSAC '87, Tokyo, Octubre de 1987,
31. pp. 23-29.

[CLE95] Clemens, P.C., «From Subroutines to Subsystems: [PRI93] Prieto-Díaz, R., &sues and Experiences in Software
Component-Based Software Development», American Reuse», American Programmer, vol. 6, n.' 8, Agosto de
Programmer, vol. 8, n.' 11, Noviembre de 1995. 1993, pp. 10-18.

[DEV95]Devanbu, P. et al., «Analytical and Empirical Eva- [POL94] Pollak, W., y M. Rissman, «Structural Models and
luation of Software Reuse Metricsn, Technical Report, Pattemed Architecturem, Computer, vol. 27, n.' 8, Agos-
Computer Science Department, Uviversity of Maryland, to de 1994, pp. 67-68.
Agosto de 1995.
[STA941 Staringer,W., «ConstructingApplications from Reu-
[FRA94] Frakes, W.B., y T.P. Pole, «An Empirical Study of sable Components», IEEE Software, Septiembre de 1994,
Representation Methods for Reusable Software Compo- pp. 61-68.
nents», IEEE Trans. Software Engineering, vol. 20, n.' 8,
Agosto de 1994, pp. 617-630. [TRA90] Tracz, W., «Where Does Reuse Start?», Proc. Rea-
lities of Reuse Workshop,Syracuse University CASE Cen-
[HAR98] Harmon, P., cNavigating the Distributed Compo- ter, Enero de 1990.
nents Landscape», Cutter IT Journal, vol. 11, n.' 2 ,
Diciembre de 1998, pp. 4-11. [TRA95]Tracz, W., «Third Intemational Conference on Soft-
ware Reuse-Summary»,ACM Software Engineering Notes,
[HEN95] Henry, E., y B. Faller, «Large Scale Industrial vol. 20, n.' 2, Abril de 1995, pp. 21-22.
Reuse to Reduce Cost and Cycle Time», IEEE Software,
Septiembre de 1995, pp. 47-53. [WHI95] Whittle, B., «Models and Languages for Compo-
nent Description and Reuse», ACM Software Engineering
[H0091] Hooper, J.W., y R.O. Chester,Software Reuse: Gui- Notes, vol. 20, n.' 2, Abril de 1995, pp. 76-89.
delines and Methods, Plenum Press, 1991.
[YOU98] Yourdon, E. (ed.), «Distributed Objects», Cutter IT
Journal, vol. 11, n.Q12, Diciembre de 1998.

www.elsolucionario.net

INGENiERfA DEL SOFTWARE. UN ENFOQUE PRACTICO .

AC O C

27.1. Uno de los obstáculos principales de la reutilización con- 27.7. Desarrolle un modelo estructural sencillo para un domi- www.elsolucionario.net
sisteen hacer que los desarrolladores de softwareconsideren la nio de aplicación que le asigne su instructor, o bien uno con el
reutilización de componentes ya existentes,en lugar de volver cual esté familiarizado.
a inventar otros nuevos. (¡Después de todo, es divertido cons-
truir cosas!) Sugiera tres o cuatro formas distintas en que una 27.8. ¿Qué es un punto de estructura?
organización de software pueda proporcionar incentivos para
que los ingenieros de software utilicen la reutilización. ¿Qué 27.9. Obtenga información de los estándares más recientes de
tecnologías deberían de estar implantadaspara apoyarese esfuer- CORBA, COM o de JavaBeans y prepare un trabajo de 3 a 5
zo de reutilización? páginas que trate los puntos más destacables. Obtenga infor-
mación de una herramienta de distribución de solicitudes de
27.2. Aunque los componentes de software son los «elemen- objetos e ilustre en que esa herramienta se ajusta al estándar.
tos»reutilizables más obvios, se pueden reutilizar muchas otras
entidadesproducidas como parte de la ingeniería del software. 27.10. Desarrolle una clasificaciónenumerada para un dominio
Tenga en consideración los planes de proyectoy las estimacio- de aplicación que le asigne su instructoro para uno con el cual
nes de costes. ¿Cómo se pueden reutilizar y cuál es el benefi- esté familiarizado.
cio de hacerlo?
27.11. Desarrolle un esquema de clasificación por facetas para
27.3. Lleve a cabo una pequeña investigación acercade la inge- un dominiode aplicación que le asigne su instructor o bien para
niería de dominios, y detalle algo más el modelo de procesos uno con el cual esté familiarizado.
esbozadoen la Figura 27.1. Identifique las tareasnecesarias para
el análisis de dominios y para el desarrollode arquitecturas de 27.12. Investigue en la literatura para conseguirdatos recientes
software. de calidad y productividad que apoyen la utilización. Presente
esos datos al resto de la clase.
27.4. ¿En qué sentidoson iguales las funcionesde caracteriza-
ción para los dominios de aplicaciones y los esquemas de cla- 27.13. Se estima que un sistema orientado a objetos requiere
sificaciónde componentes? ¿En qué sentido son distintas? 320 objetospara su finalización.Además, se estima que es posi-
ble adquirir 190 objetos procedentes de un depósito ya exis-
27.5. Desarrolle un conjuntode característicasdel dominiopara tente. ¿Cuál es el aprovechamientode reutilización? Suponga
sistemas de información que sean relevantes para el procesa- que los objetos nuevos cuestan 260.000 pts., y que se necesitan
miento de datos de alumnos de una Universidad. 156.000 pts. para adaptar un objeto y 104.000 pts. para inte-
grarlo. ¿Cuál es el coste estimadodel sistema? ¿Cuál es el valor
27.6. Desarrolleun conjunto de característicasdel dominio que de Rb?
sean relevantes para el software de publicación y autoedición.

-o Y FU-ION

Durante los últimos años se han publicado libros sobre el de métodos cuantitativos para valorarlos beneficios de la reu-
desarrollo basado en componentes y la reutilización de com- tilización del software.
ponentes.Allen, Frost y Yourdon (Component-Based Develop-
mentfor Enterprise Systems: Applying the Select Perspective, Durante los Últimos años se han publicado docenas de libros
Cambridge University F’ress, 1998) abarca todo el proceso de que describen los mismos estándaresbasados en componentes
ISBC mediante el uso de UML (Capítulos 21 y 22) basándose de la industria, pero también tienen en consideración muchos
en el enfoque del modelado.Los libros de Lim (Managing Soft- tópicos importantesde la ISBC. A continuación se muestra un
ware Reuse: A Comprehensive Guide to Strategically Reengi- muestre0 del estudio de los tres estándares:
neering the Organization for Reusable Components,
Prentice-Hall, 1998), Coulange (Software Reuse, Spriger Ver- CORBA
lag, 1998), Reifer (Practica1Software Reuse, Wiley, 1997),
Jacobson, Gnss y Jonsson (SoftwareReuse: Architecture Pro- Doss, G.M., CORBA Networking Java, Wordware
cess and Organizationfor Business Success, Addison-Wesley, Publishing, 1999.
1997) afronta muchos temas de ISBC. Fowler (Analysis Pat-
terns: Reusable Object Moglels,Addison-Wesley, 1996)consi- Hoque, R., CORBA f o r Real Prograrnmers, Academic
dera la aplicación de patrones arquitectónicos dentrodel proceso Presshíorgan Kaufmann, 1999.
de ISBC y proporciona muchos ejemplos Útiles. Tracz (Con-
fessions of a Used Program Salesman: Institutionalizing Soft- Siegel, J., CORBA 3 Fundamentals and Programming,
ware Reuse, Addison-Wesley,1995)presenta un estudio algunas Wiley, 1999.
veces desenfadado y muy útil de los temas asociados con la cre-
ación de una cultura de reutilización. Slama, D., J. Garbis y P. Russell,Enterprise CORBA, Pren-
tice-Hall, 1999.
Leach (Software Reuse: Methods, Models and Costs,
McGraw-Hill, 1997) proporciona un análisis detallado de los COM
estudiosde costes asociados con la ISBC y con la reutilización.
Poulin (Measuring Software Reuse: Principles, Practices, and Box, D.K., T. Ewald y C. Sells, Effective Ways to Impro-
Economic Models, Addison-Wesley, 1996) sugiere un número ve Your COM and MTS-Based Applications, Addison-Wes-
ley, 1999.

Kirtland, M., Designing Component-Based Applications,
Microsoft Press, 1999.

Muchas compañías aplican una combinación de estándares
de componentes. Los libros de Geraghty et al. (COM-CORBA

488

www.elsolucionario.net
. CAPfTULO 27 INGENIERfA DEL SOFTWARE BASADA EN COMPONENTES

Interoperubility, Prentice-Hall, 1999), Pritchard (COM and Valesky, T.C.,Enterprise JavaBeans: Developing Com-
CORBA Side by Side: Architectures, Strutegies, und Imple- ponent-Bused Distributed Applicutions,Addison-Wesley, 1999.
mentutions,Addsion-Wesley, 1999)y Rosen et al. (Integruting
CORBAund COM Applicutions, Wiley, 1999)tienen en consi- Vogel, A., y M. Rangarao, Progrumming with Enterprise
deración los temas asociados con la utilización de CORBA y JuvuBeuns, JTS und OTS,Wiley, 1999.
COM como base para el desarrollobasado en componentes.
En Intemet está disponible una gran variedad de fuentes
JavaBeans de información sobre la ingeniería del software basada en
Asbury, S., y S.R. Weiner, Developing Javu Enterprise componentes. Una lista actualizada de referencias en la red
Applications, Wiley, 1999. que son relevantespara la ISBC se puede encontrar en la direc-
ción http:llwww.pressrnanS.com

www.elsolucionario.net

489

www.elsolucionario.net
.

www.elsolucionario.net

CAPÍTULO www.elsolucionario.net
.
28
INGENIERÍA DEL SOFTWARE

DEL COMERCIO ELECTRÓNICO

CLIENTE SERVIDOR

A finales de siglo, el desarrollo de una nueva generación de máquinas herramientas capa- www.elsolucionario.net
ces de soportar fuertes tolerancias dieron poder a los ingenieros que diseñaban un pro-
ceso nuevo de fabricación llamado producción en masa. Antes de la llegada de esta

tecnología avanzada de máquinas herramientas, no se podían soportar fuertes tolerancias. Pero
con esta tecnología se podían construir piezas intercambiables y fácilmente ensamblables -
la piedra angular de la producción en masa-.

Cuando se va a desarrollar un sistema basado en computadora, un ingeniero de software se
ve restringido por las limitaciones de las tecnologías existentes y potenciado cuando las tec-
nologías nuevas proporcionan capacidades que no estaban disponibles para las generaciones
anteriores de ingenieros. La evolución de las arquitecturas distribuidas de computadora ha capa-
citado a los ingenieros de sistemas y del software para desarrollar nuevos enfoques sobre cómo
se estructura el trabajo y cómo se procesa la información dentro de una empresa.

Las nuevas estructuras de las organizaciones y los nuevos enfoques de proceso de información
(por ejemplo: tecnologías intranet e Intemet, sistemas de apoyo a las decisiones, software de gru-
po, e imágenes) representan una salida radical de las primeras tecnologías basadas en minicom-
putadoraso en mainframes.Las nuevas arquitecturasde computadorahan proporcionadola tecnología
que ha hecho posible que las empresas vuelvan a diseñar sus procesos de negocio (Capítulo 30).

En este capítulo, examinaremos una arquitectura dominante para el proceso de información
-los sistemas clientelservidor (C/S) dentro del contexto de los sistemas de comercio electró-
nico-. Los sistemas clientehervidor han evolucionado junto con los avances de la informáti-
ca personal, en la ingeniería del software basada en componentes, con las nuevas tecnologías
de almacenamiento, comunicación mejorada a través de redes, y tecnología de bases de datos
mejoradas. El objetivo de este capítulo' es presentar una visión global y breve de los sistemas
clientehervidor con un énfasis especial en los temas de la ingeniería del software que deben de
afrontarse cuando se analizan, diseñan, prueban y se da soporte a dichos sistemas C/S.

¿Qué es? Las arquitecturas clientelservi- dominante. Puesto que los crvancestec- lidad del clientey del servidordentrodel
nológicos(por ejemplo,desmrollo basa- miexto delosestándaresde integraci6n
dor (CIS)dominan el horizontede los sis- doen componentes,agentesde solicitud decomponentesy de la aquitectwa C/S.
de objetos, Java)cambian la forma de
temas basados en computadora. Todo construir los sistemas C/S, en su cons- &Cuáles el producto obtenido?Un
sistema CIS de alta calidad es el pro-
existe: desde redes de cajeros automá- debe d e aplicar un proceso ducto de la ingeniería del software CIS.
de ingeniería del software sólido. También se producen otros productos
ticos hasta Internet. y esto es debido a de trabajo de software (tratados ante-
¿Cuáles son los pasos? Lospasos que riormente en este mismo libro).
que el software que reside en una com- se siguen en la ingeniería de los siste-
mas CIS son similares a los que se apli- &Cómopuedo estarseguro de que lo
putadora - e l cliente- solicita servi- can durante la ingeniería del software he hecho correctamente? Utili-
basada en componentes y OO. El mode- zando las mismas prácticas SQA que se
1 cios ylo datosde otra computadora-el lo de proceso es evolutivo, comenzan- aplican en todos los procesos de inge-
do por la obtención de los requisitos. niería del software -las revisiones téc-
j servidor-. La ingeniería del software nicas formales evalúan los modelos de
La funcionalidad se asigna a los subsis- análisis y diseño-;las revisiones espe-
1 ciientdservidor combina principioscon- temas decomponentesquesevcm aasig- cializadas consideran los temas aso-
n a despuésobien alclienteoal servidor ciados a la integración de componentes
'1 vencionales, conceptos y métodos tra- de la arquitectura CIS.El diseño se cen- y a l software intermedio (middleware),
tados anteriormente en este libro, con y las pruebas se aplican para desvelar
tra en la integraciónde los componentes errores al nivel de componentes, sub-
l existentes y en la creación de compc- sistema,cliente y servidor.
nentes nuevos. La implementacióny las
elementos de la ingeniería del softwa- pruebas luchan por ejercitarla funciona-

'! re basada en componentes y orientada
a objetos para crear sistemas CIS.
¿Quiénlo hace?Los ingenieros de soft-
l
ware llevan a cabo el análisis, diseño,
1

1 implementación y prueba de esíos sis-

' temas.

~

¿Porqné es importante?El impacto de

los sistemas C/S en los negocios, el

comercio. el gobierno y la ciencia es

I Parte de este capítulose ha adaptado a partir del material de cursos desarrollado por John Porter para el Client/Server Cum-
culum ofrecido en la Facultad de Ingeniería BE1 de la Universidad de Fairfield. Se ha obtenido permiso para su utilización.

49 1

hwttwp:w//l.iberlesroialu-ucniiovenrasritiaor.ian.ebtlogspot.com

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

Los últimos diez años han sido testigos de avances masi- datos que contienen las computadoras que componen el www.elsolucionario.net
vos en las áreas de computación. La primera es que el sistema. En lugar de tener que reproducir los datos en
hardware se ha ido abaratando cada vez más, y a su vez todas las computadoras se pueden distribuir por un
se ha ido haciendo más potente: las computadoras de pequeñonúmero de computadoras. Un sistema distribuido
sobremesa hoy en día tienen la potencia que poseían los también proporciona acceso a servicios especializados
mainframes hace algunos años. La segunda área es la de que quizás no se requieran muy frecuentemente,y que se
las comunicaciones;avances tales como los sistemas de puedan centralizaren una computadora del sistema.
comunicación vía satélitey los sistemasde teléfonos digi-
tales significa que ahora es posible conectar económica- Tolerancia a fallos. Un sistema distribuido se puede
mente y eficientementecon otros sistemas informáticos diseñar de forma que tolere los fallos tanto del hardware
separados físicamente. Esto ha llevado al conceptode un como del software. Por ejemplo, se pueden utilizar varias
sistema de computación distribuido.Dicho sistema con- computadoras que lleven a cabo la misma tarea en un
siste en un número de computadoras que están conecta- sistema distribuido. Si una de las computadoras fun-
das y que llevan a cabo diferentes funciones. Existen cionaba mal, entonces una de sus hermanas puede
muchas razones por las que tales sistemas se han hecho hacerse cargo de su trabajo. Una base de datos de una
populares: computadora se puede reproducir en otras computado-
ras de forma que si la computadora original tiene un mal
Rendimiento. El rendimiento de muchos tipos de funcionamiento, los usuarios que solicitan la base de
sistemas distribuidos se puede incrementar añadiendo datos son capaces de acceder a las bases de datos repro-
simplemente más computadoras. Normalmente esta es ducidas.
una opción más sencilla y más barata que mejorar un
procesador en un mainframe. Los sistemas típicos en
donde se puede lograr este incrementoen el rendimiento
son aquellos en donde las computadoras distribuidas
llevan a cabo mucho proceso, y en donde la relación tra-
bajo de comunicaciones y proceso es bajo.

Compartición de recursos. Un sistema distribuido
permite a sus usuarios acceder a grandes cantidades de

S

28.2.1. Clientes y servidores poca potencia para comunicarse con el central. Los dos
problemas más serios son la dificultad de mejorar y de
El propósito de esta sección es introducir tanto la idea copiar con interfaces IGU modernas. A medida que las
de cliente como la de servidor. Estos son los bloques aplicacionesvan siendomás grandes, la carga de una main-
básicos de construcción de un sistema distribuido y, de frame común llega al punto en que también necesita mejo-
esta manera, cuando se describa el diseño y el desarro- rar y normalmentecon hardware de procesamientonuevo,
llo de dichos sistemas, será necesario tener conocimiento memoria o almacenamientode archivos. Mejorar dichas
de sus funciones y de su capacidad. computadoras es más fácil que antes; sin embargo, pue-
de resultar un proceso moderadamente difícil y caro -es
Un servidor es una computadora que lleva a cabo ciertamente más caro y más difícil que añadir un servidor
un servicio que normalmente requiere mucha poten- nuevo basado en PC a un conjuntode computadorascon-
cia de procesamiento. Un cliente es una computadora figuradas como clientes y servidores-. El segundo pro-
que solicita los servicios que proporciona uno o más blema es hacerse con interfaces IGU modernas. Para
servidores y que también lleva a cabo algún tipo de ordenar a una computadoraque visualice inclusouna pan-
procesamiento por sí mismo. Esta forma de organiza- talla relativamente primitiva relacionada, digamos, con
ción de computadoras es totalmente diferente a los dos unos cuantos botones y una barra de desplazamientode
modelos que dominaron los años ochenta y principios la misma, conlleva tanto tráfico en las líneas de comuni-
de los noventa. cación que un sistema podría colapsarse fácilmente con
los datos que se utilizan para configurar y manterer una
El primer modelo se conoce como procesamientocen- serie de interfaces basadas en IGUs.
tral (host).En este modelo de organización todo el pro-
cesamiento que se necesitaba para una organización se El segundo modelo de computación es en donde hay
llevaba a cabo por una computadora grande -normal- un grupo de computadoras actuando como servidores,
mente una mainframe- mientras que los usuarios
emplean sencillasterminales informáticaso PCs de muy

492

www.elsolucionario.net
.

CAPÍTULO 28 INGENIERfA DEL SOFTWARE DEL COMERCIO ELECTRÓNICO CLIENTEiSERVIDOR

pero poseen poco procesamientoque llevar a cabo. Nor- bre de cuenta, nombre del titular de la cuenta, saldo www.elsolucionario.net
malmente estos terminales poco inteligentes actuarían actual de la cuenta y límite de descubierto de la cuenta.
como servidores de archivos o servidores de impresión Una de las característicasde las bases de datos que inva-
para un número de PCs potentes o minicomputadoras lidan la utilización de los servidores de archivos es que
que llevarían a cabo el procesamiento y estarían conec- los archivos que se crean son enormes y ralentizan el
tados a una red de área local. Las computadoras clien- tráfico si se transfirieran en bloque al cliente. Afortu-
te solicitarían servicios a gran escala, como es obtener nadamente, para la gran mayoría de aplicaciones no se
un archivo, llevando a cabo entonces el procesamiento requiere dicha transferencia; por ejemplo en una apli-
de dicho archivo. De nuevo, esto conduce a problemas cación bancaria las consultas típicas que se realizarían
con el tráfico en donde, por ejemplo, la transmisión de en una base de datos bancaria serían las siguientes:
archivos grandes a un número de clientes que requie-
ren simultáneamente estos archivos hace que el tiempo Encontrar las cuentas de los clientes que tienen un
de respuesta de la red vaya tan lento como una tortuga. descubierto mayor de 2.000 pts.
Encontrar el saldo de todas las cuentas del titular
¿Qué es la informática John Smith.
ckente/servidor?
Encontrar todas las órdenes regulares del cliente Jean
La computacióncliente/servidores un intento de equi- Smith.
librar el proceso de una red hasta que se comparta la
potencia de procesamiento entre computadoras que lle- Encontrar el total de las transacciones que se reali-
van a cabo servicios especializados tales como acceder zaron ayer en la sucursal de Manchester Picadilly.
a bases de datos (servidores),y aquellosque llevan a cabo
tareas tales como la visualización IGU que es más ade- Actualmente una base de datos bancaria típica ten-
cuado para el punto final dentro de la red. Por ejemplo, drá millones de registros, sin embargo, las consultas
permite que las computadoras se ajusten a tareas espe- anteriores conllevarían transferir datos a un cliente que
cializadas tales como el procesamientode bases de datos sería solamente una fracción muy pequeña del tamaño.
en donde se utilizan hardware y software de propósito
especial para proporcionar un procesamiento rápido de En un entorno de bases de datos clientehervidor los
la base de datos comparado con el hardware que se clientes envían las consultas a la base de datos, nor-
encuentra en las mainframes que tienen que enfrentarse malmente utilizando alguna IGU. Estas consultas se
con una gran gama de aplicaciones. envían al servidor en un lenguaje llamado SQL (Len-
guaje de Consultas Estructurado). El servidor de bases
28.2.2. Categorías de servidores de datos lee el código SQL, lo interpreta y, a continua-
ción, lo visualiza en algún objeto HCI tal como una caja
Ya se ha desarrollado una gran variedad de servidores. de texto. El punto clave aquí es que el servidor de bases
La siguiente lista ampliada se ha extraído de [ORF99]: de datos lleva a cabo todo el procesamiento, donde el
cliente lleva a cabo los procesos de extraer una consul-
Servidores de archivos.Un servidor de archivos pro- ta de algún objeto de entrada, tal como un campo de tex-
porciona archivos para clientes. Estos servidores se utili- to, enviar la consulta y visualizar la respuesta del
zan todavía en algunas aplicaciones donde los clientes servidor de la base de datos en algún objeto de salida,
requieren un procesamiento complicado fuera del rango tal como un cuadro de desplazamiento.
normal de procesamientoque se puede encontraren bases
de datos comerciales. Por ejemplo, una aplicación que Servidores de software de grupo. Software de
requiera el almacenamiento y acceso a dibujos técnicos, grupo es el término que se utiliza para describir el soft-
digamos que para una empresa de fabricación,utilizaría ware que organiza el trabajo de un grupo de trabajado-
un servidor de archivos para almacenar y proporcionar res. Un sistema de software de grupo normalmente
losdibujos a los clientes.Tales clientes,por ejemplo, serían ofrece las siguientes funciones:
utilizados por ingenieros quienes llevarían a cabo opera-
ciones con dibujos, operaciones que serían demasiado Gestionar la agenda de los individuos de un equipo
caras de soportar, utilizando una computadora central de trabajo.
potente. Si los archivos solicitados no fueran demasiado
grandes y no estuvieran compartidos por un número tan Gestionar las reuniones para un equipo, por ejem-
grande de usuarios, un servidorde archivos sería una forma plo, asegurar que todos los miembros de un equipo
excelente de almacenar y procesar archivos. que tienen que asistir a una reunión estén libres
cuando se vaya a celebrar.
Servidores de bases de datos. Los servidores de
bases de datos son computadoras que almacenan gran- Gestionar el flujo de trabajo, donde las tareas se dis-
des colecciones de datos estructurados. Por ejemplo, un tribuyen a los miembros del equipo y el sistema de
banco utilizaría un servidorde bases de datos para alma- software de grupo proporciona información sobre la
cenar registros de clientes que contienen datos del nom- finalización de la tarea y envía un recordatorioal per-
sonal que lleva a cabo las tareas.

Gestionar el correo electrónico, por ejemplo, organi-
zar el envío de un correo específico a los miembros
de un equipo una vez terminada una tarea específica.

493

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

Un servidor de software de grupo guarda los datos informar a las computadoras cliente que ya ha finali-
que dan soporte a estas tareas, por ejemplo, almacena zado una petición de impresión en particular.
las listas de correos electrónicosy permite que los usua-
rios del sistema de software de grupo se comuniquen Servidores de aplicaciones. Un servidor de aplica-
con él, notificándoles, por ejemplo, que se terminado ciones se dedica a una aplicación única. Tales servidores
una tarea o proporcionándoles una fecha de reunión en suelen escribirse utilizando un lenguaje tal como Java o
la que ciertos empleados puedan acudir. C++. Un ejemplo típico del servidor que se utiliza en el
dibujo de un fabricante de aviones que gestionaba las ver-
¿Qué es un servidor Web? siones diferentes de dibujos producidos por el personal
técnico iría dirigido a algún proceso de fabricación.

Servidores Web. Los documentos Web se almace- 28.2.3. Software intermedio (middleware) www.elsolucionario.net
nan como páginas en una computadora conocida como
servidor Web. Cuando se utiliza un navegador (brow- Hasta el momento probablemente ya tenga la impresión
ser) para ver las páginas Web normalmente pincha sobre de que la comunicación entre cliente y servidor es direc-
ta. Desgraciadamente, esto no es verdad: normalmente
< j enlace en un documento Web existente. Esto dará existe por lo menos una capa de software entre ellos.
como resultado un mensaje que se enviará al servidor Esta capa se llama software intermedio (rniddíeware).
Web que contiene la página. Este servidor responderá Como ejemplo de software intermedio consideremos la
entonces enviando una página a su computadora, donde Figura 28.1. Ésta muestra la comunicación entre un
el navegador pueda visualizarlo. De esta manera los ser- cliente ejecutando un navegador como Internet Explo-
vidores Web actúan como una forma de servidor de rer y un servidor Web.
archivos, administrando archivos relativamente peque-
ños a usuarios, quienes entonces utilizan un navegador El navegador El software Servidor Yz=
para examinar estas páginas. Para comunicarse con un solicita intermedio Web
navegador Web, un cliente que utiliza un navegador está determina
haciendo uso a su vez de un protocolo conocido como uuna página Web dónde está
HTTP. Navegador la página

Servidores de correo. Un servidor de correo ges- La página Web -y la solicita
tiona el envío y recepción de correo de un grupo de usua- es devuelta
rios. Para este servicio normalmente se utiliza un PC de al navegador al servidor
rango medio. Existen varios protocolos para el correo
electrónico. Un servidor de correo estará especializado -
en utilizar solo uno de ellos. La página
es enviada
Servidores de objetos. Uno de los desarrollos más al software
excitantes en la informática distribuida durante los últi- intermedio
mos cinco años ha sido el avance realizado, tanto por por el servidc
parte de los desarrolladores, como por parte de los inves-
tigadores, para proporcionar objetos distribuidos. Estos FIGURA 28.1. Software intermedio y servidor Web.
son objetos que se pueden almacenar en una computa-
dora, normalmente un servidor, con clientes capaces de Aquí el software intermedio que se encuentra entre
activar la funcionalidad del objeto enviando mensajes el servidor Web y el cliente que ejecuta el navegador
al objeto, los cuales se corresponden con métodos defi- Web intercepta las peticiones que proceden del nave-
nidos por la clase de objeto. Esta tecnología liberará gador. Si se hace una petición para una página Web
finalmente a los programadores de la programación de entonces determina la localización del documento
bajo nivel basada en protocolos requerida para acceder Web y envía una petición para esa página. El servidor
a otras computadoras de una red. En efecto, esto per- responde a la petición y devuelve la página al software
mite que el programador trate a los objetos a 'distancia intermedio, quien la dirige al navegador que la visuali-
como si estuvieran en su computadora local. Un servi- zará en la pantalla del monitor que utiliza el cliente.
dor que contiene objetos que pueden accederse a dis- Existen dos categorías de software intermedio: el soft-
tancia se conoce como servidor de objetos. ware intermedio general y el software intermedio de
servicios. El primero es el que está asociado a los ser-
Servidores de impresión. Los servidores de impre- vicios generales que requieren todos los clientes y ser-
sión dan servicio a las solicitudes de un cliente remoto. vidores. El software típico que se utiliza como tal es:
Estos servidorestienden a basarse en PCs bastante bara-
tos, y llevan a cabo las funciones limitadas de poner en El software para llevar a cabo comunicaciones utili-
cola de espera las peticiones de impresión, ordenar a la zando el protocolo TCPDP y otros protocolos de red.
impresora que lleve a cabo el proceso de impresión e El software del sistema operativo que, por ejemplo,
mantiene un almacenamiento distribuido de archi-
vos. Este es una colección de archivos que se espar-

494

www.elsolucionario.net
.

CAPíTULO 28 INGENIERfA DEL SOFTWARE DEL C O M E R C I O ELECTRÓNICO CLIENTEiSERVIDOR

cen por un sistema distribuido. El propósito de esta Un software intermedio asociado a productos de
parte del sistema operativo es asegurar que los usua- seguridad específicos. Un buen ejemplo es el soft-
rios pueden acceder a estos archivos, de forma que ware intermedio asociado a lo que se conoce como
no necesiten conocer la localización de los archivos. conexiones (sockets)seguras. Estas son conexiones
que se pueden utilizar para enviar datos seguros en
".c%VE una red de tal forma que hace imposible que intru-
sos escuchen a escondidas los datos. Este tecnología
El software intermedio es el ceniro de un sistema se describe en la Sección 28.8.

cliente/servidor. 28.2.4. Un ejemplo de software intermedio

El software de autentificación, el cual comprueba El software intermedio orientado a mensajes es el soft-
que un usuario que desee utilizar un sistema distri- ware intermedioque administrael flujo de mensajes hacia
buido pueda en efecto hacerlo. y desde un cliente. Esta sección estudia detalladamente
El software intermedioorientado a mensajes que ges- este software con el fin de proporcionar un ejemplo de
tiona el envío de mensajes desde clientes'a servido- un tipo específicode software intermedio. Para referirse
res y viceversa. al software intermedio orientado a mensajes a menudo
se utiliza la sigla MOM. Es el que gestiona de forma efi-
Clientes Clientes caz las colas que contienen mensajes que proceden y que www.elsolucionario.net
Cola de se envían desde servidores. La Figura 28.2 muestra un
Instalaciones número de configuraciones.La Figura 28.2 (a) muestra
un número de clientes que acceden a dos colas, una cola
Cola de íb) de entrada a la que envían los mensajes y una cola de sali-
salida da desde la que toman los mensajes y un único servidor
que lee y escribe los mensajes. Un mensaje de entrada
FIGURA 28.2. Configuraciones Mom. típico podría ser el que ordena al servidor que encuentre
algunos datos en una base de datos y un mensaje de sali-
El software intermedio de servicios es el software da podría ser los datos que se han extraído de la base de
asociado a un servicio en particular. Entre los ejemplos datos. La Figura 28.2 (b) muestra múltiples clientes y un
típicos de este tipo de software se incluyen: número de instanciacionesdel programa servidor que tra-
bajan concurrentementeen las mismas colas.
Un software que permite a bases de datos diferentes
Hay que establecer una serie de puntualizaciones a
conectarse a una red clienteiservidor.Probablemente cerca de un software MOM:
el mejor ejemplo de este tipo de software sea la
ODBC (Conectividad abierta de bases de datos) No se necesita establecer una conexión especializada
(Open Database Connectivity)) producida por Micro- mientras que el cliente y el servidor interactúan.
soft. Esta permite que existan felizmente en una red El modelo de interacción entre clientes y servidores
la vasta mayoría de sistemas de gestión de bases de es, en efecto, muy simple: los clientes y servidores
datos. interactúan mediante colas. Todo lo que necesita
Un software específico de objetos distribuidos tal hacer el programador del cliente y del servidor es
enviar un mensaje a la cola. El softwareMOM a nivel
como el que está asociado a CORBA. CORBA es de programador es muy simple.
una tecnología de objetos distribuida que permite a Utilizando el software MOM la comunicación es
objetos escritos en una gran variedad de lenguajes asíncrona, hasta el punto en que la mitad de la pareja
que coexistan felizmente en una red de tal forma que clientehervidor puede que no esté comunicándose
cualquier objeto pueda enviar mensajes a otro objeto. con la otra parte. Por ejemplo, el cliente puede que
El software intermedio de CORBA tiene que ver con no esté ejecutándose: puede detenerse para su man-
funciones tales como configurar objetos distribuidos, tenimiento y que el servidor siga mandando mensa-
comunicación y seguridad entre objetos. jes a colas MOM. Puede que el cliente haya cerrado
con algunos mensajes a la espera de que los procese
* Un software intermedio de Web asociado al proto- el servidor. El servidor puede colocar estos mensa-
jes en la cola de manera que la próxima vez que el
colo HTTP. cliente se conecte pueda leer los mensajes. Este esce-
nario es el ideal para la informática móvil.
Un software intermedio de software de grupo que
%
administra los archivos que describen a los equipos CLAVE
de trabajo y sus interacciones.
Cuando se utiliza el software MOM la comunicación es asíncrona.

495

www.elsolucionario.net

.

INGENlERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO

S

El propósito de esta sección es explorar la idea de una ¿Es relativamente estática la base de datos en lo que
arquitectura estratificada para una aplicación clienteher- se refiere a predecir un crecimiento pequeño de
vidor y se limita a describir las arquitecturas populares tamaño y estructura?
de dos y de tres capas. Una arquitecturade dos capas de ¿Es estática la base del usuario?
una aplicación clientehervidor consiste en una capa de
lógica y presentación, y otra capa de bases de datos. La ¿Existen requisitos fijos o no hay muchas posibili-
primera tiene que ver con presentar al usuario conjuntos dades de cambio durante la vida del sistema?
de objetos visuales y llevar a cabo el procesamiento que ¿Necesitará el sistema un mantenimiento mínimo?
requieren los datos producidos por el usuario y los devuel-
tos por el servidor. Por ejemplo, esta capa contendría el Aunque algunas de estas cuestiones van enlazadas
código que monitoriza las acciones de pulsar botones, el (los cambios en los requisitos dan lugar a las tareas de
envío de datos al servidor,y cualquier cálculolocal nece- mantenimiento), se trata de un cantidad bien amplia de
sario para la aplicación. Estos datos se pueden almace- preguntas que deberían de tenerse en cuenta antes de
nar en una base de datos convencional, en un archivo adoptar una arquitectura de dos capas.
simple o pueden ser incluso los datos que están en la
memoria. Esta capa reside en el servidor. CUVE www.elsolucionario.net

Normalmente las arquitecturas de dos capas se uti- Cuando una aplicación implica un procesamiento
lizan cuando se requiere mucho procesamientode datos. considerableel enfoque de dos copas cada vez
La arquitectura del servidor Web de navegador es un es más difícil de implementor.
buen ejemplo de una arquitecturade dos capas. El nave-
gador del cliente reside en la capa de lógica y presen- Cuando una aplicación implica un procesamientocon-
tación mientras que los datos del servidor Web-las
páginas Web- residen en las capa de la base de datos. siderable, entonces comienzan a surgir problemas con
Otro ejemplo de aplicación en donde se emplearía nor-
malmente una arquitectura de dos capas es una aplica- la arquitectura de dos capas, particularmente aquellas
ción simple de entrada de datos, donde las funciones
principales que ejercitan los usuarios es introducir los aplicaciones que experimentan cambios de funcionali-
datos de formas muy diversas en una base de datos
remota; por ejemplo, una aplicación de entrada de datos dad a medida que se van utilizando. También, una arqui-
de un sistema bancario, donde las cuentas de usuarios
nuevos se teclean en una base de datos central de cuen- tectura de dos capas, donde no hay muchas partes de
tas. El cliente de esta aplicación residirá en la capa lógi-
ca y de presentación mientras que la base de datos de código de procesamiento unidas a acciones tales como
cuentas residiría en la capa de base de datos.
pulsación de botones o introducción de texto en un cam-
Las dos aplicaciones descritas anteriormente mues-
tran la característica principal que distingue a las apli- po de texto, está altamente orientada a sucesos específi-
caciones de capas de otras aplicaciones que emplean
más capas por el hecho de que la cantidad de procesa- cos y no a los datos subyacentes de una aplicación, y de
miento necesario es muy pequeña. Por ejemplo, en la
aplicación de validación de datos, el Único procesa- aquí que la reutilización sea algo complicado.
miento requerido del lado del cliente sería la validación
de datos que se llevaría a cabo sin recurrir a la base de 1Capa Capa del servidor Capa de bases
datos de las cuentas. Un ejemplo sería comprobar que de la aplicación de datos
el nombre de un cliente no contiene ningún dígito. El de presentación
resto de la validación se haría en la capa de la base de ~
datos y conllevm’a comprobar la base de datos para ase-
gurar que no se añadieron registros duplicados de clien- u\l lI
tes a la base de datos. Reece [REE97] ha documentado
los criterios que se deberían utilizar cuando considera- O Objetos
mos adoptar una arquitectura cliente servidor de dos negocios
capas. Estos son los criterios: DI’Clientes
de datos
¿Utiliza la aplicación una única base de datos?
FIGURA 28.3.Una arquitectura de tres capas.
¿Se localiza el procesador de base de datos en una
La Figura 28.3 muestra una arquitectura de tres capas.
sola CPU? Se compone de una capa de presentación, una capa de
procesamiento (o capa de servidor de solicitudes) y una
capa de base de datos. La capa de presentación es la res-
ponsable de la presentación visual de la aplicación, la
capa de la base de datos contiene los datos de la apli-

496

hwttpw:/w/li.berelsrioal-uucniivoenrasirtaiori.an.beltogspot.com
.

CAPfTULO 28 INGENIERfA DEL SOFTWARE DEL COMERCIO ELECTRONICO CLIENTE/SERVIDOR

cación y la capa de procesamiento es la responsable del tra el servidor de los clientes. La localización de esta www.elsolucionario.net
procesamiento que tiene lugar en la aplicación. Por ejem- capa no le resta valor a las ventajas que proporciona una
plo, en una aplicación bancaria el código de la capa de arquitectura de tres capas:
presentación se relacionaría simplemente con la moni-
torización de sucesos y con el envío de datos a la capa En primer lugar, la arquitectura de tres capas permite
de procesamiento. Esta capa intermedia contendría los aislar a la tecnología que implementa la base de datos,
objetos que se correspondencon las entidades de la apli- de forma que sea fácil cambiar esta tecnología. Por
cación; por ejemplo,en una aplicación bancaria los obje- ejemplo, una aplicación podría utilizar en primer
tos típicos serían los bancos, el cliente, las cuentas y las lugar la tecnología relaciona1para la capa de base de
transacciones. datos; si una base de datos basada en objetos fun-
ciona tan eficientemente como la tecnología rela-
La capa final sería la capa de la base de datos. Ésta cional que se pudiera entonces integrar fácilmente,
estaría compuesta de los archivos que contienen los todo lo que se necesitaría cambiar serían los méto-
datos de la aplicación. La capa intermedia es la que dos para comunicarse con la base de datos.
conlleva capacidad de mantenimiento y de reutiliza-
ción. Contendrá objetos definidos por clases reutili- Utiliza mucho código lejos del cliente. Los clien-
zables que se pueden utilizar una y otra vez en otras tes que contienen mucho código se conocen como
aplicaciones.Estos objetos se suelen llamar objetos de clientes pesados (gruesos). En un entorno en donde
negocios y son los que contienen la gama normal de se suele necesitar algún cambio, estos clientes
constructores, métodos para establecer y obtener varia- pesados pueden convertirse en una pesadilla de
bles, métodos que llevan a cabo cálculos y métodos, mantenimiento. Cada vez que se requiere un cam-
normalmente privados, en comunicación con la capa bio la organización tiene que asegurarse de que se
de la base de datos. La capa de presentación enviará ha descargado el código correcto a cada cliente.
mensajes a los objetos de esta capa intermedia, la cual Con una capa intermedia una gran parte del código
o bien responderá entonces directamente o mantendrá de una aplicación clientehervidor reside en un lugar
un diálogo con la capa de la base de datos, la cual pro- (o en un número reducido pequeño de lugares si se
porcionará los datos que se mandarían como respues- utilizan servidores de copias de seguridad) y los
ta a la capa de presentación. cambios de mantenimiento ocurren de forma cen-
tralizada.
El lugar donde va a residir la capa intermedia depen-
de de la decisión sobre el diseño. Podría residir en el La idea de las tres capas encaja con las prácticas
servidor, que contiene la capa de base de datos; por otro orientadas a objetos de hoy en día: todo el procesa-
lado, podría residir en un servidor separado. La deci- miento tiene lugar por medio de los mensajes que se
sión sobre dónde colocar esta capa dependerá de las envían a los objetos y no mediante trozos de código
decisiones sobre diseño que se apliquen, dependiendo asociados a cada objeto en la capa de presentación
de factores tales como la cantidad de carga que tiene un que se está ejecutando.
servidor en particular y la distancia a la que se encuen-
%
Tipo Código Suma de CLAVE
(8 bits) verificación
(8bits) Existe una diferenciaenire el software intermedio
(middleware) y la capa del servidor de la aplicación.
Parámetros
Lo que merece la pena destacar, llegado este pun-
Datos to, es que existe una diferencia entre la capa inter-
media del servidor de la aplicación y el software
FIGURA 28.4. El formato del protocolo ICMP. intermedio (middleware).Mientras que el primero des-
cribe el software de la aplicación que media entre el
cliente y el servidor, el segundo se reserva para el soft-
ware de sistemas.

?,

TOCQLOS

En este capítulo hasta ahora se ha utilizado el térmi- 28.4.1. El concepto
no protocoio sin proporcionar realmente mucho deta-
lle. El propósito de esta sección es proporcionar este Con objeto de describir 10 que es exactamente un pro-
detalle. tocolo, utilizaré un pequeño ejemplo: el de un cliente
que proporciona servicios bancarios para casa, permi-

497

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO .

tiendo, por ejemplo, que un cliente consulte una cuen- 28.4.2. IP e ICMP www.elsolucionario.net
ta cuyos datos residen en el servidor. Supongamos que
el cliente se comunica con el servidor que utiliza una IP, el protocolo que ejecuta Internet es un protocolo muy
serie de mensajes que distinguen las funciones requeri- complicado, y una descripción completa estaría fuera
das por el cliente, y que también se comunica con otros del ámbito de este libro, ya que la descripción de este
datos requeridos por el servidor. protocolo necesitaría un libro entero que le hiciera jus-
ticia. Debido a esto me centraré en una parte pequeña
Por ejemplo, el cliente puede ejercer la función de del protocolo, aunque importante,conocida como ICMP
consultar un saldo de cuenta tecleando un número de (InternetControl Message Protocol). Protocolo de men-
cuenta en un cuadro de texto y pulsando el botón del sajes de control de Internet que se utiliza para monito-
ratón el cual enviará el mensaje al servidor. Este men- rizar los errores y problemas de la red que utiliza IP. En
saje podría ser de la forma la Figura 28.4 se muestra el formato de los mensajes
que forman parte del protocolo.
CS*<NÚmero d e c u e n t a ,
El campo Tipo especifica el tipo de error que ha ocu-
donde CS (Consulta del Saldo) especifica que el usua- rrido. Por ejemplo, este campo indicaría que el desti-
rio ha consultado una cuenta para obtener el saldo con no de un mensaje era inalcanzable. El campo Código
el número de cuenta que identifica la cuenta. El servi- contiene la información secundaria que se utiliza para
dor entonces recibirá este mensaje y devolverá el sal- proporcionar una interpretación más detallada del cam-
do; el mensaje que el servidor envía podría tener el po Tipo. El campo de Suma de verificacicín es utiliza-
formato do por el software para comprobar que la transmisión
del mensaje ICMP se ha llevado a cabo correctamen-
S*<Can tid a d d e l S a l d o , te. Los dos campos restantes contienen los datos que
permitirán al software de comprobación localizar el
El cliente interpretara este mensaje y visualizara el problema originado.
saldo en algún elemento de salida.
ICPM es utilizado por IP para llevar a cabo el pro-
Si el cliente quisiera consultar los números de cuen- cesamiento básico de errores y también para incremen-
tas de todas las cuentas con las que él o ella está aso- tar la eficacia de la red. Por ejemplo, se podría utilizar
ciado, el mensaje entonces podría ser de la forma para llevar a cabo el cambio de dirección del mensaje
si una computadora, que se encontrara en el camino ini-
CC * cial del mensaje, descubriera una ruta mejor.

donde CC (Consulta de Cuenta) solicita las cuentas, y 28.4.3.POP3
en cuya función ya no se requieren más datos. El ser-
vidor podría responder con un mensaje que comenza- POP3 ( Post Office Protocol version 3) (Protocolo de
ra con (Información de Cuenta) y que estuviera Oficina de Correos versión 3 ) se utiliza para el envío y
formado por números terminados con asteriscos. Por la recepción de correo electrónico. Es un protocolo sen-
ejemplo, cillo y es ampliamente utilizado. En esta sección reali-
zaré un estudio de algunas de sus características.
IC"2238997*88765"882234

los mensajes que he descrito forman un protocolo sen-
cillo que comunica funcionalidady datos entre dos enti-
dades (un cliente y un servidor) en la red.

¿Qué es un protocolo? POP3 es un protocolo robusto y muy sencillo.
Utikelo todo lo posible más que otros protocolos

Un punto importante acerca de los protocolos es que Existen varios protocolos de correo, entre los que se
siempre que se utiliza un mecanismo para la comuni- incluyen SMTP, IMAP y diferentes versiones de POP.
cación en una red existe un protocolo. Por ejemplo, los Probablemente el más complicado de estos sea IMAP,
objetos distribuidos son objetos que se encuentran en el cual incluye funciones secundarias y un conjunto de
localizaciones remotas en una red, y es mediante la uti- mensajes más rico que POP.
lización de un protocolo la manera en que se envían los
mensajes, aunque la programación de estos objetos esté El propósito de POP es posibilitar a los usuarios
a un nivel superior por debajo de la programación y acceder al correo remoto y consta de una serie de
oculta al programador. comandos que permiten a los programas de usuario
interactuar con un servidor de correo POP. El están-
El protocolo que he descrito se asemeja a un jugue- dar POP3 describe un grupo de mensajes posibles que
te y también a un protocolo de aplicaciones. Merece pueden enviarse al servidor de correo POP3 y el for-
la pena entrar en el estudio de algunos protocolos más mato de los mensajes es devuelto por el servidor. La
reales que estén asociados a los servicios de nivel de Tabla 28.1 muestra un subconjunto pequeño del pro-
sistema. tocolo POP3.

498

www.elsolucionario.net
.

CAPfTULO 28 INGENIERfA DEL SOFTWARE DEL C O M E R C I O E L E C T R O N I C O CLIENTEiSERVlDOR

Mensaje Signijicado protocolo HTTP y serán interpretados por el servidor
USER que llevará a cabo operaciones tales como devolver una
Informa al servidor sobre un usua- página Web o procesar algún formulario que esté inser-
PASS rio en particular que está intentan- tado dentro de una página.
STAT do enviar un correo
DELE Proporciona una contraseiia para A continuación, se muestra un ejemplo que ilustra lo
RETR un usuario en particular descrito anteriormente
Pregunta al servidor cuántos men-
sajes hay esperandopara ser leídos GET/index.h t m l HTTP/ 1.1
Borra un mensaje
Recupera un mensaje Este es el mensaje que envía un navegador cuando
quiere visualizar una página en particular. Este mensa-
TABLA 28.1. Un subconjunto del POP3. je se puede haber generado de diferentes maneras. Por
ejemplo, el usuario puede haber pinchado con el ratón
28.4.4. El protocolo HTTP en un determinado enlace en un documento Web que www.elsolucionario.net
señala a la página solicitada. La línea anterior contiene
Este es uno de los protocolos más importantes que se la palabra reservada GET, la cual especificaba que se
utilizan dentro de Internet; es el protocolo que rige iba a devolver un archivo, y especificaba también el
la comunicación entre un cliente que utiliza un nave- nombre del archivo que sigue al carácter '/' (index.htm1)
gador Web tal como Internet Explorer y un servidor y la versión del protocolo que utiliza el navegador que
Web. va a enviar el mensaje.

La función principal de un servidor Web es poner a El servidor también utilizará el protocolo HITP para
disposición de clientes páginas Web. Estos clientes uti- enviar mensajes de vuelta al cliente. Por ejemplo, el
lizarán un navegador que les conectará al puerto 80 en mensaje
el servidor Web; este es el puerto estándar que se utili-
za para tales servidores. El navegador que está utili- HTTP/1.1 200 OK
zando el cliente .enviará mensajes definidos por el
significa que el servidor, que está utilizando HTTP ver-
sión 1.1, ha procesado con éxito la petición iniciada por
el cliente. El código 200 en este caso es un ejemplo del
código de estado que indica éxito.

28.5.1. ¿Qué es el comercio electrónico? ese artículo. Normalmente la compañía de subastas
especificaría un período de oferta para así darla por
Para ilustrar la apariencia de un sistema distribuido exa- finalizada.
minaremos un ejemplo tomado de un área de aplicación
conocida como comercio electrónico. En un sentido Sistemas que proporcionan algún servicio basado en
amplio, el término «comercio electrónico» (Ecommer- red para usuarios. Probablemente los más conocidos
ce) se puede definir como la aplicación de la tecnología son los que ofrecen cuentas de correo gratis, donde
de sistemasdistribuidos que apoya las operacionescomer- los ingresos de dicha empresa probablemente pro-
ciales.A continuación, se detallan algunos de dichos sis- cedan de la publicidad en las páginas Web que se uti-
temas: lizan para ese sitio Web. Estas son compañías que
mediante un honorario monitorizan su sitio Web y le
Sistemas para vender algunos artículos o servicios envían un mensaje, normalmente por correo elec-
utilizando Internet, donde los clientes interactúan trónico o mediante un buscador si han detectado un
con el sistema que utiliza navegadores. Entre los problema, como el mal funcionamiento del servidor
sistemas típicos de comercio electrónico de esta que se utiliza para el sitio Web.
categoría se incluyen los que venden libros, ropa
y CDs. Sistemas que proporcionan servicios de asesora-
miento. Los sistemas típicos de este tipo son los que
¿Qué es el comercio procesan una descripción de artículos, como un CD,
para los que establecerán el mejor precio, después
electrónico? de haber explorado un número de sistemas de venta
en la red.
Sistemas para simular alguna actividad comercial en
tiempo real utilizando tecnología de red. Un buen Sistemas internos que el cliente no ve, pero que dan
ejemplo de este tipo de sistemas es una subasta en la soporte a más actividades comerciales convenciona-
red.Un sistema de subasta típico solicitaría artícu- les. Por ejemplo, un sistema que apoya el suministro
los a los usuarios de Internet, ubicaría los datos en de mercancías a un comercianteminorista de la calle.
una página Web y entonces comenzaría la oferta para

499

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE P R A C T I C O .

Sistemas de publicidad. Muchos de los ingresos del realiza el pedido de un libro, a continuación se le www.elsolucionario.net
comercio electrónico proceden de la publicidad en solicitan los datos de la tarjeta de crédito. Algunos
línea. Muchas páginas Web asociadas a las aplica- sistemas de pedidos suelen quedarse con los datos
ciones de comercio electrónico contendrán peque- de las tarjetas de forma permanente de manera que
ños espacios publicitarios conocidos como banners. no se requiere que el cliente proporcione los datos
Estos anuncios se pueden «pinchar», conduciendo cada vez que haga un pedido.
así al usuario del navegador a un sitio Web el cual
normalmente vende algún producto o servicio. Los La provisión de servicios de seguimiento. Estos ser-
sistemas de publicidad son una forma particular de vicios posibilitarán al cliente seguir con el proceso
sistemas de comercio electrónico que llevan a cabo de una compra utilizando su navegador. Las páginas
funciones tales como vender un banner (espacio Web personalizadas para el cliente describirán el
publicitario), monitorizando el éxito de estos anun- desarrollo de un pedido: si ya se ha enviado, si está
cios y la administración del pago de los honorarios esperando porque el libro no está en stock, y cuál es
de publicidad. la fecha en la que se espera enviar el pedido.

Estas forman un conjunto típico de aplicaciones El procesamiento de revisiones. Un servicio ofrecido
que están bajo el «banner» del comercio electrónico. por los sitios de ventas de libros más sofisticados y
En la parte restante de esta sección observaremos una es el que proporciona el medio por el que los clien-
aplicación típica de comercio electrónico que admi- tes pueden escribir revisiones de los libros a com-
nistra la venta de un artículo. Esto es lo que piensa prar. Estas revisiones se pueden comunicar al
cualquier persona de una aplicación de comercio vendedor o bien por correo electrónico o por una
electrónico, aunque espero que después de leer este página Web especializada.
preámbulo este sistema se considerará sólo como un
tipo de sistema. La provisión de un servicio de conferencia. Un ser-
vicio de conferencia capacita a un grupo de clientes
si& para interactuar entre ellos enviando mensajes a una
conferencia, entendiendo por conferencia algo dedi-
CLAVE cado a un tema específico tal como, por ejemplo, la
última novela de Robert Goddard o el estado de la
El comercio electrónico no es solamente ficción criminal. Tales servicios no proporcionan
ingresos directamente a un vendedor de libros en red.
un comercio minorista de red. Sin embargo, sí pueden proporcionar información
Útil sobre las tendencias en las compras de libros de
28.5.2. Un sistema típico de comercio electrónico las que el personal de ventas de una librería pueden
sacar provecho.
Con objeto de entender la naturaleza de los sistemas
clientehervidor, merece la pena examinar un ejemplo La provisión de noticias o boletines para clientes.
de una de las áreas del comercio electrónico. Es un sis- Un servicio popular que se encuentra en muchos
tema para administrar las ventas de una gran librería sitios de comercio electrónico dedicados a la venta
que tenga una funcionalidad similar a la que exhiben de un producto es el de proporcionar información
grandes librerías como Blackwells o la filial británica por medio del correo electrónico.Para el sitio de ven-
de Amazon. Las funciones típicas que un sistema como tas de libros que se está describiendo en esta sección
éste proporciona son las siguientes: se incluirían mensajes tal como textos de revisiones,
ofertas especiales o mensajes relacionados con un
La provisión de servicios de Catálogo. Cada libro pedido específico, tal como el hecho de haberse des-
que venda una compañía estará en catálogo y la pachado.
página Web proporcionará la descripción de ese libro.
La información típica que se proporciona sobre un Control y administración del stock. Este es un con-
libro es el nombre, autor, editorial y precio. junto de funciones que están ocultas para el usuario
del sistema de ventas de libros pero que son vitales
La provisión de servicios de búsqueda. El usuario de para el sistema. Estas funciones se asocian a las acti-
dicho sistema necesitará navegar por el catálogo para vidades mundanas, tales como hacer pedidos de
decidir si va a comprar un libro. Esta navegación se libros, hacer el seguimiento de los stocks y reorde-
podría realizar de muchas maneras diferentes: desde nar y proporcionar información de ventas al perso-
navegar secuencialmente desde el primer libro que nal responsable de los pedidos.
aparece, hasta navegar utilizando consultas de bús-
queda tal como el título de un libro o su ISBN. Informes financieros. Estos son de nuevo un con-
junto de funciones que están ocultas ante los ojos del
La provisión de servicios de pedidos. Cuando un usuario del sistema de ventas de libros pero que son
cliente de un sitio de comercio electrónico quiere vitales. Proporcionan la información para la gestión
comprar un libro, el sistema le proporcionará algún financiera de la compañía que ejecuta el sistema y
servicio para poderlo hacer y, normalmente, mediante proporciona la información de datos tales como las
tarjetas de crédito. Generalmente cuando el cliente

500

www.elsolucionario.net
.

CAPITULO 28 INGENIERfA DEL SOFTWARE DEL COMERCIO E L E C T R O N I C O CLIENTEiSERVlDOR

ventas día a día, anuales y datos más complejos tales Cliente Servidores
como la efectividad de ciertas estrategias de ventas correo de seguridad
respecto a las ventas de los libros que eran el tema
de estas estrategias. Servidor Servidores
de correo
Se puede decir que estas son un conjunto típico de O 4\debases
funciones mostradas por el comercio electrónico dedi-
cado a vender productos; en nuestro caso el produc- de datos
to son libros, aunque no hay ninguna razón para no -cOl
haber elegido, por ejemplo, ropa, CDs, antigüedades, de conferencia
etc., aunque las funciones del sistema variarían un
poco; por ejemplo, en un sitio especializado en ven- / i/ www.elsolucionario.net
der ropa no habría razón por la que implementar las
funciones que están conectadas con las revisiones de Servidor de monitorización
productos.
FIGURA 28.5. La arquitectura.
Antes de estudiar la arquitectura de dicho sistema
merece la pena hacer hincapié en el desarrollo de tales Un servidor de correo. Este servidor mantendrá lis-
sistemas. Durante el nivel de análisis hay poca diferen- tas de correos de clientes que, por ejemplo, han indi-
cia entre el sistema de comercio electrónico y un siste- cado que desean estar puntualmente informados de
ma más convencional, tal como el que depende de los las ofertas especiales y los libros nuevos que se están
operadores telefónicos para anotar los pedidos y donde publicando. Este servidor se comunicará con el ser-
el catálogo se imprime y se envía a los clientes de la vidor Web principal, ya que los clientes proporcio-
forma convencional. Ciertamente existirán funciones narán sus direcciones de correo y los servicios que
que no estarán dentro de tales sistemas convencionales, quieren, interactuando con las páginas Web que visi-
como por ejemplo los que tienen que ver con las revi- tan. Esto ilustra un tema importante acerca de los
siones; sin embargo, la mayor parte de las funciones son clientes y los servidores: no hay una designación
muy similares, y es posible que se lleven a cabo de for- fuerte o rápida de lo que es un cliente o un servidor
ma diferente; por ejemplo, el proceso de obtener los de un sistema de comercio electrónico: esto depende
datos de las tarjetas de crédito sería llevado a cabo por realmente de la relación entre las entidades implica-
un operador y no por una página Web. das. Por ejemplo, el servidorWeb actúa como un ser-
vidor para los clientes que ejecutan un navegador,
si& pero actúa como un cliente con el servidor de correo
al cual le proporciona direcciones de correo para sus
CLAVE listas de correo.

En el nivel de análisis hay muy poca diferencia entre los Un servidor de conferencia. Este es un servidor que
sistemas de comercio electrónico y los convencionales. administra conferencias. Lee en las contribuciones
a la conferencia, visualiza estas contribuciones en
En la Figura 28.5 se muestra la arquitectura técnica una ventana asociada a una conferencia y borra cual-
de un sistema de libros típico. Los componentes de este quier entidad que no esté actualizada.
sistema son:
Servidores de bases de datos. Son servidores que
Clientes Web. Estos ejecutarán un navegador que administran las bases de datos asociadas a la apli-
interactúa con el sistema y que principalmente lleva cación de comercio. Aquí se incluye la base de datos
a cabo funciones de navegar sobre catálogos y hacer principal de libros, la cual contiene datos de cada
pedidos. libro; la base de datos de pedidos que contiene datos
de los pedidos que han realizado los clientes, todos
Un servidor Web. Este servidor contendrá todas las los que no se han cumplido tanto anteriores como
páginas Web a las que el cliente irá accediendo y se actuales; la base de datos de clientes que contiene
comunicará con el resto del sistema para proporcio- datos de los clientes de los vendedores de libros; y
nar información tal como la disponibilidad de un una base de datos que contiene datos de las ventas
libro. Normalmente existirá más de un servidor Web de libros concretos; esta base de datos es particu-
disponible para enfrentarse con un fallo del hard- larmente útil para muchos vendedores de libros en
ware. Si el servidor Web estaba funcionando y se
viene abajo, dicho suceso sería extremadamente seno
y se correspondería con las puertas de una librería
convencional cerrada a los clientes impidiendo su
entrada. Debido a las cajas registradoras, los siste-
mas de correo electrónico que tienden a ser muy crí-
ticos para un negocio tendrán hardware reproducido,
incluyendo reproducciones de servidores de Web.

501

hwttwp:w//li.berlesroial-uucniiovenrasirtiaor.ian.ebltogspot.com

INGENIERiA DEL SOFTWARE. UN ENFOQUE PRACTICO .

la red, puesto que les permite publicar las listas de dor Web frontal que se comunica con un sistema ser-
los libros más vendidos junto con las ofertas espe- vidor no cliente. Este sistema servidor no cliente es
ciales de esos libros. En muchos sistemas de comer- el que lleva existiendo ya desde hace algún tiempo
cio electrónico estas bases de datos son imple- y se utilizaba para un procesamiento más conven-
mentadas en varios servidores de bases de datos cional como es el de tomar pedidos por teléfono.
especializados que son duplicados: tales bases de Los servidores de bases de datos se mantendrán
datos son vitales para el funcionamientode una com- actualizados por medio de un software de sistemas
pañía de comercio electrónico: si el servidor de bases que detecta cuando se va a aplicar una transacción
de datos funcionaba mal y no existen servidores a una base de datos: primero aplica la transacción a
duplicados, ocurría algo muy serio, ya que no ten- la base de datos que se está utilizando en ese
drían ingresos y los vendedores en red obtendrían momento y, a continuación, la aplica a todas las
una reputación muy pobre. Un punto importante a bases de datos duplicadas.
tener en cuenta sobre esta parte del sistema es que Un servidor de monitorización. Este es el servidor
no hay razón para que una tecnología anterior, tal que se utiliza para monitorizar la ejecución del sis-
como un mainframe que ejecuta una monitorización tema. Es utilizado por un administrador del sistema
de transacciones se pueda utilizar para funciones de para comprobar el funcionamiento correcto del sis-
bases de datos; en realidad muchos de los sistemas tema y también para ajustar el sistema de manera que
de comercio electrónico se componen de un servi- se archive un rendimiento óptimo.

Existen varias tecnologías basadas en red que se utili- te de comunicar datos en un sistema distribuido que eje- www.elsolucionario.net
zan para las aplicacionesde comercio electrónico.Antes cuta el protocolo TCP/IP.
de describirlas merece la pena decir que muchas tecno-
logías antiguas todavía se utilizan para este tipo de apli- 28.6.2. Objetos distribuidos
cación; el mejor ejemplo es el uso de la tecnología de
bases de datos relacionales para proporcionar almace- ¿Qué es un objeto
nes de datos a gran escala. distribuido?

si& Un objeto distribuido es aquel que reside en una com-
putadora, normalmente un servidor, en un sistema dis-
CLAVE tribuido. Otras computadoras del sistema pueden enviar
mensajes a este objeto como si residiera en su propia
Muchas tecnologías antiguas todavía se utilizan computadora. El software del sistema se hará cargo de
para aplicaciones de comercio electrónico. varias funciones: localizar el objeto, recoger los datos
que se requieren para el mensaje y enviarlos a través
28.6.1. Conexiones (sockets) del medio de comunicación que se utiliza para el siste-
ma. Los objetos distribuidos representan un nivel más
Un socket es un tipo de conducto que se utiliza para alto de abstracción que las conexiones (sockets):a par-
conectarse a una computadora conectada a una red y te de algún código de inicialización, el programador no
basada en TCP/IP. El socket se configura de tal manera es consciente del hecho de que el objeto reside en otra
que los datos pueden ser bajados desde el cliente y computadora. Actualmente existen tres tecnologías de
devueltos al mismo. Los lenguajes de programación objetos distribuidos en pugna:
modernos, como Java, proporcionan servicios de alta
calidad por medio de los cuales un socket se puede RMI. Esta es la tecnología asociada al lenguaje de
conectar mediante «programación» a una computado- programación de Java. Es un enfoque Java puro en
ra cuya dirección de Internet sea conocida y donde los el que solo los programas escritos en ese lenguaje se
datos se puedan enviar por este conducto. La progra- pueden comunicar con un objeto RMI distribuido.
mación necesaria para esto normalmente no es más com- Es la tecnología ideal para sistemas cerrados de Java;
plicada que la programación que se requiere para escribir estos sistemas generalmente tendrán pocas conexio-
y leer datos de un archivo. Los sockets son una imple- nes o ninguna con otros sistemas.
mentación a bajo nivel de la conectividad; dentro de las
utilizaciones típicas de un socket están las aplicaciones DCOM. Esta es una tecnología desarrollada por la
de conferencia, donde una entrada a una conferencia se compañía Microsoft y permite que programas escri-
enviaría al servidor de conferencia que utiliza una con- tos en lenguajes tales como Visual Basic y Visual
figuración de sockets en el servidor. Los sockets son un J++ (la variedad de Java desarrollada por Microsoft)
mecanismo de bajo nivel, pero una forma muy eficien- se comuniquen con los objetos que están en compu-
tadoras remotas.

502

www.elsolucionario.net
.

CAPiTULO 28 INGENIERIA DEL SOFTWARE DEL COMERCIO ELECTR6NICO CLIENTE/SERVIDOR

CORBA. Esta es la tecnología de objetos distribui- el formulario, y lleva a cabo la funcionalidad asociada www.elsolucionario.net
dos más sofisticada. Fue desarrollada por un con- al formulario; por ejemplo, recuperando los datos soli-
sorcio de compañías informáticas, clientes y citados en el formulario. La programación CGI se pue-
compañías de software. La característica más impor- de llevar a cabo en varios lenguajes de programación,
tante del enfoque CORBA es que es multilenguaje, aunque el lenguaje seleccionado ha sido Perl, lenguaje
donde los programadores pueden utilizar diferentes de procesamientode cadenas, existen otros entre los que
lenguajes de programación para enviar mensajes a se incluyen, por ejemplo, Java y C++, que contienen los
objetos CORBA: las interfaces CORBA existen para servicios para el procesamiento CGI. Recientemente los
lenguajes tales como Java, FORTRAN, LISP, Ada y que desarrollan Java han proporcionado a los progra-
Smalltalk. CORBA está al principio de su desarro- madores el servicio de utilizar Java para este tipo de
llo, sin embargo, amenaza con convertirse en la tec- programación que utiliza la tecnología conocida como
nología dominante para objetos distribuidos. sewlets. Estos trozos pequeños de código Java son inser-
tados en un servidor de Web y se ejecutan cuando ocu-
La principal ventaja de los objetos distribuidos sobre rre un suceso, como enviar un formulario. Los servlets
la de los sockets es el hecho de que como abarca ente- ofrecen un alto grado de portabilidad sobre otros len-
ramente el paradigma de orientación a objetos se pue- guajes de programación.
de emplear los mismos métodos de análisis y diseño que
se utilizan para la tecnología de objetos convencional. 28.6.5. Contenido ejecutable

28.6.3. Espacios Este es el término que se aplica a la inclusión en una pági-
na Web de un programa que se ejecuta cuando la página
Esta es una tecnología que se encuentra en un nivel de es recuperada por un navegador. Este programa puede
abstracción incluso más alto que los objetos distribui- llevar a cabo un número diverso de funciones entre las
dos. Fue desarrollada por David Gelemter, un profesor que se incluyen la animación y la presentación de un for-
de la Universidad de Yale. La tecnología de espacios mulario al usuario para insertar datos. Existen varias tec-
concibe un sistema distribuido en base a un gran alma- nologías que proporcionan servicios para insertar
cén de datos persistentes donde las computadoras de un contenido ejecutable en una página Web. Aquí se inclu-
sistema distribuido puede leer o escribir. No concibe el yen applets, Active X y Javascript. Un applet es un pro-
sistema distribuido como una serie de programas que grama escrito en Java que interactúa con una página Web.
pasan mensajes a los demás utilizando un mecanismo Lo importante a señalarde esta tecnología es que es por-
como los sockets, o como una serie de objetos distri- tátil: el código Java se puede mover fácilmente desde un
buidos que se comunican utilizando métodos. Por el sistema operativo a otro, pero es potencialmente insegu-
contrario, la tecnología de espacios conlleva procesos ro. La razón de por qué los applets son inseguros es que
como escribir, leer o copiar datos a partir de un alma- se pueden utilizar como medio de transmisión de virus y
cén persistente. Un programador que utiliza esta tecno- otros mecanismos de acceso a una computadora. Cuan-
logía no se preocupa por detalles como dónde están do una página de navegador que contiene un applet es
almacenados los datos, qué proceso va a recoger los descargadapor un navegador, es lo mismo que cargar un
datos y cuándo los va a recoger. programa en la computadoracliente que ejecuta el nave-
gador. Afortunadamente los diseñadores de Java desa-
Esta tecnología se encuentra sólo al principio, aun- rrollaron el lenguaje de tal manera que es inmensamente
que las implementaciones llevan ya disponibles duran- difícil escribir applets que provoquen violaciones en la
te algún tiempo para lenguajes como C y C++; sin seguridad. Desafortunadamentela soluciónque se adop-
embargo, la implementación de la tecnología dentro de tó evita acceder a los recursos de una computadoraclien-
Java como Javaspaces debería asegurar que cada vez se te o ejecutar otro programa en la computadora. Aunque
utilizará más para las aplicaciones principales. se han hecho muchas mejoras en los applets que permi-
ten un acceso limitado, el modelo principal del uso de
28.6.4. CGI applets está restringido a este modo de ejecución.

¿Para qué se utiliza CGI? Active X es otra tecnología de contenido ejecutable
que fue desarrollada por Microsoft. De nuevo se trata
El término CGI (Common Gateway Interface) signifi- de un código de programa insertado en una página Web;
ca Interfaz común de pasarela. Es la interfaz con el ser- la diferenciaprincipal entre esta tecnología y los applets
vidor Web al cual se puede acceder mediante los es el hecho de que estos trozos de código se pueden
programas que se ejecutan en el servidor. Gran parte de escribir en diferentes lenguajes como Visual Basic y
la interactividad asociada a las páginas Web se imple- C++. Esta forma de contenido ejecutable también sufre
menta programando el acceso a la CGI. Por ejemplo, de posibles problemas de seguridad.
cuando el usuario de un navegador accede a una pági-
na que contiene un formulario, éste lo rellena y lo envía Javascript es un lenguaje de programación interpre-
al servidor Web, programa que accede al CGI, procesa tado y sencillo que se inserta directamente en una pági-
na Web. Se diferencia de las soluciones de Active X y

503

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRdiCTICO .

applets en que el código fuente de cualquier programa Paquetes de seguridad. Estos son paquetes que moni-
de guiones de Java se integra en una página Web en vez torizan el tráfico dentro de un sistema distribuido y
de en el código de objetos como ocurre con los applets avisan al administrador de sistemas de la aparición
y Active X. Javascript es un lenguaje sencillo que se de cualquier violación posible en la seguridad. Por
utiliza para una programación relativamente a bajo nivel. ejemplo, el hecho de que alguien intente entrar en un
sistema con una contraseña sin reconocer.
28.6.6. Paquetes cliente/servidor
Monitores de transacciones. Estos son paquetes de
Este término describe las colecciones de software que software que administran las transacciones que tie-
normalmente llevan a cabo algún tipo de procesamien- nen lugar dentro de un sistema distribuido y ase-
to de sistemas. A continuación, se muestra un grupo de guran que se devuelvan los datos correctos como
ejemplos típicos de paquetes de software: resultado de una transacción y en el orden correcto.
Muchas de las funciones de estos monitores tienen
Paquetes de reproducción de datos. Este tipo de soft- que ver con asegurar que los resultados correctos
ware realiza una transacción en la base de datos y la se devuelvan incluso en el entorno en donde
aplica a un número de bases de datos reproducidas, podrían aparecer errores de hardware o de trans-
evitando así acceder a estas bases de datos hasta que misión.
estén todas en sincronización.

Antes de observar algunos de los principios del diseño rápidos (y caros). El proceso de asignar tales medios www.elsolucionario.net
que se utilizan en el desarrollo de sistemas distribuidos, normalmente tiene lugar después de haber tomado deci-
particularmente de sistemas de comercio electrónico, siones sobre la potencia de procesamiento de distribu-
merece la pena reiterar lo que se ha señalado anterior- ción en un sistema y, algunas veces, conlleva unas ligeras
mente: a nivel de análisis hay poca diferencia entre un iteraciones al final de la fase de diseño.
sistema distribuido y un sistema local, y se basa en que
el modelo de análisis de un sistema no contendrá nin- 28.7.2. Mantenimiento de los datos más usados
gún dato de diseño como el hecho de que tres compu- en un almacenamiento rápido
tadoras, y no una solo, están llevando a cabo algún
procesamiento. Esto significa que el desarrollador de Este principio también es obvio. Requiere que el dise-
un sistema distribuido se enfrentará normalmente con ñador examine los patrones de datos en un sistema y
un modelo de objetos o un modelo funcional similar al asegure que los datos a los que se accede frecuentemente
que se mostró en las primeras partes de este libro; esta se guarden en algún medio de almacenamiento rápido.
descripción irá acompañada de algunos de los tipos de En muchos sistemas tales datos pueden constituir no
computadoras y de hardware de redes que se van a uti- más del 5 por 100 de los datos originales almacenados
lizar. El proceso de diseño implica transformar el mode- en el sistema, y de esta manera permite utilizar con fre-
lo de análisis en algún modelo físico que se implementa cuencia las estrategias que conllevan el almacenamien-
en los elementos de hardware del sistema. to de estos datos dentro de la memoria principal.

@c+A V E 28.7.3. Mantenimiento de los datos cerca

Recuerde que durante el análisis existe poca diferencia de donde se utilizan
entre una aplicación de comercio electrónico
y una convencional. Este principio de diseño intenta reducir el tiempo que
pasan los datos en medios lentos de transmisión. Muchos
Es necesario que el diseñador de sistemas distribui- de estos sistemas son en donde los usuarios acceden con
dos conozca una serie de principios de diseño. El resto frecuencia a un subconjunto de datos. Por ejemplo, un
de esta sección muestra un esquema de los mismos. sistema distribuido usado en una aplicación bancaria
contendría bases de datos con datos de las cuentas de los
28.7.1. Correspondencia del volumen de trans- clientes, en donde la mayor parte de las consultas a las
misión con los medios de transmisión bases de datos de las sucursales las realizarán los clien-
tes de esa sucursal; entonces, si los datos de un sistema
Este es uno de los principios más obvios. Esto signifi- bancario se distribuyen a los servidores de las sucursa-
ca que para un tráfico denso de datos en un sistema dis- les, y los datos asociados a los clientes de esa sucursal
tribuido se deberían utilizar medios de transmisión están en esa sucursal, el resto de los datos podrían estar
en otros servidores con otras ubicaciones, y cualquier
consulta que se originara sobre los datos se tendría que
comunicar a través de líneas lentas de transmisión.

504

www.elsolucionario.net
.

CAPfTULO 28 INGENIERfA DEL S O F T W A R E DEL C O M E R C I O E L E C T R Ó N I C O CLIENTEEERVIDOR

28.7.4. Utilización de la duplicación de datos tenga que utilizar la duplicación de datos, lo que signifi-www.elsolucionario.net
todo lo posible ca es que se necesita un diseño cuidadoso para minimizar
la cantidad de gastos asociados a él en las transmisiones.
La duplicación consiste en mantener múltiples copias
de datos en un sistema al mismo tiempo. Existen muchas Hay que señalar que en los sistemasdistribuidosdon-
razones para la duplicación de datos. La primera es que de existe menos relación dinámica entre los datos, se
hay que asegurar la redundancia que permite que un sis- pueden emplear estrategias más simples que eliminen
tema distribuido continúe funcionando aun cuando una muchos de los gastos. Por ejemplo, un banco normal-
computadora con datos importantes quede fuera de ser- mente lleva a cabo transacciones una vez al día en las
vicio normalmente por un mal funcionamientodel hard- bases de datos de los clientes y normalmente después
ware. La otra razón es que proporciona una forma de del cierre del negocio. Esto significa que un sistema ban-
implementar el principio dilucidado en la sección ante- cario distribuido puede duplicar datos en sus sucursa-
rior: el de asegurar que los datos estén ubicados cerca les y solamente puede volver a copiar los datos
de donde se utilizan. Por ejemplo, una compañía hote- cambiadosen las bases de datos una vez al día: no habría
lera con una base central de reservas que hace el segui- necesidad de coordinar las bases de datos con frecuen-
miento de todas las reservas de las habitaciones para cia durante el día de trabajo.
todos sus hoteles. Es posible que esta compañía tenga
dos puntos de contacto para clientes que deseen hacer Habría que señalar también que esta subsección ha
las reservas: los hoteles en sí y una oficina central de tratado la duplicación de datos en función de mantener
reservas. Una forma de asegurar el alto rendimiento es los datos cerca de los usuarios para reducir el tiempo de
duplicando los datos asociados a un hotel en particular transmisión con medios lentos. Hay otras razones para
y guardar los dato? en el servidor ubicado en el hotel. duplicar los datos, por ejemplo una base de datos que
Esto significaque cualquier reserva realizada por el hotel se utiliza mucho tendrá colas de transacciones prepara-
solo necesitará acceder a una base de datos local y no das y esperandoa ejecutarse. Estas colas se pueden redu-
requerirá ningún tráfico en la línea lenta de transmisión. cir disfrutando de bases de datos idénticas mantenidas
Esto suena a un principio muy simple de implementa- en otros servidores de bases de datos concurrentes.
ción sencilla. Desafortunadamente, las cosas nunca son
tan simples. En el ejemplo de las reservas de hoteles no 28.7.5. Eliminar cuellos de botella
hay necesidad de que las bases de datos asociadas a los
hoteles se comuniquen con la base de datos central. La En un sistema distribuido un servidor se convierte con
razón que apoya esto es el hecho de que también habrá frecuencia en un cuello de botella: tiene que manipular
clientes que utilicen la oficina central de reservas, así tanto tráfico que se construyen grandes colas de transac-
como clientes realizando reservas de habitaciones que ciones esperandoa ejecutarse, con el resultadode que los
ofrecen los mismos hoteles. A menos que haya coordi- servidoresque están esperando los resultados del proce-
nación entre la base de datos de la oficina central de samiento estarán, en el mejor de los casos, ligeramente
reservas y las bases de datos individuales duplicadas de cargados y, en el peor, inactivos. La estrategia normal
cada hotel, surgirán problemas: por ejemplo, el hecho para manipular cuellos de botella es compartir la carga
de decir que hay una habitación libre en un momento de procesamientoentre los servidores,normalmente ser-
concreto en un hotel a un cliente que utiliza el servicio vidores físicamente cerca del que está sobrecargado.
central de reservas aun cuando esa habitación ya ha sido
reservada por otro cliente que ha llamado directamen- 28.7.6. Minimizar la necesidad de un gran
te al hotel. conocimiento del sistema

&$$ Los sistemasdistribuidossuelen necesitar conocer el esta-
do del sistema completo, por ejemplo, podría ser que
CLAVE necesitaran conocer la cantidad de registros de una base
de datos central. El hecho de necesitar este conocimien-
l a duplicación controlada de datos puede tener un efecto to genera más tráfico reduciendo así la eficiencia de un
importante en el rendimiento de un sistema distribuido. sistema, ya que generará tráfico extra a lo largo de las
líneas de transmisión. El diseñador de un sistema distri-
El problema anterior implica que en un sistema don- buido en primer lugar necesita minimizar que el sistema
de hay una relación dinámicaentre las bases de datos indi- dependa de datos globales, y entonces asegurar que el
viduales existe la necesidad entonces de que cada base de conocimiento necesario se comunique rápidamente a
datos mantenga informadas de los cambios a otras bases aquellos componentes del sistema que lo requieran.
de datos, y de que aseguren que los cambios se reflejen
en todos los datos duplicados. Esto también implica la 28.7.7. Agrupar datos afines en la misma
aparición de retrasos porque las transacciones permane- ubicación
cerán en cola esperando a que la base de datos se sincro-
nice con otras bases de datos. Esto no significa que se Los datos que están relacionados deberían de estar den-
tro del mismo servidor. Por ejemplo, en una aplicación
de reservas en un sistema de vacaciones, los paquetes

505

www.elsolucionario.net

.

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO

individuales de vacaciones deberían de estar cerca de buido y otro componente. El único gasto que se requie-
los datos que describen las reservas actuales de ese re para utilizar esta técnica es tiempo del procesador y
paquete. Ubicar por separado los datos en diferentesser- la memoria necesaria para llevar a cabo la compresión
vidores asegura que los medios de baja transmisión y en la computadora del emisor y la descompresión en la
muy cargados se cargarán incluso más. El diseñador de computadora del receptor.
un sistema distribuido debe asegurarse de que los datos
relacionados gracias al hecho de que se suelen recupe- 28.7.12. Diseño para el fallo
rar juntos tendrán que residir lo más cerca posible, pre-
feriblemente en el mismo servidor, o si no, y no de ¿Por qué puede ser
manera tan preferible, en servidores conectados a tra- catastrófico un fallo de
vés de medios de transmisión rápidos tales como los hardware en un sistema de
medios utilizados en una red de área local. comercio electrónico?

28.7.8. Considerar la utilización de servidores Un fallo de hardware en la mayoría de los sistemas de www.elsolucionario.net
dedicados a funciones frecuentes comercio electrónico es una catástrofe: para los siste-
mas de ventas en red esto es equivalente a echar el cie-
Algunas veces se puede lograr un mayor rendimiento rre a los clientes. Una parte importante del proceso de
mediante la utilización de un servidor de empleo espe- diseño es analizar los fallos que podrían aparecer en un
cífico para una función en particular en lugar de, por sistema distribuido y diseñar el sistema con suficiente
ejemplo, un servidor de bases de datos. redundancia como para que dicho fallo no afecte seria-
mente y, en el mejor de los casos, que se pueda redu-
28.7.9. Correspondenciade la tecnología con las cir el tiempo de respuesta de ciertas transacciones. Una
exigencias de rendimiento decisión normal que suele tomar el diseñador es dupli-
car los servidores vitales para el funcionamiento de un
Muchas de las tecnologías que se estudian en este capí- sistema distribuido. Una estrategia en los sistemas de
tulo tienen pros y contras, y un factor importante aquí alta integridad es que un servidor se reproduzca tres
son las demandas de rendimiento de una tecnología en veces y que cada servidor lleve a cabo la misma tarea
particular. en paralelo. Cada servidor produce un resultado a com-
parar. Si los tres servidores aceptan el resultado, éste
Por ejemplo, como medio de comunicación, las pasa a cualquier usuario o servidor que lo requiera; si
conexiones (sockets) normalmente son un medio de uno de los servidores no está de acuerdo, entonces sur-
comunicación mucho más rápido que los objetos dis- ge un problema y el resultado de la mayoría se pasa
tribuidos. Cuando el diseñador elige una tecnología debe informando al administrador de sistemas del posible
de tener conocimiento de la transmisión y de las cargas problema. La duplicación de servidores como estrate-
de procesamiento que conlleva, y seleccionar una tec- gia de mitigación de fallos puede utilizarse junto con
nología que minimice estas cargas. el diseño de un sistema para lograr el paralelismo en
las tareas.
28.7.10. Empleo del paralelismo todo lo posible
28.7.13. Minimizar la latencia
Una de las ventajas principales de la tecnología clien-
tehervidor es el hecho de que se pueden añadir servi- Cuando los datos fluyen de una computadora a otra en
dores y, hasta cierto punto, elevar el rendimiento del un sistema distribuido a menudo tiene que atravesar
sistema. Muchas funciones del comercio electrónico otras computadoras. Algunas de estas computadoras
pueden beneficiarse de la ejecución que están llevando puede que ya tengan unos datos que expidan funciona-
a cabo diferentes servidores en paralelo. Esta no es una lidad; es posible que otras procesen los datos de algu-
decisión sencilla. Mediante el empleo de varios servi- na manera. El tiempo que tardan las computadoras es
dores, el diseñador está creando la necesidad de que lo que se conoce como latencia. Un buen diseño de sis-
estos servidores se comuniquen, por ejemplo, un servi- tema distribuido es el que minimiza el número de com-
dor puede que necesite a otro para completar una tarea putadoras intermediarias.
en particular antes de finalizar la suya propia. Esta comu-
nicación puede introducir retrasos y, si el diseñador no 28.7.14. Epílogo
tiene cuidado, pueden negar los avances de rendimien-
to que se han logrado utilizando el paralelismo. Este ha sido un estudio breve aunque necesario, y se
han tratado las diferentes estrategias de diseño que se
28.7.11. Utilización de la compresión de datos utilizan en los sistemas distribuidos que implementan
todo lo posible las funciones del comercio electrónico.Un punto impor-
tante a tener en cuenta antes de abandonar esta sección
Se dispone de un grupo de algoritmos que comprimen
d a t a y que reducen el tiempo que tardan los datos en
transferirse entre un componente de un sistema distri-

506

hwttwp:w//li.berlesroial-uucniiovenrasirtiaori.an.ebltogspot.com
.

CAPfTULO 28 INGENIERfA DEL SOFTWARE DEL COMERCIO ELECTRONICO CLIENTE/SERVIDOR

es que una estrategia puede militar contra otra, mini- de datos duplicadas incrementa la latencia de un siste-
mizar la latencia y duplicar bases de datos pueden ser ma; como consecuencia, el diseño de sistemas distri-
dos estrategias opuestas: incrementar el número de bases buidos, más que otra cosa, es un arte.

El incremento masivo en la utilización pública de sis- Estas son entonces algunas de las intrusiones que pue- www.elsolucionario.net
temas distribuidos ha dado lugar a algunos problemas den tener lugar dentro de un sistema distribuido; estas
graves con la seguridad. Los sistemas distribuidos ante- intrusiones cada vez son más frecuentes, ya que gran
riores se suelen localizar en un lugar físico utilizando parte de la transmisiónen los sistemasde comercio elec-
tecnologías tales como redes de área local. Dichos sis- trónico ocurren en una Internet públicamente accesible
temas estaban físicamenteaislados de los usuarios exter- que utiliza protocolos públicamente disponibles.
nos y como consecuencia la seguridad, aunque es un
problema, no era un problema enorme como lo es aho- Una de las tareas más importantes del diseñador de
ra para los sistemas de comercio electrónico a los que sistemas distribuidos es diseñar un sistema con el pro-
pueden acceder miembros de usuarios que emplean un pósito de minimizar la posibilidad de éxito de las ins-
navegador. trucciones de alto riesgo. Para poder llevarlo a cabo se
necesita utilizar una serie de tecnologías. En la siguien-
A continuación, se detallan algunas de las intrusio- te sección se hace una relación detallada de estas tec-
nes típicas en la seguridad que pueden ocurrir: nologías.

Un intruso monitoriza el tráfico de una línea de trans- 28.8.1. Encriptación
misión y recoge la información confidencial que
genera un usuario. Por ejemplo, el intruso podría leer ¿Qué es la encriptación y
el número, la fecha de caducidad y el nombre del por qué es útil?
titular de una tarjeta de crédito. Y, a continuación,
puede utilizar esta información para realizar pedidos Encriptación es el término que se utiliza para referirse
en Internet. al proceso de transformar datos o texto (texto en claro)
para ser ilegible; además, debería resultar virtualmente
Un intruso podría entrar en un sistema distribuido, imposible que un intruso pueda descifrarlo. A conti-
acceder a la base de datos y cambiar la información nuación, se detalla el proceso de utilización de esta tec-
de la misma. Por ejemplo, podría cambiar el balance nología:
de una cuenta en un sistema bancario en la red.
1. La computadora emisora transforma el texto en
%"E alguna forma ilegible; este proceso se conoce como
encriptación.
Ahora que lnternet ya se estó utilizando
para muchas mós aplicaciones, la seguridad 2. Los datos encriptados entonces se envían a través de
se convierte en un problema importante. líneas de transmisión insegura.

Un intruso podría leer una transacción que pasa por 3. La computadora receptora procesa el texto encrip-
alguna línea de transmisión y alterar los datos den- tado y lo transforma a su forma original. Este pro-
tro de ella en beneficio propio. Por ejemplo, podría ceso se conoce como desencriptación.
alterar la instrucciónde un cliente de un sistema ban-
cario en red para transferir los datos de una cuenta a Se utilizan dos formas de encriptación. La primera
otra para que la cuenta del intruso sea la que tiene es la encriptación simétrica, donde un mensaje se trans-
lugar en la transferencia. forma en una forma encriptada utilizando una cadena
conocida como clave: se aplica alguna transformación
Un ex empleado contrariado de una compañía envía en el mensaje utilizando la clave. Entonces la clave se
un programa al sistema distribuido de la compañía comunica al receptor a través de algún medio seguro y
monopolizandoel tiempo del procesadordel sistema, es utilizado por el receptor para llevar a cabo la desen-
pasando gradualmente de servidor a servidor hasta criptación.
que el sistema queda exhausto y acaba parándose.
Esta es una forma de ataque conocido como dene- La encriptación simétrica es eficiente pero padece
gación de ataque al servicio. un problema importante: si un intruso descubre la cla-
ve, podría descubrir fácilmente el mensaje encripta-
Un empleado contrariado de una compañía envía un do. La encriptación de clave pública es una solución
programa a un sistema distribuido el cual borra los a este problema, donde se utilizan dos claves de
archivos importantes del sistema. encriptación: una conocida como clave pública y otra
como clave privada. Un usuario que desea recibir men-
sajes encriptados publicará su clave pública. Otros

507

www.elsolucionario.net

INGENlERfA DEL SOFTWARE. UN ENFOQUE PRACTICO .

usuarios que deseen comunicarse con el usuario uti- es la que se utiliza normalmente para esto. Conside- www.elsolucionario.net
lizarán esta clave para encriptar cualquier mensaje; remos una forma de llevar a cabo este proceso: dos
los mensajes entonces son desencriptados mediante usuarios de computadoras A y B quieren comunicar-
la clave privada cuando los recibe el usuario original. se, y A quiere asegurarse de que se está comunicando
Esta forma de encriptación tiene la ventaja principal con B. Para poder hacer esto, B necesita tener una cla-
de que la gestión de claves es sencilla: la clave pri- ve pública y una privada, y tener conocimiento de cuál
vada nunca se envía a nadie. Un intruso que monito- es la clave pública. A envía un mensaje a B con un tex-
riza los datos encriptados que viajan por algún medio to en el que A pide a B una encriptación utilizando su
de transmisión es incapaz de decodificar ningún men- clave privada. Este texto entonces es encriptado por B
saje puesto que no tienen acceso posible a la clave y devuelto a A quien lo descifra utilizando la clave
privada. El inconveniente principal de esta forma de pública que B le ha proporcionado. Si el mensaje es el
encriptación es que se necesita una gran cantidad de mismo que el que se envió, B es entonces quien dice
recursos para llevar a cabo el proceso de desencrip- que es, pero, si no lo es, B entonces no ha demostra-
tación. Debido a esta clave pública, los sistemas nor- do su identidad. Este esquema comparte todas las ven-
malmente se limitan a envíos cortos de texto o a un tajas de cualquier método de clave pública en donde
texto pensado para ser altamente seguro. También se la clave privada es segura; sin embargo, puede ser ata-
utiliza para la autenticación, la cual utiliza una técni- cado por cualquiera que desee establecer falta de con-
ca conocida como firmas digitales, que se describen fianza entre un emisor y un receptor. Esto se puede
en la sección siguiente. hacer alterando el mensaje encriptado que se ha devuel-
to al emisor.
La tecnología principal que se utiliza en Internet
para la encriptación simétrica es la capa de sockets 28.8.4. Certificaciones digitales
seguros (SSL). Esta es una tecnología que se utiliza
para encriptar datos confidenciales tales como los Una certificación digital es un documento electrónico
números de las tarjetas de crédito que viajan desde el que proporciona al usuario un alto de grado de confianza
navegador a un servidor Web, o desde una aplicación con una organización o persona con la que estén tra-
a otra. tando. Se pueden utilizar cuatro tipos de certificacio-
nes:
28.8.2. Funciones de compendio de mensajes
Certificaciones de una autoridad de certificación.
Una función de compendio de mensajes es un algorit- Una autoridad de certificación es una organización
mo que genera un número grande -normalmenteentre que proporciona certificados digitales, tales como
128 y 256 bits de longitud-que representa un com- estas dos organizaciones: Canada Post Corporation
pendio o resumen de los caracteres de un mensaje. Tie- y los servicios postales de US.
ne la propiedad de que si el mensaje cambia y se vuelve
a aplicar el algoritmo,el número entonces cambia. Exis- Certificaciones del servidor. Estas certificaciones
ten muchas utilizaciones de las funciones de compen- contienen datos tales como la clave pública del ser-
dio de mensajes. Un uso común es detectar los cambios vidor, el nombre de la organización que posee el ser-
en un mensaje, por ejemplo, el hecho de que una tran- vidor y la dirección del servidor en Internet.
sacción financiera se haya modificado en la transmisión
con objeto de favorecer al que modifica. Antes de enviar Certificaciones personales. Estas son las certifica-
un mensaje se aplica la función de compendio de men- ciones asociadas a un individuo. Contendrán infor-
saje y se forma un número grande. El mensaje enton- mación física tal como la dirección del individuo
ces se envía con el número añadido al final. La función junto con la información relacionada con la compu-
de compendio de mensaje se aplica en el receptor y el tadora como la clave pública y la dirección de correo
número resultante se compara con el que se envió. Si electrónico de la persona.
los dos son iguales el mensaje entonces no se ha modi-
ficado: si no son iguales el mensaje ha sido modificado Certificaciones del editor de software. Estos son cer-
durante la transmisión. tificados que proporcionan confianza en que el soft-
ware ha sido producido por una compañía de
28.8.3. Firmas digitales software específica.

Una firma digital, como su propio nombre sugiere, es Como ejemplo para el funcionamiento de estas cer-
una forma de que el emisor de un mensaje se pueda tificaciones tomemos el de las certificaciones del servi-
identificar con el receptor de tal manera que el recep- dor. Un servidor que utiliza la capa de sockets seguros
tor pueda confiar en que el mensaje fue enviado real- (SSL) debe de tener un certificado SSL. Este certifica-
mente por el emisor. La encriptación de clave pública do contiene una clave pública. Cuando un navegador se
conecta con el servidor se utiliza entonces esta clave
pública para codificar la interacción inicial entre el ser-
vidor y el navegador.

508

www.elsolucionario.net
.

CAPfTULO 28 INGENIERfA DEL SOFTWARE DEL COMERCIO ELECTRONICO CLIENTE/SERVIDOR

28.9.1. Introducción 28.9.2. Distribución de componentes de software www.elsolucionario.net

En lugar de visualizar el software como una aplicación Una vez que se han determinado los requisitos básicos
monolítica que deberá de implementarse en una máqui- de una aplicación cliente/servidor, el ingeniero del soft-
na, el software que es adecuado para una arquitectura ware debe decidir cómo distribuir los componentes de
posee varios componentes distintos que se pueden aso- software descritos en la Sección 28.1.1 entre el cliente
ciar al cliente o al servidor, o se pueden distribuir entre y el servidor. Cuando la mayor parte de la funcionali-
ambas máquinas: dad asociada a cada uno de los tres componentes se le
asocia al servidor, se ha creado un diseño de servidor
Componente de interacción con el usuario y pre- pesado (grueso). A la inversa, cuando el cliente imple-
sentación. Este componente implementa todas las fun- menta la mayor parte de los componentes de interac-
ciones que típicamente se asocian a una interfaz gráfica ción/presentación con el usuario, de aplicación y de
de usuario (IGU). bases de datos, se tiene un diseño de cliente pesado
(grueso).
Componente de aplicación.Este componente imple-
menta los requisitos definidos en el contexto del domi- Los clientes pesados suelen encontrarse cuando se
nio en el cual funciona la aplicación. Por ejemplo, una implementan arquitecturas de servidor de archivo y de
aplicación de negocios podría producir toda una gama servidor de base de datos. En este caso el servidor pro-
de informes impresos basados en entradas numéricas, porciona apoyo para la gestión de datos, pero todo el
cálculos, informaciónde una base de datos y otros aspec- software de aplicación y de IGU reside en el cliente.
tos. Una aplicación de software de grupo podría pro- Los servidores pesados son los que suelen diseñarse
porcionar funciones para hacer posible la comunicación cuando se implementan sistemas de transacciones y de
mediante boletines de anuncios electrónicos o de correo trabajo en grupo. El servidor proporciona el apoyo de
electrónico,y en nuestro caso de estudio esto conlleva- la aplicación necesario para responder a transacciones
ría la preparación de informes como los que describen y comunicaciones que provengan de los clientes. El soft-
las ventas de libros. En ambos casos, el software de la ware de cliente se centra en la gestión de IGU y de
aplicación se puede descomponer de tal modo que algu- comunicación.
no de los componentes residan en el cliente y otros resi-
dan en el servidor. ";ch%V E

9Referencia Web Un cliente ((pesado)) implementa la mayoría de las aplicaciones
especificasde la aplicación en el cliente. Un cliente ((ligero))
l a PFR del grupo de noticias comp.client-server se puede relega la mayor parte del proceso 01 servidor.
encontror en la página
www.foqs.org/faqs/client-server-foq Se pueden utilizar clientes y servidores pesados para
ilustrar el enfoque general de asignación de compo-
Componente de gestión de bases de datos. Este nentes de software de clientehervidor. Sin embargo, un
componente lleva a cabo la manipulación y gestión de enfoque más granular para la asignación de componentes
datos por una aplicación. La manipulación y gestión de software define cinco configuraciones diferentes.
de datos puede ser tan sencilla como la transferencia de
un registro, o tan compleja como el procesamiento de Presentacióndistribuida. En este enfoque clienteher-
sofisticadas transacciones SQL. vidor rudimentario, la lógica de la base de datos y la lógica
de la aplicación permanecen en el servidor, típicamente
Además de estos componentes, existe otro bloque de en una computadora central. El servidor contiene tam-
construcción del software, que suele denominarse soft- bién la lógica para preparar información de pantalla,
ware intermedio en todos los sistemas C/S. El softwa- empleando un software tal como CICS. Se utiliza un soft-
re intermedio se describió en la Sección 28.2.3. Orfali ware especial basado en PC para transformar la infor-
[ORF99]y sus colegas se han referido al software inter- mación de pantalla basada en caracteresque se transmite
medio como «el sistema nervioso de un sistema clien- desde el servidor en una presentación IGU en un PC.
te/servidor».
¿Cuáles son las opciones de
".c%VE
configuración poro los
El software intermedio establece la infraestructura
que hace posible que los componentes componentes de software
cliente/servidor?
cliente/servidor interoperen.
Presentación remota. En esta extensión del enfoque
de presentación distribuida, la lógica primaria de la base

509

www.elsolucionario.net

INGENIERfA DEL SOFTWARE. UN ENFOQUE PRACTICO .

de datos y de la aplicación permanecen en el servidor, ación del www.elsolucionario.net
y los datos enviados por el servidor serán utilizados por
el cliente para preparar la presentación del usuario. El resto de los componentes de la aplicación se di&
tribuye entre cliente y servidor basándose en la distri-
Lógica distribuida. Se asignan al cliente todas las bución que optimice las configuraciones de cliente y
tareas de presentación del usuario y también los proce- servidor y de la red que los conecta. Por ejemplo, la
sos asociados a la introducción de datos tales como la
validación de nivel de campo, la formulación de con- implementación de una relación mutuamenteexcluyen-
sultas de servidor y las solicitudes de informaciones de te implica una búsqueda en la base de datos para deter-
actualizaciones del servidor. Se asignan al servidor las minar si existe un registro que satisfaga los parámetros
tareas de gestión de las bases de datos, y los procesos de una cierta trama de búsqueda. Si no se encuentra nin-
para las consultas del cliente, para actualizaciones de gún registro, se emplea una trama de búsqueda altema-
archivos del servidor, para control de versión de clien- tiva. Si la aplicación que controla esta trama de búsqueda
tes y para aplicaciones de ámbito general de la empresa. está contenida en su totalidad en el servidor, se minimi-
za el tráfico de red. La primera transmisión de la red des-
Gestión de datos remota. Las aplicaciones del ser- de el cliente hacia el servidor contendría los parámetros
vidor crean una nueva fuente de datos dando formato a tanto para la trama de búsqueda primaria como para la
los datos que se han extraído de algún otro lugar (por trama de búsqueda secundaria. La lógica de aplicación
ejemplo, de una fuente de nivel corporativo). Las apli- del servidor determinaría si se requiere la segunda bús-
caciones asignadas al cliente se utilizan para explotar queda. El mensaje de repuesta al cliente contendríael
los nuevos datos a los que se ha dado formato mediante registro hallado como consecuencia bien de la primera
el servidor. En esta categoría se incluyen los sistemas o bien de la segunda búsqueda. El enfoque alternativo
de apoyo de decisiones. (el cliente implementa la lógica para determinar si se
requiere una segunda búsqueda) implicaría un mensaje
Bases de datos distribuidas. Los datos de que consta para la primera recuperación de registros, una respues-
la base de datos se distribuyen entre múltiples clientes ta a través de la red si no se halla el registro, un segun-
y servidores. Consiguientemente, el cliente debe de do mensaje que contuviera los parámetros de la segunda
admitir componentes de software de gestión de datos búsqueda, y una respuesta final que contuvierael regis-
así como componentes de aplicación y de IGU. tro recuperado. Si en la segunda búsqueda se necesita el
50 por 100de las veces, la colocación de la lógica en el
Durante los Últimos años se ha dado mucha impor- servidor para evaluar la primera búsqueda e iniciar la
tancia a la tecnología de cliente ligero. Un cliente lige-
ro es la llamada «computadorade redes» que relega todo segunda si fuera necesario reduciría el tráfico de red en
el procesamiento de la aplicación a un servidor pesado. un 33 por 100.
Los clientes ligeros (computadoras de red) ofrecen un
coste por unidad sustancialmente más bajo a una pér- Aunque los Iíneosgeneroles de lo distribuciónson voliosos,
dida de rendimiento pequeña o nada significativa en todos los sistemos deben de tomorseen consideroción
comparación con las computadoras de sobremesa. por sus propiosméritos. Poro todos los beneficiosderivodos
de, digomos, un cliente pesodo, el diseñodor debe de luchor
28.9.3. Líneas generales para la distribución de con un conjuntoporecido de contruriedodes.

componentes de aplicaciones La decisión final acerca de la distribución de com-
ponentes debería estar basada no solamente en la apli-
Aun cuando no existen reglas absolutas que describan cación individual, sino en la mezcla de aplicaciones que
la distribución de componentes de aplicaciones entre el esté funcionando en el sistema. Por ejemplo, una insta-
cliente y el servidor, suelen seguirse las siguientes líne- lación podría contener algunas aplicaciones que requie-
as generales: ran un extenso procesamiento de IGU y muy poco
procesamiento central de la base de datos. Esto dm’a
El componente de presentaciónlinteracción suele lugar a la utilización de potentes estaciones de trabajo
ubicarse en el diente. La disponibilidad de entornos en el lado cliente y a un servidor muy sencillo. Una vez
basados en ventanas y de la potencia de cómputo nece- implantada esta configuración, otras aplicacionesfavo-
saria para una interfaz gráfica de usuario hace que este recerían el enfoque de cliente principal, para que las
enfoque sea eficiente en términos de coste.

Si es necesario compartir la base de datos entre múl-
tiples usuarios conectados a través de la LAN, enton-
ces la base de datos suele ubicarse en el servidor. El
sistema de gestión de la base de datos y la capacidad de
acceso a la base de datos también se asignan al servi-
dor, junto con la base de datos física.

Los datos estáticos que se utilicen deberían de asig-
narse al cliente. Esto sitúa los datos más próximos al
usuario que tiene necesidad de ellos y minimiza un trá-
fico de red innecesario y la carga del servidor.

510

www.elsolucionario.net
.

CAPfTULO 28 INGENIERfA DEL SOFTWARE DEL COMERCIO ELECTRONICO CLIENTE/SERVIDOR

capacidades del servidor no tuvieran necesidad de ver- el objeto al cual se había destinado el mensaje, para invo-
se aumentadas. car su método, para pasar al objeto los datos adecuados,
y para transferir los datos resultantes de vuelta al obje-
Habría que tener en cuenta que a medida que madu- to que generase el mensaje inicialmente.
ra el uso de la arquitectura cliente/servidor, la tenden-
cia es a ubicar la lógica de la aplicación volátil en el CUVE
servidor. Esto simplifica la implantación de actualiza-
ciones de software cuando se hacen cambios en la lógi- Un ORE capacito a un objeto que resida en un cliente
ca de la aplicación [PAU95]. para enviar un mensaie a un método que esté
encapsulodoen otro objeto que residoen un servidor.
28.9.4. Enlazado de componentes de softwareC/S
En el Capítulo 27 se estudiaron los tres estándares
Se utiliza toda una gama de mecanismos distintos para más utilizados que implementan una filosofía de redis-
enlazar los distintos componentes de la arquitectura hibución de objetos: CORBA, COM y JavaBeans. COR-
clientelservidor.Estos mecanismos están incluidos en BA se utilizará para ilustrar la utilización del software
la estructura de la red y del sistema operativo, y resul-
tan transparentes para el usuario final situado en el cen- intermedio ORB.
tro cliente. Los tipos más comunes de mecanismos de
enlazado son: La información m6s actualizada sobre estóndaresde y www.elsolucionario.net

Tuberías (pipes):se utilizan mucho en los sistemas componentes se puede encontrar en la página
basados en UNIX; las tuberías permiten la mensaje-
ría entre distintas máquinas que funcionen con dis- www.omg.com, www.microsoft.com/COhi,
tintos sistemas operativos.
Llamadas a procedimientos remotos: permiten que java.sun.com/beans
un proceso invoque la ejecución de otro proceso o
módulo que resida en una máquina distinta. En la Figura 28.6 se muestra la estructura básica de
una arquitecturaCORBA. Cuando se implementaCOR-
¿Cuáles son las opciones BA en un sistema clientehervidor, los objetos y las cla-
ses de objetos (Capítulo 20) tanto en el cliente como en
disponibles para vincular el servidor se definen utilizando un lenguaje de des-
componentes? cripción de interfaces (LDI’), un lenguaje declarativo
que permite que el ingeniero del software defina obje-
InteracciónSQL clientelservidor: se utiliza para pasar tos, atributos, métodos y los mensajes que se requieren
solicitudes SQL y datos asociados de un componente para invocarlos. Con objeto de admitir una solicitud para
(típicamente situado en el cliente) a otro componente un método residente en el servidor procedente de un
(típicamenteel SGBD del servidor).Este mecanismo objeto residente en el cliente, se crean stubs LDI en el
está limitado únicamente a las aplicaciones SGBDR. cliente y en el servidor. Estos stubs proporcionan la pasa-
Conexiones (sockets),se tratan en la Sección 28.6. rela a través de la cual se admiten las solicitudesde obje-
tos a través del sistema C/S.
Además, las implementaciones orientadas a objetos
de componentes de software C/S dan lugar a una &- Dado que las solicitudes de objetos a través de la red
culación» que haga uso de un distribuidor de solicitu- se producen en el momento de la ejecución, es preciso
des de objetos. Este enfoque se describirá en la sección establecer un mecanismo para almacenar una descrip-
siguiente. ción del objeto de tal modo que la información perti-
nente acerca del objeto y de su ubicación esté disponible
28.9.5. Software intermedio (middleware) cuando sea necesario. El repositorio de interfaz hace
y arquitecturasde agente de solicitud precisamente esto.
de objetos
íivo, pero no
Los componentes de software C/S descritos en las sec- s críiicos del
ciones anteriores están implementadas mediante obje-
tos que deben de ser capaces de interactuar entre sí en Cuando una aplicación cliente necesita invocar un
el seno de una sola máquina (bien sea cliente o servidor) método contenido en el seno de un objeto residente en
o a través de la red. Un agente de distribución de obje- alguna otra parte del sistema, CORBA utiliza una invo-
tos (ORB) es un componente de softwareintermedio que
capacita a un objeto que resida en un cliente para enviar En inglés IDL (Interface Description ianguage)
un mensaje a un método que esté encapsulado en otro
objeto que resida en un servidor. En esencia, el ORB
intercepta el mensaje y maneja todas las actividades de
comunicación y de coordinación necesarias para hallar

511


Click to View FlipBook Version