软件体系结构课程知识点

来源:互联网 发布:怎么申请阿里云客服 编辑:程序博客网 时间:2024/05/17 23:43

软件危机的表现:
1.软件成本日益增长
2.开发进度难以控制
3.软件质量差
4.软件维护困难

软件危机成因:
1.用户需求不明确
2.缺乏正确的理论指
3.软件规模越来越大
4.软件复杂度越来越高

软件工程三要素:方法、工具、过程

1.软件体系结构定义、作用、意义
定义:软件体系结构具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系构件的不同部分组合连接起来。
作用:1.作为通信的手段; 2.代表了早期的设计决策结果
意义:体系结构是风险承担者进行交流的手段;

软件体系结构代表了系统的公共的高层次的抽象,这样,系统的大部分有关人员能把它作为建立一个互相理解的基础,形成统一的认识,互相交流。
体系结构提供了一种共同语言来表达各种关注和协商,进而对大型复杂系统能进行理智的管理,这对项目最终的质量和使用有极大的影响。

2.软件体系结构风格定义
软件体系结构风格是描叙某一特定应用领域中系统组织方式的惯用模式。
体系结构风格定义了一个系统家族,即可定义一个词汇表和一组约束,词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接构件组合起来的。
体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。

3.B/S(browser/server)风格优缺点
浏览器/服务器(B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/web服务器/数据库服务器
优点:
1. 基于B/S体系结构的软件,系统安装、修改和维护安全在服务器端解决,用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块的功能,很容易在运行时自动升级
2. B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础
缺点:
1.没有集成有效的数据库处理功能,对数据处理功能不强
2.安全性难以控制
3.采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远低于C/S体系结构
4.B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用

4.C/S风格优缺点
优点:
1. 模型思想简单,易于人们理解和接受。
2. 灵活、易维护与扩充,系统的客户应用程序和服务器构件分别运行在不同的及计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大地适应性和灵活性,而且易于对系统进行扩充和缩小。
3. 资源可以进行合理配置:在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。
缺点:
1. 开发成本高
2. 客户端程序设计复杂
3. 用户界面风格不一,使用复杂,不利于推广使用
4. 软件移植困难
5. 软件维护和升级困难
6. 新技术不能轻易应用

三层C/S比两层C/S增加了一个应用服务器
三层C/S优点:
1. 允许合理地划分三层结构的功能,使之在逻辑上保持相对对立性,能提高系统和软件的可维护性和可扩展性
2. 允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层,并且这些平台和各个组成部分可以具有良好的可升级性和开发性
3. 应用的各层可以并行开发,可以选择各自最合适的开发语言
4. 利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,为严格的安全管理奠定了坚实的基础
动态软件体系结构分类:
1. 交互性式动态性
2. 结构化动态性
3. 体系结构动态性
软件体系结构模型:
1. 结构模型 (重点)(核心:体系结构描叙语言)
2. 框架模型
3. 动态模型 (重点)
4. 过程模型
5. 功能模型

软件体系结构的核心模型由5中元素组成:
构件:具有某种功能的可重用的软件模板单元
连接件:构件之间的交互
配置:构件和连接件的拓扑结构和约束
端口:表示构件和外部环境的交互点
角色:定义了该连接交互的参与者

软件体系结构的生命周期模型:
1.需求分析阶段
2.建立软件体系结构阶段
3.设计阶段
4.实现阶段

“4+1”视图模型模型:

这里写图片描述

分层系统的优点有:
1) 支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解;
2) 支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;
3) 支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。
分层系统的缺点有:
1) 并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来;
2) 很难找到一个合适的、正确的层次抽象方法。

DSSA:就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构
软件产品线:产品线是一个产品集合,这些共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特征需求
SOA :即service-oriented architecture,面向服务架构。
它是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

管道过滤器风格结构特点
(1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;
(2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
(3)支持软件重用。
(4)系统维护和增强系统性能简单。
(5)允许对一些如吞吐量、死锁等属性的分析;
(6)支持并行执行。

软件体系结构测试的内容与准则:
内容:构件端口行为与连接件约束是否一致、兼容,单元间的消息是否一致、可达,相关端口是否可连接,体系结构风格是否可满足。
准则:测试覆盖所有的构件及各个构件的接口。各个连接件的接口、构件之间的直接连接、构件之间的间接。

MVC是三个单词的缩写,分别为:模型(Model),视图(View)和控制 (Controller)。MVC模式的目的就是实现Web系统的职能分工
Model是应用对象,所有的操作都在这里实现,它若需要取得视图中的对象或更新视图,需通过控制器来进行处理。
View是模型在屏幕上的表示,模型在进行操作后,其结果是通过视图显示的。
Controller用于管理用户与视图发生的交互,定义用户界面对用户输入的响应方式。一旦用户需要对模型进行处理,不能直接执行模型,而必须通过控制器间接实现的。

构件的概念:构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述通讯接口和实现代码的复合体
构件分类方法:关键字分类方法、刻画类方法、超文本组织方法

原创粉丝点击