便于组件选择的软件开发系统技术方案

技术编号:2878950 阅读:244 留言:0更新日期:2012-04-11 18:40
一个软件开发系统从源代码单元的核心库中开发一个产品,该核心库被归类到具有一个或者多个特征的组件中。配置器基于一个指定的平台类型和源代码单元开发配置状态数据。一个图形用户界面依据该配置状态数据显示该产品的可视化和逻辑表示,它包括任何未解决的从属物的可视指示。一个产品生成例程然后依据该配置状态数据从源代码单元中生成该产品。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术的
技术介绍
1.专利
/概述本专利技术通常涉及用于开发和集成一个软件产品的方法和系统,它通过定制和组合源代码库并且集成它们以形成该软件产品。更特别和说明性地,本专利技术涉及一种用于为一台个人计算机(PC)保持和重复使用一个基本输入/输出系统(Basic Input/Output System,BIOS)的核心组件的软件系统,它简化了BIOS配置,并且为可扩展而且可维护的核心库提供允许快速产品开发、增强、和修改的结构。2.背景及技术现状一个BIOS产品是当一台PC被启动或者“引导”时执行的一段软件代码,而且稍后当该PC运行时被调用以提供各种服务。一个用于BIOS产品的开发系统必须支持所有可以被安装在任何类型PC上的外围设备,这些PC可以从一种低端的基本PC到一种最新的、高度定制的、高端服务器或者便携式产品。在下面将描述构造一个BIOS的各个方面,以说明应当提供用于保持和使用一个核心BIOS软件组件库的软件系统的性能。希望为一台特定机器构造一个BIOS的一个用户从这样一个组件库中选取核心BIOS软件组件以支持安装在那台机器上的外围设备。每个软件组件都可以包含一个或多个特征,而且可以通过为来自于该可用特征集合的特征增加或者删除代码、以及通过为这个代码指定可选参数(“选项”)值,来进行配置。用户可能希望为由该用户定制制造的、以及不能从该BIOS供应厂商得到的外围设备增加特定的BIOS代码。可配置的特征被实现为在核心BIOS组件库中的单独代码,在该代码中具有通过名称以及通过目录/子目录或者由库名寻址其它代码组件的外部引用和定义,以便只有当它被正确地配置和寻址时用于每个特征的代码能够被链接到最终产品里。现有技术是将用于一个调用、命名、以及寻址的未被选择的可选特征代码替换为一个仅仅返回到它的调用者的存根例程。另一个可能性是间接地通过一个指针引用该可选特征,如果该特征被删除了,则该指针能够被设置为空;然而,这需要每个调用者检验该指针是否有效。理想地,当该组件被构造时应当从该代码中删除调用一个可选特征的代码,以实现节省由该程序占用的执行时间和存储容量。现有技术将一个软件组件的可选参数(在下文中被称作“选项”)定义为显现常数,例如“BUFFER SIZE EQU 256”。当定义一个显现常数时该显现常数的名称(BUFFER SIZE)和它表示的值(256)是相关联的。例如,当源代码被编译时,每个对一个显现常数名称的引用,诸如一个数组的长度或者一个变量值,被替换为相关的常量值。这允许每个选项被赋予一个描述性的名称,并且使得通过改变一个定义来改变在所有被引用位置的选项值成为可能。诸如这样的选项,一般通过手工定义或者修改一个“inc1ude(包含)”文件来进行设置或者调整。然后该“包含”文件通过引用被合并到其它源代码文件里。这容易遗漏一个包含有对一个选项名称引用的文件,或是容易混淆在不同系统组件中具有相同名称的选项。核心BIOS组件库的生产者和销售者需要对在市场中变得可用的新设备快速做出响应。一个行之有效的方法是复制用于一个类似现有设备的代码,并且仅仅在必要处修改它以支持该新设备。原始代码可能已经支持现在也可用于该新设备的几个可配置特征。从另一个核心组件中复制代码导致在同一个库中的两个组件不仅具有相同的特征,而且具有引用它们的相同外部名称。这个非单值性能够在编译和链接时导致进一步的混乱。用户可以销售包括有一种老设备或一种新设备的机器。因此用户可以构造一个既包括一个支持旧设备的旧软件组件又包括一个支持新设备的新组件的BIOS,其中该新组件通过修改该旧组件生成并且具有相同的外部名称。该BIOS将包含附加代码以截取对在旧和新组件中的每个程序的调用。然后用户将为每个所截取的程序增加判定代码以判定在新组件还是在旧组件中的程序应当被调用。这导致一个BIOS包含两个具有相同外部名称的组件以及用于每个所截取调用的判定代码,其中每个所截取的调用必须没有被截取地调用具有相同名称的两个程序中的一个。两个软件组件将不得不被分别地编译和链接以便使得在每个组件中相同的外部名称不会冲突。它们也将不得不和调用它们的判定代码一起被链接。假定旧的组件、和通过修改该旧组件生成并具有相同外部名称的新组件都具有一个名为INIT的初始化特征。如上所述的附加判定代码必须代替该INIT程序被调用,所以它能够确定是在旧的或是新的组件中的INIT程序应当被调用。现有技术要求对INIT的每个调用将间接地通过一个指针表进行,以便使该指针能够变成截取、或是钩住每个这样的调用。在整个BIOS中所有对INIT的调用都将以这样的方式被截取或者钩住。截取这种调用的能力对于调试目的来说是同样重要的。核心BIOS组件库的生产者通过快速地发布该库的新版本,对在市场中变得可用的新设备作出响应。在保持和增强该库的过程中,他们可以修改某些接口以增加功能或者修正程序错误。具有一个现有BIOS的用户将希望包括该新功能和程序错误修正以及最近支持的设备。用户必须检验对已经改变了的现有接口的调用仍然是兼容的,而且快速地识别出现在是不兼容的而且必须被改变的那些接口。现有技术通过匹配参数的数目、每个参数的类型、以及值的范围来验证接口。用于一个特定设备的BIOS代码通常包含当PC启动时所执行的初始化代码,以及当调用时提供服务的支持代码。在该支持代码中可能没有对初始化代码的引用,或者反之亦然,这将导致这两段代码被包含在该BIOS构造之内;然而,该支持代码显然取决于该初始化代码。现有技术需要人工干预以确保这两段代码都被包含在该构造之内。最后为一致性检测源代码模块的传统方式是编译和/或汇编这些分离的源代码文件,以识别和校正所有的错误并且重复这个过程;链接目标代码文件,以识别和校正所有的错误并且重复这两个过程;以及最后,结合这些分别链接的系统单元到一个内链接的映象中,以识别和校正所有的错误,并且重复地和递归地重复所有这三个过程直到不再发现错误为止。尽管那样,也可能从用于在不同源文件集合中表示不同事物的同一名称、在两个非常相似的源文件集合中错误集合的选择、或是不能被编译器和汇编器检测到的版本不相容性中产生不适当的链接。所有这些问题集合起来会使得软件系统的开发和集成比它理想上应当花费的时间更加费时。因此,本专利技术的基本目的是实现一个软件开发系统,它能够在任何汇编、编译、或是链接之前识别和帮助一个人校正上述的错误类型;它允许一个人简单地查看和选择组件、特征、以及变化,而且不考虑相应的源代码被存储在哪里;它允许一个人在全局上指定这个产品是一个“服务器”或者一个“便携式”,并且由此实现完全不同的系统配置;而且,它通过选择几个组件变化中的适当一个、调整并且控制选项的值和范围、根据源代码从属物自动选择所需的系统组件,来解决以上提及的问题。本专利技术的简要概述简要地来说,而且根据这些及其它目的和优点,本专利技术被体现在一个软件开发系统中,该系统为了使用那个库生成软件产品的目的管理一个源代码库。本专利技术从一个源代码文件系统中收集许多信息,其中该文件系统被构造为便于和允许系统设计员支持这个收集。所收集的信息具有各种用处,其中一个是配置正被开发的产品。产品配置包含选择将要被集成到最终产品映象中的源代码库部分。为正生成产品的类型,以及为了满本文档来自技高网...

