Un dise?ador de software es responsable de dise?ar e implementar la utilizaci?n adecuada de los sistemas y programas de software para computadoras y sistemas computarizados. B?sicamente, un dise?ador de software necesita comprender la necesidad de un programa, desarrollar una soluci?n y emplear la metodolog?a de manera accesible y lista para el usuario. Para que el dise?o del software sea un ?xito, el arquitecto de software debe utilizar conceptos de desarrollo inform?ticos avanzados y rudimentarios, que generalmente requieren que el ingeniero de software est? bien versado en programaci?n inform?tica general. Estos sistemas creados por el dise?ador pueden ser programas complementarios para el software existente o herramientas de usuario completamente nuevas para un tipo de soluci?n.
La idea general del trabajo diario de un dise?ador de software implica todo, desde el procesamiento de componentes de bajo nivel hasta el an?lisis de algoritmos a gran escala. B?sicamente, el trabajo puede variar desde hacer peque?os ajustes hasta los programas existentes, como simplemente agregar un nuevo campo de datos al contenido establecido, o requerir una investigaci?n avanzada de industrias enteras, como determinar una nueva forma de rastrear cada avi?n en el cielo en un momento dado . Como tal, un ingeniero de software es una de las adiciones m?s esenciales para cualquier equipo inform?tico.
Los conceptos generales utilizados por los dise?adores de software requieren muchas teor?as sofisticadas de operaci?n y t?cnica. Se requiere un dise?ador de software para encontrar formas de reducir la cantidad de informaci?n necesaria en cada paso de la interacci?n humana o con la computadora mediante la creaci?n de alguna forma de jerarqu?a. Esencialmente, esto da como resultado una serie de pasos utilizados durante el proceso. En t?rminos t?cnicos, esto se conoce como abstracci?n y refinamiento.
La estructura de la arquitectura de software se coloca en una estructura de datos sofisticada para permitir el mejor intercambio de informaci?n posible. Los componentes individuales del software se dividen en partes conocidas como m?dulos. Estos m?dulos se colocan en particiones distintas, que se ejecutan en una jerarqu?a que proporciona a los programas una estructura general lista para el usuario.
Las cosas que un dise?ador de software debe considerar al desarrollar un programa o utilidad incluyen compatibilidad, mantenimiento, confiabilidad, seguridad y reutilizaci?n. El software debe ser capaz de interactuar con los componentes disponibles para el usuario y tambi?n debe funcionar como un programa que pueda repararse cuando surjan problemas. Tambi?n debe funcionar continuamente con problemas limitados, incluida la falta de formas viables para que la actividad nefasta da?e su funcionalidad. La mayor?a de las empresas que contratan dise?adores de software tambi?n est?n muy preocupadas por la duraci?n del tiempo durante el cual se utilizar?n los programas. Obviamente, cuanto m?s larga sea la vida ?til de un programa, mejor ser? la soluci?n.