miércoles, 24 de octubre de 2012


Arquitectura de software
La arquitectura de un software puede entenderse como aquella estructura del programa que cohesiona las funcionalidades más críticas y relevantes (necesarias para el sistema), y que sirve de soporte al resto de funcionalidades finales (necesarias para el usuario). Su especificación es ampliamente aceptada como el problema central de diseño de un sistema de software complejo. Uno de los principios de las metodologías modernas de desarrollo de software es priorizar la definición, el diseño, la implementación y la evaluación de la arquitectura del software. La esencia de este principio es dedicar los mínimos esfuerzos a implementar un prototipo estable de arquitectura que garantice la viabilidad del proyecto en las fechas más tempranas posibles. Este artículo reflexiona sobre la importancia de priorizar la arquitectura tanto para el producto de software como para el proceso de desarrollo, y sobre los beneficios potenciales que esta práctica puede reportar.

El software tradicional, como único proceso ejecutándose en un único ordenador, no supone arquitecturas complejas ni grandes riesgos. Sin embargo, los sistemas actuales aprovechan componentes comerciales, código abierto, sistemas distribuidos, nuevos y diversos lenguajes de programación, entornos de alojamiento (hosting) y de ejecución remota, y otras dependencias externas, que convierten a la arquitectura de un sistema en su producto técnico más crítico. Alcanzar una arquitectura estable que dé garantías sobre la viabilidad del proyecto, se considera el punto de transición entre lo que se suele denominar la fase de ingeniería

La arquitectura de un software puede entenderse como aquella estructura del programa que cohesiona las funcionalidades más críticas y relevantes (necesarias para el sistema), y que sirve de soporte al resto de funcionalidades finales (necesarias para el usuario). Su especificación es ampliamente aceptada como el problema central de diseño de un sistema de software complejo. Uno de los principios de las metodologías modernas de desarrollo de software es priorizar la definición, el diseño, la implementación y la evaluación de la arquitectura del software. La esencia de este principio es dedicar los mínimos esfuerzos a implementar un prototipo estable de arquitectura que garantice la viabilidad del proyecto en las fechas más tempranas posibles.

