1.实验名称 通过实验,熟悉并掌握面向对象架构设计模式的设计过程。 | |||||||||||||||||||||||||
2.实验目的 完成系统的软件架构设计图。 | |||||||||||||||||||||||||
(1) 参照实验一的需求分析,和业务约束及限制,构建本系统的业务架构。 (2) 领域架构设计。 第一步:提取业务模块
第二步:确定业务模块之间的关系
第三步:完成领域架构图 (3) 软件架构设计。 第一步:“照猫画虎”:将领域架构中的各部分的名称后增加“⼦系统”,形成初始的软件架构。 绘制初始软件架构图如下: 第二步:“按图索骥”:根据质量需求,选取合适的架构模式。 第三步:“深思熟虑”:全⾯评估各个备选⽅案的优劣点,挑选最优的⽅案。
| |||||||||||||||||||||||||
4.实验过程 (1)构建业务架构 业务整体结构: 用户第一次下载使用中通快修技师维修端,在维修工登录页面点击注册账号 -> 用户进入注册界面,填写手机号,验证码以及密码,点击确认完成注册->用户注册成功后点击去登录,进入登录页面->用户点击忘记密码,进入找回密码界面->用户输入手机号,接受验证码,修改新密码->用户进入登录页面并输入手机号和密码点击登录进入应用首页 业务约束和限制 性能:10万个用户同时使用 登录页面要可以承担多名用户的访问请求 成本:预算<=100万 可靠性:登录每失败五次后增加10分钟的等待时间,必须使用中国手机号码注册,因为APP只在中国地区提供服务,登录相关信息采集与应用需符合国家标准要求 技术性:.NET技术 兼容性:与APP的其它功能兼容 | |||||||||||||||||||||||||
第一步:提取业务模块 提炼业务模块: 用户下载APP。提炼‘下载’ 用户在维修工登录页面点击注册账号。提炼‘注册’ 用户填写手机号,验证码以及密码,点击确认完成注册。提炼‘输入’ 用户注册成功后点击去登录,进入登录页面。提炼‘登录’ 用户点击忘记密码,进入找回密码界面。提炼‘找回密码’ 用户输入手机号,接受验证码,修改新密码。提炼‘新密码’ 用户进入登录页面并输入手机号和密码点击登录进入应用首页。提炼‘应用首页’ 业务模块优化: 合并,拆分。现有业务的先进模式,未来的业务模式。 第二步:确定业务模块之间的关系 业务模块间的关系: ‘注册’,‘登录’,‘找回密码’模块都需要从‘输入’模块获取‘个人信息’ ‘找回密码’模块给与‘新密码’ ‘输入’模块通过‘账号’‘密码’进入‘业务首页’ 第三步:完成领域架构图
第一步:“照猫画虎”:将领域架构中的各部分的名称后增加“⼦系统”,形成初始的软件架构。 绘制初始软件架构图如下: 第二步:“按图索骥”:根据质量需求,选取合适的架构模式。 性能需求不满足(10万人同时使用) 不满足原因:单台机器自身性能瓶颈 方法一:增加物理机器的数量。例如:用10台机器来完成‘登录子系统’,那么每台机器1万人.每台机器同时能够满足的注册人数为1万人/秒此时同时求请求注册的人数为8万人,请求登录和修改的人数分别为5千,5千,可以看出注册时使用一台服务器明显是不能够满足的,所以我们拆机器,将机器拆为10台,每台处理1万/s的登录请求。 方案二:拆分’输入子系统’为:’账号输入子系统’ , ’密码输入子系统’ .然后把每个子系统再对照质量需求评估.拆分后会发现’账号输入子系统’需要设计10台机器来完成, ‘密码输入子系统’可以慢慢对照’账号输入子系统’传来的账号.’密码输入子系统’用1台机器完成. 第三步:“深思熟虑”:全⾯评估各个备选⽅案的优劣点,挑选最优的⽅案。 深思:全面评估
熟虑:挑选方案 选择的标准:按质量属性的优先级进行判定.即:优先选择我们最关注的质量属性表现占优的方案.性能是我们最关注的质量属性.两个方案表现一样.继续比较.其次关注的质量属性是可靠性,两方案对比之下,方案1更优.所有选择方案一 | |||||||||||||||||||||||||
软件设计与体系结构实验报告
于 2022-12-15 21:47:32 首次发布