1.4.1 Desarrollo y Diseño de software parte 2.pptx

SebastianMeneses45 1 views 14 slides Sep 29, 2025
Slide 1
Slide 1 of 14
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14

About This Presentation

desarrollo software


Slide Content

Desarrollo y Diseño de software parte 2 Programación y Redes Virtualizadas (SDN-NFV) DRY7122

Revisión de código y pruebas Una revisión de código es cuando los desarrolladores examinan el código base, un sub conjunto del código o cambios específicos del código y emiten sus comentarios. Estos desarrolladores a menudo se llaman revisores. Es mejor tener más de un revisor cuando sea posible. Lo mejor es contar con revisores que entiendan el propósito del código para que puedan dar comentarios relevantes y de calidad. Los revisores proporcionarán comentarios, típicamente al autor del código, sobre lo que piensan que debe corregirse. Debido a que muchos comentarios pueden ser subjetivos, depende del autor decidir si es necesario abordar el comentario, pero es bueno contar con el acuerdo de los revisores si no se corrige. Este proceso de revisión de código solo ocurre después que los cambios de código hayan sido completados y probados. El objetivo de las revisiones de código es asegurarse de que el código final: Es fácil de leer Es fácil de entender Sigue las mejores prácticas de codificación Utiliza el formato correcto Está libre de errores Tiene comentarios y documentación adecuados Está limpio

Revisión de código y pruebas

Prueba unitaria Las pruebas funcionales detalladas de pequeños fragmentos de código (líneas, bloques, funciones, clases y otros componentes aislados) generalmente se llaman Pruebas Unitarias. Los desarrolladores modernos generalmente automatizan este tipo de pruebas usando marcos de pruebas unitarias. Estos marcos son software que le permite hacer afirmaciones sobre condiciones comprobables y determinar si estas afirmaciones son válidas en un punto de ejecución. Por ejemplo: La palabra clave assert es, en realidad, nativa de Python. En este caso, la aserción devolverá verdadero porque 2 + 2 es, de hecho, igual a 4. Por otro lado, si tuviera: Devolvería falso y desencadenaría un error.

Pruebas de integración Después de la prueba unitaria viene la prueba de integración, que asegura que todas las unidades individuales que ha estado construyendo encajan correctamente para hacer una aplicación completa. Por ejemplo, supongamos que una aplicación que está escribiendo necesita consultar un servicio web local para obtener datos de configuración, incluido el nombre de un host de base de datos relevante. Es posible que desee probar los valores de las variables establecidas cuando se llama a estas funciones. Si estuviera usando PyTest , podría hacer como sigue:

Pruebas de integración Tenga en cuenta que su método test\ _ setconfig () llama deliberadamente a su función Setup () antes de ejecutar pruebas, y a su función tearDown () después. En unittest , los métodos llamados Setup () y TearDown () son proporcionados por la clase TestCase , se pueden anular en su subclase definida y se ejecutan automáticamente. Ejecutar este código con PyTest podría producir resultados como este:

Pruebas de integración Si se arregla la prueba fallida, puedes ver que todo funciona perfectamente: Una vez más, debe ejecutar sus pruebas de integración antes de realizar cualquier cambio para el día, siempre que realice cambios significativos, y antes de cerrar el día. Si utiliza la integración continua, los errores que encuentre deben corregirse antes de hacer cualquier otra cosa. Nota : Puede ejecutar este script en su máquina virtual usando pytest .

Comprensión de los formatos de datos Las API REST sobre las que aprenderá en la unidad 2, le permiten intercambiar información con equipos y servicios remotos. También lo hacen las interfaces creadas a partir de estas API, incluidas herramientas de interfaz de línea de comandos específicas y kits de desarrollo de software de integración (SDK) para lenguajes de programación populares. Al controlar estas API a través de software, es útil poder recibir y transmitir información en formularios que cumplan con los estándares y que sean legibles por máquina y persona. Esto le permite: -Utilizar fácilmente componentes de software estándar y/o herramientas de lenguaje integradas para convertir mensajes en formularios que sean fáciles de manipular y extraer datos, como estructuras de datos nativas de los lenguajes de programación que están utilizando. -También puede convertirlos en otros formatos estándar que pueda necesitar para diversos propósitos. -Escribir código fácilmente para componer mensajes que las entidades remotas pueden consumir. -Leer e interpretar los mensajes recibidos usted mismo para confirmar que su software los está manejando correctamente, y redacte los mensajes de prueba a mano para enviarlos a entidades remotas. -Detecte más fácilmente mensajes "mal formados" causados por la transmisión u otros errores que interfieran con la comunicación.

XML Extensible Markup Language (XML) es un derivado de Structured Generalized Markup Language (SGML), y también el padre de HyperText Markup Language (HTML). XML es una metodología genérica para envolver datos textuales en etiquetas simétricas para indicar semántica. Los nombres de archivo XML suelen terminar en ". xml “ Un documento XML de ejemplo Por ejemplo, un documento XML simple podría verse así: Este ejemplo simula información que podría recibir de una API de administración de computarizada en la nube que enumera instancias de máquinas virtuales.