【技术保护点】
一种用于开发一个最终产品(1106)的软件开发系统(100),包含:用于定义该最终产品(1106)的产品配置数据(2100);包含了源代码单元(1220、1224、1226、1300)的至少一个源代码库(1200),其中这些源代码单 元定义一个或多个包含了接口(1316、1322)以及从属物(1312、1318、1324)的对象(1204、1206、1212、1214);用于定义所述对象(1204、1206、1212、1214)的特性的指令(1502到1532、17 02到1728);从所述产品配置数据(2100)、所述指令(1502到1532、1702到1728)、以及从所述源代码库(1200)中获得的数据(1800)中开发配置状态数据(1900)的一个配置器(700);一个图形用户界面(20 0),用于给出一个表示该最终产品(1106)的配置状态数据(1900)的可视、逻辑表示,遗漏以及选定和取消选定的对象(1204、1206、1212、1214)和选项(1524),所述界面(200)接受命令来调整该最终产品(1106);以及 在所述配置状态数据(1900)的控制下从所述源代码单元(1220、1224、1226、1300)中生成最终产品(1106)的例程(800、1000、1102、3600)。...

【技术特征摘要】
...

【专利技术属性】
技术研发人员:F科亨MA波姆贝特RD卢辛斯基TA路易斯MS桑杜斯基
申请(专利权)人:凤凰技术有限公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1