Desde hace diez años se vienen introduciendo constantes mejoras en los teléfonos llamados inteligentes, hasta superar el hecho de ser sólo celulares al integrar poder de cómputo y comunicación en un equipo que entra en un bolsillo. Otros ejemplos son las computadoras embebidas incorporadas en los SmartTV que permiten el desarrollo de la televisión interactiva; en los automóviles que proveen seguridad activa y pasiva; en los artefactos del hogar, y en los edificios inteligentes. A fin de 2012, según estimaciones del Pronóstico Global de Tráfico Móvil de Datos de Cisco, habrá más dispositivos inteligentes que personas [1]. Morgan Stanley, en un informe de 2009 llamado “The Mobile Internet Report ”, indica “… La Internet móvil está aumentando más rápido que lo que lo hizo Internet de escritorio y creemos que en cinco años, más usuarios podrán conectarse a Internet a través de dispositivos móviles que desde computadoras de escritorio. Los puntos clave para esto son:
Para que los servicios sean autónomos y no mantengan estado se requiere que los mensajes tengan la suficiente información para que los servicios puedan procesarlos de forma correcta. Se ha expandido el concepto de autonomía hasta componer capas de servicios que funcionan como aplicaciones que pueden auto-gobernarse, este nivel de autonomía puede cruzar los límites de los sistemas. Se ha mantenido el uso de estándares abiertos para el intercambio de mensajes, con lo cual se soporta una de las características principales de SOA y se permite la comunicación entre servicios de diferentes plataformas, y a la vez que se limita el rol de la tecnología propietaria para el almacenamiento e implementación de la lógica encapsulada por el servicio. Lo que permite que exista una variedad de plataformas para el desarrollo e integración de aplicaciones.
Esta diversidad de sistemas operativos y plataformas de desarrollo existentes permiten mantener un alto grado de competencia en el mercado, lo cual es bueno para los consumidores, sin embargo es de gran impacto para las personas y empresas que dedican sus esfuerzos a la implementación de aplicaciones y servicios para dispositivos móviles. Para estos últimos, es muy compleja la tarea de escoger una plataforma sobre la cual puedan realizar el desarrollo de un producto software obteniendo una máxima productividad en la implementación, adaptándolo cada vez a las necesidades cambiantes de los clientes. Ante el conjunto de situaciones presentado anteriormente, se plantea el siguiente problema:
La mayor dificultad que empíricamente se observa en los ambientes colaborativos del DESITEL, consiste en que cada usuario (tesista, empleado, docente, estudiante y otros) desarrollan los programas y sistemas a su manera. Declaran las variables de manera inadecuada. Las técnicas de programación también se usan de forma irregular y desordenada. No se explican razones, ni detalles de indentación, generando una anarquía y confusión en los códigos fuente lo cual impide la comprensión para los que desean utilizarlos posteriormente para procesos de reingeniería y mantenimiento. Esto se agrava debido a la falta de uso de normas, estándares o bitácoras en dichos procesos, impidiendo su secuencialidad.
1993 los autores presentan un sistema de apoyo ala toma de decisiones, que incluye la capacidad de aprendizaje inductivo, para la gerencia de model os, basado en un ambiente de simulacio[r]
P.A.M.E.L.A. (Phase Array Monitoring for Enhanced Life Assessment) es la denominación utilizada para definir una serie de equipos electrónicos para Sistemas SHM desarrollados por AERNOVA y los Grupos de Diseño Electrónico de las universidades UPV/EHU y UPM. Los dispositivos P.A.M.E.L.A. originalmente no cuentan con tecnología Wi-Fi, por lo que incorporan un módulo hardware independiente que se encarga de las comunicaciones inalámbricas, a los que se les denomina Nodos. Estos Nodos poseen un Sistema Operativo propio y todo lo necesario para administrar y organizar la red Mallada Wi-Fi. De esta manera se obtiene una red mallada inalámbrica compuesta por Nodos que interconectan los Sistemas SHM y que se encargan de transmitir los datos a los equipos que procesan los resultados adquiridos por P.A.M.E.L.A. Los Nodos son dispositivos empotrados que llevan instalados un firmware basado en una distribución de Linux para Nodos (o Routers), llamado Openwrt. Que para disponer de una red mallada necesitan de un protocolo orientado a este tipo de redes. Entre las opciones de protocolo más destacadas se puede mencionar: DSDV (Destination Sequenced Distance Vector), OLSR (Optimized Link State Routing), B.A.T.M.A.N-Adv (Better Approach To Mobile Adhoc Networking Advance), BMX (una versión de B.A.T.M.A.N-Adv), AODV (Ad hoc On-Demand Distance Vector) y el DSR (Dynamic Source Routing). Además de la existencia de protocolos orientados a las redes malladas, también hay organizaciones que se dedican a desarrollar firmware que los utilizan, como es el caso del firmware llamado Nightwing que utiliza BMX, Freifunk que utiliza OLSR o Potato Mesh que utiliza B.A.T.M.A.N-Adv. La ventaja de estos tres firmwares mencionados es que las agrupaciones que las desarrollan proporcionan las imágenes precompiladas del sistema,listas para cargarlas en distintos modelos de Nodos. En este proyecto se han instalado las imágenes en los Nodos y se han probado los protocolos BMX, OLSR y B.A.T.M.A.N.-Adv. Concluyendo que la red gestionada por B.A.T.M.A.N.-Adv era la que mejor rendimiento obtenía en cuanto a estabilidad y ancho de banda.
Las aplicaciones nacen de alguna necesidad concreta de los usuarios, y se usan para facilitar o permitir la ejecución de ciertas tareas en las que un analista o un programador han detectado una cierta necesidad. Pero las aplicaciones también pueden responder a necesidades lúdicas, además de laborales (todos los juegos, por ejemplo, son considerados aplicaciones). Se suele decir que para cada problema hay una solución, y en informática, para cada problema hay una aplicación. Naturalmente, el campo de las aplicaciones es tan extenso, y las funciones tan dispares, que se han creado numerosas clasificaciones, según varios criterios. Así, por ejemplo, dependiendo del uso que se le vaya a dar, podemos tener aplicaciones profesionales o personales. También podemos hablar de aplicaciones para Windows, Linux, Android, Apple, PC, móvil, según el sistema operativo o la plataforma que vayamos a usar. Según su finalidad, pueden ser de entretenimiento, de negocios, empresariales, de sonido, gráficas, de edición, web, didácticas... e incluso según la rama de las ciencias en el que se usen podemos decir que hay aplicaciones de ingeniería, de telecomunicaciones, matemáticas... y un largo etcétera.
En la mayoría de los casos, la constante de tiempo depende del lugar donde se emplace el sistema. En la norma se establecen categorías que van desde ambientes benignos en tierra con temperatura y humedad controladas, pasando por ambientes marinos y llegando hasta ambientes aéreos o inclusive dentro de misiles. En este caso particular, en todos los casos se utilizó el parámetro Gm (Ground Mobile, Móvil en tierra) ya que si bien puede ser usado dentro de un laboratorio en condiciones estáticas se optó por el caso de uso más típico que es sobre rodados. No se utilizó la situación aérea ya que se consideró como un caso extremo y no reflejaría el valor medio que puede tener la vida media del producto. No obstante, dado que el factor móvil en tierra es aproximadamente la mitad que el valor del factor dentro de, por ejemplo, un avión de carga no tripulado, puede decirse como estimación que la vida útil del producto sería la mitad en el aire que en la tierra. Por otro lado, si el kit de desarrollo fuese usado dentro de una embarcación puede decirse como aproximación que su MTBF será aproximadamente igual al del caso terrestre móvil.
Si la capa CORE no era objeto habitual de desarrollo, la capa HAL lo es mucho menos. La capa HAL tiene en cuenta los elementos hardware de la placa utilizada —micro y periféricos externos al micro—, y debe existir una clase derivada de la clase HAL que implemente la placa concreta a utilizar. Así, por ejemplo, si se utiliza la placa STM32F429-DISCO, la clase HAL a utilizar es STM32F4HAL, con los driver oportunos del LCD, del DMA gráfico — DMA2D— y de la pantalla táctil de la placa disco, que suministra TouchGFX, ya que es una de las placas que soporta. En la Ilustración 1.4, aparecen, de forma esquemática, las capas HAL disponibles de los micros soportados para su utilización, bajo el título SELECT BOARD PACKAGE, mientras que los driver de dichas capas aparecen bajo el título SELECT DRIVER PACKAGE—. Por tanto, la capa HAL, para una placa concreta, está constituida por la clase HAL para el micro de esa placa, más los drivers de los periféricos externos de la placa que TouchGFX va a controlar. Si no se utiliza un micro soportado, se ha de desarrollar esta clase derivada, dando cuerpo a varias funciones de la clase HAL —como son disableInterrupts, enableInterrupts. configureInterrupts, enableLCDControllerInterrupt, getTFTFrameBuffer y setTFTFrameBuffer—. No se va a entrar en mayor descripción de la creación de un nuevo tipo de capa HAL, ya que no ha sido necesario realizarlo —debido a que la placa utilizada está soportada por TouchGFX—y la su explicación queda fuera de la pretensión de este documento. Si se dispone de la clase HAL para el micro utilizado, pero no se dispone de los drivers o si se utiliza una placa soportada, pero se modifica algún periférico, como pueda ser el display, se ha de crear el código de dicho driver. En el caso de este proyecto se ha utilizado la placa STM32F429-DISCO, que está soportada, pero se instala en ella un nuevo display, con lo que va ha ser necesario suministrar la nueva configuración del display y el driver de la pantalla táctil que viene con él —esto será descrito en el capítulo 3—.
La importancia de contar con una metodología de desarrollo rápido de aplicaciones en conjunto con técnicas dirigidas por modelos que brinde las pautas para el desarrollo de sistemas inci[r]
Otra de las actividades implicadas fue el estudio de los distintos lenguajes y nuevas tecnologías para el desarrollo de aplicaciones móviles. Si bien existen muchos lenguajes para el desarrollo de éstas, Kotlin resultó ser un lenguaje por sobre todo conciso, cuya curva de aprendizaje resultó ser bastante más ligera que de otro lenguaje de programación orientado a objeto, contando con la ventaja que durante el cursado de la carrera se obtuvo una base en el lenguaje Java. En cuando al IDE utilizado para el desarrollo, Android Studio resultó ser bastante amigable para el aprendizaje de un nuevo lenguaje debido a su editor de código inteligente, permitió que el trabajo sea más rápido y productivo ya que este proporciona o sugiere la terminación de código no sólo para Kotlin, que es el utilizado en esta oportunidad, sino también para otros lenguajes como Java y C / C ++. En la versión utilizada de Android Studio, resalta la facilidad con que se puede convertir código desde Java hacia Kotlin. Sólo es necesario pegar el código en Java y el IDE automáticamente lo detecta y pregunta al desarrollador si desea convertirlo a Kotlin. La compatibilidad Kotlin/Java también ayudó a la hora de utilizar librerías, ya que las desarrolladas para Java también pueden ser utilizadas en Kotlin. En este proyecto por ejemplo se utilizó la librería Volley para el envío de solicitudes HTTP.
Una primera área definida como de interés pa- ra el desarrollo de aplicaciones de ensayo fue la de evaluaciones automatizadas. Esta elección tie- ne que ver con la revalorización de la técnica de multiple choice en contextos recientes de proce- sos de enseñanza llevados a cabo en el Área de Sistemas de la FAEA. Las primeras experiencias de desarrollo han sido, entonces, dirigidas a pro- veer herramientas de evaluación automática. Es- tas herramientas son visualizadas como los pri- meros componentes de lo que constituirá, en el espíritu del proyecto, una plataforma general de ayuda a la práctica docente.
En el diseño de cualquier aplicación como por ejemplo un videojuego,no es posible abordarlo por completo. El proceso de diseño de una aplicación suele ser iterativo y se realiza en diferentes etapas de forma que se vaya refinando con el tiempo. Conseguir un diseño perfecto a la primera es muy difícil de conseguir. El diseño de aplicaciones es complejo y la más importante y que más impacto tiene, no sólo sobre el producto final, sino también sobre su vida futura. Ya que es en el diseño en donde se definen las estructuras y entidades que se van a encargar de resolver el problema planteado. Como de bien se definan estas estructuras y entidades influirá en gran medida , en el éxito o fracaso del proyecto y en la viabilidad de su mantenimiento.
- Kang y otros [15] proponen un framework deno- minado eGovFrame (e-Government Standard Frame- work). El mismo utiliza un conjunto de herramientas standarizadas de software para desarrollo y ejecuci´on de aplicaciones de gobierno electr´onico. El objetivo es mejorar la eficiencia en las inversiones tecnol´ogicas y la calidad de los servicios de gobierno electr´onico.
e Aplicaciones a muy elevada energía El desarrollo en los últimos años de sistemas láser capaces de concentrar sobre una pequeña región de un material elevadísimas densidades de energía [r]
Se presenta una línea de investigación para el desarrollo y utilización de algoritmos y software específico en aplicaciones de control automático de sistemas que aborda dos aspectos. Por un lado, la metodología conocida como loop- shaping automático para el diseño de controladores robustos mediante la teoría de realimentación cuantitativa (QFT). Este procedimiento involucra un proceso de optimización con restricciones, y requiere de un análisis de las técnicas actuales, un estudio comparativo y la evaluación y propuesta de enfoques alternativos. Se apunta al desarrollo de algoritmos y software para automatizar el proceso de síntesis de los controladores, considerando que no existen resultados o productos concluyentes en este sentido. Por otro lado, se desarrolla una propuesta pedagógica para introducir nociones avanzadas de incertidumbre y robustez en los cursos de control clásico para ingeniería. La implementación se hace a través de una experiencia de laboratorio y utilizando un software de CAD interactivo y de libre disponibilidad. Se pretende incorporar conceptos relativamente complejos de manera intuitiva articulando los fundamentos del control clásico y robusto, explotando las habilidades propias del sujeto educativo actual y fomentando la utilización de
En las últimas décadas, como se sabe, se han producido grandes cambios en el entorno de las empresas y las organizaciones, como consecuencia de los avances producidos por las nuevas tecnologías de la producción, de la información y de las comunicaciones. En este nuevo entorno, tan complejo y cambiante, para poder tomar decisiones de una manera eficaz, es necesario disponer, en todo momento y de una forma rápida de información suficiente, actualizada y oportuna. Esto sólo es posible, hoy en día, utilizando las computadoras y los medios que proporciona la tecnología de la información. Además, gracias a las investigaciones realizadas en la inteligencia artificial, con el desarrollo de los sistemas basados en el conocimiento y los sistemas expertos, también se han producido grandes avances en el tratamiento del conocimiento, factor fundamental para la toma de decisiones.
nodos. Una consideración fundamental es disminuir la potencia irradiada utilizando redes ad hoc y métodos de comunicación multisalto; lograr un balance óptimo entre los procesos de comunicación y de cálculo; diseñar de sistemas de radio mucho más eficientes, que cumplan los requerimientos de las WSN; y por último desarrollar protocolos de ruteo y algoritmos más eficientes considerando las características de las WSN. Las WSNs han sido destinatarias de numerosos trabajos en lo académico e industrial, fundamentalmente por el amplio rango aplicaciones para las cuales se las considera apropiadas [109]. Los trabajos de investigación sobre WSNs se han enfocado, desde sus orígenes, con la premisa que los nodos necesariamente utilizan una fuente portátil y limitada de energía. Este es el insumo principal por lo que la mayoría de los trabajos han apuntado al desarrollo de protocolos que maximicen la eficiencia energética, mejorando la vida útil de las mismas [110].
formal de activos en el que se identifiquen los responsables de cada uno de ellos. Lo que genera en determinado momento confusión cuando se requieren respuestas al momento de llevar a cabo actualizaciones o implementaciones de soluciones que puedan influir en el desempeño de los sistemas y aplicaciones existentes. El SGSI permitiría asignar formalmente los responsables de cada activo, así como las responsabilidades que se asumen con la asignación tanto en la operación y administración, como en lo pertinente a la seguridad del activo. De esta manera cada individuo al interior del departamento de informática sabrá a quien dirigir o encausar los requerimientos técnicos a que haya lugar.