Cómo Microsoft ayuda al éxito del desarrollo de software


Por ser una de las empresas de software más grandes del mundo, Microsoft se enfoca plenamente en ayudar a los equipos de desarrolladores a tener éxito. Este documento brinda una descripción general de la amplia gama de herramientas, entornos de desarrollo, marcos, ejemplos de código y orientación de Microsoft, que abarcan todos los aspectos del ciclo de vida de desarrollo de software; y también brinda ayuda a individuos y equipos para diseñar, compilar e implementar software de gran calidad.

En la figura 1 se muestra el ciclo de vida de desarrollo de software, desde la recopilación inicial de los requisitos del cliente hasta el lanzamiento del software y su continuo desarrollo iterativo, mantenimiento y modificación posterior a la implementación.

Las siguientes secciones se concentran en cada una de las áreas principales del ciclo de vida de desarrollo de software y lo ayudarán a comprender las tecnologías y herramientas de Microsoft que se encuentran disponibles y cómo estas pueden ayudarlo en cada etapa del proceso de diseño y desarrollo.

Planeación y análisis de requisitos


Si bien esta tarea es habitualmente la que se relaciona con arquitectura, los equipos de desarrollo tendrán la responsabilidad de convertir los requisitos del cliente en un diseño práctico que pueda implementarse dentro de las restricciones de costo y tiempo y que funcione bien en el hardware y la infraestructura disponibles.

La recopilación y el análisis de los requisitos constituyen la primera etapa, y normalmente esto involucra herramientas y aplicaciones como los programas Word, Excel, Visio, Project, etc. de Microsoft Office. Los requisitos se pueden proporcionar en forma de documentos, diagramas, esquemáticas, modelos y descripciones del entorno en tiempo de ejecución. En esta etapa inicial, Microsoft Project y Microsoft Excel son herramientas ideales para planificar escalas temporales y hacer presupuestos para proyectos de desarrollo. En la figura 2 se muestra un ejemplo de cómo planear un proyecto mediante Microsoft Project.

Arquitectura, diseño y modelado


Cuando se trata de obtener un diseño más detallado, Microsoft Visual Studio incluye una gama de herramientas que facilitan el diseño de la arquitectura de una aplicación y la creación de dependencias para modelos e implementación. Se puede utilizar para modelar el diseño general y la distribución de componentes y luego superponer eso en un modelo de la infraestructura de hardware a fin de validar la viabilidad del diseño. También se puede usar para generar diagramas de dependencia e interconexión entre componentes y esquemas de base de datos de modelos como parte del plan detallado. En la figura 3 se muestra el diseñador de modelos de Visual Studio 2010.

Microsoft también ofrece orientación que sirve en la fase de diseño. Esto incluye orientación general sobre procedimientos recomendables de arquitectura, información sobre los diseños típicos para diferentes tipos de aplicaciones y ayuda sobre cómo evaluar las compensaciones necesarias para garantizar que el software cumpla los requisitos. Por ejemplo, en la figura 4 se muestra una arquitectura contemporánea típica para aplicaciones. Non todas las aplicaciones contendrán todas estas características.

También hay disponible orientación más detallada sobre cómo diseñar aplicaciones para usar tecnologías específicas, desde consejos sobre requisitos de red e infraestructura hasta información más específica sobre factores de implementación y administración que pueden afectar el diseño. Por ejemplo, la documentación para sistemas operativos Windows incluye orientación sobre distribución de redes, ubicación de servidores, requisitos del sistema y consideraciones de implementación para aplicaciones que se ejecutarán en el servidor. Todos ellos son importantes al diseñar aplicaciones de software que se ejecutarán en la plataforma de Microsoft.

Tecnologías, herramientas y lenguajes de desarrollo


Microsoft proporciona una serie de herramientas y entornos de desarrollo diseñados para facilitar y hacer más eficiente la escritura de códigos para las diversas tecnologías y tipos de aplicaciones. La elección del entorno de desarrollo depende del tipo de aplicación que se construye y de los lenguajes de código que se usan. En la figura 5 se muestran algunas de las herramientas y entornos de desarrollo, tecnologías y lenguajes de desarrollo disponibles en Microsoft, además de los tipos de aplicaciones a los que están destinados.

