- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
架构师培训讲义4-高层软件架构设计.docx
第四章 高层软件架构的设计
在高层设计阶段,主要工作是分析与设计软件的体系结构。通过系统分解,确定子系统的功能和子系统之间的关系,以及模块的功能和模块之间的关系,产生《体系结构设计报告》。
这个阶段是系统架构师发挥作用的主要位置,高层架构设计过程设计流程如下。
确定设计策略确定 约束 因素设计 准备
确定
设计
策略
确定
约束
因素
设计
准备
系统
分解
设计
设计
评审
撰写
文档
在分析阶段,我们建立模型表示真实的世界,以便理解业务过程以及这个过程中所要用到的信息。基本上说,分析首先是分解,把复杂信息需求的综合问题,分解成易于理解的多个小问题。然后通过建立需求模型来对问题领域进行组织、构造并且编制文档。
分析建模过程必须要用户参与,并且需要用户解释需求,并且验证建立的模型是否正确。
设计也称之为架构设计,实际上也是个建模过程,它把分析阶段得出的信息也就是需求模型,转换为称之为解决方案的模型。
一般来说架构设计是一个高度技术的工作,一般不需要涉及太多的用户,但需要系统分析人员和部分开发人员参与。因为系统设计的输出就是开发的蓝图。
下面讨论在这一阶段一系列的原则和思想。
第一节 高层软件架构的规划
一、客户服务结构(C/S architecture)
这个结构可以用部署图来表示。
二、多级体系结构(four-tier architecture)
这里使用了组件图和部署图。
三、多级体系结构(串行法和团聚法)
四、流处理体系结构(procedural prcessing architecture)
五、代理体系结构(agent architecture)
六、聚合体系结构(aggregate architecture)
七、联邦体系结构(federation architecture)
第二节 面向过程的架构设计
面向过程的架构设计,又称之为结构化设计。
它使用“输入 – 处理 – 输出”这样一个基本模型,这些模式比较适用于描述商业软件,它们中大多数依靠数据库或者文件,并且不太需要复杂的实时处理。
我们可以使用流程图来记录各个子系统的结构,系统流程图标识了每个程序,以及他们存取的数据。
一、系统流程图
系统流程图是用图形的方式描述哪些子系统是系统自动完成的,哪些是需要人工参与的,并且显示了数据流和控制流。
系统流程图主要描述大的信息系统,这种大的信息系统由单个的子系统和大量的程序块组成。绘制流程图使用的主要符号如下,也可以有其它的变体。
下面是一个销售系统的流程。
二、结构图及其应用
结构化设计的基本任务,是自顶向下的分解任务,结构图是用来展示计算机程序模块之间的层次关系。结构图的主要符号如下:
下面是一个工资系统的部分结构图。
三、模块算法设计(伪码)
结构化设计的另一个需求,是描述每个模块的内部逻辑,我们可以用自己熟悉的语言来定义伪码(比如C),使用伪码并不是写出程序,而是为了更清楚地描述模块级的逻辑。这样也可以避免各种图泛滥成灾。
第三节 面向对象的架构设计
在面向对象的设计中,关注点变成了消息和响应机制。
而我们由面向对象的分析转向面向对象的设计是一个自然的结果,在OOA中已经提供了足够多的信息,
在高层设计阶段,我们可以用包图来建立体系架构。
在详细设计阶段,可以利用类图建立相应的体系结构。
下图是以类表达的典型的Nhibernate体系结构。
在设计的各个阶段,在必要的重点位置,我们还可以用顺序图或者协作图来描述一些最重要的消息机制。
面向对象的设计不仅仅是根据功能性和非功能性需求建立一些相应的结构,更重要的是要分析一些潜在问题,通过种种设计技巧,提升系统的整体性能。
下面我们来讨论有关问题。
第四节 高层设计中的架构分析
面向对象的设计并不是简单的把需求分析中的领域模型转换成设计模型就可以了,架构师必须在由需求分析获取架构因素,因此我们首先必须研究架构分析的问题。
另外,由于面向对象设计的成熟和发展,已经形成了一系列的重要设计原则和方法,这些原则和方法可以大大的提高我们的设计质量,这是使用OOD必须关注的问题。面向对象的架构设计与结构化设计根本的不同,是非常注意实时信息,也就是消息和响应机制。另一方面,也非常注意代码重用,设计的目标往往是大型的、分布式的、可升级、可维护而且是安全的体系,这也对设计者提出了更高的要求。
架构分析的本质,是识别可能影响架构的因素,了解它的易变性和优先级,并解决这些问题。
其难点是,应该了解提出了什么问题,权衡这些问题,并掌握解决影响架构重要因素的众多方法。
架构分析是高优先级和大影响力的活动。
架构分析对如下的工作而言是有价值的:
降低遗漏系统设计核心部分的风险
避免对低优先级的问题花费过多的精力
为业务目标定位产品
一、架构分析
架构分析是在功能
文档评论(0)