Sei sulla pagina 1di 52

Tabla de contenido

Por qu modernizar? ......................................................................................................................... 3


1.1. Qu es la modernizacin? ................................................................................................. 5
1.2 Enfoques para la modernizacin ............................................................................................... 5
1.3 La necesidad de modernizacin ................................................................................................ 6
1.3.1 La necesidad de modernizar la base de datos ................................................................... 6
1.3.2 La necesidad de modernizacin de interfaz ....................................................................... 6
1.3.3 La necesidad de modernizacin del programa .................................................................. 7
1.4 Los beneficios de la modernizacin .......................................................................................... 7
1.5 A partir de dnde empezar? .................................................................................................... 8
1.6 Colocacin de las reglas del juego............................................................................................. 8
1.7 Qu es una aplicacin moderna? ............................................................................................ 9
1.8 Obstculos ................................................................................................................................. 9
1.9 Comienza el viaje ..................................................................................................................... 10
Camino a la modernizacin ............................................................................................................... 10
2.1 En donde estas empezando? ................................................................................................. 10
2.2 Cules son sus metas de modernizacin? ............................................................................. 11
2.2.1 Reemplazo ........................................................................................................................ 11
2.2.2 Reingeniera ...................................................................................................................... 12
2.2.3 Refacing ............................................................................................................................ 13
2.2.4 Refactoring ....................................................................................................................... 15
2.3 Cmo modernizar .................................................................................................................... 15
2.3.1 Introduccin ..................................................................................................................... 15
2.3.2 Modelo de Modernizacin ............................................................................................... 16
2.3.3 Principios generales ......................................................................................................... 17
2.3.4 Fase 0: Preparar ............................................................................................................... 19
2.3.5 Fase 1: Experimentacin .................................................................................................. 22
2.3.6 Fase 2: Off and Running ................................................................................................... 23
2.3.7 Fase 3: Evaluacin y ampliar el pensamiento futuro ....................................................... 26
2.3.8 Fase 4: Implementacin ................................................................................................... 26
2.3.9 Repita segn sea necesario .............................................................................................. 28
Las tcnicas modernas de arquitectura de aplicaciones ................................................................... 29
3.1 Introduccin ............................................................................................................................ 29
3.1.1 Los sntomas de un mal diseo ........................................................................................ 29
3.2 La modularizacin ................................................................................................................... 30
3.2.1 Por qu la modularizacin es importante ...................................................................... 30
3.2.2 Principios generales ......................................................................................................... 32
3.3 Diseo por niveles ................................................................................................................... 33
3.4 Modelo de objetos de Negocios ............................................................................................. 34
3.4.1 Implementacin ............................................................................................................... 35
3.4.2 Ventajas ............................................................................................................................ 35
3.5 Los datos de programacin centrada ...................................................................................... 36
3.5.1 Mover a centrada en los datos de programacin ............................................................ 39
3.6 Servicio Orientacin ................................................................................................................ 40
3.6.1 Qu es un servicio?......................................................................................................... 42
3.6.2 Las propiedades de los servicios ...................................................................................... 43
3.7 Nube ........................................................................................................................................ 43
4.1 Editar, compilar y depurar IDE ................................................................................................ 45
4.2 SEU y PDM para RDi: Por qu cambiar? ................................................................................ 45
4.2.1 actual (y futuro) soporte de idiomas ................................................................................ 46
4.2.2 entorno de desarrollo basado en Eclipse ......................................................................... 46
















Por qu modernizar?
Para la comunidad de IBM i, la necesidad de modernizar las aplicaciones heredadas es ahora una
urgente requisito. El mundo de las aplicaciones empresariales se ha convertido en un rpido
movimiento, en constante cambio medio ambiente. La web, informtica mvil y la nube han
seguido rpidamente el impacto de interfaces grficas. La comunidad se enfrenta a un entorno en
constante cambio y se debe garantizar que las aplicaciones pueden ser mejoradas y mantenidos
cuando se trata de estos fcilmente nuevos requisitos.
Las opciones para la modernizacin de una aplicacin son o bien para reemplazarlo o para volver a
utilizar tcnicas de ingeniera. En cuanto a cul de estas dos opciones es mejor depende de la
aplicacin y por qu la modernizacin est llevando a cabo el proceso. No importa qu opcin es
la solucin correcta, todava hay un requisito para entender el proceso de modernizacin y el
proceso de re-ingeniera que es aprobada o rechazada.
Las aplicaciones tradicionales a menudo son grandes y difciles de modificar. La modernizacin de
un legado aplicacin no significa que la aplicacin debe ser reemplazado o reescrito en un nuevo
idioma. Modernizacin significa la reingeniera de una aplicacin. Esto puede incluir el cambio de
cualquier combinacin de la interfaz, la lgica de negocio, y la base de datos. El objetivo de la
modernizacin es para que sea ms fcil cambiar y mantener su aplicacin en el futuro y
proporcionar la derecha interfaz para los usuarios.

La realidad es que, a lo largo de los aos, las empresas ya han hecho una fuerte inversin en
aplicaciones que satisfacen las necesidades del negocio. Aunque los requisitos de negocio podran
estar cambiando, las necesidades de negocio actuales se deben cumplir. El reto es ser capaces de
mantener y reutilizar los principales procesos de negocio, mientras que la reingeniera, la
refactorizacin y mejorar el resto de la aplicacin es para satisfacer estas demandas.

Este captulo trata de las fuerzas impulsoras detrs de la modernizacin y algunos de los ms
comunes detrs de los proyectos de modernizacin. Cubre:
Cul es la modernizacin
La necesidad de modernizacin
Los beneficios de la modernizacin






















1.1. Qu es la modernizacin?
Modernizacin significa diferentes cosas para diferentes personas. Modernizacin podra
significar:
Creacin de una nueva interfaz de usuario
Refactorizar una base de datos
Hacer grandes cambios en el cdigo
Hacer pequeos cambios en el cdigo
No hacer cambios en el cdigo
Integracin de nuevas aplicaciones
Cualquier permutacin o combinacin de los elementos anteriores

La modernizacin puede ser cualquier cosa, desde la pantalla raspando una aplicacin para
convertirlo en un escalonado o la arquitectura orientada a servicios (SOA).

La modernizacin puede consistir en cualquier permutacin y combinacin del uso de una
independiente proveedor de soluciones de software (ISV), el rediseo de una base de datos, el
rediseo y la recodificacin de aplicacin programas, codificacin de nuevos programas, utilizando
nuevos lenguajes de programacin, y la escritura de nuevas aplicaciones. La modernizacin es un
trmino muy amplio con muchos aspectos diferentes a considerar. Este Redbooks publicacin est
dirigida a proporcionar una visin holstica de la modernizacin.





1.2 Enfoques para la modernizacin
El trabajo del desarrollador sera mucho ms fcil si hubiera una hoja de ruta simple para
Modernizacin. Por desgracia, este no es el caso. Hay muchos factores que determinan el enfoque
deseado para la modernizacin:
Presupuesto
Apoyo a la gestin
Por qu se est llevando a cabo el proceso de modernizacin? Qu permutacin de interfaz,
cdigo de base de datos, y la aplicacin debe modernizarse?

Recursos . Los retos a los que se enfrentan por una tienda de cien desarrolladores son muy
diferentes a los que enfrent en un taller de diez desarrolladores, que son, a su vez, muy, muy
diferente de los que enfrentan una tienda de dos desarrollador.
Cul es el estado de la aplicacin actual? Qu tan fcil es que va a ser la de cambiar esa
cdigo?
Cualquiera de estos elementos se puede dividir en varios puntos de la bala.
Puesto que hay diferentes requisitos, diferentes puntos de partida, diferentes niveles de apoyo, y
diferentes niveles de recursos, hay muchos enfoques diferentes para la modernizacin.
Aunque hay muchos enfoques, uno de los retos principales es asegurar que el enfoque elegido es
fluido. Hay que caminar por la lnea entre el control y la flexibilidad y desarrollar la capacidad para
abrazar lo nuevo, manteniendo un ncleo de trabajo.
Al principio, la eleccin de un camino a la modernizacin parece ser una tarea desalentadora. Si se
acepta que el camino va a cambiar cuando se inicia el proceso, es mucho ms fcil para empezar
1.3 La necesidad de modernizacin
La necesidad de modernizacin por lo general es impulsado por una necesidad comercial: esto
significa que a menudo que incitan a los usuarios la necesidad de la modernizacin. Aunque
podramos saber que, desde un punto de vista tcnico, una aplicacin debe ser modernizada, es
raro que tengamos los recursos y financiacin necesaria sin las peticiones y el apoyo de los
usuarios y de gestin.
Los usuarios son ms conocedores de la tecnologa. Demanda de los usuarios no es slo para las
soluciones. Los usuarios exigen cmo quieren las soluciones entregadas.
Demandas empresariales conducen a los requisitos de modernizacin en tres reas:
Database
Interface
Cdigo de la aplicacin
Aunque hay muchas variaciones, los siguientes ejemplos deben sonar familiares.
1.3.1 La necesidad de modernizar la base de datos
Estos son algunos de los escenarios ms comunes que pueden conducir a la modernizacin de
bases de datos.
La compaa ha decidido sustituir Query/400 con IBM DB2 Web Query.
La base de datos necesita ser modernizado para hacerlo ms accesible a los usuarios y para
garantizar que el uso de software tales como DB2 Web Query no afecta negativamente al
rendimiento en el sistema.
Usuarios han comenzado a utilizar una nueva herramienta de anlisis de PC que extrae
informacin del base de datos. El proveedor herramienta recomienda que los datos se repliquen
en otra plataforma, ya que no se ve como una base de datos para ellos. La base de datos necesita
ser reprogramado para representar en un formato ms familiar para un administrador de base de
datos (DBA).
Una nueva aplicacin ser escrita sobre una base de datos existente. La nueva aplicacin har
uso de las funciones de base de datos (por ejemplo, las restricciones y los disparadores) que no
han sido implementados en la base de datos existente. La implementacin de estas caractersticas
tambin podra tener afectar a la aplicacin existente.
Una aplicacin existente tiene que ser reescritos. La modernizacin de la base de datos
reducir la complejidad de los programas disponibles en la nueva aplicacin.
1.3.2 La necesidad de modernizacin de interfaz
La necesidad de interfaces nuevas o mejoradas es probablemente la razn ms citada para
modernizacin. Estos son algunos de los escenarios ms comunes que pueden conducir a la
modernizacin de la interfaz.
Una empresa invierte en nuevas aplicaciones que utilizan una interfaz grfica de usuario (GUI).
Los usuarios son la conmutacin entre la GUI y tradicionales 5,250 interfaces para diferentes
aplicaciones. Ellos preferira una interfaz comn y GUI es la preferencia.
Ahora Hay generaciones de usuarios que nunca se han encontrado con una pantalla de 5250 de
estilo antes de unirse a la compaa. Para estos usuarios, una interfaz grfica de usuario es la
interfaz de eleccin y una Pantalla de 5250 de estilo se considera pasado de moda.

Usuarios que han estado utilizando una aplicacin para un nmero de aos que soliciten una
nueva interfaz grfica de usuario para que se coloca en su lugar. Esto es a menudo una reflexin
sobre el diseo de pantallas pobres. Los usuarios de Internet estn felices con la solicitud, pero no
con la forma en que se ve. A menudo, cuando los usuarios estn contentos con Diseo de 5250 de
estilo, que no quieren una nueva interfaz hasta que los nuevos usuarios que no tienen con
experiencia de estilo de 5250, ven.
El CEO quiere informes mensuales como un solo grfico en su telfono inteligente.
Percepcin. 5250 se considera viejo y GUI o mvil se considera nueva. Las nuevas aplicaciones
debe ser mejor, no? A menudo, una nueva interfaz de usuario puede cambiar dramticamente la
vista de la comunidad.
Qu generacin de usuarios tendr instrucciones sobre cmo utilizar un ratn?
1.3.3 La necesidad de modernizacin del programa
Estos son algunos de los escenarios ms comunes que pueden conducir a la modernizacin del
programa.
Una nueva interfaz basada en la web que se replica una aplicacin 5250 de estilo existente est
siendo desarrollado. Por ejemplo, se est creando una aplicacin de entrada de pedidos para que
los clientes pueden colocar sus propias rdenes sin tener que llamarlos pulg La nueva aplicacin
debe utilizar el misma lgica de negocio como la aplicacin existente. Por desgracia, la lgica de
negocio est firmemente incrustada en los programas de pantalla 5250.
Debido a los cambios que se estn haciendo a la base de datos o de la interfaz, los cambios
tienen que ser hecho a los programas de aplicacin.
Una aplicacin tiene cuatro programas horrendos, gigantescas que contienen la lgica de
negocio principal de la aplicacin. Cualquier cambio (aunque sea pequeo) a uno de estos
programas es un gran empresa requiere un conocimiento detallado de los programas y de
extensas pruebas. es hora de simplificar su coste de mantenimiento.
Los programadores con el conocimiento detallado de los programas de aplicacin estn a punto
de la jubilacin. Sera mejor si el cdigo estuviera en un formato ms fcil para un recin
programador entrenado para entender. Es el momento de utilizar los estilos de programacin y
herramientas modernas.
Clientes necesitan acceder a la informacin existente a travs de un servicio web en lugar de
interfaces existentes.
1.4 Los beneficios de la modernizacin
Son muchos los beneficios que se derivan de la modernizacin, que incluye:
Una mejor interfaz
Una mejor base de datos
Ms fcil de mantener aplicaciones
Aplicaciones ms flexibles. Nuevos requerimientos de negocio son ms fciles de implementar.
Aplicaciones integradas. Es ms fcil de integrar con otras aplicaciones, plataformas e
interfaces.
Es ms fcil encontrar desarrolladores que pueden mantener cdigo moderno.
Una aplicacin modernizada puede dar a la empresa una ventaja competitiva. La capacidad de
hacer cambios rpidos en la aplicacin significa que la empresa puede responder rpidamente a
los cambios del negocio.
Siga usando la inversin existente. El hecho de que una aplicacin podra beneficiarse de una
Actualizacin a su interfaz no significa que la aplicacin no est funcionando un cumplimiento de
una necesidad de negocio.
1.5 A partir de dnde empezar?
Al igual que con todos los viajes, la duracin del viaje y el reto del terreno que se atravesar
depender de donde usted est comenzando.
La ventaja y desventaja de IBM i es que las aplicaciones son compatibles con los principios de
versiones. Es posible que un programa que estaba escrito en el System/38 en 1980 para funcionar
(sin recopilacin) en uno de IBM Power Systems de hoy. La ventaja es que, como era de hardware
reemplazado y mejorado, las aplicaciones no necesitan ser actualizados o cambiados.
Desafortunadamente, las mismas aplicaciones se escriben utilizando cdigo y tcnicas que podran
haber sido de codificacin de punta hace veinte aos ms, pero inferiores a las necesidades de hoy
en da.
Es necesario determinar lo siguiente:
La aplicacin tiene una base de datos relacional bien estructurada?
Fue la aplicacin escrita originalmente para System/34, Sistema/36, System/38 o uno de los
Muchas versiones de IBM AS/400, IBM eServer , IBM iSeries o IBM i?
en Qu lenguaje est desarrollada la aplicacin? Es COBOL, COBOL ILE, RPG II, RPG III,
RPG IV, Java, C, algn otro lenguaje, o alguna permutacin o combinacin de dos o ms idiomas?
Es la aplicacin IBM Integrated Language Environment (ILE)?
Los programas de aplicacin estn bien estructurado?
1.6 Colocacin de las reglas del juego
El Inicio de un proyecto de modernizacin puede ser una perspectiva desalentadora y es fcil
sentirse abrumado por las opciones y la cantidad de informacin disponible. Esta es la etapa en la
que la mayora de la gente dice: es ms fcil seguir con lo que sabes en lugar de abrazar lo nuevo.
Hay tambin el reto de tener que mantener la aplicacin existente mientras se est modernizado.
El alcance de un proyecto de modernizacin, la importancia de las diferentes opciones y la
estructura de un proyecto depende de los recursos disponibles y la meta para el resultado. Hay
enormes diferencias entre las opciones disponibles para una tienda de un solo desarrollador y un
centenar de tienda de desarrollador. Por lo general, hay que ser selectivos acerca de lo que va a
ser modernizado y cmo pueden lograrse.
Puede haber ms beneficios de la modernizacin de cdigo en lugar de empezar con la base de
datos o viceversa. Las opciones sobre el uso de nuevos lenguajes dependern de la disponibilidad
de formacin o programadores con las habilidades requeridas. La necesidad de un cambio bien
definido de proceso de gestin es muy variado dependiendo de la cantidad de programadores que
estn trabajando en el proyecto. Hay muchos trminos y condiciones que se aplican.
Sera de gran ayuda si hubiese un solo plan que podra ser aplicado a todos los proyectos de
modernizacin, pero este no es el caso. El proceso ser diferente para cada tienda y cada
aplicacin.
Aunque cada proyecto de modernizacin es diferente, hay una serie de reglas bsicas y
circunstancias que son comunes a todos.
Hay principios bsicos que deben aplicarse a todos los proyectos de modernizacin:
No tengas miedo al fracaso
Habr una necesidad de la educacin y la formacin.
Desarrolladores debe utilizar las herramientas adecuadas y tienen que aprender a usarlos.
Habr una necesidad de gestin del cambio. Esta ser la gestin del cambio en una
Entorno de desarrollo en oposicin a un entorno de mantenimiento.
Pruebe un proyecto no oficial. Pasar por el proceso de modernizacin, con slo un par de
programas. Lleve a cabo una prueba de concepto (POC).
Dar pequeos pasos. Hay mucho que aprender.
Pon un proceso de documentacin en el lugar. Usar Wikis.
Determinar las normas y disciplinas para el proceso de modernizacin. Al comienzo de la
proceso, las normas y disciplinas sern las directrices, que se convertir en firme procesos.
No se adhieren a las mismas prcticas que han estado utilizando durante aos. Utilice gil
principios de desarrollo para entregar proyectos ms pequeos que se acumulan unos sobre otros.
Tienes que hacer las cosas bien la primera vez. De lo contrario, se puede aadir a los gastos.
Considere una solucin "tctica" que puede aprovechar su objetivo estratgico.




