DSN_XP y el diseñar inversamente

Reverse Engineering

Reverse engineering is the process of discovering the technological principles of a human (or non-human) made device, object or system through analysis of its structure, function and operation. It often involves taking something (e.g., a mechanical device, electronic component, or software program) apart and analyzing its workings in detail to be used in maintenance, or to try to make a new device or program that does the same thing without using or simply duplicating (without understanding) the original. 
Reverse engineering has its origins in the analysis of hardware for commercial or military advantage. 
The purpose is to deduce design decisions from end products with little or no additional knowledge about the procedures involved in the original production. The same techniques are subsequently being researched for application to legacy software systems, not for industrial or defence ends, but rather to replace incorrect, incomplete, or otherwise unavailable documentation.[Wikipedia]

La ingeniería inversa es el proceso de descubrir los principios tecnológicos de un dispositivo, objeto o sistema humano (o no humano) a través del análisis de su estructura, función y operación. A menudo implica desarmar algo (por ejemplo, un dispositivo mecánico, un componente electrónico o un programa de software) y analizar detalladamente su funcionamiento para usarlo en el mantenimiento, o intentar crear un nuevo dispositivo o programa que haga lo mismo sin usar o simplemente duplicando (sin entender) el original.

La ingeniería inversa tiene sus orígenes en el análisis de hardware para ventajas comerciales o militares. 
El propósito es deducir las decisiones de diseño de los productos finales con poco o ningún conocimiento adicional sobre los procedimientos involucrados en la producción original. Posteriormente, se están investigando las mismas técnicas para su aplicación a sistemas de software heredados, no para fines industriales o de defensa, sino para reemplazar la documentación incorrecta, incompleta o no disponible. [Wikipedia]

Pensamiento inverso

Para DSN_XP la ingeniería en reversa (al contrario que la ingeniería directa) se volvió el método que empleamos para lograr adaptarnos desde una escuela de programación estructurada, hacia una nueva escuela de programación orientada a objetos, ya que teníamos que comprender la forma en la cual se programaba, se compilaba, se ponía en producción y se le daba mantenimiento a estos nuevos sistemas basados en objetos.
Profesionalmente hablando, los proyectos en los que empezamos a participar promocionando DSN_XP requerían de un rol documentador que permitiese al equipo de desarrollo, conseguir todo el marco teórico que sostendría los diseños realizados por los codificadores.

La documentación como tal, formó parte de la cultura de desarrollo de software y a su vez fue el área de conocimiento menos atendida en las organizaciones debido a varios aspectos, el principal, por la característica de la tecnología de ir cambiando muy drásticamente en el tiempo y la necesidad de tener gobernanza en la tecnología  requería comprender los procesos automatizados y la algoritmia del software desarrollado.

Para lograr comprender todos los aspectos técnicos y no técnicos detrás del proceso de desarrollo de software profesional en el Ecuador, se requieren conocimientos suficientes sobre la ingeniería de software y estos conocimientos deben verse reflejados tanto en el código programable como en todo el proceso de su puesta en producción.

Conocimiento mínimo



Estos últimos conceptos requieren de un esfuerzo formidable por entender la tecnología aplicada al proceso de computación, implicando un estudio de:
  • Desarrollo de software a bajo nivel, estudiando el Lenguaje Assembler, teoría sobre compiladores, máquinas virtuales y bytecodes.
  • Sistemas operativos y su arquitectura de diseño y despliegue.
  • Perspectivas de alto nivel para módulos y constructores comunes codificados.
  • Administración de datos y el uso de variables, estructuras de datos definidos por el usuario, listas.
  • Flujos de control y estructuras de control y secuencia.
  • Lenguajes de programación como C, C++, Java, C#
  • Perspectivas a bajo nivel como registros, pilas, saltos y secciones de datos ejecutables.
Todo este marco teórico se encuentra respaldado en el estudio profundo de este libro disponible en nuestra biblioteca de conocimientos DSN_XP.

Ingeniería inversa

La ingeniería inversa o en reversa, en el desarrollo de software puede ser increíblemente útil para los codificadores.  Por ejemplo, los codificadores de software pueden emplear las técnicas de reversado para descubrir cómo interoperar con software total o parcialmente indocumentado.  En otros casos, el poder reversar puede ser utilizado para determinar la calidad del código de un tercero, tal como una librería o inclusive aún, un sistema operativo.

Finalmente, es posible a veces el utilizar técnicas de reversado para extraer información valiosa desde un producto de la competencia con el propósito de mejorar las propias tecnologías. 

Diseño inverso de software 

La aplicación de la ingeniería inversa en el estudio y documentación del desarrollo de software en Ecuador es discutida por DSN_XP bajo los siguientes escenarios de uso:

  • Lograr la interoperabilidad con el software propietario, la interoperabilidad es la situación de mayor uso de la ingeniería inversa a diario, cuando se trabaja con una librería de software propietaria o una API del sistema operativo, la documentación usualmente en la mayoría de casos es insuficiente.
  • Desarrollar software competitivo, en la mayoría de industrias es por lo menos la aplicación más popular de la ingeniería inversa.  El software, tiende a ser más complejo que la mayoría de productos, de tal forma que, desarmar por entero un producto software para crear un producto competitivo parece no tener sentido.  Es más fácil el diseñar y desarrollar un producto desde la nada o simplemente licenciar con terceros los más grandes componentes que desarrollarlos localmente.
  • Evaluar la calidad de software y su robustez, se requieren conceptos de ingeniería inversa para evaluar la seguridad y vulnerabilidad del software, usualmente solo basta una porción del código para evaluar y estimar la calidad general del código y sus prácticas de codificación de todo el producto.

