Software Design and Architecture

Unified Modeling Language

优势:为使用者提供了统一的、表达能力强大的可视化建模语言,以描述应用问题的需求模型、设计模型和实现模型。

UML2.0:Infrastructure(底层结构)、Superstructure(上层结构)、OCL(对象约束语言)、Diagram Interchange(图像交换)

结构建模:类图、包图、对象图、构件图、组合结构图、部署图

行为建模:活动图、顺序图、通信图、交互概览图、时序图、状态图、用例图

面向对象:对象、类、继承、聚集、多态、消息

 

软件体系结构:软件体系结构是软件系统的结构,包括软件元素、软件元素外部可见的属性以及这些软件元素之间的关系。

 

软件体系结构风格:在构件和连接子的层次描述的可重复使用的软件设计问题解决方案。

代表风格:数据流风格、调用/返回风格、独立构件风格、虚拟机风格、仓库风格......

软件设计模式:在类和对象的层次描述的可重复使用的软件设计问题解决方案。(类型:创建型、结构型、行为型)

 

软件设计的最终目标是获取能满足软件需求的、明确的、可行的、高质量的软件解决方案。

抽象、模块化

内聚:偶然性内聚、逻辑性内聚、时序内聚、过程性内聚、通信性内聚、顺序性内聚、功能性内聚

耦合:非直接耦合、数据耦合、特征耦合、控制耦合、外部耦合、公共耦合、内容耦合

 

基于评估与转换的软件体系结构设计

迭代改进

评估方式:基于场景的评估、仿真、数学建模、基于经验的推理

转换方式:改进体系结构设计、非功能需求转化为功能性需求解决方案、“分而治之”

 

概念模型设计

分析类:边界类、控制类、实体类

概念模型设计定义:为了把现实世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个数据库管理系统(DBMS)支持的数据模型,而是概念级的模型,称为概念模型。

建立软件概念模型的原因:由于概念模型用于信息世界的构建模型,是现实世界到信息世界的第一层抽象,是用户与数据库设计人员之间进行交流的语言,因此概念模型一方面具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还简单、清晰、易于用户理解。

持久数据模型设计:①确定设计模型中需要持久保存的类的对象及其属性(实体类)②确定持久存储的数据之间的组织方式③确定数据模型中的操作行为④优化持久数据操作的性能

类的行为模型设计:①针对整个类使用状态图描述 ②针对类中方法用活动图描述

 

 

观察者模式:

推模式的优点是当消息来临时,观察者很直接地都到信息,然后进行相关地处理,与被观察者没有一点联系,两者几乎没有耦合。

 

推模式的缺点是当消息来临时,所有的信息都强迫观察者,不管有用与否。还有一个致命的缺点是,如果想在通知消息中添加一个参数,那么所有的观察者都需要修改了,这一点往往被忽视。

拉模式相对推模式灵活高效了很多,但观察者和被观察者提高了一定的耦合,这一点可以通过接口尽量降低。

 

posted @ 2022-06-14 22:19  Lucy_lll  阅读(52)  评论(0)    收藏  举报