Arquitectura cliente-servidor
El término cliente/servidor es originalmente aplicado a la arquitectura de software que describe el procesamiento entre dos o más programas: una aplicación y un servicio soportante.
IBM define al modelo Cliente/Servidor. "Es la tecnología que proporciona al usuario final el acceso transparente a las aplicaciones, datos, servicios de cómputo o cualquier otro recurso del grupo de trabajo y/o, a través de la organización, en múltiples plataformas. El modelo soporta un medio ambiente distribuido en el cual los requerimientos de servicio hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo realizado por otros computadores llamados servidores".
"Los elementos principales de la arquitectura cliente servidor son justamente el elemento llamado cliente y el otro elemento llamado servidor". Por ejemplo dentro de un ambiente multimedia, el elemento cliente seria el dispositivo que puede observar el vídeo, cuadros y texto, o reproduce el audio distribuido por el elemento servidor.
Por otro lado el cliente también puede ser una computadora personal o una televisión inteligente que posea la capacidad de entender datos digitales. Dentro de este caso el elemento servidor es el depositario del vídeo digital, audio, fotografías digitales y texto y los distribuye bajo demanda de ser una maquina que cuenta con la capacidad de almacenar los datos y ejecutar todo el software que brinda éstos al cliente.
Arquitectura Blackboard
Los sistemas de información distribuida, como la World Wide Web, han demostrado la simplicidad y versatilidad con la que los sistemas de hipermedia permiten recuperar eficazmente grandes volúmenes de información. En relación a la integración de documentos cuyo formato no es HTML cuyo contenido no debe alterarse, se han propuesto los sistemas abiertos de hipermedia para dar solución a tales problemas de interoperabilidad. El propósito de éste trabajo, es describir la construcción de un sistema abierto de hipermedia con fácil integración a la Web. El sistema consiste de un número reducido de extensiones a un navegador y de un servidor de enlaces con arquitectura reconfigurable. Entre las contribuciones de éste trabajo podemos resaltar que el sistema permite: Extender el modelo simple de enlace de la Web con otros modelos de enlaces como el específico, genérico, de avance u otros definidos por el usuario. Extender el modelo de proceso de la Web con una arquitectura reconfigurable que permite no solo introducir nuevos servidores de enlace sino también organizarlos con diferentes estilos como el conducto-filtro o el de pizarra. Hacer el seguimiento de documentos móviles, como aquellos involucrados en aplicaciones workflows, mediante el modelo de enlace de avance. Demostrar la superioridad expresiva de la arquitectura de pizarra sobre la conducto-filtro. El sistema se ha usado exitosamente para recuperar información académica de la Sección de Computación del Cinvestav al introducir nuevos enlaces sin alterar el contenido de los documentos Web, un problema bastante común pero en general difícil de resolver cuando no se cuenta con permisos de acceso para modificar los documentos.
Arquitectura de capas
La arquitectura basada en capas se enfoca en la distribución de roles y responsabilidades de forma jerárquica proveyendo una forma muy efectiva de separación de responsabilidades. El rol indica el modo y tipo de interacción con otras capas, y la responsabilidad indica la funcionalidad que está siendo desarrollada.
El estilo de arquitectura basado en capas se identifica por las siguientes características:
• Describe la descomposición de servicios de forma que la mayoría de la interacción ocurre solamente entre capas vecinas.
• Las capas de una aplicación pueden residir en la misma maquina física (misma capa) o puede estar distribuido sobre diferentes computadores (n-capas).
• Los componentes de cada capa se comunican con otros componentes en otras capas a través de interfaces muy bien definidas.
• Este modelo ha sido descrito como una “pirámide invertida de re-uso” donde cada capa agrega responsabilidad y abstracción a la capa directamente sobre ella.
Principios fundamentales
Los principios comunes que se aplican cuando se diseña para usar este estilo de arquitectura incluyen:
• Abstracción. La arquitectura basada en capas abstrae la vista del modelo como un todo mientras que provee suficiente detalle para entender las relaciones entre capas.
• Encapsulamiento. El diseño no hace asunciones acerca de tipos de datos, métodos, propiedades o implementación.
• Funcionalidad claramente definida. El diseño claramente define la separación entre la funcionalidad de cada capa. Capas superiores como la capa de presentación envía comandos a las capas inferiores como la capa de negocios y la capa de datos y los datos fluyen hacia y desde las capas en cualquier sentido.
• Alta cohesion. Cada capa contiene funcionalidad directamente relacionas con la tarea de dicha capa.
• Reutilizable. Las capas inferiores no tienen ninguna dependencia con las capas superiores, permitiéndoles ser reutilizables en otros escenarios.
• Desacople. La comunicacion entre las capas está basada en la abstracción lo que provee un desacople entre las capas.
Beneficios
Los principales beneficios del estilo de arquitectura basado en capas son:
• Abstracción. Las capas permiten cambios que se realicen en un nivel abstracto. Usted puede incrementar o disminuir el nivel de abstracción usado en cada capa de la “pila” jerárquica.
• Aislamiento. El estilo de arquitectura de capas permite asilar los cambios en tecnologías a ciertas capas para reducir el impacto en el sistema total.
• Rendimiento. Distribuir las capas entre múltiples sistemas (físicos) puede incrementar la escalabilidad, la tolerancia a fallos y el rendimiento.
• Mejoras en Pruebas. La capacidad de realizar pruebas se beneficia de tener una interfaces bien definidas para cada capa así como de la habilidad para cambiar a diferentes implementaciones de las interfaces de cada capa.
• Independencia. El estilo de arquitectura basado en capas el requerimiento de considerar el hardware y los problemas de instalación así como las dependencias de interfaces externas.
Los siguientes son algunas variaciones del estilo de arquitectura basado en capas:
• Capas estrictas (Strict layering). Cada capa solo puede invocar a la capa directamente debajo de a ella.
• Saltos de Capas (Layer skipping). Las capas pueden invocar otras capas más profundas que las que están directamente debajo de ellas. Esto puede incrementar el rendimiento pero impacta la portabilidad.
• Capa de Caja Negra (Black-box layering). Los limites de las capas y sus dependencias esta definidas de forma estricta usando interfaces, lo que soporta extensiones en run-time, intercepción y mejora la capacidad de realiza pruebas.
• Capa de Caja Blanca (White-box layering). Clases que colaboran entre los límites de las capas y están altamente acopladas.
Arquitectura de N-Capas / 3-Capas
Este estilo de despliegue arquitectónico describe la separación de la funcionalidad en segmentos separados de forma muy parecida al estilo de capas, pero en el cual cada segmento está localizado en un computador físicamente separado. Este estilo ha evolucionado desde la aproximación basada en componentes generalmente usando métodos específicos de comunicación asociados a una plataforma en vez de la aproximación basada en mensajes.
Arquitectura orientada a servicios
La arquitectura orientada a servicios de cliente (en inglés Service Oriented Architecture), es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio.
Permite la creación de sistemas de información altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma bien definida de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros.
SOA define las siguientes capas de software:
Aplicaciones básicas - Sistemas desarrollados bajo cualquier arquitectura o tecnología, geográficamente dispersos y bajo cualquier figura de propiedad;
De exposición de funcionalidades - Donde las funcionalidades de la capa aplicativa son expuestas en forma de servicios (generalmente como servicios web);
De integración de servicios - Facilitan el intercambio de datos entre elementos de la capa aplicativa orientada a procesos empresariales internos o en colaboración;
De composición de procesos - Que define el proceso en términos del negocio y sus necesidades, y que varía en función del negocio;
De entrega - donde los servicios son desplegados a los usuarios finales.