Enfoque de la ingeniería inversa ontológica


Esta es una síntesis de los resultados obtenidos de la investigación sobre la ontología de la Ingeniería Inversa liderada por Peter Belohlavek.

La ingeniería inversa ontológica es el proceso de descubrir los principios ontológicos de un objeto, sistema o realidad a través del análisis de su estructura ontológica, función y operación.

La ingeniería inversa ontológica es el proceso mecánico unicista para descubrir o redescubrir la naturaleza de un objeto de la realidad que se investiga. Es un enfoque tecnológico que se hace necesario cuando se trata de la naturaleza de los problemas.

Es la herramienta básica para la resolución de problemas complejos. Sin poder lidiar con el proceso de ingeniería inversa, no se puede abordar la naturaleza de los problemas. Este es el límite real de los problemas que un individuo puede resolver.

Copyright Instituto de investigación Unicista

Todo el mundo puede utilizar este enfoque en algún nivel. La cuestión es aceptarlo y entrenarlo para expandir los límites de su aplicación.

El proceso de ingeniería inversa ontológica

La ontointeligencia define la capacidad de los individuos para hacer frente a problemas complejos. La ontointeligencia está integrada por la inteligencia estratégica de los individuos, su tipo de pensamiento lógico y su inteligencia ética.

Esto define el enfoque de la actividad de un individuo, el valor que agrega al medio ambiente, la capacidad de pronosticar el futuro y el campo en el que un individuo es naturalmente exitoso.

La inteligencia evoluciona cuando un individuo madura. La madurez permite a un individuo alcanzar el máximo nivel de influencia en la realidad. 

Pensar hacia atrás implica ser capaz de pensar desde el final hasta el principio. Considere una línea de montaje. Es la capacidad de un individuo para descomponer el "producto" final en sus componentes.

Copyright Instituto de investigación Unicista

Cuando hablamos de ingeniería inversa ontológica significa que en este proceso el individuo es capaz de encontrar la naturaleza de una realidad específica. Para hacerlo, un individuo tiene que ser capaz de descubrir la estructura de la naturaleza de esa realidad.

El proceso de ingeniería inversa ontológica es el enfoque básico para redescubrir los conceptos de una realidad que ha sido descubierta. Y para hacer esto, los individuos necesitan descubrir los componentes de la “línea de montaje” que definen la realidad final hasta encontrar los objetos que integran esa realidad.

DSN_XP y su base de conocimientos

Base de conocimientos DSN_XP

DSN_XP.BaseKnow

Nuestra base de conocimientos se establece gracias a las siguientes fuentes de información DSN_XP que son:

  • Biblioteca que contiene todos los libros que se han buscado en la red sobre un contexto específico de apoyo teórico para una investigación DSN_XP.
  • Investigaciones que son aquellos temas que debemos consultar para lograr definir un contexto apropiado para una intervención en la cual aplicaremos DSN_XP en cualquiera de sus versiones.
  • Actores que son aquellos personajes que hemos investigado como proponentes de una teoría o escuela de pensamiento que estamos consultando para describir un escenario de uso o experimentación con DSN_XP.

Conocimiento base

El primer nivel de conocimiento describe los principios básicos de un arte, ciencia o técnica, esto nos llevó a profundizar en aquellos aspectos académicos con los cuales podíamos contar como plataforma de conocimientos en aquel entonces.  

El conocimiento científico

Estudio inverso del método con DSN_XP
DSN_XP es una metodología para desarrollar conocimiento, como metodología posee la facultad de estudiar el método, por lo tanto, dicho estudio implica el uso de la técnica de observación y experimentación, este razonamiento es la fuente principal de conocimiento que aplica DSN_XP para conceptuar un modelo como artefacto, bajo esta premisa, DSN_XP está en la capacidad de definir lineamientos para una lectura adecuada y un uso apropiado del modelo.

Academia

Nuestra base de conocimientos estaba determinada tanto por nuestra formación académica como analista programador para pasar luego a formarnos como ingeniero en sistemas y finalmente como consultor técnico.

Nuestra base de conocimientos se conformaría inicialmente entre:

  • Técnicas de modelado, modelos y métodos en la historia del software. 
  • Herramientas y buenas prácticas referidas en los contextos de desarrollo de software.

Base de conocimientos DSN_XP

Conocimientos académicos

DSN_XP conceptúa como núcleo de su marco de trabajo, al desarrollo de una base de conocimientos que fueron obtenidos durante nuestra formación como Tecnólogo analista programador y luego como Ingeniero en sistemas.  

Estos conocimientos que forman nuestra base de conocimientos académicos, junto con las investigaciones temáticas desarrolladas, son referidos en cualquier intervención técnica que requiera de las recomendaciones de DSN_XP, así como el estudio y actualización constante de nuestros propios conocimientos para el modelado avanzado de software y el desarrollo de investigaciones temáticas

Escuelas de pensamiento

La información está disponible en cualquier parte, es preciso entonces su interpretación para comenzar a definir un conocimiento como la facultad de entender y juzgar una cosa. Bajo este razonamiento, se entiende entonces que son necesarias diversas áreas de conocimiento para conceptuar de forma holística todo el proceso de desarrollar software.

SWEBOK (IEEE)

Base de conocimientos sobre la ingeniería software


Las diversas áreas de conocimiento que estudiamos del SWEBOK son:
  • Requisitos del software
  • Diseño de software
  • Construcción de software
  • Pruebas de software (testing)
  • Mantenimiento de software
  • Administración de la configuración del software
  • Administración de la ingeniería software
  • Procesos de ingeniería software
  • Herramientas y métodos de la ingeniería software
  • Calidad del software

