lunes, 27 de mayo de 2013

SOFTWARE

La palabra «software» se refiere al equipamiento lógico o soporte lógico de un computador digital, comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware).
Tales componentes lógicos incluyen, entre otros, aplicaciones informaticas tales como procesador de textos, que permite al usuario realizar todas las tareas concernientes a edición de textos; software de sistema, tal como un sistema operativo, el que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y el resto de las aplicaciones, también provee una interface ante el usuario.
Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, se puede clasificar al software de la siguiente forma:
·         Software de sistema: Es aquel que permite que el hardware funcione. Su objetivo es desvincular adecuadamente al programador de los detalles del computador en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros:
·         Sistemas operativos
·         Controladores de dispositivo
·         Herramientas de diagnóstico
·         Herramientas de Corrección y Optimización
·         Servidores
·         Utilidades
·         Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluye entre otros:
·         Editores de texto
·         Compiladores
·         Intérpretes
·         Enlazadores
·         Depuradores
·         Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc.. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
·         Software de aplicación: Aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros:
·         Aplicaciones de Sistema de control y automatización industrial
·         Aplicaciones ofimáticas
·         Software educativo
·         Software médico
·         Software de Cálculo Numérico
·         Software de Diseño Asistido (CAD)
·         Software de Control Numérico (CAM)
Software libre (en inglés free software) es la denominación del software que brinda libertad a los usuarios sobre su producto adquirido y por tanto, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente. Según la Free Software Foundation, el software libre se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software; de modo más preciso, se refiere a cuatro libertades de los usuarios del software: la libertad de usar el programa, con cualquier propósito; de estudiar el funcionamiento del programa, y adaptarlo a las necesidades; de distribuir copias, con lo que puede ayudar a otros; de mejorar el programa y hacer públicas las mejoras, de modo que toda la comunidad se beneficie (para la segunda y última libertad mencionadas, el acceso al código fuente es un requisito previo).
El software libre suele estar disponible gratuitamente, o al precio de coste de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por ende no hay que asociar software libre a "software gratuito" (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente ("software comercial"). Análogamente, el "software gratis" o "gratuito" incluye en algunas ocasiones el código fuente; no obstante, este tipo de software no es libre en el mismo sentido que el software libre, a menos que se garanticen los derechos de modificación y redistribución de dichas versiones modificadas del programa.


lunes, 20 de mayo de 2013

Arquitecturas de Software


ISIS-EC7: "SOA: Del Negocio a la Arquitectura de Solución"
El objetivo del curso es mostrar la manera de partir de la información recogida a través de un proyecto de arquitectura empresarial y llegar al diseño de una arquitectura de solución orientada a servicios (SOA), que responda a las necesidades estratégicas del negocio. Incluye el diseño del blueprint de la arquitectura, el diseño del portafolio de servicios, el estudio de los principales estándares tecnológicos para las arquitecturas SOA, y la manera de incluir en el diseño aspectos como seguridad, transaccionalidad, composición, orquestación, transformación de datos e integración de aplicaciones.

ISIS-EC8: "Documentación y Evaluación de una Arquitectura de Software"

El objetivo del curso es presentar de manera práctica las diferentes metodologías y buenas prácticas para documentación y evaluación de arquitecturas de software. La primera parte del curso se concentra en la documentación de la arquitectura, teniendo en cuenta aspectos estáticos, dinámicos y de ejecución; así como los estilos y patrones arquitecturales seleccionados. El documento de arquitectura se construye de forma tal que facilite y guíe el desarrollo del software y a la vez sea un insumo indispensable para la evaluación de la arquitectura del sistema. En la segunda parte del curso, se estudian las principales técnicas de evaluación, tanto cuantitativas como cualitativas, de una arquitectura de software.

ISIS-EC9: "SOA: Gestión de la Seguridad"

En las arquitecturas orientadas a servicios (SOA) es crítico soportar atributos de calidad tales como la seguridad (autorización, autenticación, auditoria, cumplimiento regulatorio, trazabilidad, políticas de seguridad, gestión de la identidad, etc.). El objetivo de este curso es presentar los conceptos base de seguridad en las aplicaciones actuales y cómo son implementados en una arquitectura SOA, usando un framework de gestión de seguridad. Se estudian los desafíos actuales y los esquemas para poder mitigarlos, al igual que se revisan las referencias de mejores prácticas

ISIS-EC10: "SOA: Gobierno para una Adecuada Implementación Empresarial"

En este curso se presenta la normativa estándar para el gobierno y gestión de TI, aplicado al contexto de una arquitectura orientada a servicios. El gobierno de SOA permite evaluar el grado de implementación de políticas, procedimientos y recursos para asegurar que SOA sirva de la mejor manera a la organización. La gobernabilidad de la información es la clave para brindar a los usuarios finales el contenido y los datos que necesitan para realizar su trabajo, satisfacer los requisitos regulatorios y legales, así como disminuir la carga de los costos de gestión de la infraestructura TI de la organización

jueves, 9 de mayo de 2013


El diagrama de secuencia es un tipo de diagrama usado para modelar interacción entre objetos en un sistema según UML. En inglés se pueden encontrar como "sequence diagram", "event-trace diagrams", "event scenarios" o "timing diagrams"

Utilidad
Un diagrama de casos de uso muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada caso de uso. Mientras que el diagrma casos de uso permite el modelado de una vista business del escenario, el diagrama de secuencia contiene detalles de implementación del escenario, incluyendo los objetos y clases que se usan para implementar el escenario y mensajes intercambiados entre los objetos.
Típicamente se examina la descripción de un caso de uso para determinar qué objetos son necesarios para la implementación del escenario. Si se dispone de la descripción de cada caso de uso como una secuencia de varios pasos, entonces se puede "caminar sobre" esos pasos para descubrir qué objetos son necesarios para que se puedan seguir los pasos. Un diagrama de secuencia muestra los objetos que intervienen en el escenario con líneas discontinuas verticales, y los mensajes pasados entre los objetos como flechas horizontales.
Tipos de mensajes
Existen dos tipos de mensajes: sincrónicos y asincrónicos. Los mensajes sincrónicos se corresponden con llamadas a métodos del objeto que recibe el mensaje. El objeto que envía el mensaje queda bloqueado hasta que termina la llamada. Este tipo de mensajes se representan con flechas con la cabeza llena. Los mensajes asincrónicos terminan inmediatamente, y crean un nuevo hilo de ejecución dentro de la secuencia. Se representan con flechas con la cabeza abierta.
También se representa la respuesta a un mensaje con una flecha discontinua.
Pueden ser usados en dos formas
·         De instancia: describe un escenario específico (un escenario es una instancia de la ejecución de un caso de uso).
·         Genérico: describe la interacción para un caso de uso; Utiliza ramificaciones ("Branches"), condiciones y bucles.