SOFTWARE

ARQUITECTURA DE SOFTWARE


Arquitectura de software: 


También denominada arquitectura lógica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan un marco definido y claro para interactuar con el código fuente del software.
Una arquitectura de software se selecciona y diseña con base en objetivos (requisitos) y restricciones. Los objetivos son aquellos prefijados para el sistema de información, pero no solamente los de tipo funcional, también otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de información. Las restricciones son aquellas limitaciones derivadas de las tecnologías disponibles para implementar sistemas de información. Unas arquitecturas son más recomendables de implementar con ciertas tecnologías mientras que otras tecnologías no son aptas para determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura de software de tres capas para implementar sistemas en tiempo real.
La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea.



SOFTWARE

El software en su gran mayoría, está escrito en lenguaje de programación de alto nivel, ya que son más fáciles y eficientes para que los programadores los usen, porque son más cercanos al lenguaje natural respecto del lenguaje de maquina. Los lenguajes de alto nivel se traducen a lenguaje de máquina utilizando un compilador o un interprete, o bien una combinación de ambos. El software también puede estar escrito en lenguaje de ensamblador , que es de bajo nivel y tiene una alta correspondencia con las instrucciones de lenguaje máquina; se traduce al lenguaje de la máquina utilizando un ensamblador.

Clasificación del software

Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres tipos:

Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, controladores, herramientas y utilidades de apoyo que permiten el mantenimiento del sistema global. Incluye entre otros:
Sistemas operativos
Controladores de dispositivos
Herramientas de diagnóstico
Herramientas de corrección y optimización
Servidores
Utilidades.


Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas de informática, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluyen en forma básica:
Editores de texto
Compiladores
Intérpretes
Enlazadores
Depuradores
Entornos de desarrollo integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).


Software de aplicación: Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre muchos otros:
Aplicaciones para Control de sistemas y automatización industrial
Aplicaciones ofimáticas Software educativo.


CONTROLADOR DEL DISPOSITIVO
Un controlador de dispositivo o manejador de dispositivo (en inglés: device driver, o simplemente driver) es un programa informático que permite al sistema operativo interaccionar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz (posiblemente estandarizada) para utilizar el dispositivo.
Es una pieza esencial del software, y en particular, del núcleo de un sistema operativo, sin la cual el hardware sería inutilizable.

CONTROLADOR DE PERIFÉRICO.
El controlador de periférico o adaptador de periférico es el componente electrónico de los periféricos de entrada/salida (E/S). El componente mecánico es el dispositivo en sí.
Por lo general, los periféricos de entrada/salida   o unidades E/S consisten en un componente mecánico y un componente electrónico. A menudo es posible separar las dos porciones para proveer un diseño más modular y general.
En las computadoras personal, comúnmente tiene la forma de un chip en la placa base o una tarjeta de circuito integrado que se puede insertar en una ranura de expansión.

 TIPOS DE SOFTWARE


Software Freeware: todo aquel programa que se distribuya gratuitamente, sin ningún coste adicional. También existen autores que lo único que piden es que te registres, es decir, que les digas que usas su programa.

Software Shareware: es otra modalidad de comercialización todavía más extendida, el programa se distribuye con limitaciones, bien como versión de demostración o evaluación, con funciones o características limitadas o con un uso restringido a un límite de tiempo establecido (por ejemplo 30 días).


Software Adware: programas gratuitos en su totalidad pero que incluyen publicidad en su programa. ejemplo de este tipo de programas son muchas appels de juegos que incluyen publicidad.

 Software Libre: puede ser de pago o gratuito, pero una vez adquirido el programa, el usuario tiene acceso al código fuente (las instrucciones del programa) y puede modificarlo y/o ampliarlo y redistribuirlo librementeUn ejemplo de este tipo es el conocido sistema operativo Linux o el paquete de oficina Open Office (similar al Office de Microsoft).

 Programas Software de pago: son programas que tienen un costo que hay que pagar por comprarlo para poder usarlo. De este tipo hay muchos.

Definición de la estructura

Para definir de la mejor forma la estructura de nuestra aplicación con base en la arquitectura de software tenemos 4 etapas principales:
  • Requerimientos: En esta etapa se recolecta la información y se documentan los requerimientos que influyen en la arquitectura de la aplicación, por ejemplo, un color del menú no afecta a la arquitectura, pero si por ejemplo la forma de guardar la información.
  • Diseño: Es la etapa más crucial, aquí se define el uso de tecnologías adecuadas para resolver el problema y no solo porque una tecnología está de moda. También se tienen en cuenta patrones como por ejemplo MVC (Modelo, Vista, Controlador) o arquitectura de microservicios.
  • Documentación: Una vez se ha definido el diseño es necesario comunicarlo de manera eficiente y eficaz a todos los involucrados, es importante crear documentación que sirva como referencia a todos y sea el marco de trabajo para todos.

  • Evaluación: Es importante luego de tener la documentación evaluar, esto se puede hacer incluso sin haber hecho una línea de código y ver con todos los involucrados si hay algo en el diseño que pueda no funcionar y reformarlo, esta evaluación se debería hacer posterior teniendo métricas por ejemplo del rendimiento de la aplicación y saber si un cambio mejora o no dicho rendimiento.









No hay comentarios.:

Publicar un comentario