manejo de menus en c#, herencia y testeo de soft Flashcards
parcial 3
¿Qué son las soluciones en Visual Studio y cuál es su propósito?
representan todo el sistema de desarollo. conteniendo componentes independientes llamados proyectos
¿Qué información específica contiene un proyecto en Visual Studio?
Un proyecto en Visual Studio contiene información específica para una tarea de programación y se agrupa bajo una solución.
¿Cómo se crea un nuevo proyecto dentro de una solución en Visual Studio?
Para crear un nuevo proyecto dentro de una misma solución en Visual Studio, se puede hacer a través del Menú Archivo - Agregar - Nuevo proyecto, o haciendo clic derecho sobre el nombre de la solución en el explorador de soluciones y seleccionando agregar nuevo proyecto.
¿Qué son los controles MenuStrip y ToolStrip y cómo se utilizan en el diseño de aplicaciones?
Los controles MenuStrip y ToolStrip se utilizan en el diseño de aplicaciones para brindar acceso rápido a las opciones principales de la aplicación. MenuStrip permite añadir, modificar y eliminar menús con teclas de acceso rápido y claves de acceso. ToolStrip facilita la creación de barras de herramientas.
¿Por qué se recomienda implementar barras de herramientas en un sistema de software?
Se recomienda implementar barras de herramientas en un sistema de software para proporcionar mayor facilidad de acceso a las opciones de uso común, evitando que los usuarios pierdan tiempo buscándolas en el menú.
¿Qué similitudes existen entre el control MenuStrip y el control ToolStrip en Visual Studio?
Tanto el control MenuStrip como el control ToolStrip en Visual Studio se utilizan para diseñar menús y barras de herramientas. Los menús requieren programación para procesar selecciones, mientras que las barras de herramientas mejoran la accesibilidad a opciones comunes.
¿Cuál es el propósito principal de la herencia en la programación orientada a objetos?
la reutilizacion de codigo, como la creacion de nuevas clases basada en clases existentes
¿Qué significa que una clase hereda de otra en términos de programación?
una subclase adquiere los atributos y métodos de la clase padre, lo que facilita la reutilización de código
¿Por qué es importante la reutilización de código en el desarrollo de software?
permite ahorrar tiempo, reducir errores y mantener una estructura coherente en el código.
¿Cómo se define la jerarquía de clases en un sistema orientado a objetos?
las subclases pueden convertirse en superclases para otras clases, formando una estructura de árbol que representa las relaciones entre las entidades del sistema.
¿Qué diferencias existen entre la herencia simple y la herencia múltiple?
La herencia simple permite que una clase herede de una única clase, mientras que la herencia múltiple permite que una clase herede de varias clases, la multiple no esta permitida en c#
¿Cuál es la relación entre la herencia y el polimorfismo en la programación orientada a objetos?
a herencia y el polimorfismo están relacionados en la programación orientada a objetos, ya que el polimorfismo permite que objetos de distintas clases respondan de manera diferente a un mismo mensaje, lo que se logra a través de la herencia y la redefinición de métodos.
¿Qué papel juegan los modificadores abstract, override, virtual y new en la herencia en C#?
se utilizan para poder crear una herencia multiple y para controlar el comportamiento de la herencia
¿Por qué es relevante la estructura de árbol en una jerarquía de clases?
representa las relaciones de herencia entre las clases, facilitando la comprensión y la organización del sistema.
¿Cómo se pueden identificar relaciones de generalización/especialización en una jerarquía de clases?
cuando una clase más general se convierte en superclase y las clases más específicas se convierten en subclases.
pilares fundamentales de la POO
Polimorfismo
Herencia
Abstracción
Encapsulamiento
¿Cuáles son las características clave de las pruebas de software?
✓ Más importancia y protagonismo día adía.
✓ Mejoran la calidad delsoftware.
✓ Mejoran la satisfacción de losrequisitos.
✓ Ahorra tiempo y recursos durante el desarrollo.
✓ Su objetivo: localizar y subsanar el mayor número de deficiencias
lo antesposible.
¿Por qué es importante la detección temprana de errores en el proceso de desarrollo de software?
el coste de corregir un defecto aumenta con el tiempo, y detectar errores en etapas tempranas permite su corrección a menor coste.
¿Cuál es la diferencia entre las técnicas estáticas y dinámicas de testing ?
las técnicas estáticas se centran en la revisión del código y la documentación sin ejecutar el software, mientras que las técnicas dinámicas implican la ejecución del software para evaluar su comportamiento
¿Qué beneficios se mencionan en relación con las técnicas de caja negra y caja blanca en el testing de software?
en la caja negra se centra en la funcionalidad y comportamiento externo sin conocer la estructura interna. La caja blanca el tester tiene acceso a la estructura interna del codigo
¿Qué métodos se utilizan en la cobertura de sentencias, decisiones y condiciones en el testing de caja blanca?
utilizan métodos como la cobertura de sentencias, cobertura de decisión, cobertura de condición simple y múltiple, y cobertura de caminos para garantizar una evaluación exhaustiva del software.
¿Por qué se considera que el polimorfismo es importante en la programación orientada a objetos?
permite que objetos de distintas clases puedan ser tratados de manera uniforme a través de una interfaz común.
capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento de diferentes maneras, dependiendo de los parámetros utilizados durante su invocación.
¿Cuál es el objetivo principal de las pruebas de casos de uso en el testing de caja negra?
obtener casos de prueba a partir de los casos de uso, que describen la interacción usuario-sistema y sus elementos como precondiciones, pasos del comportamiento del sistema y postcondiciones.
¿Qué aspectos se deben tener en cuenta al aplicar la técnica de clases de equivalencia en el testing de caja negra?
identificar clases de datos válidos y no válidos, asignar representantes únicos a cada clase de equivalencia, y diseñar casos de prueba que cubran tantas clases de equivalencia válidas y no válidas como sea posible.