Arquitectura monolítica
Arquitectura Monolítica. Es un modelo en el cual el sistema operativo y todos los servicios fundamentales residen en un monitor monolítico que se accede a través de un mecanismo de llamada al núcleo.
Para corregir algunos de los problemas de la configuración "ejecutivo en tiempo real", algunos vendedores de RTOS han adoptado una arquitectura monolítica. En este modelo, el sistema operativo y todos los servicios fundamentales, tales como file system, residen en un monitor monolítico que se accede a través de un mecanismo de llamada al núcleo.
Las llamadas al núcleo hacen la transición del modo aplicación (o usuario) al modo supervisor. Se proporciona protección de modo que sólo se puede acceder a recursos del núcleo en modo supervisor; las aplicaciones se ponen en ejecución generalmente como procesos que tienen espacios de direccionamiento separados con protección entre ellos. 
Características
•Es un intento de paliar los problemas de la arquitectura plana.
•Su aportación estriba en que los procesos de usuario ejecutan en espacios de direccionamiento diferentes al del sistema operativo.
•Las implementaciones de 
UNIX han respondido tradicionalmente este diseño.
•Se aislan del sistema de los errores de los procesos de usuario, pero nuevos dispositivos aparecen en el mercado continuamente y es preciso escribir manejadores para soportarlos. De nuevo el sistema crece y la probabilidad del fallo aumenta.
•El programa de usuario lleva a cabo las llamadas al sistema mediante interrupciones software o traps.
•Sólo en modo supervisor se permite al procesador ejecutar instrucciones privilegiadas. Accesos a las posiciones de memoria asignadas a los adaptadores de dispositivo .
•Copia de datos entre espacios de direccionamiento diferentes.


miércoles, 17 de octubre de 2012

Sentencias de Lenguaje de Manipulación de Datos (DML)


SELECT
Utilizado para consultar registros de la base de datos que satisfagan un  criterio determinado.

INSERT
Utilizado para cargar lotes de datos en la base de datos en una única operación.

DELETE
Utilizado para modificar los valores de los campos y registros especificados.

UPDATE Utilizado para eliminar registros de una tabla de una base de datos.

SELECT
La sentencia SELECT nos permite consultar los datos almacenados en una tabla de la base de datos.
Ejemplo:
SELECT "nombre_ columna" FROM "nombre_ tabla"

