软件工程术语 - “不一致”和“不完整”的含义是什么

时间:2010-01-24 00:21:30

标签: terminology methodology

在软件设计方面,“不一致”和“不完整”究竟意味着什么?

E.g。 - 创建规范

在创建规范时,软件工程的正式方法的使用被称为与其他不太正式的方法(如面向对象设计)相比,“不一致”和“不完整”。

7 个答案:

答案 0 :(得分:4)

问题标题表示软件eng。但是机构指定了软件设计。这两个术语不是等同的。

关于不一致和不完整,这些适用的领域很多。仅举几例:

不完全性:

  • 代码是什么使它不完善或语法完整,所以不可编译,可解释,可执行
  • 实施 - 算法可能不完整,无法正确处理可能的情况
  • 功能 - 软件不包括客户订购或计划在团队中的所有功能

不一致

  • 约定和编码风格
  • 实现设计的
  • - 以不一致的方式设计的函数,类和算法的接口(即向量的排序期望向量传递,列表的排序接受两个迭代器)
  • 在交互方面设计用户界面 - 在一个对话框用户应该按ENTER接受但在另一个对话框上显示此操作的OK按钮
  • 图形用户界面的外观和感觉 - 各种窗口有完全不同的外观;或命令行界面 - 一个选项以-v值的形式给出,另一个选项以-v = value
  • 的形式给出
  • 许可 - 假设Visual Studio产品在BSD上获得许可,但在GPL上使用.NET Framework: - )

答案 1 :(得分:3)

不一致性和不完整性都是来自形式逻辑的最初术语,它们用于描述逻辑系统。

完整定义取决于确切的上下文,但inconsistency通常意味着“对于某些X,你可以证明X和!X”,而incompleteness意味着“对于某些X” ,你无法证明X,你无法证明!X“。

因此,对于规范,我理解“不一致”意味着“无法实现,因为它在某种程度上是自相矛盾的”,而“不完整”意味着“未指定” - 对于某些输入,输出没有明确定义“。

答案 2 :(得分:1)

在数据库系统中,一致的事务是在执行期间不违反任何完整性约束的事务。如果事务使数据库处于非法状态,则会中止该事务并报告错误。

在算法中,完整性的概念是指算法找到解决方案的能力(如果存在),如果不存在,则报告无法解决方案。

在计算复杂性理论中,如果P在C中,则在给定类型的减少下,对于复杂度等级C,问题P是完整的,并且C中的每个问题都使用该减少减少到P.例如,NP-complete类中的每个问题对于NP类都是完整的,在多项式时间下,多次减少。

在软件测试中,完整性的目的是调用图(软件项之间)和控制图(每个软件项内)的功能验证。 完整性的概念可以在知识库理论中找到。

你可以继续这样的定义...也许这个问题不那么模糊了?

如果我有一个糟糕的一天,我会链接到“Goedels不完备性定理”,因为它肯定会出现在主题上;)

答案 3 :(得分:1)

在正式系统的背景下,一致性和完整性(及其各自的否定)的一个含义如下。粗略地说,如果系统不可能从中获得矛盾,那么系统就是一致的。如果可以生成有关底层模型的所有事实,则系统是完整的。理想的做法是提出一套合理的公理,这些公理能够“捕捉”所有关于某些特定领域的事实。

答案 4 :(得分:0)

它们可能意味着很多东西,我在这里举几个例子:

不一致性:

  • 拥有一个由几个类继承但具有不一致/冲突实现的抽象类
  • 在几个类似的实现/模型上使用不同的设计模式

不完全性:

  • 没有全面的异常处理,只实现了明显的异常处理
  • 不涵盖用户所需功能/功能的全部范围

列表继续......

答案 5 :(得分:0)

基于上下文, Formal Methods 可能是指用于证明程序正确性的数学技术。在这种情况下,使用数学证明可以确保规范不一致(没有逻辑矛盾)或incomplete(有规范有效性的正式证明)。

答案 6 :(得分:0)

在您提供的示例的上下文中,它们仅仅意味着强制执行正式流程 - 具有端到端文档化方法,方法,可交付成果,定义角色和职责的流程将产生比针对同一问题的临时方法更好的产品。换句话说,描述在该项目的整个生命周期中使用一致并应用的完整软件工程过程的正式系统将比不提供此支持框架的系统产生更好的结果。

和建房子一样。是的,你可以跑出去开始钉板,你可以建造一些你可以居住的东西,但如果你学习建筑,建筑材料和技术,定义工作流程等,你最终会得到一个更好的房子。然而,甚至比这更好的是,你将能够以更高的成功概率再次建造同一所房子或类似房屋。