首页 . 理学 . 计算机科学技术 . 软件工程 . 软件工程理论与方法 . 软件工程方法

基于知识的软件工程

/knowledge-based software engineering; KBSE/
条目作者金芝

金芝

最后更新 2024-12-05
浏览 168
最后更新 2024-12-05
浏览 168
0 意见反馈 条目引用

一种软件工程方法。在软件开发过程中采用知识工程手段,将软件需求逐步转化为软件实现的一种软件工程方法。通常以知识化的需求表达为起点,以知识库为基础,以知识的形式化表达方法为主要技术手段。

英文名称
knowledge-based software engineering; KBSE
所属学科
计算机科学技术

任何领域应用软件都含有大量各领域知识,这决定了在开发这类软件时领域专家和软件工程师必须很好合作。由知识背景不同而造成的文化壁垒使这种合作不容易成功。如果能让软件工程师和领域专家各司其职,软件工程师只把软件工具做好,总结和开发领域知识的事则交给领域专家去做,然后用适当的技术把两者结合起来,可以达到扬长避短的目的。

基于知识的软件工程就是以这个为出发点而发展起来的一个研究领域,它提出要将领域知识和软件开发知识从软件开发过程中独立出来,并扩展计算机辅助软件工程工具使之成为基于知识的计算机辅助软件工程工具。其中,领域知识用于解决开发过程中涉及的领域相关问题,软件开发知识用于解决涉及软件设计、编码和测试等的问题,从而在软件开发过程中实现知识的重用和基于知识的决策。这一方面有助于提高领域软件开发的效率,也有助于提升领域软件开发的规范性和质量。

在基于知识的软件工程中,软件开发的不同阶段所依赖的知识有所不同,比如,需求阶段主要依赖领域知识和需求工程方法方面的知识,设计阶段需要的是领域软件架构和软件设计决策等知识,实现阶段则主要依赖关于程序设计和编码的知识,等等。其中,既有显式的描述性知识,如领域本体、领域概念模型和领域术语集等,也有一些是类似通过大量代码训练出来的模型所表达的隐性知识。不同的知识有不同应用场景和利用方式。

基于知识的软件工程带来的好处还为解决软件工程中的“演化”难题提供了一个可行的思路。有些软件,如管理信息系统,是不可能不演化的。因为企业情形随时在变,因此它的管理信息系统也得跟着变。任你需求说明写得再好也不能解决“需求变化”的问题。KBSE将领域知识和软件本身相互分离,它所能提供的基于知识推理和问题求解完成软件构造的机制,把开发和修改软件的钥匙都交给了领域用户,他们不必为经常需要修改软件而去召唤软件工程师,在领域特定语言的支持下,领域用户可以随时根据变化了的企业情形自己修改领域需求规格说明,并让系统构造出反映变化后情形的领域软件。

  • LU R, JIN Z.Domain Modeling based Software Engineering: A Formal Approach.Boston:Kluwer Academic Publishers,2000.
  • 陆汝钤,金芝.从基于知识的软件工程到基于知件的软件工程.中国科学(E辑),2008,38(6):843-862.

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!