YAML YAML, un acrónimo de "YAML Ain't Markup Language ", es un superconjunto de JSON diseñado para una legibilidad humana aún más fácil. Es cada vez más común como formato para archivos de configuración, y especialmente para escribir plantillas de automatización declarativa para herramientas como Ansible. Como superconjunto de JSON, los analizadores YAML generalmente pueden analizar documentos JSON (pero no viceversa). Debido a esto, YAML es mejor que JSON en algunas tareas, incluida la capacidad de incrustar JSON directamente (incluidas las comillas) en archivos YAML. JSON también se puede incrustar en archivos JSON, pero las comillas deben ser escapadas con barras invertidas \ " o codificadas como entidades de caracteres HTML "e; Aquí hay una versión del archivo JSON de la subsección JSON, expresada en YAML. Use esto como ejemplo para entender cómo funciona YAML:

Análisis y serialización Parsing significa analizar un mensaje, dividiéndolo en sus partes componentes y comprender sus propósitos en contexto. Cuando los mensajes se transmiten entre equipos, viajan como una secuencia de caracteres, que es efectivamente una cadena. Esto debe analizarse en una estructura de datos semánticamente equivalente que contenga datos de tipos reconocidos (como enteros, flotadores, cadenas, etc.) antes de que la aplicación pueda interpretar y actuar sobre los datos. La serialización es más o menos lo opuesto al análisis. Para comunicar información con una interfaz REST, por ejemplo, se le puede llamar a tomar datos almacenados localmente (por ejemplo, datos almacenados en diccionarios de Python) y generar esto como equivalente JSON, YAML o XML en forma de cadena para su presentación al recurso remoto.

Análisis y serialización Un ejemplo Por ejemplo, imagine que desea enviar una consulta inicial a algún extremo REST remoto, preguntando sobre el estado de los servicios en ejecución. Para hacer esto, normalmente, necesitaría autenticarse en la API REST, proporcionando su nombre de usuario (correo electrónico), además de una clave de permiso obtenida a través de una transacción anterior. Es posible que haya almacenado el nombre de usuario y la clave en un diccionario de Python, como este:

Resumen Codificación Básica El código limpio es el resultado de que los desarrolladores intentan hacer que su código sea fácil de leer y entender para otros desarrolladores. Los métodos y funciones comparten el mismo concepto; son bloques de código que realizan tareas cuando se ejecutan. Si el método o la función no se ejecuta, esas tareas no se realizarán. Los módulos son una forma de crear fragmentos de código independientes y autónomos que se pueden reutilizar. En la mayoría de los lenguajes OOP, y en Python, las clases son un medio para agrupar datos y funcionalidad. Cada declaración de clase define un nuevo tipo de objeto. Revisión de código y pruebas Una revisión de código es cuando los desarrolladores examinan la base de código, un subconjunto de código o cambios de código específicos y proporcionan comentarios. Los tipos más comunes de procesos de revisión de código incluyen: revisión de código formal, revisión de código basada en cambios, revisión de código por encima del hombro y transferencia de correo electrónico. Las pruebas de software se subdividen en dos categorías generales: funcional y no funcional. Las pruebas funcionales detalladas de pequeños trozos de código (líneas, bloques, funciones, clases y otros componentes aislados) generalmente se llaman Pruebas Unitarias. Después de la prueba unitaria viene la prueba de integración, que asegura que todas esas unidades individuales encajan correctamente para hacer una aplicación completa. El desarrollo basado en pruebas (a veces llamado Test- First Development ) está probando para validar la intención del diseño a la luz de los requisitos. Esto significa escribir código de prueba antes de escribir código de aplicación. Habiendo expresado los requisitos en el código de prueba, los desarrolladores pueden escribir código de aplicación hasta que pase las pruebas. Entendiendo los formatos de datos Hoy en día, los tres formatos estándar más populares para intercambiar información con API remotas son XML, JSON y YAML. Extensible Markup Language (XML) es un derivado de Structured Generalized Markup Language (SGML), y también el padre de HyperText Markup Language (HTML). XML es una metodología genérica para envolver datos textuales en etiquetas simétricas para indicar semántica. Los nombres de archivo XML suelen terminar en ". xml " JavaScript Object Notation JSON, es un formato de datos derivado de la forma en que se escriben literales de objetos complejos en JavaScript. Los nombres de archivo JSON suelen terminar en ". json ". YAML Ain't Markup Language (YAML) es un superconjunto de JSON diseñado para una legibilidad humana aún más fácil. Parsing significa analizar un mensaje, dividiéndolo en sus partes componentes y comprender sus propósitos en contexto. La serialización es más o menos lo opuesto al análisis.

Bibliografía Obligatoria: Cisco Certified DevNet Associate DEVASC 200-901 Official Cert Guide Hardcover - "Jackson, Chris", " Gooley , Jason", " Iliesiu , Adrian ", " Malegaonkar , Ashutosh " Cisco Press ISBN 10: 0136642969 / ISBN 13: 9780136642961 - año 2020 Bibliografía Complementaria: SDN and NFV Simplified – “Jim Doherty” Addison-Wesley Professional ISBN: 9780134307398 - año 2016 Referencia Bibliográfica
Tags