1.7 Qu es una aplicacin moderna?
Una aplicacin moderna es aquella en que las modificaciones o mejoras a la aplicacin tienen una
efecto mnimo. Por ejemplo, cambios en la interfaz no deben exigir cambios en el lgica de
negocio.
La naturaleza de una aplicacin moderna es que el diseo de la base de datos y programas es tal
que el requisito de la prueba se reduce al mnimo. Este enfoque permite el desarrollo rpido y
ms fcil, mantenimiento menos complejo.
Estas son algunas de las caractersticas que debe buscar en una aplicacin moderna:
Un diseo escalonado que separa la aplicacin en componentes separados: interfaz,
lgica de negocio, y la base de datos.
Una base de datos bien diseado y sintonizado que implementa la integridad
flexibilidad de cdigo, lo que permite un medio flexible para el desarrollo de nuevas interfaces
y cambiar los procesos de negocio.
La reutilizacin de cdigo, lo que significa que los mismos procedimientos se utilizan en todas
partes. No significa que el cdigo se copia y se pega en mltiples programas.
mantenibilidad de Cdigo, lo que significa que no hay ningn cdigo duplicado y que la
estructura de los programas es ms simple y ms fcil de entender. El mantenimiento de estos
programas debe tener menos efectos secundarios potenciales.
1.8 Obstculos
Aparte de las necesidades obvias de financiamiento y de recursos, hay una serie de
condiciones que pueden inhibir el proceso de modernizacin. Con base en la experiencia del
equipo, estos son algunos de los obstculos comunes que pueden dificultar, si no descarrilar, el
proceso de modernizacin:
Desarrolladores no utilizan las herramientas adecuadas. Los desarrolladores estn a gusto con
lo que saben.
A veces, es ms fcil de mantenerse dentro de la zona de confort de la utilizacin de herramientas
familiares en lugar de frente a la tarea de aprender a usar nuevas herramientas.
desarrolladores no saben lo que no saben. Los desarrolladores que no tienen experiencia con
ciertas tecnologas o tcnicas de tomar decisiones acerca de cmo van a ser utilizados. es
por qu una prueba de concepto es tan importante.
Desaprender viejos hbitos. Muchos desarrolladores han estado observando las mismas
prcticas por muchos aos. Puede ser un reto para cambiar estos hbitos y adoptar otras nuevas.
No conseguir una formacin adecuada. No es suficiente para instalar una herramienta y decir
"empezar a usarlo", o para instruir a los desarrolladores que deben utilizar una nueva tcnica
cuando no lo hacen realmente entender por qu deben usarlo o cmo usarlo correctamente.
Hay tanto que aprender que los desarrolladores se sienten abrumados antes de que
comiencen. todo debe hacerse en pequeos pasos.
Todo el proceso de modernizacin puede ser aterrador. En primer lugar, hay muchos
incgnitas que los desarrolladores quieren retirarse a lo que mejor saben hacer.
El establecimiento de objetivos poco realistas. Los objetivos se establecen a menudo sin
entender lo que se requiere para alcanzarlos.
La falta de apoyo a la gestin. Es por esto que es importante empezar poco a poco. Entre ms
pronto posible demostrar las ganancias, ms fcil conseguir apoyo de la direccin.

1.9 Comienza el viaje
Cualquiera de los muchos caminos de modernizacin que est a punto de salir en el viaje ser
lleno de desafos, logros y diversiones interesantes. Es un viaje que constantemente ofrece nuevos
horizontes.



Camino a la modernizacin

En este captulo se proporciona una va de modernizacin que usted puede seguir,
independientemente del enfoque de modernizacin que usted elija. Tambin proporciona
directrices para ayudar a definir donde debe iniciar su camino a la modernizacin y las definiciones
de algunos de los ms comunes modernizacin se acerca disponible.

2.1 En donde estas empezando?

Antes de iniciar un esfuerzo de modernizacin, es importante hacer una evaluacin honesta de su
los activos de software para definir su estrategia. Incluso si su software est funcionando, puede
ser que necesite ser modernizado. Existen importantes atributos de calidad de software a
considerar ms all de la funcionalidad, como la mantenibilidad, flexibilidad, facilidad de uso y
rendimiento. Para esta evaluacin, considerar los siguientes pasos:
. 1 Construir un inventario de sus aplicaciones principales:
- Objeto social
Definir el propsito de negocio de la aplicacin desde una perspectiva empresarial.
Entender que los procesos de negocio estn soportados por la aplicacin y cmo
cada uno es crtico.
- Interesado principal
Determinar quines son los interesados que se debe tener en cuenta en un eventual proyecto de
modernizacin. Esta lista le recordar la importancia de este proyecto de diferente
personas, no slo los expertos en TI.
- Experto tcnico
Es necesario comprender claramente que los tcnicos son que mantienen las aplicaciones. Estos
expertos saben muchos pequeos detalles acerca de la aplicacin que puede ser fundamental en
el proyecto.
. 2 Evaluar cada aplicacin segn los siguientes criterios:
- Flexibilidad de la interfaz de usuario
- Capacidad de mantenimiento
-Performance
- Facilidad de integracin
- Habilidades disponibles
- El valor del negocio
. 3 Defina sus metas de modernizacin:
- Mejor capacidad de mantenimiento
- Nueva interfaz de usuario
- Mejora de la legibilidad del cdigo
- Mtodos de acceso a base de datos de mejores
4. Priorizar el inventario de acuerdo a las metas.
Despus de haber completado estos pasos, usted est listo para empezar a trabajar. La
modernizacin ,las actividades implicarn diferentes aspectos de la aplicacin, incluyendo:
- Base de Datos
- Interfaz de usuario
- Integracin con otros sistemas
- La lgica de negocio
Usted acaba de empezar, as que no trate de planificar todo el proyecto de modernizacin en este
punto.
Sus planes de modernizacin va a cambiar con el tiempo y se perfeccionar a lo largo del camino.
Encuentra una pequea pieza con que usted puede comenzar. Centrarse en piezas pequeas que
con el tiempo puede llevar a grandes cosas.


2.2 Cules son sus metas de modernizacin?
Dependiendo de sus objetivos de modernizacin, hay varios mtodos disponibles. Lo que
debe tener en cuenta es que no hay un enfoque de "talla nica" para la modernizacin proceso.
Esta seccin presenta algunos de los enfoques ms comunes en la aplicacin modernizacin, que
son fcilmente adaptables a la mayora de los objetivos de modernizacin.
2.2.1 Reemplazo
En este enfoque de la modernizacin, el sistema original se sustituye por un nuevo sistema
completo.
El nuevo sistema puede ser por encargo o un producto fuera de la plataforma comercial. Esta
tcnica puede ser apropiado si los costos de modernizacin son extremadamente altos para
justificar, una modernizacin proyecto bajo un enfoque diferente, o si la aplicacin existente ya no
es capaz de satisfacer la los objetivos de negocio.
No puede haber muchos riesgos en este enfoque que usted debe considerar. Por ejemplo:
No hay garanta de que el nuevo sistema contendr la misma funcionalidad o
rendimiento que el sistema antiguo, que por lo general tiene un largo historial de cambios para
que sea personalizado para las necesidades del negocio. Esta es, probablemente, va a causar una
cierta degradacin de el servicio en algn nivel.
El personal de TI involucrados en el mantenimiento del antiguo sistema necesitarn
capacitacin para llegar a conocer el nuevo sistema. Esta formacin no es definitivamente
opcional.
Las nuevas aplicaciones pueden cambiar sus metodologas de backup y recuperacin, y deben
ser considerado.

2.2.2 Reingeniera
La reingeniera es el enfoque de la modernizacin que transforma la aplicacin original en un
nueva forma de mejorar sus caractersticas originales, como la funcionalidad, el rendimiento, la
flexibilidad, Interfaz de usuario y de mantenimiento con menos riesgo de sustitucin.
La principal diferencia entre la sustitucin y la reingeniera es que, en el ltimo enfoque,
usted debe tomar en cuenta la aplicacin existente como una limitacin de los pasos a seguir en
el proceso de modernizacin. En otras palabras, no se puede ignorar la aplicacin antigua. Por lo
general, la reingeniera de enfoque es un proceso de dos fases:
- La ingeniera inversa
- Ingeniera Forward
Ingeniera Inversa
La ingeniera inversa es la extraccin de los procesos de alto nivel y la estructura del original
codificar en una representacin fcilmente comprensible. La comprensin del cdigo existente
adquirida en esta fase es vital para el proceso de reingeniera. Dada la complejidad de muchos de
las aplicaciones que necesitan ser modernizados y la falta de documentacin funcional existente,
este proceso puede ser difcil. As que tenga en cuenta que hay muchas herramientas que le
pueden ayudar en este proceso.
Los pasos clave que tienen lugar en esta fase son:
1. Generar una representacin estructural del cdigo que le ayuda fcilmente entenderlo.
2. Iniciar el mapeo de la representacin estructural del cdigo para funcionalidades de negocio.
este le ayudar a identificar las reglas de negocio reutilizables que se pueden extraer de la
modularidad.

3. Construir una representacin arquitectnica de la aplicacin para que pueda empezar a
entender la aplicacin como un todo.
Tenga en cuenta que las tareas de ingeniera inversa por lo general se repiten a lo largo de la
modernizacin proceso varias veces. No se preocupe si usted est encontrando difcil de entender
la aplicacin. como el proceso de modernizacin avanza, su comprensin del sistema original se
Aumenta.
ingeniera directa
Ingeniera directa, tambin conocido como el "refinamiento", es la creacin del nuevo sistema a
partir de la representacin de alto nivel del cdigo original.
Esta fase se procesa con los siguientes pasos:
1. Construir una nueva representacin arquitectnica de la aplicacin deseada.
2. Definir la transformacin funcional de la original a la nueva aplicacin.
3. Escriba el nuevo cdigo.
En este proceso, se debe aplicar buenas prcticas en trminos de diseo, cdigo, tecnologas y
herramientas. Ms adelante en este libro, usted encontrar muchas herramientas, tcnicas y
prcticas que usted debe considerar durante la construccin de la nueva aplicacin. Hay muchas
herramientas para ayudar con los actuales la comprensin del programa, junto con herramientas
para ayudarle a escribir cdigo de forma moderna.
2.2.3 Refacing
Refacing es la reingeniera de slo la interfaz de usuario de la aplicacin. El principal objetivo
de este enfoque es mejorar la facilidad de uso y flexibilidad desde el punto de vista del usuario y
sin tener que reestructurar el cdigo subyacente de la aplicacin. Refacing es una tecnologa que
tiene estado disponibles durante mucho tiempo. Algunas soluciones son mejores que otros. El uno
significativa las ventajas de una solucin de la renovacin es el tiempo de comercializacin.
Utilizando una tecnologa de rectificacin, puede potencialmente mover una aplicacin 5250 de
"pantalla verde" a una web o aplicacin mvil en cuestin de varios das. Esto no significa que
usted tiene que parar en refacing. Este enfoque puede ser utilizado como un trampoln o primera
aproximacin paso. Este mtodo le puede dar un tiempo valioso si estn considerando un enfoque
de la reingeniera.
Tipos de rectificacin
Hay ms de una manera de revestir de nuevo la aplicacin. Dependiendo del grado en que va a ser
aplicado, algunas tcnicas de reparacin son slo superficiales y no requieren cambios
en el cdigo fuente. Otras tcnicas involucran cambios mnimos en el cdigo que se encarga de la
IU, pero sin entrar en la lgica de negocio o el acceso de base de datos.
raspado de pantalla
Este tipo de rectificacin se centra en la conversin de las aplicaciones tradicionales de 5250
basadas en terminales las interfaces en la ventana basados en interfaces web o interfaces mviles
basados.
captura de imgenes
por lo general funciona mediante la emulacin de un usuario en el terminal. Mientras estn
conectados, que emulan pulsaciones de teclado, procesen la salida de la pantalla, extraer los
datos, y generar una nueva pantalla. El usuario ve la nueva interfaz de usuario, mientras que la
captura de imgenes hace la intermediacin. estas tecnologas estn dirigidas a la lectura de la
corriente de datos de 5250 y la modificacin de lo que el usuario ve sobre la base de algunos
contenidos fusionada que puede cambiar o controlar el diseo, el color, y mucho
Ms. Este es un gran acercamiento para aplicaciones en las que ya no tienen acceso a la
cdigo fuente.

Para los programas interactivos, tambin puede utilizar la OA para transformar su aplicacin. El
nivel en que acta OA es diferente de un raspador de pantalla. La corriente de datos 5250 se
omite y el buffer de E / S del programa RPG se asigna directamente al controlador de la OA. El
bfer de E / S pueden ser procesados por nombre de campo o a travs de una estructura de datos
para cada formato. Esta oferta ms flexibilidad y posibilidades sobre el control y las extensiones de
su rectificacin enfoque. Puede encontrar ms informacin sobre la OA en la seccin Open Access.
Uso de la solucin de OA le permitir potencialmente controlar la interfaz de usuario de una
manera ms directa de su RPG existente cdigo y aprobar nuevos datos directamente desde su
nueva interfaz de usuario para el cdigo RPG backend.
Beneficios de la rectificacin
Al igual que con todos los enfoques de modernizacin, rectificacin puede traer muchos beneficios
a corto
plazo, incluyendo:
inicio rpido
Con este enfoque, se puede iniciar y terminar la modernizacin muy rpido. Usted no tiene que
entender el cdigo o cambiar la lgica de negocio. Esto puede ser muy til cuando la bsqueda
apoyo ejecutivo para los proyectos de modernizacin ms detallados, como la refactorizacin
completa.
Centrarse slo en la interfaz de usuario
Con refacing que no es necesario para entender el cdigo subyacente de la aplicacin. Si
Use una solucin de captura de imgenes, la aplicacin original puede ser slo un cuadro negro
para usted. si vas con OA, slo tendr que cambiar la especificacin de archivo de pantalla (una
palabra clave en el F-spec). Esto puede reducir el riesgo de romper las partes de la aplicacin que
usted no lo hace entender.
Comience a mover a otros enfoques de modernizacin
Pronto se dar cuenta de que usted necesita para empezar a cambiar otros aspectos de la
aplicacin.
Para hacer ms fcil de mantener. El enfoque de la OA se abre muchas posibilidades para
considerar cuando usted est listo para comenzar un esfuerzo de modernizacin integral. A
menudo, OA puede ser un punto de inicio para un esfuerzo ms amplio de modernizacin.
Mostrar gran mejora rpidamente
Riesgos
Usted ha aprendido los beneficios del enfoque de rectificacin, pero hay muchos riesgos asociados
con este enfoque. Usted puede dar un "lavado de cara" a la aplicacin y hacer que se vea moderna
a los usuarios finales. No obstante, la aplicacin sigue siendo el mismo inflexibles y difciles de
mantener pedazos de software.
Desde un punto de vista del rendimiento, el rendimiento de la aplicacin puede verse afectada,
porque no fue diseado originalmente con la nueva interfaz de usuario en mente. Para percibir
beneficios reales, la Modernizacin de IU se debe acompaar con un rediseo del cdigo
subyacente, donde se puede optimizar en consecuencia.
Refacing una aplicacin no tiene en cuenta el diseo de la interfaz de usuario. El flujo y cmo un
usuario podra querer interactuar con una interfaz desde el punto de vista mvil o web puede ser
diferente a la forma en que la aplicacin interacta con el uso del flujo de la pantalla verde. Por
ejemplo,
utilizando un enfoque de la pantalla verde es posible que tenga que seleccionar un men para ver
los datos adicionales
mientras que en la interfaz de usuario web de un sencillo men desplegable seleccione o podra
ser un enfoque mucho ms agradable.
Entender el flujo de la interfaz de usuario y la interaccin sera necesario que usted contine por la
camino a la modernizacin.
Tambin hay que tener en cuenta que la renovacin es ms probable que sea una solucin
temporal o tctico.
Recuerde que debe aclarar esto con la gestin, ya que desde su punto de vista, se puede pensar
que la aplicacin se moderniza y que adems no requiere.





