MSF
Home Up MSF UML

 

Home
Up

 

Otros Links:

 

Microsoft Solution Framework (MSF)

La manera más fácil de llegar al éxito es seguir los pasos exitosos de otros. Esto no significa que se debería esperar a ver que es lo que la competencia esta haciendo , y luego colocar esto en un producto duplicado o copiado. La idea es aprender a hacer las cosas de la misma manera que lo hacen “los grandes” siguiendo sus planes de acción. Esto es lo que hace MSF; toma las mejores prácticas de los expertos y las integra en distintos modelos, principios y guías .

MSF consiste en siete modelos, que pueden ser usados individualmente o combinados. Estos modelos son:

¨      Team Model (Modelo de Equipo)

¨      Process Model (Modelo de Procesos)

¨      Application Model (Modelo de Aplicación)

¨      Solution Design Model (Modelo de Diseño de Soluciones)

¨      Enterprise Architecture Model (Modelo de Arquitectura Empresarial)

¨      Infraestructure Model (Modelo de Infraestructura)

¨      Total Cost Ownership Model  (Modelo de Costo Total de Propiedad)

 

El Modelo de Diseño de Soluciones

El Modelo de Diseño de Soluciones ayuda al equipo del proyecto a anticiparse a las necesidades del usuario incluyéndolo en el problema. Vale destacar la diferencia entre cliente y usuario, cliente se considera a la persona que paga por el software y usuario es aquella persona que va a utilizar el software. Estos no son necesariamente la misma persona. Es importante conseguir los requerimientos de los usuarios si es que se quiere lograr que la solución este enfocada a la realidad del negocio.

En el Modelo de Diseño de Soluciones, los usuarios se ven involucrados en el proceso de diseño. Obteniendo de ellos información sobre ciertos detalles, como de funcionalidad y otros requerimientos, el equipo puede determinar como se va a usar la aplicación e incrementar su productividad.

Más allá de involucrar a los usuarios en el diseño, el Modelo de Diseño de Soluciones provee una estrategia para diseñar soluciones orientadas a negocios que deben ser creadas para satisfacer necesidades especificas. Este modelo une el  Modelo de Equipo , el Modelo de Aplicación y el Modelo de Procesos, de tal manera que los recursos pueden ser enfocados en las áreas donde tengan mayor rendimiento.

El Modelo de Diseño de Soluciones esta compuesto por diferentes perspectivas . Una perspectiva es una forma de ver algo, lo que en este caso es el proceso de diseño de la aplicación. Se utiliza para centrarse en el  proceso mismo del diseño. Estas perspectivas son:

¨      Diseño Conceptual

¨      Diseño Lógico

¨      Diseño Físico

Las perspectivas son usadas para identificar los requerimientos técnicos y de negocios para la aplicación. El resultado de utilizar este modelo es una mejor distribución de los recursos del proyecto, lo que puede facilitar mucho las cosas.

Diseño Conceptual

Es donde se origina el  concepto inicial de la solución. Es en este diseño donde el equipo de desarrollo trata de entender las necesidades de los usuarios de la solución. Escenarios y modelos son usados para suavizar este entendimiento de manera que cada una de las entidades involucradas (equipos de desarrollo, clientes y usuarios) sepan que es lo que se necesita de la solución.

El proceso de Diseño Conceptual esta compuesto de las siguientes tareas para determinar y substanciar los requerimientos de la aplicación:

q       Identificación de usuarios y sus roles

q       Conseguir información de los usuarios

q       Validación del diseño

Perfiles de Usuario

Perfiles de usuario son documentos que describen con quien se esta lidiando, y proveen una descripción de la gente y los grupos que usan el sistema. Esta información es usada para organizar como la información será recolectada, e identificar quien dará dicha información para su recolección.

Estos perfiles también pueden ser creados al tiempo que se generan los escenarios de uso.

Escenarios de Uso

Los  escenarios de uso describen los requerimientos del sistema en el contexto del usuario, mostrando como se efectúan los procesos de negocios, o como se deberían efectuar. Los escenarios de uso toman  los datos que han sido recolectados , y los aplica en un documento donde paso a  paso se describe que pasa primero, luego y después en la ejecución de una tarea específica. Esto transforma los requerimientos que se han recolectado en el contexto de cómo se usan los procesos, funciones y procedimientos.

Existen diferentes métodos para construir los escenarios de uso que son :

¨      El Modelo de Proceso de Flujo de Trabajo

Es usado para crear escenarios de uso que muestran como trabajos específicos son ruteados  a través de una organización.

Al usar este modelo es necesario definir pre y pos condiciones. Estas son las condiciones necesarias para que el trabajo sea ruteado de un área a otra, y que es necesario para que un paso particular pueda darse.

¨      El Modelo de Secuencia de Tareas

Es usado para crear escenarios de uso . Este modelo observa a las series de acciones o secuencias de tareas que un usuario efectúa para completar una actividad.

Es posible usar este modelo con texto estructurado o no estructurado. Dependiendo del que se use, se necesita identificar el rol del usuario, y escribir el escenario de uso para este. El rol del usuario debe estar identificado en el escenario de uso de manera que cualquiera que lo vea pueda saber quien efectúa que actividad.

¨      El Modelo de Ambiente Físico

