软件体系结构的复习提纲

(1)   软件体系结构定义、作用、意义

 

软件体系结构定义

  软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。

    处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。

   

体系结构意义

体系结构是风险承担者(又称为涉众,stakeholder)进行交流的手段

    软件体系结构代表了系统的公共的高层次的抽象。这样,系统的大部分有关人员(即使不是全部)能把它作为建立一个互相理解的基础,形成统一认识,互相交流。

    体系结构提供了一种共同语言来表达各种关注和协商,进而对大型复杂系统能进行理智的管理。这对项目最终的质量和使用有极大的影响。

 

 

 

(2)   软件风格定义

软件体系结构风格

软件体系结构是一种分类。 

软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。

 

  体系结构风格定义了一个系统家族,即定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。

 

  体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统

 

管道和过滤器风格的优点

 使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;

 

◎ 允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;

 

◎ 支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;

 

◎ 系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;

 

◎ 允许对一些如吞吐量、死锁等属性的分析;

 

◎ 支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。

 

管道和过滤器的缺点

通常导致进程成为批处理的结构。

 

◎ 不适合处理交互的应用。

 

◎ 因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。

 

(3)CS风格优缺点

优点

◎ 模型思想简单,易于人们理解和接受。

 

◎ 灵活、易维护与扩充:系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。

 

◎ 资源可以进行合理配置:在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。

缺点

◎ 开发成本较高

 

◎ 客户端程序设计复杂

 

◎ 用户界面风格不一,使用繁杂,不利于推广使用

 

◎ 软件移植困难

 

◎ 软件维护和升级困难

 

◎ 新技术不能轻易应用

 

(4)BS风格优缺点

优点

◎ 基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。

 

◎ B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础

 

缺点

◎ 没有集成有效的数据库处理功能,对数据处理功能不强。

 

◎ 安全性难以控制。

 

◎ 采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。

 

◎ B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用

 

 

(5)管道过滤器风格优缺点

管道和过滤器风格的优点

◎ 使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;

 

◎ 允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;

 

◎ 支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;

 

◎ 系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;

 

◎ 允许对一些如吞吐量、死锁等属性的分析;

 

◎ 支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。

 

管道和过滤器的缺点

◎ 通常导致进程成为批处理的结构。

 

◎ 不适合处理交互的应用。

 

◎ 因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。

 

 

 

(6)OO风格的优点

◎ 因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象;

 

◎ 设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。

 

面向对象系统的缺点

◎ 为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象;

 

◎ 必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。例如,如果A使用了对象B,C也使用了对象B,那么,C对B的使用所造成的对A的影响可能是料想不到的

 

 

(7)层次体系结构优缺点

 分层系统的优点

◎ 支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解;

 

◎ 支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;

 

◎ 支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。

 

分层系统的缺点

◎ 并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来;

 

◎ 很难找到一个合适的、正确的层次抽象方法。

 

 

(3)   设计模式定义、作用、意义

软件设计模式是对软件设计经验的总结,是对软件设计中反复出现的设计问题的成功解决方案的描述。

描述:名称、问题、解决方案、效果

意义:非常重要

面向对象的设计模式可以等价于结构化编程语言的算法、数据结构。可以认为是OO的算法或(和)数据结构

 

 

(4)   经典23种设计模式分类

1. Singleton(单件) Pattern

2. 2.Factory Method
(工厂方法,虚构造器)

3. Abstract Factory(抽象工厂)

4. Builder(生成器)

5. Prototype(原型)

6. Adapter(适配器)

7. Flyweight(享元)

8. Façade (统一外部界面)

9. Composite(组合) Pattern

10. Decorator(装饰)

11. Proxy(代理)

12. Bridge(桥接)

13. Observer(观察者) Pattern

14. State(状态) Pattern

15. Chain of Responsibility

16. Strategy(策略) Pattern

17.  Interpreter

18. Iterator(迭代器,游标)

19. Mediator(中介者)

20. Memento(备忘录)

21. Template Method(模板方法)

22. Visitor(访问者)

 

 

(5)   开闭原则

1.对于扩展是开放的。这意味着模块的行为是可以扩展的,即当需求改变时,软件开发者可以对模块进行扩展,增加新的功能。

2.对于修改是封闭的。在对模块金星伟进行扩展时,不允许改动模块中已经存在的类的源代码。

如果一个设计能够同时满足以上两条,则称该设计符合开闭原则。

 

 

(6)   接口编程思想以及优点

接口编程-将实现与逻辑分离

面向接口编程就是先把客户的业务提取(抽象)出来,作为接口。业务具体实现通过该接口的实现类来完成。

好处:当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件(例如Spring框架)中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响。采用基于接口编程的项目,业务逻辑清晰,代码易懂,方便扩展,可维护性强。即使更换一批人员,新来的人依然可以快速上手。对于公司来说,意义更大。

接口本质上就是由制定者来协调实现者和调用者之间的关系。

例子:

(1)电脑配件统一接口,各个实现,达到通用。

(2)不同课程学习(音乐生的学习、计算机系的学生学习)

 

 

 

(7)   单例模式

(8)   简单工厂方法

(9)   工厂模式

(10)抽象工厂模式

(11)组合模式(安全组合模式、透明组合模式)

(12)适配器模式(类适配器、对象适配器)

(13)Hibernate的ORM模式要点

(14)Spring的IOC模式要点

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值