2.2.4 Refactoring
Refactoring es una variacin de la reingeniera que reestructura una base de cdigo, mejorando su
estructura interna sin efectos adversos a su funcionalidad externa. Refactoring toma un "hacer
dao "enfoque, es decir, entre otras cosas, que las aplicaciones que interactan con el sistema
modernizado no tendr que ser cambiado en absoluto.

La filosofa de "no hacer dao" se garantiza mediante el uso extensivo de las pruebas a lo largo del
proceso de modernizacin completa. Las pruebas deben ser diseadas para automatizar tanto
como posible. Tambin debe asegurarse de que las pruebas cubren todos los aspectos de la
aplicacin.
Sin un conjunto completo de pruebas, los riesgos del aumento de la refactorizacin, porque no se
puede asegurar que el nuevo sistema tendr el comportamiento externo exacto que el sistema
original y que usted no se introducir errores en el sistema.
Al utilizar el mtodo de refactorizacin
La refactorizacin es el enfoque preferido cuando sus metas de modernizacin incluyen:
Reducir los costes de mantenimiento
El aumento de la claridad del cdigo
Revitalizacin de la aplicacin y lo que le permite adaptarse mejor a las necesidades del
negocio
Reducir el riesgo de afectar a los dems mediante la modernizacin de una aplicacin
Mantener la aplicacin en la misma plataforma y el lenguaje como el original
Aprovechando las habilidades existentes de su fuerza actual de programacin
Permitir flexibilidad interfaz de usuario, es ms fcil para actualizar la lgica empresarial de la
aplicacin para ser visitada por cualquiera de diferentes o mltiples tecnologas de interfaz de
usuario
Algunos refactorizacin es a menudo necesario independientemente del enfoque de
modernizacin elegido. este libro describe un modelo de modernizacin que gua el proyecto de
modernizacin. Algunos de los actividades descritas en este modelo estn ms relacionados con el
enfoque de refactorizacin. usted debe evaluar si necesitar de su proyecto o no.
2.3 Cmo modernizar
En esta seccin se presentan los principios generales que deben tenerse en cuenta en cualquier
esfuerzo de modernizacin, independientemente del enfoque elegido. Tambin proporciona un
modelo para guiarle a travs de un
proyecto de modernizacin. Siguiendo un modelo y un conjunto de reglas predefinidas va a ayudar
a lograr un proceso de modernizacin maduro. Hemos de tener en cuenta que usted debe adaptar
este modelo para satisfacer sus necesidades.
2.3.1 Introduccin
La modernizacin es un proceso de descubrimiento y usted tendr que aprender mucho. Pero an
as, es importante seguir un modelo que puede guiar a su manera. Habr ms de una
proyecto de modernizacin por delante, as que preprate para grabar su viaje para que otros
puedan repetir su xito y evitar sus errores.
Esta seccin le ofrece un modelo que puede ayudar a entender lo que debe hacer para
modernizar una aplicacin. Hay algunos principios generales aplicables no slo a este modelo
sino a cualquier proceso personalizado que usted defina.

La modernizacin no est limitada a los lenguajes o plataformas especficas. Hay miles de
aplicaciones de software que necesita ser modernizado y usted no es el nico que tiene
necesaria para tomar bajo un proyecto de modernizacin. Estos principios y este modelo son
aplicables no importa cul sea su situacin.
El modelo que usted est a punto de leer no es "tallada en piedra". Usted debe tomar las partes
que son aplicables a su enfoque de modernizacin y su situacin especfica y adaptarlos.
Hay un montn de espacio para la mejora y la creatividad. Adoptar el modelo y mejorarlo
cualquier forma en que usted necesita. Asegrese de que otros puedan repetir y mejorarlo a s
mismos por lo que el resultado final ser con un proceso maduro que puede reducir los riesgos y la
incertidumbre en el camino.
2.3.2 Modelo de Modernizacin
En esta seccin se presenta el modelo de modernizacin que se propone en este libro. Usted ser
presentacin a los principios que guan el modelo de modernizacin y un conjunto prescriptivo de
fases que se pueden seguir para lograr sus objetivos de modernizacin.
Un modelo o una metodologa?
Antes de aprender sobre el modelo de modernizacin, es necesario tener una clara
comprensin de lo que es un modelo y lo que es una metodologa. A veces estos trminos son
errneamente como sinnimos. Un modelo define un enfoque y un plan para hacer las cosas. El
modelo define lo que hay que hacer, no cmo hacerlo. Por otro lado, una metodologa
define todas las actividades que hay que hacer para lograr cada paso de la modelo. Una
metodologa se puede considerar como la implementacin de un modelo.
Este libro define un modelo de modernizacin en lugar de una metodologa. La modernizacin
puede ser abordado de diferentes maneras y que podra ser difcil mantenerse al da con el ritmo
de cada nuevo tcnica, sino un modelo puede llevar mucho tiempo a la intemperie. Es su
responsabilidad de adaptar este modelo a su situaciones especficas, teniendo en cuenta los
principios, directrices y fases que cada esfuerzo de modernizacin debera tener.

El modelo
La modernizacin de aplicaciones es mucho ms que seguir los pasos y la ejecucin de algunas
actividades. lo implica un conjunto de principios que usted tiene que recordar el camino. La
modernizacin modelo que se propone define este conjunto de principios y tambin un conjunto
de fases para lograr su objetivos de modernizacin.
Grficamente, el modelo de modernizacin se representa en la figura 2-1. Como puede ver, el
modelo define un ciclo de modernizacin iterativo que se repite tantas veces como sea necesario.
cada iteracin contribuye al objetivo principal: crear una aplicacin moderna.








Despus de cada iteracin se debe detener y volver a evaluar la situacin. Usted puede cambiar su
enfoque de la modernizacin o de cualquier tecnologa especfica que haya seleccionado. El punto
clave es que usted puede ver resultados pronto y usted puede parar tan pronto como sus metas
de modernizacin sean alcanzadas.
En la siguiente seccin se ver la definicin de las fases que componen el modelo:
Fase 0. Prepare
Ofertas de esta fase con la planificacin que se necesita para la iteracin. Usted tiene que
seleccionar la parte de la aplicacin que se va a modernizar y definir cmo se va a medir su
progreso. En cada iteracin debe haber actividades de planificacin para que pueda efectivamente
adaptarse a la situacin inmediata.
Fase 1. Experimentacin
Usted tendr que probar cosas nuevas en cada iteracin. Usted tendr que entender las
tecnologas disponibles en el mercado y determinar si se ajustan a su situacin. Esta fase es
acerca de jugar.
Fase 2. Fuera de funcionamiento
Esta fase se trata de hacer el verdadero trabajo y la aplicacin de lo que experimente con el fin de
alcanzar los objetivos de la iteracin.
Fase 3. Evaluar y ampliar el pensamiento futuro
Esta fase consiste en el anlisis de la labor realizada hasta ahora, incluida la consideracin de todas
las anteriores iteraciones. En esta fase, se puede ver la forma de introducir las nuevas tecnologas
para permitir una mayor flexibilidad en la aplicacin modernizada. Esta fase est dedicada a
analizar cmo ampliar la funcionalidad actual de la aplicacin.
Fase 4. Implementacin
Usted necesita para ofrecer el software tan pronto como sea posible. Cada ciclo termina con el
trabajo de software. Usted debe seleccionar cuidadosamente la estrategia de despliegue para
reducir los riesgos





2.3.3 Principios generales
Esta seccin proporciona algunos principios vitales que usted debe seguir durante la
modernizacin proyecto. La aplicacin de estos principios puede ayudar a usted, especialmente
cuando se tiene que enfrentar a situaciones inesperadas especficas y tomar decisiones
importantes.
Proceso iterativo e incremental
El proceso de modernizacin se puede considerar como un proceso iterativo e incremental. es
iterativo ya que todo el proyecto se puede dividir en proyectos ms pequeos que son ms fciles
gestionar y ms rpido para terminar. Es incremental pues con cada iteracin final, se hace
la aplicacin ms moderna, uno de los componentes a la vez. Esto tambin se llama un enfoque
gil.
A veces las personas que participan en un proyecto de modernizacin tratan de seguir un enfoque
"big-bang" y llegar a ser abrumado o frustrado. As que recuerde a cada proyecto de
modernizacin de dividir y conquistar.
Mantenga la investigacin y la lectura. Las cosas cambian. Lo que est la tecnologa de punta de
hoy puede ser obsoleto en cuestin de unos pocos meses. Para mantenerse moderna, hacer un
hbito de leer y la investigacin sobre la modernizacin teora y tecnologas. Lea sobre las ltimas
tendencias y probarlos. Ir a los seminarios y conferencias. Hable con sus colegas y buscar
experiencias exitosas (o fracasos) aplicar enfoques o tecnologas de modernizacin.
Recuerde siempre que la modernizacin no es algo que slo se trata de. lo afecta a una gran
cantidad de empresas, plataformas y lenguajes de programacin. Encontrar tiempo para
experimentar con tecnologas. Crear pruebas de concepto a aprender y probar la tecnologa en su
medio ambiente.
Automatizar lo que pueda
De vez en cuando en un proyecto de modernizacin, que se encuentra haciendo la misma tarea
una y otra vez. Piense en cmo se puede automatizar estos pasos. Siempre hay una mejor
maneras de hacer las cosas. Busque herramientas de modernizacin con fines comerciales o
crearlos usted mismo.
Prueba, prueba, prueba
Las pruebas son la nica manera de asegurarse de que usted no est rompiendo cualquier cosa
que no estuviera ya roto. Hay un montn de diferentes enfoques de prueba que puede utilizar en
su proyecto.
Algunos de los ms comunes son:
pruebas de regresin
Este tipo de prueba se centra en la comparacin de los resultados de una aplicacin en contra de
una lnea de base pre-establecida, en este caso, la solicitud original. Un aspecto clave de estos
tipos de pruebas es que no es necesario para entender el sistema antes de probarlo. Esta lata
ayuda, especialmente cuando usted est comenzando su proyecto de modernizacin y su
comprensin del cdigo no est completo.
pruebas unitarias automticas
Con las pruebas unitarias se puede probar una pequea parte de la aplicacin. A diferencia de las
pruebas de regresin, la unidad de pruebas requieren una mayor comprensin del cdigo que se
est probando. As que empezar a crear unidad automtica pone a prueba lo antes posible. Las
pruebas unitarias deben ser diseados en un auto configurado .
As, lo que significa que usted no debera tener que configurar nada antes de ejecutarlos. adems,
las unidades deben ser capaces de ejecutar muy rpidamente. Puede que tenga que ejecutar
despus de cada compilacin.

Todos estos enfoques pueden complementarse entre s, por lo que hay que encontrar una manera
de utilizarlos en su proyecto de modernizacin y automatizacin de ellos. Recuerde, usted debera
ser capaz de ejecutar las pruebas muy rpido y muy a menudo. Es la nica manera de sentirse ms
seguro al cambiar su cdigo.
Analizar mas
La modernizacin es acerca de la experimentacin. A veces el miedo puede descarrilar sus
esfuerzos, as que no se miedo y no analizar demasiado las cosas. Empezar a trabajar tan pronto
como sea posible.
El antiguo cdigo que se est modernizando causar sorpresas de vez en cuando, no importa
cunto usted lo analiza. Recuerda el carcter iterativo e incremental del proceso y
planificar y analizar de la misma manera.
Sea gil
Los proyectos de modernizacin tienen que ser giles, a fin de centrarse en evitar las actividades y
documentacin que no agregan valor al proceso. Tenga en cuenta los siguientes principios giles:
Entregar software que trabaja con frecuencia
Planee sus iteraciones de una manera que usted puede entregar software de trabajo rpido y con
frecuencia.
Recuerde que sus ejecutivos deben creer en el valor detrs de un proyecto de modernizacin, as
que haga su mejor esfuerzo para entregar valor a los mismos en las primeras etapas del proceso.
Un verdadero proyecto gil se divide en dos semanas iteraciones. Usted es continuo y regular
lograr avances. Sin embargo, no se obsesione con romper cosas en el ms pequeo unidades
posibles. El propsito es ser flexible y entregar pequeas actualizaciones incrementales.
Foco en el software a travs de la documentacin
Evite cualquier documentacin que no agrega valor al proceso de modernizacin. buscar
documentacin dinmico que puede mantenerse y volver a utilizar para diferentes propsitos
fcilmente.
Hay muchos sistemas de gestin de contenidos que pueden ayudarle a crear en colaboracin y
documentacin dinmico. Utilizando una herramienta como un Wiki puede ser til, ya que
permite la comunidad de usuarios para contribuir al esfuerzo de documentacin.
simplicidad es esencial
Recuerde que debe mantener las cosas lo ms simple posible. Resista la tentacin de
aadir caractersticas que podran ser utilizados en el futuro, pero que no son necesarios en estos
momentos. innecesario complejidad es una fuente de errores que pueden daar el proceso.
Dar una atencin continua a la excelencia tcnica
No hay que olvidar que la modernizacin se trata de mejorar. Centrarse en la aplicacin de
mejores prcticas y tecnologas. Convirtase en un defensor de la excelencia. Promover las
mejores prcticas y transmitir su conocimiento. Usted debe ayudar a los dems a comprender la
importancia de hacer cosas correctas.
La gente de negocios y los desarrolladores deben trabajar juntos
Construir buenas lneas de comunicacin entre los desarrolladores y expertos en negocios. la
aplicacin que se est modernizando es lo que soporta el negocio. No subestime
las aportaciones que el personal no puede hacer con el proyecto.
Utilice siempre herramientas modernas
Deje de usar herramientas obsoletas. Las herramientas modernas ayudan a hacer las cosas ms
rpido y mejor que antes. moderno herramientas son recursos valiosos que pueden ayudar a
realizar tareas increbles. No deje que su actual herramientas que se detienen en el camino de
modernizacin.
Naturalmente, es ms productiva con herramientas con las que estn familiarizados. No se debe
confundir esta ventaja de su familiaridad con la superioridad de las herramientas. Cambio de
herramientas requerir un perodo de ajuste antes de que sus ganancias de productividad se
realizan. Con el tiempo (y, a menudo no es mucho tiempo), utillaje moderno le permitir ser an
ms productivo que antes. Tambin debe recordar que es vital para atraer nuevos talentos a la
organizacin, y los nuevos desarrolladores se sientan cmodos con las herramientas que se
asemejan a las herramientas que se han utilizado. "Pantalla verde" herramientas de desarrollo
pueden dar la impresin de que est utilizando tecnologa obsoleta, por lo que evitar
el uso de ellos. Muchos desarrolladores han visto mejoras significativas en la productividad, por lo
general de 20 a 50 por ciento, dependiendo de cada desarrollador, al cambiar de una pantalla
verde basada entorno de desarrollo a un entorno de desarrollo integrado moderno (IDE).
2.3.4 Fase 0: Preparar
Las solicitudes son como los seres vivos. A medida que crecen, los procesos, las personas y otros
sistemas empiezan para construir a su alrededor. Hay ms de cdigo en un proyecto de
modernizacin y usted debe prepararse en consecuencia.
El objetivo principal de esta fase es prepararse para el esfuerzo de modernizacin por delante.
Usted tendr una visin clara y panormica de lo que significa la aplicacin de los diferentes
factores que participan en el proyecto.
Construir el modelo de negocio
Antes del inicio del proyecto, ya debe tener el inventario de aplicaciones priorizada. Ahora debe
crear el modelo de negocio. Un caso de negocio puede determinar si un
proyecto es rentable. El objetivo es convertir sus necesidades en algo que su gerente pueden
comprender en sus trminos y tomar una decisin basada en los negocios.
Un caso de negocios por lo general contiene las siguientes partes:
Planteamiento del problema
Asegrese de que esta parte se describen las insuficiencias, ineficiencias y debilidades de la
aplicacin actual. Armar nmeros y cifras que explican la situacin a la toma de decisiones y
ayudarles a ver la importancia del proyecto de modernizacin.
Solucin
Esta es la descripcin de alto nivel de la solucin para el problema expuesto antes. debieras
incluir:
Las tecnologas actuales del estado de la tcnica
Una visin general de la solucin propuesta
Una propuesta de costos y cronograma preliminar
Tambin puede incluir una breve descripcin del modelo de modernizacin que va a guiar
el proyecto.
Riesgos
Usted debe hacer una evaluacin honesta de los riesgos que podra tener que hacer frente. Esto le
ayudar a prepararse antes de que situaciones inesperadas suceden. Adems, un buen anlisis de
riesgo le ayudar a ganar credibilidad mediante la enumeracin de las cosas que pueden afectar el
alcance del proyecto.
Beneficios
Asegrese de especificar los beneficios del proyecto de modernizacin de una manera
cuantificable, se recomienda incluir varios escenarios:
- Escenario pesimista. En este escenario, debe especificar cul ser el mnimo
beneficios del proyecto de modernizacin. Asegrese de indicar cules son ms probables riesgos
a suceder y cmo usted est planeando para superar estas situaciones.
- Escenario optimista. En este escenario, puede especificar cul ser la mxima beneficios del
proyecto de modernizacin. Asegrese de establecer beneficios cuantificables realistas.
Evite exagerar. Esto puede afectar a su credibilidad si algo sale mal.
Mtricas
Se debe definir cmo se va a medir su progreso. Cada iteracin debe ser
evaluado en contra de estas medidas. Esto no es slo algo que es importante para su
gerente. Tambin le ayudar a hacer ajustes a su plan.
Stakeholders
Identificar todas las partes interesadas del proyecto. Asegrese de incluir a todas las personas
pertinentes, desde los desarrolladores a los usuarios de negocios. Tener aportaciones de todos los
grupos de inters afectados asegurar que recuerde la importancia de la aplicacin para su
negocio.
Ejemplos
Aqu es donde la prueba de concepto entra en juego. Si usted puede demostrar una pequeo y
exitoso ejemplo de lo que usted est tratando de lograr, esto ayudar a impulsar el modelo de
negocio.
El modelo de negocio es esencial para el proyecto de modernizacin. Sin ella, es dudoso que
obtendr la financiacin que se requiere y mantenerlo durante toda la vida del proyecto. Es vital
que el modelo de negocio se ha completado. De lo contrario, su esfuerzo de modernizacin puede
verse obstaculizada incluso antes de cambiar una sola lnea de cdigo.
Construir el equipo
Los proyectos de modernizacin siempre involucran a varias personas. Es de vital importancia que
se defina quin va a ser parte de su equipo en una etapa temprana. Adems de los desarrolladores
que harn el trabajo real, el equipo de modernizacin tambin se compone de personal no TI (por
ejemplo, los usuarios). no subestimar sus contribuciones o compromiso con el proyecto.
Asegrese de que usted define las siguientes funciones como mnimo:
equipo dirigido Modernizacin
Esta persona ser la encargada de dirigir el equipo. Asegrese de que la persona que va
que se asignar a este rol es un defensor de la modernizacin. Debe ser un pragmtico y
persona de mente abierta que no tiene miedo del cambio y un apasionado de la continua
mejora.
ingeniero de Modernizacin
Los ingenieros de modernizacin son los encargados de aplicar el enfoque de la modernizacin de
la aplicacin. Asegrese de elegir a las personas adecuadas para este papel y mantenerlos
enfocados en los objetivos principales. Durante el proceso de modernizacin, es natural querer
arreglar todo de inmediato. Los ingenieros deben tener en cuenta que la modernizacin es un
proceso iterativo
experto lgica de negocios
El experto de lgica de negocios por lo general es una persona no-IT. Pueden ser usuarios finales o
alguien cuyos procesos de negocio se apoya en la aplicacin. Esta funcin es esencial para la
proyecto. Ellos le pueden dar una gua para entender las razones detrs de la especfica
funcionalidades de la aplicacin.
aplicacin personal de mantenimiento
Esta es la persona que tiene experiencia de mantenimiento de la aplicacin y la modificacin se
de acuerdo a los nuevos requerimientos. Este rol puede explicar la mayor parte del diseo y
codificacin decisiones que a veces son difciles de entender.

