阅读笔记15

软件结构设计的目的、原则和基本视图安全

1.软件结构设计的目的架构

可重用:为大规模开发提供基础和规范,并提供可重用的资产,软件系统的大规模开发,必需要有必定的基础和遵循必定的规范,这既是软件工程自己的要求,也是客户的要求。架构设计的过程当中能够将一些公共部分抽象提取出来,造成公共类和公共接口,其余功能模块所需相关功能便可调用,以达到重用的目的。框架

缩短周期:必定程度上缩短项目的周期,利用软件架构提供的框架或重用组件,缩短项目开发的周期。单元测试

下降开发和维护的成本:大量的重用和抽象,能够提取出一些开发人员不用关心的公共部分,这样即可以使开发人员仅仅关注于业务逻辑的实现,从而减小了不少工做量,提升了开发效率。测试

提升产品的质量:好的软件架构设计是产品质量的保证,特别是对于客户经常提出的非功能性需求的知足。spa

2.软件架构的基本设计原则架构设计

知足功能性需求和非功能需求:这是一个软件系统最基本的要求,也是架构设计时应该遵循的最基本的原则。设计

实用性原则:就像每个软件系统交付给用户使用时必须实用,能解决用户的问题同样,架构设计也必须实用,不然就会“高来高去”或“过分设计”。orm

接口复用:公共部分可设计成接口,减小冗余,最大程度的提升开发人员的工做效率。对象

低耦合:耦合是描述模块之间的依赖程度,若是一个模块的修改,都有另外一个模块会受到影响,则两模块之间是相互依赖耦合的。(依赖具备传递性,耦合的两个模块可能间接依赖),低耦合是咱们的设计目的,但不是不能够存在耦合不存依赖,依赖是必须的,由于模块之间是必需要通讯交互。设计依赖应该依赖于不变或者不易变的接口,无需了解模块的具体实现,即为面向对象的封装性。

高内聚:高内聚是指某个特定模块包括程序、类型都应完成一系列相关功能,描述了不一样程序和类型中方法,方法中不一样操做描述的逻辑之间的距离相近。高内聚意味可维护性,可重塑性,由于模块对外部的依赖少(功能的完备性)。若是两个模块之间的修改,互不影响各个模块的业务,这说明模块之间是高内聚的。模块的内聚和其担当的职责成反比,即模块的职责越多,模块的内聚性越低,这也是模块的单一原则(SRP),SRP提倡每一个类型都最好只承担单一的职责,只有单一的改变因素。

3.软件架构设计的基本视图

因为软件系统的不一样的角色会站在不一样的角度上提出的问题,咱们就得从不一样的视角来看待软件架构设计这项工做:

逻辑架构视角:从系统用户的角度考虑问题,设计出来的软件架构可以知足业务逻辑的需求,可以处理如今愈来愈复杂的业务逻辑需求。

开发架构视角:从系统开发人员的角度来考虑问题,设计的架构要易于理解,易于开发,易于单元测试,最好作到让开发人员能够用最少的代码行数完成功能的开发。

运行架构视角:从系统运行时的质量需求考虑问题,特别关注于系统的非功能需求,客户经常都会要求咱们系统的功能画面的最长响应时间不超过4秒,能知足2000个用户同时在线使用,基于角色的系统资源的安全控制等。

物理架构视角:关注系统安装和部署在什么样的环境上,例如如今最流行的企业应用服务解决方案IBM Http Server + WebSphere Application Server + DB2,WebLogic + Oracle等。

数据架构视角:现在咱们开发的各种系统,如管理信息系统(Management Information System,MIS)、ERP(企业资源计划),SAP,基本上都是对各种数据的操做,把一堆不太好懂的数据展示成用户容易看懂的数据,自动处理各种数据的运算等,因此数据的持久化是十分重要的一件事情。

相关文章
相关标签/搜索