PMBOK (PMI)

Base de conocimientos sobre gestión de proyectos


Las diversas áreas de conocimiento que estudiamos del PMBOK son:
  • Gestión de la integración
  • Gestión del alcance
  • Gestión del tiempo
  • Gestión de la calidad
  • Gestión de costos
  • Gestión del riesgo
  • Gestión de recursos humanos
  • Gestión de la comunicación
  • Gestión de las compras y adquisiciones

BABOK (IIBA)

Base de conocimientos sobre el análisis de negocios


Las diversas áreas de conocimiento que soporta el BABOK son:
  • Análisis empresarial
  • Planificación de requerimientos y gestión
  • Elicitación de requerimientos
  • Análisis de requerimientos y documentación
  • Aseguramiento de la solución y validación

AGILE/LEAN/ADAPTIVE 

Base de conocimientos sobre gestión de proyectos ágiles

DSN_XP reconoce que todo proyecto software intrínsecamente contiene un factor de riesgo el cual debe ser gestionado adecuadamente, por ello, adopta la filosofía propuesta por el movimiento ágil.
Valoramos al equipo y su interacción, por encima de los procesos y las herramientas.
(TeamView)

El software que funciona, por encima de la documentación exhaustiva. 
(SoftwareView)

La colaboración con el cliente, por encima de la negociación contractual. 
(BusinessView)

La respuesta al cambio, por encima del seguimiento de un plan.
(Adaptive Framework)
El marco adaptativo requiere necesariamente de stakeholders participativos e involucrados en el proyecto, el riesgo al igual que el éxito o el fracaso de un proyecto es de responsabilidad compartida entre los miembros del equipo asignado a este. Pese a ello, el fracaso de un proyecto es de utilidad para el entorno ya que genera un aprendizaje de la cultura y el proceso se mejora continuamente.

Estudio de artefactos y métodos

Base de conocimientos sobre metodologías y marcos de trabajo

DSN_XP como metodología estudia al método, artefacto, modelo, etc., que es recomendado como buena práctica para el desarrollo de software. Esto involucra el estudio en la práctica de las siguientes escuelas de diseño:
  • Ciclos de vida para el desarrollo de software.
  • Modelos para la abstracción de diseños.
  • Técnicas de comunicación entre equipos.
  • Patrones de diseño y marcos de trabajo para el desarrollo de software.
  • Aspectos legales detrás del diseño y propiedad intelectual.
  • Documentación del software

Estudio de escuelas de diseño

Base de conocimientos sobre diseño de software

DSN_XP por principio adopta los lineamientos de la escuela de orientación a objetos, sin embargo puede adaptarse a otras escuelas de diseño bajo su noción de perspectivas de uso y escenarios.
  • Programación orientada a objetos.
  • Programación orientada a aspectos.
  • Diseño de base de datos.
  • Diseño por contrato.
  • Diseño de código abierto.
  • Arquitecturas software y lenguajes de programación.

Estudio de personal humano

Base de conocimientos sobre la interacción con personas

DSN_XP como metodología estudia al ser humano y su comportamiento, para lo cual recurre a las siguientes escuelas de pensamiento:
  • Cuarto camino (integración del pensamiento fragmentado)
  • Filosofía (definición de modelos de pensamiento)
  • Psicología (definición del posible comportamiento humano)
  • Danzas y movimientos (para el equilibrio del ser humano)
  • Neurolingüística (para el uso adecuado del lenguaje corporal y hablado)
  • Mentoring, coaching, training de equipos multidisciplinares.

Estudio del entorno y la naturaleza

Base de conocimientos sobre la interacción entre el producto y su entorno

DSN_XP como metodología estudia al entorno para respetar su estatus, para ello recurre a las siguientes escuelas de pensamiento:
  • Permacultura (como adaptarse al entorno natural con cultura permanente)
  • Marco de trabajo adaptativo (para adaptarse al entorno del negocio).
  • Comportamiento organizativo (para la definición de un lenguaje apropiado para el entorno)
  • Marketing (para alinearse a los objetivos comerciales del cliente)
  • Bases de conocimientos (para el continuo aprendizaje del entorno)
  • Administración de riesgos (para el uso adecuado de los recursos del entorno)

DSN_XP y su versión 1.0.

Estudio avanzado de la ingeniería de software 

DSN_XP como arquitectura
En nuestra versión 1.0 el objetivo central es el definir un marco de trabajo para el diseño de software por experimentación, mediante ingeniería inversa de toda la codificación realizada para abstraer un diseño lógico.

Arquitectura 

Para poder esquematizar la versión 1.0 era necesario distinguir la presencia de la perspectiva que se dedica a investigar a la ingeniería del software desde sus inicios.  A esta perspectiva la denominamos como Software View y se encarga de analizar justamente a la ingeniería del software.

Ahora bien, la ingeniería de software en sus inicios se ve altamente influenciada por el desarrollo del hardware y su proceso de industrialización, sin embargo, la parte abstracta que es justamente la que caracteriza al software y en especial, a su característica programable, debía ser entendida dentro de la cobertura que se establece para el estudio del software o software View.

La idea de una máquina programable

Iniciar conforme la historia del desarrollo de la electrónica, ha motivado a superar muchas de las limitaciones que se tuvieron en un principio para lograr establecer lo que ahora, gracias a la tecnología y a la ciencia, se puede visualizar con un poco de mayor claridad.