Recuerde que debe hacer su mejor esfuerzo para mantener la cohesin del equipo y fomentar el
trabajo en equipo.
A veces el personal de mantenimiento de aplicaciones pueden sentirse amenazados por el
proyecto de modernizacin. Asegrese de convencerlos de la importancia y valor del proyecto.
Desarrollar en plan de
No trate de anticipar cada pequeo detalle. Recuerde que las cosas cambien ms probable y
definir un plan de trabajo de alto nivel del proyecto. A continuacin, hacer un plan detallado para
una o dos iteraciones. Utilice la hoja de ruta como a ejecutar su plan para mantener el proyecto en
marcha.
Este plan debe definir sus objetivos inmediatos para la iteracin y las tareas necesarias para
llevarlos a cabo. Asegrese de que su plan incluye un entregable al final de la iteracin.
Elaborar normas y procesos
Al principio se le experimentando mucho con el proceso de modernizacin, pero recuerde
documentar lo que hace y no funciona para usted. En el camino se tendr que definir
normas para garantizar que el equipo de la modernizacin hace las cosas de una manera
predecible. Tan pronto como sea posible, definir un conjunto de reglas y normas que apuntan a la
calidad. Est preparado para modificar sus estndares que usted y su equipo encuentre la mejora
de las tcnicas.
Siempre evitar reinventar la rueda
Si hay un buen nivel en la industria, analizarlo. Si se ajusta a sus necesidades, adoptarlo. Recordar
que usted no es el nico que intenta modernizar las aplicaciones. Hay muchas cosas que necesitas
tener ya se ha investigado y ejecutado por otra persona.

2.3.5 Fase 1: Experimentacin
Esta fase es un buen momento para probar nuevas tecnologas. Dado que esta es una fase de
experimentacin, que se va a hacer un montn de pruebas. La mayor parte de las cosas que usted
va a cdigo son no va a estar en el producto final.
Algunas de las actividades que usted debe considerar en esta fase son:
Haga una prueba de concepto
Usted necesita saber a ciencia cierta qu tecnologas son las mejores para su proyecto. La mejor
manera de determinar esto es mediante la creacin de una prueba de concepto (POC). Usted
podra encontrar obstculos y la necesidad de hacer algunos retrocesos, pero esto ayudar a que
usted y sus compaeros de equipo ganen experiencia.
Si usted est planeando para seleccionar una solucin comercial, lo ms probable es que usted va
a necesitar su la aprobacin del gerente. No confe nicamente en las cifras de comercializacin y
grficos. Mustrales reales software de trabajo. Tome ventaja de los ensayos libres.
Recuerde documentar lo que se aprende en esta fase. Asegrese de involucrar a su grupo de
inters en el POC. Ellos pueden proporcionar informacin valiosa para ayudar a asegurarse de que
usted va en la direccin correcta.
Puedes buscar proyectos ms sencillos
Mientras que usted est aprendiendo y acostumbrando al proceso de modernizacin, evitar la
seleccin de la aplicacin ms compleja. No debe haber aplicaciones que son muy importantes
para el negocio y no aadir riesgos innecesarios al proceso.
Con todo el xito, usted ganar ms habilidades y la confianza que le permitir modernizar
aplicaciones ms crticas y complejas


Experimento
Est cambiando el cdigo, el cambio de la interfaz de usuario, y el cambio de la arquitectura.
Recuerde que este est haciendo una prueba y usted no va a implementarlo en el entorno de
produccin. Las ideas y experiencias que usted gana en esta actividad le ayudarn a trabajar mejor
en la nueva aplicacin y para entender el cdigo subyacente.
Revalorar
Este proceso de experimentacin todo va a ampliar su pensamiento. Muchas de las ideas que
haba van a cambiar. No tenga miedo de volver a evaluar su enfoque de modernizacin s creo que
hay una mejor manera de hacerlo.
Definir los criterios de medicin
En esta fase, usted ganar ms el conocimiento de la aplicacin. Definir los mecanismos que se va
a utilizar para medir su progreso. Recuerde que usted va a informar sobre un regularmente a su
gerente, y que necesitan para ver su progreso. Por lo tanto, definir sus mtricas de acuerdo con el
enfoque de aplicacin y modernizacin seleccionado.
2.3.6 Fase 2: Off and Running
Esta fase se centra en hacer el trabajo real. Ahora que se tiene una vista panormica de la
disposicin tecnologas y tcnicas, puesta en la modernizacin de la aplicacin.
Recuerda el carcter iterativo e incremental del proceso de modernizacin, por lo que empezar a
paso a paso de una manera que tenga sentido para su situacin. Divida la aplicacin en pequeas
unidades que se puede modernizar una a la vez, pero no perder la visin de conjunto de la
aplicacin.
Mientras se encuentra en esta fase, tenga en cuenta las siguientes cosas:
Construya su caja de arena
Muchos proyectos de modernizacin se ejecutan en paralelo con otros proyectos empresariales,
por lo que es importante que construya una caja de arena que es especfica para el proyecto,
donde se puede estar seguro de que usted no afecta a la obra de otra persona y que a nadie ms
est afectando su trabajo.
En el diseo y construccin de su recinto de seguridad, recuerde tener en cuenta los siguientes
elementos:
- Objetos
-Data
-Pruebas
Objetos
Copie todos los objetos de la aplicacin a su caja de arena. Esto debe incluir por lo menos: las
reas de datos, programas, programas de servicio, los de los usuarios, colas de datos y cualquier
otro objeto que su aplicacin va a necesitar para funcionar en un entorno aislado. Para ayudarle a
construir la caja de arena, crear los diagramas de estructura de la aplicacin, que pueden ser
generados con herramientas automatizadas.
Datos
Adems de los objetos ejecutables, asegrese de tener todas las tablas que interactan con su
aplicacin. Se recomienda contar con los datos aislados para permitir que se hagan cambios sin
que afecte a otros proyectos.
Usted debe desarrollar un mtodo de restauracin de los datos de recinto de seguridad a su
estado inicial en forma automatizada. Esto le ayudar a ejecutar los escenarios de pruebas
repetidas y para automatizar las pruebas


Siempre revista sus datos sandbox. Los diarios son indispensables cuando la depuracin de la
cambios.
Pruebas
Usted necesitar un conjunto completo de pruebas para asegurarse de que su trabajo de
modernizacin va en la direccin prevista. Su caja de arena debe contener un conjunto de pruebas
que se pueden ejecutar varias veces y fcilmente. Sin pruebas, cualquier cambio puede ser fatal.
En las primeras iteraciones, debe tener por lo menos un conjunto de pruebas de regresin. A
medida que avanza el proyecto, su comprensin de la aplicacin se incrementar, lo que le
permite escribir pruebas unitarias especficas.
Asegrese de que el equipo de prueba cubre todas las partes de la aplicacin que va a cambiar con
el fin de garantizar el enfoque de "no hacer dao".
Comprender la aplicacin
En cada proyecto de modernizacin, que debe tomar el tiempo para entender la aplicacin que
estn tratando. El nivel de cdigo de comprensin que se necesitan depende directamente de la
enfoque de la modernizacin que se seleccione. Puede considerar las siguientes tcnicas para la
comprensin del cdigo y aplicarlos a su situacin en consecuencia:
Recopilar la documentacin existente
Es probable que no haya documentacin de la solicitud original. Pero hacer lo mejor para recopilar
todas las piezas de la documentacin disponible. Algunos tiles podero documentacin incluir:
Implementacin y configuracin de notas
Historia de Incidentes
Los casos de prueba
Sesiones de lectura de cdigos
La tcnica ms bsica para entender el cdigo es la lectura del cdigo. Usted tendr que leer el
cdigo que se est trabajando con su equipo y buscar el cdigo repetido y lgica. Inicialmente, la
lectura del cdigo no parece ser til, pero despus de que usted se familiarice con l,
Las cosas se vuelven ms claras.
Pregunte a los expertos acerca de la funcionalidad del negocio que se implementa en el cdigo y
mantenga esto en mente al leer el cdigo. A veces ser ms fcil de entender los procesos de
negocio subyacente que el cdigo que implementa.
Sesiones de depuracin
Depuracin de la aplicacin con pruebas especficas puede ayudar a entender la aplicacin y cmo
funciona cada mdulo. Recuerde que el uso de herramientas modernas, como IBM Rational
Developer para i, har las sesiones de depuracin ms productiva.
Anlisis esttico
Este es el anlisis del cdigo fuente o el objeto compilado sin ejecutarla. En general el resultado
del anlisis esttico es:
- Utilizar herramientas de anlisis de cdigo
Hay varios proveedores de herramientas que se han especializado de herramientas para revisar y
ayudar a analizar sus programas monolticos. El Rational Power Pack ARCAD proporciona la
Herramienta Observador que le ayudar a analizar el cdigo.
- Extraccin de reglas de negocio
Las reglas de negocio se refieren a la lgica de negocio que est incrustado en el cdigo. Muchas
de las herramientas ayudarle a extraer este tipo de datos a partir del cdigo, lo que puede ayudar
a entender la funcionalidad que se implementa en el programa.

- El anlisis de dependencia entre los componentes
Esto se refiere a la identificacin de las relaciones entre los mdulos de la aplicacin. El diagrama
que se genera puede ayudarle a entender cmo un componente se integra con toda la aplicacin.
- Esquema de la estructura interna
La mayora de las aplicaciones heredadas son monolticas, programas grandes. Con el fin de
comprender fcilmente el flujo en el interior de estos programas, algunos instrumentos pueden
generar diagramas de llamadas entre subrutinas internas y sub procedimientos. Considere
herramientas como el ARCAD Observador herramienta.
- Complejidad y el mantenimiento mtricas
Mtricas de complejidad y el mantenimiento pueden ayudar a diagnosticar la seccin de cdigo en
el que est trabajando y medir su progreso. Tambin pueden ayudar a estimar el cantidad de
trabajo necesaria para la modernizacin.
Estos tipos de anlisis se realizan ms fcilmente a travs del uso de herramientas automatizadas.
Ms adelante en este libro, usted encontrar ms informacin.

Anlisis dinmico
Este tipo de anlisis se realiza mediante el trazado de la ejecucin de los programas en un medio
ambiente especfico. Hay muchos usos de los resultados del anlisis dinmico incluyendo:
- La cobertura de cdigo
Las aplicaciones tradicionales suelen contener "cdigo muerto". Este es el cdigo que no se
ejecuta pero todava est en el programa. Para identificar el cdigo que ya no es necesario, puede
utilizar una herramienta de eso ayuda a calcular cmo se cubra gran parte del cdigo con un
conjunto de transacciones y cmo mucho cdigo es posiblemente muerto.
- Diagramas de llamadas dinmicas
La mejor manera de entender cmo funciona el programa es el seguimiento de su
comportamiento mientras corre. Herramientas de anlisis dinmicos suelen proporcionar datos
que representa el flujo de ejecucin de un programa, subprogramas y sub procedimientos.
Para ser eficaz, el anlisis dinmico requiere de un buen conjunto de pruebas para producir un
interesante resultado.
Modernizar
Cuando est preparada su caja de arena y tiene una mejor comprensin de la aplicacin, puede
empezar a hacer trabajos de modernizacin. Algunas de las tareas comunes que se pueden hacer
en esta etapa
Incluye:
Limpieza del cdigo
Limpieza de cdigo es la eliminacin de los elementos que hacen que el cdigo sea difcil de
entender. Algunos de las cosas que se deben considerar al limpiar su cdigo incluyen:
- La eliminacin de cdigo duplicado
- La conversin a una forma ms legible. En el contexto de la RPG, esto significa la conversin a
formato libre
- La eliminacin de las variables y los procedimientos utilizados
Reestructuracin del cdigo
Despus de limpiar el cdigo, se puede comenzar a extraer la lgica de negocio relacionada con el
servicio de programas que pueden ser reutilizados en diferentes partes de la aplicacin. Hay varias
buenas herramientas disponibles aqu para ayudar a identificar y reestructurar el cdigo. Algunas
de las tareas que puede hacer en esta etapa incluyen:

