CN1069424C - 开发计算机程序的方法和装置 - Google Patents
开发计算机程序的方法和装置 Download PDFInfo
- Publication number
- CN1069424C CN1069424C CN93106166A CN93106166A CN1069424C CN 1069424 C CN1069424 C CN 1069424C CN 93106166 A CN93106166 A CN 93106166A CN 93106166 A CN93106166 A CN 93106166A CN 1069424 C CN1069424 C CN 1069424C
- Authority
- CN
- China
- Prior art keywords
- action
- program
- user
- development process
- update mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000033772 system development Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 204
- 230000008569 process Effects 0.000 claims abstract description 166
- 230000009471 action Effects 0.000 claims abstract description 41
- 238000011161 development Methods 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 8
- 230000000694 effects Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 20
- 230000018109 developmental process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 8
- 239000000463 material Substances 0.000 description 8
- 239000004615 ingredient Substances 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000011960 computer-aided design Methods 0.000 description 3
- 230000001939 inductive effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 108091029480 NONCODE Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Cyclones (AREA)
- Liquid Crystal (AREA)
- Lubricants (AREA)
Abstract
本发明的方法和系统按照一套如用于软件产品开发的过程以完成任务的方式支持用户16。被开发软件的进程描述用系统示例说明,其上的支持系统8向用户16提供一系列涉及软件开发的选择。依次所选的选择允许各种工具,其每个并行和同时运行用于开发软件。系统在任何处理期间自动监测和检查进程并向用户16提供出错分析及建议可采取的行动。该系统提供灵活的支持而不需要用户16去服从硬性的开发模式。
Description
本发明涉及一种按照所描述的一套过程帮助开发软件产品的系统,尤其是按照一套例如在计算机程序设计的许多方法中可以找到的那些过程来自动监测、记录、调用和建议过去、现在和将来的行动的交互式支持媒体。
多年来,计算机软件开发者和程序设计人员一直在追求能减轻产生复杂的计算机程序的负担的工具。先前和不久前的软件开发要求程序设计人员特别注意与程序进展相关的每个细节和所有文件、说明等。一种计算机软件系统要经过建立、测试、修改各组成部分重建该系统的过程才能产生程序设计人员所需要的产品。随着软件系统的规模和复杂性的增长,要求设计单个系统的程序设计人员的人数也急剧的增长。因此,由不同的各别的程序设计人员分别设计整个软件系统中的各个部分,然后相互连接起来,形成最后的产品这样一种做法现在已是十分普遍的。很清楚,在这样的设计中会产生相容性和一致性的问题。例如,某个程序设计人员修改了他或她的程序部分,则受到其影响的其它程序部分的设计者必须注意到它的影响。于是,需要开发一种支持系统以便在建立复杂的计算机程序时用来跟踪和帮助软件开发人员。
在美国专利No.4,860,204中杰德朗(Gengran等人)给出了一种解决方案,其中,工作站通过使用可视的图形表示的方法来构造计算机程序。基于杰德朗的工作站的计算机允许用户通过连接图形编程块来建立计算机程序,并由此建立所希望的功能结果。当杰德朗系统对所选的交互连接进行整体检验时,该系统并不给用户提供或自动提出编程过程中可采取的行动及其所产生的后果的建议。
同样,在爱弗夏(Afshar)的美国专利No.4,734,854中,给出了一种设计生成程序模块的系统,这种模块完成共同需要的计算功能。然后,用户可将此生成模块集成到一个专用的或具体的软件单元中去,爱弗夏系统还能自动产生适用于特定的软件单元的生成模块的具体版本。尽管该系统具有某些自动特性,但它不能告诉用户在开发期间需要哪个生成系统或工具,也不能给用户建议可选用的方法。
然而,最近计算机辅助软件工程(“CASE”)环境不仅变得有用,而且在很多情形下成为复杂软件设计所必须;正如计算机辅助设计(“CAD”)系统已成为复杂硬件设计所必须一样。“软件工程环境”一般涉及操作系统环境和工具或子例程的集合,这些子例程复盖了开发计算机程序过程中产生的各种情况所需的功能。例如,莱布朗(Leblang)等人的美国专利No.4,809,170阐述了一种计算机辅助软件工程应用的支持系统。莱布朗的支持系统监测正在开发的系统中的各种变化并把它们记录下来,以便将未恢复时使用,另外,该系统将系统的任何这类变化通知当前的用户。然而,莱布朗并不向用户提出能自动调用各种程序构造工具和交互前进建议的支持系统。
早期的软件工程环境系统以及软件开发支持的理论和目的概括地描述在下面的文章中:
格里菲斯等人(Griffiths,etal.,)的“ALF:它的进程模式和它在PCTE上的实现(ESPRITALF工程,技术文章1989)。
凯塞(Kaiser)等人的“软件开发和维护的智能帮助”(IEEE软件1988)。
科伦(Clemm)的“用作业控制替代版本控制”(计算机器协会1989)。
另外,CASE系统以不同于代码生成的方式帮助用户。例如,由软件开发者所承担的修改一个程序的特定方面的任务不仅影响程序模块元件而且也影响到程序的其它非代码元件。对程序的扩充也可能需要更新程序的设计说明、用户手册和联机“帮助”文件,某些步骤可能包括脱机活动,例如把变化通知在该程序上工作或使用该程序的其它人,建立更新程序的软盘和传送新盘给程序设计人员和用户。软件开发过程所涉及的远非编程一个方面,因此,实际的软件开发环境应该支持编程以外的更多方面。
如今,工业计算机程序的开发从描述方法和过程开始,按这些方法和过程能获得特定的软件。这种描述包含大量的标准以及复杂的过程,要求大量的步骤去完成。先前的软件支持系统由“工具箱”组成,该工具箱包含几个完成特定任务的工具。这类支持系统中的所使用的工具包括:编辑器,编译程序,流程图编辑器等。程序设计人员的任务在于选择恰当的工具并确保各种程序单元之间的一致性。
其它软件支持系统包括用软件描述的进程的进程编程技术。进程编程作为软件来实现软件进程。这种方法利用形式语言描述尽可能多的软件进程,并且进程描述由计算机去解释,然后该计算机能指导用户怎样去实现一个特定的任务。对作为软件开发帮助手段有争议的已有进程编程技术不能给用户提供灵活的帮助。相反地,已有的进程编程强迫用户去通过各种各样的开发进程的不同步骤。然而,用户不愿意接受由进程编程技术所施加的强制性的限制。为了使软件开发过程真正有效,需要一个更灵活的支持系统,它包括监测用户的所有行动,允许用户在几个与后续开发过程一致的方向上进行开发,解释用户的行动并对实现这些行动给以支持。于是,在技术上需要一个交互的进程编程支持系统,该系统以灵活的方法帮助程序设计人员和工程师们开发复杂的计算机程序。
现在用一个示例来体现本发明。本发明包括一种对根据特定的软件进程开发软件产品提供交互式支持的方法。该方法的内容是:第一步用特定的语言定义某个软件进程,该特定语言涉及一套用于开发某软件产品的步骤。然后,所建立的描述必须由解释程序将其变换为可执行的形式。在解释期间,该方法产生一个供选择的菜单,其中每个选择构成一个关于特定软件进程可能的行动的建议。用户作出一项选择;随后,一组系统工具中的一个可被启动且完成一个工具操作。用户也能直接启动工具操作。由该工具完成的任何操作结果被跟踪以便看它是否涉及该进程。对该结果进行分析,且作为一个作用,其它系统工具或其它工具操作可自动启动。因此,给用户提供一个覆盖根据先前所取步骤开发的当前状态的反馈。
本发明的方法包括在形式的进程描述中指定的一致性检验。这些一致性检验能够在每使用一次系统工具后出现,且能产生在一致性检验期间发现的错误报告。上述方法的一个附加单元允许浏览与该开发相关的数据库中的目标。搜索数据库中的特定目标可以以启动来自浏览程序的任何可用系统工具的形式出现。
在另一方面,本发明是一个在按照特定的软件进程开发阶段期间提供交互支持的计算机系统。该交互支持系统包括一个规定和存贮一个形式进程描述的装置。系统中进一步提供一个将功能进程描述变换为可解释形式的装置。该解释程序(interpreter)包括一个专家系统以及一个该逻辑解释程序(logicinterpreter)经电信号可对其访问的数据库。经电信号可与逻辑解释程序(44)通信的信息处理程序(messagehandler)(46)用于处理与一组系统工具联络,这些工具配置完成与所述进程相关的特定任务。最后,一个用户界面用图形与该系统的用户进行通信并也允许用户输入。
下面参照附图说明本发明以便更好地理解本发明,并使本技术领域中的技术人员清楚地了解本发明的许多目的、特性和优点。
图1是表明需要定义某个进程的形式说明的各步骤的方框图;
图2是表明使某个形式说明可执行所要求的各步骤的方框图;
图3是表明作为本发明可使用的专家系统的主要组成部分的方框图;
图4是表明本发明支持系统的主要组成部分的方框图;
图5是以顺序表明的预先形成在进程的交互支持中的各步骤的流程图;
图6是本发明浏览程序特性的流程图;
图7是表明工具功能的启动和操作的流程图;
图8表明按照本发明所指出的方法构造一个所使用的活动的各种单元;
图9A-9C是按照本发明的方法处理数据的方法的不同部分的流程图;
图10是进一步说明本发明处理数据的方法的流程图;
图11是进一步说明在本发明处理数据的方法中使用图形符号的流程图;
图12是表明本发明的数据恢复方法的流程图;
图13是进一步表明处理数据的方法的流程图,特别是它表明了依据本发明原理执行一个活动的情况;
图14是以图形形式表明设有用本发明的工具支持的执行一个活动的流程图;
图15表明完成数据处理子进程的流程图。
支持系统的用户在做的每件事都将关系到达到某个目的,如产生一个新软件产品。下面,术语“进程”用来描述需要达到这样目的的各步骤,它包括这些步骤出现的次序等。进程是建立设计者的工作的自然路径(Way)。因此,进程的描述必须是由专家们仔细分析设计者应该怎样以最佳路径(方式)运行以获得预期目的的结果。本发明中为了在形式上能描述进程,使用了称为PDL(ProcessDescriptionLanguage)的专用语言。为了帮助设计者进行由进程定义的工作,PDL描述必须是可执行的,否则,它仅仅是相当于一种文本性的描述。通过执行描述,系统的用户获得达到预期目的所需要通过的全部步骤的导向。
应当理解,本发明包含两个不同的单元。第一,是进程单元,第二是支技系统单元。在得到援助之前,被支持的进程必须在形式上使用如上所述PDL来描述。这种进程描述然后被输入(以修改过的形式)给一个进程描述解释程序,由此,支持系统才能在获得进程目的上提供援助。于是,图1表明了进程定义的最初步骤。进程要求在框300中得到分析,然后在框302中产生该进程的一个非形式的模块(例如,作为一个文本性的描述)。在方框300和302中,我们有一个关于应该产生什么样结果和在该进程中需要取哪些步骤的说明。接着,在框304中产生一个PDL进程说明,同时在框306中产生如数据方案等的进程的信息模块。
PDL说明由对支持系统负责的并在开发进程方面专门拼制以适合特定公司和/或特定目的如特征设计、故障报告等的需要的系统设计人员来制作(诚然,普通用户原则上也能设计进程说明)。
该PDL说明(描述),例如包含许多基体特征。首先,它描述了一个进程分解为各个子进程,每个子进程描述了能够与其它子进程所描述的任务并行完成的任务,以便提高生产率。这样密切配合了设计者面临使用现代工作站的情况,在这样的工作站中有许多计算机工具能并行执行。然而每个工具用某个PDL表示的进程来描述,子进程描述了使用该工具应获得什么结果和该工具怎样与其它子进程或工具相互配合。第二,它描述了由不同的子进程描述的任务是怎样通过在进程之间不同时沟通的特定事件而交互作用的。第三,该PDL说明描述了特定子进程的起动和完成的条件,第四,它描述了构成一个子进程的不同的步骤和活动如编辑、编译、联接、测试等,为了起动某个步骤或活动所需的条件。最后,该PDL说明描述了通过面授怎样给用户提供进程的状态信息以及在进程的当前状态下执行哪些可能的步骤是合适的,而与用户交互作用。
为了用户进行他自己的选择和避免察觉到支持系统限制用户于某个顺序活动的障碍,PDL说明有三个基本特性。首先,唯有进程状态确定能够做什么;这确保了活动执行次序具有最小重要性。第二,该PDL描述通过向用户提供许多与进程当前状态有关的建议确保了灵活性,用户可自由地选择任一建议。于是,支持系统不强迫用户服从某个行动选择。第三,用户能直接进行活动,而不使用由本发明提出的选择。PDL说明的这三个特性将确保设计者必须做的不同任务能够以察觉不到太严格限制的方式处理。
现在参看图2,那里显示了为了实现图1中定义的进程的PDL描述所需采取的必要步骤,从而给某个特定进程提供援助。首先,在框350中,产生进程的PDL描述。然后,分析这种描述并在框352中将其变换为适合于援助逻辑解释程序的格式。一旦经适当格式化的描述在框354中装载于援助逻辑解释程序44(见图4),其结果是系统能向用户提供必要的支持。这些步骤由系统程序员(asystemProgrammer)采取以便使支持系统提供以PDL描述表达的援助作好准备。于是,这就准备好了本发明的第二个方面,即援助单元当用户决定进行以由某个进程描述的任务工作时,援助逻辑解释程序44开始对已变换为格式的PDL描述进行解释,由此向设计者提供援助去努力完成他的任务。于是,由于PDL描述了援助逻辑即它是怎样工作的,所以PDL描述的另一名称为:“援助逻辑”(assistantlogic)。
在执行援助逻辑期间,在援助中产生许多影子目标("Shadow"objects)。这些影子目标代表着“实际”目标、文件、说明等设计者正在用它们作为他任务的一部分建立和工作着的目标,这些影子目标用于援助逻辑以便保持跟踪与该进程描述工作相关的每个实际目标的状态。通过对目标状态保持跟踪能够检验条件以便看看新的行动是否合适并在那样情况下是否将它们建议给用户。这些影子目标是图1所述信息模块的组成部分。
现在参看图3,那儿显示了表明一个类似于本发明专家系统20的专家系统的主要组成的方框图。典型的专家系统取决于在产生系统自身期间所累积的知识大全(corpus)。这种知识大全驻留在专家系统20的知识库中。存贮在知识库30中的信息可以划分为知识库30的分类单元和离散部分。这种情形由包含在知识库30中的#1KB和#2KB表示。支持系统8的特定操作所需知识必须是清楚的并可接入专家系统20。
专家系统20的一般问题解决单元包含推理工具32。该推理工具32调用存贮在规则库34中的规则。推理工具32确定包含在规则库34中的规则是如何应用于手头的问题以及这些规则执行的次序。专家库20中的许多规则取一种为求解答而由简化了的检索方式组成的试探法的形式。在操作中,推理工具32扫描数据库36中的数据,并将数据与来自规则库34的准则匹配。依次,与规则库34相关的试探法方法产生用于知识库30的信息。起初,进程中使用的规则来源于专家38,这些规则不需要特定的次序。进而,知识库30中的信息在专家系统20运行期间受到实时更新。
另一方面,可使用归纳工具40对专家系统20进行操作以便使规则库34的规则公式化。归纳工具40通过导出应用于在知识库30中找到的特定信息的进程的一般原理进行工作。专家38能直接提供规则或给出能由归纳工具40将其变换为规则的样例。
下面参看图4,该图显示了按照本发明描述其组成部分的支持系统的方框图。作为一个基于计算机的系统,为了提供其优点,本发明的较佳实施例存放于计算机41中,这是一种适合于执行预先建立的逻辑语句的序列(即程序和/或固件)和从存贮器读写的计算机。位于支持系统8的操作中心的是援助(assistant)12。该援助12包含援助逻辑模块42和援助逻辑解释程序44。
援助逻辑模块42由一个如上所述被变换为PDL描述组成,它定义进程并代表要达到的目的。
援助逻辑解释程序44容纳着专家系统20。在一较佳实施例中,专家系统20用ProKappa语言编程,这种语言由Intellecorp公司(1975ElCaminoRealWest,MountainView,California)设计。本发明将图解加给所提供的Protalk语言以增加操作的简便性。援助12和尤其是援助逻辑解释程序44通过信息处理器46与支持系统中的工具进行通信,包括但不限于编译程序和编辑器。工具和工具功能是依据它们表达进程的基本积木块,通过它们进程在支持系统中被表示与执行。以这种方式,多数进程专用知识能够指定PDL描述而不是在工具中。因此,不同的工具很容易再应用于其它进程,而且当进程被修改时,工具不必改变。数据库36也连接到援助12。数据库36存贮通常由支持系统8产生或处理的数据以及为援助逻辑解释程序44和援助逻辑42连接先前存贮的进程信息。
为了提高使用支持系统8时的生产率,每个工具22与其它工具22并行工作(以不同的UNIX进程,如果工作在UNIX平台上)。每个工具通过交换与那工具所取的当前作用状态有关的信息与援助12交互作用。于是,许多同时的活动出现在支持系统8中,并且这些同时活动的每一个由援助12监视和分析。
请仍然看图4,它还显示了援助的用户界面活动窗口48。用户界面48与用户16进行进程状态通讯,并且向用户提供执行由进程定义的活动的指南。用户界面包含对用户是“可见”的唯一的援助12的单元。援助12中的专家系统20根据当前进程的前后关系分析用户16的行动(通过从工具接收到的信息或在支持用户界面中所做的选择),并且产生特定情况的特定图形信息。
在用户界面48中,使用许多不同的表示形式进行信息通信是可能的。所显示的信息,例如,可取表格形式,或取图形表示及流程图形式。许多可用的界面利用代表首选的界面的块50和代表次选的界面的块52来图示说明。用户可选择最适合他的技术和手头任务的界面类型。
现在参见图5,它显示了,当援助逻辑解释程序44装入如上所述的进程描述时,一个更详细的描述运行期间援助12工作方式的流程图。从该流程图看,很显然,援助12依赖于与作为支持系统8的一部分的工具22相关的许多因素。首先,援助12必须能起动工具22和调用工具功能。这通过能通信的信息处理器46来进行。工具也必须报告发生的各种事件,因为绝大多数工具事件涉及进程状态和要达到的设计目的,例如修改一个文件,建立一个界面说明,或编译一个程序。一个工具应当报告哪个事件决定于描述该任务的进程描述何时被指定。
因为工具不管它从哪里起动(从援助活动窗口,从数据库浏览器,或从Unix外壳),它都能与援助12通信,所以系统8允许用户除了由援助12处理的活动窗口48-52外利用其它手段起动工具。用户也能直接执行与那些非必须在活动窗口中作为建议显示的工具不同的工具功能。因此,援助12和援助逻辑42必须能处理在任何时候产生于不同工具的事件。这是可能的,因为PDL说明,当出现事件时它描述了要做的事,它仅仅涉及进程的当前状态,而不涉及已经出现事件的那个次序(这样能在专家系统下面使用触发装置(triggeringmechanisms))。因此,任何事件根据进程状态来解释而不管它是否已涉及来自援助12的建议。
继续见图5,下面是显示在那里的流程图的详细说明。由框60开始,用户选择他应完成的任务。例如,任务可以是一个新软件产品的设计,或是一个处理错误的报告。在框61中,援助12选择适当的特定任务的PDL说明(这种工作是在援助中内部自动地进行的)。这种说明按图2中所述在先前已被分析和变换。继续到框62,描述任务的进程的当前状态由数据库36装入援助12。这种装载当用户先前已在该任务上工作并已贮存了先前工作的状态时是最恰当的,在框63中,援助12将根据进程当前状态的行动作出建议。建议所显示的方式取决于如上所述采用的用户界面。
方框65描述了援助12出现在支持系统8中的等待事件。至框66的分支表明一个工具报告了作为事件功能调用到援助12的结果。为响应框66中产生的事件,框67改变进程状态,这是因为它来自发生在支持系统8中的事件。如果用户已从活动窗口中选择了援助建议中的一个,则方框68应该处于活动状态。如果接着是从框68至框69的分支,并且来自活动窗口所选择的建议包含执行一个工具功能,则起动工具22(假如需要的话),并且适当的功能经信息处理器46被调用。继续进行到框70,改变进程状态,反映工具功能调用。然而,如果由用户选择的建议不包含调用工具功能,则进程的内部状态仅通过用户所做的选择进行改变。在这种情况下,用户通常表明某些人工活动已在进程中完成。
在状态改变完成后,在方框72中,援助12演绎这种变化的结果。按照方框72导出的分析结果援助可自动在方框73中调用其它工具。而且,作为在框72中的分析结果,不同信息单元之间的一致性检验可在框74中自动进行,且其中发现的错误将在框75中得到报告。另外,援助12可按照框72的分析结果认为自动工具调用是不必要时,则转而为用户产生一组新的建议。该组新建议是以新建立的进程状态为基础的,如此重复进行循环。然而,如果用户在框77中想退出这种情况,则进程状态在框78中被保留。
下面参看图6,那里图示了本发明的浏览服务器(browserserver)90的情况,它包含支持系统8的独立单元。浏览服务器90允许用户16寻找系统数据库36中的目标并且不用援助12的引导对那些目标进行选择。浏览服务器90不对用户提供建议。所找到的目标如描述、流程图、程序等可通过浏览服务器90得到检查,并且目标上的工具操作能被起动。仍然参看图6,该浏览服务器90以起动浏览器框92开始。当浏览服务器90开始时,在方框93和94用户能搜索和选择系统数据库36中的目标。当选中该目标时则能在方框95上显示一张菜单,该菜单可用于对该目标的操作。方框96起动工具22并在方框98中向援助12报告这一事实。这样使援助依据所知道发生的事件能观察系统的一致性。于是,用户可以各种方式与支持系统8交互作用,其中之一是通过浏览服务器90且仍然得到援助12的支持。
下面看图7,这里显示了一个工具功能调用流程图。因为用户不用支持12的帮助能起动工具22,所以用户也能执行不同的工具功能,这些功能不必作为建议显示在由援助12处理的活动窗口中(如在上面浏览服务器情况中所述的)。于是,援助12和援助逻辑42必须能在任何给定时刻处理来自各种工具的事件。这样做的可能性是由于描述某个事件出现时做什么的PDL说明(描述)仅涉及进程的当前状态,而不涉及如上所述活动已经执行的次序。因此,任何事件依据进程的状态被解释而不管援助依据建议是否发送它。
其结果是,为了工具设计者与援助12所加的规定一致,工具必须以下面的方式运行。首先,工具操作在方框370起动,并将这一事实报告给援助。起动之后,工具能接受方框371中的工具功能调用。工具功能或经框372通过援助12或经框374通过工具用户界面被调用。接着,工具功能在框376执行,且如果进程需要的话,其结果在框378报告给援助12。再有,与进程相关的工具功能(于是需向援助报告)在设计进程期间被确定。不断循环,且该工具为下一个工具从等待调用框371起动作好准备,或该工具停止在框380。
下面参见图9,那里显示了在本发明原型之一中所给的指定援助的典型进程说明的一实施例的PDL图,它图解说明一个秘书当处理一个会议时需要取的不同步骤。因为进程描述由图形符号表达,所以图9的流程图采用下面讨论的图形符号。而且,系统8将图形流程图变换为如上所述由援助逻辑解释程序44能够解释的格式。
显示在图9-15中的文本信息是流程图整个内容的部分视图。每个图形符号能有不同种类的文本信息附于它;如非形式的注释,隐含或显式规定的可执行的编码,文件的使用,参数说明等。为了使图简化和使它们更易阅读,在图9-15中出现的视图仅仅显示图标的参数说明。在这种视图中,变量和常数两者作为参数指定,用第一个字符为问号来表示变量。在支持这种语言的图形编辑器(graphicaleditor)中,这种视图能变换为先前描述的任何其它视图。
下面参见图8,它进一步显示了PDL图标组成的例子。一个PDL的基本积木块是活动结构,该结构描述了某个活动的条件和结果并且它取图8所示的一般结构。活动图标386在其一边由前置条件图标(preconditionicons)388包围。该前置图标描述了该活动被执行的必要条件。例如,在图11中,符号140、142和144全部是前置条件。活动图标386对整个结构,即所有前置条件和结果起参考作用,结果图标390能代表用户或自动通过援助12要执行的操作。那儿也有许多不同的预先规定的代表特定条件和结果的图标。如菜单图标、文件图标、时钟图标等。预定的可执行的编码、文件编制等附于那些图标,并且参数能加给图标。应当注意引进一个活动的所有变量都位于该活动中。
如上所述,对于援助为内部的影子目标是状态信息的持有者。为了保持对文件、程序、不同的进程、子进程等的跟踪,它们在援助12中全部表示为影子目标。相应的实际目标一旦建立,这些影子目标就建立,在PDL中存在特定的图标,如例示图标(例示通常意味着从模板产生一个特定的例子,如影子目标的说明),这种例示图标代表产生一个影子目标。在图9A中例示符号102的情况下,一个秘书任务作为举例说明,该秘书任务图一般描述了许多可能的任务,而且许多不同的会议能使用这说明进行安排,当执行该说明来帮助用户安排特定会议时,这种特定的会议安排任务必须有一个代表,即一个影子目标。例示符号102表示建立这种例子,然后,该例子能持有关于这种特定会议安排任务的状态信息,并能与图的其它部分发生联系。
下面参看图9A-9C的流程图,所述进程涉及一个秘书安排一个业务会议等需要的任务。这些图显示了进程的不同状况。最上面部分图9A是进程起动条件的描述性图示说明,而中间部分图9B描述了进程细分成子进程。能使任何其它进程由支持系统8处理的秘书进程可包含几个子进程。图9B中图示的子进程中材料子进程108、通知子进程116、会议子进程118、文本编辑子进程119,和会议记要处理子进程122。材料子进程108描述怎样收集特定会议需要的材料,而通知子进程116描述怎样发通知给会议的参加者。会议子进程118描述怎样进行会议,而文本编辑子进程119描述怎样进入文本(如,使用什么工具)。会议纪要处理子进程112描述如何处理书写一个会议记要的分任务。下面部分图9C描述了进程的停止条件。应该理解还有其它进程视图(界面视图,活动视图,等)没有表示在图9A-9C中。
一旦例示的标准已得到满足,例如,这种标准是一个进程提供的服务已被请求(如来自某个其它子进程的输入),则每个子进程自动开始,进程或子进程序列也能被描述,并且在这种情况下,对于不断进行进程的任务的重要事件是由先前进程报告事件的“完成”。由箭头图示标明的信息转移,如图9B中“编辑”箭头112和“材料完成”箭头114,进一步描述了与描述并发任务的子进程相关的事件的交换。这种箭头在图中的语义并不重要,它仅仅是描述信息流的一种不正规的方法。信息的实际交换是由专家系统20下的推理工具32处理的,它们将在相应的子进程中详细进行描述。
图标100表示支持系统8通过接收一个起动进程的外部事件开始它的运行(如,对应于用户建立一个新的会议安排任务);事件的参数是名(“启动”),而进程的种类是动起(“秘书”)。例示出现在图标102。符号104表示与秘书进程关联的初始值的设定,并描述了进程状态变化(进程的起动情况设为“真”)。活动图标101,如上所述,表示整个活动。
下面参看图9B中所示的不同的箭头,编辑箭头112表明涉及由另一个子进程处理的业务的材料子进程。在这种情况下,根据材料子进程108使用文本编辑子进程119。该文本编辑子进程119描述了怎样使用一个能够并行并与系统中由其它子进程描述的活动同时执行的文本编辑器。一旦材料子进程108和通知子进程116已完成它们的各自任务,就出现事件114和115。来自会议118的“会议记录”和事件120表明来自会议的数据是可用的。会议数据由代表必须要做的会后(Postmeeting)工作的会议纪要处理子进程122来使用。编辑事件112导致文本编辑子进程119对文本进行进一步的编辑。于是,图9B图示说明了在描述能并行执行任务的子进程之间的事件交换。由于在材料子进程108与通知子进程116的任务之间明显地缺乏任何要进行交换的同步事件,所以能够并行产生。
现在来看图9C,在图标124中,条件描述了任何子进程中暂停情况为“真”时的状态。在图标126中,条件描述了这样一个必须是有利于这种活动的“协议处理”类的进程。在图标128中,找到拥有暂停子进程的秘书进程(由?进程标识)。最后,在图标130中该秘书进程暂停。
下面请看图10,那里也图示说明了本发明的处理数据的方法。这代表了图9的通知子进程116的例示。于是,秘书任务必须已被起动,它由符号130和132表示(起动情况为真且进程种类为“秘书”)。当前置条件为真时,该活动开始,并且在符号136(该例的参考是“子进程”)中执行通知子进程116的例示。然后,在符号138,通知子进程的起始值作为状态信息被记录。
下面参看图11,那里更详细地描述了本发明的处理数据的方法,尤其是更详细地描述了一个编辑活动145。位于专家系统下面的机构将检测什么时候活动的前置条件为真。该编辑活动145为可能时,符号140表示该通知子进程必须被起动。符号142表明需要暂时文件存贮的数据将通过当前活动产生并且因此,一个暂时文件名必须确定以便存贮这些信息(这种处理方式在这里还未表明的符号的编码部分中进行描述)。接着,菜单114按照与用户的交互作用的说明进行操作。在PDL语言中,菜单符号概括了援助12与用户相互作用的方式,如能够将活动表格提供给用户。首先,符号代表提供给用户的文本(这种特定例子中的“写通知”)。该提供的文本描述了用户能够或应该执行的某个活动。该菜单144也蕴涵某个目标,如一个文件、编码等,活动按照它执行(在这一示例中暂时文件用“?暂时”表示)。进而,该菜单144代表某个条件。在用户明确地选择活动表中的活动之前,该条件总是为“假”,而且结果,如执行一个工具功能或一个状态改变,是无效的。当用户选择用户界面中的活动时,该条件变为“真”,而其结果被执行。在该示例中,当用户选择了活动表中的写通知选择时,一个编辑事件以符号146送给(对应于图9B中的箭头112)另一个请求编辑任务的子进程。该请求由文本编辑子进程(这里未图示)处理,此时,起动编辑器,然后用户使用编辑器写会议通知。
下面参看图12,它进一步显示了本发明的数据处理的详细情况。通知子进程116的说明用包含检索与谁参加会议有关的数据的活动150继续进行。符号150表明:如果进程的“其它”方面的状态为“假”,则必须检索信息。符号152能产生一个菜单窗口。对希望他们出席会议的那些人都要求进入此菜单窗口,然后使用由系统支持的基本的窗口化原语(Primitives)在图标152的编码图中对该窗口进行描述。符号154代表通知子进程116的状态并将已产生的检索名(“其它”方面的状态现在为真)符号化。该活动由下面与图13关联的活动来激活。
现在来看图13,继续说明通知进程。从符号160开始,检测到一个来自已存贮在一文件中的另一子进程的事件。该信息来自文本编辑子进程119。在符号162处,系统执行一个验证所存文件是否与暂时文件名142是相同的文件的工作(这是进程的状态信息部分)。接着系统检索下一个条件是否满足,即所有其它出席者是否都被考虑了,这发生在符号164。如果这不为真,那么图12的活动被激活以便得到出席者。这里,位于专家系统下的目标驱动方面被应用,即,如果条件没满足而存在一个其结果满足该条件的活动,该活动将被执行。在符号166处,系统确定通知是否事先已送给出席者(这作为状态信息记录在“?文件”目标上)。这说明了整个支持系统8的无序特性。对于以并行方式和同时操作的每个进程和子进程,系统必须执行检查以确保自身工作不会重复,并由此不产生错误结果,也不减低系统的性能和降低系统的处理能力。于是,因只需要一个会议通知而由符号166执行检查。在满足最后条件方面,菜单170向用户16提供选择“发送通知”活动171的选择。在符号172处,进行本发明的援助发送通知并将它打印出来。符号172使装载、邮寄和打印发送给所有必须参加者的通知符号化(这能使用UNIX的邮寄和打印服务来达到,它们也在图标的编码图中再进行描述)。符号174记录着该通知已按“?文件”目标发送的状态信息,且由此这活动不能重复。
现在来看图14,通知子进程的元件以图示形式进一步细化了。符号180表示该通知的硬拷贝必须已建立的条件;换言之,该通知已打印(这出现在上述活动171中)。菜单182告诉用户该通知应当以所希望的位置被放到通知板上。该例中的活动184代表一个由支持系统8用所具有的工具不能援助的活动;而是必须由用户自己物理地保存该通知。因此,图标186表示:在这活动中只有发生一个内部状态变化而不卷入外部工具。最后,参见图15,活动194包含完成通知子进程在这里被图示。当该通知已被发送和邮寄,则条件190和192为真。符号196停止该进程,而符号198记录这种状态变化。由于专家系统的触发机构,它也能操作对这种事实有关系的进程事件。回过来看图9B,可见通知子进程116随完成箭头114之后产生会议118。于是,在出现事件198时会议118将作为示例说明并产生需要完成该会议的必要的步骤和任务。
一个符号标识符说明附在这里作为附件A。该说明定义了由图8-15中图示的支持系统8采用的图形符号。用于本申请所设计的不同原型的执行数据处理步骤的程序表也附在这里作为附件B和C被详细说明。尤其是,附件B和C是为图示说明按照PDL图形语言以ProKappa语言产生编码方法的程序表格,用以在本发明中使用的专家系统20中的运行。当由附件B和C的程序表定义的示例进程完全不同于图8-15中所示的秘书进程的例子时,该表说明:PDL定义的进程是如何来减少可执行代码的。
许多不同的活动已显示在图8-15中。它们在内部无序,因为它们的每一个的条件被测试是否成立而不管其它活动是否已进行。以这种方式,最终用户方可获得最大的灵活性。通过上述机制,能产生和修改对于不同任务的支持而不必改变所使用的不同工具。形式说明作为控制程序加给许多组成部分,它们描述了为了使单个的工具以集成的方式工作所需要的逻辑。
于是,至此已描述和图示说明了一种系统开发支持的方法和装置。然而,对于本技术领域中的普通技术人员,依据这里所述技术,除了那些特别提到的以外可做出种种修改和变化而不脱离本发明的实质概念。因此,很清楚这里描述的本发明的形式仅仅是作为示列而不打算作为本发明范围的限定。
Claims (11)
1.一种开发计算机程序的方法,包括在计算机系统中提供对程序开发进程的描述(350),所述进程包括在开发计算机程序中需执行的多个步骤,该程序开发进程具有多个状态,所述描述为每个状态指定各自的动作,该动作推动对计算机程序的开发并用来响应各状态的出现,所述方法进一步包括执行程序开发进程的描述(44),包括在推动开发计算机程序中产生获取动作的指示(65),和根据所产生的指示将程序开发进程更新到被更新的所述状态(67),其特征在于:
所述提供步骤包括用图形说明形式产生所述描述,所述产生步骤包括用图形语言描述所述程序开发进程;
所述执行步骤包括建议在开发计算机程序中获取用所述描述指定用于更新状态的所述动作(76),同时仍允许计算机系统的用户选择一个未用描述指定用于更新状态的动作(66),所述允许步骤包括根据所述程序开发进程的所述更新状态和独立于所述程序开发进程的先前状态来确定是否能选择所述未指定的动作。
2.如权利要求1所述的方法,其特征在于,包括用户获取所述建议的动作(68)。
3.如权利要求1所述的方法,其特征在于,包括用户获取未由描述指定用于更新状态的动作(66)。
4.如权利要求1所述的方法,其特征在于,所述程序开发进程的描述指定有多个动作,这些动作推动计算机程序的开发并用来响应更新程序的出现。
5.如权利要求4所述的方法,其特征在于,所述建议步骤包括建议获取用描述指定用于更新状态的多个动作中的任一个,同时仍允许用户选择用描述指定用于更新状态的动作外的动作(66)。
6.如权利要求1~5所述的方法,其特征在于,所述动作之一包括调用通用程序开发工具功能(69)。
7.如权利要求1所述的方法,其特征在于,所述程序开发进程的描述指定推动计算机程序开发并用于响应某个状态出现的多个动作用于更新状态外的所述状态中的该某个状态。
8.一种开发计算机程序的装置,包括:具有多个程序开发工具(22)的计算机系统(8);其中存储有程序开发进程的描述的模块(42),所述程序开发进程包括为开发计算机程序所需的多个步骤,这些步骤由所述描述表达,该程序开发进程还具有多个状态,所述描述为每个状态指定各自的动作,该动作推动计算机程序的开发并用来响应各自状态的出现;和解释器(44),它联接所述模块以执行所述描述,所述解释器联接所述程序开发工具利用所述程序开发工具之一识别获取动作的指示(65)和根据所述指示将程序开发进程更新到被更新的所述状态(67),所述计算机系统进一步包括联接所述解释器的用户接口,用以在所述解释器和所述装置的用户之间允许通信,其特征在于:
所述描述用图形语言描述程序开发进程,由此以图形说明形式提供描述;和
所述解释器响应更新状态出现用于向用户建议在开发计算机程序中获取用描述指定用于更新状态的动作(76),同时仍允许用户选择未用描述指定用于更新状态的动作(66),所述解释器可运作根据所述程序开发进程的所述更新状态和独立于所述程序开发进程的先前状态来确定是否能选择所述未指定的动作。
9.如权利要求8所述的装置,其特征在于,程序开发进程的描述为更新状态指定多个动作,这些动作推动计算机程序的开发并用作响应更新状态的出现,且其中所述解释器可运作建议获取由描述指定用于更新状态的多个动作中的任一个,同时仍允许用户获取由描述指定用于更新状态的动作外的某个动作(66)。
10.如权利要求8所述的装置,其特征在于,程序开发进程的描述为更新状态外的所述状态的某个状态指定多个动作,这些动作推动计算机程序的开发并用于响应所述某个状态的出现。
11.如权利要求8所述的装置,其特征在于,包括把多个程序开发工具连接到所述解释器的信息处理器(46),该处理器把所需动作从解释器传递给多个程序开发工具,并将程序开发工具获取的动作指示传递给所述解释器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/896,659 | 1992-06-10 | ||
US07/896,659 US5485615A (en) | 1992-06-10 | 1992-06-10 | System and method of interactively developing desired computer programs by using plurality of tools within a process described in graphical language |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1079830A CN1079830A (zh) | 1993-12-22 |
CN1069424C true CN1069424C (zh) | 2001-08-08 |
Family
ID=25406587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN93106166A Expired - Lifetime CN1069424C (zh) | 1992-06-10 | 1993-05-20 | 开发计算机程序的方法和装置 |
Country Status (14)
Country | Link |
---|---|
US (1) | US5485615A (zh) |
EP (1) | EP0645032B1 (zh) |
KR (1) | KR100314262B1 (zh) |
CN (1) | CN1069424C (zh) |
AU (1) | AU673528B2 (zh) |
BR (1) | BR9306516A (zh) |
DE (1) | DE69327318T2 (zh) |
DK (1) | DK0645032T3 (zh) |
ES (1) | ES2142343T3 (zh) |
FI (1) | FI945742A (zh) |
GR (1) | GR3032780T3 (zh) |
MX (1) | MX9303341A (zh) |
NO (1) | NO944717L (zh) |
WO (1) | WO1993025960A1 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633861B2 (en) | 1993-03-19 | 2003-10-14 | Ricoh Company Limited | Automatic invocation of computational resources without user intervention across a network |
US5546502A (en) * | 1993-03-19 | 1996-08-13 | Ricoh Company, Ltd. | Automatic invocation of computational resources without user intervention |
JP3660366B2 (ja) * | 1993-12-28 | 2005-06-15 | 富士通株式会社 | 図形を用いたプログラミングシステム |
AUPM704494A0 (en) * | 1994-07-25 | 1994-08-18 | Canon Information Systems Research Australia Pty Ltd | Efficient methods for the interpretation of a graphical programming language |
US5646862A (en) * | 1994-09-29 | 1997-07-08 | Ford Motor Company | Vendor-neutral integrated vehicle electrical design and analysis system and method |
JP4058118B2 (ja) | 1994-11-15 | 2008-03-05 | 株式会社日立製作所 | プログラム生成システム及び方法 |
CA2137492C (en) * | 1994-12-07 | 1998-07-28 | Lenny Kwok-Ming Hon | System for and method of providing delta-versioning of the contents of pcte file objects |
US5760788A (en) * | 1995-07-28 | 1998-06-02 | Microsoft Corporation | Graphical programming system and method for enabling a person to learn text-based programming |
US6067639A (en) | 1995-11-09 | 2000-05-23 | Microsoft Corporation | Method for integrating automated software testing with software development |
US5754858A (en) * | 1996-05-01 | 1998-05-19 | Microsoft Corporation | Customizable application project generation process and system |
EP0807896A3 (en) | 1996-05-15 | 2000-08-30 | Hitachi, Ltd. | Business processing system employing a notice board business system database and method of processing the same |
US5852733A (en) * | 1996-12-16 | 1998-12-22 | Chien; Yung-Ping S. | Microcontroller development tool using software programs |
US5913195A (en) * | 1996-12-27 | 1999-06-15 | Intervoice Limited Partnership | System and method for developing VRU voice dialogue |
US5974328A (en) * | 1997-01-13 | 1999-10-26 | Airtouch Communications, Inc. | Rapid system access and registration in mobile phone systems |
US6112126A (en) * | 1997-02-21 | 2000-08-29 | Baker Hughes Incorporated | Adaptive object-oriented optimization software system |
US6434435B1 (en) * | 1997-02-21 | 2002-08-13 | Baker Hughes Incorporated | Application of adaptive object-oriented optimization software to an automatic optimization oilfield hydrocarbon production management system |
US6199193B1 (en) * | 1997-03-18 | 2001-03-06 | Fujitsu Limited | Method and system for software development and software design evaluation server |
US6366581B1 (en) | 1997-04-02 | 2002-04-02 | Fujitsu Network Communications, Inc. | Method and apparatus for generating permanent virtual connections using graphical user interface |
US6268852B1 (en) * | 1997-06-02 | 2001-07-31 | Microsoft Corporation | System and method for facilitating generation and editing of event handlers |
CA2243780A1 (en) * | 1997-07-30 | 1999-01-30 | Knowledge Modeling Institute Inc. | Apparatus for automatically applying and preparing software and recording medium for preparing software |
US6357039B1 (en) * | 1998-03-03 | 2002-03-12 | Twelve Tone Systems, Inc | Automatic code generation |
SG80590A1 (en) * | 1998-04-21 | 2001-05-22 | Panasonic Singapore Lab Pte Lt | Graphical microcontroller software development system |
US6216261B1 (en) * | 1998-08-27 | 2001-04-10 | Ati Technologies Inc. | Method and apparatus for generating generic programming instructions using visual programming |
US6792597B1 (en) * | 1999-03-04 | 2004-09-14 | Wysdom Wireless, Inc. | Automatic consistency checking of computer programs |
WO2000067118A2 (en) * | 1999-05-03 | 2000-11-09 | Nucom Integrated Technologies | Intelligent collaboration across network system |
US6415275B1 (en) * | 1999-08-05 | 2002-07-02 | Unisys Corp. | Method and system for processing rules using an extensible object-oriented model resident within a repository |
US6668368B1 (en) * | 1999-09-29 | 2003-12-23 | Lucent Technologies Inc. | Variable-extracting command line generator |
US6615198B1 (en) * | 2000-04-10 | 2003-09-02 | Sprint Communications Company, L.P. | System and method for creating performance solution tools and performance solutions |
KR20000050244A (ko) * | 2000-05-30 | 2000-08-05 | 김호광 | 게임제작 도구에서 게임 이벤트 편집방법 및 장치 |
US7110936B2 (en) * | 2001-02-23 | 2006-09-19 | Complementsoft Llc | System and method for generating and maintaining software code |
US7346849B1 (en) | 2001-04-03 | 2008-03-18 | Cypress Semiconductor Corp. | Executable code derived from user-selectable links embedded within the comments portion of a program |
US20030041311A1 (en) * | 2001-08-27 | 2003-02-27 | International Business Machines Corporation | Topological multi-tier business application composer |
US7316000B2 (en) * | 2001-08-27 | 2008-01-01 | International Business Machines Corporation | Interactive agent for a topological multi-tier business application composer |
US20040100494A1 (en) * | 2002-11-27 | 2004-05-27 | International Business Machines Corporation | Just in time interoperability assistant |
US7519947B2 (en) * | 2003-07-14 | 2009-04-14 | Microsoft Corporation | Orchestration designer |
US20050123892A1 (en) * | 2003-12-05 | 2005-06-09 | Cornelius William A. | Method, system and program product for developing and utilizing interactive simulation based training products |
US7739671B1 (en) * | 2003-12-22 | 2010-06-15 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Systems, methods and apparatus for implementation of formal specifications derived from informal requirements |
US7398474B2 (en) * | 2005-01-31 | 2008-07-08 | Microsoft Corporation | Method and system for a digital device menu editor |
US8473971B2 (en) | 2005-09-06 | 2013-06-25 | Microsoft Corporation | Type inference and type-directed late binding |
US7904875B2 (en) * | 2005-12-12 | 2011-03-08 | Microsoft Corporation | Configuring and allocating software product technical services |
US7631014B2 (en) * | 2006-04-27 | 2009-12-08 | International Business Machines Corporation | Method and apparatus for fast deletion of physically clustered data |
US20070288883A1 (en) * | 2006-06-09 | 2007-12-13 | International Business Machines Corporation | Method for consolidated launching of multiple tasks |
US7870536B2 (en) * | 2006-06-15 | 2011-01-11 | International Business Machines Corporation | Computer implemented method and system for sharing resources among hierarchical containers of resources |
US8302073B2 (en) * | 2006-06-15 | 2012-10-30 | International Business Machines Corporation | Moving and copying dependencies along with source code |
US8321836B2 (en) * | 2007-06-21 | 2012-11-27 | Microsoft Corporation | Late bound programmatic assistance |
US20080320453A1 (en) * | 2007-06-21 | 2008-12-25 | Microsoft Corporation | Type inference and late binding |
US8572548B2 (en) * | 2008-10-08 | 2013-10-29 | Accenture Global Services Gmbh | Integrated design application |
CN102243580A (zh) * | 2010-05-14 | 2011-11-16 | 镇江华扬信息科技有限公司 | 程序员助手系统 |
US8572591B2 (en) | 2010-06-15 | 2013-10-29 | Microsoft Corporation | Dynamic adaptive programming |
CN102090441B (zh) * | 2010-10-14 | 2012-09-05 | 吉林省艾斯克机电集团有限公司 | 上阶梯式禽胴体预冷机组 |
US9256401B2 (en) | 2011-05-31 | 2016-02-09 | Microsoft Technology Licensing, Llc | Editor visualization of symbolic relationships |
TWI622931B (zh) | 2013-03-19 | 2018-05-01 | 動態微型系統公司 | 工具模型及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0172980A1 (en) * | 1983-08-19 | 1986-03-05 | Kurt Katzeff | An arrangement for the generation of information and/or an instruction intended for input to the program memory of a computer |
EP0453371A1 (fr) * | 1990-04-20 | 1991-10-23 | AEROSPATIALE Société Nationale Industrielle | Procédé interactif de production de logiciel en code source modélisant un ensemble complexe de modules fonctionnels |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4734854A (en) * | 1985-10-08 | 1988-03-29 | American Telephone And Telegraph Company | System for generating software source code components |
JPS62137609A (ja) * | 1985-12-10 | 1987-06-20 | Fanuc Ltd | Ncデ−タ作成方法 |
US4827404A (en) * | 1986-04-14 | 1989-05-02 | Schlumberger Technology Corporation | Method and system for computer programming |
US4860204A (en) * | 1987-02-05 | 1989-08-22 | Softron, Inc. | Computer based workstation for development of graphic representation of computer programs |
US4807108B1 (en) * | 1987-08-10 | 1995-03-28 | Bell Telephone Labor Inc | Product realization method |
JPH02100704A (ja) * | 1988-10-08 | 1990-04-12 | Fanuc Ltd | ロボットプログラミングチェック方式 |
EP0390339B1 (en) * | 1989-03-29 | 1996-01-03 | Hewlett-Packard Company | Path measurement and analysis tool for evaluating the performance of software designs |
US5177420A (en) * | 1989-05-01 | 1993-01-05 | Honda Giken Kogyo Kabushiki Kaisha | Method of and apparatus for generating control program |
US5187788A (en) * | 1989-05-01 | 1993-02-16 | The United States Of America As Represented By The Secretary Of The Air Force | Graphics system for automatic computer code generation |
US5075847A (en) * | 1989-05-26 | 1991-12-24 | Hewlett-Packard Company | Method and apparatus for computer program encapsulation |
KR950001058B1 (ko) * | 1990-04-23 | 1995-02-08 | 마쯔시다덴기산교 가부시기가이샤 | 설비동작제어소프트개발 지원방법 및 그 장치 |
US5175856A (en) * | 1990-06-11 | 1992-12-29 | Supercomputer Systems Limited Partnership | Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution |
US5133045A (en) * | 1990-07-13 | 1992-07-21 | Integrated Systems, Inc. | Method for operating a real-time expert system in a graphical programming environment |
US5410648A (en) * | 1991-08-30 | 1995-04-25 | International Business Machines Corporation | Debugging system wherein multiple code views are simultaneously managed |
-
1992
- 1992-06-10 US US07/896,659 patent/US5485615A/en not_active Expired - Lifetime
-
1993
- 1993-05-06 DE DE69327318T patent/DE69327318T2/de not_active Expired - Lifetime
- 1993-05-06 WO PCT/SE1993/000398 patent/WO1993025960A1/en active IP Right Grant
- 1993-05-06 AU AU43636/93A patent/AU673528B2/en not_active Expired
- 1993-05-06 DK DK93913696T patent/DK0645032T3/da active
- 1993-05-06 KR KR1019940703324A patent/KR100314262B1/ko not_active IP Right Cessation
- 1993-05-06 ES ES93913696T patent/ES2142343T3/es not_active Expired - Lifetime
- 1993-05-06 EP EP93913696A patent/EP0645032B1/en not_active Expired - Lifetime
- 1993-05-06 BR BR9306516A patent/BR9306516A/pt not_active Application Discontinuation
- 1993-05-20 CN CN93106166A patent/CN1069424C/zh not_active Expired - Lifetime
- 1993-06-03 MX MX9303341A patent/MX9303341A/es unknown
-
1994
- 1994-12-07 FI FI945742A patent/FI945742A/fi unknown
- 1994-12-07 NO NO944717A patent/NO944717L/no not_active Application Discontinuation
-
2000
- 2000-02-28 GR GR20000400482T patent/GR3032780T3/el unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0172980A1 (en) * | 1983-08-19 | 1986-03-05 | Kurt Katzeff | An arrangement for the generation of information and/or an instruction intended for input to the program memory of a computer |
EP0453371A1 (fr) * | 1990-04-20 | 1991-10-23 | AEROSPATIALE Société Nationale Industrielle | Procédé interactif de production de logiciel en code source modélisant un ensemble complexe de modules fonctionnels |
Also Published As
Publication number | Publication date |
---|---|
DE69327318D1 (de) | 2000-01-20 |
KR100314262B1 (ko) | 2001-12-28 |
MX9303341A (es) | 1993-12-01 |
GR3032780T3 (en) | 2000-06-30 |
US5485615A (en) | 1996-01-16 |
DE69327318T2 (de) | 2000-05-25 |
AU4363693A (en) | 1994-01-04 |
EP0645032B1 (en) | 1999-12-15 |
WO1993025960A1 (en) | 1993-12-23 |
DK0645032T3 (da) | 2000-06-13 |
ES2142343T3 (es) | 2000-04-16 |
CN1079830A (zh) | 1993-12-22 |
KR950701102A (ko) | 1995-02-20 |
BR9306516A (pt) | 1998-09-15 |
NO944717L (no) | 1995-01-18 |
FI945742A0 (fi) | 1994-12-07 |
EP0645032A1 (en) | 1995-03-29 |
AU673528B2 (en) | 1996-11-14 |
FI945742A (fi) | 1994-12-07 |
NO944717D0 (no) | 1994-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1069424C (zh) | 开发计算机程序的方法和装置 | |
Peuschel et al. | A knowledge-based software development environment supporting cooperative work | |
US5539869A (en) | Method and system for processing and presenting on-line, multimedia information in a tree structure | |
US4860204A (en) | Computer based workstation for development of graphic representation of computer programs | |
JP2001519559A (ja) | 動的に生成される質問と回答の選択肢を用いたコンピューターによる決定管理システム | |
JPH0713754A (ja) | ワークプロセスのモデル化方法とワークプロセスモデルの実行の追跡方法およびワークプロセスをモデル化するプログラム方式のコンピュータシステム | |
EP0583117A2 (en) | A device and method for converting computer programming languages | |
Robbins et al. | Extending design environments to software architecture design | |
Paik et al. | Predicting user performance and learning in human--computer interaction with the Herbal compiler | |
Sabraoui et al. | MDD approach for mobile applications based on DSL | |
Blum et al. | Implementing health care information systems | |
Antona et al. | A process-oriented interactive design environment for automatic user-interface adaptation | |
JPH01298435A (ja) | 自動プログラミング装置 | |
JP2608085B2 (ja) | 生産計画シミュレーション装置 | |
Browne et al. | Methods for building adaptive systems | |
Broll et al. | Deepforge: An open source, collaborative environment for reproducible deep learning | |
Hausen et al. | Conspectus of software engineering environments | |
Baresi et al. | LEMMA: a language for easy medical models analysis | |
Palanque et al. | Interactive cooperative objects: an object-oriented formalism based on petri nets for user interface design | |
Rajan et al. | Acquist: A tool for knowledge acquisition | |
Blum | Resolving the software maintenance paradox | |
Horváth | A workbench architecture for object oriented handling of features | |
Witten et al. | Specifying procedures to office systems | |
Chan | Support for an integrated approach to program understanding: an application of software visualisation | |
Harrington | Utilizing bayesian techniques for user interface intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CX01 | Expiry of patent term |
Expiration termination date: 20130520 Granted publication date: 20010808 |