Dentro de la perspectiva basada en el estudio del hardware, los intentos de la humanidad por abstraer el proceso de cálculo se remontan a las nociones matemáticas y de cálculo aplicado, razón por la cual se concluye que es la actividad humana productiva la que ha impulsado este proceso de abstracción que es motivo de nuestro estudio de la ingeniería de software.

Una vez que se ha establecido el método y con ello, se han establecido los principios, artefactos, técnicas y herramientas necesarias para poder profundizar en la investigación, arranca su base de conocimientos con aquellos conocimientos previos que han sido capturados en varios aspectos experimentados como proyectos de terceros para el desarrollo de software, bajo el apoyo y recomendaciones de DSN_XP.

Para cuando desarrollamos esta versión, en el mercado existía la programación estructurada y aparecieron ya algunos libros con referencias a una nueva escuela de diseño de software basada en la concepción de objetos, esto implicó para nosotros lograr profundizar en aquellos aspectos académicos del software y en especial el lograr desarmar la estructura rígida de la planificación anticipada.

DSN_XP y el estándar para tesis de grado en sistemas

Metodología para el desarrollo de tesis en la facultad de sistemas de la UTECI

Año: 2004
Localidad: Quito
Institución: Universidad Tecnológica Israel

Descripción: 

Elaboración de un marco de trabajo para los egresados de la facultad de sistemas cuyo tema de tesis consiste en el desarrollo de una aplicación software, dicho marco de trabajo se realiza como una propuesta para la estandarización de contenidos y formatos que se requerían en la facultad de sistemas acorde a los lineamientos propuestos por la Universidad Tecnológica Israel

DSN_XP: 

Participó diseñando un modelo del ciclo de vida para el desarrollo de software considerando aspectos de documentación del proyecto, criterios de ingeniería de software recomendados para la elaboración del marco teórico y un manejo adecuado de los tiempos destinados para el desarrollo de la aplicación software considerada como tesis. 

DSN_XP considera a este proyecto (tesis de Francisco Toscano Morales) como el primer acercamiento formal para la estructuración de nuestra metodología (DSN_XP)


Modelo del ciclo de vida para el desarrollo de software en tesis por DSN_XP


Fase de visionar adaptada por DSN_XP bajo los lineamientos de MSF


Fase de planificación adaptada por DSN_XP bajo los lineamientos de MSF


Fase de desarrollo adaptada por DSN_XP bajo los lineamientos de MSF


Fase de estabilización adaptada por DSN_XP bajo los lineamientos de MSF

Nota: En este ciclo de vida propuesto por DSN_XP no se considera la etapa conocida como de "mantenimiento del software" debido a que una vez que fue presentada una tesis, el egresado no realizaba mejoras al producto (entendidas como mantenimiento) ya que dejaba de formar parte de la comunidad activa de la universidad. 

Esta propuesta fue presentada al consejo directivo de la universidad pero no tuvo acogida favorable por desarrollar desde esta época ideas que años más tarde se verían reflejadas como resultado del manifiesto por el Movimiento para el Desarrollo Ágil de Software :o)

