该【系统架构设计师 案例分析 】是由【学锋】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【系统架构设计师 案例分析 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..软件工程【问题】识别设计类是面向对象设计过程中的重要工作,设计类表达了类的职责,即该类所担任的任务。请用300字以内的文字说明设计类通常分为哪三种类型,每种类型的主要职责,并针对题干描述案例涉及的具体类为每种类型的设计类型举出2个实例。1)实体类。实体类映射需求中的每个实体,保存需要存储在永久存储体中的信息,例如,用户、商品等。2)控制类。控制类是用于控制用例工作的类,用于对一个或几个用例所特有的控制行为进行建模。例如,结算、备货等。3)边界类。边界类用于封装在用例内,外流动的信息或数据流。例如,浏览器、购物车等。【问题】在面向对象的设计过程中,活动图阐明了业务用例实现的工作流程。请用300字以内的文字给出活动图与流程图的三个主要区别。活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现系统的行为,而非处理过程;而流程图着重描述处理过程。流程图一般都限于顺序进程,而活动图则可以支持并发进程。活动图是面向对象的,而流程图是面向过程的【问题】设计模式按照其应用模式可以分为三类:创建型、结构型和行为型,请用200字以内文字说明三者的作用。创建型模式主要用于创建对接,为设计类实例化新对象提供指南。结构型模式主要用于处理类或对象的组合,对类如何设计以形成更大的结构提供指南。行为型模式主要用于描述类或对象的交互以及职责的分配,对类之间交互以及分配责任的方式提供指南。【问题】请将项目组已经掌握的设计模式按照其作用分布归类到创建型、结构性和行为型模式中。创建型模式:构造器模式、原型模式结构性模式:适配器模式、外观模式、代理模式行为型模式:命令模式、中介模式、状态模式和策略模式。1:..数据库设计【问题1】商铺用户需要实时统计本商铺的货物数量和销售情况,以便于及时补货,或者为商铺调整销售策略。为此专门设计了可实时查看当天商铺中货物销售情况和存货情况的视图,商铺产品销售情况日报表(商铺编码、产品编码,日销售产品数量,库存数量,日期)。1)数据库运行测试过程中,发现针对该视图查询性能比较差,不满足用户需求。2)请说明数据库视图的基本概念及其优点,并说明本视图设计导致查询性能较差的原因。视图是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。视图的优点:1)视图能简化用户的操作2)视图机制可以使用户以不同的方式查询同一数据3)视图对数据库重构提供了一定程度的逻辑独立性4)视图可以对机密的数据提供安全保护查询性能较差的原因是视图中,“日销售产品数量”需要针对订单表做统计分析,订单表中有数量庞大的历史销售记录,所以这种操作极为耗时。【问题2】为解决该视图查询性能比较差的问题,张工建议为该数据建立单独的商品当天货物销售、存货情况的关系表。但李工认为张工的方案造成了数据不一致的问题,必须采用一定的手段来解决。1)说明张工方案是否能够对该视图查询性能有所提升,并解释原因。2)解释说明李工指出的数据不一致的问题产生的原因。1)张工方案能够对该视图查询性能有所提升,因为这样做能极大的减少统计分析的数据量,对小数据量进行统计,性能是能得以保障的2)由于当日订单数据既存储在订单表中,又存储在单独的当天货物销售、存货情况表中,统一数据存储了两份,一旦出现修改,未同步修改,则会造成数据不一致。【问题3】针对李工提出的问题,常见的解决手段有应用程序实现,触发器实现和物化视图实现等,请用300字以内的文字解释说明这三种方案。应用程序实现:在进行订单的添加、修改、删除操作时,从应用程序中,控制对两个数据表都进行相关操作,以保障数据的一致性。触发器实现:在应用程序中,只对订单表进行操作。但写触发器,当订单表发生变化时,把当日订单内容同步更新到当天货物销售、存货情况表中。物化视图实现:建立“当天货物销售、存货情况”的物化视图,物化视图会把相应的数据物理存储起来,而且在订单表发生变化时,会自动更新。【问题1】系统需要管理供应商和货物等信息,具体包括供应商姓名、地址以及货物名称、价格等,供应商可以提供0-n种货物,其公司地址也可能发生变化。请以供应商关系模式supplier(name,address,)为例,解释不规范的关系模式存在哪些问题。1)数据冗余:关系模式中多次重复记录了同一供应商的地址。2)插入异常:如果还未确定一个供应商有哪些货物,只是想添加一个供应商的地址信息,则会产生产品与价格均为空的记录。2:..3)修改异常:当修改一个供应商的地址时,需要将多条记录同时更新,若未同时更新,则数据产生不一致。4)删除异常:当删除一个供应商的货物时,其地址信息被一并删除。【问题2】应用开发小组认为张工的规范化设计虽然解决了未规范化关系模式带来的问题,但实际实现功能时会造成系统性能的下降,请解释其原因。数据库规范化的过程,实际是对数据表的不断拆分,以达到更高的规范程度。这样处理,带来的问题是:系统中大量查询不能通过单表完成,而需要将多表进行连接查询,所以表拆分得越多,查询性能也就越差。【问题3】请解释逆规范化方法,说明其优缺点。规范化设计后,数据库设计者希望牺牲部分规范化来提高性能,这种从规范化设计的回退方法称为反规范化技术。逆规范化方法优点:提高统计、查询效率。逆规范化方法缺点:增加了数据冗余,浪费存储空间,增、删、改操作的效率降低,可能导致数据不一致,可能产生添加、修改、删除异常。【问题1】张工方案中采用了读写分离,主中复制策略。其中,读写分离设置物理上不同的主/从服务器,让主服务器负责数据的写操作,从服务器负责数据的读操作,从而有效减少数据并发操作的锁争用,但却带来了数据冗余。因此,需要采用主从复制策略保持数据的一致性。【问题2】关系数据库与Nosql数据库特征比较特征关系数据库NoSQL数据库数据一致性实时一致性最终一致性数据类型结构化数据非结构化数据事务高事务性柔性事务性水平扩展弱强数据容量有限数据海量数据【问题3】刘工提出的方案采用了key-value数据库+mysql数据库的混合方案,是根据数据的读写特点将数据分别部署到不同的数据库中。但是由于部分数据可能同时存在于两个数据库中,因此存在数据同步问题。请用200字以内的文字简要说明解决该数据同步问题的三种方法。1)实时同步方案,先查缓存,查不到再从DB查询,并保存到缓存;更新缓存时先更新数据库,再将缓存设置过程期更新缓存。2)异步列队方式同步,可采用消息中间件处理3)通过数据库插件完成数据同步4)利用触发器进行缓存同步3:..架构设计【问题1】请用200字以内的文字解释什么是软件架构风格,并从集成开发环境与用户交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案。软件架构风格是指描述特点软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。从集成开发环境与用户的交互方式,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理,而管道-过滤器架构风格则对用户的交互式数据处理支持有限。从集成开发环境的扩展性来看,系统核心需求要求实现各种编辑、语法检查、解释执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系,并可以灵活打底衣功能之间的逻辑顺序。管理-过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差。从集成开发环境的数据管理来看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误),可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。管道-过滤器架构风格通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差。【问题2】在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最为合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程。未来满足需求(2),应该采用解释器架构风格。具体来说,需求:为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;编写解释器对该语言进行解释;生成对应的交付语言程序。为了满足需求(3),应该采用隐士调用架构风格。具体来说,首先需要定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数,集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项。在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位。【问题1】分布式数据库缓存指的是在高并发环境下,为了减轻数据库压力和提高系统响应时间,在数据库系统和应用系统之间增加的独立缓存系统。MemCacheRedis数据类型简单key/value结构丰富/多种数据结构(list,key/value,set等)持久性不支持支持分布式存储客户端哈希分片/一致性哈希多种方式,主从、sentinel、cluster等多线程支持支持无内容管理有,私有内存池无4:..事务支持不支持有限支持【问题2】刘工认为李工的方案数据可靠性和一致性的问题,请说明原因。为避免数据可靠性和一致性问题,刘工的方案采用Redis作为数据库缓存,请说明基本的Redis与原有关系数据库的数据同步方案。Memcache没有持久化功能,所有掉电数据会全部丢失,而且无法直接恢复这存在可靠性问题。Memcache不支持事务,所以操作过程中可能产生数据的不一致性。同步方案:读取数据时,先读取Redis中的数据,如果Redis没有,则从原始数据库中读取时,并同步更新Redis中的数据。写回时,写入到原数据库中,并同步更新至Redis中。【问题3】请给出Redis分布式存储的2中常见方案和Redis集群切片的几种常见方式。Redis分布式存储的常见方案:1)主从模式(Master/Slave)2)哨兵模式3)集群模式Redis集群切片的常见方式:1)客户端分片,即在客户端就通过key和hash值对应到不同的服务器。2)中间件实现分片。在应用软件和Redis中间,例如:Twemroxy、Coids等,由中间件实现服务到后台Redis节点的路由分派。3)客户端服务端协作分片。RedisCluster模式,客户端可采用一致性河西,服务端提供错误节点的重定向服务slot好,不同的slot对应到不同服务器。【问题1】请用200字以内的文字描述什么是“响应式web设计”,并列举2个响应式web设计的实现方式响应式web设计是指我们设计与开发的页面可以根据用户的行为和不同的设备环境做出相应的响应来调整页面的布局,以提供用户可感知的、流畅的阅读和操作体验。实现方式:1、流式布局2、弹性布局(如弹性图片)3、媒体查询【问题3】根据李工的提议,新的B2C商品交易平台引入了主从复制机制。请针对B2C商品交易平台的特点,简要叙述引入该机制的好处。1、提升性能交易平台要求高并发,主从复制方式一主多从,不同的用户请求可以从不同的从数据库读取数据,提高并发度。2、可扩展性更优如果采用单台数据库服务器,则访问量持续增加时,数据库瓶颈暴露,且无法迅速解决问题,而主从结构可以快速增加从服务器数量,以满足需求。3、提升可用性一主多从一台从服务器出现故障不影响整个系统正常工作。4、相当于负载均衡一主多从,一台从服务器出现故障不影响整个系统正常工作。5、提升数据安全性系统中的数据冗余存放多份,不会因为某台机器硬件故障而导致数据丢失。5:..其他【问题1】请用400字以内文字说明王工拟编制的项目计划中应包括哪些内容?(1)项目背景(2)项目经理、项目经理的主管领导、客户方联系人、客户方的主管领导,项目领导小组(项目管理团队)和项目实施小组人员(3)项目的总体技术解决方案(4)所选择的项目管理过程及执行水平(5)对这些过程的工具、技术和输入输出的描述(6)选择的项目的生命周期和相关的项目阶段(7)项目最终目标和阶段性目标(8)进度计划(9)项目预算(10)项目流程和变更控制委员会(11)对于内容、范围和时间的关键管理评审,以便于确定悬留问题和未决策【问题1】请用300字以内的文字分别解释说明PERT图和Gantt图的具体含义,并说明两种方法所描述开发过程的差异。PERT(项目评估与评审技术)图是一种图形化的网络模型,描述一个项目中任务之间的关系,每个节点表示一个任务,通常包括任务编号、名称、开始和结束时间、持续时间和松弛时间。Gantt图是一种简单的水平条形图,它以一个日历为基础描述项目任务,横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。PERT图主要描述不同任务之间的依赖关系;Gantt图主要描述不同任务之间的重叠关系。【问题1】请用400字以内的文字,分别针对采用对称加密策略与公钥加密策略,说明如何利用加密技术为在网络中传输的数据提供机密性与完整性保障1、对称加密策略(1)机密性:发送者利用对称秘钥对要发送的数据进行加密,只有拥有正确相同秘钥的接收者才能将数据正确解密,从而提供机密性。(2)完整性:发送者根据要发送的数据生成消息认证码(或消息摘要),利用对称秘钥对消息认证码进行加密并附加到数据上发送;接收者使用相同秘钥将对方发送的消息认证码解密,并根据接收的数据重新生成消息认证码,比较两个认证码是否相同以验证数据的完整性2、公钥加密策略(1)机密性:发送者利用接收者的公钥对要发送的数据进行加密,只有拥有对应私钥的接受者才能将数据正常解密,从而提供机密性。(2)完整性:发送者根据要发送的数据生成消息认证码(或消息摘要),利用自己的私钥对消息认证码进行加密并附加到数据上发送;接收者利用对方的公钥将对方发送的消息认证码解密,并根据接收到的数据重新生成消息认证码,比较两个认证码是否相同以验证数据的完整性。6:..【问题2】请用300字以内的文字,从授权的可管理性、细粒度访问控制的支持和对分布式环境的支持三个方面指出项目组采用王工方案的原因。(3)授权的可管理性:RBAC将用户与权限分离,与MAC相比,减少了授权管理的复杂性,更适合于大型企业级系统的安全管理。(4)细粒度访问控制的支持:XACML提供了统一的访问控制策略描述语言,策略表达能力强,可用来描述各种复杂的和细粒度的访问控制安全需求,更适合企业复杂业务功能的访问控制要求。(5)分布式环境的支持:XACML的标准性便于各子系统的协作交互,各子系统或企业业务部门可以分布管理访问控制权限,而MAC则通常需要对访问控制权限集中管理,不太适合企业基于SOA集成后的分布式系统。【问题1】在系统可靠性中,可靠度和失效率是两个非常关键的指标,请分别解释其含义。可靠度就是系统在规定的条件下、规定的时间内不发生失效的概率。失效率又称分险函数,也可以称为条件失效强度,是指运行至此系统未出现失效的情况下,单位时间系统出现失效的概率。【问题2】请解释李工提出的动态冗余和N版本程序设计技术,给出图1中模块M2采用图2动态冗余技术后的可靠度。请给出采用李工设计方案后整个系统可靠度的计算方法,并计算结果。动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来替代他并重新运行。各备用模块在其待机时,可与主模块一样工作,也可以不工作。前者叫冷备份系统(双工系统、双份系统),后者叫热备份系统(双重系统)。N版本程序设计是一种静态的故障屏蔽技术,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。【问题3】请给出检错技术的优缺点,并说明检测技术常见的实现方式和处理方式。检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。检错技术常见的实现方式:最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,自检的实现方式需要根据实际情况来选用。检错技术的处理方式,大多数都采用“查处故障-停止软件运行-报警”的处理方式。但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定。【问题1】请用100字以内文字,说明A公司是否适合采用产品线方法,并说明理由。是否适合采用产品线开发方法关键在于企业是否存在拥有共性领域模型的产品集合。因为A公司的业务是在多平台下开发一系列相关网络安全防护软件,因此适合采用产品线方法7:..【问题2】请用400字以内文字,说明在原有产品的基础上建立软件产品线的方式,并作简要评价。在原有的产品的基础上建立软件产品线主要有两种方式。(1)演化方式:即将现有产品演化为产品线,也就是将特定产品的构件逐渐转化到产品线的公用构件。该方式分解了投资回报周期,最大程度地减少了实施产品线方法的风险,但完成软件产品线核心资源的总周期和总投资都较大。(2)革命方式:即用软件产品线替代现有产品集。这种方法将基本停止现有产品的开发,直接针对软件产品线的核心资源开发。虽然该方法完成软件产品线核心资源的总周期和总投资都会减少,但风险大大加大了。【问题3】请用150字以内文字,说明成功实施产品线的主要因素。(1)对该领域具备长期和深厚的经验。(2)一个用于构件产品的好的核心资源库(3)好的产品线架构(4)好的管理(软件资源、人员组织、过程)支持。8
系统架构设计师 案例分析 来自淘豆网m.daumloan.com转载请标明出处.