Los escenarios de uso también son útiles para entender el ambiente físico en el que se desenvuelve la aplicación. Esto se debe a que el diseño puede ser afectado por el lugar donde la aplicación vaya a ser usada, además de cómo y por que .

Este modelo observa el ambiente en el que la aplicación va a ser usada. Al usar este modelo, se documenta  como las actividades se relacionan con el ambiente físico  de la empresa. Esto permite determinar como los datos se mueven a determinadas localizaciones, como un proceso o una actividad de negocio se mueve de un departamento a otro, etc.

El paso final del Diseño Conceptual es validar el diseño. Esta es una presentación del entendimiento del equipo de los requerimientos del usuario. Se efectúa mostrando a usuarios finales y otras partes interesadas los escenarios de uso que se han creado, esto permite determinar si se tiene un entendimiento correcto  de lo que se requiere de la aplicación.

Una vez que se ha llegado al final del proceso del Diseño Conceptual , se esta generalmente listo para aplicar los documentos obtenidos al diseño lógico. Si es que fuera necesario es posible volver al Diseño Conceptual  para determinar necesidades y percepciones de otras características o funcionalidades del producto. Esto provee de gran flexibilidad al proceso de diseño de la solución de negocios

Diseño Lógico

Este diseño toma la información brindada por el Diseño Conceptual y la aplica al conocimiento técnico. Mientras que los requerimientos y necesidades de los clientes y usuarios son identificados en la perspectiva de diseño previa, es en éste diseño que la estructura y comunicación de los elementos de la solución son establecidos. Los objetos y servicios, la interfaz de usuario y la base de datos lógica son el conjunto de elementos identificados y diseñados en esta perspectiva.

En esta etapa no interesan los detalles de implementación física, tales como donde se van a alojar ciertos componentes o cuantos servidores están involucrados. El único interés es crear un modelo de abstracción de alto nivel, independiente de cualquier modelo físico.

Este alto nivel de abstracción permite distanciarse de muchos detalles recolectados  en la fase conceptual y organizarlos sin tener que analizar los detalles particulares de cada uno de los requerimientos. Además hace posible centrarse en un requerimiento específico a la vez sin perder la visión de la aplicación como un todo.

El Diseño Lógico es el proceso de tomar los requerimientos de usuario obtenidos en el Diseño Conceptual y mapearlos a sus respectivos objetos de negocios y servicios.

Organización de las Estructuras Lógicas

Una vez que se han identificado los objetos, es necesario organizarlos según los servicios que proveen, y las relaciones que tienen unos con otros.

Existen muchas consideraciones que deben ser tomadas en cuenta al diseñar una aplicación en tres capas que proporciona ciertos beneficios como ser escalabilidad, disponibilidad y eficiencia. Cuando se diseñan los objetos se debe dejar que estos factores dirijan la manera de organizar las estructuras lógicas. A pesar de que estos conceptos también se aplican al Diseño Físico, tienen igualmente importancia en esta etapa de Diseño Lógico. Es bueno definir que tan granular tienen que ser los componentes. Si estos mantendrán un estado o no  con el fin de maximizar la escalabilidad, estos y otros elementos  deben analizarse detenidamente para obtener un buen Diseño Lógico.

Del Diseño Conceptual al Diseño Lógico

Crear un Diseño Lógico consiste en mapear a objetos las reglas de negocios y los requerimientos de usuario identificados en el Diseño Conceptual. Estos objetos pueden ser más fácilmente identificados de los requerimientos de usuario por los nombres o sustantivos, los servicios que proveen estos objetos representan las reglas y requerimientos del dominio del negocio que se está modelando y son reconocidos por verbos,  para reconocer las propiedades o atributos de un objeto se deben identificar los datos asociados al objeto.

Cuando  se diseñan los objetos es importante que estos se centren en una sola cosa en lo posible, en otras palabras los objetos deberían solamente proveer servicios relacionados con un único propósito.

La funcionalidad de un objeto se llama  granularidad . Mientras su granularidad es mas fuerte el objetos presta muchos servicios, mientras más débil es su granularidad menos servicios presta. Lo óptimo es que el objeto tenga granularidad débil.

Diseño Físico

Es donde los requerimientos del diseño conceptual y lógico son puestos en una forma tangible. Es en este diseño que las restricciones de la tecnología son aplicadas al Diseño Lógico de la solución. El Diseño Físico define cómo los componentes de la solución, así como la interfaz de usuario y la base de datos física trabajan juntos. Desempeño, implementación, ancho de banda, escalabilidad, adaptabilidad y mantenibilidad son todos resueltos e implementados a través del Diseño Físico. Ya que esta perspectiva transforma los diseños previos en una forma concreta, es posible estimar qué recursos, costos o programación de tiempo serán necesarios para concretar el proyecto.

 

Al lidiar con estas tres perspectivas, es importante notar que éstas no son series de pasos con puntos de finalización claros. No es necesario alcanzar un punto específico en una de las perspectivas antes de continuar con la siguiente. De hecho, un área de diseño puede ser usada en combinación con otra de manera tal que mientras una parte de la solución es diseñada conceptual o lógicamente, otra esta siendo codificada o implementada en el producto final. Desde que no existen etapas con puntos definidos o límites, es posible regresar a las distintas perspectivas de diseño cuantas veces sea necesario. Esto permite afinar el diseño revisando y rediseñando la solución.