INSERT
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
Ejemplo:
Forma básica
INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...''])
Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el valor
por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las
restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila
y se devuelve un error.

DELETE
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla,
Forma básica
DELETE FROM ''tabla'' WHERE ''columna1'' = ''valor1''

UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.
Forma básica
UPDATE ''tabla''
SET ''columna1'' = ''valor1'' ,''columna2'' = ''valor2'',...WHERE ''columnaN = ''valorN''

viernes, 21 de septiembre de 2012

ventajas y desventajas de usar hojas de calculo

Las hojas de calculo como exel nos han facilitado los calculos de diferentes operaciones, asi como la utilizacion de tablas y otros comoponentes. 
Algunas ventajas que tenemos en diferentes aspectoas son:

Apuntes Interactivos 

Con un poco de habilidad, se puede convertir una hoja en un documento bien maquetado y claro de entender. La inserción de imágenes, hipervínculos y el uso de diferente fuentes en los textos permiten hacer más atractivo su contenido. Sin embargo, la principal utilidad de esta herramienta es su capacidad de ordenar datos en tablas, efectuar cálculos sobre ellos y confeccionar gráficos.
Todos estos elementos se pueden unir en lo que llamaremos “apuntes interactivos”, que consisten en breves explicaciones teóricas que se complementan con celdas de cálculo, esquemas y gráficos en los que se pueden cambiar los datos y activar los cálculos de forma interactiva.

Ventajas didácticas

  • Constituyen una buena forma de explicar la teoría.
  • Permiten realizar investigaciones previas al aprendizaje de conceptos.
  • El alumnado puede confeccionarlos como resumen de un tema.

Inconvenientes

  • Pueden resultar pesados de seguir si sobrepasan una hoja
  • Requieren mucha preparación previa

Algoritmos

Este tipo de modelos constituye la aplicación ideal para una Hoja de Cálculo. Son documentos que dan vida a los distintos algoritmos estudiados en clase. Son muy intuitivos los de tipo numérico y menos los algebraicos, aunque con ayuda también se pueden abordar. 

Ventajas didácticas

  • Permiten comprobar los cálculos realizados manualmente.
  • Dan posibilidades de investigación mediante el cambio de parámetros.
  • Son muy rápidos, lo que los hace útiles para cuestiones en las que lo importante es el planteo y no los cálculos.
  • Los alumnos y alumnas que se atrevan a construirlos aprenderán mucho más sobre el tema objeto del algoritmo.

Inconvenientes

  • Algunos son difíciles de construir, generalmente el alumnado usa los que ya están construidos, con lo que no profundizan lo necesario en su estructura.
  • Los algoritmos suelen estar alejados de las realidades próximas del alumnado.

Aritmética mercantil



Las hojas de cálculo se inventaron para este tipo de cálculos, por lo que es muy fácil preparar modelos para facturas, recibos, cuentas domésticas, presupuestos, cálculo de intereses, etc.
 

Ventajas didácticas

  • Libera de cálculos engorrosos y oscuros en los temas de préstamos o intereses.
  • Permite simular cuestiones mercantiles o financieras mediante el cambio de parámetros: Tipos de interés, número de plazos, etc.
  • Es un tema cercano a la realidad del alumnado, pero en realidad desconocido, por lo que este tipo de modelos puede hacerles acceder a temas que preocupan a su familia.

Calculadoras especializadas

Son herramientas que contienen todas las operaciones posibles entre varios objetos. Resumen todo un tema en una página y permiten cálculos instantáneos de operaciones complicadas. Pueden estar construidas con botones para imitar las reales.

Ventajas didácticas

  • Permiten liberar al alumnado de los cálculos largos, orientando más bien los ejercicios a la toma de decisiones y análisis.
  • Suelen ser modelos sencillos y fáciles que se pueden confeccionar como parte del aprendizaje de las cuestiones. Sin embargo, algunas son muy complicadas y no merece la pena que los alumnos o alumnas intenten construirlas.
  • Con ellas se pueden resolver problemas y cuestiones mediante métodos muy distintos a los usados con los instrumentos tradicionales.

