Diseños de sofware
Diseño arquitectonico
La funcionalidad es en gran medida ortogonal a los
requisitos de calidad:
La funcionalidad es la capacidad del sistema de hacer lo
que se pretendía que hiciese;
Los sistemas se descomponen en elementos para lograr
variados propósitos, más allá de la funcionalidad:
Las opciones de arquitectura promueven ciertas
cualidades al tiempo que implementan la funcionalidad
deseada.
cualidades
La medida en que un sistema alcanza sus requisitos de
calidad depende de las decisiones de arquitectura:
la arquitectura es crítica para alcanzar los atributos de
calidad;
las cualidades del producto deben diseñarse como parte
de la arquitectura;
un cambio en la estructura que mejora una cualidad suele
afectar las otras cualidades;
la arquitectura sólo puede permitir, no garantizar, que
cualquier requisito de calidad se alcance.
Arquitectura de aplicaciones
el proposito es cubir toda y cada una de las necesidades de la empres u organizacion
las principales caracteristicas de una arquitectura de aplicacion es encapsular las clase
El arquitecto trata con la información del problema y diseña una solución, la cual satisface los requerimientos funcionales y no funcionales del cliente, siendo una solución flexible que evoluciona cuando los requerimientos cambian
Responsabilidades Tecnológicas
identificar los casos de uso significantes para la arquitectura
guiar el desarrollo de prototipos
Para que un arquitecto sea polifacético, debe tener conocimiento del negocio o del dominio del problema. Puede obtener este conocimiento mediante la experiencia o la formación.
Reutilización de Software
Se podria considerar que se usa este tipo de proceso para garantizar varios factores tales como la confiabilidad ya que es un software existente el % de fallas es casi 0% lo cual ayudara a la eficiencia del flujo del sistema mientras que cuando de reportar el sistema como tal y se consta de poco tiempo ayuda en gran manera. Algo elemental que se basa este tipo de sistema es que no se modifica nada de lo ya existente sino que mas bien se configura para los nuevos clientes
Reutilizacion de componentes
Cuando se maneja lo que son textos en cuanto almacenamiento se refiere se puede reutilizar los componentes tales como las base de datos
Reutilizacion de funciones y objetos
existen cosas en comun que manejan las empresas y esto por medio de los sistema se lo lleva a cabo y es el hecho de saber estadisticamente el comportamiento financiero de la empresa por medio de funciones matematicas, esto se logra o se hace uso con sistemas ya existente para saber los niveles de alza o baja en ventas o servicios que se ofrezcan segun los requerimientos del usuario
Desarrollo de sistemas criticos
cuando de organizacion se trata la manera en la que se debe de llevar a cabo los procesos deben de ser tratados con pinzas y ser minuciosos es por eso que se manejan capaz que son los niveles y conjunto de interrelaciones entre lo tangible ( hardware ) y lo integible (software) esto para manejar las relaciones por procesos que ayudaran a tener un mejor orden que den eficiencia en el manejo de todo un sistema
existen 3 tipos de sistemas entre ellos estan los de seguridad que son aquellos que pueden haber perdida de vidas , tambien estan los de mision que son aquellos sistemas criticos que pueden ocacionar errores en el accionar de actividades de un sistema y por ultimo el critico de negocio que puede provocar perdida muy elevadas de dinero
Diseño de interfaz de usuario
su objetivo fundamental es la manera en la que se atrae al usuario de manera atractiva en otras palabra la vizulizacion agradable
por otro lado se podria considerar que es la manera interactiva en la que se crea una comunicacion entre el ususario y la computadora
reglas
diseño de interfaz con los componentes del software
diseño de interfaz con los productores y los consumidores
diseño de interfaz con usuario y computadora
Las interfaces básicas de usuario son aquellas que incluyen elementos como menús, ventanas, contenido gráfico, cursor, los beeps y algunos otros sonidos que la computadora hace, y en general, todos aquellos canales por los cuales se permite la comunicación entre el ser humano y la computadora.
Atendiendo a como el usuario puede interactuar con una interfaz, existen varios tipos de interfaces de usuario:
Interfaz de línea de comandos (Command-Line Interface, CLI): Interfaces alfanuméricas (intérpretes de comandos) que solo presentan texto.
Interfaces gráficas de usuario (Graphic User Interface, GUI): Permiten comunicarse con la computadora de forma rápida e intuitiva representando gráficamente los elementos de control y medida.
Interfaz natural de usuario (Natural User Interface, NUI): Pueden ser táctiles, representando gráficamente un «panel de control» en una pantalla sensible al tacto que permite interactuar con el dedo de forma similar a si se accionara un control físico; pueden funcionar mediante reconocimiento del habla, como por ejemplo Siri; o mediante movimientos corporales
Arquitectura de sistemas distribuidos
estas arquitecturas de software establecen como son organizados varios componentes del software y como interactuan entre ellos
seguridad de los sitemas distribuidos
seguridad
facilita la repacion de los fallos con los distintos componente del software
redes
existen porblemas de fallo de transmision muy comunes
Tolerancias a fallo
pueden existir fallos operativos y fallo de componentes
La idea básica tras el estilo arquitectónico en capas es simple: los componentes están organizados en
forma de capas, en la que un componente en una determinada capa puede llamar a componentes en la
capa inmediata inferior. Una observación clave es que el control generalmente fluye de capa en capa:
Las arquitecturas centradas en datos evolucionan en torno a la idea de que los procesos se
comunican a través de un repositorio o medio común (ver Figura 2). Por ejemplo, una cantidad importante
de aplicaciones distribuidas en las que la comunicación se establece por medio de un archivo compartido a
través de un sistema de archivos distribuidos
Ingenieria de Software basado en componentes
debido a la ampliabilidad del sistema se hace uso de la abstraccion o separacion de funcionalidad y objetos en un sistema ya que abarcan grandes cosas como funciones que deben de ejecutar un proceso en el sistema
EJEMPLO
en servicios de web y, más recientemente, en las arquitecturas orientadas a servicios (SOA), por el que un componente es convertido por el servicio web en un servicio y consiguientemente hereda otras características más allá de las de un componente ordinario
cuando los componentes de software interactúan directamente con los usuarios, debe ser considerada la prueba de usabilidad basada en componentes.
Toma un significativo esfuerzo y conciencia para escribir un componente de software que sea efectivamente reutilizable. El componente necesita estar:
completamente documentado
probado a fondo
Caracteristicas
ESTANDARIZADO
Deben de ser estandares en lo que compete a implementacion, documentacion y por ultimo tener su composición
Independiente
la implementacion de los componentes deben de manejar una autonomia en lo que es la factibilidad de implentacion y componerlo.
Componible
debe de tener todos los componentes una interfaz definida publicamente
Implementable
un sistema debe de poderse ejecutar independiente de la plataforma
Documentado
para que exita una mejor eficiencia en la circulacion o uso de un sistema siempre debe de estar documentado para poder ganar clientela al maximo
Evolucion del Software
Es un proceso autoregulativo los atributos de los sistemas tales como el tamaño , tiempo de entrega y el numero de errores en el documentado , el cunjunto de las mejoras de estos parametros son lo que se denominan la evolucion del software
Cuando el software falla, pueden ocurrir daños económicos enormes y ocasionar sufrimiento humano.
Luchamos por construir software informático que tengan fiabilidad y alta calidad.
Nuestra habilidad de soportar y mejorar los programas existentes se ve amenazada por diseños pobres y recursos inadecuados.
En respuesta a estos problemas, las prácticas de la Ingeniería del Software se están adoptando en toda la industria