- Extraccin de una lgica similar en componentes reutilizables
- La encapsulacin de variables globales
- Conversin de subrutinas para procedimientos
- Cambiar el nombre de las variables y los procedimientos sub a los nombres ms significativos
- Escritura de cdigo auto-documentado
Reempaque
Cada mdulo slo debe contener los procedimientos sub funcionalmente relacionados y todos los
servicios del programa debe contener mdulos slo relacionados funcionalmente. Va a tener que
empezar a separar mdulos monolticos y organizar los procedimientos en los nuevos mdulos.
Asimismo, recuerda que cada mdulo debe tener una responsabilidad.
Modernizar la base de datos
Modernizacin de base de datos es un modelo de modernizacin completa por s misma. Ms
adelante en este libro, usted encontrar una metodologa que le guiar sobre cmo hacer esta
modernizacin.


Prueba
Despus de la modernizacin de la aplicacin, asegrese de que todas las pruebas se realizan sin
xito. Si las pruebas no tienen xito, no debe continuar en el proceso de modernizacin. Debe
asegurarse de que todo est funcionando como antes y que usted no est rompiendo las
funcionalidades existentes.
2.3.7 Fase 3: Evaluacin y ampliar el pensamiento futuro
El objetivo principal de esta fase es el de maximizar algunos de los beneficios de la situacin actual
de las ltimas tecnologas aplicadas a la aplicacin.
Usted ha preparado su medio ambiente y que ha modernizado la aplicacin. Ahora es el momento
para evaluar el progreso de su trabajo. Si esta evaluacin indica que debe dar un paso atrs en el
proceso, no se preocupe. Puede que tenga que hacer esto varias veces.
Si la evaluacin indica que usted ha logrado sus objetivos, es el momento de empezar a ampliar el
valor de la aplicacin y prepararla para el futuro.
Algunas de las actividades que se pueden hacer en esta fase son:
Medida
Es necesario evaluar si se estn logrando los objetivos de modernizacin. Si su objetivo principal es
reducir la complejidad, este paso debe reflejar una reduccin de la complejidad. Si usted necesita
para mejorar la experiencia del usuario, se debe medir de alguna manera. El punto clave es que se
mantenga el control de los objetivos y de los progresos para lograr estos objetivos.
Su medicin debe indicar los ajustes que se deben hacer al proyecto.
Mejorar la arquitectura
Ahora usted puede tener en cuenta la optimizacin de la arquitectura de la aplicacin. Es posible
que desee comenzar separar la aplicacin en capas o niveles y para incluir componentes
adicionales tales como una nueva capa de sustitucin de IU. Este paso se centra en la aplicacin
como un todo.
Integrar
Uno de los objetivos de modernizacin comunes es la de integrar la aplicacin en una empresa
arquitectura. A menudo, es necesario para permitir la aplicacin de SOA o para que sea ms
flexible para otras tecnologas de integracin empresarial.

Traer nuevas tecnologas
Si hay alguna nueva tecnologa que puede ayudar a mejorar la aplicacin, puede incluirla en este
paso. Recuerde que debe analizar con cuidado para evitar que se convierta en un obstculo
futuro.
Siempre apunte para herramientas estndar, tecnologas y soluciones bien probadas. Evaluar el
usuario comunidad en torno a ellos y el apoyo del personal de oficiales de mantenimiento de
aplicaciones.
Tenga en cuenta que estas nuevas tecnologas pueden llegar a ser obsoletos muy rpido, por lo
que los envuelven en una manera que le ayuda a reemplazar fcilmente si es necesario.
2.3.8 Fase 4: Implementacin
Ahora es el momento de entregar los resultados de su trabajo. Sin embargo, los componentes que
entrega no deben ser considerados como un producto final. Con cada iteracin, se puede mejorar
piezas de software, incluso si ya los ha entregado. El punto clave aqu es que usted hace su mejor
para comenzar a desplegar tan pronto como sea posible para mostrar el valor de su esfuerzo de
modernizacin.
Los siguientes pasos le pueden guiar en esta fase:
Documentar la aplicacin
Es probable que la nueva aplicacin sea diferente que la anterior. Usted tendr que crear
documentacin efectiva que explica la nueva aplicacin a las personas que hacen el
mantenimiento y los usuarios y los grupos de inters de sus aplicaciones.
Tome ventaja de cualquier recurso disponible para documentar. Uso de clases, la secuencia y
diagramas de despliegue para ayudar a entender la aplicacin. La mayora de los tipos de
Modelado Unificado Language (UML) estn diseados para lenguajes orientados a objetos, pero se
puede adaptar fcilmente a su situacin. La ventaja de usar un tipo estndar de diagrama es que
muchos de la gente ser capaz de comprender con facilidad y que se parecen ms profesional.
Recuerde que su documentacin se debe aportar un valor aadido. As que evita la
documentacin que ir directamente a la plataforma. El uso de sistemas de gestin de contenidos
(por ejemplo, MediaWiki, WordPress, Joomla, etc) pueden ayudarle a crear documentacin
sencilla y colaborativa.
Tenga en cuenta que la documentacin debe ser de fcil mantenimiento. Hay muchas
herramientas que puede generar documentacin a partir del cdigo o de los objetos compilados.
Utilizarlos (o crear ellos) si es posible.
Capacitar a las personas
Dependiendo del enfoque de modernizacin, puede que tenga que formar a los usuarios, la
aplicacin el personal de mantenimiento, o en ambos.
La documentacin que gener previamente se debe utilizar como la referencia principal para los
aprendices. Asegrese de que esta documentacin se puede acceder fcilmente y que contiene
toda la la informacin necesaria para los usuarios como para los expertos en TI.
Si la nueva aplicacin es ms difcil de entender que el original, esto es una buena indicacin que
el plan de modernizacin de las necesidades se mejora. Evaluar el nuevo sistema desde diferentes
puntos de vista.
Definir la estrategia de implementacin
Al igual que hay muchos enfoques de modernizacin, hay ms de una manera de implementar la
nueva aplicacin. Asegrese de que ambos enfoques estn alineados. Algunos de las ms comunes
tcnicas de implementacin incluyen:

Enfoque Big-Bang
Este enfoque para el despliegue reemplaza toda la aplicacin de una sola vez. Esto por lo general
se utiliza con proyectos de modernizacin que necesitan resolver un problema inmediato que
afecta servicios crticos. Sin embargo, el riesgo asociado es mayor y debe ser manejado con
cuidado.
Cuando se sigue este tipo de enfoque, por lo general es necesario mantener la vieja aplicacin y la
nueva aplicacin en paralelo. La cuestin es que los cambios en el nuevo sistema debera
reflejarse en el viejo y viceversa. Esto puede causar una gran cantidad de trabajo y esfuerzo.
Enfoque incremental
Tambin conocido como "Salida por etapas", en este enfoque, las secciones de la aplicacin son
rediseado y aadi de forma incremental, lo que le permite ofrecer resultados e identificar
errores ms rpidamente.
Cuando se sigue este enfoque, slo se puede cambiar un componente a la vez sin tener en cuenta
la aplicacin en su conjunto. Ante este hecho, el proceso de modernizacin podra tomar ms
tiempo para terminar por completo
Enfoque evolutivo
Al igual que el enfoque incremental, el enfoque evolutivo reemplaza las secciones de la aplicacin
original con partes modernizadas. La diferencia es que, en este enfoque, para reemplazar
secciones se seleccionan basndose en su funcionalidad y no la estructura de la aplicacin. Esto
significa que los desarrolladores de poner adelante esfuerzo adicional para identificar funcional
partes separadas en la solicitud original.
Para ayudarle a entender las diferencias entre estos enfoques, considere la tabla 2-1, que contiene
una breve comparacin de los tres.








2.3.9 Repita segn sea necesario
Despus de terminar el proceso, tendr que volver atrs y repetir el proceso tantas veces segn
sea necesario. En cada iteracin, un nuevo componente se modernizar y usted estar ms cerca
de sus metas.
No todas las fases requieren la misma cantidad de esfuerzo en cada iteracin. Al principio, usted
probablemente tendr que invertir ms esfuerzo en las fases de preparacin y experimentacin.
Sin embargo, a medida que avanza el proyecto, estas fases sern ms cortos. En otras palabras,
usted ver cmo se adaptan las fases durante las iteraciones sucesivas.
Recuerde que debe evaluar su progreso en cada iteracin y ajustar la ruta en consecuencia.
Al ir a travs de todas las fases, tenga en cuenta que debe adherirse a los principios de
modernizacin y ajustar el proceso a su situacin.













Las tcnicas modernas de arquitectura de aplicaciones

Este captulo presenta las tcnicas de la arquitectura de aplicaciones que pueden ayudar a disear
y construir aplicaciones modernas.
3.1 Introduccin
Qu es una aplicacin moderna? Cmo se puede definir un diseo moderno? Dado el ritmo de
cambios en la tecnologa, el trmino moderno puede ser difcil de definir. Cada da las nuevas
tecnologas se construyeron, los patrones se han diseado y se refinan las prcticas
recomendadas o completamente cambiado. Dada la naturaleza dinmica de desarrollo de
software, es ms fcil de entender lo que es un mal diseo.
Un mal diseo exhibe muchas caractersticas que desea evitar en el software que se construir. En
este captulo, aprender algunas de las caractersticas de lo que contribuye a un mal diseo y
algunas tcnicas de diseo que se pueden utilizar para evitarlos.
3.1.1 Los sntomas de un mal diseo
En la primera versin de una aplicacin, los programadores tienen una visin clara de lo que el
software es y cmo se construye. Si tienen que hacer un cambio, es probable que sea fcil para
ellos dada su familiaridad con el cdigo. A medida que el tiempo pasa y varios programadores
empezar a hacer cambios, las nuevas adiciones y actualizaciones, la aplicacin empieza a
deteriorarse. Por qu pasa esto? Por qu software se degrada con el tiempo? Puede haber
muchas razones y algunas veces esto puede ser difcil de evitar, pero usted debe centrarse en la
creacin de un buen diseo que es ms difcil de romper con el tiempo.
Si su aplicacin presenta alguno de los siguientes sntomas, es probable que se enfrente el mal
diseo:
Rigidez
La aplicacin es difcil de cambiar porque un solo cambio puede desencadenar una cascada de
mltiples cambios. Con diseos rgidos, lo que parece ser un simple cambio puede convertir a un
proyecto complejo que es difcil de estimar.
Los ms mdulos afectados por un cambio, el ms rgido el diseo.
Fragilidad
Los cambios hacen que el sistema de romper en muchos lugares cuando se realiza un nico
cambio. Estos partes tienen ninguna relacin conceptual con el rea que se ha cambiado. La
fijacin de un problema puede causar nuevos problemas y as sucesivamente.
Inmovilidad
Un diseo es inmvil cuando contiene piezas que puedan ser reutilizables, pero el esfuerzo de
separarlos del sistema original son demasiado grandes. La aplicacin est demasiado enredada
para reutilizar partes de ella.
Viscosidad
Cuando usted est haciendo un cambio en una aplicacin, usted tiene dos opciones: la
preservacin del diseo o "hack" y romper el diseo. Viscosidad hace ms difcil seguir el diseo
preservar mtodo. Con el tiempo, los desarrolladores tienden a empezar a hacer "hacks" con ms
frecuencia para la aplicacin debido a la falta de comprensin y la presin del tiempo.
La complejidad innecesaria
El diseo de software es esencialmente un proceso creativo. Pero a veces, un diseo contiene
elementos que no son actualmente tiles. Anticipar requisitos puede parecer una buena cosa,
pero si no se planifica cuidadosamente, se convertir en la fuente de complejidades que no lo
hacen aadir beneficio.

