软件体系结构风格
- 系统概述
- 文档概述
- 术语定义
- 软件系统概述
- 软件设计目标
- 设计和实现约束
- 参考文献
- 设计指南
- 体系结构设计指南
- 界面设计指南
- 模块/子系统设计指南
- 过程/算法设计指南
- 数据模型设计指南
- 体系结构设计
- 界面设计
- 模块/子系统设计
- 过程/算法设计
- 数据模型设计
- 需求-设计的可追踪性
- 实施指南
-
管道/过滤器风格
管道/过滤器风格的一个显著特征是系统中构件之间通过数据流松散耦合。也就是说,构件之间的依赖仅仅是数据流,而不是通常的接口函数调用和消息传递。
-
层次风格
从向外提供服务的构件出发,沿着连接关系依次搜索各构件和连接子,如果形成的拓扑结构是一个有向无圈图,那么这个系统的体系结构风格就是层次式的。
优点:
- 便于将复杂的系统进行分解
- 同时也便于替换,只要保持接口一致,就可以将某一层的构件替换,而不会影响到系统的其他部分
-
客户/服务器风格
从向外提供服务的构件出发,沿着连接关系依次搜索各构件和连接子,如果形成的拓扑结构是一颗倒置的树,那么这个系统的体系结构就是客户/服务器风格的。
优点:
- 使得服务功能的实现更集中,便于系统实现。
-
分布式构件框架
它封装了网络通信的细节,具有两部分功能:其一,向客户提供服务器上分布构件的接口;其二:向服务器上的分布构件提供一个运行的环境。在此方案下,客户和分布构件都不需要关心网络通信问题,只需要使用分布构件框架提供的接口即可。
-
EJB
EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。
-
工厂方法、抽象工厂和单例都是创建型设计模式。
-
工厂方法和抽象工厂
设计模式-工厂模式(简单工厂、工厂方法、抽象工厂)
工厂方法:定义一个抽象工厂类,不负责所有实例的创建,而是把具体的创建工作交给了子类去完成,实例化延迟到子类加载,由子类来决定要实例化的类。
抽象工厂:提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定他们具体的类
-
单例
核心思想:将一个类的构造函数设为非public,有效的阻止从外部直接创建该类的实例;同时设置一个静态成员函数,以负责创建唯一的实例并向外提供访问接口
适用场合:当确保一个类最多只需要一个实例时。
软件生存周期
- 软件设计特征是否与需求一致,能否满足需求规格说明的要求
- 设计是否具有良好的结构特征,如信息隐藏、高内聚、低耦合
- 软件体系结构的形态是否合理
- 软件的人机界面是否合理
- 子系统和模块的设计是否具有较高的独立性
- 子系统和模块是否实现了其接口要求的行为
- 软件的层次是否清晰
可行性研究、需求分析、概要设计、详细设计、软件构造、单元测试、集成测试、确认测试、使用与维护、退役
云服务对体系结构设计有什么改变?设计题(1*30)云服务重塑了企业级应用的架构,公共云成为了集成企业应用、平台软件和服务的一个设计中心。API驱动的资源按需分配,与传统的企业数据中心基础设施有着很大的不同。
-
分析流程
-
数据库设计
-
数据流图
外部实体、长方形、名词
转换、圆形、动词
数据源、平行线、表格/文件
-
状态图
-
学习规划
-
架构师职责
1、负责公司软件系统的技术路线、架构设计、研发工作。
2、承担从产品需求向技术实现转换的桥梁作用,根据产品规划来更新技术架构的研发方向
3、参与项目计划评审。
4、参与需求分析、建模、软件设计评审。
5、负责组织技术研究和攻坚工作。
7、负责组织及带领公司内部员工研究与项目相关的新技术。
8、管理技术架构团队并给项目、产品开发实施团队提供技术支持。
9、理解产品/项目的业务需求,给出软件系统整体解决方案(包括技术框架和业务框架)
10、对技术基础架构的相关技术和业务进行培训,指导开发人员开发。并解决系统开发、运行中出现的各种问题。
11、探索前沿新技术、打造团队技术栈。
-
怎么做软件体系结构设计
- 开发软件顶层架构
- 搜素并选取可用设计资产
- 设计技术支撑方案
- 确定设计元素
- 开发软件部署模型
- 设计并发机制
- 构件软件体系结构设计模型
- 评审软件体系结构模型



