lunes, 3 de septiembre de 2012

DESIGNING PLEASURABLE PRODUCTS

Dentro del diseño de un software es importante tener en cuenta no solo las funcionalidades que suplen las necesidades de la  compañia, sino tambien que el usuario al que va dirijido se sienta satisfecho con lo que ve y manipula dentro de un software.

Cuando inicio la computación y la era tecnologica siempre se pensaba en las funcionalidades del software y como estas suplían las necesidades y ya. Esto hacia que el software fuera robusto y poco amigable para los usuarios, pero a través del tiempo se a visto la necesidad de pensar en el usuario a través del software que requiere, se deben tomar aspectos relevantes como a que tipo de usuario va desarrollado, quienes son los operarios de dicho software entre otros aspectos.

Por esto el surgimiento de atributos de calidad e interfaces amigables que me permitan que el usuario este mas a gusto con el software.

Los atributos de calidad mas relevantes a nivel de software y pensando en el usuario son :

- Usabilidad
- Estética
- Rendimiento
- Fiabilidad


Los atributos mencionados anteriormente bien tratados y expuestos en su mayoría y totalidad hacen que el cliente o usuario genere cierta empatia con el software y lo califique como facil, amigable y de buen manejo y asi el software sera mas rentable y mucho mas eficiente porque los procesos se realizan mas rápido. 


El autor menciona  4 características principales para medir la satisfaccion del cliente / usuario como lo son:

Físico
- Social
- Psicologica
- Ideologica

En conclusión las casas de sodtware hoy en dia piensan mas en el usuario porque es el mayor beneficiado en cuanto al producto que se dearrolla.

SOFTWARE ARQUITECTURE IN PRACTICE (CAPITULO V )


Las tácticas son aquellas decisiones de diseño que se generan a partir de ciertas necesidades en el desarrollo del software, dichas tacticas influyen en la respuesta de un atributo de calidad haciendo de este su valor e importancia en el software.

Un aspecto relevante es la disminución o aumento de importancia de un atributo, si yo genero mas importancia a un atributo, existirá otro que perderá su valor, por ende es importante tener balanceadas las cargas a los atributos para que así el software obtenga mejores practicas ya adaptaciones.

La redundancia hace parte fundamental del refinamiento de tácticas, por ende es importante tenerlo como táctica principal dentro del diseño. Existen dos tipos de redundancia que se deben tener en cuenta en el diseño:

- Redundancia de datos
- Redundancia de calculo




Ademas de esto hay que jerarquizar las tacticas según los atributos de calidad a los que se les implementa, en este caso es donde  se ve la importancia de tácticas aplicadas a los atributos de calidad para que así el sistema sea mas eficiente 

Existen otros aspectos importantes al implementar tácticas en un software, en este parte se mencionan las tácticas de disponibilidad cuando se generan fallos en los sistemas operativos (SO), servidores de aplicaciones, bases de datos, sistemas de gestión, entre otros.  Para ello existen ciertas tácticas como por ejemplo Ping, Herbeat, etc..

En conclusión las tácticas son parte fundamental en el desarrollo de una arquitectura , implementando en un atributo de calidad.


SOFTWARE SYSTEM ARCHITECTURE 4 ARCHITECTURAL PERSPECTIVES

Este capitulo  va relacionado con el de vistas y puntos de vistas ya que las perspectivas a nivel de arquitectura de software son conjunto de puntos de vistas que se generan en el diseño de una arquitectura,  dichos puntos de vista se centran en la problematica, preocupacion y solución de la compañia.

Las decisiones que se toman frente a una sola vista pueden generar cambios extremos en otras, para ello se deben crear vistas  flexibles y estables para que cuando ocurra un cambio estas sean fáciles de adaptar a dicho cambio, Un ejemplo claro es la seguridad en un sistema ya que dicha vista (Seguridad) hace parte de un modelo conceptual de vista, para ello se deben definir puntos de vista que sean modificables y no que halla que cambiarlos cuando se generan cambio.

