¿Cuál es la diferencia entre el desarrollo del sistema y el desarrollo de software?
Depende de lo que sea el “sistema”. Si el sistema consta de un solo componente de software, la diferencia entre el desarrollo del sistema y el desarrollo del software es extremadamente pequeña. El desarrollo del sistema está incluido en el desarrollo de software.
Sin embargo, un sistema más complejo podría consistir en múltiples componentes de software (tal vez todos ellos operando en una sola CPU / instancia de un entorno operativo o potencialmente podrían estar operando en CPU separadas geográficamente). Luego, el desarrollo del sistema se vuelve más complicado y se cuestiona : Cómo está diseñado el software (por ejemplo, ¿el sistema está centralizado o distribuido?). ¿Qué funcionalidad maneja cada componente? ¿Cómo se comunican los componentes? ¿Es el sistema escalable al agregar más componentes? ¿Qué sucede si falla un componente? ¿Cómo se inicia el sistema? Y así. Ahora, el desarrollo de software está ocurriendo en un nivel más bajo y más detallado que el desarrollo del sistema.
- Cómo comenzar con el desarrollo de software offshore
- ¿Es un trabajo de desarrollador de software de 45k / año generalmente más fácil que un trabajo de 65k +?
- ¿Cuáles son los diferentes tipos de contratos de desarrollo de software?
- ¿Qué tipo de garantía incluyen típicamente los desarrolladores independientes de software móvil en un contrato con un cliente?
- ¿Cuáles son los mejores libros de desarrollo de software que resisten el paso del tiempo?
Cuando trabajaba para Qualcomm, el sistema era un chip de teléfono celular. El diseño del sistema no solo involucraba software (y de ahí las preguntas anteriores) sino también hardware. ¿Cuántas CPU y GPU tendría el sistema? ¿Cuántos periféricos de hardware serían compatibles? ¿Compartirían algunos periféricos recursos (pines, buses, etc.) que podrían impedir ciertas combinaciones de periféricos? ¿Cuál es el modelo de memoria? ¿Las CPU (y GPU) tienen memoria dedicada o memoria compartida? ¿Cómo se ve el voltaje y la escala del reloj? ¿Cómo se comunican todas las partes del chip? ¿Cómo se inicia el hardware (así como el software)? Y así sucesivamente.
En una parte anterior de mi vida como ingeniero que trabajaba con sistemas robóticos, el diseño del sistema incluía problemas mecánicos (¿cuánto pesa ?, ¿qué tan rápido se mueve? ¿Qué capacidad de batería se necesita?) Y problemas físicos (detección auditiva, visual y táctil por ejemplo).
En resumen, el desarrollo del sistema está analizando el sistema en su conjunto y cómo todos los componentes que lo componen conforman el sistema. El desarrollo de software generalmente se centra en un solo componente del sistema, aunque, como se indicó al comienzo de esta respuesta, puede haber elementos de desarrollo del sistema dentro del desarrollo de software.