系统架构设计师 - 案例特训专题 - 架构设计篇


大家好呀!我是小笙,本章我主要分享系统架构设计师 - 案例特训专题 - 架构设计篇知识,希望内容对你有所帮助!!

架构设计篇

软件架构风格 ★★★★

五大架构风格 子风格
数据流风格 批处理、管道-过滤器
调用/返回风格 主程序/子程序、面向对象、层次结构
独立构件风格 进程通信、事件驱动系统(隐式调用)
虚拟机风格 解释器、规则系统
仓库风格 数据库系统、黑板系统、超文本系统

例题

1、某软件公司为其新推出的字处理软件设计了一种脚本语言,专门用于开发该字处理软件的附加功能插件
为了提高该语言的编程效率,公司组织软件工具开发部门为脚本语言研制一套集成开发环境。软件工具开发部门根据字处理软件的特点,对集成开发环境进行了需求分析,总结出以下3项核心需求:

  1. 集成开发环境需要提供对脚本语言的编辑、语法检查、解释、执行和调试等功能的支持,并要实现各种功能的灵活组合、配置与替换
  2. 集成开发环境需要提供一组可视化的编程界面,用户通过对界面元素拖拽和代码填充的方式就可以完成功能插件核心业务流程的编写与组织
  3. 在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码

针对上述需求,软件工具开发部门对集成开发环境的架构进行分析与设计,王工认为该集成开发环境应该采用管道-过滤器的架构风格实现,李工则认为该集成开发环境应该采用以数据存储为中心的架构风格来实现。公司组织专家对王工和李工的方案进行了评审,最终采用了李工的方案

【问题1】 请用200字以内的文字解释什么是软件架构风格,并从集成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案

软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义

  • 从集成开发环境与用户的交互方式看,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理,而管道-过滤器架构风格则对用户的交互式数据处理支持有限
  • 从集成开发环境的扩展性来看,系统核心需求要求实现各种编辑、语法检查、解释执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系,并可以灵活定义功能之间的逻辑顺序。管道-过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差
  • 从集成开发环境的数据管理来看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。管道-过滤器架构风格通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差

【问题2】 在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最为合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程

  • 为了满足需求(2),应该采用解释器架构风格。具体来说,需要:①为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;②编写解释器对该语言进行解释;③生成对应的脚本语言程序
  • 为了满足需求(3),应该采用隐式调用架构风格。具体来说,首先需要定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数。集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项。在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位

质量属性与架构评估 ★★★★★

主要考察性能、可用性、安全性以及可修改性

image-20240919125318984
  • 敏感点是一个或多个构件(和/或构件之间的关系)的特性
  • 权衡点是影响多个质量属性的特性,是多个质量属性的敏感点
  • 风险点是指架构设计中潜在的、存在问题的架构决策所带来的隐患
  • 非风险点是指不会带来隐患,一般以"XX要求是可以实现【或接受】的"方式表达

例题

1、某网上购物电子商务公司拟升级正在使用的在线交易系统,以提高用户网上购物在线支付环节的效率和安全性。在系统的需求分析与架构设计阶段,公司提出的需求和关键质量属性场景如下:

  1. (a)正常负载情况下,系统必须在0.5秒内对用户的交易请求进行响应(性能)
  2. (b)信用卡支付必须保证99.999%的安全性(安全性)
  3. ©对交易请求处理时间的要求将影响系统的数据传输协议和处理过程的设计(敏感点)
  4. (d)网络失效后,系统需要在1.5分钟内发现错误并启用备用系统(可用性)
  5. (e)需要在20人月内为系统添加一个新的CORBA中间件(可修改性)
  6. (f)交易过程中涉及到的产品介绍视频传输必须保证画面具有600*480的分辨率,20帧/秒的速率(性能)
  7. (g)更改加密的级别将对安全性和性能产生影响(权衡点)
  8. (h)主站点断电后,需要在3秒内将访问请求重定向到备用站点(可用性)
  9. (i)假设每秒用户交易请求的数量是10个,处理请求的时间为30毫秒,则“在1秒内完成用户的交易请求”这一要求是可以实现的(非风险点)
  10. (j)用户信息数据库授权必须保证99.999%可用(安全性)
  11. (k)目前对系统信用卡支付业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性(风险点)
  12. (l)更改Web界面接口必须在4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗念笙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值