- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二、顺序相邻关系的层次结构 顺序相邻关系的层次结构表明通讯只能在相邻两层之间发生,信息只能被一层一层地顺序传递。这种层次结构的经典之作是计算机网络的OSI参考模型。 为了减少设计的复杂性,大多数网络都按层(Layer)或级(Level)的方式组织。每一层的目的都是向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽。 一台机器上的第n层与另一台机器上的第n层进行对话。通话的规则就是第n层的协议。数据不是从一台机器的第n层直接传送到另一台机器的第n层。发送方把数据和控制信息逐层向下传递。最低层是物理介质,它进行实际的通讯。接收方则将数据和控制信息逐层向上传递。 4.2 客户机/服务器结构 让我们先回顾一下早期的电话系统。贝尔(Alexander Graham Bell)于1876年申请了电话专利。 那时期的电话必须一对一对地卖,用户自己在两个电话之间拉一根线。如果一个电话用户想和其它几个电话用户通话,他必须拉n根单独的线到每个人的房子里。于是在很短的时间内,城市里到处都是穿过房屋和树木的混乱的电话线。很明显,企图把所有的电话完全互联(如图所示a)是行不通的。 a b 贝尔电话公司在1878年开办了第一个交换局。 公司为每个客户架设一条线。打电话时,客户摇动电话的曲柄使电话公司办公室的铃响起来,操作员听到铃声以后根据要求将呼叫方和被呼叫方用跳线手工连接起来。这种集中交换式的模型如图b所示。 很快地,贝尔系统的交换局就出现在各地。人们又要求能打城市间的长途电话,就出现了二级交换局,以后进一步发展为多个二级交换局。[Tanenbaum 1998] 如果将图b中的电话看成是客户程序,将中心的交换局看成是服务程序,那么图b就是典型的客户机/服务器结构。 注意这里客户机和服务器都是指软件而不是指硬件。 客户机/服务器结构存在两个显然的优点: (1)以集中的方式高效率地管理通讯。前面讲电话系统的故事就是要说明这一点。 (2)可以共享资源。比如在信息管理系统中,服务器将信息集中起来,任何客户机都可以通过访问服务器而获得所需的信息。 客户机和服务器之间的通讯以“请求——响应”的方式进行。客户机先向服务器发起“请求”(Request),服务器再响应(Response)这个请求。 客户机 服务器 请求 响应 在Internet/Intranet领域,目前“浏览器—Web 服务器—数据库服务器” 结构是一种非常流行的客户机/服务器结构。 这种结构最大的优点是:客户机统一采用浏览器,这不仅让用户使用方便,而且使得客户机端不存在维护的问题。当然,软件开发布和维护的工作不是自动消失了,而是转移到了Web 服务器端。在Web 服务器端,程序员要用脚本语言编写响应页面。 5 层次结构设计 软件体系结构设计的三要素是程序构件(模块)的层次结构、构件之间交互的方式以及数据的结构。子系统及模块划分还应考虑: (1)模块大小适当。 (2)模块的层次结构。 结构图(Structure Chart,SC)是精确表达软件结构的图形表示方法,可反映模块之间的层次调用关系和联系。常用特定符号表示模块、模块间调用关系及其信息传递。模块间用单向箭头连结,箭头从调用模块指向被调用模块,如下图所示。 图a 模块调用关系 图b 模块间接口表示 图c 模块的条件和循环调用关系 有的结构图对这两种信息不加以区别,一律用注有信息名的短箭头“→”来表示 【案例1】打印报告的软件结构图。其调用次序为上层调用下层,同层按照数据传递关系确定,一般从左到右执行。执行过程即按照数据流向进行。如图1所示。 (3)软件层次结构。层次图如图2所示。有关指标为: ①深度。表示了模块间控制的层数,表明软件的复杂程度,深度越深,软件越复杂。 ②宽度。表示同一层次上模块的总数,宽度越宽,表示软件越复杂。 ③扇出。表示一模块直接控制其他模块的数量。如图3(a)和(b)。模块划分时,一般扇出平均3-4上限为5-8。 ④扇入。表示模块直接受到多少其他模块控制,扇入越大表明共享该模块的上级模块数越多,虽有一定好处,但不宜片面追求高扇入,如图3(c)和(d)。 图2软件的层次 图3 软件的扇出和扇入控制 6 模块设计 在设计好软件的体系结构后,就已经在宏观上明确了各个模块应具有什么功能,应放在体系结构的哪个位置。 保持“功能独立”是模块化设计的基本原则。因为,“功能独立”的模块可以降低开发、测试、维护等阶段的代价。 但是“功能独立”并不意味着模块之间保持绝对的孤立。一个系统要完成某项任务,需要各个模块相互配合才能实现,此时模块之间就要进行信息交流。 手和脚是两个“功能独立”的
文档评论(0)