CN1013619B - 软件管理结构 - Google Patents

软件管理结构

Info

Publication number
CN1013619B
CN1013619B CN88107805A CN88107805A CN1013619B CN 1013619 B CN1013619 B CN 1013619B CN 88107805 A CN88107805 A CN 88107805A CN 88107805 A CN88107805 A CN 88107805A CN 1013619 B CN1013619 B CN 1013619B
Authority
CN
China
Prior art keywords
replaceable unit
layer
function
group
information
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
Application number
CN88107805A
Other languages
English (en)
Other versions
CN1035375A (zh
Inventor
戴维·郎利·约翰斯顿
詹姆斯·李·纳劳
海伦·玛丽奥森-威廉斯
罗伯特·哈利·沙蒂
丹尼斯·李·沙芬
加里·阿伯特·特克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1035375A publication Critical patent/CN1035375A/zh
Publication of CN1013619B publication Critical patent/CN1013619B/zh
Expired legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Abstract

一种软件管理结构,应用程序包由几个联接的可替换单元组成。每个可替换单元均可在不影响其它可替换单元的情况下调用。这些可替换单元按多层结构方式上下联接在一起。程序设计师用本发明的程序装配工具按可装码组、主功能组、分功能组与操作码组四层装配制作程序。应用设计师在被选程序包的四层上面加一个应用组层,应用程序装配工具将几个程序包组成一个应用程序包。此外,应用设计师可以选择和删去被选程序包中的某些主分功能。

Description

本发明涉及数据处理领域。更具体地说,本发明是一种计算机软件包的装配结构,其中的软件程序由几个可替换单元按多层结构方式组合而成。
数据处理已发展到这样一个地步,用户希望他们的计算机能以最少的人为干预来处理它本身的资源。在处理计算机系统的硬件方面,已采用了自动布局与问题决定的方法,但有效地处理计算机系统的软件部分却还没有做什么工作。
当今典型的用户需要用几个不同的程序来实现他的特定应用。这些程序往往是由不同的程序设计师开发的。每个程序均与硬件和软件有关,因此用户或者应用程序设计师要将它们组成一个综合的系统并满足全部依附备件显得越来越难。此外,一个程序要能正确工作还可能依附于某一维护级或发售级的另一个程序。通常用户的唯一办法是通过试凑或者利用大量的参考手册经过费力的探索来解决依附性的问题。
程序的结构往往与程序设计师的风格和思想方法有关。因此,两个程序具有一致结构,使一个程序能容易地发现另一个程序的信息,例如维护级或依附性信息,在目前是非常罕见的,即使同一个公司开发的两个软件也是如此。
目前程序设计师与用户面临的另一个问题是程序总是有些毛病需要校正。通常程序设计师必须向每个用户送去一个全新的程序以校正差错,目前还没有一种有效的方法只改换出毛病的那一小部分代码。
现在,应用设计师的工作变得越来越复杂。当用户告知应用设计师他想引用一个应用软件包来满足他的特定需要时,他会感到要将几个不同的程序装配起来以满足用户的要求并保持今后扩充的灵活性有很多问题。通常,应用设计师不得不求诸于一堆昂贵的非结构式的通用程序,这些程序要么完成用户所不需的功能,要么不能够完成用户所需的全部功能。此外,一大批通用程序由于存贮了用户不需的程序,比实际需要白白多占用不少存贮器。对于那些存贮器已用完再无法在计算机内增存贮所需程序的用户,这个问题就更为辣手。
显然,程序设计师总是乐于使每个用户都对自己的程序称心如意。然而,在目前要开发专用程序来满足所有不同用户的要求,开发成本太高。程序设计师企图开发一种也许能满足所有用户要求的程序,这些用户有的需要程序的全部功能,有的只需要程序的某一功能。如果能做到这一点,程序设计师只需向每个用户提供用到的功能。当用户的需求增长时,再增加一些投资就可获得同一个程序中的附加功能。
本发明的主要目的是提出一种数据处理系统中管理程序的有效办法。
本发明的另一个目的是,提出一种计算机软件包的装配结构,其中应用软件包由几个可替换单元按多层次结构组合而成。
本发明的另一个目的是将应用软件包作为多层结构中的一个组成部分,这个多层结构能自动识别信息,维护级以及与硬件及其它软件的依附性。
本发明的另一个目的是提出一套软件装配工具,程序设计师可用它来设计程序模块,应用设计师可用它来设计应用软件包。
这些目的都是通过下述软件管理结构来达到的。
一个应用软件包由几个相联的可替换单元(RU)组成。每个可替换单元均可调用,而不影响其它可替换单元。这些可替换单元自上至下组成多层结构。在优选的实施方案中,一共有五层:应用组层(AG)、可装码组层(LCG)、主功能组层(PEG)、分功能组层(SFG),以及操作码组层(OCG)。应用组层确定一组需要进行联接以完成能满足用户要求的高层应用的计算机程序。可装码组层确定一组完成某项一般工作的程序。主功能组层将可装码组层确定的公用程程细化,确定一组主功能。分功能组层将一次功能组层中确定的一次功能进一步细化,以确定一组能更接近于用户特定需要的专用分功能。操作码组层则包括 由前面四层确定的运行用户专用应用程序的操作码。
每个应用组层可替换单元与一个或几个可装码组层可替换单元相联,后者又跟一个或几个主功能组层可替换单元相联,每个这种单元又与一个或几个分功能组层可替换单元相联,以下又与一个或几个操作码组层可替换单元相联。这样,就确定了一个五层的多层结构。
每个可替换单元由一个首部与体部组成。每个可替换单元的首部,不论处于哪一层,均包含自识别与维护信息,还可能包括一张与该单元有依附性的硬件与软件表。各层可替换单元的体部包含一张表格,列出了下一层中完成多层次链接的可替换单元,以此还有附加自识别与维护信息。可替换单元中的自识别、维护与依附性信息也称为重要产品数据(VPD)。操作码组层内每个可替换单元的体部则包含运行程序所用的操作码。
应用软件的多层结构、可替换单元的可换性,以及这些单元内的自标别,维护与依附性信息,使软件变得更为完善。这种结构式软件可用来解决许多当前的数据处理问题,有些上面已讨论过。
程序设计师利用本发明的程序装配工具来编制程序,由四层装配而成;可装码组层、主功能组层、分功能组层和操作码组层。应用设计师利用本发明的应用程序装配工具将其中几个应用程序包装配在一起组成一个应用程序包。这是这样完成的:在所选层程序包的上面再加一个应用组层。此外,应用设计师还可以选择被选程序包中的某些主与分功能,删除被选程序包中的其它主功能与分功能。本发明提出的装配结构与装配工具给予应用设计师有力的手段与灵活性,来编制符合特定用户要求的应用程序包。
这种可装码多层结构的另一个优点是:不同类型的可装码,例如微码、购置的程序或用户自编应用程序,均可用一套公用的管理工具来管理,不需要对每类可装码采用一组特别的工具。因为每类代码的装配结构都相似,所以可这样做。
图1是本发明的环境。
图2是按本发明装配的软件库里的程序。
图3是装配起来满足特定用户要求的应用程序包。
图4示出了多层结构中的各层应用程序包。
图5是图1多层结构明细图,其中示出了可替换单元。
图6A是组成应用组层、可装码组层、主功能组层与分功能组层的可替换单元的明细图。
图6B是组成操作码组层的可替换单元的明细图。
图7是各可替换单元公用的固定首部的明细图。
图8是各可替换单元公用的可变首部的明细图。
图9是应用组层可替换单元中固定应用组层信息组的明细图。
图10是应用组层可替换单元中可变应用组层信息组的明细图。
图11是可装码组层可替换单元中固定可装码组层信息组的明细图。
图12是可装码组层可替换单元中可变可装码组层信息组的明细图。
图13是主功能组层可替换单元中固定主功能组层信息组的明细图。
图14是主功能组层可替换单元中可变主功能组层信息组的明细图。
图15是分功能组层可替换单元中固定分功能组层信息组的明细图。
图16是功能组层可替换单元中可变分功能组层信息组的明细图。
图17是程序设计师可使用的程序装配工具清单。
图18~30是定义程序装配工具与定义应用程序装配工具的明细图。
图31示出了采用显示程序装配工具的程序包实例。
图32是应用程序设计师可使用的应用程序装配工具清单。
图33示出了应用设计师怎样使用选择应用组功能工具的实例。
图34示出了采用显示应用装配工具的应用程序包实例。
图1是本发明的环境。程序设计师21-24按本发明的装配结构各自开发程序,以下将作较详细的说明。通常程序设计师21-24都是彼此独立工作的,且经常是互相竞争。尽管图1只示出了四名程序设计师,如果设计师都遵循本发明的装配结构,这些程序设计师可以是世界上几万名设计师。
由程序设计师21-24开发的程序放在程序库30。程序库330集中了程序设计师开发的全部程序。举几 个例子,程序库30可能包括操作系统程序、文字处理程序、电子表格程序、游戏程序、教学程序、通讯程序和印刷程序。每个程序都完成主功能与分功能,以后将予以阐明。程序库30中程序31-35的明细图示于图2。
应用程序设计师26取出程序库30中的程序,重新将它们装配成一个应用程序包,以满足特定用户的要求。用户所需程序都装配在一个应用程序包内,将这个应用程序包交给用户。在用户得到的应用程序包中,只包括经选择的用户所需程序的一般功能与特定功能。
在图1中,应用程序设计师26分配到的工作是为办公室50中工作的用户41-44开发应用程序包。办公室50中有用户41-44使用的四台计师机51-54。计师机51-54的存贮区分别为56-59。存贮区56-59分别存放应用程序包61-64。虽然每个存贮区只表示出一个应用程序包,存放几个也是可以的。应用程序包61-64是由应用设计师26根据程序库30中由程序设计师21-24开发的程序编制的。应用程序包61-64分别能满足用户41-44的要求。
程序设计师21-24按本发明的装配结构用装配工具80装配他们的程序。同样,应用设计师26利用装配工具90重新将程序设计师21-24编制的程序装配成一个能满足特定用户要求的应用程序包。装配工具80与90十分相似,在图17~34中将有更详细的说明。
图2是程序库30中程序31-35的明细图,请注意,程序31-35的图形象一个削去顶尖的金字塔。这个图形表示这些程序已按装配结构编好,但尚未成为应用程序包的一部分。
图31是字处理程序。这个特殊的字处理程序有两个主功能:文件准备与拼字检验。文件准备主功能有三个分功能:目录表功能、牵引生成功能以及虚拟打印功能。拼字检验主功能有三个分功能:常用字、法律字与医学用字。每个分功能相应的操作码放在5000层,用以完成该功能。
程序32-35是通讯程序、会计程序、操作系统与奕棋程序。请注意,这些程序除了奕棋程序35以外均有几个主功能与分功能。奕棋程序35很简单,只有一个主功能与分功能。
程序31-35仅仅表示程序设计师可使用装配工具80编制的程序。程序设计师有很大的灵活性来选择各种需要的主功能与分功能。他们选择的主功能与分功能越多,程序越是灵活,应用设计师越有可能在应用程序包中包括能满足特定用户需要的程序。
参阅图1与2,假设办公室50是一个小型的法律事务所。应用设计师26与用户41谈话后得悉,用户41需要文字处理程序31、会计程序33与操作系统34,但不要通讯程序32或奕棋程序35。应用设计师26还知道用户41需要文字处理程序31的文件准备与拼字校验主功能,以及目录来生成,通用字与法律用字分功能,但不需要任何其它的分功能。同样,还选择了会计程序33与操作系统34的某些主分功能。按用户41需求,删除了某些功能。应用设计师26将程序31、33与34重新装配成一个应用程序包61,交给用户41,他将它存入自己计师机51的存贮器56。应用程序包62-64根据用户42-44的需求同样的方式编成。应用设计师26利用装配工具90编制应用程序包61-64,以下即将进一步叙述。
图3是应用设计师26为用户41开发的应用程序包61。请注意,应用程序包61的形状象一个已有顶尖的金字塔。应用程序包61只包括用户41需要的程序、主功能与分功能。如果用户41的需要有所改变,则可以为他开发一个新的应用程序包。
请注意,应用程序包61由五层组成:1000,2000,3000,4000与5000。图4-17更详细地图示了此优选实施方案的五层装配结构。
图4是优选实施方案的软件管理结构。请注意,共有五层,结构呈金字塔形以强调它的多层特性。最高层为应用组层(AG)1000,它确定了一组形成高层用户应用程序的计算机程序。举例来说,图3应用程序包61在应用组层确定一组法律事务所用的程序。第二层可装码组层(LCG)2000确定一组完成一般工作的程序。例如,图3的应用程序包61在可装码组层2000包括一个文字处理程序、会计程序与操作系统。第二层主功能组层(PFG)3000从可装码组层由确定的公用程序中进一步确定一组特定的主功能。例如,图3应用程序包61可装码组层内的文字处理程序,主功能组层包括文件准备与拼字校验主功能。其它程序在可装码组层也同样完成类似的细化工作。
第四层为分功能组层(SFG)4000,它将主功能组层中确定的主功能进一步细化为一组能更加满足用户需要的更为专用的分功能。分功能组层为每一个特定功能确定能装入计算机系统的最小可替换单元数。例如,对于图3应用程序包61主功能组层内 的拼字校验主功能,分功能组层包括通用字与法律用字分功能。其它程序在主功能组层也可进行同样的细化工作。
最后一层操作码组层(OCG)5000包括在前面四层中确定的为运行专用的用户应用程序所需的操作码。
图5更详细地示出了图4优选实施方案的多层结构。请注意,应用组层1000由可替换单元1100组成。可替换单元1100的内容将在图6A、7-10内作更详细的介绍。可替换单元1100至少与可装码组层5000内的一个可替换单元相联。如图5所示,可替换单元1100与可装码组层的可替换单元2100相联。可替换单元2100的内容在图6A、7、8、11与12中有更详细的介绍。可替换单元2100至少与主功能组层3000内的一个可替换单元相联。如图5所示,可替换单元2100与主功能组层3000内的可替换单元3100相联。3100的内容在图6A、7、8、13与14中有更详细的说明。可替换单元3100至少与分功能组层4000内的一个可替换单元相联。如图5所示,可替换单元3100与4100相联。可替换单元4100的内容在图6A,7、8,15与16中有更详细的说明。可替换单元4100至少与操作码组层内5000的一个可替换单元相联。如图5所示,可替换单元4100与5600相联。可替换单元5600的内容在图6B、7与8内有更详细的说明。
图6A较详细地示出了组成应用组层、可装码组层、主功能组层、分功能组层的可替换单元。可替换单元100由首部110与体部120组成。首部110由固定首部200与可变首部300组成。体部120由固定组信息部400与可变组信息部500组成。固定首部200包括:长度信息220、可替换单元标识号信息230与偏移信息250。长度信息220记录可替换单元100的总长度以及可替换单元100体部120的长度。可替换单元标识符信息230包括自识别信息,它将本可替换单元与图5所有其它可替换单元区别开来。此外,可替换单元标识符信息230还包含可用来确定该单元维护级的维护信息。
偏移信息260包括对可变首部300与固定组信息部400的偏移数据。偏移信息还包括对于可变首部300中系统专用数据320、硬件依附性信息330以及软件依附性信息360的偏移数据。此外,偏移信息260还包括对固定组信息部400的偏移数据。图7较详细地介绍了固定首部200中的各项内容,图8较详细地介绍了可变首部300。
参阅图6A,体部120由固定组信息部400与可变组信息部500组成。固定组信息部400包括体部长度信息420,组标识符信息430与组偏移信息460。体部长度信息记录了体部120的总长度。组标识符信息430包括附加的自识别信息与维护信息组偏移信息460包括对可变组信息500的偏移信息。特别是,组偏移信息460还包括对组专用数据部520与下一层项目部540的偏移信息。
固定组信息400与可变组信息500内的具体内容决定于可替换单元100是在应用组层1000、可装码组层2000,主功能组层3000还是在分功能组层4000。如果可替换单元100处于应用组层100,则固定应用组信息1400的详细内容如图9所示,可变应用组信息1500的详细内容如图10所示。如果可替换单元100处于可装码组层2000,则固定可装码组信息2400的详细内容如图11所示,可变可装码组信息2500的详细内容如图12所示。同样,如果可替换单元100处于主功能组层,则固定主功能组信息3400如图13所示,可变主功能组信息3500如图14所示。最后,如果可替换单元100处于分功能组层4000,则固定分功能组信息4400如图15所示,可变分功能组信息如图16所示。
现在来讨论图6B中的可替换单元600。可替换单元600只处于操作码组层5000。请注意,可替换单元600的首部110与图6A可替换单元100的首部110相同。可替换单元600还有一个体部620,它与可替换单元100的体部120不同。特别是,体部620包括操作码630。操作码630是非结构式的,它是程序的数据或可执行的代码。操作码630可以有选择地包含附加的重要产品数据(自标别、维护或依附性信息)。
前面在介绍图6A时已提到,可替换单元100的首部110不论可替换单元100处于哪一层均含有同样的内容。图7是固定首部200的明细图。长度信息220包括两段。信息段221确定该可替换单元的总长度。段222确定该单元体部的总长度。这个信息可用来链接各个可替换单元。标识信息230包括几段自识别信息与几段维护信息。可替换单元名称段231供系统作管理可替换单元之用。各可替换单元的命名必须是唯一的,一些在系统中互相区别。图31中的17400例示了一些可替换单元的名称。可替换单元访 问标识符段232提供可替换单元的附加直观标识符信息。可替换单元装入标识符段233标明该单元是一种特殊装入操作,这是有些具有相应初始程序装入标识符的装置所需要的。这种机制允许系统决定哪些可替换单元应当在初始程序装入过程中装入。注意,可替换单元装入标识符段233是可选的。可装码组与应用组的标识符段234、主功能组标识符段236以及次功能组标识符段237包含多层键结构中其它可替换单元的标识符。
现在来讨论固定首部200中标识符信息230中的维护信息段。可替换单元指令系统段241确定与可替换单元体部中的数据相兼容的机器指令系统。这一信息段也是任选的。可替换单元控制信息段242包括几个用以管理可替换单元的标志。其中之一是可替换单元修改标志,当单元被修换时置位。第二个标志是可替换单元的依附栏标志,如果该单元与任何硬件或软件有关,则置位。第三个标志是可替换单元类型标志,它确定该单元是属于应用组、主功能组、分功能组,还是操作码组。
可替换单元开发信息段243包括有关该单元原始开发的信息,诸如开发该可替换单元的某个研究所。可替换单元建立日期段244与建立时间段246包括建立此单元的日期与时间。可替换单元装入日期段247与装入时间段248包括该单元装入系统的日期与时间。可替换单元版本级段249与发售修改级段250规定了该可替换单元的维护级。可替换单元临时固定标识符段252与修补标识符段253都是任选的,它们提供该单元的临时标识符名称或修补标识符名称。可替换单元公用名称段254是单元名称段231的二进制表示,可供系统软件选用。信息段257与258规定了有关可替换单元编释程序的信息。
现在来讨论组成固定首部200偏移信息段260的各段信息。对于单元体部段261的偏移信息指向该单元体部的起点。对于可替换单元系统专用数据段262的偏移信息指向单元可变首部中系统专用数据的起点。对于单元硬件依附性表段263的偏移信息指向单元可变首部中硬件依附性表的起点。对于可替换单元软件依附性表段264的偏移指向单元可变首部中软件依附性表的起点。信息段265指向单元专用信息的起点,段267则指向操作码组内可能出现的重要产品数据。
包含可替换单元的系统区各段266包括存放该单元的系统存贮器中的地名。部分地名例示于图31的17600栏。信息段270与271包括该单元最后一次修改的日期与时间。段272指向可变首部中的首部扩展数据。
图8是可变首部300中各信息段的明细图。系统专用数据320由系统专用数据长度段321与系统专用数据段322组成。
现在来讨论可变首部300硬件依附性表330中的各段信息。信息段331列出了为硬件依附表中项目数。信息段332~337与339组成硬件依附表中的一个项目,并重复组成表中的各项。段332为可替换单元硬件相关标识符。几个不同的硬件,如果始终是一起使用的,可以给予同一个相关标识符。段333、335、336与337包括与该可替换单元有关的某种硬件的类型、型号、层次标识符号以及部品号。
现在讨论可变首部300软件依附性表360中的各段信息。信息段361为软件依附性表的容量,段362包含软件依附表的项目数。信息段363-376组成软件依附性表中的一项。这些段重复组成表中的其它各项。信息段363包含软件依附性表中该项的容量。段364包含软件依附性表中该项的软件相关标识符。几个不同的软件,如果始终是一起使用的,可给予同样相关标识符。
这里假定,软件依附性表中所含的程序都是按本发明结构化的。因此,必须知道组成与此可替换单元有关的程序的各个可替换单元的多层链结构。可装码组标识符段367、可装码组主功能组标识符段370与主功能组一分功能组标识符段373提供确定这种多层链的信息。信息段368与369指出了依附程序可装码组的版本级与发售/修订级。同样,可装码组-主功能组的版本级与发售/修订级示于信息段371与372,主功能组-分功能组的版本级发售/修订级与中间程序变化级示于信息段374到376。信息段381-384组成首部扩展段。段382为可替换单元部品号。段383包括对该替换单元的简述。单元的简述例子示于图31的17050栏。
现在来详述可替换单元100体部120中的各段信息。体部120如同前述,包含固定组信息400与可变组信息500。根据该单元处于多层链结构中的哪一层,信息400与500包含不同的信息段。可替换单元1100在应用组层1000有一组固定应用组信息1400,在图9中有较详细的说明。
长度信息1420有一个记录应用组体部总长度的信息段。现在来讨论可替换单元1100固定应用组信息1400中组成组标识符号信息1430的各段信息。信息段1431-1439为开发该应用组可替换单元的卖主名。卖主通常都是开发此应用程序包的应用设计师。信息段1441是一个特征常数,它提供一个直观标识符,表明该可替换单元是一个应用组型的单元。信息段1443-1446描述了该应用组可替换单元的标识符、部品号、版本级、发售/修订级。信息段1447与1448包含有关该应用组可替换单元各种中间或临时层间变动的信息。信息段1449包含可替换单元持主的版权信息。
现在来讨论组成可替换单元1100固定应用组信息1400中偏移信息1460的各段信息。信息段1463指向多层链中与此可替换单元相联的可装码组可替换单元表。图10较详细地示出了包含在可变应用组信息1500中的这张表格。段1464指向可变应用组信息1500中应用组专用信息的起点,详细内容示于图10。
现在来讨论组成图10中可变应用组可替换单元信息1500的各段信息。应用组专用数据1520包括信息段1521与1522,1521为应用组专用数据的长度,1522为应用组专用数据。
现在来讨论组成可装码组表1540的各段信息。信息段1541确定可装码组表的容量,段1542确定可装码组表的项目数。信息段1545-1556组成可装码组表中的一项,它们可重复组成可装码组表中的其它各项。信息段1545为选择/删除标志,当它置位时表示该可装码组已为应用组选中。信息段1546指明此可装码组是否能供应用组使用。信息段1547指出可用的可装码组是否已装入系统。信息段1548指示已装入的可装码组在此系统中已经调用。信息段1546-1548允许将可装码组作为应用程序包的一部分提供给用户,但在用户提出扩展或升级之前不能调用。例如,会计出纳可装码组可以交给用户,但只有当用要扩大他的应用并需要些附加功能时才能调用。此信息段还可用作软件版权保护措施是一部分。
信息段1550包含该可装码组在系统中的地址。系统地名的例子示于图31的17600栏。信息段1552为可装码组的名称,系统用此来鉴别该可装码组。可替换单元名称的例子示于图31的17400栏。信息段1554为可装码组的标识符。可装码组标识符的例子示于图31的17100栏。信息段1555与1556为可装码组各项的版本级与发售/修订级。
图11介绍了组成位于可装码组成级2000(图5)的可替换单元2100中固定可装码组信息2400的各段信息。请注意,其中不少信息段与图9所示固定应用组信息1400中的信息段相似。请参阅图9关于这些段的介绍。信息段2431-2439中的卖主信息通常是指开发该程序包的程序设计师。信息段2463指向与可装码组可替换单元相联的主功能组可替换单元来。这张表放在图12所示的可变可装码组信息2500中。信息段2464指向也包含在图12所示可变可装码组信息2500中的可装码组专用信息。信息段2465指向也包含在图12所示可变可装码组信息2500中的应用组数据。信息段2467指向信息2500中的出口程序。
可替换单元2100的可变可装码组信息2500如图12所示。请注意,图12可变可装码组信息2500中的许多信息段与图10中可变应用组信息1500中的信息段相似。请参阅图10对这些信息段的说明。与图11信息段2465有关的应用组数据示于图12的信息段2531-2533。这些段内的信息使可装码组可以确定它要联接的应用组。出口程序的名称与地址示于信息段2561-2569。在编制应用程序包或程序包时,遇到差错就调用这些程序。
图13是主功能组层3000(图5)可替换单元3100中固定主功能组信息3400。请注意,图13固定主功能组信息3400中的某些信息段与图9固定应用组信息1400中的信息段相似。请参阅图9关于这些信息段的介绍。但应当注意,信息1400与2400中的卖主信息不再包含在信息3400之中。信息段3434确定多层链结构中此主功能组可替换单元的可装码组标识符。信息段3463指向与此主功能组可替换单元相联的分功能组可替换单元表。这张表放在可变主功能组信息3500之中,如图14所示。信息段3464指向放在图14可变主功能组信息3500中的主功能组专用信息。信息段3461与3462指向可能出现的放在可变主功能组信息3500中的硬件、软件依附性信息。
图14是3000层(图5)由可替换单元3100的可变主功能组信息3500。注意,图14信息3500中有些信息与图10信息1500中的信息段相同。请参阅图10关于这些段的说明。
分功能组层4000内可替换单元4100的固定分功能组信息4400(图5)示于图15。请注意,固定分功能组信息4400中许多信息段与图9固定应用组信息 1400中信息段相同。请参阅图9关于这些段的说明。信息段4433与4434为该分功能组可替换单元确定多层链结构中更高层内的可替换单元。
信息段4461指向与此分功能组可替换单元相联的操作码组可替换单元表。这张表放在可变分功能组信息4500内,如图16所示。信息段4462指向可变分功能组信息4500中的临时固定/修补操作。信息段4463指向可变分功能组信息4500中的分功能组专用信息。
可替换单元4100的可变分功能信息4500如图16所示。请注意,图5信息4500中的有些信息段与图10信息1500中的信息段相似。该参阅图10关于这些段的说明。信息段4561-4570确定与此可替换单元有关的临时固定/修补操作表。
现在回到图1。讨论程序设计师21-24用来开发应用程序包的程序装配工具80。程序装配工具80是一种能在象个人计算机这类通用计算机上运行的软件,它是经过精心设计的,如图17-34所示。图17是程序设计师能用于编制程序包的工具清单。程序设计师利用图17所列的程序装配工具,开发按可装码组、主功能组、分功能组与操作码组四层结构装配的程序包。程序装配工具11000允许程序设计师确定程序包。装配包11000的详细情况示于图18-30。装配工具17000允许程序设计师显示由装配工具11000确定的程序包。显示给程序设计师的程序包的例子示于图31。
图18是装配工具11000的总控流程。注意,图18还同时示出了确定应用程序包的装配工具21000的总控流程,这是因为这两种工具很相似。在图18-30的流程图中,应用程序装配工具21000所独有的部分的参照编号为21000-21999。这些部分以后在讨论应用程序装配工具21000时再说明。决定块11010查问程序设计师,他是否要确定一个可装码组。如果程序设计师表示,他想要确定一个可装码组,则在信息块11100中确定可装码组的体部。信息块11100的详细情况示于图190接着在信息块11200中确定可装码组首部。信息块11200的详细内容示于图25。决定块11020查问程序设计师他是否想确定一个主功能组。如果想确定,则在信息块11400中确定主功能组体部。信息块11400的详细内容示于图26。接着,在信息块11200中确定了主功能组首部。信息块11200的详细内容示于图25。请注意,信息块11200对于确定可装码组、主功能组、次功能组、应用组与操作码组层的首部都是公用的。
决定块11030查问程序设计师,他是否要确定一个分功能组。如果想确定,则在信息块11500中确定次功能组体部。信息块11500的详细情况示于图27。接着,如同上述,在信息块11200中确定分功能组首部。决定块11050查问程序设计师,他是否要确定一个操作码组。如果是,则信息块11060则联通包含程序操作码与数据的操作码组体部。如同上述。信息块11200定义操作码组首部。信息块11070查问程序设计师,是否已完成用工具11000的开发工作。注意,如果程序设计师正在从头开始设计一个程序包,他可能先确定操作码组,接着是分功能组,然后是主功能组,最后是可装码组。
图19说明图18中的信息块11100怎样确定可装码组体部。信息块11110向程序设计师提示图11所示信息段2431-2439中的卖主信息。通常这些信息段的卖主就是程序设计师本人,或者是他工作的公司,当然也可以是其他卖主。信息块11110要求程序设计师为可装码组选择特征常数。这个数据放在图11信息段2440内。信息块11111提问程序设计师关于可装码组标识符与部品号的信息。这个信息位于图11信息段2450与2451内。信息块11112提问程序设计师关于可装码组维护级与版权的信息。此信息位于图11的信息段2452-2456。信息块11120确定与此可装码组有关的主功能组表。信息块11120的详细内容示于图20,以后还将讨论。信息块21113与21130是应用设计师用的,放在以后讨论。
决定块11114查问程序设计师是否需要可装码组专用信息。如果需要,则在信息块11140确定可装码组专用数据。信息块11140的详细情况示于图22,以后再说明。信息块11115查问程序设计师是否有与此可装码组有依附性的硬件。如果有,则在信息块11160中确定可装码组硬件依附性表。信息块11160的详细情况示于图23,以后再讨论。
决定块11116查问程序设计师是否有与此可装码组有依附性的软件。如果有,则在信息块11180中确定可装码组软件依附性表。信息块11180的详细情况示于图24,以后还将讨论。在图19中信息块11117保存了程序设计师确定的可装码组体部的定义。在流程图中信息块11118进入信息块111200,在此确定可装码组首部。以后将配合图25对信息块11200作更 详细的说明。
图20较详细地说明了如何在信息块11120中定义主功能组表。信息块11121查问程序设计师关于主功能组名称与标识符的信息。这个信息放在图12的信息段2550与2552内。信息块11122查问程序设计师关于主功能组维护级的信息。此信息放在图12信息段2553与2554内。信息块11124查问用户在此表内可要确定其它的主功能组。如果不要,则重复信息块11121-11123,直到表中的全部主功能组均被确定为止。当表中全部主功能组被确定之后,信息块11125设定图12中主功能组表容量段2541与项目数段2543。信息块11126回到图19的信息块21113。
图22详细说明了信息块11140怎样确定可装码组专用数据。信息块11141查问程序设计师关于可装码组专用数据的信息。可装码组专用数据放在图12信息段2522内。信息块11142根据信息段2522的内容确定可装码组专用数据的长度。此长度放在图12的信息段2521内。信息块11143回到图19的信息块11115。
图23较详细地说明了信息块11160怎样确定可装码组硬件依附性表。决定块11161查问程序设计师对于此硬件依附性表是否需要一个硬件相关标识符。如果需要,则硬件相关标识符放在图8信息段332内,如信息块11162所示。信息块11163提示给程序设计师输入硬件的类型与型号。此信息放在图8的信息段333与335内。决定块11164查问程序设计师对于硬件依附性表中的这一项目是否需要装入标识符。如果需要,硬件装入标识符放在图8的信息段336内。如信息块11165所示。如果不需要,则跳过信息块11165。信息块11166提示给程序设计师输入硬件的部品号。这个信息位于图8的信息段337。决定块11167查问是否还有更多的硬件依附性要填入此表。如果还有,则重复信息块11161-11166,直到表中的全部硬件依附性填入为止。当全部硬件依附性填入此表后,信息块11168修改图11中硬件依附性表容量信息段338与项目数信息段331,加入新的信息。信息块11169回到图19的信息块11116。
图24详细说明了信息块11180怎样确定可装码组软件依附性表。信息块11181查问程序设计师此软件依附性表是否需要一个软件相关标识符。如果需要,则软件相关标识符放在图8信息段364内,如信息块111182所示。如不需要,则跳过信息块11182。信息块11183查问程序设计师关于软件依附性类型的信息。此信息位于图8信息段366内。信息块11184查问程序设计师有关相依附软件的可装码组标识符与维护级。此信息放在图8的信息段367~369。信息块11185查问用户有相依附性的软件是否是分功能组可替换单元。如果是,则在信息块11186向程序设计师提示分功能组标识符与维护级,此信息位于图8的信息段373-375内。
决定块11187查问对分功能组中间程序变化层是否有依附性。如果有,信息块11188向程序设计师提示输入次功能组程序变化中间标识符。此信息位于图8的信息段376。如果没有,跳过信息块11188。信息块11189查问程序设计师对主功能组可替换单元是否有依附性。如果有,则向程序设计师提示输入主功能组标识符与维护级。此信息位于图8的信息段370-372,如信息块11190所示。如果没有,则跳过信息块11190。信息块11191查问程序设计师是否所有软件依附性均已确定。如果没有,控制回到图24的起点,重复信息块11181-11190,直到全部软件依附性确定为止。一旦全部软件依附性被确定,信息块11192就修改图8中软件依附性容易信息段361与项目数信息段362。信息块11193回到图19的信息块11177。
图25A-C详细说明了图18中的信息块11200如何确定可装码组首部。注意,可装码组首部的确定方式与图18中确定主功能首部、次功能组首部、应用组首部或操作码组首部是一样的。信息块11211向程序设计师提示输入可替换单元的名称与访问标识符。此信息位于图7的信息段231与232。信息块11212向程序设计师提示输入可替换单元的版本级与发售级信息。此信息位于图7的信息段249与250。信息块11213向程序设计师提示输入可替换单元的控制信息与开发信息。此信息位于图7的信息段242与243。信息块11214设定存放此可替换单元的系统区的名称。此信息位于图7的信息段266。信息块11215设定此可替换单元的开发日期与时间。此信息位于图7的信息段244与246。
信息块11219查问此可替换单元是否是可装码组可替换单元。如果是,则信息块11220设定图7信息段234中的可装码组标识符。信息块11221对信息块11100确定的可装码组体部进行检索。
信息块11222查问此可替换单元是否是主功能组可替换单元,如果是,则在图7的信息段234与236 设定可装码组标识符与主功能组标识符,如信息块11223所示。在信息块11400确定的主功能组体部在信息块11224内进行检索。
信息块11225查问此可替换单元是否是分主能组可替换单元。如果是,信息块11226设定图7信息段234、236与237中与此分功能组有关的可装码组、主功能组与分功能组标识符。
接着,信息块11255获得信息块11500中确定的分功能组体部,信息块11227(图25B)查问对此可替换单元硬件依附性表是否已经确定。如果是,信息块11228决定硬件依附性偏移信息是否在可替换单元的体部或首部。可替换单元依附性偏移信息,在此优选实施方案中,可以在可替换单元的体部,也可在可替换单元的首部,但不能同时存在。如果硬件依附性偏移表位于可替换单元体部,则在信息块1523中将硬件依附性表附加到可替换单元的体部。如果硬件依附性偏移表位于可替换单元的首部,则在信息块11229中将硬件依附性表附加到可替换单元的首部。在后一种情况下,信息位于图7的信息段263,向硬件依附性表提供偏移信息。
信息块11231查问可替换单元的软件依附性表是否已确定。如果是,则信息块11232查问软件依附性偏移信息位于可替换单元的体部还是管部。如果软件依附性偏移位于可替换单元的体部,则在信息块11234中将软件依附性表附加到可替换单元的体部。如果软件依附性表偏移信息位于可替换单元的首部,则在信息块11233中将软件依附性表附加到可替换单元的首部。与此偏移有关的信息位于图7的信息段264。
信息块11235查问此可替换单元的系统专用数据是否已确定。如果已确定,则信息块11236查问该系统专用数据的偏移信息是否包含在可替换单元的体部或首部。如果系统专用数据的偏移信息位于可替换单元的体部,则在信息块11238中将此系统专用数据送入可替换单元的体部。如果系统专用数据偏移信息位于可替换单元的首部,则在信息块11237中将系统专用数据送入可替换单元的首部。与偏移有关的数据位于图7信息段262。
信息块11239查问此可替换单元的可替换单元专用信息是否确定。如果已确定,则信息块11240查问此可替换单元专用信息的偏移信息是否包含在可替换单元的体部或首部。如果可替换单元专用信息偏移位于可替换单元的体部,则在信息块11242中将可替换单元专用数据送入可替换单元的体部。如果可替换单元专用信息偏移位于可替换单元的首部,则在信息块11241中将可替换单元专用信息送入可替换单元的首部。有关偏移的信息存放在图7的信息段265。
信息块11243(图25C)查问此可替换单元是否是操作码组可替换单元。如果是,则信息块11244设定该操作码组的可装码组、主功能组与分功能标识符。此信息位于图7的信息段234、236与237。信息块11245查问此操作码组是否有装入标识符。如果有,则在信息块11246中将操作码组装入标识符送入图7的信息段233。
信息块11247查问此操作码组是否有一个公用名称。如果有,将此操作码的公用名称放入图7的信息段254,如信息块11248所示。信息块11249查问操作码组体部内是否包含重要产品数据。如果有,将图7的信息段267加以修正,将偏移放入操作码体部中含有重要产品数据的部分。如信息块11250所示。信息块11251将图7信息段222内的可替换单元体部总长度加以修正。信息块11252对可替换单元的体部长度加以修正,如果它是应用组可替换单元,则该长度位于图9的信息段1420;如果它是可装码组单元,则位于图11的信息段2420;如果它是主功能组单元,则在图13的信息段3420;如果它是分功能组单元,则位于图15的信息段4420。信息块11253计算可替换单元的总长度,将此信息放入图7的信息段221。可替换单元的总长度包括首部与体部的长度。信息块11254回到信息块11020。
图26较详细地说明了图18的信息块11400怎样确定主功能组体部。信息块11410提示程序设计师输入此主功能组的标识符以及获得此主功能组的可装码组标识符。此信息位于图13的信息段3432与3434。信息块11411提示程序设计师输入主功能组部品号、维护级与版权信息。此信息位于图13的信息段3435-3450。信息块11412查问程序设计师此主功能组是否与任何其它硬件有依附性。如果有,则确定硬件依附性表,如信息块11160所示。信息块11160的详细情况示于图23,上面已讨论过。信息块11413查问程序设计师此主功能组是否存在软件依附性。如果回答是肯定的,则信息块11180确定此主功能组的软件依附性。信息块11180的详细情况示于图24,以上已讨论 过。信息块11120定义与此主功能组相联的包括全部与功能组的分功能组表。信息块11120的详细情况示于图20,上面已讨论过。信息块11414查问程序设计师是否需要主功能组专用信息。如果需要,则在信息块11140中确定主功能组专用信息。信息块11140的详细情况示于图22,以上已讨论过。主功能组专用信息的偏移位于图13的信息段3464。信息块11415保存图26中确定的主功能组体部。如图25所示,信息块11416随流程图进入信息块11200,在此确定功能组首部。
图27详细示出了信息块11500怎样定义图18中的分功能组体部。信息11510提示程序设计师输入分功能组标识符以及获得此分功能组的可装码组、主功能组的标识符。此信息位于图15的信息段4431、4433与4434。信息块11511提示程序设计师输入分功能组部品号、维护级以及版权信息。此信息位于图15的信息段4435-4440。信息块11512查问程序设计师此分功能组是否依附于任何其它硬件。如果回答是肯定的,则在信息块11160确定分功能组硬件依附性表。信息块11160的详细情况示于图23,上面已予讨论。信息块11513查问程序设计师此分功能组是否存在软件依附性。如果存在,在信息块11180确定此分功能组的软件依附性表。信息块11180的详细情况示于图24,以上已予讨论。信息块11520建立将此分功能组与其它各操作码组相联的操作码组表。信息块11520如何建立此操作码表的详细情况示于图28,以后还将说明。此操作码组的偏移信息位于图15中信息段4461。信息块11550为此分功能组建立分功能组临时固定/修补操作表。这张表放在图16的信息段4561-4570。此表的偏移信息放在图15的信息段4462。信息块11514查问是否需要任何分功能组专用信息。如果回答是肯定的,则在信息块11140建立分功能组专用信息。图11140的详细情况示于图22,以上已予说明。分功能级组专用信息放在图15的信息段4521,分功能组专用信息长度放在信息段4520,分功能组专用信息的偏移放在信息段4463。信息块11512保留在图27中确定的分功能组体部。信息块11516继续随控制流程进入信息块11200,在此确定分功能组首部。
图28详细说明了信息块11520怎样确定操作码组表。信息块11521提示程序设计师输入包含此操作码组的系统地名。此信息位于图16的4544。信息块11522获得标志位于系统某一地址的操作码组的变量。这一点可以这样完成:查问某一地址中公有某一名称的全部操作码组,或者用人工将这些操作码组输入。
信息块11523查问此操作码的名称以及操作码组的付标识符。信息块11524查问此操作码组是否属于另一个与功能组。如果回答肯定,则在信息块11525中修改异常操作码组表。一个操作码只能属于一个分功能组。信息块11526将操作码组的名字及付标识符放入图16的信息段4547与4548。信息块11527查问在系统某一地址是否存在此操作码组。如果不存在,则信息块11528使维护级信息等于获得此操作组的与分功能组的维护级信息。因此,图15信息段4436中的信息被制入图16信息段4549,图15信息段4437中的维护信息被制入图16的信息段4450。
信息块11529查问操作码组维护级信息。此信息位于信息段4549-4554。信息块11530查问系统地址中的全部操作码组是否已全部处理完毕。如果还没有,控制这回到信息块11552。如果已将它所全部处理完毕,则信息块11531设定图16信息段4543中系统地址表的容量,以及图16信息段4546中表内的操作码组项目数。信息块11532查问是否全部系统地址已处理完毕。如果没有,控制这回到信息设11521,重复进行。如果全部系统地址已处理完毕,信息块11533设定图16信息段4541中操作码组表的容量,以及图16信息段4542中系统地址的项目数。信息块11534将不制表的操作码组告知用户。信息块11535将控制这回到图27的信息块11550。当程序设计师确定一个或几个程序包后,他就可以利装配工具17000将这些程序包在他的显示器上显示出来。例如,如果程序设计师21利用确定程序包工具11000已确定了图2程序仓30中的五个程序包,则程序设计师能见到的显示内容如同图31所示。17050栏的显示为简单的说明。可装码组标识符显示在17100栏。如果有主功能组标识符,则显示在17200栏。如果有分功能组标识符,则显示在17300栏。可替换单元名称显示在17400栏。可替换单元类型显示在17500栏。存放可替换单元的系统地名显示在17600栏。17700、17800与17900栏分别显示可替换单元的可用标志,已装标志以及选用标志。在用户使用可替换单元的功能之前,必须先将这三个标志置位。注意,有些可替换单元只是可用的,有些是可用并已安装的,有些则是可用、已安装并选用的。
再回到图1,应用设计师26可利用应用程序装配工具90来编制应用软件包。应用设计师选择程序库30中的某些程序包成一个应用程序包。此外,选择了这些程序包中的某些主分功能,删除了某些功能。应用设计师26利用应用程序装配工具90,编制一个包括应用组、可装码组、主功能组、分功能组与操作码组五层的应用程序,来完成上述工作。应用程序装置工具90包括一组软件,它们能够在诸如个人计算机这一类的通用计算机上运行,如图17-34所示,它们是经过精心设计的。
图32是显示屏上的一张清单,它列出了应用设计师可用开发应用程序包的各种程序装配工具。装配工具21000确定一个应用程序包。装配工具24000选择应用程序包中每个程序包的主分功能。装配工具24000显示已编成的应用程序包。装配工具21000与上述装配工具11000十分相似。除了工具11000的功能以外,装配工具21000还有少数几个供应用设计师使用的功能,通常对程序设计师是没有的。这些附加的功能在图18-30中用参照号21000-21999表示,下面将讨论之。
首先请参阅图18,决定块21040查问程序设计师他是否要确定一个应用组。如果需要,则在信息块21600中确定应用组体部。图29较详细地说明了信息块21600。如前面所述,在信息块11200里进一步确定应用组首部。
现在,参阅图19,信息块21113查问应用设计师此可装码组是否需要应用组信息。如果要,则在信息块21130中确定一张应用组表。信息块21130的详细情况示于图21,以下将作说明。
信息块21130确定一张应用组表,较详细的情况示于图21。信息块21131提示应用程序设计师输入应用组的标识符。此信息位于图12的信息段2531。信息块21132提示应用设计师输入应用组的名称。此信息位于图12的信息段2532。信息段21133提示应用设计师输入存放应用组可替换单元的系统存贮器地址。此信息位于图12的信息段2533。信息块21136返回到图19的信息块21115。
现在请参阅图25A,信息块21216查问此可替换单元是否为应用组单元。如果是,则在图7信息段234内设定该可替换单元的应用组标识符,如信息块21217所示。信息块21218对信息块21600中确定的应用组体部进行检索,如图29所示。
图29较详细地说明了信息块21600怎样定义应用组体部。信息块21610提示应用设计师输入应用组的卖主信息与特征常数。此信息位于图9的信息段1431-1439。信息段21611提示应用设计师输入应用组标识符与应用组部品号。此信息位于图9的信息段1443与1444。信息块21612提示应用设计师输入应用组维护与版权信息。此信息位于图9的信息段1445-1449。信息块21620建立包括与此应用组相联的全部可装码组的可装码组表。信息块21620怎样建立可装码组表的详细过程示于图30,以后还将讨论。信息组21613提问程序设计师,是否需要任何应用组专用信息。如果需要,在信息块11140中确定应用组的专用信息。信息块11140怎样确定应用组专用数据的详细过程示于图22,已给予以讨论。信息21614将图29中确定的应用组体部存入存贮器。信息块11615继续随控制流程进入信息块11200,在此确定应用组首部。信息块11200怎样确定应用组首部的详细过程示于图25,已予以讨论。
信息块21620怎样确定可装码组表的详细过程示于图30。信息块21621向程序设计师提示输入可装码组的名称与标识符。此信息位于图10信息段1552与1554。信息块21622查问程序设计师关于可装码组维护级的信息。此信息位于图10的信息段1555与1556。信息块21623设定可装码组可用性信息段,并向程序设计师提示存放该可装码组系统地址。此信息位于图10信息段1546与1550。信息块21624查问是否表格中的全部可装码组已确定。如果还没有,则重复进行信息块21621-21623。当全部可装码组被确定后,信息块21625将可装码组的项目数放入图10的信息段1541,将可装码组表的容量放入图10的信息段1543。信息块21626返回到图29的信息块21613。
应用设计师利用工具21000选定程序包所含的可装码组确定应用程序包后,设计师接着就利用工具24000选择应用程序包功能。例如,假定应用设计师26要为用户41开发一个应用程序包61,如图1所示,则图33将显示出被选程序包的清单。注意,24050-24900栏与31中17050-17900栏相同。24010栏为应用设计师提供一个选择应用程序包所需主功能与分功能的场合。为了确定图3应用程序包61,应用设计师对于每个图3中被选的主功能与分功能要在24010栏记入。在应用程序包交给用户之前,不被选中的主功能与分功能从可装码组与主功能组的体部删去。
装配工具27000显示用工具21000与24000编制的应用程序包。图34是程序设计师编完图3的应用程序包61后能看到的显示。
以上已讨论过,优选实施方案中程序包含五层,如图4所示。但是,在本发明范围内,并非所有这些层都是必需的。曾经考虑另一种实施方案,其中程序只有两层:可装码组层2000与操作码组层5000。虽然这种实施方案不能象优选实施方案的五层结构能满足用户的需求,这种实施方案的许多优点是十分明显的。在这种实施方案中,没有图9、10、13、14、15与16。图11的信息段2463变为“操作码组表偏移信息”,信息段2465变为“保留”。同样,图12所示的主功能组表为操作码组表所替代,同时选择/删除段2544变为“保留”。在此实施方案中没有信息段2531-2533。同样,要确定只有两层的程序包图18-30流程图中有不少部分是不需要的。
虽然本发明以上所述只涉及优选实施方案与另一种方案,但专家都了解,在不偏离本发明的精神、范围与要义的前提下,在细节上可以有许多变化。因此,这里讨论的只局限于下述要求中所指出的内容。

Claims (11)

1、计算机程序的多层软件管理结构,它至少包括一层可替换单元和与其相邻的下一层可替换单元,其特征在于:
上述的一层和下一层可替换单元的每一个都包括一个首部和一个体部,首部具有一个标识数据,它用来标识与自已有关的可替换单元与其它可替换单元的关系;
上述的一层可替换单元中的体部包括一个标识数据,它用来标识下一层可替换单元,从而使所述一层可替换单元以多层形式与下一层可替换单元链接。
2、权利要求1提出的多层软件管理结构,其特征是:所述一层和下一层可替换单元中的首部还包含一个硬件表,对于正常工作相关的可替换单元与它有依附关系。
3、权利要求1提出的多层软件管理结构,其特征是:所述一层和下一层可替换单元中的首部还包含一个软件表,对于正常工作相关的可替换单元与它有依附关系。
4、权利要求1提出的多层软件管理结构,其特点是:所述一层可替换单元中的体部还包含一组对应于一组可替换单元的标识符信息。
5、权利要求1提出的多层软件管理结构,其特点是:所述下一层可替换单元中的体部包含执行所述计算机程序所需的操作码。
6、权利要求1提出的多层软件管理结构,其特点是:所述一层和下一层可替换单元的首部还包含维护信息。
7、计算机程序多层软件管理结构,其特征在于:
一个应用组层,它包括具有第一首部和第一体部的第一可替换单元,第一首部包括第一标识数据;
一个可装码组层,它包括具有第二首部和第二体部的第二可替换单元,第二首部包括第二标识数据;
一个主功能组层,它包括具有第三首部和第三体部的第三可替换单元,第三首部包括第三标识数据;
一个分功能组层,它包括具有第四首部和第四体部的第四可替换单元,第四首部包括第四标识数据;
一个操作码组层,它包括具有第五首部和第五体部的第五可替换单元,第五首部包括第五标识数据;
第一体部包括第二标识数据,第二体部包括第三标识数据,第三体部包括第四标识数据,第四体部包括第五标识数据,从而使任何一个可替换单元以多层方式与较下层的任一可替换单元链接。
8、编制具有至少一个主功能与至少一个分功能的程序包的方法,其特点是包括以下各步,
建立具有执行所述分功能所需的操作码或数据的至少一个第五层可替换单元;
为所述分功能建立至少一个第四层可替换单元;
将所述第四层可替换单元与所述第五层可替换单元相联;
为所述主功能建立至少一个第三层可替换单元;
将所述第三层可替换单元与所述第四层可替换单元相联;
建立第二层可替换单元;
将所述第二层可替换单元与所述第三层可替换单元相联。
9、编制应用程序包的方法,其特点是包括以下各步:
选择具有第一组主功能与第一组分功能的第一程序包,
选择具有第二组主功能与第二组分功能的第二程序包,
将所述第一程序包与所述第二程序包合并,选择一些第一组主功能和分功能以及一些第二组主功能和分功能装入应用程序包。
10、权利要求9的方法,其特点是包括以下各步:
第一程序包的第二层可替换单件与至少一个第三层可替换单元相联,第三层可替换单元与至少一个第四层可替换单元相联,第四层可替换单元又与至少一个第五层可替换单元相联,所述第三层可替换单元对应于所述第一程序包的一个主功能,所述第四层可替换单元对应于所述第一程序包的一个分功能,所述第五层可替换单元包含执行所述第一程序包中所述分功能所需的操作码或数据;
第二程序包的第二层可替换单元与至少一个第三层可替换单元相联,第三层可替换单元与至少一个第四层可替换单元相联,第四层可替换单元与至少一个第五层可替换单元相联,所述第三层可替换单元对应于所述第二程序包的一个主功能,所述第四层可替换单元对应于所述第二程序包的一个分功能,所述第五层可替换单元包含执行所述第二程序包中所述分功能所述的操作码或数据。
11、权利要求10的方法,特征在于:
建立第一层可替换单元;
将所述第一层可替换单元与所述第一程序包的所述第二层可替换单元以及所述第二程序包的所述第二层可替换单元相联。
CN88107805A 1987-11-18 1988-11-14 软件管理结构 Expired CN1013619B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US122,293 1987-11-18
US07/122,293 US5237688A (en) 1987-11-18 1987-11-18 Software packaging structure having hierarchical replaceable units

Publications (2)

Publication Number Publication Date
CN1035375A CN1035375A (zh) 1989-09-06
CN1013619B true CN1013619B (zh) 1991-08-21

Family

ID=22401844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN88107805A Expired CN1013619B (zh) 1987-11-18 1988-11-14 软件管理结构

Country Status (9)

Country Link
US (2) US5237688A (zh)
EP (1) EP0317477B1 (zh)
JP (1) JP2531763B2 (zh)
KR (1) KR940002235B1 (zh)
CN (1) CN1013619B (zh)
AU (1) AU622628B2 (zh)
BR (1) BR8806033A (zh)
CA (1) CA1304515C (zh)
DE (1) DE3855475T2 (zh)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03129402A (ja) * 1989-07-10 1991-06-03 Mitsubishi Electric Corp プログラマブルコントローラのプログラム作成方法およびプログラミング装置
DE69030535T2 (de) * 1989-07-10 1997-09-18 Mitsubishi Electric Corp Verfahren und Vorrichtung zur Programmierung eines programmierbaren Steuergerätes
US5663757A (en) * 1989-07-14 1997-09-02 Morales; Fernando Software controlled multi-mode interactive TV systems
US5349674A (en) * 1990-08-17 1994-09-20 International Business Machines Corp. Automated enrollment of a computer system into a service network of computer systems
US20020073246A1 (en) * 1998-06-29 2002-06-13 Stephen F.B. Pickett Code server
US5649204A (en) * 1991-08-22 1997-07-15 Rec Software, Inc. Method and apparatus for consolidating software module linkage information used for starting a multi-module program
JPH06332680A (ja) * 1993-05-21 1994-12-02 Tadao Shogetsu プログラム自動生成装置
WO1995017714A1 (en) * 1993-12-21 1995-06-29 Taligent, Inc. Automatic hardware configuration
JPH07306778A (ja) * 1994-05-16 1995-11-21 Fujitsu Ltd ソフトウェアの分散開発環境における開発管理方式
US5745766A (en) * 1994-09-19 1998-04-28 International Business Machines Corporation PC product registration and tracking
FI103155B (fi) 1995-10-11 1999-04-30 Nokia Telecommunications Oy Menetelmä tietokoneohjattujen palvelujen tuottamiseksi
US6516466B1 (en) 1996-05-02 2003-02-04 Vincent C. Jackson Method and apparatus for portable digital entertainment system
US5889990A (en) * 1996-11-05 1999-03-30 Sun Microsystems, Inc. Information appliance software architecture with replaceable service module providing abstraction function between system library and platform specific OS
US6199196B1 (en) * 1998-03-20 2001-03-06 Sun Microsystems, Inc. Methods and apparatus for linking a program for remote execution
US6493870B1 (en) * 1998-03-20 2002-12-10 Sun Microsystems, Inc. Methods and apparatus for packaging a program for remote execution
US6320600B1 (en) 1998-12-15 2001-11-20 Cornell Research Foundation, Inc. Web-based video-editing method and system using a high-performance multimedia software library
JP3655152B2 (ja) * 1999-11-29 2005-06-02 富士通株式会社 ソフトウェア編集装置及び記憶媒体
US7043641B1 (en) 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
CA2402389A1 (en) 2000-03-08 2002-09-19 Shuffle Master, Inc. Computerized gaming system, method and apparatus
US7988559B2 (en) 2001-03-08 2011-08-02 Igt Computerized gaming system, method and apparatus
WO2002073501A1 (en) * 2001-03-08 2002-09-19 Shuffle Master, Inc. Computerized gaming system, method and apparatus
US7203841B2 (en) * 2001-03-08 2007-04-10 Igt Encryption in a secure computerized gaming system
JP2002278754A (ja) * 2001-03-15 2002-09-27 Toshiba Corp ソフトウェア部品ライブラリ管理システム、その方法およびソフトウェア部品ライブラリ管理プログラム
US7618317B2 (en) 2001-09-10 2009-11-17 Jackson Mark D Method for developing gaming programs compatible with a computerized gaming operating system and apparatus
US7931533B2 (en) 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US6902481B2 (en) 2001-09-28 2005-06-07 Igt Decoupling of the graphical presentation of a game from the presentation logic
US8708828B2 (en) 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
WO2003045519A1 (en) 2001-11-26 2003-06-05 Igt Pass-through live validation device and method
US7177793B2 (en) * 2002-01-14 2007-02-13 International Business Machines Corporation System and method for managing translatable strings displayed on console interfaces
US7240326B2 (en) * 2002-01-14 2007-07-03 International Business Machines Corporation System and method for obtaining display names from management models
US7191404B2 (en) * 2002-01-14 2007-03-13 International Business Machines Corporation System and method for mapping management objects to console neutral user interface
US7065744B2 (en) * 2002-01-14 2006-06-20 International Business Machines Corporation System and method for converting management models to specific console interfaces
US20030135661A1 (en) * 2002-01-14 2003-07-17 International Business Machines Corporation System and method for packaging and installing management models with specific console interfaces
EP1398948B1 (en) 2002-09-13 2013-11-06 Ricoh Company, Ltd. Image forming apparatus, methods used therein and a computer readable storage medium
NL1024464C2 (nl) * 2003-10-06 2005-04-07 J A A A Doggen Beheer B V Werkwijze, ontwerpprogramma en uitvoeringsprogramma voor het samenstellen en uitvoeren van een computerapplicatie, alsmede gegevensdrager voorzien van ontwerpprogramma en gegevensdrager voorzien van uitvoeringsprogramma.
US20050234827A1 (en) * 2004-04-14 2005-10-20 Rudowsky Michael J System for processing executable applications to be suitable for distribution
US7975256B2 (en) * 2004-06-30 2011-07-05 International Business Machines Corporation Optimizing application performance through data mining
US7493596B2 (en) * 2004-06-30 2009-02-17 International Business Machines Corporation Method, system and program product for determining java software code plagiarism and infringement
DE602004014622D1 (de) * 2004-10-27 2008-08-07 Sap Ag Rechnersystem und Verfahren zum Bewirken von Veränderungen in einer Softwaresystemlandschaft
ATE402438T1 (de) * 2004-10-27 2008-08-15 Sap Ag Rechnersystem und verfahren zum bewirken von softwarewartung in einer softwaresystemlandschaft
DE602004006630T2 (de) * 2004-10-27 2008-01-17 Sap Ag Verfahren zur Durchführung eines Softwaredienstes in einer Systemlandschaft
EP1653317A1 (en) * 2004-10-27 2006-05-03 Sap Ag Method and system for setting change options of software systems
EP1653349B1 (en) * 2004-10-27 2008-07-09 Sap Ag Method and system for generating a transport track through a software system landscape
ATE410729T1 (de) 2004-10-27 2008-10-15 Sap Ag Rechnersystem und verfahren zum bewirken eines einleitenden softwaredienstes in einem produktiven system einer softwaresystemlandschaft
EP1653348A1 (en) * 2004-10-27 2006-05-03 Sap Ag Method for tracking transport requests and computer system with trackable transport requests
US20070143228A1 (en) * 2005-12-15 2007-06-21 Microsoft Corporation Licensing matrix
US7921059B2 (en) * 2005-12-15 2011-04-05 Microsoft Corporation Licensing upsell
US7949998B2 (en) * 2007-04-20 2011-05-24 Microsoft Corporation Programming framework for closed systems
US8645939B2 (en) * 2007-12-04 2014-02-04 Oracle International Corporation Use of aliasing in an installer
US9477462B2 (en) * 2008-01-16 2016-10-25 Oracle International Corporation System and method for software product versioning packaging, distribution, and patching
US8650530B2 (en) * 2008-06-04 2014-02-11 Microsoft Corporation Data center programming and application distribution interface
US9772832B2 (en) 2012-01-20 2017-09-26 S-Printing Solution Co., Ltd. Computing system with support for ecosystem mechanism and method of operation thereof
US9235491B2 (en) 2012-09-28 2016-01-12 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9128792B2 (en) 2012-09-28 2015-09-08 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US9317269B2 (en) 2012-09-28 2016-04-19 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
US8949824B2 (en) 2012-09-28 2015-02-03 Wal-Mart Stores, Inc. Systems and methods for installing, managing, and provisioning applications
CN114564369B (zh) * 2022-04-28 2022-08-02 云账户技术(天津)有限公司 应用程序的异常监测方法、装置、电子设备及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4024504A (en) * 1973-12-21 1977-05-17 Burroughs Corporation Firmware loader for load time binding
US4025906A (en) * 1975-12-22 1977-05-24 Honeywell Information Systems, Inc. Apparatus for identifying the type of devices coupled to a data processing system controller
US4468732A (en) * 1975-12-31 1984-08-28 International Business Machines Corporation Automated logical file design system with reduced data base redundancy
US4014005A (en) * 1976-01-05 1977-03-22 International Business Machines Corporation Configuration and control unit for a heterogeneous multi-system
JPS53124943A (en) * 1977-04-08 1978-10-31 Agency Of Ind Science & Technol Composite information processor
US4468728A (en) * 1981-06-25 1984-08-28 At&T Bell Laboratories Data structure and search method for a data base management system
US4633392A (en) * 1982-04-05 1986-12-30 Texas Instruments Incorporated Self-configuring digital processor system with logical arbiter
US4611298A (en) * 1983-06-03 1986-09-09 Harding And Harris Behavioral Research, Inc. Information storage and retrieval system and method
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4622633A (en) * 1983-12-06 1986-11-11 Tri Sigma Corporation Object building method for self configuring computer network
US4595981A (en) * 1984-03-05 1986-06-17 At&T Bell Laboratories Method of testing interfaces between computer program modules
JPS60204038A (ja) * 1984-03-28 1985-10-15 Hitachi Ltd プログラム間における変数の有効範囲変更制御方式
US4656583A (en) * 1984-08-13 1987-04-07 International Business Machines Corporation Method for improving global common subexpression elimination and code motion in an optimizing compiler
US4719564A (en) * 1984-12-10 1988-01-12 Nec Corportion Interpreter linkage system for linking extension interpreters to a basic interpreter
US4791550A (en) * 1985-02-13 1988-12-13 Rational Higher order language-directed computer
US4694396A (en) * 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system
US4751635A (en) * 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system

Also Published As

Publication number Publication date
AU622628B2 (en) 1992-04-16
DE3855475T2 (de) 1997-02-06
BR8806033A (pt) 1989-08-08
JP2531763B2 (ja) 1996-09-04
US5237688A (en) 1993-08-17
EP0317477A2 (en) 1989-05-24
DE3855475D1 (de) 1996-09-19
EP0317477B1 (en) 1996-08-14
CN1035375A (zh) 1989-09-06
AU2431888A (en) 1989-05-18
KR890008675A (ko) 1989-07-12
EP0317477A3 (en) 1991-12-04
JPH01161531A (ja) 1989-06-26
CA1304515C (en) 1992-06-30
KR940002235B1 (ko) 1994-03-19
US5553290A (en) 1996-09-03

Similar Documents

Publication Publication Date Title
CN1013619B (zh) 软件管理结构
US6052525A (en) Method of error handling in a framework
US7043408B2 (en) Computer-aided design neutral graphical data interface
WO2003107578A2 (en) Method and apparatus for creating an adaptive application
CN106371840A (zh) 基于众包的软件开发方法及装置
CN101361042A (zh) 用于管理分层相关的软件组件的系统和方法
Lombardi Incremental computation: The preliminary design of a programming system which allows for incremental data assimilation in open-ended man-computer information systems
EP0841612A2 (en) Framework for software development
Barclay et al. The Teallach tool: using models for flexible user interface design
EP0897149B1 (en) Framework for business applications providing financial integration
Blum et al. Implementing health care information systems
Wallace Constraint programming
Lawlis Guidelines for choosing a computer language: Support for the visionary organization
Schröpfer et al. A Framework for Projectional Multi-variant Model Editors.
Victor An Analysis of an Affirmative Defense for Reverse Engineering Within A System of Legal Protection for Computer Software
Hesse et al. Highlights of the SAMMOA framework for object oriented application modelling
Weiler Modelling architectural variability for software product lines
PT92065A (pt) Sistema de gestao de espacos incorporando ambiente operativo de software
Heller et al. Complete Java 2 certification study guide
CA2144483A1 (en) Methods and apparatus for reverse engineering a program and generating an object-oriented redesign
Malan et al. Lessons from the experiences of leading-edge object technology projects in Hewlett-Packard
Mantz et al. Customizing model migrations by rule schemes
EP0897148A1 (en) Method of error handling in a framework
Livesey Experience with Prototyping in a Multi National Organization
Jasser et al. Reusing security solutions: a repository for architectural decision support

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C13 Decision
GR02 Examined patent application
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee