博文

布尔数学体系(2008-01-28 23:01:00)

摘要:逻辑是探索、阐述和确立有效推理原则的学科,最早由古希腊学者亚里士多德创建的。用数学的方法研究关于推理、证明等问题的学科就叫做数理逻辑。也叫做符号逻辑。数理逻辑的产生利用计算的方法来代替人们思维中的逻辑推理过程,这种想法早在十七世纪就有人提出过。莱布尼茨就曾经射向果能不能创造一种“通用的科学语言”,可以把推理过程象数学一样利用公式来进行计算,从而得出正确的结论。由于当时的社会条件,他的想法并没有实现。但是它的思想却是现代数理逻辑部分内容的萌芽,从这个意义上讲,莱布尼茨的思想可以说是数理逻辑的先驱。1847年,英国数学家布尔发表了《逻辑的数学分析》,建立了“布尔代数”,并创造一套符号系统,利用符号来表示逻辑中的各种概念。布尔建立了一系列的运算法则,利用代数的方法研究逻辑问题,初步奠定了数理逻辑的基础。十九世纪末二十世纪初,数理逻辑有了比较大的发展,1884年,德国数学家弗雷格出版了《数论的基础》一书,在书中引入量词的符号,使得数理逻辑的符号系统更加完备。对建立这门学科做出贡献的,还有美国人皮尔斯,他也在著作中引入了逻辑符号。从而使现代数理逻辑最基本的理论基础逐步形成,成为一门独立的学科。数理逻辑的内容数理逻辑包括哪些内容呢?这里我们先介绍它的两个最基本的也是最重要的组成部分,就是“命题演算”和“谓词演算”。命题演算是研究关于命题如何通过一些逻辑连接词构成更复杂的命题以及逻辑推理的方法。命题是指具有具体意义的又能判断它是真还是假的句子。如果我们把命题看作运算的对象,如同代数中的数字、字母或代数式,而把逻辑连接词看作运算符号,就象代数中的“加、减、乘、除”那样,那么由简单命题组成复和命题的过程,就可以当作逻辑运算的过程,也就是命题的演算。这样的逻辑运算也同代数运算一样具有一定的性质,满足一定的运算规律。例如满足交换律、结合律、分配律,同时也满足逻辑上的同一律、吸收律、双否定律、狄摩根定律、三段论定律等等。利用这些定律,我们可以进行逻辑推理,可以简化复和命题,可以推证两个复合命题是不是等价,也就是它们的真值表是不是完全相同等等。命题演算的一个具体模型就是逻辑代数。逻辑代数也叫做开关代数,它的基本运算是逻辑加、逻辑乘和逻辑费,也就是命题演算中的“或”、“与”、“非”,运算对象只有两个数 0和 1,相当于命题演算中的“真”和“假”。逻辑代数的运算特点如同电路分析中的开和关、高电位......

阅读全文(2090) | 评论:2

软件开发(2008-01-20 19:06:00)

摘要:软件开发的内容是:需求、设计、编程和测试! 需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求,你经常要和客户、项目经理等交流。 设计:编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照这个来做,否则可能会一团糟。 编程:如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。 测试:目的是让你知道,什么时候算是完成了。如果你聪明,你就应该先写测试,这样可以及时知道你是否真地完成了。否则,你经常会不知道,到底有哪些功能是真正完成了,离预期目标还差多远。 软件开发中,客户和开发人员都有自己的基本权利和义务。客户:  定义每个用户需求的商业优先级;  制订总体计划,包括用多少投资、经过多长时间、达到什么目的;  在项目开发过程中的每个工作周,都能让投资获得最大的收益;  通过重复运行你所指定的功能测试,准确地掌握项目进展情况;  能随时改变需求、功能或优先级,同时避免昂贵的再投资;能够根据各种变化及时调整项目计划;  能够随时取消项目;项目取消时,以前的开发工作不是一堆垃圾,已开发完的功能是合乎要求的,正在进行或未完成的的工作则应该是不难接手的。 开发人员:  知道要做什么,以及要优先做什么;  工作有效率;  有问题或困难时,能得到客户、同事、上级的回答或帮助;  对工作做评估,并根据周围情况的变化及时重新评估;  积极承担工作,而不是消极接受分配;  一周40小时工作制,不加班。 软件开发过程可以包括以下6个阶段: 计划       对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计。制订完成开发任务的实施计划。 分析       软件需求分析就是回答做什么的问题。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和......

阅读全文(1588) | 评论:1

需求(2008-01-20 19:05:00)

摘要: 需求的定义是为“系统必须符合的条件或具备的功能”。       需求的种类各种各样。一种分类的方法叫作 FURPS+ 模型 [GRA92],它使用首字母缩写词 FURPS 来描述具有以下子类别的主要需求类别。       功能性、       可用性、       可靠性、       性能和       可支持性       FURPS+ 中的“+”可提醒您还要包括如下需求:       设计约束、       实施需求、       接口需求和       物理需求。       功能性需求规定了系统无需考虑物理约束而必须能够执行的动作。用例模型和用例中最能够说明这些需求。功能性需求就这样规定了系统的输入输出行为。       功能性需求之外的需求,如下所列,有时称为非功能性需求。许多需求是非功能性的,它们仅仅说明系统或系统环境的属性。有些需求在用例中有所记录,未能记录的可在补充规约中予以规定。非功能性需求解决的是如下所列的问题。       对于软件需求的完整定义,可以将用例和补充规约结合到一起以定义某一“特性”或其他子系统分组的软件需求规约 (SRS)。 功能性       功能性需求包括:       特性集、       功能和     &n......

阅读全文(1821) | 评论:0