软件构架实践.doc

上传人:大米 文档编号:560296703 上传时间:2023-03-31 格式:DOC 页数:6 大小:59.02KB
返回 下载 相关 举报
软件构架实践.doc_第1页
第1页 / 共6页
软件构架实践.doc_第2页
第2页 / 共6页
软件构架实践.doc_第3页
第3页 / 共6页
软件构架实践.doc_第4页
第4页 / 共6页
软件构架实践.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《软件构架实践.doc》由会员分享,可在线阅读,更多相关《软件构架实践.doc(6页珍藏版)》请在金锄头文库上搜索。

1、什么是软件构架?P19程序或计算系统的软件构架是该系统的一个(或多个)结构,它由软件元素、元素的外部可见属性以及他们之间的关系组成。具体概念见P19.1 构架定义了软件元素。各个元素通过接口实现交互。接口又将各元素的细节划分为共有和私有两种。2 该定义明确指出系统可能而且确实由多个结构组成。3 该定义意味着具有软件的每个计算系统都有一个软件构架,4 只要某个元素的行为可以从其他元素的角度观察到或区别开,这个元素的行为就是构架的内容。如果某个元素的行为对与之交互的另一个元素的代码编写有特定的要求,或者影响到整个系统的可接受性,则该行为就是软件构架的一部分。软件设计中的框架和架构的区别?框架,即f

2、ramework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。 构架和架构也就是通常所说的软件体系结构(software architecture).体系结构一般包括三个部分:构件,用于描述计算;连接器,用于描述构件的连接部分;配置,将构件和连接器组成一个有机整体.体系结构与框架(Framework)的区别与联系如下: 1呈现形式不同体系结构的呈现形式是一个设计规约,而框架则是程序代码 2目的不同体系结构的首要目的大多是指导一个软件系统的实施与开发;而框架的首要目的是为复用因此,一个框架可有

3、其体系结构,用于指导该框架的开发,反之不然 3有种特殊的体系结构,DSSA(领域特定体系结构)其首要目的也是为了复用 4有个叫体系结构风格的东西,将它用程序代码实现后就成了Corba,COM之类的东西,它们俩叫体系结构框架,也叫中间件集成框架,又有人愿意叫它对象中间件软件构架与软件设计是否相同?P1它们是不同的。软件构架是设计过程的重要组成部分。软件过程告诉我们实现系统的过程应该是创建软件构架,使用构架实现设计,然后实现或管理目标系统或应用软件的演变。软件构架包含大型软件系统的结构,系统的构架视图是抽象的,它不考虑实现、算法和数据表示的细节。在设计具有所期望属性的系统时,开发软件构架是第一步。

4、同时软件构架是软件系统的核心,它对于整个软件系统的设计开发和使用具有深远的影响。软件构架并不会随着某个软件系统生命期的结束而终结。目前,大多数的软件设计者一直接受的是完全按照系统的技术需求表述进行系统设计,而忽略了软件构架对于整个软件的作用。软件构架与构建系统时的环境及系统未来所处的环境有什么关系?或曰什么是软件商业周期ABC? P5软件构架是技术、商业和社会等诸多因素作用的结果,而软件构架的存在反过来又会影响技术、商业和社会环境,从而影响到未来的构架,我们把这种相互影响的周期从环境到构架又返回到环境成为构架商业周期。构架为何产生?或曰软件构架的影响因素?P6首先,构架是若干商业和技术决策的结

5、果,构架的设计受诸多因素的影响:构架受系统涉众的影响,受开发组织的影响,受设计师的素质和经验的影响,受技术环境的影响以及其他因素的影响。而这些影响因素的实现又随构架所处环境的不同而异。比如时间要求,系统要求,硬件环境,支持软件和人力资源等。软件构架的重要性(商业层面)P101. 构架影响着开发组织的结构2. 构架会影响开发组织的目标3. 构架可能会影响客户对下一个系统的要求。4. 构建系统的过程丰富了整个开发团体的经验,从而将影响设计师对后继系统的设计5. 一些典型的系统会影响并改变软件工程的发展,也就是系统开发人员学习和时间的技术环境。什么是软件过程?软件过程包括哪些活动?P11我们把对软件

