T.4 – El software
El software es un conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora.
Los programadores escriben programas y los introducen en la memoria del computador, donde se almacenan como secuencias de 0 y 1.
Tipos de software según su fin:
- Software de aplicación. Programas y utilidades que cumplen una tarea específica.
- Software de programación. Utilidades digitales que permiten a los programadores desarrollar programas informáticos utilizando diferentes lenguajes de programación o bases de datos.
- Software de sistema. Permite al usuario utilizar la interfaz de SO y conecta las aplicaciones con los recursos de HW.
Creación de software
- Metodología. Describe el Proceso de Elaboración del Software, desde la idea hasta la entrega del producto final. (Ingeniería del software)
- Tecnología. Conjunto de herramientas utilizadas en cada etapa para producir los resultados esperados. (Desarrollo y programación)
Creación de Software: Ciclo de vida clásico
Análisis de requisitos ¿Qué se quiere hacer?:
• En esta fase se analizan las necesidades del cliente y de los usuarios finales del software para determinar qué objetivos debe cumplir
• El resultado de esta fase son dos documentos que contienen la especificación completa de lo que se debe hacer:
+ URD (User Requirement Document)
+ SRD (Software Requirement Document)
• Es importante señalar que los requisitos deben estar bien definidos y recoger todas las necesidades del sistema, dado que son el punto de partida para el resto del proceso.
- Programación:
Es la fase donde se incrementa el código fuente haciendo uso de prototipos y ensayos para corregir errores.
- Pruebas:
Pueden ser llevadas a cabo por: los propios equipos de desarrollo, equipos específicos de pruebas o usuarios finales.
- Documentación y mantenimiento:
Una de las etapas más críticas es el mantenimiento del Software, ya que al utilizarlo como usuario final puede ser que no cumpla todas nuestras expectativas. Durante toda la vida útil del producto, implica tareas de; monitorización, evaluación, reparación y mejora del sistema.
Creación de Software. Metodologías
Existen dos grupos principales:
• Metodologías tradicionales: Los ciclos que se desarrollan son poco flexibles, no se permite realizar cambios y la organización del trabajo es lineal. Destacan:
+ Waterfall. Construcción secuencial con revisión del producto en cada etapa
+ Prototipado. Basada en la construcción de un prototipo para obtener feedback
+ Espiral. Combinación de las dos anteriores con análisis de riesgo
+ Incremental. Construcción progresiva del proyecto
+ Diseño rápido de aplicaciones (RAD). Permite desarrollos de alta calidad en un periodo corto de tiempo, con alto coste.
• Metodologías ágiles: Son flexibles y ágiles, muy utilizadas en la actualidad, metodologías incrementales y creación de equipos de trabajo autónomos. Destacan:
+ Kanban. Se dividen las tareas y se organizan en un tablero como tareas pendientes, en curso y finalizadas.
+ Scrum. Se repite sobre bloques de tiempo cortos y fijos con resultados completos en cada bloque.
+ Lean. Pequeños equipos de trabajo muy capacitados realizan las tareas en poco tiempo. El tiempo y el coste permanecen en segundo plano.
+ Programación Extrema (XP). Basada en relaciones interpersonales. Creación de buen ambiente de trabajo y feedback constante del cliente.
Niveles de programación
- Lenguaje máquina: Leguaje mas primitivo de la programación, basado en la interpretación binaria (0/1)
- Lenguajes de bajo nivel: Fáciles de interpretar y pueden variar según la máquina en la que se esté programando
- Lenguajes de alto nivel: Leguajes más utilizados, dividido en generaciones cronológicas, ej. C, Python, C++…