Vous êtes sur la page 1sur 12

TECNICA DE PROGRAMACION PARA MEJORAR EL REDIMIENTO DEL

DESARROLLO DE APLICACIN WEB


Por
Adolfo Vega Fajardo

TESIS DE GRADO PARA OPTAR AL TTULO DE


DOCTOR EN INGENIERIA DE SISTEMAS
Investigacin de

UNIVERSIDAD NACIONAL DE INGENIERIA

Diciembre 2014

TABLA DE CONTENIDOS

CAPITULO 1: INTRODUCCION
1.1.

Antecedentes Del Problema

1.2.

Planteamiento Del Problema

1.3.

Importancia Del Problema

1.4.

Motivacin

1.5.

Objetivo

1.5.1 Objetivo General


1.5.2. Objetivo Especifico
1.6.

Propsito Del Estudio

1.7.

Organizacin de la Tesis

3
CAPITULO I: INTRODUCCION
1.1. Antecedentes Del Problema
El desarrollo de aplicacin web tiene dificultades debidas que no existe una conexin
o puente entre los requerimientos de negocio con el cdigo o la programacin que
permita mejorar el desarrollo de aplicaciones web, empleado una tcnica de
programacin eficiente. Estudios anteriores y recientes han demostrado que existen
varias tcnicas de programacin tales como la programacin orientada a objetos,
programacin orientada a aspectos, programacin orientada a caractersticas o la
programacin orientada a agentes, las cuales en muchos de los casos carecen de
suficiente informacin para utilizar la tcnica, difciles de comprender la tcnica o la
reutilizacin del cdigo, a pesar que a la fecha empresas generadores de software ha
realizado intentos fallidos al crear libreras con las tcnicas de programacin antes
mencionada.
Los conceptos de la programacin orientada a objetos tienen origen
en Simula 67, un lenguaje diseado para hacer simulaciones, creado por Ole-Johan
Dahl yKristen Nygaard, del Centro de Cmputo Noruego en Oslo. En este centro se
trabajaba en simulaciones de naves, que fueron confundidas por la explosin
combinatoria de cmo las diversas cualidades de diferentes naves podan afectar unas
a las otras. La idea surgi al agrupar los diversos tipos de naves en diversas clases de
objetos, siendo responsable cada clase de objetos de definir sus propios datos y
comportamientos, fueron refinados ms tarde en Smalltalk, desarrollado en Simula
en Xerox PARC (cuya primera versin fue escrita sobre Basic) pero diseado para
ser un sistema completamente dinmico en el cual los objetos se podran crear y
modificar en lugar de tener un sistema basado en programas estticos.
La programacin orientada a objetos se fue convirtiendo en el estilo de
programacin dominante a mediados de los aos ochenta, en gran parte debido a la
influencia de C++, una extensin del lenguaje de programacin C, su dominacin fue
consolidada gracias al auge de las Interfaces grficas de usuario, para las cuales la

4
programacin orientada a objetos est particularmente bien adaptada. En este caso, se
habla tambin de programacin dirigida por eventos.
Las caractersticas de orientacin a objetos fueron agregadas a muchos
lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp mas Pascal,
entre otros. La adicin de estas caractersticas a los lenguajes que no fueron
diseados inicialmente para ellas condujo a menudo a problemas de compatibilidad y
en la capacidad de mantenimiento del cdigo. Los lenguajes orientados a objetos
"puros", por su parte, carecan de las caractersticas de las cuales muchos
programadores haban venido a depender. Para saltar este obstculo, se hicieron
muchas tentativas para crear nuevos lenguajes basados en mtodos orientados a
objetos, pero permitiendo algunas caractersticas imperativas de maneras.
El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado
lenguaje con esos objetivos, pero ahora ha sido esencialmente reemplazado por Java,
en gran parte debido a la aparicin de Internet y a la implementacin de la mquina
virtual de Java en la mayora de navegadores.
PHP en su versin 5 se ha modificado; soporta una orientacin completa a
objetos, cumpliendo todas las caractersticas propias de la orientacin a objetos
Figura Nro. 01 Programacin Orientada a Objetos

Fuente: Ole-Johan Dahl yKristen Nygaard, del Centro de Cmputo Noruego en Oslo

