1.DNS配置错误域名转换IP地址手动输入可靠DNS服务地址2.SNMP协议应用层网络管理员监控管理不同的网络设备。依赖与upd数据报高效数据传输低延迟3.Linus使用Apache作为Web服务器默认Web站点目录为/home/httpd4.www的控制协议是超文本传输协议http5.Kruskal 算法图最小生成树每一次选最短的边且不能与已有的点构成环路贪心算法6.数据库三层架构物理层最下层存数据读写操作返回到逻辑层逻辑层中间层数据连接指令传达视图层最上层用户交互查看和操作数据7.观察者模式行为型模式观察者与被观察者发布-订阅模式命令模式行为型模式请求封装成对象餐厅点餐调用者服务员菜单命令接收者厨师状态模式行为型模式内部状态发生改变行为自动售卖机库存0展示售罄策略模式策略模式行为型模式算法行为之间替换支付方式网银现金8.单例模式创建型模式类唯一实例日志记录器、配置管理、线程池、数据库连接池抽象工厂创建型模式超级工厂创建其他工厂产品等级结构产品族关注创建过程建造者模式关注组装过程复杂对象分解成多个简单对象原型模式创建型快速克隆对象省去初始化工作9.UML包图类似于文件夹每个元素只属于一个包包内元素命名唯一10.UML序列图对象之间交互顺序二维图纵向时间横向对象loop操作符表示循环代码11.面向对象设计原则共同封闭原则一包中的所有类对同一类性质变化共同封闭一个类影响到某个包时对该包中的所有类产生影响不会波及其他包。保持系统模块化和稳定性共同重用原则一包中所有类共同重用某个地方重用了包的一个类理论重用该包所有类减少代码冗余提高代码可维护性接口分离原则不强迫客户依赖于不用的方法系统设计接口时需要不同功能分离到不同接口中提高系统灵活性和可扩展性开放-封闭原则软件实体类、模块、函数是可扩展的即开放的但不可以修改即封闭的。这意味着在不修改现有代码的情况下增加新的代码来扩展系统功能保持系统稳定性和可维护性12.面向对象测试层次算法层针对类中定义的每个方法类似于单元测试旨在方法都可以正确执行预期功能类层关注封装在同一个类的中的所有方法和属性之间的相互作用。类是基本模板可以看成所特有模块测试验证类的整体行为和内部逻辑模板层一组协同工作类之间的相互作用。类似于集成测试具有面向对象特点如对象之间相互发送消息进行交互系统层各个子系统组织起来在组织过程中测试确保系统稳定性和可靠性13.封装继承封装是实现面向对象的第一步封装是将函数和数据集合到一个单元类中。继承是在已有类的基础上创建新类的过程已有的类称为基类父类新类称为派生类子类多态允许不同类的对象对同一个消息做出响应即同一消息跟进发送对象不同而采用多种不同的行为方式发送消息即函数调用通信类通过外部接口与外部发生关系对象和对象之间通过消息进行通信14.软件维护类型正确性维护识别、纠正软件错误、改正软件性能缺陷、排除实施过程做误操作。包含诊断问题、改正问题适应性维护使用过程中外部环境新硬件、软件配置和数据环境数据库、数据格式、输入输出数据存储介质变化引起的修改完善性维护客户提出新功能需求和性能要求对软件进行修改和在开发。目的提升软件质量和用户体验预防性维护“把今天的方法学用在昨天系统以满足明天需求”即采用先进软件工程方法学对现有的/部分进行重新设计编码和测试15.管道-过滤器体系结构由一组称为过滤器的构件以及连接的管道组成一种软件架构模式将一个大的数据处理任务分解为一系列独立步骤每个步骤由一个过滤器组件执行并通过管道即队列连接起来相乘一个数据处理流水线工作原理数据从一个过滤器流向另一个过滤器经过一系列转换和处理最终完成整个数据处理流程优点模块化系统分成独立过滤器易开发测试、维护可重用性过滤器可以独立用在不同的流水线上可替换性过滤器易替换可扩展性扩展流水线方便增加新的过滤器并发性流水线独立并行处理数据缺点中间数据每个过滤器需要处理中间数据增加系统开销数据格式过滤器之间要求数据格式统一限制灵活状态管理当需跨越多个过滤器昨天设计复杂性能过多/低效过滤器拉低性能调式跨多个过滤器问难追踪16.软件模块耦合类型数据耦合模块之间仅仅通过参数传递基本数据类型int/float/char),无共享状态、调用关系清晰可重用性高标记耦合传递的用户自定义数据结构结构体、类对象但被调用模块只使用其中部分字段。如果调用全部字段可视为“数据耦合”扩展控制耦合传递控制标志flag、code、mode影响被调用模块内部逻辑分支破坏模块功能单一性增加理解和测试难度应尽量使用多态策略模式等重构代替外部耦合模块依赖外部环境铁定文件格式、硬件接口、网络协议、全局配置虽又是不可避免如驱动开发但应封装隔离如通过适配器公共耦合多个模块共享同意全局数据区全局变量公共堆内存、共享数据库表极容易引发副作用难以追踪bug内容耦合最差耦合形式一个模块直接访问其他模块内部代码或数据如跳转到中间标签、修改私有成员绕过接口调用严重违反封装于信息隐藏原则绝对禁止17.敏捷开发是一种以人为核心、迭代、循序渐进的开发方法实现方法scrum、xp、crystalMethods、FDD特性驱动开发scrum是一种开发流程框架套路三角色伞工件四会议敏捷开发流程8步骤目标制定、对齐-产品规划-组织产品代办列表-需求梳理-迭代规划-迭代开发-开回顾会议18.增量模型软件开发过程中一种渐进式演进模型介于瀑布模型和敏捷开发之间核心思想将系统功能分批次交付每次迭代都构建一个可运行的“增量”版本