Por ende las vistas arquitectónicas serian un conjunto de actividades y tácticas que garantizan que el sistema sea de calidad , a esto se le conoce como "PERSPECTIVA ARQUITECTÓNICA".


SOFTWARE SYSTEM ARCHITECTURE 3.VIEWPOINTS AND VIEWS

Este capitulo habla de ciertos criterios que se tiene que tener en cuenta al implementar una arquitectura de software  como lo son el identificar los elementos funcionales de la arquitectura que mas se adecua a los procesos de la compañía, otro es la interaccion o correlacionn que existen entre dichos elementos que conforman la arquitectura , ademas de que dichos criterios hay que tenerlos en cuenta tanto en la organización, como fuera de ella.

Un aspecto importante es el tipo de información que gestionara los recursos basados en la arquitectura, ¿Donde?, ¿Cuando? se almacenara  y  presentara la arquitectura implementada como parte de la entidad u organizacion.

Identificar el Hardware y Software actual hacen que la arquitectura que se implementara genere ciertos impactos sobre esta , puede suceder tambien que la llegue a modificar e incluso cambiar en su totalidad. Para ello el Software(Capas) y Hardware basado en una nueva arquitectura  hacen que la estructura funcional de la organizacion sea mas adaptable a cambios.

El termino concurrencia es muy abarcado en este capitulo ya que es parte fundamental en el desarrollo e implementacion de una arquitectura porque si dicha funcionalidad esta al 99.9% en cuanto a  adpatacion  y buena funcionamiento, esta hace que el sistema tambien lo sea en un margen igual.


Un aspecto importante es la complementación de varias arquitecturas o bien tomar varios puntos de vistas sobre ella ya que no siempre la mas completa es la que mejor se adecua a mis necesidades, hay siempre que tener difererntes perpsectivas, por ello en este capitulo se da a a entender un concepto dentro del diseño como lo son las VISTAS y los PUNTOS DE VISTA 

Las vistas son aquellas perspectivas que se tiene  que tener en cuenta en el diseño de una arquitectura es decir con cual arquitectura, caracteristica o funcionalidad quiero suplir la necesiadad que estoy teniendo y como mejoraria mis procesos dentro de la compañia, ademas de cual es la que mejor se adapta.

Los puntos de vista son aquellos artefactos, documentos o entregables que me permiten soportar dichas vistas que genere en el diseño, para identificar dichos puntos de vista se tiene que tener en cuenta:

- Contexto
- Funcionalidad
- Informacion 
- Concurrencia 
- Desarrollo 
- Despliegue
- Operacion 

  



martes, 7 de agosto de 2012

SOFTWARE ARQUITECTURE IN PRACTICE (CAPITULO VI)

En este Capitulo se da inicio a los atributos de calidad y como ellos ,son indispensables en el diseño e implementación del software. Como primera instancia se genera una cuestión sobre el ¿Como un arquitecto  realiza o crea una Arquitectura, la cual sea lo suficientemente robusta para soportar dichos atributos de calidad que requiere el Sistema o Software?.

Los Atributos de calidad cambian dependiendo del software a conformar ya que no todos los requerimientos  que se exigen son los mismos pero para ello ,existe una compresión de los mismos para su implementación en el software; Existen ciertos atributos que por simple razón deben conformar un Software como lo son:

- La Disponibilidad
- El Rendimiento 
- La Seguridad
- Facilidad de Uso

Por otra arte en el diseño del software según los requerimientos funcionales que exige el cliente se deben tomar ciertas medidas con respecto a los mismos, como son su equivalencia o balance en el Software, es decir, cuando se tiene  mucho de un atributo de calidad se desperdicia otra atributo, lo cual no se quiere en el Software; siempre se debe balancear los atributos para que así sea estable y cumpla en su total con lo requerido. Cada Atributo de calidad debe poseer en si tambien ciertas responsabilidades o funciones  es decir ciertos Requerimientos funcionales dependiendo el atributo, para su funcionamiento, valga la redundancia.

