软件体系结构

一下皆为学习过程中个人整理PPT资料,侵权致歉,可删除
概述:
一、 软件体系结构的定义
  国内普遍接受的定义:软件体系结构包括构件、连接件和约束,它是可预制和可重构的软件框架结构。
  构件是可预制和可重用的软件部件,是组成体系结构的基本计算单元或数据存储单元,可以是一个处理过程或数据元素,是用于实现计算和状态的单元。
  连接件也是可预制和可重用的软件部件,是构件之间的连接单元。
  构件和连接件之间的关系用约束来描述,描述了体系结构的配置和拓扑要求。
软件体系结构 = 构件 + 连接件 + 约束
二、 软件体系结构的发展
  基础研究阶段、概念确立阶段、探索发展阶段、普及应用阶段
三、 软件体系结构的优势
  容易理解
  可重用
  控制成本(无法减少成本)
  可分析性

软件体系结构风格:
一、 软件体系结构风格定义
  软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
An architectural style defines a family of systems in terms of a pattern of structural organization.
  体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
An architectural style defines a family of systems in terms of a pattern of structural organization. More specifically, an architectural style defines a vocabulary of components and connector types, and a set of constraints on how they can be combined.(体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统)
二、 常见的体系结构风格
1.管道和过滤器
每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。
过滤器风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。
不变量:过滤器虽然可以增量式地处理数据,但是它们是独立的;管道和过滤器的正确输出不依赖其顺序。
实例:编译器,功能程序,并行程序
2.数据抽象和面向对象组织
数据的表示方法和它们的相应操作被封装在一个抽象数据类型或对象中。
这种风格的构件是对象或者说是抽象数据类型的实例。
对象通过函数和过程的调用来进行交互。
3.基于事件的隐式调用
构件不直接调用一个过程,而是触发或广播一个或多个事件。
系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程。
这种风格的构件是一个模块,这些模块可以是一些过程,又可以是一些事件的集合。
不变量:事件的触发者并不知道哪些构件会被这些事件影响。(观察者模式)
实例:数据库管理系统,用户界面
4.分层系统
组织成一个层次结构。
每一层都为上一层提供了相应的服务,并且接受下一层提供的服务。
在分层系统的一些层次中构件实现了虚拟机的功能。
实例:分层的通信协议
5.仓库系统
构件:中心数据结构(仓库)和一些独立构件的集合。
仓库和在系统中很重要的外部构件之间的相互作用。
实例:需要使用一些复杂表征的信号处理系统
6.过程控制环路
源自于控制理论中的模型框架,将事务处理看成输入、加工、输出、反馈、再输入的一个持续的过程模型。
通过持续性的加工处理过程将输入数据转换成既定属性的“产品”。
7.C2风格
通过连接件绑定在一起的按照一组规则运作的并行构件网络。
8.C/S风格
基于资源不对等,且为实现共享而提出来的。
有三个主要组成部分:数据库服务器、客户应用程序和网络。
优点:
  具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
  对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
  将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
缺点:
  开发成本较高。
  客户端程序设计复杂。
  信息内容和形式单一。
  用户界面风格不一,使用繁杂,不利于推广使用。
  软件移植困难。
  软件维护和升级困难。
  新技术不能轻易应用。
9.三层C/S风格(数据库服务器、应用服务器、客户端浏览器)
三层:数据层、功能层、表示层。
优点:
  能提高系统和软件的可维护性和可扩展性。
  具有良好的可升级性和开放性。
  可以并行开发。
  有效地隔离开表示层与数据层,为严格的安全管理奠定了坚实的基础。
缺点:
  各层间的通信效率不高。
  设计时必须慎重考虑三层间的通信方法、通信频率及数据量。
10.B/S风格(浏览器/Web服务器/数据库服务器)(云游戏???)
是上述三层应用结构的一种实现方式,具体结构为:浏览器/Web服务器/数据库服务器。
优点:
  基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
  提供了异种机、异种网、异种应用服务器的联机、联网、统一服务的最现实的开放性基础。
缺点:
  缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
  系统扩展能力差,安全性难以控制。
  数据查询等响应速度上,要远远低于C/S体系结构。
  数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。

软件质量属性
一、 质量目标与商业目标
质量定义:
  一个系统、组件或过程符合特定需求的程度;一个系统、组件或过程符合客户或用户的要求或期望的程度。
软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的方方面面。人们通过改善软件的各种质量属性,从而提高软件的整体质量。
  具有质量的软件是那些与它们的最初目的相一致的软件。
  高质量的软件符合商业目标和用户需求,具有正确的功能和优良的属性。
二、商业目标决定质量目标:
  学术界总是喜欢宣扬质量至上的理念,而忽视企业的商业利益,将质量目标凌驾于商业目标之上。
  企业的根本目标是为了获取尽可能多的利润,而不是生产完美无缺的产品。
  企业必须权衡质量、效率和成本。
质量属性:
  质量属性需求来源于商业和产品目标。
  关键的质量属性必须刻画系统的细节特征。
  质量属性场景是用于描述质量属性和表达项目干系人观点的强有力的工具。
  质量属性场景是一种面向特定的质量属性的需求,软件质量属性场景用于描述软件的质量属性。
三、 外部质量
  外部质量对于用户而言是可见的。
  包括正确性、健壮性、可靠性、性能、安全性、易用性、兼容性等
四、 内部质量
  内部质量只有开发人员关心。
  可以帮助开发人员实现外部质量。
  包括易理解性、可测试性(查找缺陷)、可维护性(纠正缺陷,做更改)、可扩展性(适应变化)、可移植性、可复用性等。
五、 过程质量
  过程质量与开发活动相关;产品通过过程来进行开发
  过程质量:可靠、稳健、高效、可扩展、可重用
  过程改进指南:CMM(软件能力成熟度模型),目前软件过程改进最好的参考标准。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值