一、耦合内聚的概念数据耦合耦合程度最低参数标记耦合参数表公共耦合同一个公共数据环境内容耦合耦合程度最高模块内部数据控制耦合传递控制信息非直接耦合没有直接关系主模块之间的控制和调用偶然巧合内聚没有任何关系逻辑内聚若干个逻辑相似的功能通过参数来确定模块完成哪一个功能瞬时时间内聚同一时间间隔初始化模块过程内聚指定的过程执行通信信息内聚同一个数据结构、相同的输入数据或相同的输出数据顺序内聚顺序执行功能内聚所有元素共同完成一个功能最弱巧合 最强功能 ——高内聚低耦合二、软件维护改正性维护改正软件性能上的缺陷适应性维护软件运行的外部环境或数据环境发生变化完善性维护修改或再开发软件预防性维护提高软件的可靠性和可维护性软件复杂性的度量参数规模、难度、结构、智能度算法的难易程度等三、详细设计详细设计阶段的主要任务包括算法设计数据结构设计数据库物理设计其他设计编写详细设计说明书评审根据软件系统的类型还有设计代码设计输入输出设计用户界面设计软件工程的三要素方法、工具、过程软件测试模型——V模型需求分析验收测试概要设计系统测试详细设计集成测试编码设计单元测试构建过程 验收过程各模型口诀记忆瀑布线性顺序不能回头V 模型左右对应测试并行原型先做小样确认需求增量分批交付逐步完善螺旋转圈开发风险优先迭代反复优化逐步清晰敏捷小步快跑拥抱变化喷泉面向对象无缝迭代四、数据库相关知识数据库的三级模式两级映像模式概念模式/逻辑模式——基本表定义数据的逻辑结构以及完整性约束外模式——视图用户视图内模式——存储文件完整性约束防止对数据的恶意破坏靠主键约束不能为空且唯一如学号参照完整性靠外键约束子表中引用的字段值必须在父表中存在如专业编号用户自定义完整性靠非空 / 唯一 / 检查等约束实现保证数据符合业务规则如年龄非负属性在关系数据库中对应列元组——每一组属性的具体取值在关系数据库中对应行笛卡尔积R×S把 R 的每一行和 S 的每一行挨个粘在一起列数 R 的列数 S 的列数行数 R 的行数 × S 的行数比如 R 有 4 行S 有 2 行 → 拼完就是4×28行列数变成426列选择σ挑符合条件的行就像 Excel 里的「筛选」只留下满足条件的行σ₃6(表)→ 意思是第 3 列的值 第 6 列的值只留满足这个的行投影π挑指定的列就像 Excel 里的「隐藏列」只留下你要的列π₁,₄(表)→ 意思是只留第 1 列和第 4 列其他列都删掉自然连接R⋈S智能拼表比笛卡尔积聪明只保留同名列的值完全一样的行并且删掉重复的同名列比如 R 和 S 都有 C、D 列拼完只留一套 C、D列数 R 列数 S 列数 - 重复的同名列数行数 满足 “同名同值” 的行数量等值连接规则找两张表里列名可以不同但值要相等的列把满足条件的行拼接起来不会自动删除重复列创建视图的语句格式 create view 视图名列表名 as select 查询子句 [with check option];五、结构化开发方法结构化开发方法的几种重要模型数据流图——功能建模数据在系统中如何被传送或变换反映系统必须完成的逻辑功能E-R图——数据建模状态-迁移图——行为建模结构化分析方法建立的分析模型加工规格说明加工描述了输入数据流到输出数据流之间的变换是算法设计的主要依据。数据字典描述了所有在目标系统中使用的和生成的数据对象数据流图的基本原则DFD自顶向下从抽象到具体数据流图接口设计的基本要素加工、数据流、文件和源/宿UML图的各个线条代表的含义实线 空心三角 → 泛化 / 继承虚线 空心三角 → 实现实线 实心菱形 → 组合同生共死实线 空心菱形 → 聚合可有可无虚线 实心箭头 → 依赖虚线 extend → 扩展可选虚线 include → 包含必须关联实线普通箭头继承父类和子类之间共享数据和方法的机制多态不同的对象在收到同一消息可以产生完全不同的结果的现象某些类有不同的超类绑定一个把过程调用和响应调用所需要执行的代码加以结合的过程编译时进行静态绑定运行时绑定动态绑定六、测试用例测试用例的三要素输入、预期输出、执行条件测试用例包括测试目标和被测功能测试环境和其他条件测试数据和测试步骤测试用例很难100%覆盖测试要求输入量太大输出结果太多软件实现途径多测试依据没有统一标准测试用例模板测试停止的依据测试用例全部执行结束测试覆盖率达到要求测试超出了预定时间查出了预定数目的故障执行了预定的测试方案《测试案例说明》中的内容输入说明 环境要求 特殊要求测试记录包括测试计划或包含测试用例的测试规格说明与测试用例相关的所有结果包含在测试期间出现的所有失败测试中涉及的人员身份单元测试局部数据测试集成测试接口数据测试、模块间时序测试、全局数据测试系统测试安全性测试、可靠性测试、兼容性测试、可用性测试七、白盒测试与黑盒测试高效的软件测试是用较少的测试来发现尽可能多的错误黑盒测试不考虑内部的逻辑结构边界值分析法也可用于白盒测试、等价类划分法、因果图法、正交实验设计法、错误推测法、判定表驱动法、功能图法、场景法基本流备用流白盒测试逻辑覆盖法——语句覆盖最弱路径覆盖最强、基本路径法、边界值法、静态结构分析法白盒测试按照程序内部逻辑测试程序分静态测试代码检查法、静态结构分析法、静态质量度量法动态测试语句覆盖测试语句、判定、条件、判定/条件、修正条件判定、条件组合、路径依次加强判定表由条件桩、动作桩、条件项和动作项组成依据软件规格说明建立需要合并相似规则n个条件可以得到2的n次方个规则判定覆盖判定表达式的值真假分别取到分支覆盖程序的每一个分支都至少执行一次if条件组合覆盖n为条件数2的n次方测试用例八、法律使用合理使用不需支付报酬许可使用在一定的地域和期限内许可他人使用并由此获得经济利益强制许可使用经申请由著作权行政管理部门授权即可使用无需征得著作权人同意支付报酬法定许可除著作权人生命不得使用外支付报酬不侵犯著作权的情况下合法使用九、编程知识编译生成目标代码高级语言源程序翻译成机器语言程序反编译是编译的逆过程反编译不能把可执行文件还原成高级语言源代码只能转换成等价的汇编程序编译和解释的区别主要是能否生成目标程序文件编译和解释都需要先进行语法分析再进行语义分析低级语言开发难度高开发效率低运行效率高正规式正规式是用来描述「符合某种规则的字符串集合」的工具和我们平时写代码用的正则表达式逻辑是一样的。几个关键符号大白话版正则表达式|表示或比如a|b意思是 “选 a 或者选 b二选一”。*表示闭包意思是前面的内容可以出现0 次或多次包括 0 次也就是可以没有。比如a*代表ε空串、a、aa、aaa……连接直接写在一起比如ab意思是 “先 a 后 b必须按顺序出现”。优先级* 连接 |所以a|b*等价于a|(b*)而不是(a|b)*极限编程的12个最佳实践计划游戏规划策略 小型发布小版本发布 隐喻 简单设计 测试先行测试驱动开发 重构Refactoring 结对编程 集体代码所有制 持续集成 每周工作40个小时 现场客户客户测试 编码标准十、软件管理基线已经通过正式评审和批准的某规约或某产品软件配置管理的三个基线功能基线、分配基线和产品基线四个最基本活动配置项标识、配置项控制、配置状态报告和配置审计配置项控制的主要活动规定测试基线规定何时何人创立新基线如何创立确定变更控制委员会的人员组成、职能、工作程序等确定变更请求的程序、终止条件以及测试人员执行变更的职能等确定测试基线是配置项控制的基本功能关键路径 活动时间之和最长的路径关键路径长度 项目的最短完成时间总松弛时间 最晚完成时间 - 最早完成时间项目常用的估算方法基于已经完成的类似项目进行估算基于分解技术进行估算基于经验估算模型的估算常见的测试指标网络可用性、网络带宽、吞吐量、延时、丢包率、背靠背性能等大数据常见的测试工具包括——Hadoop、HPCC高性能计算集群、Cloudera,Cassandra,Storm等可信软件验证工具——Spin、NuSMV、Atelier-B以上内容为本人刷软考题库自己整理所得内容章节可能有点混乱自行参考。~~~///(^v^)\\\~~~