系统开发支持的制作方法

文档序号:6407095阅读:206来源:国知局
专利名称:系统开发支持的制作方法
技术领域
本发明涉及一种按照所描述的一套过程帮助开发软件产品的系统,尤其是按照一套例如在计算机程序设计的许多方法中可以找到的那些过程来自动监测、记录、调用和建议过去、现在和将来的行动的交互式支持媒体。
多年来,计算机软件开发者和程序设计人员一直在追求能减轻产生复杂的计算机程序的负担的工具。先前和不久前的软件开发要求程序设计人员特别注意与程序进展相关的每个细节和所有文件、说明等。一种计算机软件系统要经过建立、测试、修改各组成部分重建该系统的过程才能产生程序设计人员所需要的产品。随着软件系统的规模和复杂性的增长,要求设计单个系统的程序设计人员的人数也急剧的增长。因此,由不同的各别的程序设计人员分别设计整个软件系统中的各个部分,然后相互连接起来,形成最后的产品这样一种做法现在已是十分普遍的。很清楚,在这样的设计中会产生相容性和一致性的问题。例如,某个程序设计人员修改了他或她的程序部分,则受到其影响的其它程序部分的设计者必须注意到它的影响。于是,需要开发一种支持系统以便在建立复杂的计算机程序时用来跟踪和帮助软件开发人员。
在美国专利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)包括一个专家系统以及一个电气可连接于该逻辑解释程序(logic interpreter)的数据库。一电气连接于该逻辑解释程序的信息处理程序(messagehandler)用于处理与一组系统工具通信,这些工具配置完成与所述进程相关的特定任务。最后,一个用户界面用图形与该系统的用户进行通信并也允许用户输入。
下面参照


