lunes, 29 de abril de 2013

VENTAJAS Y DESVENTAJAS DE LOS CASOS DE USO


Estos diagramas documentan el comportamiento de un sistema desde el punto de vista de un usuario. por lo tanto, determinan los requisitos funcionales del sistema, es decir, las funciones que el sistema pude ejecutar.

Ventajas
• Su ventaja principal es la facilidad para interpretarlos, y hacen que sean especialmente útiles en la comunicacion con el cliente.
• Identifica requerimientos estancados, dentro de un conjunto de requerimientos.
• Permite representar mas de un rol para cada afectado.
• El lenguaje que utilizan es comun y entendible para el usuario.


Desventajas
• En sistemas grandes toman mucho tiempo para definir todos los casos de uso.
• El análisis de calidad depende de como se haya realizado la descripcion inicial del caso de uso.


domingo, 21 de abril de 2013


Descripción general
Dispone de certificaciones Microsoft para la mayoría de sus tecnologías y todos los niveles de destreza. Obtener una certificación Microsoft le proporciona las destrezas relevantes que pueden llevarle hacia una carrera satisfactoria y darle acceso a los valiosos beneficios del programa de certificaciones de Microsoft. Entre estos beneficios se incluye el acceso al sitio exclusivo para miembros y a una amplia red mundial de otros profesionales certificados.

Profesional tecnológico
Hay una amplia gama de certificaciones Microsoft a disposición de profesionales informáticos y desarrolladores de todos los niveles de destreza, desde puestos para principiantes hasta arquitectos de soluciones.

Profesional empresarial
Si el uso de los productos Microsoft Office forma parte importante de su trabajo, debería pensar en obtener una certificación como especialista en Microsoft Office (MOS).

Estudiante
Las certificaciones Microsoft pueden marcar la diferencia y distinguirle de otras personas que compiten con usted por el mismo trabajo. Contar con la certificación de Microsoft le ayuda a aumentar sus posibilidades de empleo y de éxito académico. Muchas de ellas están reconocidas y se recomiendan como créditos universitarios.
Los estudiantes de educación secundaria y terciaria que estén matriculados (a tiempo total o parcial) en un programa universitario o para diploma pueden recibir un descuento de hasta el 55 por ciento del precio público de las certificaciones como Especialista Tecnológico Certificado (MCTS) de Microsoft. También disponen de descuentos en las selectas certificaciones Profesional Informático Certificado Microsoft (MCITP) y Desarrollador Profesional Certificado Microsoft (MCPD).
  

viernes, 19 de abril de 2013

HERRAMIENTA AZURE


