在软件设计方面,“不一致”和“不完整”究竟意味着什么?
E.g。 - 创建规范
在创建规范时,软件工程的正式方法的使用被称为与其他不太正式的方法(如面向对象设计)相比,“不一致”和“不完整”。
答案 0 :(得分:4)
问题标题表示软件eng。但是机构指定了软件设计。这两个术语不是等同的。
关于不一致和不完整,这些适用的领域很多。仅举几例:
不完全性:
不一致
答案 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)
在您提供的示例的上下文中,它们仅仅意味着强制执行正式流程 - 具有端到端文档化方法,方法,可交付成果,定义角色和职责的流程将产生比针对同一问题的临时方法更好的产品。换句话说,描述在该项目的整个生命周期中使用一致并应用的完整软件工程过程的正式系统将比不提供此支持框架的系统产生更好的结果。
和建房子一样。是的,你可以跑出去开始钉板,你可以建造一些你可以居住的东西,但如果你学习建筑,建筑材料和技术,定义工作流程等,你最终会得到一个更好的房子。然而,甚至比这更好的是,你将能够以更高的成功概率再次建造同一所房子或类似房屋。