5
La programacin orientada a aspectos AOP (Kiczales et al., 1997) ha propuesto como una
tcnica para la modularizacin, la explotacin, distribucin, seguimiento, seguridad, y
transaccional gestin se han presentado como ejemplo de transversalidad preocupaciones
atendidas por la AOP. Sin embargo, AOP podra conducir a problemas de
razonamiento modulares. Por ejemplo, con el fin de razonar acerca de las clases, los
desarrolladores pueden tener que considerar la implementacin de todos los aspectos
(Sullivan et al., 2005; Clifton y las levaduras, 2002; Steimann, 2006). De hecho,
haciendo referencia a las clases de ejecucin detallada de aspectos, se podra inhibir
el razonamiento modular y mutabilidad de compromiso, lo que requiere
modificaciones de clase para ser plenamente consciente de los aspectos que afectan a
la clase. Por ejemplo, el desarrollo de aplicaciones web necesita revisar todos los
aspectos para confirmar que un extraccin mtodo no dar lugar a la falta unir
puntos. Por lo tanto, construcciones destinadas a soportar la flexibilidad transversal
de la

modularidad clase (Ribeiro et al., 2007), la creacin de mutua dependencias

entre las clases y los aspectos.


La descomposicin basada en componentes (Heineman y Councill, 2001; Crnkovic y
Larsson, 2002); es una modularidad utiliza a menudo tcnica para el desarrollo de
sistemas de software complejos. se basa en un proceso que asigna los requisitos a los
componentes tradicional (OO) mecanismos modularidad orientados a objetos, como
las clases, encapsulacin y herencia, junto con la arquitectura adecuada patrones se
pueden aplicar a descomponer un sistema en componentes bien definido. Este
enfoque asla la aplicacin de requisitos que son ms propensos a cambiar juntos,
manteniendo algunas preocupaciones aparte. Idealmente, queremos separar
diferentes tipos de preocupaciones en distintos componentes con el fin de la
problemtica se debe hablar sobre el problema que existes con los modelo de
programacin que no han permitido mejorar el desarrollo de las aplicaciones web.
La programacin orientada a aspectos a partir del 2000 (Xerox Parc), es incorpora
en los diferente lenguaje de programacin tales como el Java, as mismo empresas
fabricadoras de software incorporan un framework denominado AspectJ.

La programacin orientada a agente (AOP) fue iniciada por Yoav Shoham, 1990
propuso un nuevo paradigma de programacin, basado en una vista social de la
computacin.

La

idea

clave

que

informa

esta programacin (AOP)

paradigma orientado a agentes es el de agentes de la programacin directamente en


trminos de las nociones mentalistas, intencionales que los tericos de agentes han
desarrollado para representar las propiedades de los agentes.
Los seres humanos utilizan la actitud intencional como un mecanismo
de abstraccin para la representacin de las propiedades de los sistemas
complejos. De la misma manera que usamos la actitud intencional para describir los
humanos, podra ser til el uso de la actitud intencional para programar mquinas.
Shoham propone que un sistema AOP completamente desarrollada, tendr tres
componentes:

un sistema lgico para definir el estado mental de agentes;


un lenguaje de programacin interpretado por agentes de programacin;
un proceso agentification, para la elaboracin de programas de agentes en los
sistemas ejecutables de bajo nivel.

La programacin orienta a agentes (AOP) en el ao 2000, se cambi sustancialmente


incorporando diferentes lenguajes de programacin en la AOP, basados en
formalismos subyacentes variadas e inspirado en varios otros paradigmas de
programacin. Adems, muchos lenguajes fueron desarrollados con este enfoque de
programacin , con herramientas de desarrollo y plataformas de trabajo tales como
MOISE framework para programacion orientado a agentes.
McKinsey & Company, junto con la Universidad de Oxford, realiz un estudio
publicado en Octubre de 2012, enfocado a Grandes Proyectos de TI (proyectos de TI
cuyo presupuesto inicial exceda los 15 millones de dlares). De acuerdo a esta
investigacin los 5,400 proyectos de TI consultados, el 45% por encima del
presupuesto, el 7% han excedido su cronograma y 56% entregan menos valor que lo
previsto.

7
Figura Nro. 01: Proyecto con Fracasos Motivos
56%

60%
50%

45%

40%

Encima del
Presupuesto

30%

Excedi Cronogrma

20%

Menos valor de lo
previsto
7%

10%
0%
Proyecto TI

Fuente: McKinsey & Company, junto con la Universidad de Oxford 2012

1.2. Planteamiento del Problema


