设计步骤:
定义子系统
定义子系统外部接口
定义系统物理架构(设备环境、网络环境、数据环境)
集中式结构对主机要求比较高。稳定性高、安全性高,设备要求高、费用高、不利于扩充。
客户机/服务器结构,一种分布与集中相结合的结构,扩充性比较好、有利于分阶段的实现、
表示层、应用层、数据层,逻辑分层有利于提升系统性能。
两层结构 ,胖客户端,不利于维护,因为要适应不同的客户端设备
三层结构,客户机-应用服务器-数据库服务器,便于维护,只要改应用服务器,不用改客户端,但是开发难度变大。
B/S结构(电商平台)
客户机-Web服务器-应用服务器-数据库服务器
不需要维护客户机,客户只要有浏览器就行。系统数据传输速度不够快
组件对象分布结构
没有客户机和服务器的明显界限,分布式对象中间件来协调。
软件结构设计:(模块就是一个功能单元,模块不能太多,以减少接口与连接成本)
确定构造子系统的模块元素
定义每个模块的功能
定义模块的接口,设计接口的数据结构
确定模块之间的调用与返回关系
评估软件结构质量,进行结构优化
模块功能黑盒:模块名称、输入数据、功能定义、输出数据
信息隐蔽:模块外部不可知道模块内部细节,使系统更健壮,更加方便维护,比较容易找到错误的位置,利于纠错,不易扩散错误。
模块独立性:每一个模块只涉及自己的功能,接口要设计简单,高内聚低耦合,每一个模块之间的耦合要低,模块内各个元素内聚要高。主要关注提供模块内聚程度。
反复完善结构优化,模块功能、大小、接口复杂度,不断调优
数据库结构设计:
逻辑结构设计(ER model)
物理结构设计(物理设备的存储方法和存储时间、空间、稳定性、检索效率、索引空间、数据完整性规则)