Anda di halaman 1dari 7

Programacin OO vs Programacin clsica:

Proyecto Posicionamiento 2d en PowerBuilder.


Pedraza C. y Pascual D.
Facultad de informtica - Universidad Politcnica de Valencia.
email: cripedpe@inf.upv.es, dapasser@inf.upv.es
Resumen.
La presenta memoria analiza la adaptacin de un software creado
bajo las guas del diseo estructurado de la ingeniera del software y
de carcter secuencial, a un nuevo sistema apoyado en los
estndares actuales de programacin visual, orientada a objetos y
basada en eventos interfaz-usuario.
Para ello, se ha seguido de manera secuencial, el esquema de ciclo
de vida clsico, seccionando la memoria en las tres fases que
incluyen prcticamente todas las metodologas de ingeniera del Sw,
anlisis, diseo, e implementacin.
Por ltimo, se sealan las principales conclusiones del trabajo llevado
a cabo: las ventajas de la utilizacin de metodologas en el desarrollo
de software.
Introduccin.
La complejidad creciente del software obligan desde hace dcadas a
la utilizacin de metodologa de anlisis, diseo y codificacin que
garanticen la obtencin de un software de calidad. ste compendio de
mtodos se recogen en la disciplina llamada Ingeniera del Software, y
como el software evoluciona rpidamente, tambin lo hace sta
ciencia.
La aparicin de un nuevo compilador, de nuevos lenguajes visuales
que se programan o funcionan por el disparo por eventos, las
aplicaciones para sistemas distribuidos e Internet, los ltimos
adelantos en generacin automtica de cdigo, hacen que la
disciplina tenga que evolucionar rpidamente en las fases finales del
ciclo de vida del Sw, el diseo y la codificacin, por el contrario, el
anlisis (la fase ms importante en proyectos de mediana y gran
envergadura), permanece mucho ms estable a la aparicin de
lenguajes o tcnicas de programacin.
1
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia

En la presente memoria, nos centramos en la resolucin de uno de


estos "pequeos" problemas, la migracin de un Sw realizado bajo las
pautas de un correcto diseo estructurado, que dio como fruto un
programa basado en la programacin clsica o secuencial, a un
entorno grfico para el usuario como es el sistema operativo MS Windows.
Para ello no tendremos ms que seguir el ciclo de vida y las
correspondientes fases de ingeniera del Sw del proyecto original 1 y
utilizar todo, parte o nada del proyecto original2.

Anlisis

Diseo

Codificacin

Integracin

Figura 1 Ciclo de vida clsico

