精华内容
下载资源
问答
  • 逻辑学,哪本书入门合适?
    2020-12-19 09:51:41

    当然是Gensler的Introduction to Logic啦!这本书实在是太良心了。

    1、当今流行的教材是柯匹的《逻辑学导论》和赫尔利的《简明逻辑学导论》,它们有两个缺点:

    (1)过于冗长(都是六七百页),没有耐心的人很难完整读完。

    (2)内容的广度不够。

    而Gensler的这本书只有三百多页,抛弃了很多无谓的技术细节,语言精炼,选材广泛。用更少的话,说更多的东西。

    该书第二版目录如下:1. Introduction

    2. Syllogistic Logic

    3. Meaning and Definitions

    4. Fallacies and Argumentation

    5. Inductive Reasoning

    6. Basic Propositional Logic

    7. Propositional Proofs

    8. Basic Quantificational Logic

    9. Relations and Identity

    10. Basic Modal Logic

    11. Further Modal Systems

    12. Deontic and Imperative Logic

    13. Belief Logic

    14. A Formalized Ethical Theory

    15. Metalogic

    16. History of Logic

    17. Deviant Logics

    18. Philosophy of Logic

    (对于一般的入门者,12章之后是可以不读的。)

    2、英文极其简单,高中水平借用词典即可流畅阅读。

    3、跟书配套有一个软件,叫LogiCola,我没用过,听说挺有帮助的。

    4、PDF在网上能找到。(找不到的人应该趁机学学如何找外文PDF,而不是做伸手党,谢谢。)

    5、这本书在国内挺冷门的,我实在不忍心埋没此书,故有此答案。希望更多的人知道这本书,希望将来出个中译本以飨后人。

    欢迎点赞让更多人知道这本书:)

    更多相关内容
  • 逻辑学导论答案.pdf

    2019-08-01 17:35:24
    逻辑学导论的答案,希望对大家有所帮助,欢迎下载!!!!
  • 逻辑学导论.第11.(美)柯匹;科恩(带目录),逻辑学导论.第11.(美)柯匹;科恩(带目录)
  • 逻辑学导论

    2014-04-08 13:22:07
    逻辑学导论,计算机离散数学的前提辅助课程。本教程字体清晰,内容翔实,对个人逻辑思维能力的培养有比较重要的作用。
  • 此乃逻辑思想深入讲解的书籍,想要编程也要把思想给学好 感谢原作者
  • 简明逻辑学导论10)经典的国外书籍
  • 逻辑学教科书,入门级,适合联系英语
  • 逻辑学导论,简明逻辑学导论(美)帕特里克·赫尔利,美国注明逻辑学专家帕特里克赫尔利
  • 逻辑学导论-第11-高清-2007年3月,分享给所有需要的人!
  • Introduction to Logic Harry Gensler 很经典的逻辑方面的著作,对研究逻辑有兴趣的强烈推荐。 书中有非常详尽的逻辑思维的例子,对训练逻辑思维大有好处。
  • 超星尔雅2017逻辑学导论收集.pdf
  • 2018年超星尔雅逻辑学导论课后题总结[收集].pdf
  • 精品文档 可编辑 1.1 逻辑学是什么 1 单选题逻辑系统的四大定理不包括 A一致性定理 B有效性定理 C可靠性定理 D不完全性定理 我的答案D 得分 25.0 分 2 单选题逻辑主义的代表人物是 A罗素 B希尔伯特 C哥德尔 D...
  • 简明逻辑学

    2018-10-01 10:36:56
    人们直觉上认为,逻辑学独立于一般的哲学分支,与现实生活无涉。这本通俗诙谐的逻辑学普及读物告诉你,这样的想法实在是大错特错。上帝的存在、时间的流逝、概率的计算及决策的制定居然都是逻辑学研究的问题!本书...
  • 要想深入理解机器学习,或者对人工智能...第三章线性回归写的很好,即使是很简单的线性模型,作者提出的几个问题和细细的解释这些问题对人很有启发性,逻辑梳理得很好,也易懂。《统计学习导论:基于R应用》高清中文P...

    要想深入理解机器学习,或者对人工智能的某个领域有所研究,都必须掌握统计学、最优化、矩阵及其应用等知识。

    推荐《统计学习导论:基于R应用》,适合运用统计学习前沿技术分析数据的人士。读起来不费劲,弱化了数学推导过程,注重思维的直观理解和启发。第三章线性回归写的很好,即使是很简单的线性模型,作者提出的几个问题和细细的解释这些问题对人很有启发性,逻辑梳理得很好,也易懂。

    《统计学习导论:基于R应用》高清中文PDF,323页,带书签目录,彩色配图,文字可以复制;高清英文PDF,436页,带书签目录,彩色配图,文字可以复制;配套源代码。

    下载: https://pan.baidu.com/s/1WsGp7_AjT6ogsyfxuvMCGQ   提取码: hid8

    9b9b04fe1b8c

    《最优化理论与算法第2版》高清PDF,476页,带目录,文字可复制。陈宝林 编著。《最优化理论与算法第2版》配套习题解答PDF,225页,带目录。陈宝林 编。《最优化理论与方法》PDF,650页,袁亚湘 著。

    下载: https://pan.baidu.com/s/1OY43i25LoXAEC2tzOFAdgw   提取码: wzfe

    9b9b04fe1b8c

    《最优化理论与算法第2版》包括线性规划单纯形方法、对偶理论、灵敏度分析、运输问题、内点算法、非线性规划KT条件、无约束优化方法、约束优化方法、整数规划和动态规划等内容。含有大量经典的和新近的算法,有比较系统的理论分析,实用性比较强;定理的证明和算法的推导主要以数学分析和线性代数为基础,比较简单易学。

    9b9b04fe1b8c

    学习《矩阵分析与应用第2版》时,会发现总结了大量线性代数的知识,主要是给工科生用的。归纳了不少论文中的解法,是做信号处理的一本很不错的工具书。

    学习参考张贤达编写:《矩阵分析与应用第2版》PDF,带目录,文字可以复制。

    下载: https://pan.baidu.com/s/1CueIJUC3VP9Wap4f0-rbcg  提取码: 4y3r

    9b9b04fe1b8c

    适合于需要矩阵知识比较多系统、全面地介绍矩阵分析的主要理论、具有代表性的方法及一些典型应用。共10章,内容包括矩阵代数基础、特殊矩阵、矩阵微分、梯度分析与最优化、奇异值分析、矩阵方程求解、特征分析、子空间分析与跟踪、投影分析、张量分析。前3章为基础,组成矩阵代数;后7章介绍矩阵分析的主体内容及典型应用。的理科和工科尤其是信息科学与技术学科使用。

    展开全文
  • 本书内容包括知识表示、知识获取、知识应用部分。其中,知识表示主要介绍概念表示、知识表示、知识图谱;知识获取主要介绍搜索技术、群智能算法、机器学习、人工神经网络与深度学习;知识应用涉及计算机视觉、自然...

    相关截图:

    a19baa8315799db7a888b07de97d3903.png

    资料简介:

    本书是中国科协新一代信息技术系列丛书之一。本书内容包括知识表示、知识获取、知识应用三部分。其中,知识表示主要介绍概念表示、知识表示、知识图谱;知识获取主要介绍搜索技术、群智能算法、机器学习、人工神经网络与深度学习;知识应用涉及计算机视觉、自然语言处理、语音处理、专家系统、规划、多智能体系统与智能机器人六部分。力求将人工智能的发展脉络、技术理论、产业成果以翔实的形态展现于人前。除了必要的知识点与宽泛的知识图谱,本书还深入浅出地介绍了有关智能搜索技术、机器学习、神经网络、计算机视觉、语言智能、机器人等在内的不同领域的应用实践成果。本书主要面向大学非计算机类的工科专业的高年级学生与研究生,帮助学生了解人工智能的发展过程与基本知识,熟悉人工智能产业的发展现状与市场需求,培养人工智能应用能力。同时,对于计算机相关专业的学生,本书也可作为人工智能专业课程的先导学习材料。

    资料目录:

    前言  李德毅

    第一章 绪论  001

    11 人工智能的起源和定义 001

    12 人工智能的流派 003

    13 人工智能的进展和发展趋势 009

    第二章 概念表示  012

    21 经典概念理论 012

    22 数理逻辑 013

    23 集合论 017

    24 概念的现代表示理论 020

    第三章 知识表示 023

    31 知识与知识表示的概念 023

    32 产生式表示法 026

    33 框架表示法 029

    34 状态空间表示法 032

    35 本章小结 036

    第四章 知识图谱 038

    41 知识图谱 038

    42 本体知识表示 042

    43 万维网知识表示  043

    44 知识图谱的现状及发展  049

    45 知识图谱的应用示例  055

    46 本章小结  056

    第五章 搜索技术057

    51 图搜索策略  058

    52 盲目搜索  059

    53 启发式搜索  063

    54 博弈搜索  067

    55 本章小结  070

    第六章 群智能算法072

    61 群智能算法产生的背景  072

    62 遗传算法  073

    63 粒子群优化算法及其应用  083

    64 蚁群算法  088

    65 本章小结  092

    第七章 机器学习094

    71 机器学习的发展  095

    72 监督学习  096

    73 无监督学习  101

    74 弱监督学习  104

    75 讨论  108

    76 本章小结  109

    第八章 人工神经网络与深度学习111

    81 神经网络的发展历史  111

    82 神经元与神经网络  112

    83 BP 神经网络及其学习算法  115

    84 卷积神经网络  119

    85 生成对抗网络  126

    86 深度学习的应用  128

    87 本章小结  131

    第九章 专家系统 133

    91 专家系统概述  133

    92 推理方法  135

    93 一个简单的专家系统  136

    94 非确定性推理  142

    95 专家系统工具  146

    96 专家系统的应用  147

    97 专家系统的局限性  148

    98 本章小结  148

    第十章 计算机视觉 150

    101 计算机视觉概述  150

    102 数字图像的类型及机内表示  152

    103 常用计算机视觉模型和关键技术  153

    104 应用实例:人脸识别技术  162

    105 本章小结  164

    第十一章 自然语言处理 166

    111 自然语言处理概述  166

    112 机器翻译  172

    113 自然语言人机交互  177

    114 智能问答  189

    115 本章小结  193

    第十二章 语音处理 195

    121 语音的基本概念 195

    122 语音识别 196

    123 语音合成 202

    •IV•

    124 语音增强 206

    125 语音转换 208

    126 情感语音 210

    127 本章小结 214

    第十三章 规划 216

    131 基本概念 216

    132 经典规划 217

    133 概率规划 221

    134 典型应用 227

    第十四章 多智能体系统229

    141 智能体 229

    142 智能体的具体结构 234

    143 多智能体协商 236

    144 多智能体学习 242

    145 本章小结 244

    第十五章 智能机器人246

    151 概述 247

    152 人工智能技术在机器人中的应用 249

    153 智能机器人发展展望 259

    参考文献262

    展开全文
  • 对机器学习和数据挖掘的最重要发展领域进行了全面的介绍,展现了一个主要由Vladimir Vapnik创立的统计学习理论的全新领域,它以正则化技术的研究成果为...书中条理清晰,逻辑严密,是值得数学家和工程师一读的读物。
  • 《软件工程导论_张海藩

    千次阅读 多人点赞 2020-05-05 11:38:05
    一章 软件工程概论 *软件:是计算机程序、方法、规则、相关的文档以及运行计算机系统时所必需的数据的总和(狭义定义:软件=程序+数据+文档) *软件的特性:软件是复杂的、软件是不可见的、软件是不断变化的和...

    大佬总结的非常好,原文链接:https://www.jianshu.com/p/57db33e8a1a8

    第一章 软件工程概论

    1. *软件:是计算机程序、方法、规则、相关的文档以及运行计算机系统时所必需的数据的总和(狭义定义:软件=程序+数据+文档)
    2. *软件的特性:软件是复杂的、软件是不可见的、软件是不断变化的和软件质量难以稳定。
    3. *软件的质量特性:功能性、可靠性、易用性、效率、维护性、可移植性。
    4. 软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
    5. 软件危机的主要表现:
    • 对软件开发成本和进度估计常常很不准确
    • 用户对"已完成"的系统不满意的现象经常发生
    • 软件产品的质量往往靠不住
    • 软件常常是不可维护的
    • 软件成本在计算机系统总成本所占的比例逐年上升
    1. 软件危机产生的主要原因:
    • 软件日益复杂和庞大
    • 软件开发管理困难和复杂
    • 软件开发技术落后
    • 生产方式落后
    • 开发工具落后
    • 软件开发费用不断增加
    1. 软件危机如何解决:既要有技术措施(方法和工具),又要有必要的组织管理措施。
    2. 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
    3. 软件工程以关注软件质量为目标,包括方法、过程、工具、范式四个要素。
    4. 软件工程方法学:把软件生命周期全过程中使用的一整套技术方法的集合成为方法学(也称范型paradigm),包括三个要素:方法,工具和过程.目前使用最广泛的是传统方法学和面向对象方法学
    • 传统方法学(也称生命周期方法学或结构化范型):采用结构化技术(结构化分析,结构化技术,结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件环境来支持结构化技术的运用...略太过了
    • 面向对象方法学:有4个要点;它是一个多次反复迭代的演化的过程;特有的继承性和多态性进一步提高了面向对象软件的可重用性
    1. 软件生命周期

      软件生命周期

    • 问题定义:确定要解决的问题是什么(通过客户的访问调查,系统分析员写出问题的性质,工程目标和工程规模的书面报告,并得到客户的确认)
    • 可行性研究:不是具体解决问题,而是研究问题的范围,探索问题是否值得去解,是否有可行的解决方法
    • 需求分析:准确确定"为了解决这个问题,目标系统必须做什么",主要是确定目标系统必须具备哪些功能
    • 总体设计:设计出目标系统的多种方案;设计程序的体系结构
    • 详细设计:详细的设计每个模块,确定要实现模块功能所需要的算法和数据结构
    • 编码和单元测试:写出正确的容易理解,容易维护的程序模块
    • 综合测试:通过各种类型的测试(及相应的的调试)使软件达到预定的要求
    • 软件维护:通过各种必要的维护活动使系统持久地满足用户的需要
    1. 软件过程:指为了获得高质量软件所需完成一系列任务框架,它规定了完成各项任务的工作步骤;通常使用生命周期模型简洁地描述软件过程
    2. 生命周期模型:也称过程模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序
    3. 瀑布模型

    ①瀑布模型特点:

    • 阶段间具有顺序性和依赖性:必须等前一阶段的工作完成后之后,才能开始后一段的工作;前一段的输出文档就是后一阶段的输入文档
    • 推迟实现的观点:在编码之前设置了系统分析和系统设计的各个阶段,分析与设计阶段的基本任务规定,这两个阶段主要考虑目标系统的逻辑模型,不涉及物理实现
    • 质量保证的观点:每个阶段必须完成规定的文档;每个阶段结束前都要对完成的文档进行评审,以便尽早发现问题

    ②瀑布模型适用:在开发的早期阶段软件需求被完整确定

    ③瀑布模型的优点: 可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证

    ④瀑布模型缺点:瀑布模型是由文档驱动;最终产品不能真正满足客户的需求

    1. 快速原型模型:首先建立一个反映用户主要需求的原型系统,让用户体验,之后提出意见,随之进行修改,再让用户体验...直至用户完全满意,据此写出规格说明文档
    2. 增量模型:也称渐增模型,融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。
    • 增量模型优点:人员分配灵活,刚开始不用投入大量人力资源;可先发布部分功能给客户,对客户起到镇静剂的作用;增量能够有计划地管理技术风险。
    • 增量模型缺点:需要软件具备开放式的体系结构;容易退化为边做边改模型,从而使软件过程的控制失去整体性;增加系统内部的耦合复杂性。
    1. 螺旋模型:把它看作在每个阶段之前增加了风险分析的快速原型模型。
    2. *螺旋模型与增量模型的区别:(1)两者迭代层级不同:增量模型在活动级迭代;螺旋模型在过程级迭代;(2)两者需求分析的时间不同:增量模型常常是先做总体需求分析和设计,然后在编码和测试中逐个增量开发;螺旋模型在开发周期内采用简化瀑布模型或快速模型;(3)两者提交软件的方式不同:增量开发在上次增量的基础上提交新的一部分软件;螺旋模型每次迭代都提交一个新的完整的软件版本;(4)两者减少风险的方式不同:增量模型使用未成熟技术和经常的客户反馈等方法减少风险;螺旋模型中直接加进风险识别,风险分析、风险控制,计划性较强.
    3. 喷泉模型:典型的具有面向对象软件开发过程迭代和无缝的特性
    4. Rational 统一过程(Rational Unified Process Rational,RUP): RUP核心:RUP核心是解决可操作性问题,帮助开发人员尽可能少地依赖那些“不可描述的经验”。RUP特点:用例驱动;以体系结构为中心(高内聚低耦合);增量和迭代开发。
    5. RUP最佳实践
    • 迭代式开发:允许每次迭代过程中需求都可以有变化;采用可验证的方法来减少风险
    • 管理需求:RUP采用用例分析来捕获需求,并由它们驱动设计和实现
    • 使用基于构件的体系架构:使用现有的或新开发的构件定义体系结构的系统化方法,从而降低软件开发的复杂性,提高软件重用率
    • 可视化建模:建立软件系统的可视化模型,提高管理复杂软件的能力,如UML
    • 验证软件质量:软件质量评估贯穿整个开发过程,由全体成员参与
    • 控制软件的变更:RUP描述了如何控制,跟踪和监控修改,以确保迭代开发的成功
    1. RUP软件开发生命周期

    ①核心工作流 (纵轴代表核心工作流,横轴代表时间) 前6个为核心过程工作流, 后3个为核心支持工作流

    • 业务建模:深入了解使用目标系统的机构及商务运作评估目标系统对使用它的机构的影响
    • 需求:捕获客户的需求并且使开发人员和用户达成对需求描述的共识
    • 分析与设计:把需求分析的结果转化为分析模型和设计模型
    • 实现:把设计模型转化为实现结果
    • 测试:检查各子系统的交互与集成,验证所有需求是否都被正确实现,识别,确认缺陷并确保在软件部署之前消除缺陷
    • 部署:成功生成目标系统的可运行版本,并将软件移交给用户
    • 配置与变更管理:跟踪并维护在软件过程中产生的所有制品的完整性和一致性
    • 项目管理:提供项目管理框架,为软件开发制定计划,人员配备,执行和监控等方面的使用准则,并为风险管理提供框架
    • 环境:向软件开发机构提供软件开发环境,包括过程管理和工具支持

    ②工作阶段

    • 初始阶段:建立业务模型,定义最终产品视图,并确定项目的范围
    • 精化阶段:设计并确定系统的体系结构,制定项目计划确定资源需求
    • 构建阶段:开发出所有构件和应用程序,把它们集成客户需要的产品,并且详细地测试所有功能
    • 移交阶段:把开发出的产品提交给用户使用

    ③RUP迭代式开发

    第二章 可行性研究

    1. 可行性研究的目的不是为了解决问题,而是确定问题是否值得去解决
    2. 可行性:技术可行性、经济可行性、操作可行性、运行可行性、法律可行性。
    3. 可行性研究过程
    • 复查系统规模和目标
    • 研究正在使用的系统
    • 导出新系统的高层逻辑模型
    • 进一步定义问题
    • 导出和评价供选择的解法
    • 推荐行动方针
    • 草拟开发计划
    • 书写文档提交审查
    1. *系统流程图:是概括地描绘物理系统的传统工具。用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。表达的是数据在系统各部件之间流动的情况
    符号名称说明
    矩形处理能改变数据值或数据位置的加工或部件。如程序 、处理机、人工加工等都是处理
    平行四边形输入输出表示输入或输出,是一个广义的不指名具体设备的符号
    圆形连接指出转到图的另一部分或从图的另一部分转来,通常在同一页上
    矩形下面 加个三角形换页连接指出转到另一页图上或另一页图转来
    箭头数据流用来连接其他符号,指明数据流的方向
    1. *数据流图表示方法:实线表示数据流;虚线表示控制流;圆框代表处理数据的过程;矩形框表示产生与接收数据的对象;平行线表示数据存储区。
    2. 数据字典定义组成:数据流;数据流分量(即数据元素);数据存储;处理
    3. 数据字典定义数据的方法(对数据自顶向下分解):
    符号含义
    =等价于或定义为
    +和(连接两个分量)
    []或,多个用|隔开
    {}重复
    ()可选
    标识符字母字符+字母数字串
    字母数字串0{字母或数字}7
    字母或数字[字母字符|数字字符]
    1. 成本效益分析的方法及如何运算:
      第一步估计开发成本、运行费用和新系统将带来的经济效益。需从货币时间价值,投资回收期,纯收入,投资回收率
      方法有三种:
    • 代码行技术:软件成本=每行代码的平均成本*估计的源代码总行数
    • 任务分解技术:单本任务成本=任务所需人力估计值*每人每月平均工资;软件开发项目总成本=每个单独任务成本估计总和
    • 自动估计成本技术:采用自动估计成本的软件

    第三章 需求分析

    1. 需求分析的任务
    • 确定对系统的综合要求
    • 分析系统的数据要求
    • 导出系统的逻辑模型
    • 修正系统开发计划
    1. 分析建模与规格说明
      模型: 就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成
      需要建立的三种模型:数据模型、功能模型和行为模型
    • 实体-联系图:描绘数据对象、数据对象的属性及数据对象之间的关系,用于建立数据模型
    • 数据流图:描绘当数据在软件系统中流动和被处理的逻辑过程,是建立功能模型的基础
    • 状态转换图:描绘了系统的状态及引起状态转换的事件,是建立行为模型的基础
    1. 状态转换图符号含义及怎么画 P65,P67
    2. 层次方框图:是用树形结构的一系列多层次的矩形框描绘数据的层次结构。最顶层矩形框:代表完整的数据结构;下面各层的矩形框代表数据的子集;最底层的矩形框代表实际数据元素

    第四章 形式化说明技术

    1. 按形式化程度分为三类:
    • 非形式化,如用自然语言描述规格说明
    • 半形式化,如用数据流图或实体-联系图建立模型
    • 形式化,如描述系统性质是基于数学的技术
    1. 非形式化的缺点
    • 矛盾性:在需求规格说明书中对同一问题前后存在不同的描述
    • 二义性:读者可以用不同的方式理解的陈述
    • 含糊性:需求规格说明书对某一问题描述不清晰,不可理解
    • 不完整性:需求规格说明书对某一问题只说明了局部,没说明整体
    • 抽象层次混乱:指在非常抽象的陈述中混入了关于低层次的细节陈述
    1. 形式化的优点:
    • 能够简洁准确的描述物理现象、对象或动作的结果
    • 在不同的软件工程活动之间平滑过渡
    • 提供了高层确认的手段
    1. 应用形式化准则
    • 选用适当的表示方法
    • 应该形式化,但不要过分形式化
    • 应该估算成本
    • 应该有形式化顾问随时提供咨询
    • 不应该放弃传统的开发方法
    • 应该建立详尽的文档
    • 不应该放弃质量标准
    • 应该测试,测试再测试
    • 应该重用

    第五章 总体设计

    1. 设计过程2个阶段(系统设计阶段:确定系统的具体实现方案 和 结构设计阶段:确定软件结构); 9个步骤
    • 设想供选择的方案
    • 选取合理的方案
    • 推荐最佳方案
    • 功能分解
    • 设计软件结构
    • 设计数据库
    • 制定测试计划
    • 书写文档
    • 审查和复审
    1. 设计原理的相关概念
    • 模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求
    • 抽象:抽出事物本质特性而暂时不考虑细节
    • 逐步求精:为了能集中精力解决最主要问题而尽量推迟对问题细节的考虑。逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础
    • 信息隐藏:应该这样设计和确定模块,使得一个模块内包含的信息对于不需要这些信息的模块来说是不能访问的
    • 局部化:是指把一些关系密切的软件元素物理地址放得彼此靠近
    • 模块独立:是模块化、抽象、信息隐藏和局部化的概念的直接结果。独立的程度测量标准:内聚、耦合
    1. 耦合:是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。耦合程度强烈影响着系统的可理解性、可测试性、可靠性、可维护性。设计原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境的耦合的范围,完全不用内容耦合。
    • 数据耦合:如果两个模块彼此间通过参数交换信息,而且交换的信息仅仅是数据。数据耦合是低耦合
    • 控制耦合:传递的信息中有控制信息。中等耦合,增加了系统的复杂性
    • 特征耦合:当整个数据结构作为参数传递而被调用的模块只需要使用其中一部分数据元素时
    • 公共环境耦合:当两个或对个模块通过一个公共数据环境互相作用时。公共环境可以是全程变量、共享通信区、内存的公共覆盖区、任何存储介质的文件、物理设备等。
    • 内容耦合:如果发生之一就是①一个模块访问另一个模块的内部数据,②一个模块不通过正常入口而转到另一个模块的内部,③两个模块有一部分程序代码重叠,④一个模块有多个入口
    1. 内聚:标志着一个模块内各个元素彼此之间结合的紧密程度,它是信息隐藏和局部化概念的扩展。设计原则:力求高内聚,通过提高模块间的内聚降低耦合从而使模块获得较高的独立性。高内聚意味着低耦合
    2. 低内聚
    • 偶然内聚:如果一个模块完成一组任务,这些任务彼此之间有关系,关系也是很松散的。如在一个程序内有一组语句在两处或多处出现,于是把这些语句作为一个模块以节省内存
    • 逻辑内聚:如果一个模块完成的任务在逻辑上属于相同或相似的一类。如一个模块产生各种类型的全部输出
    • 时间内聚:如果一个模块包含的任务必须在同一时间内执行。如模块完成各种初始化工作
    1. 中内聚
    • 过程内聚:如果一个模块内的处理元素是相关的,且必须以特定次序执行。如流程图确定模块的划分,得到的往往是过程内聚的模块
    • 通信内聚:如果一个模块中所有元素都是用同一个输入数据和产生同一个输出数据
    1. 高内聚
    • 顺序内聚:如果一个模块内的处理元素和同一个功能密切相关,且这些处理必须顺序执行。如一个处理元素的输出数据作为下一个处理元素的输入数据,根据数据流图划分模块得到往往是顺序内聚模块
    • 功能内聚:如果模块内的所有处理元素属于一个整体,完成单一的功能
    1. 7种内聚的优劣评分
    名称得分
    功能内聚10
    顺序内聚9
    通信内聚7
    过程内聚5
    时间内聚3
    逻辑内聚1
    偶然内聚0
    1. 启发规则
    • 改进软件结构提高模块的独立性
    • 模块规模应该适中
    • 深度、宽度、扇出和扇入都应适当
    • 模块的作用域应该在控制域内
    • 力争降低模块接口的复杂程度
    • 设计单入口单出口的模块
    • 模块的功能应该可预测
    1. 描绘软件结构的图形工具(例子见P102,P103)
    • 层次图:描绘软件的层次结构。一个矩形框代表一个模块,方框间的连线表示调用关系
    • HIPO图:“层次图加输入/处理/输出图”,就是在层次图的每个方框加编号
    • 结构图:每个方框代表一个模块,框内注明模块的名字或主要功能,方框间的箭头(或直线)代表模块的调用关系,注释表示来回传递的信息【尾部空心圆表示传递数据,实心圆代表传递控制信息】

    第六章 详细设计

    1. 人机界面设计指南:P123,P124
    • 一般交互指南
    • 信息显示指南
    • 数据输入指南
    1. 程序流程图:
    • 优点:对控制流程的描绘直观,初学者很容易掌握
    • 缺点:①程序流程图不是精益求精的好工具吗,它诱使程序员过早地考虑程序的控制流程,而不去考虑全局结构②程序流程图中用箭头代表控制流 ,因此程序员不受任何约束,可以完全不顾结构程序设计的思想,随意转移③程序流程图不易表示数据结构
    1. 盒图(N-S图)的特点:
    • 功能域明确
    • 不可能任意转移控制
    • 很容易确定局部和全局数据的作用域
    • 很容易表现嵌套关系,也可以表示模块的层次结构
    1. 问题分析图(PAD图):使用二维结构的图来表示程序的控制流。其优点:
    • 使用PAD符号设计出来必然是结构化程序
    • PAD图描绘的程序结构十分清楚
    • PAD图表现程序的逻辑,易读、易懂、易记
    • 很容易将PAD图转化为高级语言程序
    • 即可表示程序逻辑,也可表示数据结构
    • PAD符号支持自动向下,逐步求精
    1. 判定表:当算法中含有多重嵌套的条件选择时
    • 优点:能清晰表示复杂的条件组合与应做的动作之间的关系
    • 缺点:①判定表的含义不能一眼看出来②当数据元素多于两个时,判定表的简洁程度下降
    1. 判定树:判定表变种
    • 优点:一眼看出其含义,易于掌握,使用
    • 缺点:①简洁性不如判定表,数据元素需重复写多遍②判定树的分支次序对画出的判定树的简洁程度有较大影响
    1. PDL(过程设计语言):也称伪码,具有严格的关键字外部语法,用于定义控制结构和数据结构,内部语法灵活自由,适应各种工程项目。

    其优点:

    • 可作为注释直接插在源程序中间
    • 可使用普通的正文编辑程序或文字处理系统完成PDL的书写和编辑
    • 已有自动处理PDL的程序,可自动生成程序代码

    其缺点:

    • 不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单
    1. McCabe方法:McCabe根据程序控制流的复杂程度度量 程序的复杂程度,这样度量出的结果称为程序的环形复杂度

    ①流图的表示:

    • 结点:用圆表示,一个圆代表一条或多条语句
    • 边:箭头线称为边,代表控制流
    • 区域:由边和结点围成的面积 称为区域,当计算区域数时应该包括图外未被围起来的区域
    • 判定结点:包含条件的结点

    ②计算环形复杂度的方法:

    • 流图中线性无关的区域数等于环形复杂度
    • 流图G的环形复杂度V(G)=E-N+2,其中E是流图中边的条数,N是结点数
    • 流图G的环形复杂度V(G)=P+1,其中P是流图中判定结点的数目

    第七章 实现

    编码:把详细设计结果翻译成某种程序语言书写的程序
    软件测试:是保证软件质量的关键步骤,是对软件规格说明、设计和编码的最后复审

     

     


    补充

     

    测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。

    白盒测试主要用于对模块的测试,包括:程序模块中的所有独立路径至少执行一次;对所有逻辑判定的取值(“真”与“假”)都至少测试一次;在上下边界及可操作范围内运行所有循环;测试内部数据结构的有效性等。

    黑盒测试可用于各种测试,它试图发现以下类型的错误:不正确或遗漏的功能;界面错误;数据结构错误或外部信息(如外部数据库)访问错误;性能错误;初始化和终止错误。

    第八章 维护

    1. 软件维护的定义:就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程
    2. 结构化维护和非结构化维护

    ①非结构化维护

    • 如果软件配置的唯一成分是程序代码,那么维护活动从评价代码开始,而且由于内部文档不足而使评价更困难
    • 非结构化维护需要付出巨大代价,是没有使用良好定义的方法学开发出来的必然结果
      ②结构化维护
    • 如果有一个完整软件配置存在,那么维护从评价设计文档开始就很规范
    • 减少精力的浪费,提高维护的总体质量
    1. 决定软件可维护的因素
    • 可理解性
    • 可测试性
    • 可修改性
    • 可重用性

    第八章 面向对象方法学引论

    1. 面向对象方法学要点

    ①基本原则:尽可能模拟人类习惯的思维方式,是开发软件的方法和过程尽可能接近人类认识的世界解决问题的方法和过程
    ②4个要点

    • 软件是由对象组成的,任何元素都是对象,复杂软件对向由比较简单的软件对象组成
    • 所有对象都划分成对象类,类都定义了一组数据和一组方法
    • 若干对象类组成一个层次的系统
    • 对象间仅能通过传递消息互相联系
      ③面向对象方法学优点
    • 与人类习惯的思维方法一致
    • 稳定性好
    • 可重用性好
    • 较易开发大型软件产品
    • 可维护性好
    1. 对象:是描述该对象属性的数据以及对这些数据施加的所有操作封装在一起构成的统一体

    ①对象的定义

    • 对象是具有相同状态的一组操作的集合
    • 对象是对问题域中某个东西的抽象
    • 对象::=<ID,MS,DS,MI>。ID是对象的标识或名字,MS操作集合,DS数据结构,MI对象受理的消息名集合
      ②对象的特点
    • 以数据为中心
    • 对象是主动
    • 实现了数据的封装
    • 本质上具有并行性
    • 模块独立性好
    1. 其它概念
    • 类:是一组具有相同属性和相同操作的对象的集合。
    • 实例:由某个特定的类所描述的一个具体的对象。
    • 消息:要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。组成部分:接收消息的对象;消息名;消息变元
    • 方法:就是对象所能执行的操作,也就是类中所定义的服务。
    • 属性:属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。
    • 封装:对象封装了对象的数据以及对这些数据的操作。
    • 继承:继承是子类自动地共享基类中定义的数据和方法的机制。
    • 单重继承:子类仅从一个父类继承属性和方法
    • 多重继承:子类可从多个父类继承属性和方法
    • 多态性:指子类对象可以像父类那样使用
    • 函数重载:指在同一作用域内的若干参数特征不同的函数可以使用相同的函数名
    • 运算符重载:指在同一个运算符可以施加于不同类型的操作数上面

    第十章 面向对象分析

    1. 建立对象模型

    ①三个子模型,按所解决的问题进行划分

    • 静态结构(对象模型)
    • 交互次序(动态模型)
    • 数据变换(功能模型)

    ②5个层次

    • 主题层
    • 类与对象层
    • 结构层
    • 属性层
    • 服务层

    ③对象模型创建的步骤

    • 确定类与对象
    • 确定关联
    • 划分主题
    • 确定属性
    • 识别继承关系
    • 反复修改

    第十一章 面向对象设计

    1. 面向对象设计准则
    • 模块化
    • 抽象
    • 信息隐藏
    • 弱耦合
    • 强内聚
    • 可重用
    1. 类构件的重用方式
    • 实例重用
    • 继承重用
    • 多态重用



     

    展开全文
  • 数理逻辑教材集合

    2019-01-12 12:21:16
    6:逻辑学导论.第11.(美)柯匹;科恩.pdf 7:面向计算机科学的数理逻辑()-陆钟万.pdf 8:模态逻辑引论 周礼全.pdf 9:数理逻辑.pdf 10:数理逻辑导引--张尚水.pdf 11:数理逻辑基础:一阶逻辑与一阶理论.pdf...
  • 迁移学习作为机器学习的一大分支,已经取得了长足的进步。本手册简明地介绍迁移学习的概念与基本方法,并对其中的领域自适应...本手册的编写逻辑很简单:是什么——介绍迁移学习;为什么——为什么要用迁移学习、...
  • 20世纪大科学技术成就 人工智能 原子能技术 空间技术 智能的特征 (1)感知能力 (2)记忆与思维能力(会思考)【逻辑思维】【形象思维】【动物思维】(灵感思维) (3)学习能力 (4)行为能力(输出能力...
  • 第13章 红黑树 174 13.1 红黑树的性质 174 13.2 旋转 176 13.3 插入 178 13.4 删除 183 思考题 187 本章注记 191 第14章 数据结构的扩张 193 14.1 动态顺序统计 193 14.2 如何扩张数据结构 196 14.3 区间...
  • 算法导论第三版中文版 pdf高清版 在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。算法导论第三版中文版将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些...
  •  《算法导论(原书第3)》全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册...
  • 1章 导论 1 1.0.1 为什么要处理图像? 1 1.0.2 什么是一幅图像? 1 1.0.3 什么是一幅数字图像? 1 1.0.4 什么是一个光谱带? 1 1.0.5 为什么大多数图像处理算法都参照灰度图像进行,而实际中遇到的都是彩色...
  • 逻辑学导论

    2008-11-09 09:31:00
    逻辑学导论》内容简介:本书是一本高校逻辑基础方面的教材。主要内容包括:逻辑理论的基本知识、以及命题逻辑、一阶量化逻辑、规范逻辑初步、非演绎逻辑基础等。 ...
  • 序笔者深信专业的基础课程对学生至关重要,应当由最优秀的教授用最好的教材来讲授,不仅能激发学生的兴趣,开拓学生的思维,更能够使学生领略“通”的广度与“贯穿”的高度。同学们得以感受优秀教授的亲炙、熏陶,...
  • 802.11无线网络权威指南 非扫描 pdf 稀缺的非扫描版本 网络学习必备教程 802.11 无线网络权威指南........................................................................................................
  • 1章 计算机图形学导论 1 1.1 计算机图形学概述 1 1.1.1 图形的表示方法 1 1.1.2 表示图形的数据准备 2 1.1.3 图形的显示 2 1.2 光栅刷新图形显示器 4 1.3 阴极射线管的基础知识 9 1.4 视频知识基础 11 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,664
精华内容 665
关键字:

逻辑学导论第13版pdf