Inconvenientes

  • Algunas de ellas tienen tantos resultados (véase calcvec.ods) que pueden resultar complejas.
  • Actualmente no se dispone de mucho tiempo para confeccionar estos modelos, sin afectar el desarrollo de los temas del currículo.
  • Un mal uso de estas calculadoras puede disminuir su eficacia, pues se puede promover más la admiración por su rapidez que el uso de métodos más creativos.

 

Comprobadores

Son paneles de igualdades o propiedades cuyo cumplimiento se verifica mediante ejemplos generados de forma aleatoria o elegidos por el alumnado o el profesorado. Puede resultar interesante su confección por los alumnos y alumnas, sobre todo su uso para descubrir propiedades.

Ventajas didácticas

  • Sustituyen a la demostración en casos complicados.
  • Facilitan la investigación de casos y su generalización.
  • Obligan a usar el lenguaje algebraico propio de los ordenadores.

Inconvenientes

  • Pueden eliminar en el alumnado la necesidad de demostrarlo todo en Matemáticas.
  • La forma de escribir las fórmulas en la Hoja puede causar confusión.

Conversores

Llamamos así a aquellos modelos cuyo objetivo es convertir unas unidades o magnitudes en otras relacionadas con ellas. En los ejemplos que siguen podemos ver la variedad de trabajos que permiten y su uso en cualquier asignatura.

Ventajas didácticas

  • No requieren muchos conocimientos.
  • Son adecuados para comenzar el uso de una Hoja de Cálculo.
  • Se pueden usar en cualquier nivel educativo. Basta adaptar su dificultad.
  • Acostumbran al orden y al diseño estético.
  • Sirven de resumen de un capítulo o una teoría.
  • Pueden integrarse en unos apuntes

Inconvenientes

  • Las tareas desarrolladas pueden hacerse rutinarias, por lo que no se aconseja dedicar más de una sesión a estos trabajos, o bien usarlos como instrumentos de atención a la diversidad.
  • Predisponen al uso masivo de fórmulas en detrimento del aprendizaje de la resolución de problemas.

    Correctores

    Los modelos correctores se limitan a responder Bien o Mal ante una operación efectuada en ellos.
    Se pueden incluir ayudas o sugerencias, pero lo normal es usar una respuesta tipo SI/NO.
    Cualquier tarea rutinaria con números o símbolos algebraicos permite construir un corrector.

    Ventajas didácticas

  • Obligan al alumnado a persistir en el trabajo hasta lograr la solución correcta, pues dan la corrección, pero no la solución ni el camino para encontrarla.
  • Permiten trabajos por grupos de libre discusión, al poder contar con la autoridad (relativa) del ordenador.
  • El uso de estos modelos libera al profesorado de una atención excesiva en los trabajos por grupos, debido a que los requerimientos de los alumnos y alumnas suelen ser menores. Son útiles en grupos muy diversos.
  • Acostumbran al alumnado a "la obra bien hecha".

Inconvenientes

Las tareas desarrolladas pueden hacerse rutinarias, por lo que no se aconseja dedicar más de una sesión a estos trabajos, o bien usarlos como instrumentos de atención a la diversidad.



Esquemas de cálculos estadísticos

La Estadística es odiada cordialmente en parte por la pesadez de sus cálculos. Disponer de un panel de cálculos adecuado, una caja de herramientas, unos apuntes interactivos en Hoja de Cálculo, permite poder insistir en los conceptos más que en los cálculos. El uso de estos modelos puede organizarse de forma que su confección sea simultánea con su uso y el aprendizaje de los temas. Por ejemplo, para estudiar los datos de tipo cuantitativo se pueden ir construyendo las tablas de frecuencias absolutas y relativas de forma simultánea a la explicación de los conceptos. Hemos experimentado con éxito esta modalidad en grupos con pocos alumnos y alto grado de diversidad.