Repeticin innecesaria
El diseo contiene estructuras repetidas que pudieran ser unificados bajo un solo reutilizable
componente. A veces, los programadores utilizan un enfoque de goma de la copia para la
codificacin, esto puede llevar redundantes cdigo que hace que sea difcil de hacer cambios y
errores cuando corrige.
Opacidad
El diseo y el cdigo es difcil de leer y entender. No expresa su propsito adecuadamente. En las
siguientes secciones, aprender tcnicas que pueden ayudar a crear diseos modernos que tratan
de evitar estos problemas. Cuando lea estas secciones, tenga en cuenta el mal diseo sntomas
descritos aqu y descubre cmo estas prcticas recomendadas pueden ayudarle a evitarlos.
3.2 La modularizacin
Alguna vez ha tenido que lidiar con un programa monoltico grande? Muchas aplicaciones
antiguas tradicionales son programas monolticos que se componen de un solo mdulo. En este
nico mdulo grande, a menudo se puede encontrar el cdigo para manejar la pantalla, las
interacciones del usuario, la lgica de negocio, y el acceso a la base de datos. No hay sentido de la
separacin.
El mantenimiento de los programas monolticos no es tarea fcil. Dado su tamao y complejidad,
programadores se enfrentan a muchos obstculos. A menudo se necesita la ayuda del autor
original del programa para entenderlo (suponiendo que el autor original es todava alrededor).
Como resultado, proyectos de mantenimiento y nuevas incorporaciones tienden a crecer con el
tiempo, el costo, la complejidad y el riesgo.
Qu hacer con estas aplicaciones? Hasta ahora, en este libro, usted ha estado aprendiendo sobre
la modernizacin de sus aplicaciones. Programas monolticos deben modernizarse pero en
paralelo a un proyecto global de modernizacin. Debe asegurarse de que las nuevas aplicaciones
no estn diseadas con este enfoque. La modularizacin es la clave para el diseo de fcil-a-
mantener aplicaciones.
La modularidad se puede definir como una cantidad de componentes dentro de una aplicacin
que est separada y recombinado. La modularizacin es una tcnica de software que se centra en
la separacin de la funcionalidad de un programa en mdulos reutilizables ms pequeas que
contiene slo una funcin que es a continuacin, se utiliza a lo largo de toda la aplicacin.
Con el fin de lograr un buen diseo modular, lo que tienes que empezar a pensar en la separacin
funcionalidades y la aplicacin de una sola funcin por mdulo. Si un mdulo de hace muchos
funciones no relacionadas, se deben reconsiderar su diseo.
3.2.1 Por qu la modularizacin es importante
La modularizacin trae muchos beneficios a la aplicacin y sus programadores. En esta seccin,
aprenders algunos de los principales beneficios que ofrece la modularizacin.
Ms fcil de cambio
Usted probablemente ya sabe que las aplicaciones cambian. El negocio es una entidad dinmica y
as son las aplicaciones que lo soportan. La modularizacin mejora la dificultad, el costo y el
tiempo para hacer cambios. Con las aplicaciones monolticas, incluso un simple cambio puede
convertirse en una ardua tarea que requiere ms esfuerzo y el riesgo de lo esperado.
Cmo la modularizacin hace cambios ms fciles de hacer? Imagine una aplicacin monoltica
enorme donde todas las funcionalidades estn en el mismo mdulo. La empresa necesita un
pequeo cambio en la lgica incrustado en el cdigo. Usted no est familiarizado con toda la
aplicacin y el tiempo esta en contra de usted. Este escenario no estamuy lejos de la realidad.
Cuando los programadores se enfrentan a esta situacin, no tienen el tiempo para entender todo
el cdigo mixto y hacer el cambio usando malas tcnicas como el "copy-paste". El riesgo aumenta
y el cdigo se convierte en un lo ms grande que antes.
Consideremos ahora el otro escenario. Usted tiene que hacer el mismo cambio pequeo, pero en
un bien diseado aplicacin modular. Si genera un esquema de la aplicacin, ver cmo se
estructura la aplicacin. Ahora usted puede entender cules son los mdulos que tiene que
cambiar. Usted no tiene que pasar por miles de lneas de cdigo que no estaban relacionados con
su cambio. La modularizacin hace que sea ms fcil de entender toda la aplicacin y se centran
slo en las partes que le interesan.
Consideremos ahora un ejemplo en el que usted necesita para hacer un cambio en el modo de
acceso a una base de datos.
Con una aplicacin monoltica, es posible que tenga que repetir el mismo cambio muchas veces. Y
si se olvida de uno de los lugares de acceso a datos? Usted acaba de inyectarse un error. Con un
enfoque modular, actualizar el mdulo que se ocupa del acceso a la base de datos y ya est.
Ms fcil de entender
Cuando usted est tratando de entender un programa monoltico, hay que ver todo a la vez.
El componente ms pequeo es toda la aplicacin. No es muy fcil centrarse en la lgica de la
interfaz de usuario o el acceso a la base de datos por separado. Dada la ausencia de capas y la
separacin, que se ven obligados
comprender todos los aspectos de la aplicacin incluso si usted est interesado slo en una parte
especfica.
En una aplicacin modular, usted puede comenzar a aprender las diferentes partes del cdigo y
haciendo caso omiso de la descansar. Por ejemplo, usted puede centrarse en la comprensin de
cmo una parte especfica de la lgica de negocio funciona, sin tener que entrar en la interfaz de
usuario o los datos de acceso.
Esta facilidad en la comprensin le beneficiar principalmente en las siguientes reas:
Nueva formacin del talento
Menos tiempo y costos para capacitar a gente nueva en la aplicacin. Es ms fcil de explicar
pequea piezas una a la vez que una aplicacin monoltica conjunto.
Los proyectos de modernizacin
Estos proyectos requieren de personal que entienda la solicitud original antes de que sea
modernizado. Comprensin de cdigo es una tarea ardua que se pueden aliviar con un sistema
modular diseo.
ubicacin Error y la fijacin de
Bsqueda de errores en aplicaciones monolticas puede ser difcil. Un diseo modular puede
ayudarle a aislar los errores ms fcil y ms rpido.
Ms fcil de probar
Desde una perspectiva de pruebas, es ms fcil para probar aplicaciones modulares. Similar a la
proceso de comprensin, puede centrarse en un mdulo en particular y escribir pruebas unitarias
para ello. unidad de pruebas son recursos valiosos para validar su cdigo. Ellos le permiten
escribir las pruebas para concretas secciones de cdigo que puede ser difcil de alcanzar. Las
pruebas unitarias deben ser complementados con la integracin y las pruebas de funcionamiento,
pero en aplicaciones monolticas, que no tienen esta opcin.
En trminos de diseo de prueba, aplicaciones monolticas tienden a tener una mayor
complejidad, lo que hace ms difciles de probar. Esta dificultad en las pruebas pueden conducir a
importantes sectores no estn siendo probadas correctamente y de riesgo adicional para los
errores en el futuro.
Reutilizacin
Las grandes piezas de software son ms difciles de reutilizar. La modularizacin tiene como
objetivo crear la aplicacin como una composicin de piezas pequeas. Con un buen diseo, es
ms fcil de reutilizar estas piezas en diferentes partes de la aplicacin.
3.2.2 Principios generales
Ustedes han aprendido lo que la modularizacin es y por qu es importante, pero ahora vas a
aprender los principios ms importantes que usted necesita para tener en cuenta a la hora de
definir cmo modularizar.
La divisin de la aplicacin en partes ms pequeas es esencial en el camino hacia la
modernizacin, pero a veces, la parte difcil es saber qu incluir en cada pieza. En esta seccin se
abordar este punto. Tenga en cuenta las siguientes pautas en el diseo de una aplicacin
modular:
Responsabilidad individual
Este principio establece que todos los mdulos de una aplicacin debe tener una responsabilidad.
La responsabilidad puede ser entendida como una razn para cambiar. Por ejemplo, considere un
mdulo que recupera los datos de una tabla y tambin genera un informe basado en los datos. Si
un cambio que es relacionado con la recuperacin de datos se debe hacer, todo el mdulo tiene
que cambiar. Pero si un cambio que se debe hacer con el informe, el mismo mdulo tiene que
cambiar. Ergo, el mdulo tiene dos razones no relacionadas con el cambio. La forma correcta es la
creacin de dos mdulos, uno centrado en la recuperacin de datos y otro centrado en la
generacin del informe.
Cuando un mdulo tiene ms de una responsabilidad, es ms fcil para causar daos colaterales:
usted se acaba de cambiar el informe, pero, sin usted saberlo, la funcionalidad de recuperacin de
datos tambin fue afectados.
Alta cohesin
La cohesin es el grado en el que los elementos de un mdulo van de la mano. Es el funcional la
relacin de los elementos dentro de un mdulo. Puede detectar baja cohesin cuando un mdulo
tiene ms de una responsabilidad. Tambin, bajo la cohesin se puede ver cuando comn las
competencias estn repartidas en diferentes mdulos, no relacionados.
Debe disear componentes con la cohesin. Esto har que sean ms robustos y ms fciles de
reutilizar. Todo lo que tienes que hacer es poner la funcionalidad relacionada en el mismo mdulo
y asegrese de que cambios futuros toman esto en consideracin.
Acoplamiento dbil
El acoplamiento puede ser definido como el grado en que cada mdulo se basa en otros mdulos.
Es una medida de la fuerza de la asociacin establecida por una conexin de un mdulo a otro.
Acoplamiento apretado hace que un programa sea ms difcil de entender, cambio, o correcta por
s mismo. El cambio en un mdulo genera una gran cantidad de cambios en los mdulos
relacionados. Es como domin piezas cayendo en secuencia.
El logro de un diseo sin acoplamiento es muy duro y no es prctico, pero usted debe tratar de
centrarse en el diseo con bajo acoplamiento en mente. Acoplamiento dbil se puede lograr
mediante la alta creacin de mdulos de cohesin que se comunican con otros a travs de una
interfaz bien definida, ocultando su implementacin interna. En otras palabras, los mdulos deben
ocultar sus variables globales, formato de datos y cualquier otro tipo de detalles de la
implementacin de otros mdulos. Los mdulos son llamados y funcionan dentro del mdulo
efecta slo cuando los datos pasan a la interfaz definida.
Empacar juntos solo mdulos relacionados
Al preparar sus mdulos (programas de servicio en el contexto ILE), recuerde slo para empacar
mdulos relacionados entre s. Esto puede ser pensado como el principio de alta cohesin, pero al
nivel de paquete. Por qu es importante disear paquetes con este enfoque? Si empaca mdulos
sin relacin juntos, se genera una gran cantidad de dependencias para el paquete de diferentes
aplicaciones. Un cambio de un mdulo requerir la modificacin de todo el paquete, lo que
aumenta los riesgos de daar otras aplicaciones.
Convencin de nomenclatura adecuada
Convenciones de nombres se deben definir de una manera que ayuda a los programadores a
entender el enfoque modular. Debe definir una convencin de nomenclatura auto-documentado
que ayuda identificar rpidamente la nica funcionalidad de un mdulo. Esto ayudar a los dems
a mantener el orden y el estilo de toda la aplicacin. Buenas convenciones de nombres tambin
hacen herramientas como UML diagramas ms til.
3.3 Diseo por niveles
Dos de los principales objetivos de la arquitectura moderna de aplicacin son para maximizar
reutilizacin cdigo y reducir al mnimo el impacto del cambio y los gastos generales de
mantenimiento.
A travs de los aos, ha habido un nmero de diferentes arquitecturas de servidor de cliente, de
tres niveles, de n niveles, de varios niveles, el modelo-vista-controlador (MVC), y rica de cliente
para el servicio orientado (SOA).
Independientemente de cul de estas arquitecturas se selecciona, todos comparten una
caracterstica comn.
Ellos tratan de separar la aplicacin en niveles distintos.
Por ejemplo, un diseo de tres niveles separa la presentacin, la lgica y las capas de datos.
Las interfaces de nivel de presentacin con el usuario. Esto podra ser una interfaz 5250 de
estilo, una red interfaz o una interfaz mvil.
El nivel de lgica coordina el movimiento y transformacin de datos entre la presentacin y
capas de datos. Procesos consisten en todas las decisiones y clculos que deben estar hechos. Aqu
es donde toda la lgica de negocio tiene que existir.
El nivel de datos es donde se almacenan los datos y se recupera de una base de datos. Las
asegura capa de datos la integridad de los datos sin ninguna dependencia en el nivel de lgica.
Cada nivel es una entidad en s misma y no tiene conocimiento de los contenidos y las
metodologas de los otros niveles. Hay interfaces publicadas que permiten la comunicacin entre
niveles. En teora, cualquier nivel puede ser cambiado o reemplazado sin afectar a ninguno de los
otros niveles de la aplicacin.
Suponiendo que la capa de presentacin actual es una interfaz tradicional 5250-estilo, el concepto
de un diseo escalonado significa que una nueva capa de presentacin (por ejemplo, una interfaz
web o un Interfaz mvil) podra introducirse sin tener que realizar ningn cambio en la lgica o los
datos capas.
Aunque en este ejemplo est en un nivel de aplicacin, el principio se puede llevar hacia abajo en
cada uno de los niveles que pueden estar a su vez por niveles. Este principio llevara hasta el nivel
de programacin, donde se utiliza la encapsulacin para implementar un diseo escalonado en el
cdigo.
La aplicacin de un diseo escalonado asegura que el cambio o la adicin de un nivel (en la
aplicacin o nivel de programa) no tienen efecto en los dems niveles. Por lo tanto, los principales
objetivos de maximizando la reutilizacin del cdigo y minimizando el impacto del cambio y los
gastos generales de mantenimiento se cumplan.

La arquitectura exacta para ser utilizado a veces puede ser influenciada por otros factores, tales
como la Herramientas ISV, lenguajes de programacin, y los marcos que se estn utilizando.
Cualquiera se est utilizando la arquitectura, todos ellos tienen como objetivo lograr los mismos
principios niveles.
Una serie de artculos en iProdeveloper demostr la implementacin de un diseo escalonado
utilizando un enfoque MVC.
En el artculo "Pattern Recognition: Facilidad Moderna RPG Programacin", Scott Klement
demostrado una metodologa MVC utilizado con un tradicional mantenimiento del cliente 5250 de
estilo programas. Estos programas separa todo el manejo de la base de datos en un mdulo en un
programa de servicio: el programa de servicio es un nivel de datos. Usted puede leer el artculo en
la siguiente link:
http://iprodeveloper.com/rpg-programming/pattern-recognition-ease-modern-rpg-programming

En el siguiente artculo, "Reconocimiento de Patrones: La adopcin de El Patrn", Paul Tuohy
demostr cmo se utiliz el mismo nivel de datos con una interfaz web escrito en CGIDEV2.
Usted puede leer el artculo en el siguiente enlace:
http://iprodeveloper.com/rpg-programming/pattern-recognition-adopting-pattern

Por ltimo, en el artculo "Reconocimiento de Patrones: La prestacin de mantenimiento", Paul
Tuohy mostr cmo el nivel de datos podra ser re-escrito sin afectar a cualquiera de las dos capas
de presentacin (5250 o web). Usted puede leer el artculo en el siguiente enlace:
http://iprodeveloper.com/application-development/pattern-recognition-maintenance-benefit

El enfoque por niveles, en todos los niveles dentro de una aplicacin, proporciona la mayor
flexibilidad en trminos del mantenimiento y el potencial para un cambio rpido.



3.4 Modelo de objetos de Negocios
En el desarrollo de la arquitectura de software, a menudo es til pensar en el problema como un
conjunto de objetos de negocio y sus interacciones. Un objeto de negocio se define a menudo
como un "actor" o "participante" en la lgica de negocio para su organizacin. Puede ser cualquier
tipo de entidad que puede ser visto en los procesos que impulsan el negocio. Objetos de negocio
comunes incluyen cosas como empleados, clientes, rdenes de trabajo, recibos, registros de
cuentas, etc.
Estos objetos de negocio pueden modelarse como un conjunto de reglas, flujos de trabajo y los
flujos de datos.
Considere la posibilidad de un escenario de ejemplo donde un cliente llama para informar de un
problema. El cliente representante de servicio puede crear una orden de trabajo para un
especialista para investigar ms a fondo. Una llamada registro puede ser creado y almacenado en
una base de datos local. El cliente es un objeto de negocio, as como el representante de servicio al
cliente, la orden de trabajo, y el registro de llamadas. Reglas podran tambin regir estas
transacciones. Por ejemplo, los atributos de los clientes pueden dictar la prioridad para trabajar.
Tambin tendrn que ser trada, creado y modificado (tambin parte del modelo) de datos.
Como se puede imaginar, un modelo de objetos de negocio se realiza generalmente en trminos
no-programadores puede entender. Es la perspectiva empresarial del problema o de la solucin.
Como tal, la creacin y revisin del modelo pueden afectar a cualquier grupo de personas tcnicas
o no tcnicas de su organizacin.
3.4.1 Implementacin
Una vez que se crea un modelo de negocio, se puede utilizar para ayudar a su arquitecto de
soluciones de software.
Como se puede imaginar, este tipo de modelo fomenta diseo orientado a objetos. Pero, cmo lo
hace traducir en su solucin de software? Vamos a discutir un enfoque muy estricto.
Cada tipo de objeto de negocio (BO) puede ser representada por una instancia de una clase. Esta
clase puede (y debe) encapsular todos los atributos de ese BO particular. Puesto que cada uno
tiene atributos que se pueden recuperar o cambiar segn sea necesario, estas clases suelen
implementarse como "beans de datos" con un simple conjunto de puntos de entrada para crear o
modificar los atributos. La lgica de negocio se escribe como las interacciones entre estos objetos
de negocio. Para interactuar con los datos (como una instancia DBMS) el modelo incluye objetos
de acceso a datos (dao), que proporciona la interfaz para el backend de datos. El DAO proporciona
una capa de abstraccin para que los objetos de negocio no sea necesario que entienda la
complejidad del backend. Ese avanzado conocimiento (por ejemplo, el formato especfico de
tablas relacionales de una base de datos) puede ser encapsulado en la DAO. Los datos que fluyen
entre las partes de un proceso pueden ser an ms encapsulados en un objeto de transferencia de
datos (DTO), que contiene los datos de inters (clientes electrnicos) y nada ms.
Ahora volvamos a nuestro ejemplo anterior. Cuando un cliente llama para reportar un problema,
el cliente representante de servicio puede necesitar buscar la direccin del cliente. El
representante (ser un "actor" en el proceso y, por tanto, un objeto de negocio) pedir a la DAO
para este informacin. El DAO entiende la complejidad del backend, obtiene los datos y devuelve
un DTO que contiene la direccin del cliente.
Por supuesto, la aplicacin de la vida real de cdigo basado en el modelo de objetos de negocios
rara vez es tan perfecta como la descripcin precedente afirma. Por ejemplo, puede que no sea
factible totalmente encapsular un objeto de negocio en una sola clase. Consideraciones sobre el
rendimiento o de terceros software puede imponer restricciones a su diseo.
Independientemente, el modelo todava se puede utilizar para ayudar a particionar el diseo en
objetos de negocio relevantes y mantener una lgica y significativa de separacin de trabajo.
3.4.2 Ventajas
Como puede ver, el uso de un modelo de objetos de negocio ayudar a la solucin que sigue
muchos de las prcticas preferidas que se describen en este captulo. Por ejemplo, el modelo
tiende a hacer cumplir una fuerte nocin de modularizacin, ya que cada BO, DTO, y DAO contiene
la informacin que necesita para completar sus propias tareas necesarias. Adems, cada objeto no
necesita contener detallado el conocimiento acerca de las tareas realizadas por otros objetos (solo
responsabilidad). En un buen diseo, partes del modelo pueden ser reemplazados o modificados
sin afectar el resto de la solucin (acoplamiento dbil). Esto da como resultado cdigo que es ms
fcil de mantener, reutilizable y flexible.
Adems, el modelado con objetos de negocio le permite identificar rpidamente las dependencias
al hacer un cambio. En nuestro ejemplo, si el DTO recupera la direccin de un cliente, otros
objetos podran ser afectados? Del mismo modo, puede ayudar a identificar el rendimiento
sensible de los mdulos dentro de la solucin.
Como se mencion anteriormente, el modelo de objetos de negocio en s no es hablar
programador. No es la clase, diagramas, prototipos de funciones, o XML. De hecho, a menudo se
hace con el palillo-hombres y crculos. Como tal, casi cualquier persona puede contribuir a la
modelo al identificar interacciones, asociaciones, y las reglas para el modelo.
Tal vez lo ms importante, este enfoque obliga al arquitecto de software para mantener una
perspectiva a nivel de negocio en el problema. Despus de todo, cuando el diseo de un
componente de software, es esencial comprender cmo encaja en el cuadro grande. Este
entendimiento es seguro que resultar en una solucin de software mejor.
3.5 Los datos de programacin centrada
Antes de introducir el concepto de la programacin centrada en los datos, es necesario
comprender el enfoque tradicional para el desarrollo de aplicaciones en el IBM i: la programacin
centrada en el programa.
Con este enfoque, el programa tiene las siguientes responsabilidades:
De acceso a datos
Determine los archivos necesarios y el mtodo de acceso de datos, por lo general el nivel de
acceso al registro (RLA) para recuperar datos de una fila a la vez. Adems, el programa en s mismo
determina la relacin entre los archivos, haciendo que el sistema de gestin de base de datos
(DBMS) de poco ayuda.
Lgica de negocios
El programa cuenta con todas las reglas de negocio embebidas en el cdigo (ya sea directamente o
a travs de un miembro de la copia). La lgica empresarial hace cumplir la integridad referencial
entre archivos.
Interfaz de usuario
Mostrar los resultados del procesamiento de los datos y reglas de negocio para el usuario.
Aplicaciones monolticas pueden considerarse como centrada en el programa, pero tambin se
puede pensar en aplicaciones modulares que se construyen como centrada en el programa. La
Figura 3-1 muestra un ejemplo de la estructura de una aplicacin que est diseado usando un
enfoque centrado en el programa.