本发明以便更好地理解本发明,并使本技术领域中的技术人员清楚地了解本发明的许多目的、特性和优点。
图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中,我们有一个关于应该产生什么样结果和在该进程中需要取哪些步骤的说明。接着,在框302中产生一个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。在一较佳实施例中,专家系统用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依赖于与作为支持系统8的一部分的工具22相关的许多因素。首先,支持12必须能起动工具22和调用工具功能。这通过能通信的信息处理器46来进行。工具也必须报告发生的各种事件,因为绝大多数工具事件涉及进程状态和要达到的设计目的,例如修改一个文件,建立一个界面说明,或编译一个程序。一个工具应当报告哪个事件决定于描述该任务的进程描述何时被指定。
因为工具不管它从哪里起动(从支持活动窗口,从数据库浏览器,或从Unix外壳),它都能与支持12通信,所以系统8允许用户除了由支持处理的活动窗口48-52外利用其它手段起动工具。用户也能直接执行与那些非必须在活动窗口中作为建议显示的工具不同的工具功能。因此,支持12和支持逻辑42必须能处理在任何时候产生于不同工具的事件。这是可能的,因为PDL说明,当出现事件时它描述了要做的事,它仅仅涉及进程的当前状态,而不涉及已经出现事件的那个次序(这样能在专家系统下面使用触发装置(triggeringmechanisms))。因此,任何事件根据进程状态来解释而不管它是否已涉及来自支持12的建议。
继续见图5,下面是显示在那里的流程图的详细说明。由框60开始,用户16选择他应完成的任务。例如,任务可以是一个新软件产品的设计,或是一个处理错误的报告。在框61中,支持12选择适当的特定任务的PDL说明(这种工作是在支持中内部自动地进行的)。这种说明按图2中所述在先前已被分析和变换。继续到框62,描述任务的进程的当前状态由数据库36装入支持12。这种装载当用户16先前已在该任务上工作并已贮存了先前工作的状态时是最恰当的,在框63中,支持12将根据进程当前状态的行动作出建议。建议所显示的方式取决于如上所述采用的用户界面。
方框65描述了支持出现在支持系统8中的等待事件。至框66的分支表明一个工具报告了作为事件功能调用到支持12的结果。为响应框66中产生的事件,框67改变进程状态,这是因为它来自发生在支持系统中的事件。如果用户16已从活动窗口中选择了支持建议中的一个,则方框68应该处于活动状态。如果接着是从框68至框69的分支,并且来自活动窗口所选择的建议包含执行一个工具功能,则起动工具22(假如需要的话),并且适当的功能经信息处理器46被调用。继续进行到框70,改变进程状态,反映工具功能调用。然而,如果由用户16选择的建议不包含调用工具功能,则进程的内部状态仅通过用户16所做的选择进行改变。在这种情况下,用户16通常表明某些人工活动已在进程中完成。
在状态改变完成后,在方框72中,支持12演绎这种变化的结果。按照方框72导出的分析结果支持可自动在方框73中调用其它工具。而且,作为在框72中的分析结果,不同信息单元之间的一致性检验可在框74中自动进行,且其中发现的错误将在框75中得到报告。另外,支持12可按照框72的分析结果认为自动工具调用是不必要时,则转而为用户16产生一组新的建议。该组新建议是以新建立的进程状态为基础的,如此重复进行循环。然而,如果用户16在框77中想退出这种情况,则进程状态在框78中被保留。
下面参看图6,那里图示了本发明的浏览服务器(browserserver)90的情况,它包含支持系统8的独立单元。浏览服务器90允许用户16寻找系统数据库36中的目标并且不用支持12的引导对那些目标进行选择。浏览服务器90不对用户16提供建议。所找到的目标如描述、流程图、程序等可通过浏览服务器90得到检查,并且目标上的工具操作能被起动。仍然参看图6,该浏览服务器90以起动浏览器框92开始。当浏览服务器90开始时,在方框93和94用户16能搜索和选择系统数据库36中的目标。当选中该目标时则能在方框95上显示一张菜单,该菜单可用于对该目标的操作。方框96起动工具22并在方框98中向支持12报告这一事实。这样使支持依据所知道发生的事件能观察系统的一致性。于是,用户16可以各种方式与支持系统8交互作用,其中之一是通过浏览服务器90且仍然得到支持的支持。
下面看图7,这里显示了一个工具功能调用流程图。因为用户16不用支持12的帮助能起动工具22,所以用户16也能执行不同的工具功能,这些功能不必作为建议显示在由支持12处理的活动窗口中(如在上面浏览服务器情况中所述的)。于是,支持12和支持逻辑42必须能在任何给定时刻处理来自各种工具的事件。这样做的可能性是由于描述某个事件出现时做什么的PDL说明(描述)仅涉及进程的当前状态,而不涉及如上所述活动已经执行的次序。因此,任何事件依据进程的状态被解释而不管支持依据建议是否发送它。
其结果是,为了工具设计者与支持12所加的规定一致,工具必须以下面的方式运行。首先,工具操作在方框370起动,并将这一事实报告给支持。起动之后,工具能接受方框371中的工具功能调用。工具功能或经框372通过支持12或经框374通过工具用户界面被调用。接着,工具功能在框376执行,且如果进程需要的话,其结果在框378报告给支持12。再有,与进程相关的工具功能(于是需向支持报告)在设计进程期间被确定。不断循环,且该工具为下一个工具从等待调用框371起动作好准备,或该工具停止在框380。
下面参见图9,那里显示了在本发明原型之一中所给的指定支持的典型进程说明的一实施例的PDL图,它图解说明一个秘书当处理一个会议时需要取的不同步骤。因为进程描述由图形符号表达,所以图9的流程图采用下面讨论的图形符号。而且,系统8将图形流程图变换为如上所述由支持逻辑解释程序能够解释的格式。
显示在图9-15中的文本信息是流程图整个内容的部分视图。每个图形符号能有不同种类的文本信息附于它;如非形式的注释,隐含或显式规定的可执行的编码,文件的使用,参数说明等。为了使图简化和使它们更易阅读,在图9-15中出现的视图仅仅显示图标的参数说明。在这种视图中,变量和常数两者作为参数指定,用第一个字符为问号来表示变量。在支持这种语言的图形编辑器(graphicaleditor)中,这种视图能变换为先前描述的任何其它视图。
下面参见图8,它进一步显示了PDL图标组成的例子。一个PDL的基本积木块是活动结构,该结构描述了某个活动的条件和结果并且它取图8所示的一般结构。活动图标386在其一边由前置条件图标(preconditionicons)388包围。该前置图标描述了该活动被执行的必要条件。例如,在图11中,符号140、142和144全部是前置条件。活动图标386对整个结构,即所有前置条件和结果起参考作用,结果图标390能代表用户16或自动通过支持12要执行的操作。那儿也有许多不同的预先规定的代表特定条件和结果的图标。如菜单图标、文件图标、时钟图标等。预定的可执行的编码、文件编制等附于那些图标,并且参数能加给图标。应当注意引进一个活动的所有变量都位于该活动中。
如上所述,对于支持为内部的影子目标是状态信息的持有者。为了保持对文件、程序、不同的进程、子进程等的跟踪,它们在支持中全部表示为影子目标。相应的实际目标一旦建立,这些影子目标就建立,在PDL中存在特定的图标,如例示图标(例示通常意味着从模板产生一个特定的例子,如影子目标的说明),这种例示图标代表产生一个影子目标。在图9中例示符号102的情况下,一个秘书任务作为举例说明,该秘书任务图一般描述了许多可能的任务,而且许多不同的会议能使用这说明进行安排,当执行该说明来帮助用户安排特定会议时,这种特定的会议安排任务必须有一个代表,即一个影子目标。例示符号102表示建立这种例子,然后,该例子能持有关于这种特定会议安排任务的状态信息,并能与图的其它部分发生联系。
下面参看图9A-9C的流程图,所述进程涉及一个秘书安排一个业务会议等需要的任务。这些图显示了进程的不同状况。最上面部分图9A是进程起动条件的描述性图示说明,而中间部分图9B描述了进程细分成子进程。能使任何其它进程由支持系统8处理的秘书进程可包含几个子进程。图9B中图示的子进程中材料子进程108、通知子进程116、会议子进程118、文本编辑子进程119,和会议记要处理子进程122。材料子进程108描述怎样收集特定会议需要的材料,而通知子进程116描述怎样发通知给会议的参加者。会议子进程118描述怎样进行会议,而文本编辑子进程119描述怎样进入文本(如,使用什么工具)。会议纪要处理子进程112描述如何处理书写一个会议记要的分任务。下面部分图9C描述了进程的停止条件。应该理解还有其它进程视图(界面视图,活动视图,等)没有表示在图9A-9C中。
一旦例示的标准已得到满足,例如,这种标准是一个进程提供的服务已被请求(如来自某个其它子进程的输入),则每个子进程自动开始,进程或子进程序列也能被描述,并且在这种情况下,对于不断进行进程的任务的重要事件是由先前进程报告事件的“完成”。由箭头图示标明的信息转移,如图9中“编辑”箭头112和“材料完成”箭头114,进一步描述了与描述并发任务的子进程相关的事件的交换。这种箭头在图中的语义并不重要,它仅仅是描述信息流的一种不正规的方法。信息的实际交换是由专家系统下的推理工具处理的,它们将在相应的子进程中详细进行描述。
图标100表示支持系统8通过接收一个起动进程的外部事件开始它的运行(如,对应于用户建立一个新的会议安排任务);事件的参数是名(“启动”),而进程的种类是动起(“秘书”)。例示出现在图标102。符号104表示与秘书进程关联的初始值的设定,并描述了进程状态变化(进程的起动情况设为“真”)。活动图标101,如上所述,表示整个活动。
下面参看图9中所示的不同的箭头,编辑箭头112表明涉及由另一个子进程处理的业务的材料子进程。在这种情况下,根据材料子进程108使用文本编辑子进程119。该文本编辑子进程119描述了怎样使用一个能够并行并与系统中由其它子进程描述的活动同时执行的文本编辑器。一旦材料子进程108和通知子进程116已完成它们的各自任务,就出现事件114和115。来自会议118的“会议记录”和事件120表明来自会议的数据是可用的。会议数据由代表必须要做的会后(Postmeeting)工作的会议纪要处理子进程122来使用。编辑事件112导致文本编辑子进程119对文本进行进一步的编辑。于是,图9图示说明了在描述能并行执行任务的子进程之间的事件交换。由于在材料子进程108与通知子进程116的任务之间明显地缺乏任何要进行交换的同步事件,所以能够并行产生。
在图标124中,条件描述了任何子进程中暂停情况为“真”时的状态。在图标126中,条件描述了这样一个必须是有利于这种活动的“协议处理”类的进程。在图标128中,找到拥有暂停子进程的秘书进程(由?进程标识)。最后,在图标130中该秘书进程暂停。
下面请看图10,那里也图示说明了本发明的处理数据的方法。这代表了图9的通知子进程116的例示。于是,秘书任务必须已被起动,它由符号130和132表示(起动情况为真且进程种类为“秘书”)。当前置条件为真时,该活动开始,并且在符号136(该例的参考是“子进程”)中执行通知子进程116的例示。然后,在符号138,通知子进程的起始值作为状态信息被记录。
下面参看图11,那里更详细地描述了本发明的处理数据的方法,尤其是更详细地描述了一个编辑活动145。位于专家系统下面的机构将检测什么时候活动的前置条件为真。该编辑活动145为可能时,符号140表示该通知子进程必须被起动。符号142表明需要暂时文件存贮的数据将通过当前活动产生并且因此,一个暂时文件名必须确定以便存贮这些信息(这种处理方式在这里还未表明的符号的编码部分中进行描述)。接着,菜单114按照与用户16的交互作用的说明进行操作。在PDL语言中,菜单符号概括了支持12与用户16相互作用的方式,如能够将活动表格提供给用户16。首先,符号代表提供给用户16的文本(这种特定例子中的“写通知”)。该提供的文本描述了用户16能够或应该执行的某个活动。该菜单144也蕴涵某个目标,如一个文件、编码等,活动按照它执行(在这一示例中暂时文件用“?暂时”表示)。进而,该菜单144代表某个条件。在用户16明确地选择活动表中的活动之前,该条件总是为“假”,而且结果,如执行一个工具功能或一个状态改变,是无效的。当用户16选择用户界面中的活动时,该条件变为“真”,而其结果被执行。在该示例中,当用户16选择了活动表中的写通知选择时,一个编辑事件以符号146送给(对应于图9中的箭头112)另一个请求编辑任务的子进程。该请求由文本编辑子进程(这里未图示)处理,此时,起动编辑器,然后用户16使用编辑器写会议通知。
下面参看图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告诉用户16该通知应当以所希望的位置被放到通知板上。该例中的活动184代表一个由支持系统8用所具有的工具不能支持的活动;而是必须由用户16自己物理地保存该通知。因此,图标186表示在这活动中只有发生一个内部状态变化而不卷入外部工具。最后,参见图15,活动194包含完成通知子进程在这里被图示。当该通知已被发送和邮寄,则条件190和192为真。符号196停止该进程,而符号198记录这种状态变化。由于专家系统的触发机构,它也能操作对这种事实有关系的进程事件。回过来看图9,可见通知子进程116随完成箭头114之后产生会议118。于是,在出现事件198时会议118将作为示例说明并产生需要完成该会议的必要的步骤和任务。
一个符号标识符说明附在这里作为附件A。该说明定义了由图8-15中图示的支持系统8采用的图形符号。用于本申请所设计的不同原型的执行数据处理步骤的程序表也附在这里作为附件B和C被详细说明。尤其是,附件B和C是为图示说明按照PDL图形语言以ProKappa语言产生编码方法的程序表格,用以在本发明中使用的专家系统20中的运行。当由附件B和C的程序表定义的示例进程完全不同于图8-15中所示的秘书进程的例子时,该表说明PDL定义的进程是如何来减少可执行代码的。
许多不同的活动已显示在图8-15中。它们在内部无序,因为它们的每一个的条件被测试是否成立而不管其它活动是否已进行。以这种方式,最终用户方可获得最大的灵活性。通过上述机制,能产生和修改对于不同任务的支持而不必改变所使用的不同工具。形式说明作为控制程序加给许多组成部分,它们描述了为了使单个的工具以集成的方式工作所需要的逻辑。
于是,至此已描述和图示说明了一种系统开发支持的方法和装置。然而,对于本技术领域中的普通技术人员,依据这里所述技术,除了那些特别提到的以外可做出种种修改和变化而不脱离本发明的实质概念。因此,很清楚这里描述的本发明的形式仅仅是作为示列而不打算作为本发明范围的限定。
权利要求
1.一种根据一套过程为开发计算机产品而提供交互支持的方法,它包含将所述的这套过程定义为一个使用某种图形语言的说明;用处理程序将所述的这套过程变换为一种可理解的格式;存贮上述被变换的说明;产生一个选择菜单,所述选择的每一个构成一个与根据所述的这套过程开发有关的行动的建议;挑选所述选择中的一个;由至少起动一组系统工具中的一个或改变进程的状态表示来响应所述选择的挑选;通过监测和存贮与根据所述的这套过程开发有关的每个事件来跟踪由所述系统执行的操作;对由所述系统工具执行的所述操作的每一个进行解释;自动地起动其它所述工具以响应所述解释和跟踪所述操作;和向用户提供反馈。
2.如权利要求1所述方法,其特征在于,它进一步可包含动态更新活动窗口以响应所述系统工具的起动,所述动态更新允许用户应答。
3.如权利要求1所述的方法,其特征在于,所述的这套过程还可包含一个进程,所述进程进一步包含包含在所述进程的说明中的一些子进程单元。
4.如权利要求1所述方法,其特征在于,它进一步可包含在所述工具起动和执行之后在由所述包含在所述说明中的子进程描述的不同的信息单元之间执行一致性检验的步骤。
5.如权利要求4所述方法,其特征在于,它进一步可包含报告由所述一致性检验步骤所发现的进程错误的步骤。
6.如权利要求1所述方法,其特征在于,它进一步可包含浏览步骤。
7.如权利要求6所述方法,其特征在于,所述浏览步骤可包含从与所述进程相关联的数据库中寻找和搜索目标;选择性地观察从所述数据库搜索到的所述目标;选择性地处理所述数据库中的所述目标;选择性地起动任一所述系统工具;和报告由浏览器起动的工具所执行的活动。
8.如权利要求1所述方法,其特征在于,它进一步可包含通过UNIX外壳级独立起动所述系统工具的步骤。
9.一种在一套过程开发期间提供交互支持的计算机系统,所述系统包含存贮形式进程的装置;把所述形式进程说明变换为可执行格式的装置;和一用户界面。
10.如权利要求9所述计算机系统,其特征在于,所述进程存贮装置以所述形式进程说明的影子目标形式维持状态信息以允许永久性存贮所述子进程的状态。
11.如权利要求9所述计算机系统,其特征在于,所述支持装置包含一支持逻辑模块;一支持逻辑解释程序一电气与所述逻辑解释程序相关联的数据库;一电气与所述逻辑解释程序联接的信息处理器;一组能由所述信息处理器同时进行访问并能进行配置以执行与进程有关的特定任务的工具。
12.如权利要求11所述计算机系统,其特征在于,所述支持逻辑解释程序可包含以图形与所述系统的用户联络的装置。
13.如权利要求11所述计算机系统,其特征在于,所述支持逻辑解释程序可包含一个专家系统。
14.如权利要求11所述计算机系统,其特征在于,所述工具并行操作以允许所述工具的每一个同时运行。
15.如权利要求9所述计算机系统,其特征在于,所述用户界面包括动态更新活动窗口以响应所述系统执行的操作的装置。
16.一种在数据处理系统中开发面向系统的进程的方法,该方法包含通过图形语言形式上描述一个功能进程;将所述形式进程说明变换为处理器能理解的格式;将开发进展与用户通信;在所述进程的子进程中使内在的条件规定得到满足;表明所述条件规定的满足情况;由每个所述子进程并行描述执行任务;和根据每个子进程的完成停止所述执行。
17.如权利要求16所述方法,其特征在于,它可进一步包含将活动变换进入子进程的一个层以便并行执行活动的步骤。
18.如权利要求16所述方法,其特征在于,它进一步可包含定义表示所述子进程中内在的表达所述条件规定的规则的步骤。
19.如权利要求16所述方法,其特征在于,它可进一步包含分析所述形式进程说明的步骤。
20.如权利要求16所述方法,其特征在于,它进一步可包含解释所述形式进程说明。
21.一种为开发计算机程序提供交互支持的系统,它包含用于存贮以可理解的语言并可由计算机存贮描述所述开发的进程的形式说明的装置;用于产生一个选择菜单、所述选择的每一个构成一个与所述开发有关的行动的建议的装置;用于对所述选择的某一个进行挑选的装置;通过起动一组系统工具中的至少一个响应所述选择的挑选的装置;通过监测和存贮由与所述开发有关的工具产生的每个事件而对执行的操作进行跟踪的装置;对按照所述进程说明由所述系统工具执行的每个所述操作进行解释的装置;自动起动其它所述工具以响应从所述解释装置和所述跟踪操作的装置发出的结果的装置;和向用户提供反馈的装置。
22.如权利要求21所述系统,其特征在于,它进一步可包含自动更新活动窗口响应所述系统工具的起动的装置,所述动态更新允许用户应答。
23.如权利要求21所述的系统,其特征在于,所述进程存贮装置进一步存贮由包含在所述进程说明中的子进程单元描述的信息单元。
24.如权利要求23所述的系统,其特征在于,它进一步可包含由所述系统工具处理由所述子进程单元描述的信息单元的装置。
25.如权利要求24所述的系统,其特征在于,它进一步可包含由所述系统工具在由所述子进程单元描述的所述处理之后在信息单元之间执行一致性检验的装置。
26.如权利要求25所述的系统,其特征在于,它进一步可包含报告由所述一致性检验装置所发现的进程错误的装置。
27.如权利要求21所述的系统,其特征在于,它进一步可包含浏览装置。
28.如权利要求27所述的系统,其特征在于,所述浏览装置包含从与所述开发计算机程序相关联的数据库中搜索和恢复目标的装置;选择地观察从所述数据库搜索的目标的装置;选择地处理所述数据库中的所述目标的装置;选择地起动任一所述系统工具的装置;和报告浏览时执行的活动情况的装置。
29.如权利要求21所述系统,其特征在于,它进一步可包含通过UNIX外壳级独立地起动所述系统工具的装置。
30.一种数据处理系统中的系统,它包含通过图形语言描述功能进程的装置;将所述功能进程说明变换为处理器可理解的格式的装置;使所述功能进程的子进程中的内在条件规定得到满足的装置;表明所述条件规定的满足的装置;并行执行由每个所述子进程描述的任务的装置;和根据每个子进程的完成停止所述执行的装置;
31.如权利要求30所述系统,其特征在于,它进一步可包含将活动映射为子进程的分层结构以便并行执行活动的装置。
32.如权利要求30所述系统,其特征在于,它进一步可包含定义表达所述子进程中内在条件规定表示的规则的装置。
33.如权利要求30所述系统,其特征在于,它进一步可包含分析所述功能进程说明的装置。
34.如权利要求30所述系统,其特征在于,它进一步可包含对所述功能进程说明进行解释的装置。
全文摘要
本发明的方法和系统按照一套如用于软件产品开发的过程以完成任务的方式支持用户16。被开发软件的进程描述用系统示例说明,其上的支持系统8向用户16提供一系列涉及软件开发的选择。依次所选的选择允许各种工具,其每个并行和同时运行用于开发软件。系统在任何处理期间自动监测和检查进程并向用户16提供出错分析及建议可采取的行动。该系统提供灵活的支持而不需要用户16去服从硬性的开发模式。
文档编号G06F9/44GK1079830SQ9310616
公开日1993年12月22日 申请日期1993年5月20日 优先权日1992年6月10日
发明者埃纳尔·温密尔 申请人:L·M·埃利克逊电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1