Windows Azure (anteriormente Azure Services Platform) es una plataforma ofrecida como servicio y alojada en los Data Centers de Microsoft. Anunciada en el Professional Developers Conference de Microsoft (PDC) del 2008 en su versión beta, pasó a ser un producto comercial el 1 de enero del 2010. Windows Azure es una plataforma general que tiene diferentes servicios para aplicaciones, desde servicios que alojan aplicaciones en alguno de los centros de procesamiento de datos de Microsoft para que se ejecute sobre su infraestructura (Cloud Computing) hasta servicios de comunicación segura y federación entre aplicaciones.
Servicio de Windows Azure
Dentro de la plataforma, el servicio de Windows Azure es el encargado de proporcionar el alojamiento de las aplicaciones y el almacenamiento no relacional. Dichas aplicaciones deben funcionar sobre Windows Server 2008 R2. Pueden estar desarrolladas en .NET, PHP, C++, Ruby, Java. Además del servicio de ejecución, dispone de diferentes mecanismos de almacenamiento de datos: tablas NoSQL, blobs, blobs para streaming, colas de mensajes o 'drives' NTFS para operaciones de lectura / escritura a disco.
Características de Windows Azure
·         Proceso: el servicio de proceso de Windows Azure ejecuta aplicaciones basadas en Windows Server. Estas aplicaciones se pueden crear mediante .NET Framework en lenguajes como C# yVisual Basic, o implementar sin .NET en C++, Java y otros lenguajes.
·         Almacenamiento: objetos binarios grandes (blobs) proporcionan colas para la comunicación entre los componentes de las aplicaciones de Windows Azure y ofrece un tipo de tablas con un lenguaje de consulta simple.
·         Controlador de tejido: Windows Azure se ejecuta en un gran número de máquinas. El trabajo del controlador de tejido es combinar las máquinas en un solo centro de datos de Windows Azure formando un conjunto armónico. Los servicios de proceso y almacenamiento de Windows Azure se implementan encima de toda esta eficacia de procesamiento.
·         Red de entrega de contenido (CDN): el almacenamiento en caché de los datos a los que se accede frecuentemente cerca de sus usuarios agiliza el acceso a esos datos.
·         Connect: organizaciones interactúan con aplicaciones en la nube como si estuvieran dentro del propio firewall de la organización.
·          Azure Platform Componentes
·         Windows Azure Compute es una plataforma para hospedar y administrar aplicaciones en los centros de datos de Microsoft. Una aplicación de Windows Azure consta de uno o varios componentes denominados ‘roles.’ Los roles pueden ser de tres tipos: rol web, rol de trabajo y rol de máquina virtual (VM).
·         Windows Azure Storage tiene servicios de básicos como parte de la cuenta de almacenamiento de Windows Azure. Los blobs, tablas y colas están accesibles a aplicaciones o instancias de aplicaciones simultáneamente.
·         Microsoft SQL Azure es un servicio de base de datos en la nube basado en las tecnologías de SQL Server. Los servicios de SQL Azure incluyen: Base de datos SQL Azure, SQL Azure Reporting y SQL Azure Data Sync Aspectos destacados de la base de datos de SQL Azure.4
·         Content Delivery Network (CDN) de Windows Azure coloca copias de los datos cerca de donde estos se encuentran. La CDN de Windows Azure entrega actualmente muchos productos de Microsoft, como Windows Update, vídeos de Zune y Bing Maps, que los clientes conocen y usan todos los días. Gracias a la incorporación de la CDN a los servicios de Windows Azure, ahora esta red a gran escala está disponible a todos nuestros clientes de Windows Azure.5
·         Azure AppFabric El servicio de Appfabric (en fase beta se llamaba .NET Services) ofrece diferentes servicios para aplicaciones. Los servicios de autenticación, autorización y mensajería permiten la comunicación segura entre aplicaciones y servicios desplegados tanto en la nube y en local. Los diferentes servicios que ofrece el servicio de AppFabric se pueden dividir en dos grandes bloques: AppFabric Service Bus y AppFabric Access Control.6
·         Azure Market Place es un mercado en línea global compartir, comprar y vender aplicaciones SaaS completas y conjuntos de datos. La sección de datos de Windows Azure Marketplace incluye datos, imágenes y servicios Web en tiempo real de proveedores de datos comerciales, líderes en el sector y orígenes de datos públicos acreditados.7
·         Azure Virtual Network es una serie de funciones de red. Windows Azure Connect es la primera característica de Azure Virtual Network que configura la conectividad de red basada en IP entre recursos locales y de Windows Azure. Windows Azure Traffic Manager equilibra la carga del tráfico en servicios hospedados.

domingo, 14 de abril de 2013


 


Una exigencia de la gran mayoría de instituciones dentro  de su Plan Informático estratégico, es que los desarrollos de software bajo una arquitectura en Capas, se formalicen con un lenguaje estándar y unificado.
Es decir, se requiere  que cada una de las partes que comprende el desarrollo de todo software de diseño orientado a objetos, se visualice, especifique y documente con lenguaje común.
Se necesitaba un lenguaje que fuese  gráfico, a fin de especificar y documentar un sistema de software, de un modo estándar incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema.
Este lenguaje unificado que cumple con estos requerimientos, es ciertamente UML, el cual cuenta con una notación estándar y semánticas esenciales para el modelado de un sistema orientado a objetos.

¿Qué es UML?
El Lenguaje de Modelado Unificado (UML:Unified Modeling Language) es la sucesión de una serie de métodos de análisis y diseño orientadas a objetos que aparecen a fines de los 80's y principios de los 90s.UML es llamado un lenguaje de modelado, no un método. Los métodos consisten de ambos de un lenguaje de modelado y de un proceso. El UML , fusiona los conceptos de la orientación a objetos aportados por Booch, OMT y OOSE (Booch, G. et al., 1999). UML incrementa la capacidad de lo que se puede hacer con otros métodos de análisis y diseño orientados a objetos. Los autores de UML apuntaron también al modelado de sistemas distribuidos y concurrentes para asegurar que el lenguaje maneje adecuadamente estos dominios.
El lenguaje de modelado es la notación (principalmente gráfica) que usan los métodos para expresar un diseño. El proceso indica los pasos que se deben seguir para llegar a un diseño.
La estandarización de un lenguaje de modelado es invaluable, ya que es la parte principal del proceso de comunicación que requieren todos los agentes involucrados en un proyecto informático. Si se quiere discutir un diseño con alguien más, ambos deben conocer el lenguaje de modelado y no así el proceso que se siguió para obtenerlo.

Una de la metas principales de UML es avanzar en el estado de la integración institucional proporcionando herramientas de interoperabilidad para el modelado visual de objetos. Sin embargo para lograr un intercambio exitoso de modelos de información entre herramientas, se requirió definir a UML una semántica y una notación.
La notación es la parte gráfica que se ve en los modelos y representa la sintaxis del lenguaje de modelado. Por ejemplo, la notación del diagrama de clases define como se representan los elementos y conceptos como son: una clase, una asociación y una multiplicidad. ¿Y qué significa exactamente una asociación o multiplicidad en una clase?. Un metamodelo es la manera de definir esto (un diagrama, usualmente de clases, que define la notación).
Para que un proveedor diga que cumple con UML debe cubrir con la semántica y con la notación.
Una herramienta de UML debe mantener la consistencia entre los diagramas en un mismo modelo. Bajo esta definición una herramienta que solo dibuje, no puede cumplir con la notación de UML.

