软件架构与设计模式_2

软件架构与设计模式_2

ID:43212288

大小:4.66 MB

页数:134页

时间:2019-10-03

软件架构与设计模式_2_第1页
软件架构与设计模式_2_第2页
软件架构与设计模式_2_第3页
软件架构与设计模式_2_第4页
软件架构与设计模式_2_第5页
资源描述:

《软件架构与设计模式_2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、软件架构与设计模式曾令秋博士、副教授2014年4月1.软件架构软件架构定义架构设计方法与过程软件架构的设计要点2.模式简介模式的定义模式的分类3.常用模式从混沌到结构分布式基础设施事件多路分离和分派接口分割组件分割4.典型面向服务的架构SOA2目录1.软件架构1.1架构定义软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构,Garlan&Shaw模型的基本思想是:软件体系结构={构件(component)、连接件(connector)和约束(constrain)}:构件可以是一组代码,如程序的模块;也可以是一个

2、独立的程序;连接件可以是过程调用、管道、远程过程调用(RPC)等,用于表示构件之间的相互作用;约束一般为对象连接时的规则,或指明构件连接的形式和条件,例如,上层构件可要求下层构件的服务,反之不行;两对象不得递规地发送消息;代码复制迁移的一致性约束;什么条件下此种连接无效等。4架构定义软件架构不仅仅注重软件本身的结构和行为,还注重其他特性:使用,功能性,性能,弹性,重用,可理解性,经济和技术的限制及权衡。5例:ACE的分层架构6架构的范围软件架构—本门课程的主关注点。硬件架构—包括CPU,内存,硬盘,周边设备例如打印机,与

3、连接这些元素的部分。组织架构—是一些关于商业进程,组织结构,规则和职责,与组织核心能力的部分。信息架构—包含组织好的信息结构。软件架构、硬件架构、组织架构和信息架构是全部系统架构的子结构。企业架构与系统架构很相似,包括硬件,软件,人员等。7企业架构师EA(EnterpriseArchitect)的职责是决定整个公司的技术路线和技术发展方向。盖茨给自己的Title是首席软件架构师,实际上就是EA角色;基础结构架构师IA(InfrastructureArchitect)的工作是提炼和优化技术方面积累和沉淀形成的基础性的、公共

4、的、可复用的框架和组件,这些是技术型公司传承下来的最宝贵的财富;特定技术架构师TSA(Technology-SpecificArchitect)主要从事类似安全架构、存储架构等专项技术的规划和设计工作;解决方案架构师SA(SolutionArchitect)的工作则专于解决方案的规划和设计,所谓解决方案,就是把产品、技术或理论,不断地进行组合,来创造出满足用户需求的选择。软件架构师基本上是EA+TSA+IA,是程序员向上发展的道路,系统架构师实际上是SA+TSA,更着力于综合运用已有的产品和技术,来实现客户期望的需求。架

5、构师分类81.2架构设计基本过程概念化阶段分析阶段架构设计阶段并行开发和测试阶段验收与交互阶段愿景需求架构可执行系统交付的系统9架构设计基本过程分析阶段需求分析领域建模确定关键需求概念性架构设计细化架构验证架构架构设计阶段10软件需求需求系统必须满足的情况或提供的能力.可以直接来自客户需要,也可以来自合同,标准,规范或其他有正规约束力的文档软件需求功能需求非功能需求质量属性约束运行期质量属性开发期质量属性11软件系统架构要素它是一个软件系统从整体到部分的最高层次的划分。一个系统通常是由组件组成的,而这些组件如何形成、相互

6、之间如何发生作用,则是关于这个系统本身结构的重要信息。系统包括架构组件、连接器、任务流。架构组件是组成系统的核心“砖瓦”,而连接器则描述这些组件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些组件和连接器完成某一项需求。它是建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。在决定时,要考虑独特的架构风格和恰当的架构模式。1.3软件架构的设计要素12软件架构的目标可靠性(Reliable)。软件系统对于用户

7、的商业经营和管理来说极为重要,因此软件系统必须非常可靠。安全性(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。可扩展性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能,才能适应用户的市场扩展得可能性。可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。13软件架构的目标可延伸性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展;可维护性(Ma

8、intainable)。软件系统的维护包括两方面:1。排除现有的错误,2。将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费客户体验(CustomerExperience)。软件系统必须易于使用。市场时机(TimetoMarket)。软件用户要面临同业竞争,软件提供商也要面临同业竞争。以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。