Está en la página 1de 11

Luis Calvo Álvarez 1 DAW

Tarea 1. Cuestiones
sobre elementos del
software
Introducción:
1. Haz una clasificación del software.
El software se puede clasificar en tres tipos;
De sistema: Es el que utilizamos para comunicarnos con el hardware del ordenador,
por ejemplo: el sistema operativo o los drivers.
De aplicación: Es el software que utilizamos como herramientas para poder trabajar
con el ordenador, como pueden ser Microsoft Office, Adobe Photoshop, Google Chrome.
De desarrollo: Es el software que se usa para poder diseñar software; como editores
de texto, enlazadores, compiladores y otros métodos para escribir código. Son programas como
Dreamweaber, Eclipse o Pycharm.

2. Describe la relación que existe entre los componentes hardware principales de un


computador y el almacenamiento y ejecución del software.
La correcta relación entre los distintos componentes del hardware y el software de nuestro
ordenador son esenciales para el correcto funcionamiento del mismo, la relación hardware-software
entre algunos de los componentes esenciales con el software es:
Disco duro: Guarda permanentemente cualquier información que haya en él, sin importar
que el sistema esté encendido o apagado.
Memoria RAM: Memoria volatil que almacena de forma temporal la información que pase
por ella en código binario. En el momento en el que deje de pasar corriente eléctrica a través de ella
toda la información que contuviese queda borrada, sin opción ninguna a recuperarla.
CPU: Es el cerebro del ordenador y es el que se encarga de ejecutar la información en
código binario que le llega a través de la memoria RAM.
E/S: Son los perifericos como teclados, ratones, que actúan como interfaces entre el sistema
operativo y el usuario. Facilitan la entrada de comandos al software y la salida de información al
usuario.

3. Define los siguientes conceptos:


Código fuente.
Texto con pasos en forma de instrucciones que procesará y ejecutará el ordenador.
Código objeto.
Traducción compilada por el ordenador del código fuente escrito por un programador.
Código ejecutable.
Se obtiene a través del código objeto y el código fuente. Es el proceso final de la creación de
un programa y suele venir en forma de ejecutable .EXE o .COM. dependiendo del sistema operativo
para el que vaya a ser utilizado.
Luis Calvo Álvarez 1 DAW

CICLO DE VIDA DEL SOFTWARE


1. Define "Ciclo de vida del software".
Son las distintas fases y etapas que un software atraviesa desde su concepción inicial hasta
que se queda obsoleto. Estas etapas están diseñadas para planificar, desarrollar, probar y mantener el
software de manera efectiva y eficiente.
2. Nombra las fases principales del desarrollo de software y explica brevemente que se hace en
cada una de ellas.
Análisis:

3. Explica brevemente en qué consiste el modelo en cascada cuando hablamos de desarrollo de


software.
El modelo en cascada es uno de los enfoques más antiguos para el desarrollo de software. En
este modelo el proceso de desarrollo se divide en etapas secuenciales, donde cada etapa debe
completarse antes de pasar a la siguiente.
4. Ventajas e inconvenientes del modelo en cascada.
Ventajas: Tiene una estructura clara y fácil de comprender, es fácil de gestionar por su
linealidad, donde el final de un proceso es el principio del siguiente.
Inconvenientes: Es poco adaptable a los cambio debido a su rígida estructura.

5. ¿Qué se entiende por verificación? ¿Y por validación?


Verificación es el proceso por el que pasa el proyecto para comprobar que sigue las pautas
establecidas y que el producto se esta construyendo correctamente.
Validación consiste en comprobar si el producto final es lo que pedía el cliente y si está
satisfecho con el resultado.

6. Explica como funciona el modelo de desarrollo mediante creación de prototipos.


En algunas ocasiones el cliente puede no tener claros los requisitos que quiere que cumpla el
programa por no tener experiencia o por falta de información. Se crea un prototipo básico del
programa para que el cliente pueda probarlo y añadir requisitos. El prototipo puede ser de dos tipos:
Prototipo rápido: Se crea en otro lenguaje o herramientas y al finalizar la prueba se desecha.
Prototipo evolutivo: Se crea en el mismo lenguaje que en el que se vaya a trabajar y cuando
finaliza la prueba se usa como base para continuar el proyecto.
7. Explica como funciona el modelo espiral cuando se aplica al desarrollo orientado a objetos.
Se basa en la idea de construir el sistema de forma incremental, con múltiples
iteraciones, y cada iteración repite las mismas fases del modelo en espiral: análisis, diseño,
codificación y pruebas orientadas a objetos.
8. ¿Qué cuatro principios rigen el desarrollo ágil expresados en el Manifiesto Ágil?
Individuos e interacciones sobre procesos y herramientas: Se enfoca en la comunicación cara a cara
y a colaboración directa.
Software funcionando sobre documentación extensiva: Enfatiza la importancia de tener un producto
de software que funcione y cumpla con los requisitos del cliente.
Colaboración con el cliente: Destaca la importancia de involucrar al cliente de manera continua
durante el desarrollo del proyecto.
Respuesta ante el cambio: En lugar de aferrarse a planes rígidos, los equipos ágiles están preparados
para adaptarse a los cambios en los requisitos del proyecto.