Ventajas didácticas

  • La mayor ventaja es que estos modelos constituyen tablas "vivas" de datos, en las que cualquier pequeño cambio se ve reflejado inmediatamente en las tablas, cálculos y gráficos, abriendo así un camino muy interesante a las investigaciones de tipo estadístico.
  • Son muy atractivos visualmente, pues se puede incluso reproducir cualquier tabla de datos de los libros o la prensa conservando la estética y dotándolas de cálculo automático.
  • El cambio de parámetros facilita el aprendizaje de propiedades que de otra forma serían difíciles de comprobar, como el carácter mínimo de la suma de los cuadrados de las diferencias respecto a la media.

Inconvenientes

Los esquemas de cálculos estadísticos apenas tienen inconvenientes. Podríamos destacar la lentitud en la escritura de datos, pero esto se puede subsanar trabajando con tablas pequeñas o importándolas de otros programas.


Estudios de situaciones

La Hoja de Cálculo permite modelizar problemas concretos al convertirlos en situaciones. Con esto entendemos que partiendo de un problema, por ejemplo "el camino mínimo de una carretera que une una autopista con dos pueblos" se puede organizar un entorno de variables (distancia entre pueblos, distancia de cada uno a la autopista, etc.) y de fórmulas (Teorema de Pitágoras, etc.) que permitan resolver todos o parte de los problemas surgidos de esa situación.
El estudio de las situaciones se puede completar con la confección de organigramas que representen la ruta de resolución de un problema determinado. Al relacionar datos y solución permiten la búsqueda de valor destino.
Consulta los modelos orga1.ods y orga2.ods.

Ventajas didácticas

  • El estudio de una situación concreta permite salir del esquema riguroso del currículo y trabajar con temas variados y sobre todo nuevos, que pueden incrementar la motivación.
  • El trabajo de resumir una situación en variables, fórmulas y procesos es ya de por sí educativo, independientemente de la utilidad posterior del modelo.
  • La mayor parte del trabajo no es de tipo informático, sino de reflexión metodológica.

Inconvenientes

  • Si la situación no motiva, si es alejada de los intereses del alumnado, es muy difícil emprender unas tareas encadenadas que pueden resultar pesadas.
  • Da demasiado protagonismo a las fórmulas.
 

Funciones matemáticas

Una de las mayores ventajas de las Hojas de Cálculo es la posibilidad de unir en un mismo proceso las tablas de datos y los gráficos correspondientes a las funciones matemáticas. Este hecho dota a los trabajos de una visión simultánea de ambos instrumentos que favorece mucho los aprendizajes de conceptos como: la tasa de variación media, la aceleración de un movimiento, o el crecimiento y decrecimiento en las relaciones funcionales.

Ventajas

Como ocurre con otros tipos de modelos, su mayor ventaja es la de dotar de vida a las tablas y gráficos. Los alumnos y alumnas se sorprenden de la instantaneidad de los cambios y se sienten interesados en "jugar", en cambiar datos y parámetros.

Inconvenientes

Existen en el mercado muchos programas que dibujan gráficas funcionales mejor que la Hoja de Cálculo y con más prestaciones.



Investigaciones

Son paneles de fórmulas o tablas mediante los cuales se pueden investigar propiedades nuevas. Son fáciles de construir por parte del alumnado y constituyen una forma de aprendizaje muy profunda y atractiva. Constituyen un buen ejemplo de la metodología de Taller y del trabajo en grupos.

Ventajas

  • Es un método muy atractivo y gratificante.
  • Permite aprender de forma más completa.
  • Rompe la rutina de las explicaciones.
  • Es sorprendente a veces. Confiando en el alumnado se obtienen resultados inesperados, como descubrir las propiedades de los logaritmos antes de que sean explicadas.
  • Los trabajos efectuados se pueden integrar en proyectos más amplios mediante el acceso a Internet.

Inconvenientes

  • Algunos alumnos o alumnas no pueden investigar porque les cuesta mucho entender los conceptos previos necesarios.
  • No se tiene hábito de investigar en clase y al principio hay resistencias y pasividad, que son contraproducentes. 
 Estos fueron algunos conceptos en los que podemos ver las ventajas y desventajas de las hojas de calculo.