ИНФРАСТРУКТУРА ГРАФООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ НА ОСНОВЕ ПРОИЗВОДИТЕЛЕЙ С ПОДДЕРЖКОЙ СЦЕНАРИЕВ

1. Компьютерно-реализуемый способ выполнения прикладной программы, написанной в объектно-ориентированном коде, при этом способ содержит этапы, на которых:
создают экземпляр производителя с выводом, который является интересующим в настоящий момент, при этом объектно-ориентированный код включает в себя методы и объявления зависимостей производителя, при этом объявление зависимостей производителя для данного метода идентифицирует набор из нуля или более производителей, причем производитель является конструкцией с возможностью создания экземпляра среды выполнения, которая включает в себя, по меньшей мере, экземпляр и метод, ассоциативно связанный с этим экземпляром;
в ответ на упомянутое создание экземпляра, добавляют интересующего производителя в качестве части первого графа производителей;
пытаются автоматически формировать оставшуюся часть первого графа производителей через связывание и создание экземпляра по мере необходимости других производителей на основе объявлений зависимостей производителя, методов производителей, уже присутствующих на первом графе производителей; и
моделируют прикладную программу с помощью изменения в прикладной программе при сохранении существующих состояний и существующих выводов производителей на первом графе производителей.
2. Способ по п.1, в котором производителей взаимно соединяют друг с другом на основе зависимости между производителями на первом графе производителей, при этом первый граф производителей, существующие состояния и существующие выводы прикладной программы соответствуют первому сценарию, причем изменение включает в себя изменения в выводах одного или более напрямую затрагиваемых производителей прикладной программы.
3. Способ по п.2, дополнительно содержащий этапы, на которых:
принимают информацию сценария, включающую в себя ключ опорного сценария, идентифицирующий первый сценарий, ключ целевого сценария, идентифицирующий целевой сценарий, и ссылку на список воздействия, содержащий совокупность из одного или более ключей производителей одного или более напрямую затрагиваемых производителей для целевого сценария и информацию об изменениях выводов одного или более напрямую затрагиваемых производителей; и
создают второй сценарий с использованием информации сценария.
4. Способ по п.3, в котором создание второго сценария содержит этапы, на которых:
определяют то, какие производители из производителей на первом графе производителей должны затрагиваться посредством выводов одного или более напрямую затрагиваемых производителей с помощью первого графа производителей; и
регистрируют затрагиваемых производителей в структуре отслеживания производителей воздействия.
5. Способ по п.4, в котором создание второго сценария содержит этапы, на которых:
создают второй граф производителей, имеющий копию, по меньшей мере, интересующего производителя, одного или более напрямую затрагиваемых производителей и любого из затрагиваемых производителей в структуре отслеживания производителей воздействия, от которой зависит интересующий производитель; и
изменяют выводы копии одного или более напрямую затрагиваемых производителей согласно информации в списке воздействия.
6. Способ по п.5, в котором изменение выводов копии одного или более напрямую затрагиваемых производителей согласно информации в списке воздействия содержит этап, на котором:
подменяют выводы копии одного или более напрямую затрагиваемых производителей на втором графе производителей предварительно определенным значением, указанным посредством информации в списке воздействия.
7. Способ по п.5, в котором изменение выводов копии одного или более напрямую затрагиваемых производителей согласно информации в списке воздействия содержит этапы, на которых:
определяют выводы производителей в первом сценарии; и
формируют вывод копии напрямую затрагиваемого производителя во втором сценарии с использованием выводов производителей в первом сценарии и информации в списке воздействия.
8. Способ по п.5, в котором создание второго графа производителей содержит этап, на котором:
связывают одного или более производителей на первом графе производителей со вторым графом производителей, при этом один или более производителей являются независимыми от напрямую затрагиваемого производителя.
9. Способ по п.5, в котором создание второго графа производителей содержит этап, на котором:
клонируют интересующего производителя и любого из затрагиваемых производителей, от которых зависит интересующий производитель, с помощью первого графа производителей.
10. Способ по п.5, в котором создание второго графа производителей содержит этап, на котором:
создают интересующего производителя и затрагиваемых производителей, от которых интересующий производитель зависит, из определения метода и объявления зависимости метода каждого интересующего производителя и затрагиваемых производителей, от которых зависит интересующий производитель.
11. Способ по п.5, дополнительно содержащий этапы, на которых:
выполняют прикладную программу во втором сценарии с помощью измененных выводов копии одного или более напрямую затрагиваемых производителей, чтобы определять вывод копии интересующего производителя на втором графе производителей, при сохранении существующих выводов интересующего производителя, одного или более напрямую затрагиваемых производителей и затрагиваемых производителей для первого сценария;
сохраняют вывод копии интересующего производителя для второго сценария в кэше при фиксировании существующего вывода интересующего производителя для первого сценария в кэше;
сохраняют измененный вывод копии одного или более напрямую затрагиваемых производителей для второго сценария в кэше при фиксировании существующего вывода одного или более напрямую затрагиваемых производителей для первого сценария в кэше; и
сохраняют выводы копий промежуточных производителей на пути между интересующим производителем и одним или более напрямую затрагиваемых производителей для второго сценария в кэше при фиксировании существующих выводов промежуточных производителей для первого сценария в кэше.
12. Способ по п.11, дополнительно содержащий этап, на котором:
автоматически определяют производную вывода интересующего производителя от первого сценария ко второму сценарию, используя вывод копии интересующего производителя для второго сценария и вывод интересующего производителя для первого сценария.
13. Способ по п.12, дополнительно содержащий этап, на котором:
автоматически и рекурсивно определяют, по меньшей мере, одно из производной N-го порядка и перекрестной производной с использованием производной вывода интересующего производителя от первого сценария ко второму сценарию, где N - это целое число больше единицы.
14. Способ по п.5, в котором моделирование прикладной программы содержит этап, на котором выполняют производителя формирования нагруженных производителей, чтобы динамически создавать, по меньшей мере, одного из производителей на втором графе производителей.
15. Система, содержащая:
среду выполнения, чтобы выполнять объектно-ориентированный исходный код с объявлениями зависимостей производителя для методов, при этом производитель является конструкцией с возможностью создания экземпляра среды выполнения, которая включает в себя, по меньшей мере, экземпляр и метод, ассоциативно связанный с экземпляром, при этом каждое объявление зависимостей производителя для данного метода идентифицирует набор из нуля или более производителей, и при этом упомянутая среда выполнения включает в себя модуль создания новых сценариев, чтобы принимать информацию сценария целевого сценария и, в ответ на команду создания экземпляра сценария, создавать экземпляр целевого сценария;
модуль автоматического формирования графов нагруженных производителей, соединенный с модулем создания сценариев, чтобы принимать текущего выбранного производителя с интересующим выводом и строить граф производителей для целевого сценария с использованием информации сценария, причем граф производителей включает в себя копию каждого текущего выбранного производителя, одного или более производителей, выводы которых изменены в целевом сценарии согласно информации сценария, и промежуточных производителей между одним или более производителями и текущим выбранным производителем; и
модуль автоматического выполнения графов нагруженных производителей, соединенный с модулем автоматического формирования графов нагруженных производителей, чтобы принимать измененные выводы одного или более производителей на графе производителей для целевого сценария и применять измененные выводы к производителям графа производителей для целевого сценария, чтобы определять вывод текущего выбранного интересующего производителя в целевом сценарии.
16. Система по п.15, в которой информация сценария включает в себя ключ опорного сценария, ключ целевого сценария, ссылку на список напрямую затрагиваемых производителей и индикатор, ассоциативно связанный с каждым из напрямую затрагиваемых производителей, чтобы указывать то, должен ли вывод соответствующего напрямую затрагиваемого производителя быть изменен на предварительно определенное значение или быть сформирован из существующего вывода соответствующего напрямую затрагиваемого производителя.
17. Система по п.16, в которой среда выполнения дополнительно содержит:
модуль вывода подмененных производителей, соединенный с модулем автоматического формирования графов нагруженных производителей, чтобы подменять вывод каждого из напрямую затрагиваемых производителей соответствующим предварительно определенным значением.
18. Система по п.15, в которой среда выполнения дополнительно содержит:
структуру графа производителей, соединенную с модулем автоматического формирования графов нагруженных производителей, чтобы сохранять граф производителей для целевого сценария без повторного написания каких-либо существующих графов производителей, сохраненных в нем, при этом структура графа производителей дополнительно содержит структуру кэширования выводов производителей, чтобы сохранять вывод текущего выбранного интересующего производителя, выводы промежуточных производителей и измененные выводы одного или более производителей для целевого сценария без перезаписывания каких-либо существующих выводов текущего выбранного интересующего производителя, промежуточных производителей и одного или более производителей, сохраненных в нем.
19. Система по п.15, в которой среда выполнения дополнительно содержит:
структуру отслеживания сценариев, соединенную с модулем создания сценариев, при этом модуль создания сценариев выполнен с возможностью создавать экземпляр целевого сценария посредством добавления информации сценария в структуру отслеживания сценариев.
20. Система по п.15, дополнительно содержащая:
вторую среду выполнения, выполненную с возможностью загружать и создавать экземпляры классов, активировать методы и выполнять анализ, по меньшей мере, для одного из классов и методов, при этом вторая среда выполнения является логически отделенной от среды выполнения.
21. Система по п.15, в которой среда выполнения дополнительно выполнена с возможностью загружать и создавать экземпляры классов, активировать методы и выполнять анализ, по меньшей мере, для одного из классов и методов.
22. Система по п.15, дополнительно содержащая операционную систему, при этом среда выполнения интегрирована в операционную систему.
23. Машиночитаемый носитель, который предоставляет объектно-ориентированный исходный код, включающий в себя:
множество определений классов множества классов, причем каждое из множества определений классов включает в себя:
набор из одного или более полей,
набор из одного или более методов, и
объявление зависимостей производителя для каждого из упомянутого набора методов, при этом объявление зависимостей производителя для данного одного из упомянутых методов используется посредством среды выполнения для того, чтобы идентифицировать набор из нуля или более производителей, при этом производитель является конструкцией с возможностью создания экземпляра среды выполнения, которая включает в себя, по меньшей мере, экземпляр одного из множества классов и метод, ассоциативно связанный с экземпляром; и
причем первое из упомянутого множества определений классов задает первый из множества классов, имеющий один или более методов формирования нагруженного производителя, чтобы формировать набор из одного или более нагруженных производителей, причем каждый из упомянутых одного или более методов формирования нагруженного производителя включает в себя код, чтобы идентифицировать интересующего производителя и задавать целевой сценарий так, что среда выполнения способна выполнять метод, чтобы оценивать воздействие на интересующего производителя для целевого сценария.
24. Машиночитаемый носитель по п.23, в котором каждый из одного или более методов формирования нагруженного производителя указывает ключ опорного сценария, ключ целевого сценария, ссылку на список напрямую затрагиваемых производителей и индикатор, ассоциативно связанный с каждым из напрямую затрагиваемых производителей, чтобы указывать, должен ли вывод соответствующего напрямую затрагиваемого производителя быть изменен на предварительно определенное значение или быть сформирован из существующего вывода соответствующего напрямую затрагиваемого производителя.
25. Машиночитаемый носитель по п.23, в котором каждый из одного или более методов формирования нагруженного производителя, когда выполняется посредством среды выполнения, инструктирует среде выполнения создавать одного или более нагруженных производителей в целевом сценарии и добавлять нагруженных производителей на граф производителей целевого сценария.
26. Машиночитаемый носитель по п.25, в котором каждый из одного или более нагруженных производителей включает в себя ключ производителя, чтобы идентифицировать производителя, и ключ сценария, чтобы идентифицировать сценарий.