9. ¿Qué es una historia de usuario? Consulta el siguiente enlace:


https://es.wikipedia.org/wiki/Historias_de_usuario

Una historia de usuario es una técnica utilizada en el desarrollo ágil de software para describir una
funcionalidad deseada del producto desde el punto de vista del usuario final.

10. Haz un resumen sobre que se entiende por Lean software y qué principios lo rigen.
Consulta el siguiente enlace:
https://es.wikipedia.org/wiki/Lean_software_development

Es una metodología que busca optimizar el proceso de desarrollo de software para eliminar
desperdicios y entregar continuamente valor al cliente. Se rige por los siguientes principios:
1. Eliminar el desperdicio
2. Ampliar el aprendizaje
3. Decidir lo último posible
4. Entregar lo mas rápido posible
5. Empoderar al equipo
6. Optimizar el Todo
Luis Calvo Álvarez 1 DAW

11. KANBAN. Estudia las ventajas e inconvenientes de tener una pizarra web digital para la
metodología Kanban. Puedes consultar los siguientes enlaces:
https://leankit.com/learn/kanban/kanban-board/

https://trello.com/es

https://taiga.io/

https://kanbantool.com/es/

Ventajas:
Acceso Remoto: Permite colaboración en equipo desde cualquier lugar.
Actualizaciones en Tiempo Real: Todos ven los cambios instantáneamente, mejorando la
transparencia.
Gestión Visual: Ofrece una vista visual del flujo de trabajo, identificando problemas
fácilmente.

Inconvenientes:
Dependencia Tecnológica: Problemas técnicos pueden interrumpir el trabajo.
Falta de Interacción Personal: Puede carecer de interacción cara a cara, vital para la
comunicación efectiva.
Seguridad y Privacidad: Preocupaciones sobre la seguridad de los datos y la privacidad de la
información del equipo.

12. KANBAN. Haz un resumen de la metodología Kanban e indica sus diferencias frente a
SCRUM. Puedes consultar el siguiente enlace:
https://es.atlassian.com/agile/kanban

Kanban:

Permite cambios en cualquier momento.


No define roles específicos.
No tiene reuniones de planificación fijas.
Se centra en medir el flujo de trabajo y la eficiencia del equipo.
Scrum:

Organizado en sprints de tiempo fijo.


Tiene roles fijos (Scrum Master, Product Owner, Development Team...).
Requiere reuniones de planificación al inicio de cada sprint.
Entregas al final de cada sprint.

13. SCRUM. Explica como funciona Scrum. Consulta los siguientes enlaces:
https://proyectosagiles.org/que-es-scrum/

https://proyectosagiles.org/como-funciona-scrum/

La metodología SCRUM consiste en abordar cualquier proyecto dividiéndolo en sprints o partes


más pequeñas. Una vez finalizado el periodo para un sprint, se determinan las historias o las
entradas de backlog del producto que se pueden implementar durante este ciclo de sprint.

14. SCRUM. Define los siguientes términos:


Product backlog:
Consiste en la elaboración de un listado de todas aquellas tareas que queremos realizar
durante el desarrollo de un proyecto con el objetivo de que estas sean visibles para todo el equipo.
Sprint backlog:
Es una lista de tareas identificadas por el scrum team, ésta deberá ser completada durante
cada sprint. El sprint backlog es representado a través de un tablero de tareas.

15. SCRUM. En la terminología Scrum qué terminos se utilizan como sinónimo de:
Jefe de proyecto: Scrum Master
Cliente: Product Owner
Equipo de Desarrollo: Development Team
Luis Calvo Álvarez 1 DAW

16. SCRUM. Haz un resumen de los requisitos para poder utilizar Scrum. Consulta el
siguiente enlace:
https://proyectosagiles.org/requisitos-de-scrum/

Equipo Comprometido: Un equipo colaborativo y organizado.


Product Owner: Una persona responsable de definir y priorizar las funcionalidades.
Scrum Master: Un líder que guíe al equipo.
Participación Activa de Interesados: Colaboración constante con clientes y stakeholders.
Backlogs: Listas de tareas claras y priorizadas.
Reuniones Regulares: Planificación del Sprint, Reuniones Diarias, Revisión del Sprint,
Retrospectiva.
Transparencia y Comunicación: Información clara y comunicación abierta.
Cultura de Mejora Continua: Disposición para aprender y adaptarse constantemente.
Apoyo Organizacional: Soporte de la organización para prácticas ágiles.

17. XP. Explica los 5 valores de la Programación Extrema.

Comunicación: Fomenta la comunicación abierta y constante entre el equipo y los stakeholders.


Simplicidad: Prioriza soluciones simples y evita la complejidad innecesaria en el desarrollo.
Retroalimentación: Busca feedback frecuente para ajustar el producto y mejorar continuamente.
Valentía: Fomenta la disposición para tomar decisiones difíciles y enfrentar cambios.
Respeto: Valora las opiniones y habilidades de cada miembro del equipo.
18. XP. ¿Cuáles son las características distintivas de XP frente a otras metodologías ágiles?
Explícalas. Puedes consultar el siguiente enlace:
http://www.davidvalverde.com/blog/introduccion-a-la-programacion-extrema-xp/