Aunque hay muchas combinaciones diferentes de tecnologías y lenguajes, la mayoría de las aplicaciones se crean para ejecutarse en Microsoft .NET Framework. Este corresponde a un nivel sobre el sistema operativo y el hardware que proporciona una plataforma más unificada para código. Independientemente del lenguaje de código .NET que se utilice (como C# o Visual Basic), el código se compila en un formato estándar llamado Microsoft Intermediate Language (MSIL) que es ejecutado por los componentes en tiempo de ejecución de .NET Framework. En la figura 6 se muestra la arquitectura y el proceso.

Esta estandarización del desarrollo y el marco de tiempo de ejecución facilita la escritura de código porque oculta gran parte de la complejidad de los sistemas subyacentes. También facilita el trabajo en diferentes lenguajes puesto que todos usan el mismo conjunto estándar de bibliotecas de código, objetos e interfaces de programación.

Escritura, compilación y prueba del código


En términos de desarrollo, Microsoft Visual Studio es la herramienta principal. Se encuentra disponible en una serie de versiones, incluidas ediciones Express gratuitas para tipos específicos de aplicaciones. Visual Studio proporciona un entorno de desarrollo integrado (IDE) que puede usarse para crear proyectos y soluciones, escribir código, compilar y ejecutar el código, depurar el código y resolver errores. Visual Studio contiene plantillas para muchos tipos comunes de aplicaciones; también hay plantillas y marcos descargables que admiten otros tipos. En la figura 7 se muestran algunos de estos tipos de aplicaciones.

Escritura de código en Visual Studio

Visual Studio incluye muchas características que ayudan al proceso de desarrollo. entre ellas listas emergentes de objetos, clases y miembros de clases; características y documentación de ayuda integradas; asistentes para tareas comunes; y soporte técnico completo para personalización y conexión de herramientas adicionales. Visual Studio es suficientemente sólido para satisfacer todas las tareas centrales de desarrollo, y puede agregar sus complementos favoritos para mejorar aún más la productividad al crear aplicaciones. En la figura 8 se muestra el entorno de desarrollo integrado (IDE) para crear aplicaciones de Silverlight en Visual Studio.

Los tipos de aplicación disponibles en Visual Studio incluyen mucho más que las aplicaciones comunes de escritorio, web, nube y teléfono. Por ejemplo, se puede usar para desarrollar bibliotecas de clase, marcos, componentes y extensiones para aplicaciones de Office, aplicaciones basadas en flujo de trabajo y aplicaciones de SharePoint. En la figura 9 se muestra el entorno de desarrollo para aplicaciones de SharePoint.

La mayoría de las aplicaciones empresariales usan una base de datos como fuente de información, y Visual Studio incluye herramientas que facilitan la creación de bases de datos, el diseño de esquemas para tablas, la creación de relaciones e incluso el llenado de las tablas con datos de ejemplo para probar. Se puede conectar a la mayoría de los servidores de bases de datos comunes, incluida la gama completa de ediciones de bases de datos de Microsoft SQL Server. En la figura 10 se muestra la forma en que Visual Studio ayuda a escribir procedimientos almacenados para una base de datos.

Al desarrollar, es frecuente que deba interactuar con componentes y marcos escritos por otros equipos de desarrollo, o adquiridos de proveedores externos. Resulta útil comprender las interfaces y poder investigar la estructura de objetos de estos componentes y marcos. Visual Studio incluye carcaterísticas para explorar clases, objetos, componentes y marcos, incluidas las clases que conforman la biblioteca de clases .NET. En la figura 11 se muestra Visual Studio.

Depuración, traza y pruebas en Visual Studio

Según la versión, Visual Studio también incluye herramientas para ejecutar pruebas unitarias, para perfilar el código a fin de maximizar la eficiencia en tiempo de ejecución y para ver la forma en que el código se ejecuta en el hardware subyacente, por ejemplo. En la figura 12 se muestran en acción las características de análisis de código en tiempo de ejecución.

Visual Studio además lo ayuda a descubrir y corregir errores en el código que se producen durante la compilación de éste y también en tiempo de ejecución. El compilador genera mensajes de advertencia y de error con detalles que lo ayudan a evitar tipos comunes de errores y a actualizar el código para resolverlos. El mecanismo de detección es potente y configurable, de modo que puede elegir qué tipos de advertencias se notificarán, que no impidan la compilación del código pero que pueden afectar el rendimiento. En la figura 13 se muestra la lista de errores que presenta Visual Studio al compilar una aplicación.

Una de las tareas más difíciles al depurar una aplicación es encontrar dónde se produce un error. Además del modo de ejecución común de línea por línea que permite recorrer el código mientras se ejecuta, Visual Studio 2010 incluye la característica IntelliTrace que le permite recopilar mucha más información sobre el proceso de ejecución y repetir las circunstancias que causaron el error. En la figura 14 se muestra la característica Visual Studio IntelliTrace.

Implementación de aplicaciones con Visual Studio

Visual Studio contiene una gama de herramientas y características que ayudan a crear paquetes de configuración e implementación y a implementar aplicaciones directamente. La compilación de lanzamiento incluye capacidades para especificar toda la información requerida para los ensamblados y recursos; y puede ocultar el código para hacer mucho más difícil utilizar técnicas de ingeniería inversa, crear paquetes de Microsoft Installer (MSI), crear archivos de ayuda y construir muchos otros tipos de paquetes de implementación. En el caso de aplicaciones que se implementan directamente en un host en tiempo de ejecución, como las aplicaciones web, Visual Studio incluye las herramientas de implementación web, mostradas en la figura 15.

Otras herramientas de desarrollo de código

Se encuentran disponibles otras herramientas y entornos de desarrollo para tareas más específicas, tipos de aplicaciones o escenarios específicos de desarrollo. Por ejemplo, Microsoft WebMatrix (en la figura 16) es una herramienta gratuita para crear aplicaciones web y sitios web mediante la tecnología ASP.NET Web Pages. WebMatrix puede escribir aplicaciones en C#, Visual Basic u otros lenguajes que no son de Microsoft como PHP. Además proporciona un entorno integrado que incluye características para trabajar con bases de datos e implementar la aplicación en un proveedor de hospedaje web.

Para desarrollar aplicaciones que se ejecutan en Windows Phone, puede usar las herramientas de desarrollo de Windows Phone, que son gratuitas. Esto incluye una versión especialmente adaptada de Visual Studio y otras herramientas como un entorno de desarrollo de XNA para programación de juegos, Expression Blend para crear interfaces interactivas, utilidades para implementar aplicaciones en el teléfono y plantillas que se integran con las versiones completas de Visual Studio. En la figura 17 se muestra una aplicación Silverlight para Windows Phone en desarrollo.

Expression Blend es una sola de una familia de herramientas destinadas a diseñadores de interfaces y gráficos de aplicaciones, pero estas herramientas normalmente se utilizan para tareas de desarrollo. Por ejemplo, Expression Blend ofrece un excelente entorno de desarrollo para aplicaciones de Silverlight para el escritorio, web y teléfono que incluyen transiciones y otros efectos gráficos de composición y movimiento. En la figura 18 se muestra el desarrollo de una aplicación de Windows Phone en Expression Blend.

Entre las muchas otras herramientas de desarrollo están aquellas para comprobar la validez de un código, realizar análisis y diagnósticos en tiempo de ejecución y crear paquetes de implementación y documentación. Incluso aplicaciones como Internet Explorer contienen herramientas de desarrollo que pueden resultar útiles al depurar y probar aplicaciones web y código de script del lado cliente.

Finalmente, Microsoft proporciona una gama completa de documentación y orientación sobre todas las herramientas, tecnologías y lenguajes de desarrollo. Microsoft Developer Network (MSDN) es la fuente principal de información para individuos y equipos que realizan tareas de desarrollo. Esto incluye documentación conceptual para poder comprender las tecnologías y orientación enfocada en el uso de las herramientas y lenguajes. Todos los portales para las diferentes tecnologías incluyen vídeos, guías paso a paso de instrucciones, ejemplos de código e implementaciones de referencia que facilitan el aprendizaje sobre tecnología y rápidamente ponen al día a los desarrolladores.

Revisiones, administración de proyectos y códigos, y generación de informes


Al trabajar como parte de un equipo, los individuos deben compartir y actuar según la información entre la administración de equipos y proyectos. Microsoft proporciona herramientas y orientación para ayudar a los individuos a tener éxito en un entorno de equipo, acelerar el desarrollo y administrar el ciclo de vida de desarrollo. Las herramientas principales para lograr esto son Team Foundation Server (TFS) y SharePoint Server. Ambas son repositorios que pueden administrar el control de versiones, brindar acceso a través de distintas redes y ayudar a mantener un proyecto conforme a lo planeado.

Team Foundation Server principalmente está dirigida a tareas de desarrollo y de administración de proyectos. Contiene una amplia gama de funciones para crear repositorios de código con control completo de versiones, capacidad de protección y desprotección, y bifurcaciones y vínculos de código para permitir compilaciones regulares de toda la aplicación. También proporciona elementos de trabajo que se basan en plantillas configurables, flujo de trabajo, generación de informes y muchas otras características relacionadas. Constituye un entorno ideal para aplicaciones grandes y complejas durante el desarrollo, pero funciona igual de bien para equipos y proyectos más pequeños.

Los miembros del equipo se conectan a TFS desde Visual Studio u otras herramientas compatibles, las que administran automáticamente la salida y entrada de archivos, el acceso de solo lectura a estos y la capacidad de crear y conectarse a instantáneas del repositorio (como se muestra en la figura 19).

Durante la fase inicial de diseño de la aplicación y durante el ciclo de vida de desarrollo, distintos miembros del equipo crean y mantienen almacenes en TFS que describen las tareas, comentarios, planes y cualquier otra información útil sobre el proyecto. Los almacenes pueden incluir aproximaciones de tiempo e información de finalización de manera que tanto trabajadores individuales como gerentes puedan ver de un vistazo el estado del ciclo de desarrollo del proyecto. En la figura 20 se muestra la página de información general sobre almacenes para un proyecto en TFS.

TFS también puede proporcionar una gran cantidad de información sobre el progreso en general, el estado de la compilación y errores en el software mediante una serie de portales. Resulta particularmente útil para supervisar la calidad del software en cuanto a los planes de pruebas y los defectos encontrados en el software en cualquier etapa del proceso de desarrollo. En la figura 21 se muestran algunos de los informes gráficos que TFS puede generar.

SharePoint es el segundo tipo de repositorio disponible en Microsoft. Se trata principalmente de un repositorio de documentos e información que es más adecuado para administrar documentación para proyectos. Ofrece capacidades de integración con muchas aplicaciones de Microsoft Office, lo que lo convierte en un repositorio ideal para que arquitectos, diseñadores y administradores de proyectos lo usen durante el ciclo de vida de desarrollo de software. También proporciona una gran cantidad de plantillas de repositorio integradas y descargables, capacidades integrales de personalización y disponibilidad a través de redes e Internet para un amplio acceso de los equipos distribuidos. En la figura 22 se muestra SharePoint usado como repositorio de documentación.

Resumen


Microsoft proporciona una enorme gama de software y herramientas que admiten el diseño, desarrollo y procesos de implementación de software. Para arquitectos y diseñadores se encuentran disponibles herramientas que sirven para modelar aplicaciones y entornos en tiempo de ejecución, administrar documentación e interactuar con las partes interesadas.

En el caso de tareas de desarrollo, las herramientas y entornos de desarrollo integrados e independientes para especialistas proporcionan el mayor nivel de soporte técnico, facilidad de uso y extensibilidad para simplificar lo más posible todas las etapas del proceso. Hay herramientas disponibles para escribir códigos y trabajar con bases de datos; y para compilar, probar, trazar y depurar códigos.

Otras herramientas y entornos para usar durante el proceso de desarrollo incluyen repositorios de códigos y documentos, herramientas de administración de proyectos y herramientas de generación de informes. Además, Microsoft proporciona una amplia gama de distintos tipos de orientación para la arquitectura, desarrollo, administración y prueba de tareas que ayudan a diseñar, compilar y ejecutar un mejor software.

Anuncios
Publicado en NelsoN. Leave a Comment »

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: