工信部网站原来是,软件开发外包服务,阿里云短链接生成,广州小程序设计试题一 软件架构#xff08;架构风格、质量属性#xff09;
【问题1】#xff08;13分#xff09; 针对用户级别与折扣规则管理功能的架构设计问题#xff0c;李工建议采用面向对象的架构风格#xff0c;而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种…试题一 软件架构架构风格、质量属性
【问题1】13分 针对用户级别与折扣规则管理功能的架构设计问题李工建议采用面向对象的架构风格而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种架构风格并从用户级别、折扣规则定义的灵活性、可扩展性和性能三个方面对这两种架构风格进行比较与分析填写表1-1中的1~3空白处。 【问题2】12分 在架构评估过程中质量属性效用树utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中1、2空白处并选择题干描述的a1填入36空白处完成该系统的效用树。
试题二 系统开发数据流图 实体、加工、数据流、系统流程图区别
【问题1】8分 根据订餐管理系统功能说明请在图2-1所示数据流图中给出外部实体E1 ~ E4和加工P1 ~ P4的具体名称。 【问题2】8分 根据数据流图规范和订餐管理系统功能说明请说明在图2-1中需要补充哪些数据流可以构造出完整的0层数据流图。 【问题3】9分 根据数据流图的含义请说明数据流图和系统流程图之间有哪些方面的区别。
(1)数据流图中的处理过程可并行
系统流程图在某个时间点只能处于一个处理过程。
(2)数据流图展现系统的数据流系统流程图展现系统的控制流。
(3)数据流图展现全局的处理过程过程之间遵循不同的计时标准
系统流程图中 处理过程遵循一致的计时标准。
试题三 嵌入式信息物理系统三层概念三类安全威胁
【问题1】9分 通常CPS结构分为感知层、网络层和控制层请用300字以内文字说明CPS的定义并简要说明各层的含义。
信息物理系统Cyber Physical Systems,CPS)作为计算进程和物理进程
的统一体是集计算、通信与控制于一体的下一代智能系统。
信息物理系统通过人机交互接口实现和物理进程的交互
使用网络化空间以远程的、可靠的、实时的、安全的、协作的
方式操控一个物理实体。
感知层主要由传感器、控制器和采集器等设备组成
它属于信息物理系统中的末端设备。
网络层主要是连接信息世界和物理世界的桥梁
实现的是数据传输为系统提供实时的网络服务
保证网络分组传输的实时可靠。
控制层主要是根据认知结果及物理设备传回来的数据进行相应的分析
将相应的结果返回给客户端。【问题3】6分 王工在提交的战略规划中指出未来宇航领域装备将呈现网络化、智能化和综合化等特征形成集群式的协同能力安全性尤为重要。在宇航领域的CPS系统中不同层面上都会存在一定的安全威胁。请用100字以内文字说明CPS系统会存在哪三类安全威胁并对每类安全威胁至少举出两个例子说明。
(1)感知层安全威胁感知数据破坏、信息窃听、节点捕获。
(2)网络层安全威胁拒绝服务攻击、选择性转发、方向误导攻击。
(3)控制层安全威胁用户隐私泄露、恶意代码、非授权访问。试题四 数据库读写并发操作、key/value方案探讨
【问题1】11分 该系统使用过程中由于同样的数据分别存在于数据库和缓存系统中必然会造成数据同步或数据不一致性的问题。该企业团队为解决这个问题提出了如下解决思路应用程序读数据时首先读缓存当该数据不在缓存时,再读取数据库应用程序写数据吋先写缓存成功后再写数据库或者先写数据库再写缓存。 王工认为该解决思路并未解决数据同步或数据不一致性的问题请用100字以内的文字解释其原因。 王工给出了一种可以解决该问题的数据读写步骤如下 读数据操作的基本步骤 1.根据key读缓存 2.读取成功则直接返回 3.若key不在缓存中时根据key(a) 4.读取成功后(b) 5.成功返回。 写数据操作的基本步骤 1.根据key值写© 2.成功后(d) 3.成功返回。 请填写完善上述步骤中a~d处的空白内容。
存在双写不一致问题在写数据时可能存在缓存写成功数据库写失败
或者反之从而造成数据不一致。
当多个请求发生时也可能产生读写冲突的并发问题。
(a)从数据库中读取数据或读数据库
(b)更新缓存中key值或更新缓存
(c)数据库
(d)删除缓存key或使缓存key失效或更新缓存key值【问题2】8分 缓存系统一般以key/value形式存储数据在系统运维中发现,部分针对缓存的杳询未在缓存系统中找到对应的key,从而引发了大量对数据库服务器的查询请求最严重时甚至导致了数据库服务器的宕机。 经过运维人员的深入分析发现存在两种情况 (1)用户请求的key值在系统中不存在时会查询数据库系统加大了数据库服务器的压力 (2)系统运行期间发生了黒客攻击以大量系统不存在的随机key发起了査询请求从而导致了数据库服务器的宕机。 经过研究研发团队决定当在数据库中也未查找到该key时在缓存系统中为key设置空值防止对数据库服务器发起重复查询。 请用100字以内文字说明该设置空值方案存在的问题并给出解决思路。
存在问题不在系统中的key值是无限的如果均设置key值为空
会造成内存资源的极大浪费引起性能急剧下降。
解决思路查询缓存之前对key值进行过滤
只允许系统中存在的key进行后续操作例如采用key的bitmap进行过滤)。【问题3】6分 缓存系统中的key—般会存在有效期超过有效期则key失效有时也会根据LRU算法将某些key移出内存。当应用软件查询key时如key失效或不在内存会重新读取数据库并更新缓存中的key。 运维团队发现在某些情况下若大量的key设置了相同的失效时间导致缓存在同一时刻众多key同时失效或者瞬间产生对缓存系统不存在key的大量访问或者缓存系统重启等原因都会造成数据库服务器请求瞬时爆量引起大量缓存更新操作导致整个系统性能急剧下降进而造成整个系统崩溃。 请用100字以内文字给出解决该问题的两种不同思路。
思路1:缓存失效后通过加排它锁或者队列方式
控制数据库写缓存的线程数量使得缓存更新串行化
思路2:给不同key设置随机或不同的失效时间
使失效时间的分布尽量均匀
思路3:设置两级或多级缓存避免访问数据库服务器。试题五 Web应用非功能性雷求、分布式架构图、Sql注入攻击 【问题3】7分 该物流车辆管理系统需抵御常见的SQL注入攻击,请用200字以内的文字说明什么是SQL注入攻击并列举出两种抵御SQL注入攻击的方式。
SQL注入攻击就是通过把SQL命令插入到Web表单提交
或输入域名或页面请求的查询字符串
最终达到欺骗服务器执行恶意的SQL命令。
可以通过以下方式抵御SQL注入攻击
1.使用正则表达式
2.使用参数化的过滤性语句
3.检査用户输入的合法性
4.用户相关数据加密处理
5.存储过程来执行所有的查询
6.使用专业的漏洞扫描工具。