La ingeniería de métodos en el "campo de los sistemas de información es la disciplina que construye nuevos métodos a partir de métodos existentes". [2] Se centra en "el diseño, construcción y evaluación de métodos, técnicas y herramientas de apoyo para el desarrollo de sistemas de información ". [3]
Además, la ingeniería de métodos “quiere mejorar la utilidad de los métodos de desarrollo de sistemas creando un marco de adaptación mediante el cual se crean métodos que se adapten a situaciones organizacionales específicas”. [4]
El proceso de modelado de metaprocesos no suele contar con el respaldo de herramientas de software, llamadas herramientas de ingeniería de métodos asistidos por computadora (CAME) o herramientas MetaCASE (herramientas de ingeniería de software asistida por computadora de nivel meta). A menudo, la técnica de instanciación "se ha utilizado para construir el repositorio de entornos de ingeniería de métodos asistidos por computadora". [5] Existen muchas herramientas para el modelado de metaprocesos. [6] [7] [8] [9] [10]
En la literatura, se utilizan distintos términos para referirse a la noción de adaptación de métodos, entre ellos, “adaptación de métodos”, “adaptación de fragmentos de métodos” e “ingeniería de métodos situacionales”. La adaptación de métodos se define como:
Un proceso o capacidad en el que los agentes humanos, a través de cambios receptivos e interacciones dinámicas entre contextos, intenciones y fragmentos de métodos, determinan un enfoque de desarrollo de sistemas para una situación de proyecto específica. [11]
Potencialmente, casi todos los métodos ágiles son adecuados para la adaptación de métodos. Incluso el método DSDM se está utilizando para este propósito y se ha adaptado con éxito en un contexto CMM . [12] La adecuación a la situación puede considerarse como una característica distintiva entre los métodos ágiles y los métodos de desarrollo de software tradicionales, siendo estos últimos relativamente mucho más rígidos y prescriptivos. La implicación práctica es que los métodos ágiles permiten a los equipos de proyecto adaptar las prácticas de trabajo de acuerdo con las necesidades de los proyectos individuales. Las prácticas son actividades y productos concretos que forman parte de un marco de método. En un nivel más extremo, se podría adaptar la filosofía detrás del método, que consiste en una serie de principios . [11]
La ingeniería de métodos situacionales es la construcción de métodos que se adaptan a situaciones específicas de proyectos de desarrollo. [13] Puede describirse como la creación de un nuevo método mediante
Esto permite la creación de métodos de desarrollo adecuados para cualquier situación de desarrollo. El desarrollo de cada sistema comienza entonces con una fase de definición del método, en la que el método de desarrollo se construye sobre la marcha. [4]
En el caso del desarrollo de negocios móviles, existen métodos disponibles para partes específicas del proceso de diseño del modelo de negocios y el desarrollo de las TIC. La ingeniería de métodos situacionales se puede utilizar para combinar estos métodos en un método unificado que adopte las características de los servicios de TIC móviles.
Los desarrolladores de los lenguajes de modelado IDEF , Richard J. Mayer et al. (1995), han desarrollado un enfoque temprano para la ingeniería de métodos a partir del estudio de la práctica común de la ingeniería de métodos y la experiencia en el desarrollo de otros métodos de análisis y diseño . La siguiente figura proporciona una vista orientada al proceso de este enfoque. Esta imagen utiliza el método de captura de descripción de proceso IDEF3 para describir este proceso donde los cuadros con frases verbales representan actividades, las flechas representan relaciones de precedencia y las condiciones "o exclusivas" entre los caminos posibles están representadas por los cuadros de unión etiquetados con una "X". [1]
Según este enfoque existen tres estrategias básicas en la ingeniería de métodos: [1]
Estas estrategias básicas se pueden desarrollar en un proceso similar de desarrollo de conceptos.
El enfoque de ingeniería del conocimiento es el mecanismo predominante para la mejora de métodos y el desarrollo de nuevos métodos. En otras palabras, con muy pocas excepciones, el desarrollo de métodos implica aislar, documentar y empaquetar la práctica existente para una tarea determinada de una forma que promueva el éxito confiable entre los profesionales. Las sintonías de los expertos se caracterizan primero en forma de intuiciones básicas y conceptos de métodos. Estos a menudo se identifican inicialmente a través del análisis de las técnicas, diagramas y expresiones utilizadas por los expertos. Estos descubrimientos ayudan en la búsqueda de métodos existentes que se pueden aprovechar para ayudar a los profesionales novatos a adquirir las mismas sintonías y habilidades. [1]
El desarrollo de un nuevo método se logra estableciendo el alcance del método, refinando las caracterizaciones de los conceptos e intuiciones del método, diseñando un procedimiento que proporcione tanto el cumplimiento de tareas como un apoyo básico de aprendizaje a los practicantes novatos, y desarrollando un lenguaje o lenguajes de expresión. Luego se desarrollan técnicas de aplicación del método que describen pautas para su uso en modo independiente y en conjunto con otros métodos. Luego, cada elemento del método se somete a un refinamiento iterativo a través de pruebas de laboratorio y de campo. [1]
El proceso de diseño de lenguajes de métodos es altamente iterativo y experimental por naturaleza. A diferencia del desarrollo de procedimientos, donde se puede identificar, fusionar y refinar un conjunto de heurísticas y técnicas de la práctica existente, los diseñadores de lenguajes rara vez encuentran mecanismos de visualización gráfica o captura de información textual bien desarrollados. Cuando se pueden encontrar estructuras de lenguaje potencialmente reutilizables, a menudo están mal definidas o solo se adaptan parcialmente a las necesidades del método. [1]
Un factor crítico en el diseño de un lenguaje de método es establecer claramente el propósito y el alcance del método. El propósito del método establece las necesidades que el método debe abordar. Esto se utiliza para determinar el poder expresivo requerido del lenguaje de apoyo. El alcance del método establece el rango y la profundidad de la cobertura que también se deben establecer antes de que uno pueda diseñar una estrategia de diseño de lenguaje apropiada. La determinación del alcance también implica decidir qué actividades cognitivas serán apoyadas a través de la aplicación del método. Por ejemplo, el diseño del lenguaje puede limitarse a mostrar solo los resultados finales de la aplicación del método (como al proporcionar a IDEF9 facilidades de lenguaje gráfico y textual que capturen la lógica y la estructura de las restricciones). Alternativamente, puede haber una necesidad de apoyo de lenguaje en proceso que facilite la recopilación y el análisis de información. En esas situaciones, se pueden diseñar construcciones de lenguaje específicas para ayudar a los practicantes del método a organizar, clasificar y representar información que luego se sintetizará en estructuras de representación adicionales destinadas a la visualización. [1]
Con esta base, los diseñadores de lenguajes comienzan el proceso de decidir qué se debe expresar en el lenguaje y cómo se debe expresar. El diseño de lenguajes puede comenzar con el desarrollo de un lenguaje textual capaz de representar la gama completa de información que se va a abordar. Luego se pueden desarrollar estructuras de lenguaje gráfico diseñadas para mostrar partes seleccionadas del lenguaje textual. Alternativamente, las estructuras de lenguaje gráfico pueden evolucionar antes o en paralelo con el desarrollo del lenguaje textual. La secuencia de estas actividades depende en gran medida del grado de comprensión de los requisitos del lenguaje que tengan los desarrolladores de lenguajes. Estos pueden quedar claros solo después de varias iteraciones de diseño de lenguaje tanto gráfico como textual. [1]
El diseño de lenguaje gráfico comienza identificando un conjunto preliminar de esquemas y el propósito o los objetivos de cada uno en términos de dónde y cómo respaldarán el proceso de aplicación del método. El elemento central en el que se centrará cada esquema se determina. Por ejemplo, al experimentar con diseños de lenguaje gráfico alternativos para IDEF9, se imaginó un esquema de contexto como un mecanismo para clasificar los diversos contextos ambientales en los que se pueden aplicar restricciones. El enfoque central de este esquema era el contexto. Después de decidir el enfoque central del esquema, se identifica información adicional (conceptos y relaciones) que se debe capturar o transmitir. [1]
Hasta este punto del proceso de diseño del lenguaje, el enfoque principal ha sido en la información que debe mostrarse en un esquema dado para lograr los objetivos del esquema. Aquí es donde el diseñador del lenguaje debe determinar qué elementos identificados para su posible inclusión en el esquema son susceptibles de representación gráfica y servirán para mantener al usuario concentrado en el contenido de información deseado. Con este entendimiento general, se exploran las estructuras de lenguaje gráfico desarrolladas previamente para identificar posibles oportunidades de reutilización. Al explorar los diseños de lenguaje gráfico candidatos para los métodos IDEF emergentes, se identificaron y exploraron una amplia gama de diagramas. Muy a menudo, incluso algunos de los conceptos centrales de un método no tendrán ningún elemento de lenguaje gráfico en el método. [1]
Por ejemplo, el método de modelado de información IDEF1 incluye la noción de entidad, pero no tiene ningún elemento sintáctico para una entidad en el lenguaje gráfico.8. Cuando el diseñador del lenguaje decide que se debe incluir un elemento sintáctico para un concepto de método, se diseñan y evalúan símbolos candidatos. A lo largo del proceso de diseño del lenguaje gráfico, el diseñador del lenguaje aplica una serie de principios rectores para ayudar a desarrollar diseños de alta calidad. Entre ellos, el diseñador del lenguaje evita la superposición de clases de conceptos o las mal definidas. También busca establecer mecanismos intuitivos para transmitir la dirección de lectura de los esquemas. [1]
Por ejemplo, los esquemas pueden estar diseñados para leerse de izquierda a derecha, de abajo hacia arriba o de centro a exterior. También se tiene en cuenta la posibilidad de que haya desorden o cantidades abrumadoras de información en un solo esquema, ya que cualquiera de estas condiciones hace que la lectura y la comprensión del esquema sean extremadamente difíciles. [1]
Cada diseño candidato se prueba luego desarrollando una amplia gama de ejemplos para explorar la utilidad de los diseños en relación con el propósito de cada esquema. Los intentos iniciales de desarrollo de métodos, y en particular el desarrollo de estructuras de lenguaje de apoyo, suelen ser complicados. Con iteraciones sucesivas del diseño, se eliminan estructuras de lenguaje innecesarias y complejas. [1]
A medida que el diseño del lenguaje gráfico se acerca a un nivel de madurez, la atención se centra en el lenguaje textual. Los propósitos que cumplen los lenguajes textuales varían desde proporcionar un mecanismo para expresar información que se ha omitido explícitamente del lenguaje gráfico hasta proporcionar un mecanismo para el intercambio de datos estándar y la interpretación automatizada de modelos. Por lo tanto, el lenguaje textual que respalda el método puede ser simple y no estructurado (en términos de interpretabilidad informática) o puede surgir como un lenguaje altamente estructurado y complejo. El propósito del método determina en gran medida qué nivel de estructura se requerirá del lenguaje textual. [1]
A medida que el lenguaje del método comienza a alcanzar su madurez, se emplean técnicas de formalización matemática para que el lenguaje emergente tenga una sintaxis y una semántica claras. El proceso de formalización del método a menudo ayuda a descubrir ambigüedades, identificar estructuras lingüísticas complicadas y agilizar el lenguaje. [1]
Estas actividades generales culminan en un lenguaje que ayuda a centrar la atención del usuario en la información que se necesita descubrir, analizar, transformar o comunicar en el transcurso de la realización de la tarea para la que se diseñó el método. Tanto los componentes de procedimiento como de lenguaje del método también ayudan a los usuarios a desarrollar las habilidades y los conocimientos necesarios para lograr resultados de alta calidad de manera constante para la tarea en cuestión. [1]
Una vez desarrollado el método, se diseñarán técnicas de aplicación para aplicarlo con éxito de forma independiente y junto con otros métodos. Las técnicas de aplicación constituyen el componente de "uso" del método, que continúa evolucionando y creciendo a lo largo de la vida del método. El procedimiento del método, las construcciones del lenguaje y las técnicas de aplicación se revisan y prueban para refinar iterativamente el método. [1]
Este artículo incorpora texto del informe Compendio de métodos de Integración de información para ingeniería concurrente (IICE) de la Fuerza Aérea de los EE. UU. , de Richard J. Mayer et al., 1995, una publicación que ahora es de dominio público.