-
为学堂在线清华大学《软件工程》部分视频笔记
-
目录
-
12.8数据库选择策略
-
数据库应具备的功能
-
数据库的基本分类
-
常见的数据库及其特点
- mysql
- Mongodb
- Redis
-
数据库选择策略
- 分离业务
-
-
12.1软件体系结构概念
-
软件的复杂性
- 问题:当系统的规模和复杂度不断增大的时候,构造整个系统的关键是什么? (比如统计文件单词频率与输出频率最高的单词 和 web信息检索之间的对比)
随着软件系统的规模和复杂性不断增加,对系统的全局结构设计和规划变得比算法的选择和数据结构的设计明显重要得多。
- 问题:当系统的规模和复杂度不断增大的时候,构造整个系统的关键是什么? (比如统计文件单词频率与输出频率最高的单词 和 web信息检索之间的对比)
-
软件体系结构概念
软件体系结构( Software Architecture )包括构成系统的设计元素的描述、设计元素之间的交互、设计元素的组合模式以及在这些模式中的约束。- 构件
构件是具有某种功能的可复用的软件结构单元,表示系统中主要的计算元素和数据存储。
构件作为一个封装的实体,只能通过他的接口和外部环境进行交互,其内部的结构是被隐藏起来的。构件的功能,以服务的形式体现出来,并通过接口向外发布,进而产生与其他构件之间的关联。
- 连接
连接是构件间建立和维护行为关联与信息传递的途径。
- 连接件
连接件表示构件之间的交互并实现构件之间的连接。
连接件也可以看做是特殊的构件。
- 构件
-
软件体系结构的发展
-
软件体系结构的目标
-
风格、模式和框架
- 框架和体系结构的关系
- 框架和设计模式的关系
-
-
12.2软件设计原则
- 软件设计原则
设计原则是系统分解和模块设计的基本标准,应用这些原则可以使代码更加灵活、易于维护和扩展。- 抽象
抽象是关注事物中与问题相关部分而忽略其他无关部分的一种思考方法。
抽象可以起到降低复杂性和增强扩展能力的作用
- 封装
封装和信息隐藏是指每个软件单元对其他所有单元都隐藏自己的设计决策,各个单元的特性通过其外部可见的接口来描述。
要求: 应将单元接口设计得尽可能简单,并将单元对于环境的假设和要求降至最低。
- 模块化
模块化是在逻辑和物理上将整个系统分解成多个更小的部分,其实质是“分而治之”,即将一个复杂问题分解成若干个简单问题,然后逐个解决。- 系统分解原则
- 高内聚,低耦合
- 系统分解原则
- 层次化
- 复用
复用( Reuse )是利用某些已开发的、对建立新系统有用的软件元素来生成新的软件系统,其好处在于提高生产效率,提高软件质量。
- 抽象
- 软件设计原则
-
12.3软件体系结构风格(一)
-
软件体系结构风格
标准化的体系结构有利于系统的互操作
-
常见的体系结构风格
- 独立构件风格
- 数据流风格
- 以数据为中心的风格
- 仓库体系结构
适合于实现哪些经常发生改变而且具有复杂数据处理的任务,只要仓库的定义良好,就可以很方便地增添功能模块从而实现向系统增加新的服务
问题:每个模块和仓库之间的耦合非常高,集中式的仓库很有可能成为系统性能的瓶颈
- 仓库体系结构
- 虚拟机风格
- 调用/返回风格
- 主程序-子程序风格
C语言
- 面向对象
C++,Java
- 主程序-子程序风格
- 管道-过滤器风格
构件具有良好的隐藏性和高内聚、低耦合的特性,可以很好地支持软件的重用和扩展,但是这种结构不适合交互应用的情况,如果管道过长或者过滤器过于复杂的话,系统性能大大降低。
-
软件系统设计(上)
最新推荐文章于 2023-11-29 23:45:59 发布