软件体系结构 期末复习

发布时间:2026/7/22 1:16:33
软件体系结构 期末复习 如有侵权或其他问题欢迎留言联系更正或删除。目录第一章第二章第三章第四章第五章第六章第七章第八章第九章补充习题第一章1. 根据自己的经验谈谈对软件危机的看法。表现 原因 解决方案2. 就项目管理而言软件重用项目与非重用项目有哪些不同之处。3. 为什么要研究软件体系结构?意义、原因4. 根据软件体系结构的定义你认为软件体系结构的模型应该由哪些部分组成?5. 在软件体系结构的研究和应用中你认为还有哪些不足之处?缺陷6. 详细了解什么是面向服务体系结构?第二章引⼊了软件体系结构以后传统软件过程发⽣了哪些变化这种变化有什么好处变化1. 使软件设计开发更为 “具体形象”2. 使软件过程更为 “方便多元”好处1. 利于沟通通过早期的⻛险分析和设计决策减少了后期的修改成本。改善了团队间的沟通和协作。2. 便于复用提⾼了软件的可维护性和可扩展性。促进了重⽤性和模块化简化了开发过程。4 1 视图是什么概念举一个简单的例子并绘制其四加一视图软件体系结构建模的种类① 结构模型以体系结构的构件、连接件和其他概念来刻画结构通过结构来反映系统的重要语义内容包括系统的配置、约束、隐含的假设条件、风格、性质等。② 框架模型不侧重描述结构细节而侧重整体结构。主要以一些特殊的问题为目标建立只针对和适应该问题的结构。③ 动态模型是对结构或框架模型的补充研究系统的 “大颗粒” 的行为性质。动态可以指系统总体结构的配置、建立或拆除通信通道或计算的过程。④ 过程模型过程模型研究构造系统的步骤和过程。结构是遵循某些过程脚本的结果。⑤ 功能模型认为体系结构是由一组功能构件按层次组成下层向上层提供服务。可视作特殊的 “框架模型”软件体系结构内的 “1对N” 关系需求的三个层次业务需求 表示组织或客户高层次的目标。通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。 业务需求描述了组织为什么要开发一个系统即组织希望达到的目标。使用前景和范围vision and scope文档来记录业务需求这份文档有时也被称作项目轮廓图或市场需求project charter 或 market requirement文档。用户需求 描述的是用户的目标或用户要求系统必须能完成的任务。用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。功能需求规定开发人员必须在产品中实现的软件功能用户利用这些功能来完成任务满足业务需求。构件及其关系的抽象描述数学化一些结论软件体系结构工程 形式化模型软件体系结构模型 软件技术 软件工程软件过程需求分析 → 建立体系结构 → 设计 → 实现 → 测试第三章1、试分析和比较B/S二层C/S和三层C/S指出各自的优点和缺点。2、组织或参与一个采用B/S和C/S混合体系结构的软件项目的开发总结开发经验。答1. 开发一家企业的管理系统为系统功能分类考虑应用 “B/S” 或 “C/S” 架构2. C/S 架构的特点是交互性、安全性要求高使用范围小数据量大3. B/S 架构的特点是交互性、安全性要求低适用范围广功能变更频繁4. 针对不同功能应采取应用不同架构经济有效地应用了计算机资源保障了数据安全既能做到复杂功能的交互性也能做到易用功能的简洁统一。3、组织或参与一个采用三层体系结构的软件项目的开发总结开发经验。答共分为三层1. 用户界面表示层使用 WEB 体系架构构建2. 业务逻辑层处理具体的业务逻辑3. 数据访问层处理原始数据并返回业务请求。好处项目结构清晰、分工明确、有利于后续维护升级。4. 在软件开发中采用 “异构结构” 有什么好处其负面影响有哪些?需展开叙述优点1. 各尽所能2. 利于适应变动3. 利于代码复用坏处结构复杂不利于设计及维护。5. 详细了解一种体系风格结构注意区别于“设计模式”第四章Q. 体系结构描述有哪些方法有哪些标准和规范1. 图形表达工具2.模块内连接语言3. 基于 “软构件” 的系统描述语言4. 软件体系结构描述语言。标准规范IEEE 1471、XML、41视图等。Q. 问题UML 相关定义UML 是一种用可视化方法对软件系统描述、实施、说明的标准语言。支持用不同实现技术进行的软件开发全过程。UML 图例总结UML零散知识点感谢叶哥第五章构件角度说明 “动态软件体系结构” 层次结构“动态体系结构建模” 的核心问题提供系统化方法全面描述动态演化诸多要素具体地动态演化的起因、时间、非瞬时性、基本操作、完整方案规约的形式语义构件从断点开始继续执行的能力。重中之重Π ADL第六章Q. 什么是Web服务体系结构?与传统的结构相比使用 Web 服务有哪些好处答web 服务体系结构 是以 XML 及 HTTPS 为基础的分布式体系架构类似 “构件编程” 开发者可通过调用 web 应用编程端口将 web 服务集成到软件系统内。它通过 SOAP 实现消息服务通过 WSDL 实现服务描述通过 UDDI 实现发现及发布服务。通过 “服务提供者”、“服务接收者”、“服务注册中心” 三者的交互沟通构建了整个 web 服务体系结构。好处有1. 通用性及易用性2. 具备完全独立的编程语言及平台3. 高度集成化4. 易部署发布。Q. 在 Web 服务中如何实现其松散耦合的特点?答C/S 架构是一类 “松散耦合” 的体系架构它通过 “消息传递机制进行通信”客户端向服务端发送数据及服务请求服务端处理数据并返回服务请求到客户端。Q. 试分析服务提供者、服务请求者和服务代理三者的作用以及它们之间的工作流程。答1. 服务提供者 及 服务请求者 间通过 “语义信息” 相互沟通交流2. 服务提供者将 “web 服务描述” 发送给 服务代理再由服务代理 将 “web 服务描述” 发送给 服务请求者 接收。Q. 试解释 Web 服务栈的层次结构或Web 服务有哪些核心技术这些技术是如何在 Web 服务中发挥作用的Q. 从管理角度看SOA (Service Oriented Architecture) 有什么优点?1. 易于维护松散耦合 开发标准2. 易用松散耦合无需了解底层细节3. 伸缩性强服务提供者可独立调整以适应需求。Q. 在实际开发中如何实现 Web 服务和 SOA 结构?1. 声明技术J2EE 编程模型使用 “声明技术” 分离 “应用程序逻辑” 及 “中间件配置”2. 抽象SOA 特定用途 API 的设计需注意易用性应优先考虑声明技术标准 API 应公开 SOA 基础结构功能3. 代码生成在代码复杂度过高时可考虑使用代码生成技术4. 工具在有不可避免的 SOA 基础结构细节引入开发环境时可引入工具扩展开发环境。第七章Q. 请把基于体系结构的软件开发模型与其他软件开发模型进行比较。答1. 传统的软件开发模型具有开发效率低、可重用性差等劣势。2. 而 “基于体系结构的软件开发模型” 将软件开发生命周期分为需求分析 - 设计 - 文档化 - 复审 - 实现 - 演化 六大阶段并说明了六大阶段的具体内容。具备清晰易懂、可重用性强、开发效率高等优势。Q. 请把基于体系结构的软件设计方法与其他软件设计方法进行比较。答1. 其他软件设计方法包括基于构件、基于框架、基于模块2. 基于体系结构的软件设计方法的 核心 在于① 从高层开始设计2. 使用可重用的体系结构3. 使用及实现可重用的构件3. 其区别还在于它易于重用易于修改易于维护易于分工。Q. 如何才能提高软件系统的可演化性。1. 演化性的概念软件在特征上的递增变化贯穿软件生命周期的始终2. 八大方法策略① 必须不断变化② 功能不断递增③ 软件复杂度逐渐升高④ 具备自我调节能力⑤ 具备组织稳定性⑥ 具备版本连贯性⑦ 不加干预可能性能衰退⑧ 是反馈系统。第八章Q. 什么是软件体系结构的可靠性? 为什么要研究软件体系结构的可靠性? (容错健壮性)、Q. 如何 “模型化” 系统的可靠性?答1. 首先需确定系统的软件体系系统结构风格2. 将软件体系结构转化为状态模型计算状态视图每一个状态的 “可靠性及相应迁移概率”3. 将多个状态视图视作一个 “整体” 的软件状态视图4. 构建软件系统的迁移矩阵计算其可靠性。Q. 软件体系结构风险分析有哪些基本步骤?基于 CDG 的软件体系结构风险评估方法答1. 使用 ADL 建立模型的软件体系结构2. 使用 “模拟方法” 分析模型系统的复杂性3. 使用 “FMAE” 及 “模拟执行“ 分析模型系统的严重程度4. 为构件及连接件开发 ”启发式风险因子“5. 构建 ”组件依赖图“6. 通过 ”图论“ 的方式分析图进行风险评估及分析。Q. 软件体系结构测试是什么?软件体系结构测试要研究的对象是软件体系结构设计并以此为基础产生高层次的测试用例集以指导代码层的测试活动。其目的是找出体系结构设计的错误和缺陷声生指导代码测试的测试计划和测试用例。软件系统的可靠性评估方法基于操作剖面的模型用户使用软件的操作及其频率信息基于状态的模型基于状态的模型通常假设软件的控制转移具有 Markov 性质,但基于构件的软件系统难以保证 Markov 模型需要的构件独立性假设基于路径的模型通常在实现后对软件系统可靠性进行评估估计软件系统可靠性的基本步骤1. 生成测试路径2. 计算测试路径的可靠性3. 计算软件系统的可靠性。软件体系结构测试与程序测试有所不同它是检查软件设计的适用性, 这种测试不考虑软件的实现代码, 所以基于实现和说明的程序测试方法对软件体系结构测试并不适用.与传统的软件测试一样,基于体系结构的软件测试也需要研究测试内容、测试准则、测试用例、测试充分性及测试方法等问题。测试准则测试应覆盖所有的组件及各个组件的接口、各个连接器的接口、组件之间的直接连接、组件之间的间接连接。一道易于理解的习题Q. 重点化学状态机1、 对构件和连接件进行语法描述2、定义初始溶液、终止溶液、反应规则3、导出代标记的迁移系统4、生成测试序列状态或迁移覆盖抽象简化为下图然后本例定义了三种不同的终止溶液1. Sf1 表示在 inputpassword 状态下用户输入了错误的密码系统自动退出进入到 takecard 状态2. Sf2 表示在 deposit 状态下用户不需要服务了选择退出系统进入到 takecard 状态3. Sf3表示用户在 withdraw 状态下用户选择退出系统进入到 takecard 状态虽然三种溶液不相同但都是 “终止状态”。故得到理解全路径覆盖 基本路径覆盖 迁移线覆盖 状态点覆盖第九章Q. 为什么需进行软件体系结构的 “质量评估”1. 通过代价低廉的评估手段识别软件结构内的潜在风险及错误2. 发现影响软件质量的主要原因及后续解决措施3. 评估软件的质量需求是否都在具体设计内得以体现4. 预估未来的软件质量。Q. 软件体系结构的 “质量评估” 的角度1. 性能指软件的响应能力2. 可靠性指软件遭遇错误或中断时维持自身正常基本功能的能力3. 可用性指软件的正常运行时间占整个运行时间的比例4. 安全性指软件为正常用户提供正确服务拒绝恶意请求的能力5. 可修改性可维护性、可扩展性、可变化性、可移植性6. 功能性指软件完成所期望功能的能力7. 可测试性。Q. ATAM 评估方法的基本步骤1. 描述 ATAM 方法2描述业务场景3. 描述体系结构4. 确定体系结构方法5. 生成软件质量属性效用树6. 分析体系结构7. 讨论和分级场景8. 分析体系结构9. 描述评估结果。基本概念敏感点构件或构件关系的特性用于明确实现质量目标的注意事项。权衡点影响多个质量属性的敏感点如加密级别对安全性和性能的影响。风险承担者与体系结构有利害关系并施加影响以实现自身目标的人。场景从风险承担者角度对系统交互的简短描述包含刺激、环境和响应。评估方式概念基于调查问卷 / 检查表通过问题集问卷涉及设计决策等检查表更具体评估灵活但主观。基于场景分析体系结构对代表质量需求的场景如修改、攻击操作的支持程度。基于度量通过软件属性数值如代码行数及映射原则量化评估质量属性。对比三种评估方式重点质量属性效用树的绘制基于CDG的软件体系结构风险评估方法解1使用体系结构描述语言ADL对体系结构进行建模2使用模拟的方法执行复杂性分析3使用FEMA和模拟运行执行严重性分析4为每个构件和连接件开发其启发式风险因子5构建用于风险评估的CDG6基于图论的算法进行风险评估与分析。补充习题