6、开发活动的组织、规范和管理成为软件过程。即创建软件构架,使用构架实现设计,然后实现或管理目标系统或应用软件的演变。它包括为系统穿件一个商业案例、理解系统需求、创建或选择构架、为构架编写文档,并与有关各方进行交流、对此构架进行分析和评价、根据此构架实现系统、保证系统实现符合构架的要求。构架的分析和评估中提到:针对构架所支持的质量属性对构架进行评估对于确保采用该构架构造的系统满足了其涉众的需要是基本的,现在,广泛使用的一种分析方法是对构架给予系统的质量属性进行评估。基于场景的技巧提供了对构架进行评估的一个最有效也是最通用的方法。实现基于该架构的系统的主要任务是:保证开发人员在实际开发中忠实于构架所

7、规定的结构,遵守关于各部分之间交互的约定。表述清楚并为各方所理解的构架是保证实际设计与构架一致的重要条件.什么样的构架才算好?P13构架不是注定好的或是坏的。必须针对某种特定目标的情况下进行评估才可以。但是设计构架中总要遵循某种原则。设计构架所遵循的原则?P14软件开发中所获得的经验分为两大类:关于过程的建议和关于产品的建议。在关于产品的建议中提到要将产生数据的模块和使用数据的模块分离开。这样可以提高系统的可修改性。因为如果要修改数据的话,分离开的可对系统进行分阶段逐步(增量式)升级。构架模式、参考模型和参考构架的定义及其关系P21构架模式是对元素和关系类型以及一组对其使用方式的限制的描述。可

8、以吧构架模式看作是对构架的一组制约条件-即对个元素类型和交互模式的限制条件,而这些制约条件就确定了一组或一系列能满足它们的构架。模式最有用的一个方面就是它们展示了已知的质量属性。选择构架模式通常是设计师做出的第一个主要的涉及决策。参考模型是一种考虑数据流的功能划分。参考构架是映射到软件元素(它们相互协作,共同实现在参考模型中定义的功能)以及元素之间数据流上的参考模型。三者之间的关系详细见P22软件构架的重要性:(技术层面) P17、P23构架的开发需要付出一定的成本,但它能使开发组织达到自己的系统目标并提高其软件开发能力,这种回报是相当丰厚的,对开发组织而言,构架是一种极重要的资产,其作用超出

9、所开发的项目本身1. 涉众之间的交流软件构架是一种常见的对系统的抽象,构架为不同的涉众提供了一种共同语言,有关各方可以借助它表达和协商各自的需求,并理性地找到解决方案2. 早期设计决策2.1构架明确了对系统实现的约束条件 在具体实现系统时必须按照构架的设计,将系统分成若干元素,各元素必须按照设定的方式进行交互,而且各个元素也必须具有构架中所规定的外部特征。同样资源配置方面的决策也制约着系统实现。2.2构架决定了开发组织的组织结构。 常见的任务划分方法是将系统的不同部分交由系统的最高层次的分解,这就是 所谓的系统的工作分解结构。2.3构架阻止或支持系统的质量属性的实现 能否具有所期望的质量属性主

10、要是由其构架决定的。2.4通过研究构架来预测系统质量 一些构架评估技巧可使我们自下而上地对按某软件构架开发出来的软件产品的质量属性做出比较准确的预测。2.5构架使推理判断和控制更改更简单 所开发的系统大部分处在维护阶段,即初次部署之后。并且在整个生命期内,软件系统在不断发生变化,这种变化经常发生而且要付出很高代价。 每个构架都将可能的更改划分为三类:本地的、非本地的、构架上的。一个富有生命力的构架应该是这样的:最有可能发生的更改也是最容易进行的更改。在构架层次上所做的推理判断能够为制定更改决策提供必要的洞察力。2.6构架有助于循序渐进的原型设计 确定构架后,就可以对其进行分析,获得一个骨架系统