También vemos que los atributos de calidad son dependientes o independientes de las fases de desarrollo del Software , ya que como señale en el párrafo anterior ,cada atributo posee un conjunto de funcionales y no todas se desarrollar en la misma fase, por ende puede o no puede ser  dependiente de la fase según su función adquirida.



La arquitectura  y los atributos de calidad van mucho de la mano ya que algunos pueden conformar elementos arquitectónicos para su implementación como otros no.Un claro ejemplo es la Modificabilidad y Desempeño , ya que ambos conforman ciertas partes arquitectónicas para su diseño e implementación, es decir que cada atributo de Calidad al cual le doy cierto rango según las funcionalidades adquiridas posee también una estructura, la cual puede ser arquitectónica o no arquitectonica según el sistema o Diseño del Software.

"La arquitectura , por si misma es incapaz de logar calidad; Proporciona la base para el logro de la calidad"






martes, 31 de julio de 2012

SOFTWARE ARQUITECTURE IN PRACTICE (CAPITULO III)


En el capitulo anterior se dio a entender la arquitectura de software como un todo del diseño y la construcción del mismo, en este capitulo se  empalma la construcción con la descripción del sistema como un ente de los elementos utilizables para dicha construcción. Ademas se expone mucho la forma y la estructura de el como se lleva a cabo dicho producto.

Empieza enfocado en un caso de estudio donde se muestran varias metodologías o formas para llevar cabo una arquitectura al diseño del software  es decir se muestra los usos, estilos, composiciones y descomposiciones del sistema para su completo funcionamiento, ademas de las estructuras que llevan a cabo  a partir del ciclo del Software. 



El caso que se muestra es una de tantas formas de aplicar la Arquitectura de Software a la vida cotidiana porque en ella se muestra el como un software llevado por medio de una construcción basado en una arquitectura puede ayudar a contrarrestar ciertas maneras de estrategias enemigas y apoyar procesos ya existentes.

SOFTWARE ARQUITECTURE IN PRACTICE (CAPITULO II)

Este Capitulo se centra en identificar ¿Que es la Arquitectura de Software? y que valor significa en el desarrollo de una sistema o proyecto en desarrollo, ademas se describe el como un Ingeniero debe formular dicha construcción  del Software  y que valores agregados se le pueden dar al mismo para hacerlo diferente de otros.

Se indagan muchas cosas al Desarrollar un software que tiene  que ver con la arquitectura y el diseño de este mismo;El ¿Qué?, ¿Cómo? , ¿Dónde? y ¿Porqué?  del diseño que hace que el software sea funcional  y que el cliente al que va diseñado según su arquitectura y su estructura se sienta satisfecho de dicho producto "Claro que en muchas ocasiones no es así"; El autor nos nombra la Arquitectura de Software como la estructura que posee un sistema  desde que se diseña hasta que se implementa partiendo de varias técnicas y propuestas según el cliente al que va dirigido. Ademas se tiene que llevar un patrón del diseño que hace que la Arquitectura que se va a manejar tenga ciertas restricciones o barreras que lo limitan dentro de su construcción. 


Los atributos de Calidad son patrones que se tienen que llevar rigurasamente dentro del Software ya que estos hacen que el producto  tenga cierto grado  de confianza al ser implementado y que no va hacer un Software vulnerable frente a ciertos criterios y caracteristicas que se manejan en el diseño. Siempre hay que partir de una referencia del software para su diseño y desarrollo ya que dicha referencia integra ciertas funcionalidades estructuradas y atributos que conllevan al generar el producto o Software final que se requiere; Dicha referencia hace que el Software se convierta en una Arquitectura con ciertos pilares que lo hacen unico y sobresaliente dentro de otros.