PORQUE EXISTEN LOS CASOS DE USO


Necesitamos prácticas que nos apasionen y que se enfoquen en las personas sobre los procesos pero que además nos posibiliten resultados de calidad. Necesitamos además que nuestro trabajo sea aún más colaborativo y permita una integración unificada, continua. Precisamos de un enfoque que permita bajar la tensión “ellos versus nosotros” entre desarrolladores y verificadores.

Requerimos prácticas que nos licencien para manejar mejor los cambios y que nos habiliten para entregar productos de manera incremental. Y también necesitamos prácticas que soporten un mejor manejo del conocimiento de los productos que construimos y que nos apoyen cuando hacemos frente a situaciones adversas, que nos permitan mantenernos enfocados en lo que es de valor para nuestro cliente.

Casos de Uso 2.0 es precisamente eso, una práctica escalable y ágil que usa casos de uso para capturar un conjunto de requisitos y conducir el desarrollo incremental de un sistema que los ejecute. Casos de Uso 2.0 se reenfoca en lo esencial y ofrece una forma de trabajo liviana y más limpia para que los equipos de software logren los beneficios del desarrollo iterativo e incremental a un nivel corporativo.

Pero para llegar más al corazón de Casos de Uso 2.0, necesitamos mirar la radiografía de los casos de uso: ¿Qué hizo tan popular a los casos de uso? Con el tiempo, los casos de uso alcanzaron un uso multitudinario porque comunican efectivamente lo que el sistema debe hacer, porque ponen los requisitos en el contexto de las metas de un usuario específico y porque conducen el desarrollo a través del diseño, el código y, si se quiere, las pruebas.

En el fondo, el modelado de casos de uso es una idea muy simple. Esto quiere decir que con Actores, Casos de Uso, Inclusiones y algunos otros artilugios podemos llegar al núcleo de lo que el sistema debe hacer, porque nos enfoca inequívocamente en quién (o qué) usará el sistema y nos permite encontrar con rapidez asombrosa lo que el sistema debe hacer para que ese quién logre algo útil en su proceso de negocio.

Otra pregunta que debemos responder antes de dar el salto de versión es ¿por qué necesitamos casos de uso todavía? Si hay muchas otras prácticas relacionadas de requisitos populares, ¿por qué estás no han reemplazado la necesidad de casos de uso? Por ejemplo, las historias de usuario son grandiosas para sistemas pequeños y equipos pequeños, aunque bien es cierto que con pequeños incrementos podemos construir un sistema grande.

También hay otros enfoques, como la especificación de características, fabulosa para manejo de productos; los tradicionales requisitos declarativos, excelsos para capturar cualidades independientes atómicas; el modelado de dominio, extraordinario para sistemas de funcionalidad simple y ricos en información. Sí, hay muchas otras buenas técnicas pero a todas les hace falto algo para reunirlas y proporcionar una solución simple y escalable.

Ahora sí, ¿por qué necesitamos casos de uso 2.0? En principio, para corregir algunos de los malentendidos:

·         Los casos de uso son livianos, no pesados
·         Los casos de uso son historias, no funciones
·         Los casos de uso son simples, no complicados
·         Los casos de uso son para todo tipo de desarrollo, no solo para desarrollo de aplicaciones nuevas y “planas”.
·         Para reenfocarnos en lo esencial, de vez en cuando viene bien un refrescamiento de ideas y de experiencias.
·         Para dar un mejor soporte a las innovaciones y mejoras tales como Desarrollo Dirigido por Pruebas (TDD), Kanban y Scrum.

Lo que hace distintivo a Casos de Uso  es que nos ayudan a entender el cuadro completo, es una práctica tan liviana como queremos que sea, habilita la entrega incremental del producto, no es solo sobre requisitos, es para todo el ciclo de vida, también es para requisitos no funcionales, para software embebido, incluso no es solo para desarrollo de software, también es para desarrollo de negocios y, finalmente, es escalable en todas las direcciones para cubrir cualquier necesidad real.

Como siempre, cuando se trata de procesos y métodos, aconsejo no desvirtuar la capacidad que tenemos los seres humanos de pensar. Lo que posibilitan las técnicas es precisamente potenciar nuestra habilidad para encontrar el mejor siguiente paso en el camino hacia la satisfacción. Al final de cuentas es el cerebro humano el que visiona productos e ideas, ninguna tecnología ni método puede reemplazar nuestro proceso de pensamiento.