Como se puede notar, el enfoque centrado en el programa tiene muchas desventajas, incluyendo:
La aplicacin no se est aprovechando de los DBMS y sus futuras actualizaciones y funciones
inflexibilidad para adaptarse a las nuevas necesidades del negocio
Las reglas de negocio se duplican a travs de diversos programas. A medida que cambian las
reglas de negocio, los programas deben ser cambiadas o vuelve a compilar.
Los problemas de rendimiento asociados a RLA
La aplicacin tiene que ser recompilado si un archivo cambia
normalizacin de bases de datos puede ser inexistente.
integridad referencial est implcita
Por otro lado, la programacin centrada en datos se puede entender como la estrategia para
resolver problemas de negocio mediante el aprovechamiento de las caractersticas de los DBMS.
Este enfoque propone implementar ms lgica de negocio en la base de datos y la separacin de
la lgica de negocio de programas de aplicaciones de alto nivel. La figura 3-2, se muestra la
estructura bsica de una centrada en los datos programa.








Programacin centrada en los datos tiene como objetivo aprovechar los DBMS, especficamente
con los siguientes artculos:
Optimizar el acceso a los datos
La aplicacin solicita datos a travs de sentencias SQL. A su vez, el DBMS selecciona la mejor forma
de acceder a los datos y aconseja a los ndices necesarios para que sea ms eficiente.
El uso de restricciones
Con el uso de restricciones, puede mover las reglas de negocio de las aplicaciones a la DBMS
Normalizacin
Con el uso de los DBMS, es ms fcil mantener la normalizacin al menos a la tercera forma
normal.
El DBMS entiende las relaciones de las tablas mediante el uso de clave principal (PK) y clave
externa (FK) restricciones. PK / FK relaciones son datos ajenos a la empresa, por lo general
mediante el uso de las columnas de identidad en cada mesa. Una columna de identidad se
incrementa automticamente cuando las nuevas filas se agregan a la tabla, y se mantiene por el
DBMS, no por el programador.
En resumen, los objetivos principales de la aproximacin centrada en los datos son los siguientes:
Conduzca tanto trabajo hacia abajo en el sistema de gestin de base de datos como sea posible
Definir reglas de negocio como parte de la base de datos
Reglas se aplican a todas las interfaces de aplicaciones
Aproveche SQL slo capacidades
DDL modificaciones sin afectar los programas (es decir, Index Advisor, y as sucesivamente)
Evolucionar la base de datos para cumplir con los nuevos requisitos
Aprovechar las nuevas tecnologas y mejoras en DBMS, tales como el nuevo optimizador (SQE)
Cuanto ms cerca de su diseo se ajusta a los objetivos centrados en datos anteriores, cuanto ms
se puede aprovechar tecnologa de avanzada. En la Figura 3-3, se puede ver una comparacin
entre cntrica programa y los enfoques centrados en datos.

3.5.1 Mover a centrada en los datos de programacin
Si usted est planeando mudarse a un enfoque centrado en los datos, hay algunas cosas que usted
debe consideran que pueden ayudarle en el camino:
integridad referencial
Comprobar restricciones
seguridad a nivel de la columna
cifrado Columna
generacin automtica de claves
Triggers
procedimientos tienda


Integridad referencial desde el principio
Es muy importante para empezar a definir las relaciones de las tablas para poder garantizar
integridad de la base. Por ejemplo, cuando queremos aadir un nuevo empleado a una base de
datos y que valide su departamento, podemos definir una regla de integridad referencial que no
hace permitir que el complemento del registro de empleado si el ID de departamento no es
correcta o no existe en la mesa del departamento. Con esta regla nos aseguramos que no hay
empleados en mala identificacin del departamento; esta norma se destaca y se aplica para todas
las interfaces.
Los factores desencadenantes son un complemento excepcional
Hay una lgica de negocio que se puede implementar con disparadores. Definicin de un
disparador es una tcnica para garantizar validaciones de negocio importantes.
Puede que sea necesario incluir algunas validaciones que no son posibles para garantizar
referencial integridad. Esto es cuando se va a utilizar disparadores. El mayor complemento para
ejecutar las validaciones de la base de datos.
Imagnese si usted desea validar el estado de crdito de un cliente antes de aceptar un pedido.
Esta validacin no es posible a partir de la integridad referencial, pero se puede crear un
disparador para insertar el momento de determinar si se acepta o no la orden del cliente.
La figura 3-4 muestra un ejemplo. Cuando se inserta un nuevo orden, un disparador inicia y el
gatillo obtiene informacin sobre el orden y el cliente. Inmediatamente, un correo electrnico es
enviado automticamente.

SQL es la base
SQL es la base de la programacin centrada en los datos. En este tipo de programacin, SQL
funciona de manera eficiente en el procesamiento de grandes conjuntos de datos.
Todos los objetos de la base de datos son ms eficaces cuando se crean con SQL.
Usted debe considerar la creacin de todos los objetos con SQL porque esto puede mejorar el
acceso a los datos y el rendimiento de las aplicaciones.
3.6 Servicio Orientacin
La figura 3-5 muestra la evolucin de las aplicaciones. Al principio, las solicitudes tenan todo el
cdigo para todas las funciones en el mismo lugar. El mantenimiento de estas aplicaciones es muy
difcil, debido a la cantidad de cdigo y las funcionalidades en los programas.


Despus de eso, se consideraron las aplicaciones distribuidas. Estas aplicaciones tienen una parte
de cdigo en el lado del servidor y otra en el lado cliente. Este perodo de tiempo fue llamado el
momento de las aplicaciones cliente / servidor. Las aplicaciones cliente / servidor fueron muy
tiles para un buen interfaces de usuario, sino que requiere un muy buen diseo y una buena
capacidad o la aplicacin podra salir fcilmente de los problemas de sincronizacin y la causa.
Despus de las aplicaciones cliente / servidor, los programadores desarrollaron aplicaciones
mediante el uso de diferentes tecnologas. Algunas de estas tecnologas son RMI / IIOP, CORBA,
DCOM, y otros. Este perodo de tiempo se denomina tiempo de las tecnologas distribuidas.
Durante este tiempo aplicaciones corran sobre plataformas heterogneas.
Desarrollo de aplicaciones con tecnologas como RMI / IIOP, CORBA, DCOM y otros similares
tecnologas, es una tarea difcil. Usted debe tener altas habilidades para el uso de estas
tecnologas. Para esta razn, las aplicaciones comenzaron a aplicarse con el uso de los servicios
web. Cuando crear aplicaciones basadas en SOA (Service Oriented Architecture), que est
utilizando un estndar lenguaje llamado XML. XML se utiliza para definir la entrada y la salida de la
llamada de servicios. Esta lata contribuye a disociar y promover un enfoque escalonado porque el
llamador del servicio Web no necesita saber nada acerca de la plataforma.


Cuando hablamos de la orientacin al servicio, nos referimos a la arquitectura orientada a
servicios
(SOA). SOA es un enfoque de arquitectura de integracin basada en el concepto de un servicio. Las
funciones comerciales y de infraestructura que se requieren para construir sistemas distribuidos
son disposicin en los servicios que, en conjunto o individualmente, ofrecen funcionalidad de la
aplicacin a fin aplicaciones de usuario u otros servicios.
SOA especifica que dentro de cualquier arquitectura dada, debe haber un mecanismo consistente
de servicios para comunicarse. Ese mecanismo debe ser acoplado y apoyar el uso de las interfaces
explcitas.
SOA ofrece los beneficios de acoplamiento dbil y la encapsulacin a la integracin en una
empresa nivel. Se aplica conceptos de xito demostrado por el desarrollo orientado a objetos,
componentes
Diseo basado, y la tecnologa de Integracin de Aplicaciones Empresariales de un enfoque
arquitectnico para la integracin de sistemas de TI.
Los servicios son los componentes bsicos de SOA, proporcionando interfaces para las funciones
de las cuales los sistemas distribuidos pueden ser construidos. Los servicios pueden ser invocados
de forma independiente, ya sea externo o consumidores de servicios internos para procesar
funciones simples, o se pueden encadenar juntos para formar funcionalidad ms compleja y por lo
tanto concebir rpidamente nuevas funcionalidades.
3.6.1 Qu es un servicio?
Un servicio puede ser definido como cualquier funcin discreta que se puede ofrecer a un externo
o interno consumidor. Esto puede ser una funcin de negocios individuales o una coleccin de
funciones que forman juntos un proceso. Se puede comparar a un mdulo que se empaqueta en
un servicio programa. La diferencia es que un servicio se puede llamar desde cualquier lugar.
Los servicios son funciones u operaciones que estn disponibles en una red. Algunos ejemplos son
de login Servicio, Calcular TRM, Servicio de impresin, y as sucesivamente.
Los servicios son accesibles de forma independiente de la aplicacin o el transporte y se integran a
travs de la red de la empresa.

3.6.2 Las propiedades de los servicios
Un servicio debe cumplir con las siguientes caractersticas.
Ligeramente agrupado
Los servicios se definen por interfaces independiente de la implementacin explcitas. Los
consumidores de los servicios slo dependen de este tipo de interfaz de invocacin de servicio;
que no tienen que ver con la implementacin del servicio o incluso cuando se ejecuta.
Acoplamiento dbil promueve la flexibilidad en el cambio de la implementacin del servicio sin
afectar a los consumidores de servicios.
Reutilizable
Es muy importante para disear servicios con la reutilizacin en mente y anticipar los diferentes
escenarios de reutilizacin. Es decir, cada servicio ha sido diseado para su reutilizacin, sin
duplicaciones.
Usted puede seguir estos pasos en el diseo para la reutilizacin:
Descomponer el negocio que necesite en su funcin y los servicios (separacin de las
preocupaciones necesarias)
Reutilizar y crear la funcin de aplicaciones de negocio especficas y los servicios (creacin y
reutilizacin servicios)
Utilizar los servicios comunes que ofrece el entorno operativo (utilizar la infraestructura)
El resultado es una aplicacin compuesta en tiempo de ejecucin que representa un proceso de
negocio.
Encapsulado
Los servicios no deben exponerse fsicamente ningn detalle de implementacin o detalles de
implementacin dentro de su diseo de la interfaz.
El concepto de encapsulacin por el uso de interfaces debe estar familiarizado de las disciplinas de
Anlisis y Diseo Orientada a Objetos (OOAD). Las interfaces se utilizan para separar pblicamente
comportamiento disponible de la aplicacin de dicho comportamiento. Los consumidores de ese
comportamiento slo depende de la interfaz que describe el comportamiento; los consumidores a
continuacin, no son afectados si la puesta en prctica de ese comportamiento cambia de ninguna
manera. Servicio basado arquitecturas proporcionan un conjunto de interfaces de grano grueso
que encapsulan el acceso al ms fino grano componentes y son accesibles a travs de la red.
Aptrida
Las implementaciones de servicios no deberan acercarse estado conversacional en las distintas
solicitudes.
Los servicios deben comunicar la informacin completa en cada peticin y cada operacin debe
ser funcionalmente independiente (separada e independiente).
Alta cohesin
Las interfaces de servicios deben ser concisos, relacionados, y juegos completos de operaciones.
Conciso y completa implica cada operacin que se necesita y no ms.
3.7 Nube
El hecho de que el sistema operativo IBM i (OS) es uno de los mejores de mltiples cargas de
trabajo, multiusuario plataformas de negocios es innegable. El valor de i de IBM y su arquitectura
es que se basa en seguridad de los objetos, las descripciones de puestos, y robusto de
planificacin de tareas y gestin del trabajo. Estas caractersticas lo convierten en una plataforma
ideal para ejecutar cargas de trabajo multiproceso. Usuarios de IBM i se ejecutan por lotes
procesamiento, web, y las cargas de trabajo de aplicaciones interactivas a la vez, sin dejar de
tomar ventaja de una alta disponibilidad. Otras plataformas no estn estructuradas de tal forma
de ejecutar estos tipos de cargas de trabajo de manera ms eficiente y con el aislamiento de
trabajo (separacin).
Desde una perspectiva tcnica, la seguridad y el aislamiento de los inquilinos de los negocios de
cada uno procesos y datos es una preocupacin primordial para la nube. Nueva aprovisionamiento
inquilino es la capacidad para crear la infraestructura, la plataforma y entorno de software en
forma oportuna y repetible manera para sus nuevos clientes.
Desde una perspectiva comercial, la medicin y la medicin para la facturacin es la principal
preocupacin.
Los principales puntos que debe considerar para la nube son:
Virtualizacin
Multitenancy
Performance
Seguridad
Medicin para su modelo de licencia
El IBM i tiene una larga historia de la virtualizacin. Por ejemplo, particin lgica (LPAR)
capacidades han estado disponibles desde 2001.
Para multiusuario, cuando los usuarios 1 de usuario o 1000 utilizan el mismo programa, la parte
ejecutable del programa se carga slo una vez en la memoria. Si implementa una nueva versin
del programa mientras que los usuarios siguen conectados, no hay nada roto y los usuarios seguir
trabajando con su versin actual. Sin embargo, si se limitan a firmar apagado y firman de nuevo,
van a tener la nueva versin del programa. Para un entorno de 5250, este despliegue dinmico no
es posible porque los objetos de visualizacin del archivo se asignan mientras estn abiertos. En
un entorno de multinivel, esta es totalmente posible.
La i de IBM es muy escalable para el rendimiento y la seguridad es su fuerza.
IBM i ha tenido esta capacidad durante muchos aos. Sus aplicaciones ya pueden aprovechar la
nube.

















Herramientas de desarrollo moderno
Hay muchas categoras de herramientas de desarrollo. En este captulo, cubrimos algunas de las
herramientas que son comnmente utilizados por los desarrolladores de RPG y COBOL. Tiene
sentido que una aplicacin proyecto de modernizacin tambin podra incluir la modernizacin de
su conjunto de herramientas de desarrollo.
La categora de herramientas que se aplica a la mayora de las tiendas se refiere a la edicin,
compilacin y depuracin aplicaciones host, que son a veces parte de un conjunto de
herramientas que se llama un Sistema Integrado
Entorno de desarrollo (IDE). Adems, existen herramientas que estn relacionados con el cdigo
fuente cambiar las herramientas de gestin o de control de cdigo fuente. Veremos esas dos
categoras de herramientas en este captulo, y algunas otras herramientas que pueden ser tiles
para entornos especficos.
Los cambios en su aplicacin puede ser muy sencilla tcnicamente, pero tambin hay otros
aspectos de un proyecto de modernizacin para tener en cuenta:
Pluralidad de la cultura: Los desarrolladores que utilizan diferentes tecnologas necesitan
compartir proyectos, informacin y procesos.
Pluralidad de tecnologas: Interfaces y conexiones introducen funcionalidad multiplataforma
dependencias.
Complejidades: Las nuevas tecnologas y metodologas pueden introducir complejidades que su
herramientas existentes no llegan a ser capaz de manejar de una manera significativa y confiable.
En este captulo se describe la situacin y recomienda cambios en las herramientas de desarrollo
que podran ser necesarias para su proyecto de modernizacin. Tambin describe cmo cambiar
su metodologa de desarrollo cuando se trabaja con estas herramientas.

