关于软件体系结构风格的读书报告
软件技术的快速发展使得今天的软件开发越来越工程化,与之相应的工程技术也日趋成熟。软件体系结构作为一门新兴的学科, 通过提升软件复用粒度, 改进软件工程化的程度。软件体系结构定义了软件或计算系统的结构, 它包括软件的构件、构的外部可见属性以及它们之间的关系随着计算机应用的日益普及, 人们对软件的需求量急剧增加。但是, 计算机软件开发技术却远远没有跟上硬件技术的发展, 使得软件开发的成本逐年剧增。更为严重的是, 软件的质量没有可靠的保证。
软件开发的速度与计算机普及的速度不相适应, 软件的质量与应用的要求不相适应, 软件开发技术已经成为影响计算机系统发展的“瓶颈”。20 世纪60 起初, 人们把软件设计的重点放在数据结构和算法的选择上, 随着软件系统规模越来越大、越来越复杂, 整个系统的结构和规格说明显得越来越重要, 软件危机的程度日益加剧, 现有的软件工程方法对此显得力不从心。
软件体系结构设计的一个核心向题是能否使用重复的体系结构模式, 即能否达到体系结构级的软件重用。也就是说,能否在不同的软件系统中, 使用同一体系结构。基于这个目的, 学者们开始研究和实践软件体系结构的风格和类型问题软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。它反映了领域中众多系统所共有的结构和语义特性, 并指导如何将各个模块和子系统有效地组织成一个完整的系统。按这种方式理解, 软件体系结构风格定义了用于描述系统的术语表和一组指导构件系统的规则
二、 管道过滤器风格
四、 基于事件的隐式调用风格
五、 层次系统风格
六、 仓库风格
管道/过滤器风格在管道/过滤器风格中, 每个构件都有一组输入和输出, 构件读输入的数据流, 经过内部处理, 然后产生输出数据流。这里的构件被称为过滤器。连接件被称为管道。此风格特别重要的过滤器必须是独立的实体, 它不能与其它的过滤器共享数据, 而且一个过滤器不知道它上游和下游的标识。这种风格的优点: ( 1) 使得软构件具有良好的隐蔽性和高内聚、低耦合的特点; ( 3) 支持软件重用; ( 4) 易于系统维护和增强系统性能; ( 5) 允许对一些如吞吐量、死锁等属性的分析; ( 6) 支持并行执行。这种风格的缺点: ( 1) 通常导致进程成为批处理的结构; ( 2) 不适合处理交互的应用。
仓库风格在仓库风格中, 有两种不同的构件: 中央数据结构说明当前状态, 独立构件在中央数据存贮上执行, 仓库与外构件间的相互作用在系统中会有大的变化。按控制策略的选取分类, 可以产生两个主要的子类。若输入流中某类时间触发进程执行的选择, 则仓库是传统型数据库; 另一方面, 若中央数据结构的当前状态触发进程执行的选择, 则仓库是黑板系统。这种风格的优点: ( 1) 善于管理数据信息, 适合大量数据的应用场合; ( 2) 适用于复杂的逻辑系统.
层次系统风格层次系统组织成一个层次结构, 每一层为上层服务, 并作为下层客户。在一些层次系统中, 内部的层只对相邻的层可见。这种风格支持基于可增加抽象层的设计。允许将一个复杂问题分解成一个增量步骤序列的实现。由于每一层最多只影响两层, 同时要给相邻层提供相同的接口, 允许每层用不同的方法实现, 同样为软件重用提供了强大的支持。这种风格的优点: ( 1) 支持基于抽象程度递增的系统设计, 使设计可以把一个复杂系统按递增的步骤进行分解; ( 2) 支持功能增强, 因为每一层至多和相邻的上下层交互, 因此功能的改变最多影响相邻的上下层; ( 3) 支持重用。可以定义一组标准的接口, 允许各种不同的实现方法。
这种风格的缺点: ( 1) 并不是每个系统都可以很容易地划分为分层的模式; ( 2)很难找到一个合适的、正确的层次抽象方法。这种风格的典型应用有分层的通讯协议, 如TCP/IP 协议等。
基于事件的隐式调用风格基于事件的隐式调用风格的思想是构件不直接调用一个过程, 而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册, 当一个事件被触发, 系统自动调用在这个事件中注册的所有过程, 这样, 隐式调用系统的优点有: ( 1) 为软件重用提供了强大的支持。任何构件只需将它注册到系统的事件中就可以加入到现存的系统中。( 2)为改进系统带来了方便。当用一个构件代替另一个构件时, 不会影响到其它构件的接口。隐式调用系统的缺点有: ( 1) 构件无法控制系统所执行的计算。 2) 数据交换的问题。有时数据可被一个事件传递, 在这些情况下, 整体性能和资源管理便成了问题。
软件体系结构风格为大粒度的软件重用提供了可能。然而, 对于应用体系结构风格来说, 由于视点的不同, 系统设计师有很大的选择空间。要为系统选择或设计某一个体系结构风格, 必须根据特定项目的具体特点, 进行分析比较后再确定, 体系结构风格的使用几乎完全是特化的。在本文中,我们只讲述了“ 纯” 的体系结构。但是, 从上面的介绍中,我们知道, 不同的结构有不同的处理能力的强项和弱点一个系统的体系结构应该根据实际需要进行选择, 以解决实际问题。
软件体系结构风格的实例研究
叶俊民1, 2, 3 赵 恒1 曹 瀚1 王鸿丰1 王振宇1
1(哈尔滨工程大学计算机科学与技术学院, 黑龙江哈尔滨150001)
2(华中师范大学计算机系, 湖北武汉430079)
3(武汉大学软件工程国家重点实验室, 湖北武汉430072)
软件体系结构( 风格) 综述
In troduction to Sof tware Arch itecture
沈剑翘 聂华北
(华中科技大学 武汉 430074) (中国科技大学 合肥 230026)
软件体系结构风格———从C/ S 到B/ S
张世勇
( 天津大学, 天津300072)
软件体系结构风格研究现状及存在的问题
3
毛斐巧, 齐德昱
(华南理工大学计算机系统结构研究所, 广州510640)
一类通用的适应性软件体系结构风格研究
?
黄双喜,+ 范玉顺, 赵 彧
(清华大学 自动化系,北京 100084)
第二篇:PSP个人软体过程读书报告
1. 计划总结
计划是需要基于一定时间的,这个时间周期可以是周、月、季度、年等等。根据这个周期的长短,以及对于任务的工作量预估、优先级考虑等因素的综合判断,给出下一个时间周期的计划。
在本周期结束的时候需要对本周期的活动和任务做总结,可以帮助我们了解到时间都用在哪些地方。一方面可以对一些效率上的问题进行改善,同时,通过任务的总结,我们可以对不同任务的耗时多少有一个比较准确的判断,这可以使得下一次计划做得更加准确。 2. 时间管理
使用记事本是一个很不错的办法。一方面可以记录一段时间内的任务情况,另外也可以根据对任务时间的记录,有效的了解任务的进展情况以及耗时长短,同时也可以作为工作备忘录来使用。
3. 进度管理
一般情况下,我们在同一个时间段内要完成多个任务,或者说当一项任务正在进行的时候,有一个优先级比较高的任务需要立即着手去办,这里就需要有一份进度表。对于任何规模的项目,都需要把作业分析道足够详细来确定它由哪几项任务组成,即所谓任务拆分。然后对这些细化了的任务的工作量做预估,之后就需要对这个预估做跟踪和管理,即设定检查点。在有其他任务穿插进来的时候需要记录当前的任务状态,为后续任务的恢复提供现场和参考。
4. 契约管理
契约其实就是承诺。作出承诺是一种思想状态。无论是出于什么原因,你承担了一项工作,你就会觉得应该去做这件事情。但是这不仅仅是你要做的这些事情,事实上还有人希望你去做这些事情。每周都会有task,工作任务是每个人必须要完成的,但是某项任务可能是别人的需求,任务的产出可能是其他人所需要的。因此,每一项任务,都需要重视,将其视为合同,一份对自己,对别人的承诺。