1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AllinOne-SA

软件结构与设计1 概述1.1 软件危机1.2 定义 1.3 部件与连接件1.4 重要性 1.5 研究领域 1.6 体系结构的风格与模式1.7 非功能属性1.8 体系结构设计的基本原理1.1 软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机的原因:(1)用户需求不明确; (2)缺乏正确的理论指导; (3)软件规模越来越大; (4)软件复杂度越来越高。 1.1 软件危机1.1 软件危机软件体系结构的出现软件体系结构作为软件工程中一个新兴的研究课题,是随着描述大型复杂系统结构的需要,以及开发人员和计算机科学家在大型软件系统研制过程中对软件系统理解的逐步深入而发展起来的。传统的软件开发过程可以划分为从概念到实现的若干个阶段,包括问题定义、需求分析、软件设计、软件实现及软件测试等。 软件体系结构的建立就位于需求分析之后,软件设计之前。1.1 软件危机软件体系结构的出现传统软件系统构造的着眼点算法的选择数据结构的设计数据库的构造当软件系统的规模与复杂度不断增大时,整个系统的设计与描述变得更加重要.1.2 定义1.2 定义从字面上理解,软件体系结构 = 软件的体系结构“体系结构(Architecture)”一词起源于建筑学 如何使用基本的建筑模块构造一座完整的建筑?包含两个因素:基本的建筑模块:砖、瓦、灰、沙、石、预制梁、柱、屋面板… 建筑模块之间的粘接关系:如何把这些“砖、瓦、灰、沙、 石、预制梁、柱、屋面板”有机的组合起来形成整体建筑?1.2 定义计算机硬件系统的“体系结构”如何将设备组装起来形成完整的计算机硬件系统?包含两个因素:基本的硬件模块:控制器、运算器、内存储器、外存储器、 输入设备、输出设备…硬件模块之间的连接关系:总线计算机体系结构的风格:以存储程序原理为基础的冯·诺依曼结构存储系统的层次结构并行处理机结构1.2 定义“体系结构”的共性一组基本的构成要素——构件/部件 这些要素之间的连接关系——连接件 这些要素连接之后形成的拓扑结构——物理分布 作用于这些要素或连接关系上的限制条件——约束 质量——性能1.2 定义虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画 后人精简Garlan and Shaw的定义为: 体系结构 = 部件 + 连接件 + 约束 Architecture = Components + Connectors + Constrains1.3 部件与连接件1.3.1 部件(组件/构件):软件系统的组成单元;1.3.2 连接:部件与部件之间的联系;1.3.3 连接件:承担连接作用的特殊部件;1.3.1 部件部件定义从系统构成角度:在系统运行中承担一定功能、发挥一定作用的软件体从程序设计角度:模块、类、对象或者一个相关功能集合1.3.1 部件表达形式具有操作接口定义的抽象数据类型描述组成内部数据结构及其操作对外提供的操作方法集合1.3.2 连接连接部件与部件之间的信息传递;本质在于: 实现机制和信息交换协议,简称机制和协议机制 连接得以发生和维持的机制 e.g. 参数调用方式 / 串口通讯协议 连接的规约,是正确进行信息交换的规则,是实现有意义连接的保证1.3.3 连接件实现部件之间联系的特殊机制或特殊部件。连接部件与一般部件一般部件:软件功能设计和实现的承载体;连接部件:负责完成部件之间信息交换和行为联系的专用部件;1.4 重要性1.4.1 在风险承担和早期设计中的作用 1.4.2 在软件开发各阶段中的作用 1.4.3 在系统分析和设计中的作用 1.4.1 风险承担和早期设计对风险承担者起交流的作用: 风险承担者包括客户,用户,项目经理,系统构架师,程序员,测试人员等,各风险承担者分别关注应用系统体系结构的不同特征。因此,软件体系结构便成为各风险承担者表述自己的需求,协商找寻一个合理开方案的研究对象,是风险承担者进行交流的手段。1.4.1 风险承担和早期设计是早期设计决策的产品:软件的体系结构明确了对系统实现的约束条件,决定了开发组织的组织结构,并且能够阻止或支持系统的质量属性实现。 对应用系统的影响: 对于大型软件系统,质量属性更多的是由系统结构和功能的划分来实现的,而不再仅仅依靠所选用的算法或数据结构。并且软件体系结构支持高层的的复用。 1.4.2 软件开发各阶段项目规划阶段:1)可行性分析避免方向性错误2)制定工程进度和投资计划的依据保障项目顺利进行的关键需求分析阶段:1)表达用户需求2)设计对应的解决方案项目设计阶段:将体系结构细化到可操作的程度(一个迭代过程)。项目实施阶段:按层次与部件进行分工合作。测试和系统评估阶段:根据体系结构中的约束关系等,严格性能测试与评

文档评论(0)

me54545 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档