Pruebas Continuas : Se escriben pruebas antes del código para garantizar su calidad.
Programación en Parejas: Dos programadores trabajan juntos en una misma computadora para
mejorar la calidad del código.
Cliente en Sitio: Un representante del cliente está disponible en todo momento para tomar
decisiones rápidas.
Iteraciones Cortas: Sprints breves y entregas frecuentes para adaptarse rápidamente a los cambios.
Simplicidad y Enfoque en el Valor: Prioriza características valiosas y promueve diseños simples y
claros.
Refactorización Continua: Mejora constante del código sin cambiar su funcionalidad.
Estimación Relativa: Utiliza estimaciones relativas en lugar de precisas para evaluar el tamaño de
las tareas.
Cambio Incremental: Permite adaptarse a los cambios en los requisitos incluso en etapas avanzadas
del desarrollo.
Enfoque en las Personas: Valoriza la colaboración, la comunicación efectiva y un ambiente de
trabajo positivo.

Lenguajes de Programación

1. ¿Qué diferencia existe entre los lenguajes declarativos y los imperativos?. Nombra al menos 2 de
cada tipo.

Lenguajes Declarativos:
Describen el resultado deseado sin especificar los pasos para llegar a ese resultado.
Ejemplos: SQL (para bases de datos), HTML (para páginas web).

Lenguajes Imperativos:
Especifican pasos detallados para lograr un resultado específico.
Ejemplos: C, Python (en ciertos contextos).
Luis Calvo Álvarez 1 DAW

2. ¿Explica qué es compilar? ¿Explica qué es interpretar?


Compilar:
Compilar es transformar código fuente a un programa ejecutable. Un compilador traduce el
código a un lenguaje que la computadora puede entender.

Interpretar:
Interpretar es leer y ejecutar el código fuente línea por línea en tiempo real. No se crea un
archivo ejecutable separado; el código se ejecuta directamente desde el código fuente. Esto permite
una ejecución más flexible.

3. Ventajas de los lenguajes compilados.


Mayor Rendimiento: Los programas compilados suelen ser más rápidos y eficientes en
comparación con los interpretados.
Mayor Seguridad: Al ocultar el código fuente, los programas compilados ofrecen mayor
seguridad y confidencialidad.
Optimización para Hardware: Se pueden optimizar para aprovechar características
específicas del hardware, mejorando el rendimiento.
Eficiencia de Recursos: Utilizan menos recursos del sistema en comparación con programas
interpretados.

4. Ventajas de los lenguajes interpretados.

Facilidad: Son fáciles de aprender y usar, ideal para principiantes.


Portabilidad: Pueden ejecutarse en diferentes plataformas sin necesidad de recompilar.
Depuración Fácil: Proporcionan mensajes de error detallados y permiten cambios en tiempo real
para una depuración sencilla.
Desarrollo Rápido: Facilitan el desarrollo rápido y las pruebas inmediatas de ideas.
Flexibilidad: Permiten cambios y adaptaciones durante la ejecución del programa.
Interoperabilidad: Se integran fácilmente con otros sistemas y tecnologías.
Despliegue Simple: No requieren un proceso de compilación complejo, lo que facilita el despliegue
del software.
5. Nombra 2 lenguajes compilados y otros 2 interpretados.
Compilados: C, C++
Interpretados: Python, JavaScript

6. ¿Puede considerarse código objeto el bytecode generado en Java tras la compilación?


Explica la respuesta.
Sí, el bytecode generado en Java tras la compilación puede considerarse código objeto. Aunque no
es código de máquina directamente ejecutable, es la representación intermedia que se ejecuta en la
Máquina Virtual Java.

7. Pon un ejemplo de lenguaje de los siguientes tipos:


Bajo Nivel: Assembly
Nivel Medio: C
Nivel Alto: Python

8. ¿Qué paradigma de programación siguen los siguientes lenguajes?


Puedes consultar el siguiente enlace:
https://es.wikipedia.org/wiki/Paradigma_de_programaci%C3%B3n

C: Imperativo
C++: Imperativo
SQL: Declarativo
Java: Imperativo y estructurado
Javascript: Imperativo y orientado a objetos
Lisp: Funcional
Prolog: Lógico y declarativo
Luis Calvo Álvarez 1 DAW

9. Explica qué criterios pueden seguirse a la hora de elegir un lenguaje de de programación


para el desarrollo software.
Requisitos del Proyecto: Tipo de aplicación y funcionalidades necesarias.
Facilidad de Uso: Aprender y trabajar cómodamente.
Rendimiento: Eficiencia y uso de recursos.
Ecosistema y Bibliotecas: Disponibilidad de herramientas y frameworks.
Seguridad: Protección de datos y transacciones.
Costos: Licencias, herramientas y servicios relacionados.
Interoperabilidad: Integración con otras tecnologías.
Tendencias del Mercado: Relevancia actual y futura en la industria.

También podría gustarte