He evaluado un proyecto de software que ha sido creado por un consorcio de los mejores científicos en el campo. Sin embargo, el proyecto en sí no funciona realmente y solo se ha desarrollado como una prueba de concepto en lugar de un producto final (es decir, solo funciona con 2 o 3 escenarios).
Esta aplicación de software debe realizar 4 pasos para poder ejecutarse con éxito. Cada paso toma un archivo de entrada y produce un archivo de salida. El archivo de salida del paso anterior se utiliza como entrada en el paso actual. Inicialmente, comienza con 1 archivo. Este archivo se usa como entrada para el paso 1. Después del paso 1, se genera otro archivo. Llamemos al archivo de entrada general_input_file
y al archivo de salida general_output_file
. Cuando general_input_file
se carga en la aplicación, general_output_file
se debe producir. Ahora, tengo un archivo de entrada al que llamaré my_input_file
. Espero que la aplicación produzca my_output_file
. Sin embargo, la aplicación solo acepta specific_input_file
y producirá unaspecific_output_file
. Esto significa que solo funciona con 2 archivos que se han generado previamente. Ambos archivos existen en el proyecto. Cuando observo la parte del proyecto que debe procesar el general_input_file
, hay una declaración que se ve así: si el nombre del archivo de entrada dado es igual a specific_input_file
, entonces devuelve specific_output_file
. Este es un archivo dentro del proyecto. De lo contrario, intente procesar generate_input_file
y generar general_output_file
. En este punto, el software se rompe. Se lanzan varias excepciones, y depurar y arreglar esto está más allá del trabajo que estoy haciendo.
La pregunta es: en el documento, ¿cómo aborda este tema? ¿Y cómo argumenta, en el documento, que la razón por la que no puede evaluar el software en un escenario diferente se debe a las limitaciones del software? ¿Cuál es la mejor redacción a utilizar, sin ser ofensivo para los autores?
Cuando observo la parte del proyecto que debe procesar el archivo de entrada general, hay una declaración que se ve así: si el nombre del archivo de entrada dado es igual a archivo de entrada específico, entonces devuelva archivo de salida específico. [...] De lo contrario, intente procesar generar_archivo_de_entrada y generar general_archivo_de_salida. En este punto, el software se rompe.
Según su descripción, parece que el código que está viendo está haciendo trampa al devolver una salida precalculada que se sabe que es correcta si la entrada coincide con una sola entrada de muestra que los autores incluyeron con su código (presumiblemente para demostrar su corrección y porque incluir una entrada de muestra para que se aceptara su trabajo). Para todas las instancias de entrada que no sean esta entrada de muestra, el código hace algo completamente diferente, lo que no produce resultados correctos .
Este tipo de comportamiento sin duda merecería una calificación reprobatoria en una tarea o examen de un curso de programación. Si se hiciera en el contexto de un producto comercial, un comportamiento similar justificaría la renuncia del director general y un escándalo multimillonario . Entonces, decir que el código es "de baja calidad" me parece tan eufemístico como para ser en sí mismo una declaración deshonesta. La forma en que lo describiría es: si los autores afirman que su código es correcto, entonces están mintiendo.
Ahora, podría discutir su pregunta real de cómo discutir esta situación en su artículo de seguimiento "sin ser ofensivo para los autores", pero honestamente, no veo el punto. En cambio, preguntaría, ¿ por qué querrías no ser ofensivo con los autores? No es solo que el algoritmo de los autores pueda estar equivocado y que su código sea de mala calidad; aparentemente están cometiendo un fraude académico al enviar un algoritmo incorrecto con un código modificado de manera deshonesta para que parezca que el algoritmo funciona. Estoy dispuesto a dejar un 3% de posibilidades de que se pueda proponer otra explicación más inocente, pero dada la descripción que ha proporcionado, realmente no puedo pensar en una. Estaré encantado de reconsiderarlo si proporciona un poco más de detalles sobre cómo los autores
La forma menos ofensiva de indicar que intentaste usar system-X (y no funcionó) es decir algo como
También intentamos procesar nuestros datos usando system-X [1023], pero no pudimos hacerlo con éxito debido a errores de tiempo de ejecución.
Eso evita atribuir culpabilidad alguna, al mismo tiempo que se reconoce la existencia del proyecto. Supongo que hay una gran posibilidad de que al menos uno de los científicos asociados con system-X sea un revisor de su artículo. Si el sistema no funciona, todavía han recibido una cita. Si hay una versión más nueva del software que funciona, puede obtener un comentario útil.
También puede intentar enviar un correo electrónico a los autores para ver si hay una forma de evitar el error o si hay una versión de software más reciente. Incluir el registro de excepciones como archivo adjunto y evitar mencionar haber mirado detrás de la cortina puede ser diplomático.
¿Necesita funcionar?
Sé que la pregunta es extraña, pero los investigadores no son ingenieros de software. Si el objetivo del proyecto es crear una pieza de software completamente funcional, entonces la baja calidad del software es preocupante. Por otro lado, si el objetivo del proyecto es idear nuevas formas de hacer las cosas, entonces este software es un prototipo, una prueba de concepto, como mencionaste, entonces trabajar en algunos casos es una hazaña notable.
Una vez que se realiza la prueba de concepto, los ingenieros de software pueden venir y convertir esto en un producto, que es un software completamente funcional. No hagas que los investigadores hagan el trabajo de ingenieros, son malos en eso :). A cada uno lo suyo.
Entender el contexto para entender los resultados..
O Mapeador
jakebel
regla de gnome
Wrzlprmft