Cules son los criterios tcnicos de la programacin orientado a entidades que
permitir mejorar el desarrollo de las aplicaciones web?
Que tcnica de programacin permita mejorar el rendimiento del desarrollo
de la aplicaciones web?
1.3. Importancia del Problema
La programacin orientada a objetos proporcionando la reutilizacin del cdigo,
diseo y un lenguaje construcciones con caractersticas tales como la modularidad, la
encapsulacin, herencia y polimorfismo (Meyer, 1997). Aunque la orientacin a
objetos es ampliamente utilizado y mucho xito en el modelado y la implementacin
de diseos complejos, tiene sus problemas. La experiencia prctica con grandes
proyectos muestran que los programadores pueden hacer frente a algunos
problemas con el mantenimiento de su cdigo, porque se convierte cada vez ms
difcil para separar diversos problemas o preocupaciones en mdulos (Kiczales et al.,

8
1997). Un intento de hacer un pequeo cambio en el programa diseo puede requerir
varios cambios a un gran nmero de mdulos relacionadas.
FeatureIDE es compatible con varias tcnicas de aplicacin para FOSD (featureoriented software development), y otros pueden integrarse con bajos costos. La
interfaz de usuario y las tcnicas son fcil de implmentar. Por lo tanto, FeatureIDE
est especialmente calificado para la enseanza y para comparar las tcnicas de
implementacin de SPL(software product line ) con respecto a su aplicabilidad para
el desarrollo de SPLs. FeatureIDE experiment varios cambios desde el desarrollo
inicial en el 2004. En 2005, se present una versin prototipo de FeatureIDE. En ese
momento, FeatureIDE era slo un front-end para el lenguaje de programacin Jak de
la suite de herramientas. El desarrollo de este soporte de herramienta es costoso
para un lenguaje de investigacin.
La programacin orientada a aspectos podra conducir a problemas de razonamiento
modular. Por ejemplo, para razonar acerca de las clases, los desarrolladores tienen
que considerar la implementacin de todos los aspectos (Sullivan et al., 2005; Clifton
y fermentos, 2002; Steimann, 2006), de hecho, al referirse a los detalles de
implementacin de las clases en los aspectos, uno podra inhibir la mutabilidad
modular razonamiento y compromiso, que requiere modificaciones de clase, estos
deben ser plenamente consciente de los aspectos que afectan a la clase. Por ejemplo,
puede necesitar la

verificar todos los aspectos con el fin de confirmar que la

extraccin de un mtodo no conducir a la falta unir puntos.


Las asignaciones de cinco idioma utilizadas para validar el modelo deben ser tiles
para los profesionales en la evaluacin de la idoneidad de C, Erlang, Haskell, Jason y
Java para una arquitectura de software o proyecto de desarrollo en particular. Sin
embargo, las caractersticas son slo uno de muchos factores a tener en cuenta en
este tipo de decisiones. Un criterio clave es la disponibilidad de expertos con
experiencia sucient en el idioma elegido. Otros factores de importancia potencial
incluyen compatibilidad entre plataformas, soporte de herramienta de desarrollo,

9
documentacin, material didctico, comunidad de usuarios y propiedades no
funcionales
Algunas estudios utilizan modelos de transformacin - MT,

empleado la

programacin orientada a agente. Por ejemplo, Rougemaille et al (2008) uso de MTs


para la transformacin de modelos de masa adaptativo diseados por los usuarios a
modelos que son especficas de la plataforma. Adems, Perini y Susi (2006) presente
un equipo asistido por herramienta Software Engineering (CASE) para MTs en
Tropos, mostrando algunos ejemplos aislados de MTs. Sin embargo, ninguna de estas
obras utiliza estos MTs para automatizar algunos fragmentos del mtodo
formalizado, y en consecuencia ninguno de estos trabajos utiliza MTs para mejorar el
mtodo de ingeniera. De hecho, otro aporte de la obra actual es utilizar MTs para
automatizar parcialmente fragmentos mtodo.

1.4. Motivacin
La fragmentacin es una novedoso tcnica de la programacin orientada a agente que
son asistidos con transformaciones de modelo original, con el fin de permitir a los
ingenieros desarrollar mejor la masa en forma automatizada. Algunos de estos
fragmentos tambin incluyen consejos explcitos para la incorporacin de
inteligencia artificial en el desarrollo. En los experimentos, dos procesos han sido
compuestos con estos fragmentos de mtodo para dos orientada al agente
metodologas diferentes (es decir Ingenias y Adelfe). Este artculo muestra cmo
estos procesos se utilizan respectivamente para desarrollar dos conocidos masa (es
decir, Delphi MAS y MAS horario). (A collection of method fragments automated
with model transformations in agent-oriented modeling: Ivan Garcia-Magario,
2013).
El aporte es un enfoque novedoso que incluye un patrn de organizacin de
interaccin para multi-agent Systems (masa) en gestin de crisis, abstrado de varios
estudios de caso existentes en el que los agentes siguen una secuencia de
interacciones y la organizacin debe optimizar el uso de los recursos humanos. El
modelo considera una organizacin emergente de compaeros que adoptan diferentes