11、。这首先在产品生命期的早期获得一个可执行的系统。同时使系统在早期可执行的一个特例就是在产品生命期的早期确定潜在的性能问题。这两方面都将降低项目开发的风险。2.7可以通过构架进行更准确的成本和进度评估3. 可传递的系统抽象3.1产品线共享一个公共的构架 产品线设计师通过制定在早期适用于整个家族的设计决策,以及在后期仅使用与单个成员的其他决策,来选择一个满足产品显得所有预想成员的构架。该构架定义了对产品显得所有成员来说,什么是固定的,什么是可改变的。3.2系统开发可以使用大型的由其他组织开发的元素 基于构架的开发则更强调对各原色的装备或组合。构架从元素与环境的交互、对控制的接收和释放、所能使用或产

12、生的数据、访问数据的方式、通信方式以及用于通信和资源共享的协议等方面对可能做的更换做了种种约定。3.3少就是多:限制选择范围是值得的我们希望所构建系统的设计尽可能简单。它有如下优势:重用成都高、易于理解和交流、更为透彻的分析、更短的选择时间、更强的可互操作性。3.4构架使基于模板的开发成为可能 可以在某处用模板将元素间的交互机制描述清楚。3.5构架可以作为培训的基础 对项目新成员介绍系统时,可以首先介绍系统的结构,以及对组建之间如何交互从而实现系统需求的高层次的描述。构架结构和视图的由来:软件系统复杂,在任何时刻,我们只把注意力放在软件系统的一个或几个结构上。为了有意义的传达构架的信息,必须说

13、明此刻正在讨论哪个或哪些结构,即采用的是构架的哪个视图。什么是结构和视图?(P30)视图是构架元素内聚集的表示,由系统涉众编写和阅读。它由一个元素集的表示和元素之间的关系组成。(书面语言形式)结构是元素本身的集合,它们存在于软件或硬件中。(未表示的内在结构)二、构架结构有哪几类?1 模块结构此时元素是模块2 组件-连接器结构 此时元素是运行时组件(它们是计算的主要单元)和连接器(它们是组件间通信的工具)3 分配结构分配结构展示了软件元素和创建并执行软件的一个或多个外部环境中的元素之间的关系。三、模块类结构都有哪些具体的结构?分解、使用、分层、类或泛化四、组件-连接器结构都有哪些具体的结构?进程

14、或通信进程、并发、共享数据或存储库、客户机-服务器五、分配结构都有哪些具体的结构?部署、实现、工作分配七、什么是软件产品线或家族?(P28)软件产品线或家族是一组软件密集型系统,这些系统共享一个公共的、可管理的特性集,满足了特定市场或任务的具体需要,是按照规定的方式根据一组公共的核心资产开发的。在这些核心资产中,主要部分就是设计用来处理整个家族需要的构架。八、系统的构架结构中的元素以及其关系的含义,并说明每种结构可能会用于什么情况?详细见P34那张表主要结构通常是模块分解,因为它容易与其他组织的项目结构吻合。九、应选择哪些结构?P35Philippe Kruchten建议重点放在4种结构上,逻

15、辑的(模块视图)、进程(组件-连接器视图)、开发(分配视图)、物理的(也是分配视图).十、开发组织对软件构架的影响有哪几类?(详细见P8)有三类,长远影响、直接影响和组织结构的影响。十一、分析某个系统采用了哪种构架结构?P47构架结构的意义何在?P59分解结构:P47原文是这样说的,只要一个程序不是小得只需一个程序员就可以完成,就必须考虑如何将工作划分为可以独立实现的单元以及这些模块如何进行交互,分解结构的单元就是模块,可以把模块看作是定义了一组过程,一些共有的和一些私有的;以及一组私有的数据结构。分解结构中模块间关系是“是一个子模块”或“与之共享秘密”。构架结构的意义:加深我们对系统以及系统质量属性的理解,并实施理性地控制十二、信息隐藏的基本思想与面向对象设计基本思想的区别?P48面向对象设计中,对象是根据应用程序所设计的实际对象构建出来的,或者是根据对系统的只管想想而推想出来的;信息隐藏模块则是根据对系统生命期内可能发生的变化的分类而构建出来的模块划分的具体目标,即划分到什么时候停止划分?P481每个模块的结构应足够简单、能够被充分理解。2应该能够在无需了解其他模块的具体实现,并且不影响其他模块的行为的情况下修改某个模块的实现。3对

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号