viernes, 10 de agosto de 2012

Atributos de Calidad!!

¿¿Funcionalidad - Arquitectura - Atributos - Escenarios??



Conseguir un rendimiento extremadamente rápido no es posible, lo que si es posible diseñar una arquitectura que cumpla con su funcion para la cual fue creada de una forma rapida, eficiente y eficaz en donde varios componentes o sub-sistemas interrelacionados colaboren en la realización de la función.

Los atributos de calidad debemos tenerlos en cuenta al momento de diseñar una arquitectura de software pero es aquí donde esos atributos son diferentes de acuerdos a las prioridades y necesidades del proyecto y/o servicio para la cual se hace uso del sistema.

Cuando nos refiramos a los atributos de calidad tenemos que tener en cuenta que estos siguen una determinadas "reglas" o pasos que no siempre se pueden cumplir según sea el escenario donde se van a aplicar estos atributos de calidad, también tenemos que tener en cuenta que dependiendo de cada estimulo se puede tener diferentes soluciones lo cual me parece que el arquitecto tiene que darse cuenta de este tipo de situaciones.

En mi opinión el arquitecto nunca va ha seguir unos pasos determinados para hacer escenarios y añadir atributos de calidad pero si debe tener en cuenta algunos detalles que se especifiquen según las modificabilidades o funciones de cada sistema.




Como ya sabemos existen varios escenarios de calidad y que cada uno de estos pueden ser tan importante como cualquier otro pero su importancia depende de las necesidades del sistemas, los requerimientos, la disposición, la modificabilidad, el rendimiento, la seguridad, usabilidad pero todo esto no es posible si no existe una comunicación clara y exacta entre los escenarios que es otro de los aspectos que debe tener en cuenta un arquitecto de software, ademas que cada escenario interactua con diferente y muchos atributos ademas recordemos que cada tipo de escenario usa su modo de comunicación para interactuar con los atributos que a su vez son las mismas funcionalidades básicas, intermedias y avanzadas que puede hacer el sistema.

Por nuestra parte algo que nos gusto y nos llamo la atención es que el uno de los capítulos dice "otros atributos de calidad" es algo que el arquitecto de software pueda usar e implementar dependiendo las necesidades del sistemas porque los atributos convencionales no siempre llegan a cumplir o cubrir con todo lo que pide el sistema en desarrollo.


La arquitectura de software se tiene que centrar y apuntar hacia el negocio y este a la vez  debe poseer unas cualidades que la hagan un producto de calidad.

Por ejemplo si se analiza el caso de Twitter. ¿Por qué es tan sencillo y lo utilizan muchas personas? Básicamente, porque es usable (en este caso amigable y simple) y tiene un corto tiempo de respuesta para el usuario (performance). ¿Qué pasa con la disponibilidad? ¿Twitter funciona 24 horas los siete días de la semana? La respuesta es no.

Cuando queremos hacer algo que pone en riesgo el rendimiento de Twitter, aparece una pantalla con un mensaje que nos explica que “Twitter sobrepasó su capacidad”), lo cual indica que el sitio no se cayó, pero, en ese momento, no se puede operar. No obstante, no hay dudas de que, cuando está bien, es rápido y usable. Ahora, ¿qué pasaría si Twitter permitiera 50.000 caracteres en vez de 140? ¿Qué impacto cree que tendría en la performance? ¿En la disponibilidad? ¿Y en la facilidad de uso?

Para crear una aplicación de tal magnitud y que cumpla estas características se pensó y enfoco en el negocio unas cualidades muy fundamentales como:

Tiempo de comercialización: El tiempo de desarrollo es un elemento crucial a lo hora de tener un producto con calidad.
Costo y beneficio: No se debe superar los costos presupuestados.

Vida proyectada del sistema: Si el sistema va a tener una vida útil larga, debe cumplir con los siguientes parámetros: modificabilidad, escalabilidad y portabilidad.

Mercado de destino: Determinar para quien va dirigido el producto.

Plan de puesta en servicio: En particular, el sistema debe construirse con la facilidad de expansión y contracción en mente.



Además de las cualidades del sistema y cualidades relacionadas con negocio de  la organización en el que se está desarrollando el sistema, también hay cualidades directamente relacionados con la arquitectura que son importantes para alcanzar.
       
Integridad Conceptual: Es la consideración más importante durante la fase de desarrollo, por lo cual tiene que ser correcto y unificar o integrar el diseño del sistema en todos los niveles.

Exactitud e integridad: Son elementos  muy importantes para la arquitectura para que todos los requisitos del sistema deban cumplirse

Edificabilidad: Siempre estar abierto a cambios y que sean de fácil aplicación.



No hay comentarios:

Publicar un comentario