Requerimientos y diseño de un proyecto.

by Valeriano Tortola 10. septiembre 2007 19:24

Los requerimientos de un proyecto deberían ser definidos desde múltiples perspectivas:  

  • Requerimientos del negocio: Definidos por los gerentes y comerciales. Exponen que puntos se consideran importantes para el éxito del proyecto.
  • Requerimientos de usuario: Definidos por los futuros usuarios. Exponen que tareas deben ser capaces de realizar con la aplicación para cumplir los objetivos de su trabajo.
  • Requerimientos funcionales ó especificaciones funcionales: Definidos por el lider técnico ó el arquitecto. Definen las caracteristicas que se deben desarrollar para cumplir los requerimientos anteriores. Son definidos mejor a través de herramientas de modelado, sin tener que hacer por un lado un documento de requerimientos y por otro el modelado de dichos requerimientos.
  • Requerimientos de calidad de servicio: Definen requerimientos sobre el rendimiento, escalabilidad y estandares a cumplir, no sobre aspectos funcionales ó problemas específicos.

Unos requerimientos bien expuestos no deberian presentar ambiguedad. No deben exponer metas a conseguir, si no cosas que se pueden hacer y estimar. No deben dar lugar a malas interpretaciones.

Se deben verificar todos los requerimientos tanto como sea necesario para el éxito del proyecto. Los requerimientos funcionales deben poder partir de los anteriores demostrando que queda todo cubierto.

Es importante que desarrolladores y arquitectos ajusten sus recomendaciones basandose en los requerimientos reales. No deben recomendar tecnologías porque sean novedosas ó simplemente porque esten al alcance, tienen que realizar un análisis meticuloso y hacer propuestas apropiadas al proyecto.

A la hora de proponer una arquitectura para una aplicación Windows, hay que sopesar las distintas opciones, sus pros y sus contras para elegir la que más se ajuste al proyecto:

Tipos de aplicaciones cliente:

  • Windows Client: Aplicación convencional, que puede ser SDI ó MDI.
  • Smart Client: Una aplicación que se distribuye a través de un navegador web pero funciona como una aplicación windows en la máquina del cliente.
  • Microsoft Office Client: Una aplicación que esta integrada con cualquier herramienta de Microsoft Office y usa esta como interfaz principal.
  • Windows Mobile: Aplicación para ejecutarse en dispositivos de mano como PDAs ó telefonos móviles que usen el sistema operativo Windows Mobile.

Controles de terceros: Son controles que no son distrubidos por Microsoft con Visual Studio 2005 ni realizados por la empresa. En determinadas ocasiones donde se necesita un componente, la idea de comprar en lugar de hacerlo entero puede traer beneficios en terminos de riesgos, costes y tiempo de entrega.

Servidor de aplicaciones: Un servidor de aplicaciones representa el software central donde se ejecuta la lógica de las capas más bajas, como la lógica del negocio, acceso a datos y origen de datos. No siempre se requiere de un servidor, menos si se trata de un proyecto pequeño. Arquitecturas SOA, Smart client ó cliente-servidor son ejemplos de donde se usa un servidor de aplicaciones. Por ejemplo Microsoft IIS.

Librerias: Son componentes, casi siempre código fuente, que se pueden usar en el proyecto. Por ejemplo Microsoft Enterprise Library.

Seguridad: Tecnologías en torno a la seguridad para cumplir los requerimientos de seguridad del proyecto. Autenticación, cifrado, ..etc.. Por ejemplo si estuviesemos en una LAN podríamos considerar Active Directory como base de la seguridad.

Almacenamiento de datos: Formas de acceder y almacenar los datos.

  • Basado en archivos: Por ejemplo, XML. Recomendable para pequeñas aplicaciones.
  • SQL Express: Versión reducida y gratuita de SQL Server. Pequeños/medianos proyectos.
  • SQL Everywhere: Base de datos para dispositivos móviles.
  • SQL Server: Gran base de datos, grandes proyectos.
  • Otras: Oracle, Firebird, DB2,... etc...

Se debe revisar las recomendaciones y contrastar con soluciones existentes, ya sean componentes  de tercero ó incluso recursos disponibles dentro de la misma empresa.

Se debe comenzar a validar los requemientos realizando un diseño superficial de la aplicación, que debería incluir las recomendaciones tecnológicas, como se integran en la solución, configuraciones y restricciones de esas tecnologías, de forma que se asegure que es un proyecto factible.

Resumen del la lección 1.1 del libro oficial de Microsoft para obtener el MCPD:WinApps.

Tags: , , ,

MCPD | WinApps

Comentarios

11/09/2007 0:32:00 #

trackback

Trackback from vtortola

Prototipos y pruebas de concepto

vtortola |

Comentarios no permitidos