10
roles segn las circunstancias. (Agent-oriented modeling and development of a
system for crisis management: Ivn Garca-Magario y Celia Gutirrez, 2013).
La motivacin sobre el problema de la informacin y la abundancia de servicios
disponible en el escenario de la Universidad, lo que puede ser un desafo para
satisfacer a intereses apropiado de usuarios. Como un entorno social que promete la
difusin del conocimiento, es adecuado aplicar el concepto de aplicacin
generalizada con el fin de mejorar la educacin. (Agent-based architectura for
context-aware and personalized event recommendation: Ana Rgia de M. Neves,
lvaro Marcos G. Carvalho, Clia G. Ralha, 2014).
El aporte del proyecto es rbFeatures, un lenguaje de programacin orientada a la
caracterstica implementado sobre el lenguaje de programacin dinmico Ruby. Con
rbFeatures, los programadores utilizan las lneas de productos de software, variantes
y caractersticas como entidades de primera clase. Esto permite que varios runtime
reflexin y modificacin de las capacidades, incluyendo la extensin de la lnea de
productos con nuevas caractersticas y la provisin de mltiples variantes.
(rbFeatures: Feature-oriented programming with Ruby: Sebastian Gnthe y Sagar
Sunkle, 2012.
Otro aporte de agente orientado a programacin, es un modelo de programacin y
plataforma de hormign llamado JaCaMo que integra tecnologas en todas las
direcciones de investigacin y resultados importantes, con el paradigma combinado,
que preferimos llamar '' programacin orientada a multi-agente'', el potencial de
sistemas multi-agentes como un paradigma de programacin. JaCaMo se basa en tres
plataformas existentes: Jason para la programacin de agentes autnomos, Moise
para organizaciones agente programacin y CArtAgO para programar los ambientes
compartidos. (Multi-agent oriented programming with JaCaMo: Olivier Boissier,
Rafael H. Bordini, Jomi F. Hbner, Alessandro Ricci, Andrea Santi, 2013).

11

1.5.1 Objetivo General


Mejorar el rendimiento del desarrollo de las aplicaciones web a travs de una
tcnica de programacin.
1.5.2. Objetivo Especifico
-

Disear un modelo que contemplen las capas entidad como representacin de las tablas a

nivel de objetos.
Proponer una tcnica de programacin
Reducir el tiempo del desarrollo de aplicacin web.

1.8.

Propsito Del Estudio

1.9.

Organizacin de la Tesis

BIBLIOGRAFIA

12
[1]A.Regia de M. Nieves, A. Carvalho, C. Ralha Agent-based architecture for contextaware and personalized eventRecommendation, Expert Systems with Applications
41(2014) 563-573.
[2] A. Ricci, M. Viroli, G. Piancastelli simpA: An agent-oriented approach for
programming concurrent applications on top of Java Science of Computer
Programming 76 (2011) 37-62.
[3]D.Krzywicki, F. Byrski, M. Kisiel Computing agents for decision support
systems, Future Generation Computer Systems 37 (2014) 390-400.
[4] D. Talaba, C. Antonya, "Design evaluation and modification of mechanical systems"
in virtual environments, Virtual Reality 11 (4) (2012) 275285.
[5] D. Weidlich, L. Cser, T. Polzin, D. Cristiano, H. Zickner, "Virtual reality approaches
for immersive design", in Annals of the CIRP 56 (1) (2010) 139142.
[6] H. Jordan, G. Botterweck, J. Noll, A. Butterfield A feature model of actor, agent,
functional, object, and procedural programming languages Science of Computer
Programming (2014) 167-6423.
[7] I. Garcia, Magarin A collection of method fragments automated with model
transformations in agent-oriented modeling, Engineering Applications of Artificial
Intelligence 26 (2013) 1131-1148.
[8] I. Garcia, C. Gutierrez Agent-oriented modeling and development of a system for
crisis management, Expert Systems with Applications 40 (2013) 6580-6592.
[9] I. Freitas, P. da Mota, P. Oleary, E. Santana, S. Romero Software product line
scoping and requirements engineering in a small and medium-sized enterprise:An
industrial case study, The Journal of Systems and Software 88 (2014) 189-206.
[10] O. Boissier, R.Bordini, J. Hubner, A. Ricci, A. Santi Multi-agent oriented
programming with JaCoMo, Science of Computer Programming 78 (2013) 747-761.
[11] S. Gunther, S. Sunkle. RBFeatures: Feature-oriented programming with Ruby,
Science of Computer Programming 77(2012) 152-173.