1. Anlisis.
Como la ingeniera del Sw pone de manifiesto, es la fase que menos
cambios soporta por la incorporacin de nuevas tecnologas al
proceso de creacin del Sw. Es adems la fase de mayor importancia,
ya que determina QUE es lo que se quiere obtener, QUE problema
debe resolver el Sw.
Observando el anlisis efectuado para el proyecto original en [1],
vemos que es un anlisis correcto an para la programacin que
vamos a llevar a cabo. Se emplean Diagramas de Flujos de Datos
(DFD's), y se consigue captar y comprender la funcin del software,
por lo que la fase es totalmente equivalente y podra entregarse la
misma documentacin.
2. Diseo.
Recordemos, el diseo es el proceso por el cual se traducen las
especificaciones de requerimientos en una representacin del
Software, es un puente entre el anlisis y la solucin de un problema,
es decir la implementacin.

Vase el captulo 10 Un caso prctico de diseo estructurado. de la referencia [1]


La figura corresponde al ciclo de vida clsico, opcin poco realista en el diseo del software, pero vlida
para nuestro propsito que no es otro que establecer la validez de las tcnicas del diseo estructurado con
la programacin actual.
2

2
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia

En esta fase comienzan a acentuarse las diferencias en el proceso de


modelado entre el diseo estructurado y las tcnicas actuales, como
puede ser el UML. Los herramientas utilizadas por el diseo
estructurado en la fase de diseo son distintas a las actuales, los
diagramas de estructuras pierden gran parte de su utilidad, pues la
fase que sigue al diseo (la codificacin o implementacin) es
radicalmente distinta entre un lenguaje OO, visual y dirigido por
eventos como PowerBuilder, Delphi, etc... y un lenguaje de carcter
secuencial como C o Pascal entre otros. As, el sistema no puede
"fraccionarse" de la misma forma, pues la comunicacin entre
mdulos no ser siempre entre variables, sino por paso de mensajes,
acceso a objetos, mtodos, propiedades, disparo de eventos etc.
Etapas o mdulos de importancia en la rama aferente del DE original,
pierden por competo su sentido, un claro ejemplo son los mdulos de
edicin o validacin.
Recordemos, segn las guas de diseo estructurado, se deba validar
la sintaxis (formato) antes que la semntica (significado), validar lo
sencillo antes que lo cruzado y validar lo interno antes que lo externo.
El razonamiento sigue siendo vlido, pero al utilizar un lenguaje
visual, lo sencillo pasa a ser sencillsimo, casi automtico, tal y como
se ver en el siguiente apartado, el de la implementacin.
A pesar de que parte del diseo recogido en [1] resulta innecesario,
tambin existe una parte que resulta de utilidad.
El diseo original viene documentado por un diagrama de estructuras
(DE), la especificacin interface-funcin y la especificacin por
pseudocdigo de algunos mdulos (los de mayor "complejidad")
cosas que siguen siendo muy tiles, pues adems de ofrecer el
acercamiento a una posible solucin (la de programacin secuencial),
clarifican el sistema como un todo, y permite conocer mejor el
problema al que nos enfrentamos y elaborar soluciones ms acorde a
nuestro objetivo, destacando sobretodo la especificacin por
pseudocdigo, que obviando detalles del lenguaje de programacin,
nos ahorrar tremendo trabajo de implementacin, pues aunque no
se traduzcan en funciones, pueden formar parte de los mtodos de
algn objeto.
3. Implementacin.
Como era de suponer, sta es la fase que cambia radicalmente del
acercamiento original a nuestra versin visual, como el lenguaje
elegido en [1] para la implementacin es C, no sirve NADA del cdigo
3
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia

original (no ms de lo que sirve el pseudocdigo o incluso menos,


pues tiene en cuenta particularidades del lenguaje).
En esta fase entra como principal protagonista el nuevo lenguaje
elegido, el PowerBuilder, y se ponen de manifiesto las tremendas
diferencias entre los nuevos lenguajes visuales y los lenguajes como
C, que fue el elegido en [1] para implementar la primera versin de
Posicionamiento 2D.
Veamos un simple ejemplo, la interfaz grfica:

Figura 2 Pantalla principal.


Como puede observarse, la nueva versin del programa, mantiene
una interfaz con el usuario radicalmente distinta, grfica, y basada en
el empleo del ratn, mens, y todas las particularidades de los
nuevos sistemas.
Inevitablemente, los cambios en la interfaz con el usuario provocan
cambios drsticos en la manera de obtener los datos, por lo que la
validacin de esos datos de entrada proporcionados por el usuario es
distinta.
En la primera versin, el usuario deba introducir una cadena, con un
formato determinado, indicando el nmero de pasos y la direccin,
algo as como:
Introduzca pasos y direccin: 15N

4
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia

En un primer paso, el sistema lea la cadena, validaba el formato: dos


nmeros, y un carcter del conjunto {N, S,E,O, ..} y comprobaba que
los dos nmeros fueran menores que 19, detengmonos ah. Es
necesario este tipo de validaciones en esta aplicacin?. La respuesta
es sencilla, s, pero no las lleva a cabo el programador, o las hace de
manera asistida.
Expliqumoslo sobre la imagen.

"Spin-Buttom"

Campo de edicin
controlado por
mscara numrica.

Lista desplegable para


seleccionar la direccin

Figura 3 Toma de datos


Como se observa, nos servimos de un campo para que el usuario
introduzca el nmero de pasos con dos "spin-buttoms" que permiten
incrementar o decrementar el nmero de pasos sin hacer uso del
teclado (slo del ratn), adems si el usuario prefiere hacer uso del
teclado, el campo tiene asignada una mscara que slo permite la
introduccin de caracteres numricos.
En cuanto a la direccin a elegir, el mtodo se simplifica ms an
utilizando una lista desplegable sin posibilidad de edicin, por lo que
nos ahorramos la comprobacin del campo.

5
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia

Por otro lado, la complejidad en el tratamiento de ficheros tambin se


simplifica al uso de seis primitivas ofrecidas por PowerBuilder 3,
adems se ofrecen los mens de apertura y salvado de ficheros
estndar de Windows con una implementacin sencilla.
En cuanto al funcionamiento o comportamiento, ofrece una solucin
vlida al problema original pero con un comportamiento distinto,
basado en los eventos. As, el mapa no se actualiza a travs de la
orden explcita de usuario como en la primera versin (la opcin del
men "imprimir mapa"), sino que a medida que se introducen los
movimientos se ven reflejados en el mapa. El mapa, no consiste en
una pantalla como en la primera versin, sino que ha mutado a un
componente visual totalmente independiente, que puede compilarse
en una dll y ser utilizado por otras aplicaciones a travs de la interfaz
de la que le hemos dotado.
Conclusiones.
Las conclusiones a las que llegamos son sencillas, a medida que
avanzamos del anlisis hacia la implementacin, el grado de
reusabilidad de la primera versin disminuye de forma no lineal. Este
efecto es el que trata de explicar la grfica siguiente.
Anlisis

Diseo

Implementacin

Figura 4 Grado de similitud en relacin a las fases

A pesar de las dificultades que hemos expuesto a lo largo de la


presente memoria, cabe significar que el seguir una metodologa en
la creacin de software, garantiza unos factores de calidad elevados,
entre los que est como hemos visto la reusabilidad.

FileOpen(...), FileClose(..), FileDelete(...), FileExist(...), FileRead(...), FileWrite(..)

6
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia

3 Referencias.
[1] Molina A., Letelier P., Snchez P., Snchez J., Metodologa y
Tecnologa de la programacin. Servicio de publicaciones de la
U.P.V - 97.498, 1997.

7
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia