软件体系结构重点.docx
- 文档编号:1611364
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:22
- 大小:240.45KB
软件体系结构重点.docx
《软件体系结构重点.docx》由会员分享,可在线阅读,更多相关《软件体系结构重点.docx(22页珍藏版)》请在冰点文库上搜索。
软件体系结构重点
1.软件理论包括:
–计算模型与可计算理论、算法理论基础、算法设计与分析、程序设计语言理论基础、程序设计语言设计及其编译技术、数理逻辑、数据抽象与基本数据类型的实现技术等。
对软件工程而言,充满了方法论的内容:
–如何分析、如何设计、如何编程、如何测试、如何维护、…;
–软件模型与软件系统的“质量”在很大程度上依赖于开发者本身的经验与水平。
因为缺乏对软件开发过程的理论层面的刻画,没有将数
目众多的方法论总结提升为理论,故而只能是“工程”。
2.体系结构”的共性
一组基本的构成要素——构件
–这些要素之间的连接关系——连接件
–这些要素连接之后形成的拓扑结构——物理分布
–作用于这些要素或连接关系上的限制条件——约束
–质量——性能
3.软件体系结构(SA):
–提供了一个结构、行为和属性的高级抽象
–从一个较高的层次来考虑组成系统的构件、构件之间的连接,以及由构件与构件交互形成的拓扑结构
–这些要素应该满足一定的限制,遵循一定的设计规则,能够在一定的环境下进行演化。
–反映系统开发中具有重要影响的设计决策,便于各种人员的交流,反映多种关注,据此开发的系统能完成系统既定的功能和性能需求
4.体系结构=构件+连接件+拓扑结构+约束+质量
5.目标:
提高软件质量
–功能属性(functionalproperties):
能够完成用户功能性需求;
–非功能性属性(non-functionalproperties):
能够以用户要求的性能标准,合理、高效的实现各类功能性需求。
6.软件体系结构关注的是:
如何将复杂的软件系统划分为模块、如何规范模块的构成和性能、以及如何将这些模块组织为完整的系统。
⏹主要目标:
建立一个一致的系统及其视图集,并表达为最终用户和软件设计者需要的结构形式,支持用户和设计者之间的交流与理解。
⏹分为两方面:
–外向目标:
建立满足最终用户要求的系统需求;
–内向目标:
建立满足系统设计者需要以及易于系统实现、维护和扩展的系统构件构成。
7.SA的作用:
⏹交流的手段:
在软件设计者、最终用户之间方便的交流;
⏹可传递的、可复用的模型:
对一些经过实现证明的体系结构进行复用,从而提高设计的效率和可靠性,降低设计的复杂度。
⏹关键决策的体现:
–全面表达和深刻理解系统的高层次关系,使设计者在复杂的、矛盾的需求面前作出正确的选择;
–正确的体系结构是系统成功的关键,错误选择会造成灾难性后果;
–明确了对系统实现的约束条件;
–决定了开发和维护组织的组织结构;
–制约着系统的质量属性;
–在设计完成尚未开发之前,预测软件质量;
–在SA全局指导下进行系统设计的修改和扩展,使推理和控制更简单,局部的修改不会破坏整体的完整与一致性。
8.软件体系结构的观点:
⏹全局观(globalviewpoint)
–在软件开发过程中,应有一种从全局的角度对软件进行设计的“视图”,而非仅仅关注底层的算法细节;
⏹折中观(tradeoffviewpoint)
–用户提出的各类功能与非功能需求之间存在着大量的“矛盾”,无法同时“完美”的满足,必须要在彼此之间做出权衡;
⏹交流观(communicationviewpoint)
–参与软件研发的各成员需要有一个公共的“媒介”进行沟通,以应对需求的不明确、频繁变更、复杂度增加;
⏹复用观(reuseviewpoint)
–不同的软件系统之间是否存在整体风格上的相似性,通过利用已存在的“软件资产”,提高效率、降低成本;
8.构件:
构件是具有某种功能的可复用的软件结构单元,表示了系统中主要的计算元素和数据存储。
¢任何在系统运行中承担一定功能、发挥一定作用的软件体都可看作是构件。
—程序函数、模块
—对象、类
—数据库
—文件
9.连接(Connection):
构件间建立和维护行为关联与信息传递的途径;
¢连接需要两方面的支持:
—连接发生和维持的机制——实现连接的物质基础(连接的机制);
—连接能够正确、无二义、无冲突进行的保证——连接正确有效的进行信息交换的规则(连接的协议)。
—简称“机制”(mechanism)和“协议”(protocol)。
10.连接的协议:
¢协议(Protocol)是连接的规约(Specification);
¢连接的规约是建立在物理层之上的有意义信息形式的表达规定
—对过程调用来说:
参数的个数和类型、参数排列次序;
—对消息传送来说:
消息的格式;
—对ODBC数据库连接来说:
SQL语言;
—对WebService连接而言:
SOAP或REST协议;
¢目的:
使双方能够互相理解对方所发来的信息的语义。
11.连接的种类:
同步和异步
12.连接件:
连接件(Connector):
表示构件之间的交互并实现构件之间的连接,如:
—管道(pipe)
—过程调用(procedurecall)
—事件广播(eventbroadcast)
—客户机-服务器(client-server)
—数据库连接(SQL)
—连接件也可看作一类特殊的构件,区别在于:
—一般构件是软件功能设计和实现的承载体;
—连接件是负责完成构件之间信息交换和行为联系的专用构件。
13:
SA建模的三个层次
¢图形化模型:
SA模型的多视图表示(Multi-viewgraphicalmodel)
¢–从不同的视角描述特定系统的体系结构,从而得到多个视图,并将这些视图组织起来以描述整体的SA模型;
¢形式化模型:
SA描述语言(Formalarchitecturedescriptionlanguage,ADL)
¢–在SA基本概念的基础上,选取适当的形式化或半形式化的方法来描述一个特定的体系结构;
¢文档化模型:
SA文档化(Documentation)
¢–记录和整理软件体系结构设计方案的各类细节。
14.SA的视图观
¢(Kruchten)4+1模型
¢统一建模语言UML
¢(Hofmesiter)4视图模型
¢(CMU-SEI)ViewsandBeyond模型
¢(ZIFA)Zachman框架
¢开放分布式处理参考模型(RM-ODP)
15.4+1视图:
¢逻辑视图:
描述系统的抽象概念与功能(类、对象、接口、模式等),主要图形包括classdiagrams,sequencediagrams,andcollaborationdiagrams等;
¢开发视图:
描述系统中的子系统、模块、文件、资源及其之间的关系,主要图形包括componentdiagrams等;
¢进程视图:
描述系统的进程及其之间的通信协作关系,主要图形包括activitydiagram,interactiondiagram等;
¢物理视图:
描述系统如何被安装、部署与配置在分布式的物理环境下,主要图形包括deploymentdiagram等。
¢用例视图:
描述系统的典型场景与功能,主要图形包括usecasediagram等。
16:
SA生命周期模型:
¢Phase1:
informaldescription(SA的非形式化描述)
¢Phase2:
specificationandanalysis(SA的规范描述与分析)
¢Phase3:
refinementandverification(SA的求精及其验证)
¢Phase4:
enactment(SA的实施)
¢Phase5:
evolutionandextension(SA的演化和扩展)
¢Phase6:
provision,evaluationandmetrics(SA的评价与度量)
¢Phase7:
termination(SA的终结)
17.软件体系结构风格的组成
⏹Asetofcomponenttypes(e.g.,datarepository,process,object)(一组构件类型)
⏹Asetofconnectortypes/interactionmechanisms(e.g.,subroutinecall,event,pipe)(一组连接件类型/交互机制)
⏹Atopologicallayoutofthesecomponents(这些构件的拓扑分布)
⏹Asetofconstraintsontopologyandbehavior(e.g.,adatarepositoryisnotallowedtochangestoredvalues,pipelinesareacyclic)(一组对拓扑和行为的约束)
⏹Aninformaldescriptionofthecostsandbenefitsofthestyle,e.g.:
“Usethepipeandfilterstylewhenreuseisdesiredandperformanceisnotatoppriority”(一些对风格的成本和收益的描述)
18.数据流风格的基本构建:
⏹Components:
dataprocessingcomponents(基本构件:
数据处理)
–Interfacesareinputportsandoutputports(构件接口:
输入端口和输出端口)
–Inputportsreaddata;outputportswritedata(从输入端口读取数据,向输出端口写入数据)
–Computationalmodel:
readdatafrominputports,compute,writedatatooutputports(计算模型:
从输入端口读数,经过计算/处理,然后写到输出端口)
19.管道过滤器的基本定义
⏹语境:
数据源源不断的产生,系统需要对这些数据进行若干处理(分析、计算、转换等)。
⏹解决方案:
–把系统分解为几个序贯的处理步骤,这些步骤之间通过数据流连接,一个步骤的输出是另一个步骤的输入;
–每个处理步骤由一个过滤器构件(Filter)实现;
–处理步骤之间的数据传输由管道(Pipe)负责。
⏹每个处理步骤(过滤器)都有一组输入和输出,过滤器从管道中读取输入的数据流,经过内部处理,然后产生输出数据流并写入管道中。
20.基本构成
⏹Components:
Filters—processdatastreams(构件:
过滤器,处理数据流)
–Afilterencapsulatesaprocessingstep(algorithmorcomputation)(一个过滤器封装了一个处理步骤)
–Datasourceanddatasinkareparticularfilters(数据源点和数据终止点可以看作是特殊的过滤器)
⏹Connectors:
Apipeconnectsasourceandasinkfilter(连接件:
管道,连接一个源和一个目的过滤器)
–Pipesmovedatafromafilteroutputtoafilterinput(转发数据流)
–Dataisastreamof“objects”(数据是特定类型的“对象”流)
⏹Topology:
Connectorsdefinedataflowgraph(连接器定义了数据流图,形成拓扑结构)
21.过滤器:
⏹Incrementallytransformsomeofthesourcedataintosinkdata(目标:
将源数据变换成目标数据)
⏹Streamtostreamtransformation(从“数据流”“数据流”的变换)
–enrichdatabycomputationandaddinginformation(通过计算和增加信息来丰富数据)
–refinebydistillingdataorremovingirrelevantdata(通过浓缩和删减来精炼数据)
–transformdatabychangingitsrepresentation(通过改变数据表现方式来转化数据)
–decomposedatatomultiplestreams(将一个数据流分解为多个数据流)
–mergemultiplestreamsintoonestream(将多个数据流合并为一个数据流)
22.过滤器的特称:
–nocontextinprocessingstreams(无上下文信息)
–nostatepreservationbetweeninstantiations(不保留状态)
–noknowledgeofupstream/downstreamfilters(对其他过滤器无任何了解)
–collectionscanbeusedtobufferthedatapassedthroughpipes:
files,arrays,dictionaries,trees,etc.(可使用数据缓冲区临时保存数据流)
•蓄水池
23.数据流的分类:
拉式和推式
⏹Question:
whatistheforcethatmakedataflow?
(是什么力量推动数据在管道中流动?
)
⏹Threechoice,allwithforceemanatingfromfilters:
–Push:
datasourcepushesdataindownstreamdirection(推式:
前面的过滤器把新产生的数据推入管道)
–Pull:
datasinkpullsdatafromupstreamdirection(拉式:
随后的过滤器从管道中拉出所需数据)
–Push/pull:
afilterisactivelypullingfromupstream,computing,andpushingdownstream(推拉式:
过滤器以循环的方式,从管道中拉出其输入数据,并将其处理产生的数据压入后续管道)
24.过滤器的分类:
主动和被动
⏹Activefilter:
driversthedataflowonthepipes.(主动过滤器:
驱动数据流动,pull+push)
⏹Passivefilter:
isdrivenbythedataflowonthe(input/output)pipes.(被动过滤器:
被管道中的输入或输出数据流所驱动)
⏹Attention:
系统中至少有一个主动过滤器(可以来自外部环境,如用户输入)
25.过滤器的状态
⏹停止状态:
表示过滤器处于待启动状态,当外部启动过滤器后,过滤器处于处理状态。
⏹处理状态:
表示过滤器正处理输入数据队列中的数据。
⏹等待状态:
表示过滤器的输入数据队列为空,此时过滤器等待,当有新的数据输入时,过滤器处于处理状态。
26.管道过滤器的优点
⏹使得系统中的构件具有良好的隐蔽性和高内聚、低耦合的特点;
⏹允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
⏹支持软件复用:
–只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;
⏹系统维护和增强系统性能简单:
–新的过滤器可以添加到现有系统中来,旧的可以被改进的过滤器替换掉;
⏹允许对一些如吞吐量、死锁等属性的分析;
⏹支持并行执行:
–每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。
27.缺点
⏹通常导致进程成为批处理的结构
–这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;
⏹不适合处理交互的应用
–当需要增量地显示改变时,这个问题尤为严重;
⏹因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
–绝大部分处理时间消耗在格式转换上
28.批处理与管道-过滤器的比较
⏹相似点:
–Decomposetaskintofixedsequenceofcomputations(把任务分解成为一系列固定顺序的计算单元)
–Interactonlythroughdatapassedfromonetoanother(彼此间只通过数据传递交互)
不同点:
BatchSequential
Pipe-and-Filter
Øtotal(整体传递数据)
Øcoarsegrained(构件粒度较大)
Øhighlatency(延迟高,实时性差)
Ønoconcurrency(无并发)
Øincremental(增量)
Øfinegrained(构件粒度较小)
Øresultsstartsprocessing(实时性好)
Øconcurrencypossible(可并发)
29.主程序自过程的基本构成
⏹Component(构件:
主程序、子程序)
–Mainprogramandsubroutines,hierarchicallydecomposingaprogram
⏹Connector(连接器:
调用-返回机制)
–Call-returnmechanism,eachcomponentgetcontrolanddatafromitsparentandpassittochildren.
⏹Topology(拓扑结构:
层次化结构)
–Hierarchicalstructure
本质:
将大系统分解为若干模块(模块化),主程序调用这些模块实现完整的系统功能
30.主程序子过程优缺点:
⏹Advantage:
–Thishasprovedtobeahighlysuccessfuldesignmethodology.Ithasallowedthedevelopmentoflargeprograms(100,000linesormoreofsourcecode).(已被证明是成功的设计方法,可以被用于较大程序)
⏹Disadvantages:
–However,asprogramsizeincreasesbeyondthispoint(100,000lines),theapproachperformspoorly.(程序超过10万行,表现不好)
–Weobservethatcodedevelopmentbecomestooslowandthatitbecomesincreasinglydifficulttotestthesoftwareandguaranteeitsreliability.(程序太大,开发太慢,测试越来越困难)
30.四大原则:
⏹四大原则:
–模块独立性:
高内聚、低耦合(highcohesionandlowcoupling)
–模块规模要适中:
过大:
分解不充分,难理解;太小:
开销过大、接口复杂
–模块复用度要好:
高扇入、低扇出;
–作用域与控制域原则:
模块的作用域要包含在控制域之中。
31.OO的基本原理:
⏹(ADT:
一种数学规约,包含一组数据以及作用于这组数据上的操作)
–ADTisakindofdataabstraction.(ADT是一种对数据的抽象)
–Theactualimplementationisnotdefined,anddoesnotaffecttheuseoftheADT.(虽然ADT具体的实现并没有被定义,但不会影响ADT的使用)
32.ADT的优点:
ADT的实现对用户隐藏)
⏹Onlytheinterfaceispublished.(仅有接口被发布)
⏹ThismeansthattheADTcanbeimplementedinvariousways,butaslongasitadherestotheinterface,userprogramsareunaffected.(ADT可有多种实现方式,只要与接口一致,用户程序可不受影响)
33.OO的优缺点:
优点:
复用和维护:
利用封装和聚合提高生产力
反映现实世界
容易分解一个系统
缺点:
管理大量的对象:
怎样确立大量对象的结构
必须知道对象的身份
继承引起复杂度,关键系统中慎用
在管道-过滤器系统中,一个过滤器无需知道其他过滤器的任何信息
34.为何称独立构件风格
⏹这种风格的主要特点是:
事件的触发者并不知道哪些构件会被这些事件影响,相互保持独立。
–这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用;
–各个构件之间彼此无之间的连接关系,各自独立存在,通过对事件的发布和注册实现关联;
⏹降低构件之间的耦合度,是SA领域研究者始终孜孜不倦追求的目标。
35.事件系统的连接机制:
⏹Connectors:
event-procedurebindings(连接器:
事件-过程绑定)
–Proceduresareregisteredwithevents(过程<事件处理器,事件的接收和处理方>向特定的事件进行注册);
–Componentscommunicatebyannouncingeventsat“appropriate”times(构件<事件源>发布事件);
–whenaneventisannouncedtheassociatedproceduresare(implicitly)invoked(当某些事件被发布时,向其注册的过程被隐式调用);
–Orderofinvocationisnon-deterministic(调用的次序是不确定的);
¢Insometreatments,connectorsareevent-eventbindings(在某些情况下,一个事件也可能触发其他事件,形成事件链).
¢这种连接机制称为“事件-事件绑定”(Event-eventbinding)。
36.事件如何被分发到已注册的模块?
⏹:
*两种策略
–EventManagerwithseparateddispatchermodule(带有分离的派谴模块的事件管理器)
–EventManagerwithoutacentraldispatchermodule
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构 重点