Fundamentos de Máquinas Virtuales y Roles en el Desarrollo de Software
Máquina Virtual (de proceso)
Una máquina virtual es un tipo especial de software cuya misión es separar el funcionamiento del ordenador de los componentes hardware instalados.
Con el uso de máquinas virtuales, podremos desarrollar y ejecutar una aplicación sobre cualquier equipo, lo cual garantiza la portabilidad de las aplicaciones. La máquina virtual actúa como puente entre la aplicación y el hardware concreto del equipo donde se instale.
Entorno de Ejecución
Es un conjunto de utilidades que permiten la ejecución de programas. El Entorno de Ejecución está formado por la máquina virtual y las API. Estos dos componentes se suelen distribuir conjuntamente, ya que necesitan ser compatibles entre sí.
Roles en el Desarrollo de Software
- Analista de sistemas: Su objetivo consiste en realizar un estudio del sistema para dirigir el proyecto hacia las expectativas del cliente, determinando el comportamiento del software. Participa en la etapa de análisis.
- Diseñador de software: Realiza, en función del análisis previo, el diseño de la solución que hay que desarrollar. Participa en la etapa de diseño.
- Analista programador: También conocido como "desarrollador", posee una visión amplia de la programación. Aporta una perspectiva detallada del proyecto, diseñando soluciones amigables para la codificación y participando activamente en ella. Participa en las etapas de diseño y codificación.
- Programador: Se encarga de manera exclusiva de crear el resultado del estudio realizado por analistas y diseñadores. Escribe el código fuente del software y participa en la etapa de codificación.
- Arquitecto de software: Es quien cohesiona el proceso de desarrollo. Conoce e investiga los frameworks y tecnologías, revisando que todo el procedimiento se lleve a cabo de la mejor forma y con los recursos más apropiados.
Modelos de Ciclos de Vida
Modelo en Cascada
Utilizando internet, amplía la información sobre los diferentes modelos de ciclos de vida vistos:
- Cascada.
- Cascada con realimentación.
- Evolutivo (iterativo incremental, espiral).
Señala las ventajas y desventajas de cada uno de ellos y sube la respuesta.