填空重点
- SpringBoot的核心功能:集成jar包、自动配置
- 视图模型:逻辑视图和开发视图描述系统静态结构)、物理视图和进程视图(描述系统动态结构)
补充:
逻辑视图:定义系统目标
开发视图和进程视图:提供系统设计的详细方案
物理视图:解决系统的拓扑结构、安装和通信问题 - 常见的软件体系结构风格:分层架构、MVC、B/S、C/S、RESTFUL、管道过滤器、事件驱动、响应式、微服务、云计算
分类:
基本软件体系架构:分层架构、MVC
分布式架构 :B/S、C/S、RESTFUL
数据处理风格架构:管道过滤器、事件驱动、响应式 - 分布式网络采用的软件架构从分层的、到三层架构,再到MVC和RESTFUL风格演变
补充:
分层架构:将问题分而治之求解,简化了系统设计与实现的复杂度;
三层架构:表示层、业务逻辑层、数据访问层
MVC:将前端代码和后端代码解耦合,提高系统资源的利用率
RESTFUL:使得系统更加标准 - 管道过滤器软件体系结构风格的应用有Unix Pipeline、编译器、java io stream、AXIS,这种架构的核心构件:Pipes、Filters、Data Source、Data Sink
优点:
- 过滤器可重用
- 不需要保存中间结果,管道将前一个filter的结果直接发送给下一个filter
- 高效并行处理
缺点: - 数据传销大
- 数据转换开销大
- 错误处理复杂
- 软件体系结构中可以很好地解决系统耦合性问题的是事件驱动架构,使用这种架构的设计主要有含有GUI的程序、调试器,核心构件时间发生方、事件管理器、事件消费方。事件驱动架构的实现方式观察者模式、发布/订阅模式
观察者模式和发布/订阅模式的区别:
- 观察者模式中事件源和事件消费方耦合度较高,通信方式是同步的
- 发布/订阅模式中事件源和事件消费方耦合度较低,通信方式是异步的。
- 软件体系结构包括构成系统的设计元素的描述、设计元素之间的交互、设计元素之间的组合模式以及在这些模式中的约束
- 软件体系结构的本质:通过内部合理编排,使系统高度有序,可以不断扩展,满足业务和技术需求
- 软件体系结构的目标:保证系统高度有序,能够进化,可以满足现在和未来的各种变化
- 软件体系结构的三种典型分类:业务架构、技术架构和应用架构
- 工业发展模式的典型特点:进行符合标准构件的构件生产,基于标准构件的产品生产。构件是核心和基础,复用是必须手段
- 构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统
- 软件重用是指在两次或多次不同的软件开发过程中使用相同或相近软件元素的过程
- 软件元素:程序代码、设计文档、设计过程、需求文档分析、领域知识
- 常见的构件模型:OMG的CORBA、SUN的EJB和微软的DCOM
- 软件体系结构的核心模型组成元素:构件、连接件、配置、端口和角色
简答题重点
- 软件重用的优点
①减少软件开发活动中大量重复性工作
②有助于改善软件质量
③提高软件的灵活性和标准化程度
- 基于构件开发的优点,并简要说明基于构件的软件开发可复用层次
优点: 易于软件的重用,易于维护
可复用层次如图:
- 软件体系结构的核心模型以及模型中元素的关系
- 什么是软件体系结构风格?学过的软件体系结构风格从经典到流行主要有哪些?请说明这些架构各自的特点、优缺点和用途
软件体系结构风格是描述某一特定领域中系统组织方式的惯用模式,反应了领域中众多系统所共有的结构和语义特性,并指导各个模块和子模块有效地组织成一个完整的系统
经典风格:层次架构、三层架构、B/S、C/S、管道过滤器、事件驱动
流行架构:MVC、RESTFUL、分布式、响应式、微服务、云计算等
层次架构
特点:系统被分成若干层,层次之间通过接口形成调用和返回关系。每层为上一层提供服务,使用下一层的服务。
优点:大问题分而治之为小问题,复杂度小;扩展型强,可复用;
缺点:并不是每一个系统都能划分为分层模式
三层架构
业务层、数据访问层、业务逻辑层
C/S架构
特点:应用分为客户端和服务器两部分,客户端向服务器发起请求,等待返回服务结果;浏览器负责解析处理客户发起的请求,返回结果给客户;
优点:应用于FTP、web等服务,可以减少网络通信开销
B/S架构
特点:用户界面代码放在服务器上,针对每次请求,servlet不处理,按照勇摄规则将请求交给controller处理,通过view渲染
优点:便于部署和管理,应用广泛
MVC架构
特点:由Model(核心数据处理功能)、view(从Model获取数据展示给用户)和Controller(处理事件操作模型)三部分组成
优点:前后端代码分离,代码事件的耦合度低
RESTFUL架构
特点:前后端代码完全解耦合,对资源的命名进行了规范;使用的资源访问接口统一为get、post、put和delete
优点:使代码更加规范
事件驱动架构
特点:采用消息、消息队列技术,核心构件为事件发生方、事件管理器、事件消费方。通常采用观察者模式和发布/订阅模式进行实现
优点:境地系统的耦合性
管道过滤架构
特点:批量处理数据
优点:过滤器可重用;不需要中间结果,管道直接将前一个filter的结果发送给后面的filter;高效的并行处理
缺点:数据传输开销较大、数据转换开销较大、错误处理较为复杂
响应式架构
特点:即时响应性、回弹性、弹性、消息驱动,采用事件流处理机制
优点:系统吞吐率高,避免了由于某一个部件过载而影响整个系统的性能
微服务架构
特点:将一个完整的烯烃拆分成若干个子系统,每个服务可单独进行负载均衡,使用spring boot技术支持运行
优点:节省系统资源,使系统更加高效
- 新医改方案一旦出台,医院、药店、医疗器械厂商、卫生监管部门的系统如何快速集成到 一起?
利用企业应用集成技术
- 通过文件来传输互通状态信息
- A 系统提供有功能接口,B 通过该接口进行调用,A 进行响应
- 共享数据源(数据库)
- 通过事件或者消息传递自己的状态信息,利用消息总线传递给另一种应用,然后将这个消息 注入到其他系统中去,使得这些系统之间能够通过发送消息来实现互通
- 、如果你将来的公司里有很多类似的肿瘤系统,它包含了太多职责,导致系统内部结构混乱, 如何调整设计一个可扩展的架构?请说明核心思想
可以采用通用化和平台化两种手段
当不同业务线对某个功能需求比较类似时可以采用通用化整合,从而替代多个类似功能的模块。平台化是把定位相同的模块组织在一起,以组团的方式对外提供服务。通过打造业务平台,一方面于减少了模块的数量;另一方面,它的定位更明确,系统依赖关系也更清晰。如果有新的业务进来,它可以基于业务平台快速落实。
关注博主,带你高效复习,走最少的弯路,写最精简的答案~2-3小时轻轻松松搞定期末不挂科!你值得拥有