Resultado experimentado:

  • La evolución de DSN_XP: De una fase exploratoria a una fase de consolidación y estandarización.
  • El objetivo principal del proyecto: Establecer un marco de trabajo para el desarrollo de tesis de grado.
  • La importancia de la estandarización: Garantizar la calidad y la coherencia de los proyectos.
  • La naturaleza innovadora del proyecto: Primera tesis de investigación científica aplicada a la ingeniería de software en Ecuador.
  • Lecciones aprendidas:

    • Contenido del marco de trabajo: Detallar los elementos clave del marco de trabajo, como las fases del desarrollo de software, los artefactos a producir, los criterios de evaluación, etc.
    • Impacto en la formación de los estudiantes: Analizar cómo el marco de trabajo contribuyó a mejorar la formación de los estudiantes en ingeniería de software.
    • Difusión de los resultados: Describir cómo se difundieron los resultados del proyecto a nivel institucional y nacional.
    • Relación con los estándares internacionales: Se podría analizar cómo el marco de trabajo se alinea con los estándares internacionales de desarrollo de software, como el Modelo de Madurez de la Capacidad de Ingeniería de Software (CMMI) o el estándar ISO/IEC 12207.
    • Sostenibilidad del marco de trabajo: Se podría discutir cómo se garantizó la sostenibilidad del marco de trabajo en el tiempo y cómo se adaptó a los cambios en las tecnologías y las metodologías de desarrollo de software.

    DSN_XP y su primera evolución

    La Evolución de la Arquitectura DSN_XP

    De la Práctica Experimental al Estándar Académico

    Introducción: El Nacimiento de un Método en la Práctica

    La Arquitectura DSN_XP no surgió en un vacío teórico, sino como una respuesta directa a desafíos concretos en el desarrollo de software en el contexto académico ecuatoriano de principios de los años 2000. Su evolución está intrínsecamente ligada a tres proyectos clave en la Universidad Tecnológica Israel (UTECI) y DESSINE: SITEDI , ALEPH_XP y la Estandarización de Tesis . Estos proyectos, combinados, forjaron la versión 1.0 de la metodología.

    1. SITEDI (2003): El Piloto Experimental y la Crisis de la Cascada

    El proyecto SITEDI (Sistema de Tesis Dirigidas) puso de manifiesto la necesidad urgente de una metodología unificada. La baja tasa de culminación de tesis y la inconsistencia en el desarrollo del software eran problemas evidentes.

    • Aplicación de DSN_XP: Se actuó como consultoría externa, introduciendo el concepto de un ciclo de vida iterativo e incremental frente al modelo tradicional en cascada del reglamento académico.

    • Aporte Clave: Demostró la viabilidad práctica de un enfoque estructurado y orientado a objetos, enfatizando el Principio de Ocultación de Información para gestionar el acoplamiento.

    • Resultado: Solo los equipos guiados por DSN_XP lograron defender sus tesis con éxito, validando el método en un entorno de desarrollo colaborativo a gran escala.

    2. ALEPH_XP (2004): La Confrontación Teórica y la Investigación Formal

    Mientras SITEDI probaba la eficacia del método, ALEPH_XP, aunque no se concretó como un desarrollo Open Source de herramientas de Ingeniería FM, sirvió como un catalizador teórico fundamental.

    • Desafío Clave: La necesidad de desarrollar software como tesis de grado forzó a DSN_XP a confrontar el modelo prevalente de "Codificar y Corregir" y la ausencia de metodologías formales en la academia.

    • Aporte Clave: Permitió a DSN_XP profundizar en la investigación de las metodologías de desarrollo de software en Ecuador y establecer su marco de referencia teórico basado en una concepción arquitectónica por perspectivas , justificando el diseño más allá de la simple programación.

    • Resultado: El proyecto guio la adaptación de los artefactos de DSN_XP para ser un marco teórico robusto capaz de soportar tanto el producto software como el documento de tesis.

    3. Asesoría y Régimen Académico (2003-2005): La Consolidación y el Estándar 1.0

    Las lecciones de SITEDI y la investigación impulsada por ALEPH_XP convergieron en el programa de asesoría a egresados, lo que llevó directamente al proyecto de Régimen Académico.

    • Aplicación de DSN_XP: Se impartieron talleres técnicos intensivos (UML, modelado, análisis y diseño) a estudiantes que no encontraban una metodología apropiada. DSN_XP funcionó como un soporte personalizado y una plataforma de investigación de la ingeniería de software .

    • El Gran Hito (DSN_XP 1.0): El éxito de la asesoría liderada al proyecto "Régimen académico y tesis de grado" en 2004. Aquí, DSN_XP 1.0 fue establecido como el marco de trabajo estandarizado para el desarrollo de tesis en la Facultad de Sistemas.

    • Legado: Este proceso no solo generó las mejores tesis de la época, sino que también se considera la primera tesis de investigación científica aplicada a la ingeniería de software en Ecuador , elevando la calidad académica a un nuevo nivel de estandarización.

    Conclusión

    La Arquitectura DSN_XP evolucionó desde un experimento de consultoría ( SITEDI ) a un objeto de profunda investigación metodológica ( ALEPH_XP ), hasta convertirse en el Estándar 1.0 que transformó la manera en que se desarrollaron las tesis de software en la UTECI.

    DSN_XP y el trabajo en equipos

    Asesoría a egresados de la facultad de sistemas

    Año: 2003-2005
    Localidad: Quito
    Institución: Universidad Tecnológica Israel

    Descripción:

    Serie de conferencias técnicas sobre ingeniería de software que se requerían para la disertación de los egresados en la presentación de sus tesis; estas conferencias permitían entrenar a los egresados en aspectos de manejo y selección de una metodología y del uso de artefactos para la generación del documento técnico de la tesis.

    DSN_XP:



    Los estudiantes en su mayoría no estaban capacitados adecuadamente para desarrollar sus tesis de grado; este problema se evidenciaba cuando nos consultaban sobre el ¿Cómo aplicar un método en particular o una técnica específica?; había otro grupo de gente que nos preguntaba sobre asesoría en temas distintos a la programación de soluciones tradicionales sino que implicaba por ejemplo manejo del hardware y componentes PLC, otros preferían la domótica, otros hablaban ya de Balanced Score Card y otros mencionaban temas de la escuela de diseño basada en aspectos inclusive.

    Todos ellos tenían un problema en común, no encontraban o no entendían una metodología apropiada para el desarrollo de sus tesis, por un lado enfrentaban una plantilla documental que permitía desarrollar la tesis de acuerdo a los reglamentos internos metodológicos para tesis y  por otro lado se les solicitaba la justificación teórica desde la ingeniería de software al desarrollo de su aplicación software como tema de tesis.

    Para poder dar soporte a estos estudiantes, ya que no se trataba solo de un único estudiante que planteaba su metodología propia para hacer software como nosotros, sino que aplicábamos esta metodología para desarrollar investigaciones sobre la ingeniería del software, por lo que esta investigación en sí mismo era el método que se impartía a todos aquellos que nos consultaban sobre cómo documentar un proyecto técnico en formato de tesis para el desarrollo en una aplicación software.
    Una vez que habíamos estudiado y registrado en nuestra bitácora aspectos sobre la ingeniería de software, era necesario establecer el marco teórico que daría sustento a nuestro método en su versión 1.0 sobre varios aspectos, a saber:
    • Necesitábamos dejar en claro que nuestro método DSN_XP funciona como modelo para desarrollar software gracias a su concepción arquitectónica basada en perspectivas.
    • Habíamos comprendido gracias a la influencia de XP que es posible enfrentar el desarrollo de software de una manera más experimental y por lo tanto más personalizada. 
    En base a nuestra propia transformación, desde una escuela de diseño estructurado en la que la funcionalidad era el aspecto más importante para el diseño en lugar de su estructura de persistencia, logramos iniciar una comparación teórica entre la orientación a objetos y la descomposición funcional, gracias a nuestro acompañamiento a las diversas tesis de grado que se proponían en la universidad y que acudían a nuestro método en búsqueda de un soporte personalizado para el desarrollo de sus tesis.

    Como plataforma de investigación de la ingeniería de software en el Ecuador, comenzamos a investigar profundamente los diversos modelos de representación de la realidad mediante el software y los métodos que proponían cada escuela de pensamiento del software según el marco de trabajo aplicado a cada tesis en su temática a desarrollar.

    Se construyeron varios canales virtuales sobre los cuales se brindaba asistencia teórica a quienes consultaban sobre un método específico para desarrollar software o de un grupo de modelos para capturar la realidad a modelar, también pedían refuerzos teóricos para poder enfrentar la parte académica que se requería en la construcción de su documento de tesis según los parámetros de la universidad.

    DSN_XP participó impartiendo talleres técnicos sobre UML, modelado de software, técnicas de análisis y diseño orientado a objetos, elaboración de documentos acorde a los lineamientos propuestos por la Universidad Tecnológica Israel con el objetivo de generar un estándar en las tesis entregadas en la facultad de sistemas.

    Nota: las tesis desarrolladas por los egresados entrenados en DSN_XP fueron consideradas en su época las mejores tesis presentadas.

    Aplicación de DSN_XP:

    A través de una serie de conferencias técnicas, los estudiantes recibieron capacitación en temas clave como ingeniería de software, modelado de sistemas utilizando UML y gestión de proyectos. Estas conferencias permitieron a los estudiantes familiarizarse con las mejores prácticas de la industria y adquirir las habilidades necesarias para diseñar, desarrollar e implementar soluciones de software de manera efectiva.

    La experiencia adquirida a través de este programa de asesoría permitió a DSN_XP identificar un conjunto de métodos y buenas prácticas que resultaron fundamentales para el éxito de los proyectos de tesis. Además, se planteó la posibilidad de establecer una comunidad de estudiantes y profesores interesados ​​en la mejora continua de los procesos de desarrollo de software en la universidad.

    Resultado experimentado:

    • Adquisición de habilidades por parte de los estudiantes, establecimiento de una comunidad e identificación de mejores prácticas.
    • Impacto en la calidad de las tesis: Se podría cuantificar el impacto de las asesorías en la calidad de las tesis presentadas por los estudiantes.
    • Colaboración con profesores: Se podría destacar la importancia de la colaboración con los profesores de la facultad para garantizar la pertinencia de las temáticas abordadas en las conferencias.
    • Evolución de la metodología de asesoría: Se podría describir cómo la metodología de asesoría evolucionó a lo largo del tiempo, en función de las necesidades de los estudiantes y los avances en el campo de la ingeniería de software.

    Lecciones aprendidas:

    • Relación con los otros proyectos: Se pudo establecer una conexión entre este proyecto y los proyectos SITEDI y ALEPH_XP, mostrando cómo se complementan y refuerzan mutuamente.
    • Legado del proyecto: Se pudo reflexionar sobre el legado de este proyecto y su impacto en la formación de nuevos profesionales en el área de la ingeniería de software.

    Al combinar los tres proyectos (SITEDI, ALEPH_XP y el programa de asesoría), podemos construir una narrativa coherente que muestre la evolución de DSN_XP y su contribución al desarrollo de software en la Universidad Tecnológica de Israel.

    DSN_XP y el proyecto ALEPH

     ALEPH_XP

    Proyecto de desarrollo de software en modalidad Open Source
    DSN_XP necesitaba ser implementada para lograr adaptar sus artefactos hacia la condición principal de uso que trataba sobre el desarrollo de tesis de grado que implican a su vez el desarrollo de un producto de software.

    Desarrollo de software como tesis de grado

    Este es un proyecto que no logró concretarse pero implicó un esfuerzo previo de nuestra parte para lograr determinar el contexto de usabilidad de nuestra metodología como marco de referencia teórico para el desarrollo de nuestra segunda propuesta de tesis de grado.

    Dado que estábamos teniendo experiencia en el diseño de estudios de ingeniería para la solicitud de frecuencias ante la Superintendencia de Telecomunicaciones del Ecuador, pensamos en compartir este conocimiento para convocar a otros para que se sumen al desarrollo de la versión básica de uso como un aplicativo disponible para la comunidad.
    Propuesta inicial del desarrollo de tesis

    El modelo Open Source

    Una de las rebeldías que nos quedó de la no autorización a nuestra primera propuesta de desarrollo de tesis, fue el confrontar la propiedad intelectual de código fuente entre la universidad y nuestra empresa, la cual patrocinaba los estudios superiores para la ingeniería en sistemas.
    Pero no teníamos la remota idea de cómo lograr desarrollar nuestro código y a la vez aplicar nuestro método de investigación para el desarrollo de software en Ecuador.
    Sabíamos hasta ese momento que las metodologías no eran consideradas dentro del modelo de desarrollo de software a la hora de realizar las tesis de grado, en segunda instancia, se consideraban los criterios de diseño que se aplican a un lenguaje de programación para el desarrollo de una aplicación programada mediante la tecnología para la implementación del software.

    Si usábamos código fuente de terceros, existía la posibilidad de ser encarados como faltos de criterio de diseño, que era una de las cualidades a ser consideradas a la hora de evaluar el desarrollo del aplicativo como tesis.

    El término de código abierto se refiere a la capacidad de modificar y compartir el código mediante un acceso público para su reutilización por terceros.

    DSN_XP había estudiado en su base de conocimientos a varios modelos de desarrollo de software y había observado de primera mano al modelo codificar y corregir, pues lo habíamos experimentado durante nuestra formación académica.

    Al profundizar esta observación, teníamos que cotejar este modelo con el modelo propuesto para el desarrollo de tesis, ya que, efectivamente, casi todos los estudiantes que formaron parte de nuestro estudio de acompañamiento para el desarrollo del software de sus tesis y el marco teórico de las mismas, utilizaban el modelo codificar y corregir usualmente en el desarrollo personalizado de la tesis.

    Esto significaba otro descubrimiento, ya que al codificar se supone se interponen en un proceso de diseño mental, tanto el análisis como el diseño base aprendido en clases, para poder replicar el algoritmo y los controles y eventos que son capturados en el proceso de abstracción de la solución planteada a un problema específico de desarrollo.

    Por otro lado, al poner en ejecución el código programado, se encontraban errores tanto en el algoritmo por no lograr entender el escenario técnico proyectado a codificar y el dominio del lenguaje de programación y la algoritmia de solución de problemas por pasos sucesivos.

    DESSINE

    ALEPH_XP

    Sistema para estudios de ingeniería en FM

    Año: 2004
    Localidad: Quito
    Institución: DESSINE

    Contexto del Proyecto:

    ALEPH_XP: Un Proyecto Pionero en el Desarrollo de Herramientas para Ingeniería en FM

    El proyecto ALEPH_XP, concebido en el año 2004 por Francisco Toscano Morales para DESSINE, tenía como objetivo principal el desarrollo de un conjunto de herramientas especializadas para el diseño de estudios de ingeniería en radiocomunicación y enlaces de transmisión en Frecuencia Modulada (FM). Este proyecto, aunque no se llevó a cabo en su totalidad, representa un hito importante en la evolución de nuestras investigaciones en el campo del desarrollo de software, particularmente en el contexto de las tesis de grado en la Universidad Tecnológica de Israel.

    Aplicación de DSN_XP:

    La decisión de no iniciar formalmente el proyecto ALEPH_XP se basó en la oportunidad de realizar una investigación más amplia sobre las prácticas de desarrollo de software en Ecuador, con un enfoque especial en las tesis de grado presentadas en la Facultad de Sistemas. Esta decisión estratégica permitió profundizar en el análisis de las metodologías y herramientas utilizadas en los proyectos de tesis, identificando así las principales oportunidades de mejora y los desafíos a los que se enfrentaban los estudiantes.

    A pesar de que el proyecto ALEPH_XP no se materializó como se había planeado inicialmente, los conocimientos y las experiencias adquiridas durante su conceptualización resultaron fundamentales para el desarrollo de futuras investigaciones y proyectos.

    DSN_XP y el proyecto SITEDI

    UTECI

    Sistema de Tesis Dirigidas (SITEDI)

    Año: 2003
    Localidad: Quito
    Institución: Universidad Tecnológica Israel

    Contexto del Proyecto:

    SITEDI: Un Enfoque Innovador para el Desarrollo de Tesis de Grado

    El proyecto SITEDI surgió como una respuesta a la baja tasa de tesis de grado culminadas en la Facultad de Sistemas de la Universidad Tecnológica Israel. Ante la necesidad de incentivar a los estudiantes a finalizar sus estudios y contribuir al desarrollo de un sistema de gestión universitaria integral, se propuso un modelo de desarrollo colaborativo en el que los estudiantes trabajaran en equipo en módulos específicos del sistema universitario a construir.

    Sin embargo, la falta de una metodología de desarrollo unificada y la diversidad de enfoques empleados por los diferentes equipos generan desafíos en términos de coherencia, integración y mantenimiento del sistema. Ante esta situación, DSN_XP participó en el proyecto como resultado de una consultoría externa, con el objetivo de establecer una base sólida para el desarrollo del software y promover la colaboración entre los equipos.

    DSN_XP puso de manifiesto en aquellos equipos de desarrollo que tuvo acceso, un enfoque más estructurado y disciplinado al proyecto SITEDI, enfatizando la importancia de una arquitectura de software bien definida y la adopción de buenas prácticas de desarrollo. A través de la implementación de una arquitectura orientada a objetos y la promoción de la colaboración entre los equipos, se logró mejorar significativamente la calidad de las tesis de grado y del software desarrollado y garantizar la coherencia del sistema en su conjunto.

    SITEDI representó un experimento pionero en la aplicación de principios de desarrollo de software en un entorno académico. A pesar de los desafíos iniciales, el proyecto demostró la viabilidad de un enfoque colaborativo y basado en componentes para el desarrollo de sistemas de software a gran escala.

    Aplicación de DSN_XP:

    DSN_XP establece la noción de un ciclo de vida distinto al propuesto por el reglamento académico, al introducir en la teoría de las tesis de grado, la noción de un modelo iterativo e incremental, en lugar del modelo tradicional en cascada

    Resultado experimentado:

    Sólo aquellos que fueron guiados por los informes emitidos por DSN_XP pudieron defender sus tesis de grado de forma adecuada y ordenada, logrando una generación apropiada de documentos técnicos que eran intercambiados entre los equipos para entender los impactos por decisiones de diseño modular y su impacto en la base de datos administrativa.

    Lecciones aprendidas:

    • Principio de ocultación de información como la característica técnica para minimizar el posible alto acoplamiento funcional entre los diversos módulos.
    • La necesidad de guiar el diseño mediante la aplicación del concepto de arquitectura de software sobre las escuelas de diseño de la ingeniería de software y su característica estructurada en el 2003
    • La necesidad de registrar estos eventos universitario para el desarrollo de los aspectos de innovación y desarrollo que se requiere en el contexto académico.
    • Nuestra primera experiencia oficial como metodología de desarrollo de software DSN_XP

    DSN_XP y acerca de

    DSN_XP

    Marco de trabajo para la adquisición de conocimiento

    ¿Qué es DSN_XP?

    DSN_XP nació en el año 2003 como resultado de una investigación pionera en el campo del desarrollo de software en Ecuador, esfuerzo requerido en el contexto académico universitario para el desarrollo de las tesis de grado de la Facultad de Sistemas de la Universidad Tecnológica Israel.

    Inicialmente concebido como una herramienta para estudiar los aspectos técnicos del desarrollo, DSN_XP ha evolucionado hasta convertirse en un marco de trabajo completo para la adquisición. de conocimiento y la creación de soluciones innovadoras al aplicar los principios de la ingeniería inversa y la experimentación, con ello, hemos desarrollado una metodología altamente adaptable que nos permite abordar proyectos de cualquier complejidad. 

    Nuestro objetivo es empoderar a nuestros clientes para que puedan tomar decisiones informadas y. alcanzar sus objetivos  A lo largo de los años, hemos refinado nuestro enfoque, pasando del Diseño de Software Inverso y Experimentación a Diseño de Soluciones a Necesidades por Experimentación, lo que refleja nuestra evolución y nuestro compromiso con la excelencia.

    DESSINE

    DESSINE
    DESSINE es la única organización en Ecuador con los derechos exclusivos sobre DSN_XP.

    DSN_XP: Exclusividad y Calidad Garantizadas

    DESSINE es la única organización en Ecuador que posee los derechos de propiedad intelectual sobre DSN_XP. Nuestro marco de trabajo ha sido desarrollado a lo largo de años de investigación y experimentación, y ha demostrado su eficacia en numerosos proyectos. Adaptamos DSN_XP a las necesidades específicas de cada proyecto, garantizando resultados a medida

    Al elegir DSN_XP, te beneficiarás de:

    • Innovación constante: Acceso a nuestros estudios sobre las últimas actualizaciones experimentadas.
    • Soporte técnico especializado: Aplicamos nuestro marco de trabajo para generar conocimiento abierto y claro para la comunidad.
    • Garantía de autenticidad: Todo nuestro trabajo como Francisco Toscano Morales está respaldado por DESSINE.
    En DESSINE, utilizamos la ingeniería inversa como una herramienta para aprender y mejorar continuamente. Sin embargo, DSN_XP es nuestra propia creación, adaptada a nuestras necesidades específicas y protegida por nuestro modelo de licencia CC.

    DSN_XP es el resultado de años de investigación y experimentación por parte de nuestro equipo. Aunque nos inspiramos en otros marcos de trabajo, DSN_XP es una metodología única y exclusiva de DESSINE.

    En DESSINE, no solo utilizamos DSN_XP, sino que lo hemos perfeccionado a través de nuestra experiencia y conocimiento. Nuestro marco de trabajo para la generación de conocimiento se adapta a las necesidades únicas de cada proyecto, garantizando resultados de alta calidad y satisfacción del cliente,

    Historia de origen

    DSN_XP es un marco de trabajo iterativo y colaborativo que hemos desarrollado para fomentar la adquisición de conocimiento en el ámbito del desarrollo de software, inicialmente y luego en contextos diversos en los cuales hemos participado para brindar soluciones basadas en la experimentación y la ingeniería inversa para documentar técnicamente, el diseño del software. 

    Diseño de Software iNverso y eXPerimentación

    Núcleo temático del estudio del método

    DSN_XP es un marco de trabajo flexible y adaptable que hemos diseñado para fomentar el aprendizaje continuo y la mejora continua. Nuestra versión inicial desarrolló un método de investigación basado en la observación y la experimentación, lo que nos permitió adquirir un conocimiento profundo de los aspectos técnicos del desarrollo de software. A partir de esta base, hemos desarrollado un conjunto de principios y prácticas que nos guían en la creación de soluciones de software innovadoras y de alta calidad.

    El corazón de DSN_XP reside en su capacidad para aprender y evolucionar. Al investigar nuestro propio método, podemos identificar áreas de mejora y adaptar el marco de trabajo a las nuevas tendencias y desafíos del desarrollo de software. Esto nos permite garantizar que DSN_XP siga siendo una herramienta relevante y eficaz en un entorno tecnológico en constante cambio.

    Nuestra metodología surgió de la necesidad de desarrollar un enfoque más estructurado y eficiente para el desarrollo de software. A través de una investigación exhaustiva, exploramos diversas técnicas y métodos, incluyendo los principios de la Programación Extrema (XP). Sin embargo, en lugar de adoptar un enfoque existente de manera rígida, decidimos crear nuestro propio marco de trabajo, al que denominamos DSN_XP. Este marco nos permite modelar nuestras ideas de manera flexible y adaptarnos a los desafíos específicos de cada proyecto

    Significado

    DSN_XP es una filosofía de diseño que va más allá de las herramientas y técnicas tradicionales. Al aplicar los principios de la ingeniería inversa y la experimentación, hemos creado una metodología altamente adaptable que nos permite abordar proyectos de cualquier complejidad.

    Nuestro objetivo siempre ha sido desarrollar soluciones que no solo cumplen con los requisitos técnicos, sino que también satisfagan las necesidades específicas de nuestros clientes.

    A lo largo de los años, hemos refinado nuestro enfoque, pasando de DSN_XP como un acrónimo para Diseño de Software Inverso y Experimentación a Diseño de Soluciones a Necesidades por Experimentación, lo que refleja nuestra evolución y nuestro compromiso con la excelencia
    Denominación original DSN_XP
    Nota: Para el 2014 decidimos cambiar el nombre del marco de trabajo a:

    Cambio de denominación sobre DSN_XP