Podcast
Questions and Answers
¿Cuál es el propósito principal del ciclo de vida del software?
¿Cuál es el propósito principal del ciclo de vida del software?
- Desplegar programas sin comprobación previa.
- Crear programas de manera ineficiente.
- Desarrollar programas de mejor calidad de manera más eficiente. (correct)
- Ignorar los requerimientos del usuario.
¿Qué aspecto se debe documentar en un proyecto de software, independientemente de si es desarrollado por una persona o un equipo?
¿Qué aspecto se debe documentar en un proyecto de software, independientemente de si es desarrollado por una persona o un equipo?
- Todos los procesos siguiendo una estructura y normas establecidas. (correct)
- Solo el código fuente.
- Ningún aspecto, ya que la documentación es opcional.
- Únicamente la interfaz de usuario.
¿Cuál es una de las razones para documentar un proyecto de software?
¿Cuál es una de las razones para documentar un proyecto de software?
- Dificultar la planificación y realización de cambios.
- Asegurar que el nuevo equipo se adapte más fácilmente al proyecto. (correct)
- Limitar la autonomía de los usuarios del software.
- Aumentar los malentendidos con el cliente.
¿Qué aspecto es importante incluir en la documentación para facilitar su entendimiento y uso?
¿Qué aspecto es importante incluir en la documentación para facilitar su entendimiento y uso?
¿Por qué es importante indicar claramente la fecha de edición y la versión del programa en la documentación?
¿Por qué es importante indicar claramente la fecha de edición y la versión del programa en la documentación?
¿Cuál es una de las ventajas de usar un sistema de control de versiones en el desarrollo de software?
¿Cuál es una de las ventajas de usar un sistema de control de versiones en el desarrollo de software?
En el contexto del control de versiones, ¿qué significa 'trazabilidad'?
En el contexto del control de versiones, ¿qué significa 'trazabilidad'?
¿Qué es 'man' en sistemas operativos como GNU/Linux?
¿Qué es 'man' en sistemas operativos como GNU/Linux?
Si quieres obtener información sobre la sección 5 del manual de 'passwd', ¿qué comando usarías?
Si quieres obtener información sobre la sección 5 del manual de 'passwd', ¿qué comando usarías?
¿Qué función tiene la sección 'SINOPSIS' en las páginas del manual de 'man'?
¿Qué función tiene la sección 'SINOPSIS' en las páginas del manual de 'man'?
¿Cuál es el propósito principal de MediaWiki?
¿Cuál es el propósito principal de MediaWiki?
¿Cuál es el formato utilizado para escribir las páginas en MediaWiki?
¿Cuál es el formato utilizado para escribir las páginas en MediaWiki?
En MediaWiki, ¿cómo se nombran las páginas que no pertenecen al espacio de nombres principal?
En MediaWiki, ¿cómo se nombran las páginas que no pertenecen al espacio de nombres principal?
¿Cuál es el propósito de las plantillas en MediaWiki?
¿Cuál es el propósito de las plantillas en MediaWiki?
¿Qué diferencia hay entre incluir una plantilla 'por referencia' en MediaWiki frente a incluirla 'por sustitución'?
¿Qué diferencia hay entre incluir una plantilla 'por referencia' en MediaWiki frente a incluirla 'por sustitución'?
¿Cuál es el propósito principal de Javadoc?
¿Cuál es el propósito principal de Javadoc?
¿Cómo deben estar escritos los comentarios para que Javadoc los tome en cuenta?
¿Cómo deben estar escritos los comentarios para que Javadoc los tome en cuenta?
¿Qué etiqueta se usa en Javadoc para indicar el autor de una clase o interfaz?
¿Qué etiqueta se usa en Javadoc para indicar el autor de una clase o interfaz?
¿En el contexto de los sistemas de control de versiones, qué es un 'repositorio'?
¿En el contexto de los sistemas de control de versiones, qué es un 'repositorio'?
¿Qué ocurre si dos programadores modifican el mismo archivo del repositorio y tratan de subir sus cambios?
¿Qué ocurre si dos programadores modifican el mismo archivo del repositorio y tratan de subir sus cambios?
En el contexto de control de versiones, ¿qué representa una 'rama'?
En el contexto de control de versiones, ¿qué representa una 'rama'?
¿Cuál de las siguientes NO es una herramienta de control de versiones?
¿Cuál de las siguientes NO es una herramienta de control de versiones?
¿Qué ventajas ofrece el modelo de ramificación flexible de Git?
¿Qué ventajas ofrece el modelo de ramificación flexible de Git?
En Git, ¿dónde se almacenan los archivos para modificarlos?
En Git, ¿dónde se almacenan los archivos para modificarlos?
¿Qué función cumple el 'área de preparación' (staging area) en Git?
¿Qué función cumple el 'área de preparación' (staging area) en Git?
Si un archivo ha sido modificado en el directorio de trabajo, pero aún no se ha añadido al área de preparación, ¿en qué estado se encuentra?
Si un archivo ha sido modificado en el directorio de trabajo, pero aún no se ha añadido al área de preparación, ¿en qué estado se encuentra?
¿Qué comando de Git se utiliza para añadir el contenido de un archivo al área de preparación?
¿Qué comando de Git se utiliza para añadir el contenido de un archivo al área de preparación?
¿Qué comando de Git muestra el estado del área de preparación, indicando archivos y carpetas con diferencias?
¿Qué comando de Git muestra el estado del área de preparación, indicando archivos y carpetas con diferencias?
¿Cuál es el propósito principal de GitHub?
¿Cuál es el propósito principal de GitHub?
Para los estudiantes de informática, ¿cuál es uno de los beneficios clave de usar GitHub?
Para los estudiantes de informática, ¿cuál es uno de los beneficios clave de usar GitHub?
¿Qué ofrecen las cuentas Pro de GitHub?
¿Qué ofrecen las cuentas Pro de GitHub?
¿Qué significa CI/CD en el contexto de GitHub?
¿Qué significa CI/CD en el contexto de GitHub?
En el contexto de CI/CD, ¿qué implica el concepto de 'Integración Continua' (CI)?
En el contexto de CI/CD, ¿qué implica el concepto de 'Integración Continua' (CI)?
¿Qué herramienta permite automatizar la detección e indetificar conflictos y realizar la pruebas de funcionalidad por cada cambio en un repositorio en Github?
¿Qué herramienta permite automatizar la detección e indetificar conflictos y realizar la pruebas de funcionalidad por cada cambio en un repositorio en Github?
Flashcards
¿Qué es el ciclo de vida del software?
¿Qué es el ciclo de vida del software?
Serie de procesos que determinan el desarrollo, mantenimiento y uso del software.
¿Qué es un documento de requisitos?
¿Qué es un documento de requisitos?
Documento consensuado con el cliente que define los requisitos del proyecto para evitar malentendidos.
¿Qué es la documentación homogénea?
¿Qué es la documentación homogénea?
Tener un estándar y plantillas para asegurar una documentación consistente.
¿Por qué incluir la versión en la documentación?
¿Por qué incluir la versión en la documentación?
Signup and view all the flashcards
¿Qué son las modificaciones del software?
¿Qué son las modificaciones del software?
Signup and view all the flashcards
¿Qué es la reversión de cambios?
¿Qué es la reversión de cambios?
Signup and view all the flashcards
¿Qué es 'man' en sistemas operativos?
¿Qué es 'man' en sistemas operativos?
Signup and view all the flashcards
¿Qué hace 'man passwd'?
¿Qué hace 'man passwd'?
Signup and view all the flashcards
¿Qué es MediaWiki?
¿Qué es MediaWiki?
Signup and view all the flashcards
¿Quién puede editar en MediaWiki?
¿Quién puede editar en MediaWiki?
Signup and view all the flashcards
¿Qué es Wikitexto?
¿Qué es Wikitexto?
Signup and view all the flashcards
¿Qué es Javadoc?
¿Qué es Javadoc?
Signup and view all the flashcards
¿Qué es el área de preparación en Git?
¿Qué es el área de preparación en Git?
Signup and view all the flashcards
¿Qué es el Directorio de Git (Git directory) o repositorio?
¿Qué es el Directorio de Git (Git directory) o repositorio?
Signup and view all the flashcards
¿Qué es un archivo no modificado en Git?
¿Qué es un archivo no modificado en Git?
Signup and view all the flashcards
¿Qué es un archivo modificado en Git?
¿Qué es un archivo modificado en Git?
Signup and view all the flashcards
¿Qué hace el comando 'branch' en Git?
¿Qué hace el comando 'branch' en Git?
Signup and view all the flashcards
¿Qué hace el comando 'checkout' en Git?
¿Qué hace el comando 'checkout' en Git?
Signup and view all the flashcards
¿Qué hace el comando 'fetch' en Git?
¿Qué hace el comando 'fetch' en Git?
Signup and view all the flashcards
¿Qué es CD(Continuous Delivery) en el modelo de Github?
¿Qué es CD(Continuous Delivery) en el modelo de Github?
Signup and view all the flashcards
¿Qué es una cuenta Pro de GitHub?
¿Qué es una cuenta Pro de GitHub?
Signup and view all the flashcards
¿Que beneficios otorga Github?
¿Que beneficios otorga Github?
Signup and view all the flashcards
Study Notes
Introducción
- Desde la concepción hasta el desuso, el software pasa por procesos que determinan su desarrollo, mantenimiento y uso
- Este conjunto de procesos se denomina ciclo de vida del software, mejorando la calidad y eficiencia de los programas
- Los modelos de ciclo de vida del software (cascada, espiral, prototipos) comparten aspectos clave, la recolección y análisis de requerimientos del usuario, la especificación de lo que debe hacer el programa, la implementación o desarrollo, la comprobación del buen funcionamiento, el despliegue y explotación en un entorno real, y el mantenimiento para adaptarse o corregir errores
- Cada aspecto genera documentación relevante, como manuales de instalación, usuario o diseño interno
- En las fases de implementación y mantenimiento, existen copias del programa, requiriendo un control de versiones para evitar la pérdida de cambios recientes o el uso de versiones antiguas
- Tanto la documentación como el control de versiones son críticos en el ciclo de vida del software
Documentación del Software
- Es esencial establecer procedimientos de documentación en proyectos de software, independientemente del tamaño o complejidad
- Un proyecto con documentación accesible y de calidad evita problemas
- Un documento consensuado con el cliente sobre los requerimientos evita malentendidos sobre el cumplimiento de las funciones pactadas en el producto final
- Facilita la planificación y ejecución de modificaciones (ej. debido a cambios en la moneda de un país) al tener documentación interna para los desarrolladores
- Facilita la incorporación de un nuevo equipo si parte del equipo abandona el proyecto
- Un buen manual de usuario o de administración incrementa la autonomía del usuario, disminuye consultas y aumenta la satisfacción
- La falta de documentación suele deberse a plazos de entrega ajustados por mala planificación, falta de cultura empresarial y la percepción de los desarrolladores de que es un trabajo tedioso
- Al redactar documentación se debe tener en cuenta que sea entendible para el colectivo al que va dirigida, estructurar bien el documento incluyendo un índice para encontrar la informacion rápido, definir un estandar para conseguir homogeneidad y escribir una buena introducción que permita al lector saber que va a encontrar en ese documento
- Es muy importante incluir ejemplos contextualizados que aclaren explicaciones, acompañar el texto de esquemas y capturas de pantalla con instrucciones precisas, usar un formato estándar de archivo fácil de mantener e indicar la fecha de edición de la documentación y la versión del programa relacionada, documentar lo necesario y revisar la vigencia de los documentos
- Es fundamental que la documentación sea accesible y permita la participación de los usuarios en su actualización
Control de Versiones
- Durante la vida de un programa, se realizan modificaciones para correcciones de errores, mejoras o adaptaciones a nuevas necesidades o clientes
- Controlar las modificaciones puede ser complejo, especialmente en aplicaciones de gran tamaño con varios desarrolladores
- Es buena práctica crear copias antes de modificar archivos, para revertir si es necesario
- El control de cambios es imprescindible para el desarrollo ordenado de un proyecto, saber en qué versión se trabaja y qué desarrollador modificó cada versión, ya que ayuda a volver a versiones anteriores si es necesario
- Un sistema de control de versiones facilita volver a estados anteriores del proyecto, favorece la concentración de los equipos y permite la trazabilidad de los cambios
Instalación de Git y prueba de funcionamiento
- Instalación, creación de un repositorio y pruebas de funcionamiento en una máquina real o virtual como Ubuntu Desktop
- Los pasos son: instalar Git y configurar usuario/email, crear subdirectorio "proyecto", y crear un repositorio dentro, usando
status
para ver su información - Creación de un archivo, moverlo del directorio al área de ejecución, y al repositorio.
- Primero, instalar Git y configurar usuario y correo:
admin01@cliente:~$ sudo apt install git admin01@cliente:~$ git config --global user.name pol admin01@cliente:~$ git config --global user.email [email protected]
- Si el nombre tiene espacios, encerrar entre comillas dobles el nombre:
git config --global user.name “Pol Green”
- Segundo, asegurar estar en el directorio de usuario antes de crear el directorio:
admin01@cliente:~$ cd ~ admin01@cliente:~$ mkdir proyecto
- Tercero, se crean repositorios dentro del directorio del proyecto:
admin01@cliente:~$ cd proyecto admin01@cliente:~/proyecto$ git init
- Inicializa un repositorio Git vacío en
/home/admin01/proyecto/.git/
- Ejecutar
ls -a
:admin01@cliente:~/proyecto$ ls -a .git
- Usar
status
para ver la información:admin01@cliente:~/proyecto$ git status
- Aparece que estás en la rama
master
y que no se ha hecho ningún commit - Cuarto, para este ejemplo, se ha creado el
index.html
:admin01@cliente:~/proyectos nano index.html
- Al consultar el estado (
git status
) indica queindex.html
no se está rastreandoadmin01@cliente:~/proyecto$ git status
- Para pasar el archivo a seguimiento ("área de preparación") usar:
admin01@cliente:~/proyecto$ git add index.html
- Consultando el estado (
git status
) de nuevo, figura ahoraadmin01@cliente:~/proyecto$ git status
- Para incluir el archivo en el repositorio usar
commit -m <miv1>
indicando la versiónadmin01@cliente:~/proyecto$ git commit -m v1
- Para consultar el histórico de la versión, ejecutar
log
:admin01@cliente:~/proyecto$ git log
Documentación de Software
- La unidad enfatiza la utilidad, baja frecuencia y consideraciones clave al redactar la documentación en el software
- En este punto, la sección se centra en las herramientas de documentación internas y externas más usadas
Man
-
Es la aplicación de línea de comandos más usada para acceder a manuales de referencia en sistemas UNIX, BSD, MAC OS o GNU/Linux
-
Los manuales de referencia se clasifican del 1 al 8
- Programas ejecutables y órdenes del Shell
- Llamadas del sistema (funciones del núcleo)
-
Llamadas a Biblioteca (funciones de biblioteca)
-
Archivos especiales, normalmente de configuración
-
Formatos de archivo y convenios
-
Juegos
-
Miscelánea (macros y convenciones)
-
Órdenes de administracion del sistema (normalmente solo para root)
-
Al usar Man, busca ayuda en orden en las secciones, no busca en más secciones a no ser que se indique manualmente.
-
La sintaxis básica de esta aplicación es:
man [<opciones de man>] [[<sección>] <página>]
-
Comandos y explicación
$man password
- Muestra la ayuda sobre el comando password de la sección 1 -$man 5 password
- Muestra el formato del archivo /etc/password de la seccion 5$man -a password
- Muestra sucesivamente la ayuda localizada en cada una de las secciones que coinciden con password -$man -f password
- Imprime las descripciones cortas de password encontradas en todas las secciones$man -k password
- imprime las descripciones cortas de todas las entradas que coincidan con "password" independientemente de la sección$man man
- Muestra la ayuda sobre el comandoman
, de la sección 1
-
Las páginas del manual se almacenan en
/etc/manpath.config
conteniendo las secciones nombre, sinopsis, configuración, descripción, opciones, estado de salida. -
Muestra la sintaxis del propio
man
man [opciones de man] [[sección] página...] man -k [opciones de apropos] regexp... man -K [opciones de man] [sección] term... man -f [whatis opciones] página... man -1 [opciones de man] fichero... man -w|-W [opciones de man] página...
-
Puede usarse cualquiera de las lineas, el texto en negrita debe teclearse, corchetes indican que su contenido es opcional, el caracter "|" separa el argumento que tenga, y el texto que se subrayada indica que tiene que substituirse en cada argumento.
-
Como alternativa a
man
estáninfo
, servir HTML a través de HTTP o acceder a una página en Internet.
MediaWiki
- Es una aplicación web que ofrece una wiki para desarrollar la documentación de un proyecto de software colaborativa y centralizada
- MediaWiki es una plataforma libre de código abierto que permite tener una documentación multilenguaje, actualizable y de confianza
- El contenido es mantenido por cualquier usuario o solo los permitidos en la política de grupos y usuarios
- Cuando un contenido se actualiza, guarda el estado anterior
- Almacena información en una base de datos, y el contenido multimedia en el sistema de archivos
- Se muestra la información al usuario la información, el contenido multimedia y el de la base de datos
- Se alojan las páginas y se agrupan por tipo dentro de los espacios de nombre y para identificar la pagina Prefijo del espacio
- Las páginas se escriben en formato Wixtext
- Tiene un formato WYSIWYG
- Formato y explicación
== Título 1 ==
,=== Título 2 ===
,==== Título 3 ====
,===== Título 4 =====
- Encabezados de diferentes niveles''Texto''
- Texto en cursiva'''Texto'''
- Texto en negrita'''''Texto'''''
- Texto en negrita cursiva[[Página]]
- Enlace a una página interna, es decir, de la misma wiki[[Página|Título]]
- Enlace con nombre alternativo a una página internaURL
- Enlace externo[URL Título]
- Enlace externo con nombre alternativo* Texto
,** Texto
- Elementos de una lista no numerada
# Texto
,## Texto
- Elementos de una lista numerada:Texto
,::Texto
- Párrafos sangrado----
- Línea horizontal~~~
- Firma con enlace~~~~
- Firma con fecha[[Image:imagen]]
- Inserta una imagen[[Image:imagen|thumb]]
- Inserta una miniatura{{subst:Plantilla}}
- Sustitución{{Plantilla}}
- Por referencia- Adicional a los formatos propios del wikitexto es posible utilizar algunas etiquetas HTML
- Las plantillas son un tipo especial de páginas insertadas de dos maneras:
- Por substitución: Se hace una copia y se de desvincula, la informacion de la pagina no varía
- Por referencia: Se incluye dinámicamente, cada vez que se accede
- Se añaden los parámentros de nombre y valor con la sintaxis
{{Plantilla|parámetro1=valor1|parámetro2=valor2|parámetro3=valor3…}}
Javadoc
- Es una herramienta de Oracle para generar documentación técnica
- Normalmente en formato HTML
- A partir de archivos escritos en lenguaje Java
- Los comentarios tiene que estar justo en la declaración de una clase
- Los comentarios tienen que estar escritos en un orden establecido
- El comentario empreza con una linea delimitadora, a resto de lineas del comentarios empieza con
*
- EL comentario tiene un bloque que contiene la descripción del elemento al que precede, el comentario que contiene la descripción al que precede tiene una descripcion corta u otra mas larga
- Además, tiene un segundo bloque, separado del anterior con una linea que contiene un solo *
- El comentario empreza con una linea delimitadora, a resto de lineas del comentarios empieza con
- Las tablas pueden ser:
@author
, que indica el autor de las clases e interfaces@version
, que indica la versión de las clases y interfaces@param
, que indica el nombre y la descripción de los parámetros, en orden del método o constructor@return
, que describe le valor que devuleve el mñetodo@exception
, que indica el nombre de una excepción@throws
, que indica el nombre de una excepción que se puede lanzar en un método@see
, que aconseja consultar alghun otro recurso@deprecated
, que indica que un elemento no deberia usarse
- Para generar las documentaciones con el comando javadoc o con una herramienta IDE ( Integrated Development Environment)
Integración de Git con GitHub
- Introducción
- Crear un repositorio local y despues de haber practicado con los comandos básicos para tener un control de versiones cada vez que se cambia algo
- Publicar ese repositorio
- Crear una cuenta de usuario en el repositorio
- Claves de resolución
- Verificar que tu repositorio git que has utilizado en las actividades anteriores esta en funcionamiento
- Crear una cuenta de usuario Github y crear un repositorio nuevo
- Crear un token de acceso personal
- Hacer Push desde el repositorio local al de GitHub
- Utilizar una segunda maquina con un segundo usuario para clonar el repositorio de GitHub llamado proyecto y trabajarlo de forma local
- Se utiliza la misma maquina virtual Ubuntu Desktop para extender este caso práctico
- Para las soluciones, verificar que Git funciona correctamente y lanzar el comando status debes devolverte algo similar a esto:
admin01@cliente:~/proyecto$ git status En la rama master nada para hacer commit, el árbol de trabajo está limpio
Git Hub
- Para crear uno, crear una cuenta de GitHub en la web si es que la tienes
- Si quieres añadir un repositorio a tu cuenta debes entrar en el la seccion de repositories y darle click a New
- El nombre del repositorio se llama proyecto, es una opción que hay en la captura
- Para crear un token de acceso personal, entrar en tu cuenta github y darle a configuración de tu perfil, ir a la barra lateral izquierda, darle a ajustes de Desarrollador y luego al acceso personal
- Dale a el bóton
- Generar un nuevo toque
- Escribe el nombre del token, indaca su vida útil y marca la casilla de verificación
- Por ultimo de click al bóton General Toker
- Copia tu token en sitio seguro
- Para hacer Push desde el repositorio local, tienes que ejecutar el comando que ha aparecido:
git remote add origin https://github.com/primer_usuario/proyecto_git
- Para las etiquetas
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.