4.1 Editar, compilar y depurar IDE
La herramienta principal de IBM disponible en la edicin, compilacin y depuracin de categora es
un IDE llamada Rational Developer for i, RPG y COBOL Herramientas, ms comnmente conocido
como RDi. Anterior versiones de este IDE basado en Eclipse de IBM eran conocidos como Rational
Developer for Power Sistemas (RDP) y Cliente de IBM WebSphere Development Studio (WDSC).
Las principales capacidades bsicas de estas herramientas se han mantenido igual a lo largo de las
distintas versiones.
Sin embargo, las nuevas caractersticas y funciones se han aadido a travs de los aos, incluido el
apoyo de las caractersticas del lenguaje actual en el editor y una pantalla grfica de DDS y
diseador de informes.
4.2 SEU y PDM para RDi: Por qu cambiar?
Muchos desarrolladores de IBM i han estado utilizando la misma herramienta para la edicin,
compilacin y depuracin su cdigo durante dcadas. Esta herramienta es la "pantalla verde"
herramienta de desarrollo de aplicaciones basadas
Set (ADTS), que incluye el Administrador de Programacin del Desarrollo (PDM), Utilidad para
Entrada del Fuente
(SEU), Screen Design Aid (SDA) y otras herramientas.
ADTS ya no es la mejor herramienta para los modernos i desarrolladores de IBM. Las herramientas
de la pantalla verde tienen alcanzado el lmite de sus capacidades y su funcionalidad no se ha
mejorado en muchos ao. La ltima actualizacin de estas herramientas fue en abril de 2008
cuando IBM i 6.1 fue lanzado. Desde ese momento, el conjunto de herramientas ADTS se ha
estabilizado. No hay planes para incluir cualquier informacin adicional funcionar a estas
herramientas, incluyendo cambios a los verificadores de sintaxis para los lenguajes soportados.
Las modernas herramientas de desarrollo de sustitucin de IBM se basan actualmente en el
Rational Developer para i (IDI), un entorno de desarrollo integrado basado en Eclipse (IDE).
Los desarrolladores que se sienten cmodos usando el conjunto de herramientas PDM / SEU
podra preguntarse por qu deben cambiar.
Las siguientes secciones describen algunas de las razones para el cambio.
4.2.1 actual (y futuro) soporte de idiomas
IBM ya no es la actualizacin de las herramientas ADTS estilo antiguo para las nuevas
caractersticas del lenguaje. Ha sido muchos aos ya que no haba ningn tipo de mejora funcional
de las herramientas ADTS. Hasta IBM i 6.1, IBM incluye soporte para nuevas caractersticas del
lenguaje. Por ejemplo, los inspectores de sintaxis en la SEU editor se han actualizado para
comprender nuevas palabras clave de rol, los cdigos de operacin o funciones incorporadas en
cada versin.
Las actualizaciones para las nuevas caractersticas del lenguaje ya no se proporcionan. Por lo
tanto, al utilizar SEU editar RPG o fuente COBOL, nuevas caractersticas del lenguaje para IBM i 7.1
y posterior no son reconocido. Esto significa que muchas de las nuevas funciones de forma libre
para RPG habr prcticamente imposible de implementar para los desarrolladores que utilizan las
herramientas ADTS. SEU usuarios ya estn falta de apoyo editor para funciones como la ScanRpl%
(escanear y reemplazar) incorporado, RPG Manejadores de acceso abierto, y gastos de conjuntos
de resultados de procedimientos almacenados. Slo Rational Developer para i utillaje ofrece lo
ltimo en soporte de idiomas, tanto ahora como en el futuro liberaciones.
4.2.2 entorno de desarrollo basado en Eclipse
Las herramientas de Rational Developer estn basadas en Eclipse, un desarrollo de cdigo abierto
medio ambiente en diferentes idiomas en muchas plataformas diferentes. La base de Eclipse
proporciona muchas ventajas para IBM i desarrolladores.

El mismo conjunto de habilidades que se utiliza cuando el desarrollo de RPG o COBOL de
IBM i puede ser utilizados en muchos otros entornos debido a una amplia variedad de
herramientas tales son Eclipse basado. Cuando est desarrollando pginas web, escribir o
utilizar el cdigo escrito en PHP o Java, o cuando se accede a muchas herramientas
orientadas a la base de datos, puede utilizar muchas de las mismas tcnicas y habilidades.
Puesto que hay muchas herramientas basadas en el mismo ncleo, se obtiene
previsibilidad cuando se necesita para utilizar estas herramientas.
Muchos plug-ins estn disponibles para Eclipse porque es tan ampliamente utilizado. Esto
significa que usted no tienen que depender solamente de IBM para suministrar toda la
nueva funcionalidad es posible que desee o necesite.
Otra persona podra ya haber escrito l y lo puso a disposicin del pblico. Algunos de
estos plug-ins pueden ser especficos para la plataforma IBM i. Ejemplos de estos incluyen
RPG / Gratis conversiones de origen, 5250 emuladores, editores de archivos de mensajes,
y otras herramientas tiles. hay son los plug-ins adicionales que no estn escritas
especficamente para un IBM i medio ambiente, pero todava puede ser muy til,
incluyendo muchas herramientas orientadas a bases de datos. A menudo, estas
herramientas estn disponibles ya sea de forma gratuita o con un costo muy bajo.


4.2.3 Las caractersticas de productividad de RDi
Tal vez la razn ms importante para cambiar de PDM / SEU a RDi es la dramtica
aumento de la productividad que ofrecen las herramientas ms avanzadas. Se requerira un libro
entero para producir una lista completa de caractersticas de productividad que RDi ofrece sobre
las herramientas PDM y SEU.
A continuacin se destacan algunas de las caractersticas de productividad ms evidentes de la RDi
editor de cdigo fuente especfica, junto con algunas herramientas estrechamente integradas con
el editor que estn diseados para apoyar el proceso de edicin.
RDi depurador grfico El depurador RDi tiene la capacidad de controlar los valores de las variables
seleccionadas al pisar a travs del cdigo y / o detenerse en los puntos de ruptura. El depurador
tambin tiene la capacidad de contener puntos de ruptura, tanto activos (habilitados) e inactivos
(discapacitados). Esto viene muy bien porque la depurador tambin puede recordar los puntos de
corte a travs de mltiples sesiones de depuracin en caso de que un bug problemtica requiere
de un trabajo de varios das.
Un ejemplo del depurador RDi en la accin se muestra en la Figura 4-1. La captura de pantalla
ilustra varias caractersticas del depurador RDi. Los monitores de ver (ventana superior derecha)
muestra valores de las variables que se eligieron a ver a lo largo de la sesin de depuracin. Los
valores que han cambiado desde el ltimo paso o punto de ruptura aparecen en rojo. Otros
valores de las variables pueden ser se muestra el cursor sobre una variable para mostrar su valor
actual, como se ilustra. Los puntos de interrupcin se muestra con una marca a la izquierda del
nmero de documento.


Figure 4-1 RDi Graphical Debugger

DDS diseador
Adems del depurador, el diseador DDS puede hacer mantenimiento o creacin de informes o
pantallas ms fciles. El diseador grfico de DDS es la misma herramienta, tanto para informes y
pantallas - a diferencia de la SDA y herramientas RLU en el ADTS mayor conjunto de herramientas.
El diseador hace que sea mucho ms fcil mover los campos y el texto alrededor y centrar o
alinear elementos. Los campos de los archivos de bases de datos o tablas se pueden elegir de una
lista y se deja caer sobre la pantalla para crear campos de referencia de base de datos. Lo es muy
simple para cambiar entre el modo de diseo grfico y la edicin directa de la DDS para aquellas
ocasiones en que el enfoque directo de edicin es ms productivo.
Mira la Figura 4-2 para tener una idea de lo que funciona la herramienta de diseo de DDS en RDi.
En este ejemplo se muestra un archivo de pantalla pero la interfaz para archivos de impresora es
muy similar. La ventana de diseo en el centro permite al desarrollador para mover o cambiar la
longitud de los elementos de la pantalla utilizando arrastre o estiramiento. La ventana de
propiedades por debajo de la ventana de diseo permite que todas las propiedades del elemento
seleccionado (ProdCode en este ejemplo) para ser visto y editado, incluyendo palabras clave y el
indicador acondicionado (utilizando otras pestaas en la ventana de propiedades.) La Paleta a la
derecha de la ventana de diseo permite a los nuevos elementos que se colocan en la pantalla de
arrastrar y soltar. El Esquema (ventana inferior izquierda) muestra detalles de elementos en la
pantalla, incluyendo a muchas palabras clave, y tambin se puede utilizar para seleccionar
elementos en la pantalla de diseo. En la parte inferior de la ventana de la pantalla del diseo son
tres pestaas, una de las cuales (Fuente) permite que la fuente DDS para ser editado
directamente.



iProjects

Hay otras herramientas en RDi, ms notablemente iProjects, que el apoyo que trabaja en un
desconectado medio ambiente. iProjects tambin se pueden utilizar para ayudar a organizar el
trabajo de desarrollo en locales proyectos almacenan en el disco estacin de trabajo o en IBM i u
otro servidor. iProjects tambin es se utiliza con algunas herramientas de gestin del cambio de
fuente.
RDI destacados productividad editor como la mayora de los desarrolladores gastan ms de su
tiempo de visin, navegacin y edicin de cdigo fuente, los beneficios de productividad del editor
RDi merecen un anlisis ms detallado. El editor contiene mltiples funciones para mejorar la
productividad de programacin. Adems del editor de s mismo, hay herramientas, tales como el
Esquema y Error vistas Feedback, que estn diseados para trabajar en estrecha colaboracin con
el editor para mejorar an ms la productividad. En esta seccin se har hincapi en algunos de las
ms valiosas funciones de productividad del editor.
Ms cdigo visible a la vez Cuando la edicin de cdigo fuente, un desarrollador puede ver
tpicamente de 2 a 3 veces el nmero de lneas de cdigo en comparacin con el editor de
SEU mayor. Cuando se utiliza SEU, el nmero de lneas visibles es fijo,
independientemente del tamao de monitor utilizado. Con el editor de RDi, el nmero de
fuente lneas visibles vara en funcin del tamao del monitor y la forma y el tamao de la
fuente seleccionada. Vista ms cdigo hace que sea ms fcil y ms rpido para seguir el
flujo de la lgica. Figura 4-3 ilustra la capacidad de ver ms lneas de cdigo a la vez.

Miembros fuente abierto y mltiple a la vez Miembros fuente mltiples pueden ser
abiertos para su edicin (y hojear) al mismo tiempo. Este se vuelve ms importante como
las aplicaciones modernas se hacen ms modular. Es fcil de haga clic entre los miembros
abiertos como fluye la lgica entre los mdulos. Dos o ms miembros se pueden ver
simultneamente a travs de uno o ms de pantalla dividida horizontal y vertical lneas.
Incluso en el modo de pantalla dividida, todos los miembros pueden ser abiertos para su
edicin. Consulte la Figura 4-3, que muestra un ejemplo de edicin de la pantalla dividida
en IDI. En esa misma figura las pestaas mostrando por encima del cdigo fuente indican
los diferentes miembros de origen que se encuentran actualmente abrir en la sesin de
edicin.

See Figure 4-3,which shows an example of split screen editing in RDi. In that same figure the tabs
showing above the source code indicate the different source members that are currently
open in the edit session.


Filtrado de cdigo fuente
Lneas de cdigo fuente se pueden filtrar en el editor RDi en un nmero de maneras. Si hay
muchos lneas comentadas Salida de cdigo en un miembro fuente, eligen para filtrar para ver slo
cdigo. Este elimina todas las lneas de comentarios desde su punto de vista, dando an ms
lneas de cdigo visible a l desarrollador. Las lneas tambin pueden ser filtradas por la ltima
fecha de modificacin de la lnea, que puede ser til en la bsqueda de los cambios recientes en el
cdigo que pueden haber causado errores recientes en la aplicacin. Otras opciones de filtro
incluyen mostrando instrucciones SQL nicas, mostrando slo subrutinas o secundarios y las que
muestran sentencias lgicas flujo nico de control. Adicionalmente, un poco de texto, por
ejemplo, un nombre de campo, se puede seleccionar y luego se filtr el cdigo en ese seleccin.
Esto calza nicamente las lneas de cdigo que hace referencia a ese campo en el editor.
El filtrado puede ayudar al desarrollador a encontrar partes de un programa que requiere atencin
rpida.
Vista del esquema para las definiciones, referencias cruzadas y de navegacin fuente
A la vista Esquema programa est disponible para ayudar con la navegacin a travs del cdigo
fuente. El esbozo de un programa RPG IV incluye los detalles de cada archivo declarados, incluidos
todos los registros formatos y todos los campos y sus definiciones. Los detalles de todas las
variables del programa definido y
Tambin se incluyen las estructuras de datos. Tanto el programa describe como externamente
describe variables que aparecen en una lista que puede ser ordenada alfabticamente por el
nombre del campo para que sea rpido para encontrar la definicin de campo es necesario.
Incluso sin utilizar la vista Esquema, espectculos el editor RDi la definicin de una variable cuando
se pasa el ratn sobre su nombre. As que no hay ms
Necesitamos hacer un DSPFFD (Mostrar archivo de definiciones de campo) o algn otro mtodo en
el host para encontrar la definicin de un campo.
Adems de las definiciones de datos, el Esquema RPG IV contiene todas las subrutinas,
subprocedimientos y los prototipos que se definen en el miembro fuente.

El Esquema est integrado con el editor. Esto significa que un desarrollador puede navegar
directamente al lugar en el programa en el que un elemento variable o subrutina u otra se define
o codificada. Adems hay una referencia cruzada en el Esquema muestra que cada elemento hace
referencia en el miembro fuente; esas lneas de referencia transversales tambin estn
conectados al editor. As, por ejemplo, un desarrollador puede navegar fcilmente no slo a una
subrutina especfica utilizando el esquema, pero tambin pueden navegar directamente a cada
lnea de cdigo en el elemento que llama a la subrutina. La informacin de referencia cruzada para
los campos indica si no se modifica el campo en que la declaracin por medio de (M) despus de
que el nmero de sentencia. La Vista Esquema se actualiza automticamente a medida que edita
el cdigo en la vista de edicin. Estos dos puntos de vista estn estrechamente ligados.
La figura 4-4 muestra el esquema para la derecha del cdigo en el editor. Los detalles de cada lnea
de cdigo que hace referencia a la variable FullDate, junto con la definicin de FullDate, se
muestra.
Tenga en cuenta que dos de las instrucciones que hacen referencia FullDate modificar el valor,
mientras que uno de ellos slo hace referencia a ella. Una de las referencias se selecciona en el
Esquema, que automticamente colocado el editor para esa lnea de cdigo.





Deshacer y rehacer
Durante una sesin de edicin, un desarrollador tiene niveles ilimitados de deshacer y rehacer,
tanto de cambios individuales, incluso despus de la parada y compilar, mientras que el miembro
fuente sigue abierta en el editor. Esto significa que usted puede abrir un archivo, realizar cambios,
guardar y luego compilar y hacer esta secuencia varias veces y todava "deshacer" cambios
individuales de todo el camino de regreso al abrir ese archivo. En el editor de SEU, la nica opcin
para deshacer los cambios es deshacer todo los cambios en toda la sesin de edicin de cerrar el
editor sin guardar el miembro.
Teclas Tab trabajan en lenguas columnas sensibles
Para algunos idiomas sensibles de columna, las teclas Tab funcionan sin necesidad de preguntar.
Las posiciones de las pestaas se pueden personalizar segn las preferencias del desarrollador.
Una lnea de formato que aparece en la parte superior de la ventana del editor indica la posicin
actual del cursor en la line. A diferencia de la lnea de formato en el SEU, que siempre refleja el
formato de la primera declaracin en la pantalla, el editor RDi cambia la lnea de formato para que
coincida con la declaracin en la que se encuentra el cursor. Esto hace que sea mucho ms rpido
para introducir el cdigo que se encuentra todava en formato fijo RPG, as como el cdigo DDS.
Retroalimentacin Error integrado con el editor
Errores que se producen durante una compilacin aparecen en una lista de errores al lado del
editor de cdigo fuente.
Haciendo doble clic en un error en la lista que posiciona a la lnea de cdigo en el editor de donde
se encontr el error y coloca el mensaje (s) error en la fuente. Desarrolladores nunca tienen que
mirar a unos separados listados archivo de cola de compilacin para encontrar y corregir los
errores de tiempo de compilacin en su cdigo. Miembros fuente editados en RDi son tpicamente
compiladas sin cerrar el miembro fuente para permitir una reaccin ms rpida a los errores en
tiempo de compilacin. En la Figura 4-5, un intento de compilacin result en varios errores. En el
momento de esta captura de pantalla, el desarrollador ejecuta doble clic sobre uno de los errores
y el editor se coloca automticamente en la lnea de cdigo para ese error.
La integracin de la retroalimentacin de error con el editor es considerablemente ms rpida que
cualquier mecanismo que implica la exploracin de un archivo en spool de compilacin listado
para localizar lneas de cdigo en el error.

Potrebbero piacerti anche