Documente Academic
Documente Profesional
Documente Cultură
COORDINACIN EDITORIAL
VICERRECTORADO ACADMICO
ISBN: 978-9942-24-075-0
Portada:
Concepto editorial
Samanta Cabezas (est. Comunicacin Social)
Fotografa: Dir. de Comunicacin UTMACH
Prefacio................................................................................ 17
Prlogo................................................................................. 19
Dedicatoria.......................................................................... 21
CAPTULO 1......................................................................... 23
DEFINICIN DE LA ARQUITECTURA DEL SISTEMA............ 23
Glosario............................................................................. 227
Bibliografa........................................................................ 229
ndice de grficos
[17]
de vida del software y metodologa. Adems, se vern los principales
modelos de ciclo de vida del software y la diferenciacin entre metodo-
logas tradicionales y giles.
Se presentan los conceptos clsicos relacionados con el software y
la Ingeniera del Software. El objetivo de este tema es tomar conciencia
de la importancia de abordar la construccin del software desde una
perspectiva de ingeniera. Se exponen los elementos constituyentes de
un paradigma de desarrollo del software. Se ofrece una visin general
del concepto de proceso, as como de los diferentes modelos de proceso
software.
Prlogo
[19]
No obstante surge un desconsuelo porque los mtodos y tcnicas
de la ingeniera de software se han mantenido igual, un ejemplo de esto
se logr reconocer que una de las metodlogas ms usadas como es la
metodologa en cascada tena varios problemas.
El uso de las herramientas CASE, siguen siendo usadas y basadas
en UML y UML2, siguen ayudando a los diseadores a crear diagramas
que tengan la funcionalidad del sistema que se est creando, generar
cdigo y hasta un cierto punto crear ingeniera inversa.
Las metodologas del ciclo de desarrollo de software conjuntamente
con sus tcnicas lograron ayudar a la desarrollar sistemas complejos
y de gran tamao a ser mejores y cumplan con cada requerimiento
que se necesita para solucionar un problema de la vida cotidiana. Los
ltimos avances se puede denotar que en la ingeniera en software ha
sido la visin de UML que se incorpor como un gran estndar para la
descripcin de sistemas orientados a objetos, bajo el desarrollo de m-
todos agiles como es la metodologa XP que utiliza una programacin
extrema.
Por ende, este texto no procura ser un texto que trata sobre todas
las metodologas agiles si no asentar los procesos bsicos de la inge-
niera de software como son las especificaciones, diseo, implementa-
cin, verificacin y validacin conjuntamente con gestin. Por eso es
de obligacin de los stakeholders que entiendan todos los procesos y
tcnicas ms adecuadas para adaptar a las situaciones particulares.
En cada captulo de este libro se intenta explicar las tcnicas necesa-
rias y especficas de la ingeniera del software que son necesarias para
la construccin de los sistemas crticos.
Irremediablemente, todos los libros irradian las distintas opiniones
de sus autores. Por eso es que muchos lectores se pondrn en discon-
formidad con respecto a las opiniones y deliberacin del material. Sin
embargo, se espera que todos los ingenieros de software y futuros in-
genieros en la informtica les resulten muy interesantes y propongan
crticas constructivas a los temas aqui tratados..
Dedicatoria
[21]
Definicin de la arquitectura del
sistema
El objetivo general del tema 1.1. Diseo arquitectnico, es dar a conocer los conceptos y
principios generales de la arquitectura del software y del diseo arquitectnico. A continuacin se
lista los temas a tratar dentro de este contenido:
El objetivo general del punto 1.2. Arquitecturas de sistemas distribuidos, es conocer y aplicar los
distintos modelos de arquitectura del software para los sistemas distribuidos. A continuacin se
lista los temas de importancia a tratar:
Arquitecturas multiprocesador.
Arquitecturas cliente-servidor.
Arquitecturas de objetos distribuidos.
Computacin distribuida inter-organizacional.
El objetivo general del punto 1.3. Arquitecturas de aplicaciones, es conocer y aplicar los distintos
modelos arquitectnicos para realizar clases especficas. A continuacin se lista los temas de
importancia a tratar:
[23]
24 Molina J, Valarezo M, Zea M
Para un diseador
Para deunsoftware
diseadorestede
proceso es correcto,
software pero este
este proceso tipo de modelo
es correcto, pero est
esteenfocado a
los stakeholders,
tipo de modelo est enfocado a los stakeholders, ya que el grupo de in-una nocin
ya que el grupo de inters de la aplicacin a desarrollar logra tener
de cmo ters
funciona
de laelaplicacin
sistema, permitiendo
a desarrollaridentificar los subsistemas
logra tener una nocin importantes
de cmo fun- y as asignar
personas ciona
encargadas
el sistema, permitiendo identificar los subsistemas importantes y de modelo
al desarrollo de los mismos de forma independiente. Este tipo
no son los
asnicos
asignarquepersonas
se utilizanencargadas
para representaciones
al desarrolloarquitectnicas
de los mismos pero
deesforma
uno de los ms
usados y independiente.
tiles por los diseadores de software.
Este tipo de modelo no son los nicos que se utilizan
para representaciones arquitectnicas pero es uno de los ms usados
Es difcilydecidir cmo descomponer un sistema en subsistemas pero siempre se debe crear un
tiles por los diseadores de software.
diseo que tenga relacin
Es difcil entre los
decidir cmo requerimientos
descomponer y subsistemas
un sistemadeenla subsistemas
aplicacin a desarrollar,
es decir, pero
si lossiempre
requerimientos en algn punto llegan a cambiar, este
se debe crear un diseo que tenga relacin entre cambiolossolo
re- afectar al
subsistema involucrado yy no
querimientos a todo el sistema.
subsistemas de la aplicacin a desarrollar, es decir, si
los requerimientos en algn punto llegan a cambiar, este cambio solo
afectar al subsistema involucrado y no a todo el sistema.
Definicin de la arquitectura del sistema 27
macin.
Cada subsistema tiene su propia base de datos lo que permite
intercambiar informacin con los dems subsistemas.
Los sistemas que almacenan mucha informacin utilizan una base de
datos compartida o repositorios de datos, por lo tanto este modelo
es adecuado para aplicaciones donde cada dato de un subsistema es
usado por otro, por ejemplo los sistemas de mando y control, los CAD,
las herramientas case, entre otros. En la figura 2 se puede observar
como una arquitectura de herramientas case utiliza el modelo de re-
positorios compartidos. Implementar este estilo organizacional genera
algunas ventajas y desventajas:
Tener un repositorio compartido nos ayuda a compartir de ma-
nera eficiente grandes cantidades de informacin.
Puede haber un bajo rendimiento si los modelos utilizados en
su sistema no se ajustan a los repositorios compartidos.
Sera difcil cambiar de un modelo que no use un repositorio a
uno que s, generar muchos costos, hasta puede ser imposi-
ble.
Los repositorios estn encargados de las copias de seguridad,
proteccin y el acceso a los datos.
Este modelo impone su poltica de uso a todos los subsistemas.
El modelo de comparticin es visible a travs del esquema del
Diseo de Sistemas 2015
repositorio.
Las nuevas herramientas se integran de forma directa puesto
En el casocapas
de que existan varias capas, cuando una capa que se encuentra en un nivel superior
adyacentes.
1.1.3. Estilos de descomposicin
pida un servicio, este servicio modular. muchas veces en diferentes capas
tendr que ser interpretado
hasta ser Una vez se Entonces
procesado. haya elegido
para el tipo este
evitar de organizacin delelsistema,
inconveniente, se procede
sistema tiene que comunicarse
directamente con las capas que se encuentran en un nivel ms bajo, en lugarmdulos
a elegir la aproximacin para descomponer cada sistema en de utilizar aquellos
servicios oque
subsistemas. Ya se
ofrecen las capas han visto varios estilos en la seccin 1.1.2, sin
adyacentes.
embargo, cada componente de estos mdulos son ms pequeos que
en los subsistemas, lo cual utilizar la descomposicin modular ser la
1.1.3. Estilos de descomposicin modular.
mejor opcin.
Para no confundir el concepto de un subsistema y un mdulo, se ana-
Una vez se haya elegido el tipo de organizacin del sistema, se procede a elegir la aproximacin
lizarn estos trminos por separado:
para descomponer cada sistema en mdulos o subsistemas. Ya se han visto varios estilos en la
Un subsistema se lo define como otro sistema dentro de un
mismo sistema, debido a que el funcionamiento de estos sub-
sistemas no requiere de los servicios de otros, ya que cada uno
tiene sus propios mdulos e interfaces permitiendo la comuni-
cacin entre ellos.
A un mdulo lo podemos definir como aquel componente propio
de un subsistema, el cual proporciona uno o varios servicios a
otros mdulos.
el funcionamiento de estos subsistemas no requiere de los servicios de otros, ya que
cada uno tiene sus propios mdulos e interfaces permitiendo la comunicacin entre
ellos.
2. A un mdulo lo podemos definir como aquel componente propio de un subsistema, el
cual proporciona uno o varios servicios a otros
Definicin de lamdulos.
arquitectura del sistema 33
Se puede
jeto definir
utilizaaatributos
la descomposicin orientada por
proporcionados a objetos como aquella descomposicin que
otro objeto.
tiene una relacin con las clases, atributos y mtodos. Los
Se puede definir a la descomposicin orientada a objetosobjetos se crean a partir
como de las clases,
aquella
por ejemplo, se tiene unaque
descomposicin clasetiene
factura
una con varios mtodos
relacin y esta clase
con las clases, a su vez
atributos utiliza otras
y m-
clases como la de cliente, pagos y recibos para realizar un proceso de facturacin.
todos. Los objetos se crean a partir de las clases, por ejemplo, se tiene
una clase factura con varios mtodos y esta clase a su vez utiliza otras
Se puede implementar objetos sin afectar a otros objetos. Un objeto se lo define como una
clases como la de cliente, pagos y recibos para realizar un proceso de
representacin del mundo real, debido a que se lo utiliza una y otra vez; en la programacin los
facturacin.
Se puede implementar objetos sin afectar a otros objetos. Un ob-
jeto se lo define como una representacin del mundo real, debido a
que se lo utiliza una y otra vez; en la programacin los objetos pueden
21
34 Molina J, Valarezo M, Zea M
Diseo de Sistemas 2015
ser utilizados varias veces, para ello existen lenguajes de programacin
objetos pueden ser
orientados utilizados
a objetos varias
que veces, este
nos ofrece para componente
ello existen lenguajes de programacin
arquitectnico.
orientados a objetos que nos ofrece este componente arquitectnico.
1.1.3.2.Descomposicin orientada a flujos de funciones.
1.1.3.2.Descomposicin orientada a flujos
En este tipo de descomposicin de funciones.transformaciones, las
se encuentran
cuales son funcionales, estas transformaciones procesan sus entradas
En este tipo como
y dan de descomposicin
resultado una se salida,
encuentran
estotransformaciones,
quiere decir que laslos
cuales
datossonvan
funcionales,
a
estas transformaciones
fluir de una funcinprocesan sus entradas
a otra, y dan como
y a medida que vanresultado una salida,
avanzando se esto
van quiere
a ir decir
que los datos van a fluir
transformando. de una funcin
Entonces a otra,
los datos y a medida
de entrada vanque van avanzando
a fluir por mediosedevan a ir
transformando. Entonces los datos
estas transformaciones de entrada
hasta que dvan
comoa fluir por medio
resultado undedato
estasde
transformaciones
salida.
hasta Estas
que d transformaciones
como resultado un dato de salida.
pueden serEstas transformaciones
realizadas ya sea en pueden ser realizadas
secuencia o ya
sea enensecuencia o
paralelo. en paralelo.
Este modelo se lo conoce como tubera o filtro, y se gua por la ter-
Este modelo
minologase lo
delconoce como
sistema tubera oLinux,
operativo filtro, la
y se guapermite
cual por la terminologa del sistema
conducir datos
operativo Linux, la cual permite conducir datos y comandos
y comandos que vendran a ser las transformaciones funcionales. Se que vendran a ser las
transformaciones funcionales. Se usa la palabra filtro debido a que las transformaciones filtran
usa la palabra filtro debido a que las transformaciones filtran todos los
todos los datos de entrada.
datos de entrada.
En la figura 6 observamos un ejemplo parecido a la descomposicin
En la figura 6 observamos un ejemplo parecido a la descomposicin anterior, aqu una empresa
anterior, aqu una empresa emite facturas a sus clientes. En cada se-
emite facturas a sus clientes. En cada semana se hace una comparacin entre los pagos con las
mana se hace una comparacin entre los pagos con las facturas, cada
facturas, cada factura pagada tiene un recibo y para aquellas factura que no han recibido un
factura pagada tiene un recibo y para aquellas factura que no han
pago dentro un plazo establecido se emite una reclamacin.
recibido un pago dentro un plazo establecido se emite una reclamacin.
Este ejemplo
Este ejemplo es undemodelo
es un modelo una partededeluna parte
sistema del sistema
de facturas. de facturas.
La diferencia La
con el modelo de
objetos es que este es ms abstracto.
1.1.4.Estilos de control.
En los puntos anteriores estudiamos como el modelo estructural nos
ayuda a descomponer un sistema en subsistemas, pero cada subsiste-
ma debe ser controlado para que los servicios que enve lleguen al lugar
correcto y al momento dispuesto. Ya que los modelos estructurales no
contienen un estilo de control, el diseador debe elegir que subsistema
lo tendr.
Existen dos estilos de control:
1. Control centralizado.
2. Control basado en eventos.
36 Molina J, Valarezo M, Zea M
1.1.4.1.Control centralizado.
En este modelo se selecciona un subsistema que se denominar con-
trolador del sistema, este ser el encargado de gestionar las tareas de
los otros subsistemas. Estos modelos centralizados se dividen en dos
clases:
Modelo llamada-retorno: es un modelo de subrutina en forma
de rbol descendente, su control comienza al iniciarse una su-
brutina y con cada llamada a otras subrutinas va bajando por
los niveles del rbol, este tipo de modelo solo se aplica a siste-
mas secuenciales.
Modelo gestor: a diferencia del modelo anterior, este modelo se
lo utiliza en sistemas concurrentes. Un componente del siste-
ma se disea como un gestor que controla los inicios y paradas
de los dems procesos de la aplicacin.
En la figura 7 observamos un modelo llamada-retorno, en donde el
programa principal puede contactar a cualquiera de sus tres rutinas, y
estas a su vez pueden llamar a mas subrutinas, cabe recalcar que no
es un modelo estructural.
Estas subrutinas en los lenguajes de programacin son llamadas
funciones, pero en los lenguajes orientados a objetos estas funciones
se las conoce como mtodos.
Este modelo permite entender con facilidad Diseo de Sistemas
los flujos 2015
de control
Este modelo tambin se lo conoce como ciclo de eventos, debido a que el proceso controlador
y conocer como el sistema va a responder a ciertas entradas, pero las
del sistema es el que toma la decisin de comenzar o finalizar un proceso. Para comprobar si un
excepciones
proceso que informacin
ha producido hay que controlar songenerar
el controlador un pocociclosmolestas.
una y otra vez para detectar
eventosEste modelo tambin se lo conoce como ciclo de eventos, debido
o cambios.
a que el proceso controlador del sistema es el que toma la decisin
1.1.4.2.Sistemas
de comenzar dirigidos porun
o finalizar eventos.
proceso. Para comprobar si un proceso ha
Estos modelos se guan por eventos que se generan externamente. El evento no solamente es
una seal binaria, tambin puede estar dentro de un rango de valores. La diferencia entre un
evento y una entrada es que el evento aparece fuera del control del proceso.
Definicin de la arquitectura del sistema 37
Los subsistemas no saben cules son los eventos que van a controlar, ni en qu momento van a
Diseo de Sistemas 2015
Este
unmodelo
eventonosse brinda
necesitarespuestas
de unarpidas al momento
respuesta de producirse
inmediata, por esouneste
evento pero la
modelo
programacin y sus validaciones son muy complejas, es difcil replicar patrones cuando se hace
se lo usa principalmente en sistemas de tiempo real.
pruebas en el sistema o cambiar algn sistema desarrollado por este modelo cuando la cantidad
Este modelo
de interrupciones nos brinda
se ve limitada respuestas
por el hardware usado. rpidas al momento
Si las interrupciones deelpro-
alcanzan lmite
del hardware, no funcionar ningn evento.
25
Definicin de la arquitectura del sistema 39
1.2 a laArquitecturas
Debido de sistemas
existencia de muchas redes, unadistribuidos.
interconexin puede ser imposible. Las
Actualmente
caractersticas los grandes
funcionales sistemas
estn definidas son
en cada capadistribuidos, ya que toda
pero no las no funcionales. la in-el
Entonces
deber de los desarrolladores
formacin procesada es esdedistribuida
crear sus propias facilidades
en varias y obviar algunas
computadoras, en capas del
vez de
modelo, logrando disear caractersticas para mejor el rendimiento
tenerla en una sola mquina como lo hacen los sistemas centralizados.de la aplicacin.
Entre las ventajas que proporcionan los sistemas distribuidos tene-
Otro modelo de referencia que se usa es para herramientas CASE, la cual contiene cinco niveles
mos:
de servicios: Servicios de repositorio de datos, servicios de integracin de datos, servicios de
1. Compartir
gestin recursos
de tareas, servicios hardware
de mensajes y software
y servicios a de
de interfaz travs de la red.
usuario.
2. Son sistemas abiertos que se disean sobre un protocolo estndar.
3. Existe concurrencia, ya que varios procesos se ejecutan a la vez en
diferentes computadoras. 26
4. Existe escalabilidad, ya que si es necesario se puede aadir nuevos
recursos al sistema.
Definicin de la arquitectura del sistema 41
Si un software tiene muchos procesos no significa que siempre ser un sistema distribuido. Para
operadores
tener toman
una distribucin decisiones
se necesita de msy de
envan las respectivas
un procesador. luces
En el captulo 2 sedeexplicar
los se-la
mforos. de diseo para aplicaciones de tiempo real.
aproximacin
Si un software tiene muchos procesos no significa que siempre ser un
1.2.2. Arquitecturas
sistema distribuido.cliente-servidor.
Para tener una distribucin se necesita de ms de
un procesador. En el captulo 2 se explicar la aproximacin de diseo
En los temas anteriores ya se ha tratado brevemente sobre las arquitecturas cliente-servidor.
para
Para aplicaciones
recordar, deconjunto
estas son un tiempodereal.
servicios que sern utilizados por un con conjunto de
usuarios que los requieran.
Los1.2.2.
clientes deben saber que servidores
Arquitecturas estn libres, pero un cliente no sabe que otro cliente est
cliente-servidor.
queriendo
En losacceder
temasa anteriores
los mismos servicios.
ya se ha Cliente y servidor
tratado son dos procesos
brevemente sobredistintos,
las arqui-en la
figura 12 se logra evidenciar esto, mediante un modelo lgico.
tecturas cliente-servidor. Para recordar, estas son un conjunto de ser-
vicios que sern utilizados por un con conjunto de usuarios que los
requieran.
28
Definicin de la arquitectura del sistema 43
Los clientes deben saber que servidores estn libres, pero un clien-
te no sabe que otro cliente est queriendo acceder a los mismos servi-
Diseo de Sistemas 2015
cios.
Una Cliente cliente
arquitectura y servidor
- servidorson dos procesos
representa distintos,
la estructura lgica de laenaplicacin
la figura 12 se
a desarrollar.
Esto se detalla
logra en la figura
evidenciar esto,13, donde12.
mediante
Figura observamos un sistema
un modelo
Sistema cliente estructurado en tres capas. La capa
lgico.
servidor.
de presentacin permite la interaccin
Una arquitectura cliente -y servidor
visualizacin de la informacin
representa al usuario, la
la estructura capa de
lgica
Una arquitecturarepresenta
procesamiento cliente - servidor representa la estructuray lgica de ladeaplicacin a desarrollar.
de la aplicacin a desarrollar. Esto se detalla en la figura 13, dondelas
la lgica de la aplicacin la capa gestin son todas
Esto se detallaque
operaciones en se
la pueden
figura 13, dondeenobservamos
realizar un sistema estructurado en tres capas. La capa
la base de datos.
observamos un sistema estructurado en tres capas. La capa de pre-
de presentacin permite la interaccin y visualizacin de la informacin al usuario, la capa de
sentacin permite
procesamiento representa lala interaccin y visualizacin
lgica de la aplicacin y la capadedelagestin
informacin
son todasallas
usuario,que
operaciones la se
capa de realizar
pueden procesamiento
en la base derepresenta
datos. la lgica de la aplicacin
El modelo cliente - servidor ms simple es el de dos capas, en donde una aplicacin se establece
como un servidor con muchos Figura clientes.13.
Estas arquitecturas
Sistema pueden ser de dos tipos, tal como se
de tres capas.
observa en la figura 14:
Elymodelo
la capa cliente
de -gestin
servidor ms
sonsimple
todas es las
el deoperaciones
dos capas, en donde
que unase aplicacin
pueden se establece
realizar
como un Modelo
en1.la servidor
base con
de
de muchos
cliente
datos. clientes.
ligero: Estas arquitecturas
El procesamiento pueden ser
de la aplicacin de dos
como tipos, tal
la gestin de como se
los datos
observa en
lo la figurael14:
maneja servidor, el cliente solo es la presentacin del software.
El modelo cliente - servidor ms simple es el de dos capas, en donde
2. Modelo de cliente pesado: El servidor solo se dedica a gestionar los datos, el cliente
una aplicacin se establece como un servidor con muchos clientes.
1. Modelo departe
realiza la cliente ligero:
lgica de El procesamiento
la aplicacin y las de la aplicacin
interacciones concomo
otroslausuarios.
gestin de los datos
lo maneja el servidor, el cliente solo es la presentacin del software.
2. Modelo de cliente pesado: El servidor solo se dedica a gestionar los datos, el cliente
realiza la parte lgica de la aplicacin y las interacciones con otros usuarios.
44 Molina J, Valarezo M, Zea M
Un inconveniente del modelo de dos capas con clientes ligeros es la gran carga de procesos en
el servidor los
y endatos,
la red,elyacliente
que el realiza
servidor la
realiza
partegran parte de
lgica del la
trabajo, ocasionando
aplicacin y lasla
disminucin del tiempo de respuesta para los clientes.
interacciones con otros usuarios.
EnUn inconveniente
cambio el modelo de dosdelcapas
modelo de dos
con clientes capas
pesados con clientes
distribuye este trabajo,ligeros
tanto dees la
la parte
grandecarga
lgica de procesos
la aplicacin en el servidor
como la presentacin y en
al cliente. Un la red, de
ejemplo yaeste
quemodeloel servidor
se observa
enrealiza
la figuragran
15, losparte delbancarios
sistemas trabajo, ocasionando
ATM, la disminucin
donde el mainframe del tiempo
o servidor procesa la cuenta
deldecliente en la base de datos
respuesta para los clientes. y cada ATM o cliente no se conecta directamente con esta, sino
con el Enmonitor
cambio el modelo de dos capas con clientes pesados distribuye y
de teleproceso, el cual se define como un sistema middleware que selecciona
ordena las comunicaciones de los clientes para realizar sus respectivas transacciones. El uso de
este trabajo, tanto de la parte lgica de la aplicacin como la presenta-
transacciones serializadas permite que la aplicacin se recupere de cualquier fallo sin daar los
cin
datos delalsistema.
cliente. Un ejemplo
El inconveniente de de
esteeste
modelomodelo sela observa
radica en endelasu figura
complejidad gestin. 15,
los sistemas bancarios ATM, donde el mainframe o servidor procesa la
cuenta del cliente en la base de datos y cada ATM o cliente no se conec-
ta directamente con esta, sino con el monitor de teleproceso, el cual se
define como un sistema middleware que selecciona y ordena las comu-
nicaciones de los clientes para realizar sus respectivas transacciones.
El uso de transacciones serializadas permite que la aplicacin se recu-
Figura 15. Sistema bancario ATM.
Conpere de cualquier
la aparicin fallo sin
de lo mviles, se hadaar los datos
desarrollado del sistema.
aplicaciones El entres
intermedias inconveniente
los modelos
de de este
cliente modelo
ligero radica
y pesado. Estasen la complejidad
aplicaciones de su gestin.
puedan descargase en el cliente como un cdigo
digital loCon
cual ayudada a disminuir
la aparicin la carga
de lo en el servidor.
mviles, se ha desarrollado aplicaciones in-
termedias entres los modelos de cliente ligero y pesado. Estas aplica-
Un modelo de dos capas con clientes ligeros tiene un problema en la escalabilidad o el
ciones puedan descargase en el cliente como un cdigo digital lo cual
rendimiento del sistema, ya que las tres capas lgicas deben unirse con dos computadoras para
ayudada a disminuir la carga en el servidor.
el cliente y el servidor, en el caso de un modelo de cliente pesado el problema estara con la
gestin Un modeloComo
del sistema. de dos capas
solucin se con
podraclientes
usar unaligeros tiene
arquitectura un problema
cliente servidor de en
tres
la escalabilidad
capas, como se la muestrao en
el la
rendimiento
figura 16, todasdel sistema,
estas capas sonya que las
procesos tres capas
lgicamente l-
separados
quegicas
se ejecutan
debenen procesadores
unirse condiferentes.
dos computadoras para el cliente y el servidor,
en el caso de un modelo de cliente pesado el problema estara con la
gestin del sistema. Como solucin se podra usar una arquitectura
cliente servidor de tres capas, como se la muestraDiseo
en la de Sistemas
figura 2015
16, todas
30
Para entender
estas mejorson
capas un modelo clientelgicamente
procesos servidor de tres capas, observamos
separados que seenejecutan
la figura 17en un
sistema bancario por internet,
procesadores diferentes. su base de datos le proporciona al sistema un servicio de gestin
de datos; un servidor web proporciona servicios de aplicacin tales como transferir su dinero,
Para entender mejor un modelo cliente servidor de tres capas,
generar estados de cuenta para sus clientes y pagar factura; el cliente es la computadora del
observamos en la figura 17 un sistema bancario por internet, su base
usuario conectada a internet. Entonces se puede decir que este sistema es escalable debido a que
se de datos
puede le nuevos
aadir proporciona
servidoresal web
sistema
siempreunyservicio
cuando los de clientes
gestincrezcan.
de datos;Usar un
una
servidordeweb
arquitectura tres proporciona
capas permite alservicios de aplicacin
sistema optimizar tales como
toda transferencia que setransferir
d entre el
servidor y la base
su dinero, de dato;estados
generar para recuperar la informacin
de cuenta para sus se clientes
utiliza un ymiddleware que sea
pagar factura;
compatible y soporte consultas SQL.
el cliente es la computadora del usuario conectada a internet. Enton-
ces se puede decir que este sistema es escalable debido a que se puede
aadir nuevos servidores web siempre y cuando los clientes crezcan.
Usar una arquitectura de tres capas permite al sistema optimizar toda
transferencia que se d entre el servidor y la base de dato; para recu-
generar estados de cuenta para sus clientes y pagar factura; el cliente es la computadora del
usuario conectada a internet. Entonces se puede decir que este sistema es escalable debido a que
se puede aadir nuevos servidores web siempre y cuando los clientes crezcan. Usar una
arquitectura de tres capas permite al sistema optimizar toda transferencia que se d entre el
servidor y la base de dato; para recuperar la informacin se utiliza un middleware que sea
46 Molina J, Valarezo M, Zea M
compatible y soporte consultas SQL.
Figura 17. Modelo cliente servidor de tres capas Sistema bancario en internet.
Cuandola
perar unainformacin
aplicacin necesite
se acceder
utilizaoun usar middleware
datos de algunasque
basessea
de datos, se puede usar
compatible y un
sistema multicapa, para esto se coloca un servidor de integracin entre la aplicacin y la base de
soporte consultas SQL.
datos, entonces el servidor de integracin recoge los datos necesitados y los presentar al usuario
Cuando
como si seuna aplicacin
hubieran necesite
obtenido de una sola acceder o usar datos de algunas bases
base de datos.
de datos, se puede usar un sistema multicapa, para esto se coloca un
servidor de integracin
1.2.3. Arquitecturas entre distribuidos.
de objetos la aplicacin y la base de datos, entonces
el servidor de integracin recoge los datos necesitados y los presentar
Los clientes y los servidores son diferentes cuando se trata de un cliente-servidor de un sistema
al usuario como si se hubieran obtenido de una sola base de datos.
distribuido. Los clientes reciben servicios de los servidores, no de los clientes y los servidores
pueden ser clientes al recibir servicios de otro servidor. Cada cliente conoce los servicios que
1.2.3. Arquitecturas
ofrecen los servidores y comode objetos distribuidos.
contactarlos.
Los clientes y los servidores son diferentes cuando se trata de un clien-
Los sistemas de
te-servidor distribuidos
un sistema tratan distribuido.
de eliminar la diferencia que existe
Los clientes recibenentreservicios
cliente y servidor,
de
diseando
los algo que
servidores, nosedeconoce como arquitectura
los clientes de objetos pueden
y los servidores distribuidos,
serenclientes
la figuraal18 se
observa servicios
recibir esta arquitectura,
de otro la servidor.
cual est formada por objetos
Cada cliente conoceque realizan llamadasque
los servicios a estos
servicios sin necesidad de distincin lgica entre los clientes y el servidor. Estos objetos estn
ofrecen los servidores y como contactarlos.
distribuidos en varias computadoras conectadas red, comunicndose a travs de un middleware
Los sistemas
el cual brinda unadistribuidos tratan
interfaz transparente delos
a todos eliminar la diferencia que existe
objetos existentes.
entre cliente y servidor, diseando algo que se conoce como arquitectu-
ra de objetos distribuidos, en la figura 18 se observa esta arquitectura,
la cual est formada por objetos que realizan llamadas a estos servicios 31
sin necesidad de distincin lgica entre los clientes y el servidor. Es-
tos objetos estn distribuidos en varias computadoras conectadas red,
comunicndose a travs de un middleware el cual brinda una interfaz
transparente a todos los objetos existentes.
Las ventajas de este modelo son las siguientes:
Permite al diseador del sistema aplazar decisiones sobre dn-
de y cmo brindar estos servicios.
Las ventajas de este modelo son las siguientes:
Se puede
La arquitectura reconfigurar
de objetos distribuidoselnos
sistema
ayuda a dinmica
estructurar yusando
organizarlael migracin
sistema. Se debe
proporcionar las funcionalidades
de objetos en red. del software en trminos de servicios y sus combinaciones,
para
La luego identificarde
arquitectura como entregar
objetos estos serviciosnos
distribuidos con ayuda
la ayuda adeestructurar
varios objetos distribuidos.
y orga-
nizar el sistema. Se debe proporcionar las funcionalidades del software
De manera opcional se puede implementar sistemas cliente - servidor usando aproximaciones de
en trminos de servicios y sus combinaciones, para luego identificar
objetos distribuidos, donde el modelo lgico del sistema vendra a ser un modelo cliente -
como
servidorentregar estos yservicios
pero los clientes servidorescon la ayuda
se deben de varios
implementar objetos
como objetos distribui-
distribuidos, esto se
dos.
hace con el fin de realizar cambios en el sistema de una manera ms sencilla, por ejemplo se
puede
Decambiar
manera un sistema
opcionalque tenga el modelo
se puede de dos capas a un
implementar sistema que
sistemas tenga multicapas
cliente - ser- y
para eso el servidor y el cliente no pueden ser un objeto distribuido
vidor usando aproximaciones de objetos distribuidos, donde el modelo nico, al contrario debe estar
compuesto por varios objetos para proporcionar servicios especializados.
lgico del sistema vendra a ser un modelo cliente -servidor pero los
clientes y servidores se deben implementar como objetos distribuidos,
Usar una arquitectura de objetos distribuidos es mejor que usar una aplicacin cliente-servidor
esto sesiguientes
por las hace con el fin de realizar cambios en el sistema de una mane-
razones.
ra ms sencilla, por ejemplo se puede cambiar un sistema que tenga
el modelo 1. de El
dos capas
modelo a un
lgico sistema
del sistema no que tenga multicapas
tiene provisin de servicios. y para eso
el servidor2. y Se el puede
cliente aadir
no bases
puedende datos
ser alunsistema,
objeto ya distribuido
que estas pueden estar en
nico, al otro
objeto distribuido.
contrario debe estar compuesto por varios objetos para proporcionar
3. Se puede aadir nuevas relaciones cada vez que se aade un nuevo objeto.
servicios especializados.
Usar una arquitectura de objetos distribuidos es mejor que usar
La implementacin de una arquitectura de objetos distribuidos, es ms compleja que la de una
una aplicacin
arquitectura cliente cliente-servidor
- servidor. por las siguientes razones.
1. El modelo lgico del sistema no tiene provisin de servicios.
2. Se puede aadir bases de datos al sistema, ya que estas pueden es-
tar en otro objeto distribuido.
3. Se puede aadir nuevas relaciones cada vez que se aade un nuevo
32
48 Molina J, Valarezo M, Zea M
objeto.
La implementacin de una arquitectura de objetos distribuidos, es ms
compleja que la de una arquitectura cliente - servidor.
1.2.3.1. CORBA.
En la seccin anterior se aprendi que para implementar la arquitec-
tura de objetos distribuidos se necesita un middleware (software que
permite intermediarios de peticiones entre objetos) para poder tener
comunicacin entre objetos. Antes, cada objeto en el sistema se lo im-
plementaba usando cualquier tipo de lenguaje de programacin y se
podan ejecutar en diferentes sistemas operativos, por lo tanto el midd-
leware nos facilita este trabajo.
Se utilizan dos niveles de middleware para la arquitectura de objetos
distribuidos:
1. Nivel de comunicacin lgica: El middleware nos otorga funcio-
nalidades para que los objetos puedan intercambiar datos entre dife-
rentes computadoras. Existen estndares que nos permiten tener una
comunicacin lgica entre objetos de distintas plataformas, entre ellas
CORBA y COM.
2. Nivel de componentes: El middleware nos otorga una base para
comenzar a desarrollar componentes que sean compatibles entre s.
Existen estndares como CORBA o Active X.
En esta nueva seccin se hablar sobre el estndar CORBA y como
soporta middleware para las comunicaciones lgicas de objetos. Estos
estndares fueron creados por OMG (Object Mangament Group), los
cuales estn a cargo de todo lo relacionado al desarrollo orientado a
objetos.
En la figura 1.19 se muestra como la visin de OMG se ha adapto al
diagrama de Siegel de la arquitectura de administracin de objetos,
donde propone que un sistema distribuido este formado por los si-
guientes componentes:
Los objetos de aplicacin propios.
Los objetos definidos por OMG.
Los servicios fundamentales CORBA.
Facilidades CORBA horizontales.
CORBA:
Modelo de objetos CORBA.
Un intermediario de peticiones de objetos. 33
Conjunto de servicios de objetos.
Conjunto de componentes verticales u horizontales.
El modelo de objetos CORBA considera que un objeto es una encap-
sulacin de atributos y servicios, sin embargo, cada objeto debe tener
por separado una interfaz que lo defina. Si un objeto quiere tener los
servicios de otro debe hacerlo usando la interfaz IDL. CORBA tiene un
identificador llamado IOR, cuya funcin de es llamar a un objeto cuan-
do este necesite los servicios de otro.
El intermediario de peticiones de objeto conoce que objeto est pi-
diendo usar los servicios y sus interfaces. Todos los objetos se comu-
nican entre s a travs del ORB, al momento de comunicarse estos no
necesitan saber cul es su localizacin e implementacin. En la figura
20 se observa dos objetos que se comunican usando ORB, donde el ob-
jeto 1 hace una llamada al stub IDL que define el servicio solicitado. El
otro objeto que proporciona el servicio, tiene asociado un skeleton IDL,
este se encarga de traducir las peticiones de las llamadas al lenguaje
de implementacin que est utilizando. Cuando se ejecute el mtodo,
skeleton IDL se encarga de traducir estos resultados y los enva a IDL
para que este pueda acceder al objeto que inicio la llamada. Si un obje-
to usa servicios de otra parte y tambin proporciona servicios a otros,
necesita usar un skeleton IDL y un stub IDL.En un sistema distribuido
de implementacin que est utilizando. Cuando se ejecute el mtodo, skeleton IDL se encarga
de traducir estos resultados y los enva a IDL para que este pueda acceder al objeto que inicio la
llamada. Si un objeto usa servicios de otra parte y tambin proporciona servicios a otros,
necesita usar un skeleton IDL y un stub IDL.En un sistema distribuido cada computadora tendr
su 50
propio intermediario de peticiones,
Molina J, Valarezo M, Zea M el cual manejar todas las invocaciones locales de
objetos. Sin embargo, una peticin de un servicio proporcionado por un objeto remoto requiere
cada computadora
comunicaciones inter-ORB.tendr su propio intermediario de peticiones, el cual
manejar todas las invocaciones locales de objetos. Sin embargo, una
otros.
Estos Estos
sistemas son sistemas son para
de mucha ayuda considerados
los negocios, como
debido aprocesamientos por lo-de
que gestionan los procesos
pago
tes,deyasalarios,
que cadaclculos
datodees
facturas, entrey otros.
incluido extradoEstos
desistemas
una baseson de
considerados
datos o como
un
procesamientos por lotes,
fichero en forma de lote. ya que cada dato es incluido y extrado de una base de datos o un
ficheroElenprocesamiento
forma de lote. por lotes se divide en tres componentes, tal como
se observa en la figura 23, la entrada rene datos de una o ms fuen-
El procesamiento por lotes se divide en tres componentes, tal como se observa en la figura 23, la
tes, el
entrada proceso
rene datos dede
unadatos
o ms se encarga
fuentes, de realizar
el proceso de datos selos clculos
encarga usando
de realizar las
los clculos
usando las entradas obtenidas y la salida genera un resultado para guardarlo en una base de en
entradas obtenidas y la salida genera un resultado para guardarlo dato.
Ununa base
ejemplo de de
estedato.
sistemaUnes elejemplo deelectrnicas,
de facturas este sistema
ya quees el los
toma dedatos
facturas elec- y
de un cliente
detrnicas,
los productos
ya de
quela toma
base delosdatos (entrada),
datos de un luego calculay los
cliente de valores correspondientes
los productos de laal
valor a pagar (proceso) y por ltimo procede a imprimir el comprobante
base de datos (entrada), luego calcula los valores correspondientes al (salida).
Usar un diagrama de flujo es muy til para describir el funcionamiento de los sistemas de
procesamiento de datos. Una de las ventajas de utilizar diagramas de flujo para representar estos
sistemas es que se puede visualizar todo el procesamiento de datos desde que inicia la entrada
56 que finaliza
hasta Molina J, Valarezo M, Zea M
(salida).
tectura de la aplicacin.
Su modelo arquitectnico es muy fcil de implementar, la parte compleja de este sistema radica
en los datos que se van a procesar, entonces cuando se va a disear la arquitectura del sistema se
1.3.2.
debe pensar Sistemas de procesamiento
en la arquitectura de los datos as comode transacciones.
se piensa en la arquitectura de la aplicacin.
Estos sistemas fueron diseados para procesar peticiones de los usua-
1.3.2.
rios Sistemas de procesamiento
con el objetivo de obtener de transacciones.
o actualizar informacin de una base
de datos. Una transaccin es una secuencia de operaciones que se la
Estos sistemas fueron diseados para procesar peticiones de los usuarios con el objetivo de
toma como una unidad atmica, todas estas operaciones deben ser
obtener o actualizar informacin de una base de datos. Una transaccin es una secuencia de
confirmadas
operaciones que seantes
la toma decomo
realizar el guardado
una unidad atmica, en la base
todas de datos. deben
estas operaciones Comoser
un ejemplo
confirmadas antesde
de transaccin se puede
realizar el guardado mencionar
en la base a ununcliente
de datos. Como ejemplosolicitar el
de transaccin
se retiro
puede mencionar a un cliente solicitar el retiro de su dinero utilizando
de su dinero utilizando un cajero automtico, para esto se ne- un cajero automtico,
para esto sesaber
cesita necesita
lasaber
cuenta la cuenta del cliente,ver
del cliente, ver cunto
cunto saldo
saldotiene, modificar
tiene, su saldo ysu
modificar dar
el dinero respectivo, hasta que no se cumpla todo esto la base de datos no se debe modificar.
saldo y dar el dinero respectivo, hasta que no se cumpla todo esto la
base de datos no se debe modificar.
En la figura 24 se observa como es la estructura de aplicaciones del procesamiento de
En la donde
transacciones, figuraun24usuario
se observa
realiza unacomo es lautilizando
peticin estructura de aplicaciones
el procesamiento e/s, esta
del procesamiento
peticin es procesada por de transacciones,
el componente donde
de la lgica unaplicacin,
de la usuariopara realiza
luegounaenviarpe-
esta
transaccin a su gestor, elelcual
ticin utilizando funciona utilizando
procesamiento unaesta
e/s, base de datos. es procesada por
peticin
Laelestructura
componente de la lgica
de entrada-proceso de laseaplicacin,
y salida para
lo ve en muchas luego enviar
aplicaciones esta tran-
de transacciones y de
procesamientos de datos, muchos de estos sistemas son interactivos
saccin a su gestor, el cual funciona utilizando una base de datos. y funcionan en un sistema
de procesamiento por lotes,
La estructura depor ejemplo en los bancos
entrada-proceso cuando se
y salida los lo
clientes
ve endurante
muchas el daapli-
realiza
transacciones y en la noche estas transacciones se ejecutan por lotes en conjunto con la base de
caciones de transacciones y de procesamientos de datos, muchos de
datos. Este proceso se lo observa en la figura 25.
estos sistemas son interactivos y funcionan en un sistema de proce-
samiento por lotes, por ejemplo en los bancos cuando los clientes du-
rante el da realiza transacciones y en la noche estas transacciones se
ejecutan por lotes en conjunto con la base de datos. Este proceso se lo 39
observa en la figura 25.
Otro ejemplo de este sistema de transaccin es un sistema de cuen-
tas bancarias, en donde los usuarios pueden extraer su dinero de un
cajero automtico, el cual est formado por dos ATM y una base de
datos. En la figura 26 se observa dicho proceso, en donde se usa un
monitor de teleprocesamiento para manejar entradas y serializar tran-
Diseo de Sistemas 2015
Otro ejemplo de este sistema de transaccin es un sistema de cuentas bancarias, en donde los
usuarios pueden extraer su dinero de un cajero automtico, el cual est formado por dos ATM y
una base de datos. En la figura 26 se observa dicho proceso, en donde se usa un monitor de
teleprocesamiento para manejar entradas y serializar transacciones, las cuales le sirve a la base
de datos como consultas. Entonces se puede decir que el procesamiento de consultas se da en la
base de datos. Despus estos resultados se los vuelve a enviar al monitor de teleprocesamiento
Figura de
y este se va a encargar 25.registrar
Sistema los
de transacciones
terminales quebancarias usandoestas
han solicitado un ATM.
peticiones. Al final el
sistema se encargar de organizar estos datos y entregar el resultado de la transaccin.
Otro ejemplo de este sistema de transaccin es un sistema de cuentas bancarias, en donde los
usuarios pueden extraer su dinero de un cajero automtico, el cual est formado por dos ATM y
una base de datos. En la figura 26 se observa dicho proceso, en donde se usa un monitor de
teleprocesamiento para manejar entradas y serializar transacciones, las cuales le sirve a la base
de datos como consultas. Entonces se puede decir que el procesamiento de consultas se da en la
base de datos. Despus estos resultados se los vuelve a enviar al monitor de teleprocesamiento
y este se va a encargar de registrar los terminales que han solicitado estas peticiones. Al final el
sistema se encargar de organizar estos datos y entregar el resultado de la transaccin.
Si existe una interaccin entre un sistema con la base de datos compartida entonces este sistema
puede ser uno basado en transacciones. El objetivo de un sistema de informacin es dar acceso a
una gran cantidad de informacin, como un sistema de biblioteca o los registros de trabajadores. 40
La figura 27 representa un modelo general de un sistema de informacin, donde cada capa
58 Molina J, Valarezo M, Zea M
informacin,
Esta arquitectura enpuede
por capas la figura 29 sede observa
considerarse las Por
varias formas. capas que
ejemplo en conforman
un software deun
sistemassistema de asignacin
de informacin de recursos.
cada capa puede ser un componente de gran escala que se ejecute en un
servidorEsta
distinto. Cada capa tiene
arquitectura porinterfaces
capasexternas
puedeyconsiderarse
la comunicacin de que varias
se da travs de estasPor
formas.
interfaces.
ejemplo en un software de sistemas de informacin cada capadepuede
En el caso de que el sistema se ejecute en una sola computadora, las capas en
medio ser
se lasunpuede
componente de gran escala que se ejecute en un servidor la
implementar de tal forma que se haga un solo programa, permitiendo dis-
comunicacin directa con la base de datos usando sus Apis.
tinto. Cada capa tiene interfaces externas y la comunicacin que se da
travs
La interfaz de en
grfica estas interfaces.
un sistema En el caso
de informacin de quedeelrecursos
y de gestin sistema se laseimplementa
ejecute en
una sola computadora, las capas de en medio se las puede implemen-
usando un navegador web. Como se observa en la figura 30, un servidor web se encarga de las
tar de tal
comunicaciones queforma quehace,
el usuario se haga
y un un solodeprograma,
servidor aplicacionespermitiendo la comuni-
se encarga de integrar la
lgica de la aplicacin.
cacin directaUn servidor
con de base
la base de datos
de datos se encarga
usando susdeApis.
trasladar la informacin
hasta la base
La de datos. Al
interfaz usar varios
grfica en unservidores
sistema aumentar el rendimiento
de informacin del sistema,
y de gestin de re-
ejecutando transacciones con mayor rapidez.
cursos se la implementa usando un navegador web. Como se observa
servidor distinto. Cada capa tiene interfaces externas y la comunicacin que se da travs de estas
interfaces. En el caso de que el sistema se ejecute en una sola computadora, las capas de en
medio se las puede implementar de tal forma que se haga un solo programa, permitiendo la
comunicacin directa con la base de datos usando sus Apis.
60 Molina J, Valarezo M, Zea M
La interfaz grfica en un sistema de informacin y de gestin de recursos se la implementa
usando
en la un navegador
figura 30, unweb.servidor
Como se web
observa
seen la figura de
encarga 30, un
lasservidor web se encargaque
comunicaciones de las
comunicaciones
el usuario hace, y un servidor de aplicaciones se encarga de integrar la la
que el usuario hace, y un servidor de aplicaciones se encarga de integrar
lgica de la aplicacin. Un servidor de base de datos se encarga de trasladar la informacin
lgica de la aplicacin. Un servidor de base de datos se encarga de tras-
hasta la base de datos. Al usar varios servidores aumentar el rendimiento del sistema,
ladar la transacciones
ejecutando informacin conhasta la base de datos. Al usar varios servidores
mayor rapidez.
aumentar
1.3.3. Sistemas el de
rendimiento
procesamiento deldesistema,
eventos. ejecutando transacciones con
mayor rapidez.
La caracterstica
1.3.3. ms destacable
Sistemas del procesamiento
de procesamiento dedeeventos.
eventos es que son impredecibles. Estos
sistemas deben ser capaces de controlarlos cuando sucedan. Algunos sistemas como estos son
La caracterstica ms destacable del procesamiento de eventos es que
los procesadores de texto, juegos y de presentacin, en donde el sistema detecta e interpreta los
son impredecibles. Estos sistemas deben ser capaces de controlarlos
eventos.
cuando
Los sistemassucedan.
en tiempoAlgunos
real, son sistemas como estos
otro claro ejemplo de esteson
tipolos
de procesadores de se
procesos, pero este
texto, juegos
diferencia porque ylos
deeventos
presentacin, en donde
estn asociados el sistema
con actuadores detecta
del sistema e interpreta
o servidores, como se
debe tener una respuesta para este tipo de eventos existen conjuntos de procesos cooperativos.
los eventos.
Los sistemas en tiempo real, son otro claro ejemplo de este tipo de
Los sistemas de edicin nos permiten editar documentos tales como imgenes, texto, entre otros.
procesos, pero este se diferencia porque los eventos estn asociados con
Algunos de estos tienen funciones especficas. Estos sistemas de edicin tienen caractersticas
actuadores del sistema o servidores, como se debe tener una respuesta
que las diferencian de los dems sistemas:
para este tipo de eventos existen conjuntos de procesos cooperativos.
1.LosEste
sistemas de edicin
tipo de sistema nosunpermiten
es usado por editar
nico usuario documentos
a la vez, tales
evitando lidiar con los como
mltiples
accesos y la
imgenes, concurrencia
texto, en la aplicacin.
entre otros. Algunos de estos tienen funciones especfi-
cas. Estos sistemas de edicin tienen caractersticas que las diferencian
de los dems sistemas:
1. Este tipo de sistema es usado por un nico usuario a la vez, evitando 42
lidiar con los mltiples accesos y la concurrencia en la aplicacin.
2. Deben permitir la recuperacin de la informacin almacenada en la
memoria voltil al ocurrir un fallo en el sistema.
3. Debe existir facilidad de guardado y recuperacin automtica de in-
formacin.
La arquitectura genrica se la define como un grupo de objetos que
interactan entre s, y estos objetos pueden ser activos o pasivos, los
cuales operan concurrentemente y actualizan la estructura de datos.
Estos componentes se las pueden visualizar en la Figura 31:
1. Pantalla. Estos eventos detecta las coordenadas de la pantalla y son
3. Debe existir facilidad de guardado y recuperacin automtica de informacin.
La arquitectura genrica se la define como un grupo de objetos que interactan entre s, y estos
objetos pueden ser activos o pasivos, los cuales operan concurrentemente y actualizan la
estructura de datos. Estos componentes se las pueden visualizar
Definicin en la Figura
de la arquitectura del 31:
sistema 61
enviados
1. Pantalla. a un
Estos objeto
eventos quelas
detecta secoordenadas
encarga del de laprocesamiento de losa eventos
pantalla y son enviados un objeto
2. Evento.
que se encargaEste ente se origina
del procesamiento de los por un evento desde la pantalla, luego es
eventos
2. Evento.
enviado Este enteinterpretador
a un se origina por unde evento
comando desdeellamismo
pantalla,que
luego es enviado
detecta a un
acciones
interpretador de comando el mismo
por el mouse, el teclado u otro objeto. que detecta acciones por el mouse, el teclado u otro
objeto.
3. Orden. Este objeto procesa los comandos originados por el objeto
3. Orden. Este objeto procesa los comandos originados por el objeto accionado y hace una
accionado y hace una llamada al mtodo idneo que ejecute el proceso.
llamada al mtodo idneo que ejecute el proceso.
4. Editor
4. Editor de Este
de datos. datos. Estesirve
comando comando sirveypara
para actualizar actualizar
visualizar y visualizar
los datos ya modificados. los
datosauxiliares.
5. Datos ya modificados.
Los editores tambin controlan otras funciones como son los estilos y
preferencias
5. Datos del usuario, como
auxiliares. Losejemplo se tienetambin
editores la revisincontrolan
ortogrfica. otras funciones
6. Sistema
como sonde ficheros.
los estilos y preferencias del usuario, como ejemplo se tiene
7. Visualizacin. Este se encarga de visualizar los objetos y presentar los ltimos cambios
la revisin ortogrfica.
realizados.
6. Sistema de ficheros.
mismo
Estos quedeejecuta
sistemas segnson
procesamiento lasusados
instrucciones
principalmentedadas y da comometa-CASE
en herramientas salida loses
decir, herramientas
datos capaces de crear herramientas CASE, en las cuales se especifica la solucin
ya interpretados.
como una sistemas
Estos descripcin de
de los datos, reglas y analizadas
procesamiento son usados sintctica y semnticamente.
principalmente en En
he-la
Figura 33 se puede visualizar la arquitectura genrica de los traductores:
rramientas meta-CASE es decir, herramientas capaces de crear he-
rramientas CASE, en las cuales se especifica la solucin como una
1. Usa un analizador lxico: Posee entradas de smbolos de lenguaje y este pasa a convertirse
descripcin de los datos, reglas y analizadas sintctica y semntica-
en un formato interno.
2. mente.
Una tablaEn de la Figura
smbolos: 33 se informacin
Contiene puede visualizar la arquitectura
sobre los objetos a traducir. genrica de
3. los
Un traductores:
analizador sintctico: Verifica la sintaxis del lenguaje.
4. 1.
UnUsa
rbolun
sintctico: indica como
analizador es laPosee
lxico: estructura interna del
entradas deprograma.
smbolos de lenguaje y
5. Un analizador semntico: Comprueba si el texto de lenguaje de entrada est correctamente
este pasa a convertirse en un formato interno.
escrito, utilizando al rbol sintctico y la tabla de smbolos.
2. Una tabla de smbolos: Contiene informacin sobre los objetos a
6. Un generador de cdigo: Recorre el rbol sintctico y genera cdigo de mquina abstracta.
traducir.
Los3.componentes
Un analizador de un sintctico: Verifica la sintaxis
sistema de procesamiento de lenguajedel
se lenguaje.
pueden ordenar en varios
modelos
4. Un rbol sintctico: indica como es la estructurauna
arquitectnicos existentes, en Figura 33 se puede visualizar arquitectura
interna de flujo de
del progra-
datos con la tabla de smbolos como un repositorio en comn.
44
Definicin de la arquitectura del sistema 63
ma.
5. Un analizador semntico: Comprueba si el texto de lenguaje de en-
trada est correctamente escrito, utilizando al rbol sintctico y la ta-
bla de smbolos.
6. Un generador de cdigo: Recorre el rbol sintctico y genera cdigo
de mquina abstracta.
Los componentes de un sistema de procesamiento de lenguaje se
Diseo de Sistemas 2015
pueden ordenar en varios modelos arquitectnicos existentes, en Fi-
Diseo de Sistemas 2015
Este
guratipo
33desemodelo
puede esvisualizar
muy33.apto
Figura en
una
Un modeloentornos dedeprocesamiento
arquitectura
de flujo datos de flujo
de un pordelotes,
compilador.datosen con
dondelalos
programas son compilados automticamente
tabla de smbolos como un repositorio en comn. sin intervencin del usuario. Tambin los
Este tipo de
componentes modeloseeslosmuy
genricos aptoordenar
pueden en entornos
en un de procesamiento
modelo basado en por lotes, encomo
repositorios dondese los
Este tipo de modelo es muy apto en entornos de procesamiento por
programas
observa son compilados
en la figura 34, donde laautomticamente
tabla de smbolossiny elintervencin del usuario.
rbol sintctico funcionanTambin
como un los
lotes, enendonde
componentes
repositorio los se
genricos
comn. programas son compilados
los pueden ordenar en un modeloautomticamente
basado en repositoriossincomo se
intervencin del usuario.
observa en la figura 34, donde Tambin los componentes
la tabla de smbolos genricos
y el rbol sintctico se los
funcionan como un
repositorio
pueden en comn.
ordenar en un modelo basado en repositorios como se observa
control, de descomposicin.
tolerantes a fallos.
El modelo cliente servidor es un conjunto de servicios que ofrecen los servidores para que
Tener un modelo genrico nos ayudar a comprender como funciona las aplicaciones y
[65]
Modelado del sistema
En este captulo 2 del Modelado del sistema, se estudian los temas que a continuacin se detallan:
El punto 2.1 con el tema Diseo orientado a objetos tiene como objetivo principal producir un
diseo que interconecta objetos de datos y operaciones de procesamiento para esos objetos, de
forma que se modulariza la informacin y el procesamiento, en lugar de aislarlo. Los subtemas a
estudiar en este punto se destacan las ms importantes:
Objetos y clases
Un proceso de diseo orientado a objetos
Evolucin del diseo
En el punto 2.2 del Diseo de software de tiempo real tiene como objetivo principal Los
subtemas ms relevantes a tratar son:
Diseo del sistema
Sistemas operativos de tiempo real
Sistemas de monitorizacin y control
Sistemas de adquisicin de datos
En el punto 2.3 del Diseo de interfaces de usuario tiene como objetivo principal introducir
algunos aspectos de bosquejo de las interfaces de usuario que son significativas para los
especialistas de software. Entre los temas a estudiar en el diseo de las interfaces son:
Asuntos de diseo
El proceso de diseo de la interfaz de usuario
Anlisis del usuario
Prototipo de la interfaz de usuario
Evaluacin de la interfaz
[67]
68 Molina J, Valarezo M, Zea M
La comunicacin
Paradecomunicarse
los objetos seentre
realiza llamando
objetos a los
en los mtodosbasados
sistemas (solicitud
ende servicio) de
servi-
otros objetos
cios, eseintercambiando
intercambianladirectamente
informacin mensajes
requerida de en texto;
caso de ser necesario
el objeto que para
suministrar ese servicio. Son enviados como parmetros los resultados
recibe el mensaje es el encargado de examinar el mensaje, identificar de la ejecucin y las
copias dedatos
informacin necesarias para dicha ejecucin, ejemplos
y los servicios, para procesar el servicio solicitado. En un len- de estos estilos de
comunicacin:
guaje como C, cuando hay objetos que se encuentran en el mismo pro-
grama//Llama a unamtodo
el enlace asociado
los mtodos conimplementados
son un objeto bfer como enlaces a las
// queoregresa
funciones el siguientedevalor
procedimientos en lenguaje.
dicho el bfer
v = circula rBuffer.Get 0;
La comunicacin entre los objetos es sncrona en el momento que
//Llama alde
las solicitudes mtodo asociadoson
los servicios con implementadas
un objeto siguiendo esta ruta,
// termostato que establece la temperatura que se mantendr
la cual se trata de que el objeto emisor espera que se complete la peti-
thermostatsetTemo(20);
cin del servicio. La comunicacin se vuelve asncrona en el momen-
to que los objetos son implementados como procesos concurrentes, y
Para comunicarse entre objetos en los sistemas basados en servicios, se intercambian
cuando ejecutan el servicio solicitado el objeto emisor sigue realizando
directamente mensajes de texto; el objeto que recibe el mensaje es el encargado de examinar el
sus operaciones. Ms adelante en este captulo se detallar como se
mensaje, identificar
implementan datoslosy procesos
los servicios, para procesar
concurrentes el servicio
en los objetos.solicitado. En un lenguaje
como C, cuando
Las clases se la puede organizar por medioprograma
hay objetos que se encuentran en el mismo de una eljerrquica
enlace a los
demtodos
son implementados
herenciascomodonde enlaces a las funciones
las clases generaleso procedimientos de dichocon
deben tener relacin lenguaje.
las es-
pecificas es decir las clases se pueden generalizar. En el diseo UML,
La comunicacin entre los objetos
la generalizacin es sncronacon
se representa en eluna
momento
flechaque
quelasapunta
solicitudes
a ladeclase
los servicios
son implementadas
padre, en los sistemas orientados a objetos se implementa mediante la que se
siguiendo esta ruta, la cual se trata de que el objeto emisor espera
complete herencia,
la peticin donde
del servicio. La comunicacin
la clase se vuelve asncrona
hija hereda operaciones en elpadre.
de la clase momentoSe que los
objetos son implementados como procesos concurrentes, y cuando ejecutan el servicio
solicitado el objeto emisor sigue realizando sus operaciones. Ms adelante en este captulo se
detallar como se implementan los procesos concurrentes en los objetos.
Las clases se la puede organizar por medio de una jerrquica de herencias donde las clases
Modelado del sistema 73
Una asociacin es una relacin entre clases, en ocasiones se usa en UML para sealar que un
atributo de una clase asociada es un objeto asociado o que implementacin del mtodo de un
objeto depende de la asociacin del mismo. Una de las asociaciones ms habituales es la
agregacin en la cual se puede manifestar que los objetos estn compuestos por otros objetos.
2.1.1.1.Objetos concurrentes.
74 Molina J, Valarezo M, Zea M
56
Modelado del sistema 77
pletas o parcialmente en el instante de fijar la arquitectura del sistema.
Cuando se crean los modelos de objetos estas definiciones se mejoran
y lo que puede lograr que haya una modificacin en la arquitectura del
sistema
El diseo no es un proceso fcil de elaborar, se desarrolla con el
planteamiento de soluciones puesto que dichas soluciones pueden ser
modificadas al adquirir ms informacin. Necesariamente en el mo-
mento que los problemas surjan se tendr que retroceder para anali-
zarlos, en algunas ocasiones se tendr que inspeccionar los detalles de
las soluciones para ver si funcionan, y en otras ocasiones tendrn que
ser excluidos y ser integrados posteriormente en el proceso.
Para una mejor explicacin de las actividades de este proceso se
muestra un ejemplo del diseo de un sistema para crear mapas me-
teorolgicos a partir de datos meteorolgicos recolectados de forma
automtica. La especificacin de los requerimientos para este sistema
es muy extensa, pero se puede determinar la arquitectura de sistema
mediante una descripcin breve.
Esta explicacin muestra que el sistema se refiere a la recoleccin
de datos, a la integracin de datos recolectados por diversas fuentes,
tambin a archivar esos datos y a crear mapas meteorolgicos. En la
figura 40 se observa la arquitectura del sistema diseada a partir de la
descripcin. Este sistema tiene una arquitectura de capas debido a que
cada etapa es dependiente de la operacin de la anterior.
En la Figura 40 para indicar que cada capa integra diferentes
componentes se ha agregado el nombre de la capa en un smbolo de
representacin de paquetes en UML que se ha expresado como un sub-
sistema. Para representar el conjunto de paquete y distintos objetos en
UML se usan los paquetes.
En la figura 41 este modelo se ha ampliado para ensear los com-
ponentes de cada subsistema que han sido obtenidos de la descrip-
cin del sistema. Los cuales continan siendo abstractos. A partir de
ahora, se toma en cuenta para el ejemplo el subsistema de la estacin
meteorolgica.
pero se puede determinar la arquitectura de sistema mediante una descripcin breve.
Esta explicacin muestra que el sistema se refiere a la recoleccin de datos, a la integracin de
datos recolectados por diversas fuentes, tambin a archivar esos datos y a crear mapas
meteorolgicos. En la figura 40 se observa la arquitectura del sistema diseada a partir de la 78
descripcin. Este sistema tiene una arquitectura de capas debido a que cada etapa es dependiente
de la operacin de la anterior.
Molina J, Valarezo M, Zea M
En la Figura 40 para indicar que cada capa integra diferentes componentes se ha agregado el
nombre de la capa en un smbolo de representacin de paquetes en UML que se ha expresado
como un subsistema. Para representar el conjunto de paquete y distintos objetos en UML se
usan los paquetes.
En la figura 41 este modelo se ha ampliado para ensear los componentes de cada subsistema
Esto se puede ampliar representado mediante paquetes UML un modelo del subsistema (Figura
41), lo cual muestra que el contexto de la estacin meteorolgica se encuentra incluido en la
recoleccin de datos. Adems ensea los dems subsistemas que integran el sistema de Trazo
de mapas meteorolgicos. Modelado del sistema 79
El detalle o descripcin de los casos de uso permite determinar las operaciones y objetos que
El detalle o descripcin de los casos de uso permite determinar las
intervienen en el sistema.
operaciones
Del detalle del y caso
objetos que
de uso intervienen
informar se puedeen el sistema.
observar que se necesitan objetos para
Del detalle
representar del caso
las herramientas quederecolectan
uso informar
los datosse puede observar
meteorolgicos que
y adems se ne-
determinar
operaciones
cesitan que intervengan
objetos para larepresentar
solicitud y envo de herramientas
las datos. que recolectan los
datos meteorolgicos y adems determinar operaciones que interven-
2.1.2.2.Diseo de la arquitectura.
gan la solicitud y envo de datos.
Cuando se hayan establecido las interacciones entre el sistema y su entorno, se puede establecer
2.1.2.2. Diseo
el diseo de la arquitectura de lacomo
tomando arquitectura.
origen informacin de dichas interacciones. Por lo
Cuando se hayan acoplarlo
tanto, es indispensable establecido
con ellas interacciones
conocimiento general entre
de los el sistema
principios y su
de diseo
arquitectnico y con el conocimiento ms detallado del dominio.
entorno, se puede establecer el diseo de la arquitectura tomando
como origen informacin de dichas interacciones. Por lo tanto, es in-
El sencillo sistema de estacin meteorolgica automatizada posee una arquitectura que puede
dispensable
ser representado acoplarlo
como modelocon el conocimiento
en capas. general
En la figura 44 muestra estede los en
modelo principios
UML comode un
diseo arquitectnico
rbol de paquete. y con
En el cual se el conocimiento
ha usado ms detallado
para proveer informacin del dominio.
complementaria la notacin
en UML
El (cuadros
sencillo de textos
sistema deconestacin
una pestaameteorolgica
en la esquina). automatizada posee una
1. La capa de interfaz, contiene todas las relaciones con otras partes del sistema y la
distribucin de las interfaces extremas.
2. La capa de recogida de datos, encargada de dirigir la recoleccin y sntesis de los datos
82 Molina J, Valarezo M, Zea M
Estos enfoques colaboran en el origen del reconocimiento de objetos. Se usan diversas fuentes
de conocimiento para revelar objetos y clases. Las operaciones y objetos establecidos en el
anlisis 84
informal deMolina
los sistemas
J, Valarezopueden
M, Zea M ser usados como origen para el diseo. La informacin
complementaria del conocimiento del dominio se usa para mejorar y ampliar los objetos
formacin complementaria del conocimiento del dominio se usa para
iniciales.
mejorar y ampliar los objetos iniciales.
Esta informacin se la recolecta de la documentacin de requeri-
Esta informacin se la recolecta de la documentacin de requerimientos, las reuniones con los
mientos, las reuniones con los usuarios, y el anlisis de los sistemas
usuarios,actuales,
y el anlisis de los sistemas actuales, tal como se observa en la figura 45.
tal como se observa en la figura 45.
Estos objetos
Estosseobjetos
relacionan con los diversos
se relacionan niveles
con los de la arquitectura
diversos niveles de ladel sistema.
arquitectura
del sistema.
1. La clase WeatherStation
1. La suministra la
clase WeatherStation interfaz bsica
suministra de la estacin
la interfaz bsicameteorolgica
de la con
su entorno.
estacin Para mostrarcon
meteorolgica las su
operaciones
entorno. utiliza una clase
Para mostrar lasque encapsula todas las
operaciones
interacciones, tambin en otros diseos se puede utilizar
utiliza una clase que encapsula todas las interacciones, tambin envarias clases para crear el
diseodiseos
otros de la interfaz.
se puede utilizar varias clases para crear el diseo de la
2. interfaz.
La clase de objetos WeatherData posee la sntesis de datos de los diferentes
instrumentos en lade
2. La clase estacin
objetosmeteorolgica.
WeatherDataLas operaciones
posee la sntesisinvolucradas
de datos deen esta clase
se encargan
los diferentesde la recoleccin de
instrumentos endatos y la representacin
la estacin de los
meteorolgica. mismos.
Las operacio-
3. nes
Las involucradas
clases GroundThermometer,
en esta clase se Anemometer
encargan de la y recoleccin
Barom sondeenlazadas
datos y con los
instrumentos
la del sistema.
representacin Sus operaciones controlan la parte de hardware tangible de
de los mismos.
ese sistema.
3. Las clases GroundThermometer, Anemometer y Barom son en-
lazadas con los instrumentos del sistema. Sus operaciones controlan la
parte de hardware tangible de ese sistema.
Modelado del sistema 85
Los modelos de secuencia son los encargados de informar la sucesin de interacciones entre los
objetos. La figura 47 detalla un ejemplo donde se observa las operaciones implicadas en la
recoleccin de datos del sistema de esta meteorolgica mediante un modelo de secuencia:
Los diagramas de secuencia son de gran utilidad, ya que permite modelar el comportamiento de
un conjunto de objetos y sintetizar el comportamiento de un objeto como como respuesta a los
distintos mensajes que se pueden desarrollar. Esto se logra con el uso de un modelo de mquina
de estado en el que se puede observar cmo se modifica el estado de la instancia de un objeto
segn los mensajes Figura
que47.
seSecuencia
reciban. deLoslasmodelos
operaciones
de de recogidadede estado
mquina datos. en UML son
representados mediantes diagramas de estado.
Los diagramas de secuencia son de gran utilidad, ya que permite modelar el comportamiento de
En la figura 48 se muestra un diagrama de estado donde se representa
un conjunto de objetos y sintetizar el comportamiento de un objeto como como respuesta a los
En la figura 48 se muestra
respuesta un diagrama
a la peticin de estadoservicios.
de distintos donde se representa respuesta a la peticin de
distintos mensajes que se pueden desarrollar. Esto se logra con el uso de un modelo de mquina
distintos El
servicios.
diagrama de estado del ejemplo se lo puede leer de la siguiente ma-
de estado en el que se puede observar cmo se modifica el estado de la instancia de un objeto
nera:
segn los mensajes que se reciban. Los modelos de mquina de estado en UML son
El diagrama de estado del ejemplo se lo puede leer de la siguiente manera:
representados mediantes diagramas de estado.
Por lo general, no es indispensable crear un diagrama de estado para cada objeto definido en el
sistema. Ya que puede haber objetos sencillos, y un diagrama de este tipo no sera de este tipo
no sera de gran utilidad para los programadores. .
Si las interfaces son ms complejas, este enfoque es ms efectivo debido a que las herramientas
de verificacin de sintaxis en el compilador se utilizan para descubrir errores e incongruencias
en la especificacin de la interfaz. Modelado del sistema 91
La ventaja de usar un enfoque orientado a objetos para el desarrollo del diseo es que las
modificaciones que se hagan a los detalles internos de un objeto no perjudican a otros objetos,
esto se logra debido a que los objetos no estn muy acoplados. En la figura 50 se demuestra la
robustez del enfoque orientado a objetos se detalla el siguiente ejemplo:
67
Los ordenadores son utilizados inspeccionar varios sistemas desde artefactos domsticos
92 Molina J, Valarezo M, Zea M
A estas dos clases pueden corresponder los estmulos: Modelado del sistema 93
Estmulos
cuentementeperidicos. Se dan
son a espacios de usando
estimulados, tiempo predecibles. Ejemplo,de
la mecnica el sistema
inte-
observa un sensor cada 50 milisegundos y ejecuta una labor
rrupcin de la computadora. Ejemplo de este estmulo sera la o respuesta de acuerdo del
valor de ese sensor o estmulo.
interrupcin indicando que una transferencia de E/S ha con-
Estmulos aperidicos. Suceden de manera no regular. Frecuentemente son estimulados,
cluido
usando y los datos
la mecnica estn a de
de interrupcin disposicin en Ejemplo
la computadora. un bfer.de este estmulo sera
El modelo sensor-sistema
la interrupcin que
indicando que unaacta en undesistema
transferencia de tiempo
E/S ha concluido realestn
y los datos em-a
bebido disposicin
se ilustra en en
un bfer.
la figura 51 que encontramos a continuacin.
El sistema de tiempo real responde a impulsos que se dan en tiem-
El modelo sensor-sistema que acta en un sistema de tiempo real embebido se ilustra en la
pos distintos.
figura Por lo cual
51 que encontramos organizan su estructura para enseguida cap-
a continuacin.
tar el impulso, se transfiera al manejador oportuno; el mismo no es
El sistema
til de tiempo real
en programas deresponde a impulsos
secuencia. que se dande
Lo sencillo en este
tiempos distintos.operativo
sistema Por lo cual
es su accesibilidad por medio del sistema de soporte en tiempo de rea-el
organizan su estructura para enseguida captar el impulso, se transfiera al manejador oportuno;
mismo no es til en programas de secuencia. Lo sencillo de este sistema operativo es su
lizacin.
accesibilidad por medio del sistema de soporte en tiempo de realizacin.
Lo comn
Lo comn en este en
tipo este tipo de estmulo-respuesta
de estmulo-respuesta en un
en un sistema de tiempo real sistema
nos lleva ade
un
prototipo real
tiempo arquitectnico
nos llevagenrico abstracto quearquitectnico
a un prototipo contiene tres modelos de procesos.
genrico abstracto Este
prototipo
que permite tres
contiene la recoleccin
modelos acelerada de datos desde
de procesos. Esteel prototipo
sensor y logra que procese
permite y la
la re-
sentencia asociada al actuador se ejecute ms adelante.
coleccin acelerada de datos desde el sensor y logra que procese y la
sentencia asociada
La arquitectura al actuador
comn puede instanciarsese ejecute
a algunas ms adelante.
arquitecturas de aplicaciones distintas que
La arquitectura
agrandan el conjunto. En comn puedeseinstanciarse
este apartado incorporan dosa arquitecturas
algunas arquitecturas
de aplicaciones:
arquitectura
de para sistemas
aplicaciones de monitoreo
distintas y control y arquitectura
que agrandan el conjunto.para sistemas
En este de obtencin
apartado de
datos.
se incorporan dos arquitecturas de aplicaciones: arquitectura para sis-
temas de monitoreo y control y arquitectura para sistemas de obten-
En un software de tiempo real duros todava se programan a veces en ensamblador para cumplir
cin de datos.
estrechos espacios de tiempo (deadline).
69
94 Molina J, Valarezo M, Zea M
almacenamiento
2.2.2. en disco
Sistemas operativos de fallos,
de tiempo encargados de detectar e informar
real.
los fallos encontrados en el sistema y un gestor de configuraciones.
Los sistemas
2.2.2.1. de tiempoGestin
real trabajan en conjunto con los sistemas operativos de tiempo real, el
de procesos.
cual En
gestiona los procesos
los sistemas deytiempo
agrega recursos enprocesos
real los un sistemadede manejo
tiempo real
deyeventos
adems detienen
de- los
procesos paraelaborados
ben ser que los estmulos
a tiempopuedan
paraser
su manejados
ejecucin yy asasigna memoria
detectar y recursos del
el evento,
procesador.
y se deben asignar los recursos necesarios del procesador para satisfa-
cer su periodo de tiempo.
Los componentes dede
El gestor losprocesos
sistemas operativos de tiempodereal
en los sistemas (RTOS)
tiempo dependen
real del tamao
se encarga de y del
gradoescoger
de complejidad del sistema, los sistemas ms sencillos incluyen
los procesos para su ejecucin, delegar el procesador y recur- los siguientes
componentes:
sos de memoria, e iniciar y detener la ejecucin de un proceso sobre
un procesador.
1. Un reloj de tiempo real. Provee informacin para programar los procesos de forma
Para algunos estmulos, como los relacionados con algunos eventos
constante.
excepcionales, es fundamental que su procesamiento sea determinado
2. Un manejador de interrupciones. Realiza las solicitudes no peridicas de los servicios.
3. Un planificador. Encargado de revisar los procesos que pueden ser ejecutados y elegir
uno de ellos para su ejecucin.
4. Un gestor de recursos. Es el encargado de asignar la memoria adecuada y los recursos
del procesador.
98 Molina J, Valarezo M, Zea M
rrollan una accin cuando se localiza un valor peculiar del sensor. Los
sistemas de control controlan continuamente los actuadores hardware
dependiendo del valor de los sensores relacionados.
Cada modelo de sensor que se est monitoreando posee su propio
proceso de monitorizacin. Un proceso de monitorizacin se encarga de
recoger e integra los datos antes de enviarlos a un proceso encargado
del control, y toma decisiones fundamentos en esos datos y enva los
comandos de control necesarios a los procesos de control del equipo.
En sistemas simples se pueden constituir en un solo proceso las res-
ponsabilidades de monitorizacin y control. Hay dos procesos que tam-
bin pueden integrarse en sistemas de monitorizacin y control. Los
cuales son: proceso de pruebas encargados de ejecutar programas de
test del hardware y un proceso de panel de control que tramita los pa-
neles de control del sistema.
El paso posterior en el proceso de diseo es examinar las restric-
ciones eventuales relacionadas a cada estmulo y su correspondiente
respuesta. Generalmente se debe numerar las restricciones eventua-
les para cada tipo de sensor de manera independiente. Gestionndolas
de manera independiente, permitir futuros cambios y resulta ms
fcil calcular el nmero de veces que el proceso de control tiene que
ejecutarse cada segundo.
El nmero de sensores que tienen que ser consultados y los reque-
rimientos temporales del sistema se utilizan para calcular la periodici-
dad con la que cada proceso tiene que ser planificado.
Una vez que ha sido definida la arquitectura de los procesos del sis-
tema, deberan disearse los algoritmos para el procesamiento de los
estmulos y la generacin de respuestas, esta etapa de diseo detallado
es necesaria al principio del proceso de diseo para asegurar que el
sistema pueda cumplir sus restricciones de tiempo especificadas. Si
los algoritmos asociados son complejos, se pueden requerir cambios
en las restricciones de tiempo. Sin embargo, a menos que se requiera
el procesamiento de seales, los algoritmos de sistemas de tiempo real
son a menudo bastante sencillos. stos solamente pueden requerir la
comprobacin de una posicin de memoria, realizar algunos clculos
sencillos o emitir una seal.
En el proceso de diseo el ltimo paso es el diseo de un sistema
de planificacin que garantice que un dicho proceso ser planificado
Modelado del sistema 101
los mens y comandos del sistema deben poseer igual formato, los pa-
rmetros deben pasarse a cualquiera de los comandos de igual forma,
y la puntuacin de los comandos debe ser aparecida. Las interfaces
uniformes disminuyen el tiempo de enseanza del usuario. Por lo cual,
el conocimiento asimilado en un comando o aplicacin es aplicable en
otras partes del sistema o en aplicaciones afines.
La uniformidad de la interfaz a lo extenso de las aplicaciones tam-
bin es significativa. En lo viable, los comandos con significados equi-
valentes en aplicaciones desiguales se deben expresar de igual manera.
Muy seguido los errores se originan cuando el semejante comando del
teclado, como Control+b, representa cosas incomparables en sistemas
diferentes. Por ejemplo, en el procesador de textos que utilizo habitual-
mente, Control+b representa colocar en negrita el texto, pero en los
programas grficos que utilizo para trazar diagramas, Control+b sim-
boliza poner el objeto marcado detrs de otro objeto. Yo ejecuto errores
cuando los manejo al mismo tiempo y muy seguido trato de poner en
negrita el texto en un diagrama utilizando esta mezcla de teclas. Habi-
tualmente, se puede obviar este tipo de errores si se siguen los mtodos
sintetizados para las teclas de comandos determinados por el sistema
operativo que maneja.
Este nivel de igualdad es de bajo nivel. Los creadores de interfaces
constantemente deben tratar de lograr esta altura en una interfaz de
usuario. Algunas veces, la semejanza de nivel alto as mismo es co-
diciada. Por ejemplo, puede ser provechoso llevar a cabo las mismas
instrucciones (como ilustrar, duplicar, etctera) sobre todos los tipos
de entes del sistema. No obstante, Grudin seala que la similitud total
no siempre es viable o esperada. Puede ser sensato efectuar el borrado
de un escritorio deslizando los entes a una papelera de reciclaje, pero
sera fatigoso borrar el contenido en un procesador de contenidos de
este modo.
Infelizmente, los principios de confianza del beneficiario e igualdad
a veces son contrarios. Irrealmente, las aplicaciones con rasgos comu-
nes convendran utilizar siempre las mismas rdenes para acceder a
estos rasgos. Pero, esto puede chocar con las costumbres del usuario
cuando los sistemas se bosquejan para favorecer a un tipo de usuario
especialmente, como los creadores grficos. Estos usuarios logran te-
ner que desenvolver sus propios modos de interacciones, terminologa
procesador de textos que utilizo habitualmente, Control+b representa colocar en negrita el texto,
pero en los programas grficos que utilizo para trazar diagramas, Control+b simboliza poner el
objeto marcado detrs de otro objeto. Yo ejecuto errores cuando los manejo al mismo tiempo y
muy seguido trato de poner en negrita el texto en un diagrama utilizando esta mezcla de teclas.
Habitualmente, se puede obviar este tipo de errores si se siguen los mtodos sintetizados para
Modelado del sistema
las teclas de comandos determinados por el sistema operativo que maneja.
105
Principio Descripcin
Familiaridad del La interfaz debe utilizar trminos y conceptos de la
usuario experiencia de las personas que ms utilizan el sistema.
81
Cada1. El
vista usuario
posee est
un objeto atrado asociado
controlador en informacin
que manipuladetermina
los ingresoso del
en usuario
las de-y la
pendencias
interaccin entre
de los equipos. los valores deunlos
Consecuentemente, tipodatos?
que simboliza datos numricamente
logra2.
poseer una qu
Con vista que interpreta los
frecuencia datos como los
sustituyen un histograma
valores dey una
la vista que muestre los
informacin?
datos como una tabla. El modelo se consigue editar sustituyendo
Se mostrarn de forma rpida al usuario las variaciones los valores en la tabla
en o
prolongando o reduciendo las barras en el histograma.
un valor?
3. Ella usuario
Para hallar debe llevar
mejor exposicin a cabo alguna
de la informacin, laborconocer
se requiere en rplica a las va-
a los usuarios de la
riaciones
informacin de cmo
y entender la informacin?
dispondrn el sistema. Cuando se resuelve cmo mostrar la
informacin,
4. Eldeben mantener
usuario presenteinteractuar
requiere las siguientes cuestiones:
con la informacin represen-
tada a travs de una interfaz de manipulacin directa?
5. La informacin que se va a representar es textual o numrica?
82
Son significativos los valores referentes de los elementos de la
informacin?
No se debe creer que por manejar grficos se crean las vistas ms atrac-
tivas. Los grficos invaden un apreciable espacio en la pantalla (un
asunto significativo en los dispositivos mviles) y alcanzan suficiente
tiempo en descargarse si el usuario est haciendo con una conexin de
112 Molina J, Valarezo M, Zea M
Factor Descripcin
concretos
Los mensajesdel sistema
de falla (identificador
eternamente de breves,
deben ser serios, paciente)
igualesen vez de unNolenguaje
y provechosos. deben ser
ofensivos ni tener
encaminado alsonidos
usuario.agrupados u otro tipode
El mensaje de sonidos que logran
la derecha turbar al usuario.
es superior. En la
Es real,
dimensin de lo viable, el mensaje debe indicar cmo se podra corregir el error. El mensaje de
lo que da a pensar que la dificultad es del sistema y no del usuario.
error debe relacionarse a un sistema de apoyo en lnea visible al contenido.
Identifica el problema en clusulas entendibles para la asistente y brin-
La Figura 61 muestra ejemplos de mensajes de errores perfectos e incorrectamente bosquejados.
El mensaje de la izquierda est mal bosquejado. Es perjudicial, no se ajusta a las prcticas y al
grado de prctica del usuario, y no mantiene en cuenta la informacin del contenido. No indica
cmo se podra modificar la realidad. Maneja mtodos concretos del sistema (identificador de
paciente) en vez de un lenguaje encaminado al usuario. El mensaje de la derecha es superior. Es
real, lo que da a pensar que la dificultad es del sistema y no del usuario. Identifica el problema
en clusulas entendibles para la asistente y brinda una forma cmoda para corregir el error
tocando un solo botn. El sistema de apoyo est aprovechable si se precisa.
En la medida de lo posible, el diseador de mensajes debe estar
familiarizado con la cultura del pas donde se vende el sistema.
Cultura Existen distintas diferencias culturales entre Europa, Asia y
Amrica. Un mensaje adecuado en una cultura podra no aceptarse
en otra.
118 Molina J, Valarezo M, Zea M
87
El diseo de la interfaz de usuario (UI) es una fase donde los usuarios interactan con los
diseadores y prototipos de la interfaz para resolver los tipos, ordenacin, aspecto y labor de la
interfaz de usuario del sistema. Ocasionalmente, se edifica el modelo de la interfaz por separado
al mismo tiempo con otras actividades de la ingeniera del software. Ms usualmente, en
Modelado del sistema 119
Ejercicios
1. Describir la diferencia entre un objeto y una clase, utilice 2
ejemplos de cada una.
2. Mediante un cuadro sinoptico describa la importancia de im-
plementar el diseo orientado a objetos en el desarrollo de un
sistema.
3. Describir que son los diagramas UML y realizar un ejemplo de
diagramas de clases.
4. Disee un diagrama de secuencia de un proceso denominado
obtener factura, de un sistema de facturacin.
5. Disear un caso de uso del proceso cliente en el ejercicio an-
terior.
6. Por qu los sistemas de tiempo real tienen que implementarse
normalmente utilizando procesos concurrentes. Uilice ejem-
plos si es posible.
7. Por qu en el desarrollo del software, una aproximacin orien-
tada a objetos no puede ser adecuada para sistemas de tiempo
real.
8. Qu tcnicas de diseo de sistemas de tiempo real estudiadas
en neste capitulo son ijmportantes para larecogida de datos de
la estacin metereolgica.
9. En que escenarios no es conveniente o viable facilitar una in-
terfaz de usuario uniforme.
10. Qu elementos deben tenerse en cuenta cuando se bosqueja
Modelado del sistema 127
El diseo orientado a objetos permite que los elementos del diseo simbolicen objetos con
interfaz; o cuando se encuentra en estado activo el cual puede cambiar sin participacin
externa.
El proceso del diseo orientado a objetos consiste en: Diseo arquitectnico del sistemas,
detallar los objetos involucrados en el sistema, documentar las interfaces de los objetos,
Esto permite al diseador conocer si los usuarios con cierta pauta de preparaciones poseen
problemas con la interfaz. Los informes se logran manipular aun antes de que est
el sistema los usuarios, ver los recursos que manipulan, las fallas cometidas, etctera. Esto
se logra complementar con reuniones de pensar en voz alta, en las cuales los usuarios
hablan sobre lo que tratan de hacer, qu piensan del sistema y cmo tratan de manipularlo
En conclusin, es fcil suministrar a los usuarios un orden que logren manipular para
remitir mensajes al diseador de la herramienta. Esto hace que los usuarios crean que sus
[129]
Metodologas para el diseo de
sistemas
En este captulo: metodologas para el diseo de sistemas, se desarrolan diferentes subtemas que
se detallan a continuacin:
El objetivo general del punto 3.1. Desarrollo rpido de software, es detallar algunos enfoques para
el software pensados para una entrega rpida del mismo. A continuacin se lista los temas de
importancia a tratar:
Mtodos giles
Programacin extrema
Desarrollo rpido de aplicaciones
Prototipado del software
El objetivo general del punto 3.2. Reutilizacin del software, conocer los beneficios y las
dificultades de reutilizar software y formas de efectuarla. A continuacin se lista los temas de
importancia a tratar:
El campo de la reutilizacin
Patrones de diseo
Reutilizacin basada en generadores
Marcos de trabajo de aplicaciones
Reutilizacin de sistemas de aplicaciones
[131]
132 Molina J, Valarezo M, Zea M
Debido a que no muy a menudo hallamos una solucin que abarque todo el problema desde un
principio, el desarrollo incremental es un enfoque muy favorable que refleja la forma comn
134
con la que se resuelven problemas en la vida cotidiana, es decir llegar a la solucin a partir de
pequeos pasos, y regresando al cometer algn error.
Molina J, Valarezo M, Zea M
A pesar de ser una gran solucin, este enfoque llega a ser un gran problema, en empresas donde
sus procedimientos son muy inflexibles y sobre todo en aquellas donde se subcontrata agentes
externos. Los problemas ms comunes en el desarrollo iterativo y la entrega incremental son:
99
Metodologas para el diseo de sistemas 135
A pesar de todos los beneficios que tiene este tipo desarrollo en sistemas pequeos o medianos
no se ven reflejados, debido a que se realizan muchos esfuerzos en la planificacin dejando atrs
138 Molina J, Valarezo M, Zea M
Principio Descripcin
Participacin del cliente Los clientes deben estar fuertemente implicados en todo el
proceso de desarrollo. Su papel es proporcionar nuevos
requerimientos del sistema y evaluar interacciones del
sistema.
Entrega incremental El software se desarrolla en incrementos, donde el cliente
especifica los requerimientos a incluir en cada incremento.
Personas, no procesos Se debe reconocer y explotar las habilidades del equipo de
desarrollo. Se debe dejar desarrollar a los miembros del
equipo sus propias formas de trabajar sin procesos
formales.
Aceptar el cambio Se debe contar con que los requerimientos del sistema
cambian, por esto el sistema se disea para dar cabida a
cambios
Mantener la simplicidad Se deben en la simplicidad tanto en el software a
desarrollar como en el proceso de desarrollo. Donde esa
posible se trabaja activamente para eliminar la
complejidad.
Muchos desarrolladores que han utilizado mtodos giles han pasado por alto sus deficiencias
debido a es
los posible
beneficios debido
que contienen;
en los pero de igual manera otros
representantes delexageran
clientelosconproblemas
frecuen-de
este enfoque, por tal motivo los autores DeMarco y Boehm han destacado tanto las ventajas y
cia no estn dispuestos o tienen el tiempo para participar ple-
desventajas de los mtodos giles, llegando a la conclusin de que un enfoque hbrido en el cual
namente
se incorpore tanto las en el desarrollo,
tcnicas de desarrollooy no
las puede representar
buenas tcnicas exitosamente
de planificacin. Pero los
todo los requerimientos de la empresa.
principios de los enfoques giles son difciles de realizar:
2. Es posible que en este tipo de desarrollo gil los miembros del
1. Una participacin activa de parte de cliente, es muy beneficiosa ya que de esta
equipo no se logren relacionar entre s debido a la presin que
dependen el xito del proyecto, pero no siempre es posible debido en los representantes
generan
del estos
cliente con enfoques.
frecuencia no estn dispuestos o tienen el tiempo para participar
3. plenamente
En sistemas en elendesarrollo,
los cuales o noexisten
puede demasiados Stakeholders
representar exitosamente di-
todo los
requerimientos
fcilmente de selapuede
empresa.llegar a la conclusin, de cules son los re-
2. Esquerimientos
posible que en este
ms tipocrticos,
de desarrollo gil loscada
porque miembros
unodeltendr
equipo no se logren
diferentes
relacionar entre s debido a la presin que generan estos enfoques.
prioridades.
4. Se debe mantener una simplicidad aunque esto requiere un
trabajo extra, pero difcilmente se llega a estas simplificaciones
102
debido al corto tiempo de cada incremento.
Existen otro tipo de problemas con este tipo desarrollo, tales como que
el cliente utilice las organizaciones externas para la construccin del
software, como ya se miran el captulo 2. Comnmente el documento
de especificacin de requerimientos es parte de contrato inicial que se
da entre el cliente y el desarrollador, sin embargo, dentro de este tipo
140 Molina J, Valarezo M, Zea M
Una
Unavezvezdeterminadas las tarjetas
determinadas lasdetarjetas
historias de
de usuario, el equipo
historias las divideelenequipo
de usuario, esfuerzo,
recursos
las divide en esfuerzo, recursos y tiempo requerido para realizacincliente
y tiempo requerido para realizacin de este; despus de esto el representante del de
identifica cules son las historias de mayor importancia para el negocio y posteriormente pasan
este; despus de esto el representante del cliente identifica cules son
a su implementacin. Obviamente cuando los requerimientos cambian, las historias que no
las historias de mayor importancia para el negocio y posteriormente
hayan sido implementadas a un pueden ser eliminados o en su caso modificadas. En casos de
pasan
que a suya implementacin.
el sistema fue entregado y necesita Obviamente cuando nuevas
cambios se realizaran los requerimientos
historias las cuales
cambian, las historias que no hayan
pasaran por el mismo proceso explicado anteriormente. sido implementadas a un pueden
ser eliminados o en su caso modificadas. En casos de que el sistema
Enyaeste
fuetipo de procesos ysenecesita
entregado llegan a realizar
cambiosmuchasse versiones software
realizaran y todos
nuevas los incrementos
historias las
resultantes comnmente se los entrega en el trmino de
cuales pasaran por el mismo proceso explicado anteriormente. 2 meses, luego de haber aprobado
exitosamente cada una de las pruebas automatizadas.
En este tipo de procesos se llegan a realizar muchas versiones soft-
ware y todostradicionales
En los conceptos los incrementos
se estipula resultantes comnmente
que se le disean se los entrega
para prever los cambios para que as
seen el trmino
pueda de fcilmente.
implementar 2 meses, Peroluegoen de haber aprobado
la programacin extremaexitosamente
se descarta estoscada
puntos
una de
porque las de
a pesar pruebas automatizadas.
prepararse para estos cambios surgirn nuevos cambios, por lo cual se lo
considera
Enuna
losprdida de tiempo
conceptos y esfuerzo.
tradicionales se estipula que se le disean para
prever los cambios para que as se pueda implementar fcilmente. Pero
En la programacin extrema se refactoriza el cdigo en cada incremento para que no exista un
en la programacin extrema se descarta estos puntos porque a pesar
desgaste en la estructura del software, es decir, que con esta tcnica constantemente se hacen
cambios en la parte interna de la aplicacin pero sin daar son estructura externa.
Como ya se mencion al principio de este captulo las diferencias que define tanto al desarrollo
Metodologas para el diseo de sistemas 143
Al desarrollar pruebas con anterioridad y usar las pruebas ya estandarizadas se demuestra las
Al desarrollar pruebas con anterioridad y usar las pruebas ya estan-
principales virtudes de la Programacin Extrema. Estas pruebas deberan ser creadas
darizadas se demuestra las principales virtudes de la Programacin
independientemente de la aplicacin, para que simulen el tipo de entradas en el sistemas
Extrema. Estas pruebas deberan ser creadas independientemente de
verificando si cumple con lo que se indic en las especificaciones. Dentro de este desarrollo
la aplicacin, para que simulen el tipo de entradas en el sistemas veri-
cada vez que se agregue una nueva funcionalidad se realizan pruebas para detectar problemas y
ficando si cumple con lo que se indic en las especificaciones. Dentro
visualizar si se estn cumpliendo los requerimientos previamente establecidos.
Las personas encargadas de crear las tareas deben ser capaces crearlas de tal manera que sean
claras para los desarrolladores evitando la ambigedad; as se evitan los retrasos de las pruebas,
ya que el ritmo con el que trabajan los desarrolladores es muy elevado en comparacin del
Metodologas para el diseo de sistemas 145
A simple vista se podra decir que existe menos productividad y eficiencia en la programacin
3.1.3 pero
en pareja, Desarrollo rpido
se ha comprobado que de
esto aplicaciones
no es cierto, ya que al trabajar en pareja, se discute
El desarrollo
sobre el software rpido de aplicaciones
antes de implementarlo (RAD),
de tal manera se son
evita unas herramientas
tener comienzos en falso, que
rehacer
nos nuevamente
permite el cdigo
crear, y as pasar
buscar, vermenos tiempo corrigiendo
y presentar datos los en
errores.
informes. En la Fi-
gura 68se puede observar a un sistema RAD. Las herramientas que se
3.1.3 Desarrollo rpido de aplicaciones
incluyen en un entorno RAD son:
1. Losrpido
El desarrollo Lenguajes de programacin
de aplicaciones (RAD), son unas de base dequedatos,
herramientas que crear,
nos permite nos per-
buscar, ver y presentar datos en informes. En la Figura 68se puede observar a un sistema RAD.
miten la inclusin de comando SQL directamente a partir de
Las herramientas que se incluyen en un entorno RAD son:
formularios rellenados por el usuario final.
2. Generadores
1. Los Lenguajesde interfaces,delos
de programacin base cuales nosnospermiten
de datos, que incluir sus
permiten la inclusin
de comando SQL directamente
componentes y visualizacin de sus datos.a partir de formularios rellenados por el usuario
final.
3. Enlaces a aplicaciones de oficina, tales como los procesadores
2. Generadores de interfaces, los cuales nos permiten incluir sus componentes y
de textos y hojas
visualizacin de clculos, los cuales nos permiten analizar
de sus datos.
y3.manipular
Enlaces a aplicaciones de oficina,
informacin paratales como los procesadores
generar modelosdede textos y hojas
informes.
de clculos, los cuales nos permiten analizar y manipular informacin para
El desarrollo rpido de aplicaciones, ha llegado a tener mucho xito
generar modelos de informes.
debido a lo anteriormente visto en el Captulo 1. Los sistemas RAD,
El desarrollo
estn rpido de aplicaciones,
enfocados ha llegado a tener
a la construccin de mucho xito debido
software a lo anteriormente
interactivo, por medio
visto en el Captulo 1. Los sistemas RAD, estn enfocados a la construccin de software
del cual los usuarios finales en su terminal obtienen todos los cambios
interactivo, por medio del cual los usuarios finales en su terminal obtienen todos los cambios
realizados
realizados de lade
baseladebase de datos organizacional.
datos organizacional.
Muchos de los sistemas de negocio, se asisten a partir de formularios muy elaborados para
entrada y salida de datos; llegando a ser un gran recurso debido a nos ayudan a generar pantallas
e informes. A los formularios vinculados se los define como pantallas, los cuales deben
proporcionar:
Metodologas para el diseo de sistemas 147
En laEn
Figura 70 se muestra
la Figura un muestra
70 se sistema formado por archivosformado
un sistema de texto, clculo y de audio.de
por archivos Un
claro ejemplo
texto, clculode yesto
de es cuandoUn
audio. abrimos
clarounejemplo
archivo de
deaudio
esto inmediatamente
es cuando abrimosse abre el
reproductor de audio. En palabras tcnica al dirigirnos a un objeto en particular el sistema
un archivo de audio inmediatamente se abre el reproductor de audio.
acceder a la funcin ms idnea o asociada para la lectura de este tipo de archivos. Las
En palabras
ventajas de estostcnica
enfoques al dirigirnos
es que son de muya un
bajosobjeto
coste, yen particular
tambin el sistemaya
al usar aplicaciones
construidas el usuario puede estar familiarizado con este tipo de aplicaciones.
Los prototipos, no son ms que versiones de la aplicacin en construccin que comnmente nos
150 Molina J, Valarezo M, Zea M
En la FiguraEn
72 la
muestra un72
Figura modelo del proceso
muestra para el del
un modelo desarrollo
procesode para
prototipos, cuyos objetivos
el desarrollo de
son: desarrollar sistemas cuyos
prototipos, de validacin y viabilidad
objetivos del sistema.sistemas
son: desarrollar Luego de deestavalidacin
etapa pasa ay un
proceso en el cual se decid
viabilidad que incluirLuego
del sistema. en el sistema
de estaevaluando
etapa pasalos tiempos de respuesta.
a un proceso en el cual
se decid que incluir en el sistema evaluando los tiempos de respuesta.
Diseo de Sistemas 2015
111
En la etapa final se evala al prototipo, se debe predecir la interaccin del usuario con el sistema
y prever que el usuario debe acostumbrase con el nuevo sistema.
El principal problema de los prototipos desechables es que muchas veces el modo en el que se
utiliza estos no es igual al sistema final. El encargado de las pruebas no sabe ser el usuario
tpico del sistema, en estos casos existen muchas presiones por parte de los administradores para
entregar un prototipo desechable, lo que provoca la entrega de sistemas de muy baja calidad,
152 Molina J, Valarezo M, Zea M
desplegado en varias reas adems del esbozo del software, que incluye
gestin de clasificaciones, diseo de interfaces de usuario y escenarios
de interacciones.
te del ncleo para que sea posible una mayor flexibilidad que con una
configuracin durante el despliegue.
Las lneas de productos software regularmente surgen a partir de
aplicaciones existentes. El bosquejo se basa en la reutilizacin del co-
nocimiento adquirido a partir del progreso del conjunto inicial de apli-
caciones.
Se puede pensar en las lneas de productos software como ins-
tanciaciones y especializaciones de arquitecturas de aplicaciones ms
genricas, tal y como se explic en el Captulo 1. Una arquitectura de
aplicaciones es muy general; las lneas de productos software la ar-
quitectura para un tipo concreto de aplicacin. Los elementos en cada
nivel de la lnea de productos son los siguientes:
1. En el nivel de interfaz de usuario, hay elementos que proporcio-
nan una interfaz de la pantalla del operador y una interfaz con
el sistema de comunicaciones manejado.
2. En el nivel de E/S (nivel 2), hay elementos que gestionan la
autenticacin del operador, generan informes de incidentes y
vehculos enviados, soportan la generacin de mapas y planifi-
cacin de rutas, y proporcionan un mecanismo para los opera-
dores para realizar consultas a las bases de datos del sistema.
3. En el nivel de gestin de recursos (nivel 3), hay elementos que
acceden localizacin y enviar los vehculos al lugar del inci-
dente, elementos que actualizan el estado t los vehculos y del
equipamiento, y un elemento para registrar los detalles de li
incidentes.
4. En el nivel de base de datos, adems del soporte usual para la
gestin de transacciones, hay bases de datos independientes de
vehculos, equipamiento y mapas.
Para hacer una versin determinada de este sistema, se puede tener
que modificar individuales. Los pasos implicados en este proceso ge-
neral son:
1. Excitacin de los requerimientos de los stakeholders. Se puede em-
pezar con un proceso natural de ingeniera de requerimientos. Sin
embargo, debido a que un sistema ya existe, se requerir probar
y experimentar con ese sistema, expresando sus requerimientos
como modificaciones para las funciones ya proporcionadas.
2. Seleccionar personal del equipo desarrollo, para que revise los re-
Metodologas para el diseo de sistemas 165
Ejercicios
del software.
incremento y la participacin extrema del cliente al punto de ser parte del equipo
de desarrollo.
estndar.
requerimientos del sistema, pero este nunca est destinado para que los clientes los
usen, debido a que no cumple con los estndares de calidad, a diferencia del
[167]
Especificaciones para la
construccin del sistema
[169]
170 Molina J, Valarezo M, Zea M
Interfaces de componentes:
Interfaces de componentes:
1. Una interfaz proporciona, Es capaz de definir aquellos servicios
que proporcionara el componente. Es decir es el API el cual
puede determinar los mtodos que pueden ser ejecutados.
2. Una interfaz requiere, En esta se especifica que servicios se-
rn los que sern suministrado por los otros componentes sin
comprometer la independencia o desarrollo de algn otro com-
ponente.
ware. Los sistemas crticos, tales como los que controlan los sistemas
embebidos de maquinarias automticas, sistemas mdicos, centrales
de telecomunicaciones o aviones requieren recorrer nuevos horizontes
de confiabilidad. Para esto, se necesita construir o reutilizar metodolo-
gas especficas para afirmar que el sistema es confiable, seguro y pre-
dilecto. Existen dos aproximaciones suplementarias para desarrollar
software confiable:
1. Prevencin de defectos. Los pasos de diseo y ejecucin del
sistema comprometeran monopolizar uniones al desarrollo del
software que minimicen y aseguren que no se cumplan errores
de programacin y eliminar los nmeros de errores en un soft-
ware
2. Deteccin de defectos. En todo sistema antes de lanzarlo al
mercado se lo verifica y valida al momento de su diseo para
poder comprender los errores en un software.
3. Tolerancia a defectos. Todo programa se gestiona para que
los errores o conductas totalmente inesperadas del programa
durante su prctica sean descubiertos y tratados de tal manera
que no vuelva a ocurrir un fallo de funcionamiento
La redundancia y variedad son mtodos cotidianos para impedir los
errores de ejecucin. Siempre en nuestros hogares, para tener ms se-
guridad tenemos diferentes tipos de cerraduras en cada puerta (diver-
sidad). Por general el usuario ms tecnificado crea siempre copias de
seguridad para recuperarse de un fallo inesperado (redundancia).
Generalmente todo sistema crtico puede contener complementos que
copian las funcionalidades de otros componentes (redundancia) o un
cdigo de verificacin extra que no es necesario para que el sistema se
gestione correctamente (redundancia). Todo error puede y debe des-
cubrirse antes que ocurra un error de funcionamiento, y el sistema sea
capaz de seguir corriendo as algn error falle.
Los sistemas donde el tiempo de uso es un requerimiento crtico,
siempre esta inmersos servidores redundantes. Dichos servidores se
logran poner en funcionamiento cuando se produce un error de algn
servidor. No siempre, para certificar que las agresiones sobre un siste-
ma no puedan explotar alguna debilidad comn. El uso de los muchsi-
mos sistemas operativos es un ejemplo de diversidad y redundancia del
software. En muchos casos los sistemas embebidos en el software se
Especificaciones para la construccin del sistema 177
Figura
Figura 4.3 Costes 4.3 Costes
crecientes de la crecientes
eliminacindedeladefectos
eliminacin de defectos residuales
residuales
4.3.1 4.3.1
Mtodos Mtodos confiables
confiables
Lossoftware
Los mtodos del mtodoshonestos
del software honestos que
son mtodos son se
mtodos que para
adecuando se adecuando para el descubrim
el descubrimiento y
prevencin de fallos o defectos. Los mtodos confiables estn definidos y son ccli
180 Molina J, Valarezo M, Zea M
Documentable Se debe implementar un modelo de procesos definido que fije las acciones
del proceso y la documentacin que debe crearse durante dicha actividad.
Auditable Los procesos deben ser claros y sencillos para las personas forneas, quien
son las personas que prueban que los estndares se siguen correctamente.
Auditable Los procesos deben ser claros y sencillos para las personas forneas, quien
Especificaciones para la construccin del sistema 181
son las personas que prueban que los estndares se siguen correctamente.
5. Inspecciones
5. Inspecciones de diseo y cdigo,de Se
diseo
fundan y encdigo,
la lista de Se fundandeen
verificacin la comunes
fallos lista de
e verifi-
intentan revelar y eliminar los fallos antes de las pruebas de sistemas
cacin de fallos comunes e intentan revelar y eliminar los fallos antes
de lasEstadstico,
6. Anlisis pruebasEsdela sistemas
habilidad involuntaria de anlisis de programas en donde se
inspecciona6.a detalle
Anlisis Estadstico,
para encontrar Eslatentemente
situaciones la habilidad
erradasinvoluntaria de anlisis de
programas en donde se inspecciona a detalle para encontrar situacio-
Un potencial origen de error en sistemas crticos reside en envolver el componente errneo o la
nes
versin latentemente
errnea de un mdulo erradas
en el sistema. Para impedir esto, se requiere manipular una
administracin
Un potencial origen de errorestrictas.
y gestin de configuraciones La administracin
en sistemas y gestin
crticos reside en deenvolver
configuracin estrictas reside en la gestin de cambios de software y con el seguimiento de los
el componente errneo o la versin errnea de un mdulo en el sistema.
mdulos anteriores o a futuro de un sistema
Para impedir esto, se requiere manipular una administracin y gestin
4.3.2de
Programacin confiable estrictas. La administracin y gestin de configu-
configuraciones
racin estrictas
La programacin reside elenusoladegestin
confiable envuelve tcnicas y de cambiosdede
construcciones softwareque
programacin y con el
ayudan a notificar y soportar fallos y defectos, los fallos generalmente
seguimiento de los mdulos anteriores o a futuro de un sistema se producen porque los
programadores cometen errores. Aunque unos errores se producen por el mal entendimiento de
las especificaciones, otros errores o fallos se producen por la complicacin del programa. Para
llegar4.3.2 Programacin
a la seguridad que el programa confiable
no contenga casi ni un fallo los diseos se los debe crear
La que
simples, programacin confiable
protejan la informacin envuelve
del usuario el uso
y el acceso de tcnicas
del mismo y construcciones
programa (definir roles).
de programacin que ayudan a notificar y soportar fallos y defectos, los
fallos generalmente se producen porque los programadores cometen
134
errores. Aunque unos errores se producen por el mal entendimiento
de las especificaciones, otros errores o fallos se producen por la com-
plicacin del programa. Para llegar a la seguridad que el programa no
contenga casi ni un fallo los diseos se los debe crear simples, que pro-
tejan la informacin del usuario y el acceso del mismo programa (defi-
nir roles). La creacin de las diferentes tcnicas de programacin tiene
como objetivo primordial prevenir los errores y fallos del programa al
momento de su ejecucin. La diferencia entre un fallo y un defecto es
que el fallo es fcil mente observable por el usuario final del programa,
mientras que un defecto es un rasgo interno del sistema.
Informacin Protegida
Una apertura de la informacin protegida es que un programa de-
bera dar acceso solo a los datos que se necesiten. Para poder proteger
otros datos se debe dar el uso de reglas de lugar al lenguaje de progra-
macin para ocultar la informacin en otras partes del programa. Al
182 Molina J, Valarezo M, Zea M
Programacin Segura
En cada programa o IDE de cualquier tipo de programacin se encuen-
tra fallos de ejecucin por consecuencia de un error humano. Un error
comn de los programadores es que pierden el rastro de las relaciones
entre las variables de estado. Al escribir una sentencia de una parte del
programa es ms seguro que se fabrique comportamientos inesperados
lo que provocan cambios directamente en el programa. El hecho de que
somos seres humanos quiere decir que vamos a cometer errores.
Dijkstra afirmo que la sentencia de salto era una edificacin de
la programacin que propensa a errores. Esta magnfica observacin
dio lugar al desarrollo de la programacin estructurada. Es decir esta
programacin estructurada es una programacin sin sentencia de sal-
to, donde utiliza simplemente bucles y sentencias if como edificacin
de control y un diseo tipo casada. La programacin estructurada fue
el primer paso para crear un mtodo del desarrollo del software. Las
edificaciones de programacin expuestas a errores son:
1. Nmeros en coma flotante. Los nmeros de coma flotante
prcticamente pueden causar errores de redondeo por su re-
presentacin y comparacin incorrecta. Un ejemplo de esto es
comprar 4,000000 se lo puede representar como 3,999999.
Una asimilacin puede exponer como valores distintos. Los n-
Especificaciones para la construccin del sistema 183
Manejo de excepciones
Al momento de la ejecucin del software, los fallos o eventos no de-
seados ocurren inevitablemente, esto se da a un defecto en el soft-
ware. Los errores inesperados dentro de un evento son denominados
excepciones, una excepcin se produce por las condiciones en las que
se encuentra tanto el hardware como el software. Ejemplos de excep-
ciones pueden ser el fallo de suministro de agua potable en el sistema
en una ciudad, el ingreso de datos errneos o inundacin de memoria
numrica.
Toda excepcin debe manejarla internamente es decir la excepcin
la maneja el sistema, se pueden majar dentro del mismo programa
o puede envolver el traspaso de control de excepciones del sistema.
Generalmente un mecanismo de excepciones del sistema lo nico que
hace es informarle al usuario que se produjo un error en tiempo de
evento son denominados excepciones, una excepcin se produce por las condiciones en las que
se encuentra tanto el hardware como el software. Ejemplos de excepciones pueden ser el fallo
de suministro de agua potable en el sistema en una ciudad, el ingreso de datos errneos o
inundacin de memoria numrica.
Especificaciones para la construccin del sistema 185
Toda excepcin debe manejarla internamente es decir la excepcin la maneja el sistema, se
puedenejecucin y abandona
majar dentro del mismo la tarea
programa programada. Para poder
o puede envolver asegurar
el traspaso una
de control de
excepciones del sistema.
excepcin Generalmente
no invoque un fallounenmecanismo
tiempo de deejecucin
excepciones delsoftware
del sistema lodebe
nico que
hace esdefinirse
informarleuna
al usuario
clase que se produjo
donde un error todas
se guarden en tiempolasdeposibles
ejecucinexcepciones
y abandona la tarea
programada. Para poder
que puedan asegurar
darse una excepcin
y manejarlas no invoque
de una formaun fallo yenprecisa.
clara tiempo deEnejecucin
len- del
software debe definirse
guajes una clase donde
de programacin como se C
guarden
la quetodas
se las posiblesde
encarga excepciones
descubrirque laspuedan
darse yexcepciones
manejarlas dey una
su forma
controlclara
es ylaprecisa. En lenguajes
sentencia if. Estodeocasiona
programacin
que como C la que
se cree
se encarga
confusin y aumenta la posibilidad de que se cometan fallos y las ex-se cree
de descubrir las excepciones y su control es la sentencia if. Esto ocasiona que
confusin y aumenta
cepciones la posibilidad
no sean manejadas de apropiadamente.
que se cometan fallos y las excepciones no sean
manejadas apropiadamente.
String resultado="";
try
{
resultado+=dividendo/divisor;
}catch
(Exception e) {
resultado="Se intent dividir por cero";
JOptionPane.showMessageDialog(null,"Error: No se puede
dividir por cero ",
"Advertencia",JOptionPane.WARNING_MESSAGE);
}
finally{
Figura 4.4 Excepcin para manejar los nmeros ingresados en una divisin
System.out.println("Termino el proceso : el resultado es
= "+resultado);
}
}
Los lenguajes
Los de programacin
lenguajes como son C++,como
de programacin Java son
y Ada, pueden
C++, Javaincluir
y Ada, excepciones
pue- y
soportan
densuincluir
manejo excepciones
de una forma diferente,
y soportan es decir no obedece
su manejo a unaforma
de una condicional inseparable
diferente,
para agregar
es decir no obedece a una condicional inseparable para agregar una tipo.
una excepcin. Estos lenguajes permiten declarar excepciones de su mismo
Cuando se da una Estos
excepcin. situacin donde elpermiten
lenguajes manejo debe darle una
declarar excepcin, de
excepciones estasuexcepcin
mis- es
apresada y el poste de realizacin del lenguaje traslada al control
mo tipo. Cuando se da una situacin donde el manejo debe darle una de un manejador de
excepciones. Ms adelante se muestra un elemento de cdigo que ayudara a declarar el nombre
excepcin, esta excepcin es apresada y el poste de realizacin del len-
de las excepciones y de la misma manera su manejo.
guaje traslada al control de un manejador de excepciones. Ms adelan-
En el te se muestra
prximo ejemplounFigura
elemento de cdigo que
4.5 implementado en ayudara
Java nos amostrara
declarar el el
usonombre
y manejo de
de las excepciones
excepciones. y depermite
Este ejemplo nos la misma manera
activar su manejo.
una alarma en caso que se intente dividir un
nmero para Encero. Valida la ejemplo
el prximo divisin entre dos nmeros
Figura enteros.
4.5 implementado en Java nos mos-
trara el uso y manejo de excepciones. Este ejemplo nos permite activar
En una excepcin existen categoras, la palabra principal en la excepcin es try que ayuda en la
una alarma en caso que se intente dividir un nmero para cero. Valida
declaracin que se ejecute la siguiente lnea de cdigo para emitir su error. En nuestro ejemplo
la divisin entre dos nmeros enteros.
137
186 Molina J, Valarezo M, Zea M
1
188 Molina J, Valarezo M, Zea M
Figura4.7
Figura 4.7Programa
Programa
que que calcula
calcula el mayor
el mayor de tres de tres nmeros
nmeros
enteros
enteros en Java.
en Java.
La siguiente
La siguiente interfaz
interfaz que que sepuede
se va a mostrar va aser
mostrar
utilizada puede ser utilizada
para ocupaciones para ocu-
de justificacin o
La siguiente interfaz que se va a mostrar puede ser utilizada para ocupaciones de justificacin o
paciones de justificacin o comprobacin:
comprobacin:
comprobacin:
interface CheckableObject {
interface CheckableObject {
public boolean check();
public boolean check();
}
141
141
192 Molina J, Valarezo M, Zea M
Todo objeto que se debe comprobar son instancias de una clase que
construye una interfaz, es decir que cuando se crea un objeto este
tiene una comprobacin adjuntada. Cada Clase que se crea tiene su
propia comprobacin debido al tipo de clase que se crea, esto hace que
se restringa particularidades que sean necesario aplicar a los objetos
de las diferentes clases.
Para poder comprar un defecto o fallo en su totalidad es necesario
utilizar un enlace que sea dinmico porque asegura que una funcin
de demostracin adecuada para la clase del objeto que vaya a compro-
bar. Esto se puede ver en el ejemplo que se encuentra en la Figura 4.9.
Esta comprobacin solo se aplica cuando hay elementos consecutivos
dentro de un vector, lo que provoca es que el vector est ordenado.
Para poder analizar los daos necesitamos realizar una evaluacin
de esta manera estimamos la gravedad de daos que corrompieron al
sistema. Una evaluacin de daos es indispensable y se la realiza solo
cuando no es posible cambiar los cambios de estado o cuando defecto
o error se dan por una serie invalida de cambios de estado propios.
La funcin de la evaluacin de daos es evaluar los estados corrup-
tos del sistema, de esta manera solo se pueden aplicar las correcciones
si alguna de las funciones de validacin que son inconsistentes. Si al
aplicar la evaluacin de defectos se encuentran funciones inconsisten-
tes estas funciones se la puede cambiar o resaltar para futuras correc-
ciones. Las formas de implementar evaluacin de datos en Java son:
RobustArray es una coleccin de objetos de tipo CheckableOb-
ject.
La clase que implementa el tipo CheckableObject debe incluir
un mtodo denominado check que pueda probar si el valor del
objeto satisface alguna restriccin. assessDamage este mtodo
permite examinar cada elemento de un vector y valida si en sus
estado se encuentra un error.
Otra tcnica para poder evaluar los defectos y fallos del sistema son:
1. Realizar pruebas de cdigos o bloques de cdigo y la justifica-
cin en datos numricos.
2. Verificar datos para que no redunden en caso de que no se
utilice punteros.
3. La utilizacin de temporizadores en programas concurrentes.
RobustArray es una coleccin de objetos de tipo CheckableObject.
Class SafeSort{
Versin 1
Comparador de
Versin 2 Salida
Entrada
Resultado
Acordado
Versin 3
Administrador de
fallos
Comprobador de
A1 salida
A2
Figura 4. 11 Redundancia modular Triple para tratar los fallos de ejecucin del
rechazado el sub-sistema. La forma TMR necesita al menos tres versiones mnimas
hardware
para poder realizar la consistencia de fallos del sistema, si una de estas versiones
fallara las otras la reemplazaran.
Algoritmo Prueba de
1 aceptacin
Prueba de
Algoritmo de aceptacin La ejecucin contina si
prueba1 Reintento
fracaso- la prueba de aceptacin
reintento Probar tiene xito
Nuevam
ente
Algoritmo Algoritmo
2 3
Figura 4.12 Bloques de Recuperacin
Prueba
La variedad de fallos comunes e puede lograr de diferentes formas:
Prueba de 146
Algoritmo
1. Los requerimientos
1 aceptacin
del sistema se pueden utilizar en diferentes proximidades de diseo,
198 Molina J, Valarezo M, Zea M
Ejercicios
Siguiendo este captulo nos daremos cuenta que los cambios que se producen a un software para
que ayude a la empresa no son por deteccin de fallos o errores si no por consecuencias de que
200
se recrean nuevos Molina J, Valarezopor
requerimientos M, Zea M
el canje de negocio y las necesidades que sufre el usuario
final en unasufre
reglael de negocio. Por eso los procesos
usuario final en una regla de negocio. de la Por
Ingeniera
eso los en Software
procesos son procesos
de la
que se piensa que conenuna
Ingeniera espiralson
Software conprocesos
requerimientos, diseo,que
que se piensa implementacin
con una espiral y pruebas es
decir las fases
con del desarrollo de diseo,
requerimientos, vida de implementacin
un software, queysepruebas
realizan es
continuamente
decir las fa- durante el
tiempo de vida deldesarrollo
ses del sistema Esto se muestra
de vida en la Figura
de un software, 4.13.
que se Donde
realizan lo primero que hace es
continuamen-
fabricar unteentregable
durante ely tiempo
de ir mejorando
de vida deldicho entregable
sistema Esto se de una forma
muestra en la inmediata
Figura dado el
entregable 1. Es totalmente
4.13. seguro que
Donde lo primero quetodo
haceprograma necesitara
es fabricar una actualizacin.
un entregable y de ir me-
jorando dicho entregable de una forma inmediata dado el entregable 1.
Es totalmente seguro que todo programa necesitara una actualizacin.
Especificacin Implementacin
Operacin Validacin
1. Estabilidad del equipo. Es normal que una vez que el software sea e
de trabajo se llegara a disolver porque las personas que estaban in
Especificaciones para la construccin del sistema 205
3. Los procesos de negocios en los que se utiliza el sistema. Todo proceso de negocio
genera un cambio ya que todos estos procesos evolucionan. Por eso para que se realicen
muchsimas ms peticiones al sistema se introducen ms procesos de negocios.
208 Molina J, Valarezo M, Zea M
No hay un proceso general para poder para poder precisar cmo sera
su evolucin. Los procesos de evolucin en distintas compaas han
convertido en procesos informales, esto quiere decir que se limitan al
diseo y programacin pero no se encuentra documentacin. En cam-
bio los procesos de evolucin formales permiten a los programadores y
diseadores mantener mejor mantenibilidad porque encuentras todo
tipo de documentacin estructurada en cada hito del ciclo de desarro-
llo del software.
Los cambios, las propuestas de cambios son quienes delimitan
como va a evolucionar el sistema, es decir las distintas propuestas son
las que van a delimitar como el sistema o software vaya evolucionando.
Todo requerimiento que no se haya implementado solo las nuevas for-
mas de que el sistema vaya evolucionado, estos requerimientos son en-
tregados a los stakeholder (personas involucradas en el proyecto) para
que puedan hacer que el software mejore y evolucione en la figura 4.17
los procesos de evolucin nos demuestran que son procesos itinerantes
durante todo el proceso de vida de un software.
Para poder valorar el coste de mantenibilidad y evolucin es nece-
sario seguir lineamientos como las fundamentales de anlisis de cam-
bios, planificacin de entregas, implementacin del sistema y entrega
de un sistema a los clientes. Si estos cambios llegan a ser aceptados
quiere decir que todas las propuestas de cambio fueron a llegar acep-
tadas y estn listas para ser tratadas. Una vez que son aceptadas estas
propuestas los stakeholders validan estas propuestas y trabajan en
una nueva versin.
En el curso inicia la implementacin de los cambios de convierte en
un proceso cclico, la implementacin de los cambios implican que se
debe comprender en su totalidad el programa para que ste puede evo-
lucionar. Durante este perodo es necesario que el programador entien-
da como est estructurado el software para que puedan implementar
dichos cambios. Cuando un programador toma la decisin de realizar
un cambio debe afirmar que esto no tendr un efecto secundario al
sistema existente.
Diseo de Sistemas 2015
tratadas. Una vez que son aceptadas estas propuestas los stakeholders validan estas propuesta
210 y trabajan
Molina J,en una nueva
Valarezo M, Zeaversin.
M
Figura 4. 18 ImplementacinFigura
de Cambios
4. 18 Implementacin de Cambios
nadas con fallos que han concurrido en el sistema, de tal manera que
Para poder hacer que el sistema evolucione
Para poder hacer los
que requerimientos deben ser
el sistema evolucione losanalizados a su deben ser
requerimientos
los requerimientos
mxima de fallos
brevedad, generalmente a son
mxima los primeros
unbrevedad,
requerimiento en repararse
le surgen
generalmente en eldetiempo
a implicaciones
un requerimiento modificacin
le surgen implicaciones
ms
que nocorto. Los requerimientos
son necesarias en aquella no sondede
que etapa fallosde
proceso
necesarias pueden
enanlisis
aquelladetener deinstanciaciones
los cambios.
etapa procesoEsto da a entender
de anlisis de los cambios. E
que
portodo
trescambio puede modificarse
razones: que todoy cambio
para quepuede
no suceda eso necesita
modificarse y paraponerlo
que no al cliente
suceda esocomo
necesita ponerlo
parte 1.
del equipo de desarrollo.
parte del equipo de desarrollo.
Al momento que se produce un defecto en el sistema que invali-
de todas las funciones del software, este debe ser reparado para
Generalmente cuando se pide una modificacin
Generalmente cuandoestas estnuna
se pide relacionadas
modificacinconestas
fallosestn
que relacionadas
han con
concurridopermitir el funcionamiento
en el sistema, deconcurrido
tal maneraen queelcon
los normalidad
requerimientos
sistema, dentro
que del
de fallos
de tal manera sistema.
sonrequerimientos
los los primeros ende fallos son
2. en
repararse Si elpor alguna
tiempo razn
ms corto. al requerimientos
Los
repararse momento
en el tiempo que se realiz
de corto.
ms fallos pueden
Los un cambio,
tener deeste
instanciaciones
requerimientos por
fallos pueden tener ins
tres razones:
cambio afecta al tressistema
razones: operativo producir fallos inespera-
dos que lo limitan a trabajar con normalidad.
1. Al momento que se produce1. Al un momento
defecto enqueel sistema queun
se produce invalide
defectotodas
en ellas funciones
sistema que invalide tod
3. Si hay alteraciones en la empresa que utiliza el sistema; como
del software, este debe ser reparado para este
del software, permitir
debeelser
funcionamiento
reparado para con normalidad
permitir el funcionamiento
la agregacin
dentro del sistema. de nuevas funcionalidades
dentro del sistema. o la inicializacin de
una etapa nueva de la legalizacin.
2.Estos
Si portres
alguna razndiferentes
casos al momento quealguna
2. Si por
dan selugar
realiza un
razn alcambio,
momento
realizar esteque
cambio
modificaciones afectaunal
se realiz sistema este cambio
cambio,
r-
operativo producir fallos inesperados que lo limitan a trabajar con normalidad.
operativo producir fallos inesperados que lo limitan a trabajar con nor
pidas al sistema, esto nos da a entender que se deben crear procesos
informales
3. Si hay porque resulta
alteraciones en la 3.imposible
empresa
Si hayque recrear
utiliza enprocesos
el sistema;
alteraciones comode
la empresa la anlisis
utiliza el for-
queagregacin de nuevas
sistema; como la agreg
funcionalidades o la inicializacin
mal de cambio. Todas estas funcionalidades de una etapa
reparacioneso se nueva de la legalizacin.
la inicializacin de una etapa nueva
vuelven reparaciones de de la legalizacin
emergencia en donde no da pie alterar los requerimientos y el diseo
Estos tres casos diferentes dan lugar
Estos a realizar
tres modificaciones
casos diferentes dan lugarrpidas al sistema,
a realizar esto nos da
modificaciones a
rpidas al sistem
entender que se deben crear entender
procesos queinformales
se deben porque
crear resulta
procesosimposible
informalesrecrear procesos
porque resultadeimposible rec
anlisis formal de cambio. Todas estas
anlisis reparaciones
formal de cambio. se vuelven reparaciones
Todas estas de emergencia
reparaciones se vuelven en reparaciones d
donde no da pie alterar los requerimientos
donde no da pie y elalterar
diseolosdelrequerimientos
sistema esto solo
y else realiza
diseo delpara poderesto solo se re
sistema
dar una solucin a un problemadar emergente
una solucin (Figura 4.19). El problema
a un problema emergentede(Figura
estas reparaciones de
4.19). El problema de estas
emergencia es que los requerimientos
emergencia y elesdiseo
que losderequerimientos
software se vuelven inconsistentes.
y el diseo de softwareCuando
se vuelven incons
212 Molina J, Valarezo M, Zea M
del sistema esto solo se realiza para poder dar una solucin a un pro-
blema emergente (Figura 4.19). El problema de estas reparaciones de
emergencia es que los requerimientos y el diseo de software se vuel-
ven inconsistentes. Cuando un analista se encuentra en la etapa de
documentacin de los requerimientos y diseos, puede que se produz-
ca reparaciones de emergencia donde estas constaran con prioridad
sobre la funcin del analista de la documentacin. Pero todo esto tiene
un efecto en la documentacin de sistema porque el cdigo nunca vuel-
ve a ser consistente.
Las reparaciones de emergencia son las que Diseo se debende Sistemas
completar 2015
con la ms brevedad posible estas reparaciones de emergencia se vuel-
que
venseun produzca reparaciones
requisito de emergencia
funcional; para dar donde estas constaran
la mejor solucin conposible.
prioridad Esto
sobre la
funcin del analista de la documentacin. Pero todo esto tiene un efecto en la documentacin
ayuda al Software que su tiempo de vida sea ms extenso pero de
de sistema porque el cdigo nunca vuelve a ser consistente.
forma que donde se produzcan nuevos cambios, estos cambios son
Las reparaciones
difciles de emergencia yson
de implementar el las que econmico
valor se deben completar con la ms brevedad
del mantenimiento posible
crece
estas reparacionesmente.
abrumadora de emergencia se vuelven un requisito funcional; para dar la mejor solucin
posible. Esto ayuda al Software que su tiempo de vida sea ms extenso pero de forma que donde
Cuando se realiza un mantenimiento al cdigo las solicitudes de
se produzcan nuevos cambios, estos cambios son difciles de implementar y el valor econmico
modificacin deben seguir existiendo as los defectos hayan sido elimi-
del mantenimiento crece abrumadora mente.
nados del sistema. Cabe resaltar que para reparar un cdigo de emer-
Cuando
genciaseserealiza
puedeun utilizar
mantenimiento al cdigo las solicitudes
la reutilizacin de cdigodedemodificacin
reparacin. deben seguir
Otra
existiendo as los defectos hayan sido eliminados del sistema. Cabe resaltar que para reparar un
opcin para reparar un cdigo de emergencia es extender el tiempo de
cdigo de emergencia se puede utilizar la reutilizacin de cdigo de reparacin. Otra opcin
anlisis de cdigo fuente.
para reparar un cdigo de emergencia es extender el tiempo de anlisis de cdigo fuente.
Todos estos cambios generalmente tienen una prioridad baja y una
Todos estos cambios
vez hayan generalmente
solucionados tienenproblemas
estos una prioridad adicionales
baja y una vez hayan
no essolucionados
necesario estos
problemas adicionales no es necesario
hacer reparaciones de emergencia. hacer reparaciones de emergencia.
software esto se muestra en la figura 4.20 que trata de la ingeniera hacia adelante.
Molina J, Valarezo M, Zea M
Esta figura trata sobre las especificaciones del sistema e intenta estudiar el diseo e
implementacin que se realiza a un nuevo sistema. Uno de los objetivos principales de la
muestra en la figura 4.20 que trata de la ingeniera hacia adelante.
reingeniera es coger un sistema ambiguo tanto sus procesos de desarrollo para remplazarlos por
Chikofsky y Cross citan que el desarrollo convencional de la ingeniera
en adelante se distingue del uso de la reingeniera de software esto se
que intenta es copiar este sistema y modelarlo a su nuevo lenguaje.
un sistema nuevo que sea capaz de comprender y estructurar al sistema ambiguo. La figura 4.21
ensea cuales son los procesos de la reingeniera. Toda entrada en los procesos de ingeniera son
programas heredados mientras que en su salida encontramos una nueva versin del programa
que est estructurada y modularizada del mismo programa heredado, cabe resaltar que en la
Especificaciones para la construccin del sistema 215
Esta figura trata sobre las especificaciones del sistema e intenta estu-
diar el diseo e implementacin que se realiza a un nuevo sistema. Uno
de los objetivos principales de la reingeniera es coger un sistema ambi-
guo tanto sus procesos de desarrollo para remplazarlos por un sistema
nuevo que sea capaz de comprender y estructurar al sistema ambiguo.
La figura 4.21 ensea cuales son los procesos de la reingeniera. Toda
entrada en los procesos de ingeniera son programas heredados mien-
tras que en su salida encontramos una nueva versin del programa
que est estructurada y modularizada del mismo programa heredado,
cabe resaltar que en la reingeniera todos los datos del sistema tambin
son mudados. Las actividades que se deben cumplir para que se pro-
duzca la reingeniera son:
1. Traduccin del cdigo fuente. En esta parte trata de tras-
ladar el lenguaje de programacin ambigua a un lenguaje de
programacin seleccionado pero este debe ser moderno, este
lenguaje puede ser una versin mejorada del lenguaje ambiguo
o un lenguaje de programacin diferente.
2. Ingeniera inversa. Para poder aplicar la ingeniera inversa en
un programa heredado se debe extraer toda informacin del
sistema para poder documentarlo, la documentacin ms im-
portante en la ingeniera inversa es la funcionalidad del pro-
grama.
3. Mejora de la estructura de los programas. Esto implica que
para poder hacer ms fcil de leer y comprender las estructu-
ras de control del programa deben y se necesitan ser analiza-
das y modificar solo lo esencial.
4. Modularizacin de los programas. La modularizacin de los
programas intenta eliminar la redundancia en donde resulta
adecuada y agrupa en partes al programa en ciertos casos la
modularizacin de los programas transforma la arquitectura
del ncleo central del programa.
5. Reingeniera de datos. El objetivo principal de la reingeniera
de datos es que todos los datos lleguen a ser procesados por el
programa para que puedan mostrar cambios en el.
En la figura 4.21 se detallan los pasos de la reingeniera pero cabe
mencionar que en algunos casos se puede omitir uno o varios pasos un
ejemplo de esto es la traduccin de cdigo fuente no sea necesaria si
fcil de leer y comprender las estructuras de control del programa deben y se necesitan
ser analizadas y modificar solo lo esencial.
160
el ciclo de vida de un software y realizan una separacin artificial entre el mantenimiento del El
valor econmico de la reingeniera depende de la magnitud del trabajo que se debe dar como se
muestra en la figura 4.22, el valor aumenta desde izquierda hacia derecha esto se da para mitigar
el valor de la traduccin del cdigo fuente es decir se vuelva el factor ms econmico, mientras
que la opcin ms cara en la reingeniera es la migracin arquitectnica del sistema. Los
factores que afectan al coste de la reingeniera son:
Especificaciones para la construccin del sistema 217
Para poder evaluar un sistema heredado tiene que verse desde el punto
de vista de negocio y tcnica de la organizacin.
Perspectiva de negocio. Para que un sistema heredado contine
los procesos de negocios tiene que informar y combinar los va-
lores de ganancia de la organizacin
Perspectiva Tcnica. Para continuar con la perspectiva tcnica
el sistema heredado tiene que ser evaluado y cumplir con la
calidad de la aplicacin tanto en su software y en su hardware
contine dando soporte de sistema.
Un ejemplo de esto es, suponer que en una empresa continan con sis-
temas heredados. Todos los procesos de negocios y la calidad del soft-
ware se evalan y se comparan con otros sistemas creando un grfico
que defina el valor relativo del negocio versus la calidad del sistema,
Esto se muestra en la figura 4.23. Diseo de Sist
1. baja calidad y bajo valor de negocio. Mantener un sistema que tenga baja
valor de negocio constituye un coste elevado y disminuye los benef
220 Molina J, Valarezo M, Zea M
En caso que se necesite evaluar la calidad tcnica existen rangos que se muestran en la figura
4.25, estos rangos
222 seJ,centran
Molina enM,
Valarezo la Zea
confiabilidad
M del sistema, la dificultad de mantener el sistema
en auge y el tipo de documentacin que se le hizo. En otro aspecto tambin para poder evaluar
la calidad
1. Eltcnica es importante
nmero recolectar datos
de peticiones de cuantitativos
cambio de del sistema.
sistema paraLos
poderdiversos
juzgar su
calidad. Los datos cuantitativos se los obtiene de la siguiente manera.
cambios que se le pueden realizar a un sistema pueden llegar a
1. Eldestruir
nmero dela estructura
peticiones deldesistema
de cambio sistema. Loslo que conlleva
diversos cambios en
que un
se le futuro
pueden
realizar
a quea un sistema
sea mspueden llegar
difcil a destruir lacambios.
realizarle estructura delCuando
sistema lo que
ms conlleva
alto enes
un futuro a que sea ms difcil realizarle cambios. Cuando ms alto es este valor de
este valor de cambio cada vez ms baja la calidad del sistema.
cambio cada vez ms baja la calidad del sistema.
Taza de fallos de ejecucin Tiene el hardware una tasa elevada de fallos de ejecucin?
Falla el software de soporte y fuerza la re inicializacin del
sistema?
Costo de mantenimiento Cules son los costes del mantenimiento del Hardware y
licencias de software de soporte? El hardware ms antiguo
puede tener costes de mantenimiento ms elevados que los
sistemas modernos el software de soporte tambin puede
tener altos costos anuales de licencia
165
Especificaciones para la construccin del sistema 223
Los procesos redundantes bien conceptualizados son de muy alta importancia para
poder minimizar cualquier defecto de un sistema, para esto es muy necesario que
cambios en stos.
[225]
Glosario
[227]
228 Molina J, Valarezo M, Zea M
[229]
230 Molina J, Valarezo M, Zea M
www.utmachala.edu.ec