软件体系结构_529特别整理版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件体系结构_529特别整理版
1、软件体系结构(SA):
–提供了一个结构、行为和属性的高级抽象
–从一个较高的层次来考虑组成系统的构件、构件之间的连接,以及由构件与构件交互形成的拓扑结构
–这些要素应该满足一定的限制,遵循一定的设计规则,能够在一定的环境下进行演化。

–反映系统开发中具有重要影响的设计决策,便于各种人员的交流,反映多种关注,据此开发的系统能完成系统既定的功能和性能需求。

2、软件体系结构的目标:
–外向目标:建立满足最终用户要求的系统需求;
–内向目标:建立满足系统设计者需要以及易于系统实现、维护和扩展的系统构件构成。

3、软件体系结构的几个观点:
(1)全局观(global viewpoint)
–在软件开发过程中,应有一种从全局的角度对软件进行设计的“视图”,而非仅仅关注底层的算法细节;
(2)折中观(tradeoff viewpoint)
–用户提出的各类功能与非功能需求之间存在着大量的“矛盾”,无法同时“完美”的满足,必须要在彼此之间做出权衡;
(3)交流观(communication viewpoint)
–参与软件研发的各成员需要有一个公共的“媒介”进行沟通,以应对需求的不明确、频繁变更、复杂度增加;
(4)复用观(reuse viewpoint)
–不同的软件系统之间是否存在整体风格上的相似性,通过利用已存在的“软件资产”,提高效率、降低成本;
4、(名词)(Kruchten)4+1视图模型:
逻辑视图:描述系统的抽象概念与功能(类、对象、接口、模式等),主要图形包括class diagrams, sequence diagrams, and collaboration diagrams等;
开发视图:描述系统中的子系统、模块、文件、资源及其之间的关系,主要图形包括component diagrams等;
进程视图:描述系统的进程及其之间的通信协作关系,主要图形包括activity diagram, interaction diagram等;
物理视图:描述系统如何被安装、部署与配置在分布式的物理环境下,主要图形包括deployment diagram等。

用例视图:描述系统的典型场景与功能,主要图形包括use case diagram等。

5、过滤器的状态:
⏹停止状态:表示过滤器处于待启动状态,当外部启动过滤器后,过滤器处于处理状态。

⏹处理状态:表示过滤器正处理输入数据队列中的数据。

⏹等待状态:表示过滤器的输入数据队列为空,此时过滤器等待,当有新的数据输入
时,过滤器处于处理状态。

– EventManager with separated dispatcher module (带有分离的派谴模块的事件管理器)
– EventManager without a central dispatcher module (没有中心派谴模块的事件管理器)
8、两种通用的分层方法:
–严格分层(Strict System Layering)
–松散分层(Loosely System Layering)
9、严格分层的优点:修改时的简单性;缺点:效率低。

松散分层的优点:松散方法可以改善效率,因为系统不必将简单调用从一层转发到下一层。

缺点:松散方法在层之间不提供相同的隔离级别,这使得在不影响较高层的情况下换出较低层变得更困难。

10、(名词)两种基本的交互方式:
–由上而下的交互方式(top-down triggering):在由上而下模式中,外部实体与系统中的最高层交互。

–由下而上的交互方式(bottom-up triggering):外部实体与系统中的最底层交互,通常用来监视某些底层系统的状态变化。

11、二者区别:
由上而下的信息和控制通常被描述成“请求”;由下而上的方式被描述为“通知”。

12、(大题)分层系统设计的过程:
⏹Step 1: 为把任务分组成层而定义抽象准则
⏹Step 2: 根据抽象准则定义抽象层数
⏹Step 3: 给每个层命名并指定它们的任务
⏹Step 4: 设计层次内部的构件
⏹Step 5: 为每个层次定义接口并指定相邻层间的通信
⏹Step 6: 弱化相邻层之间的耦合
⏹Step 7: 设计错误处理策略
13、(大题)分层系统的优缺点分析
⏹支持基于抽象程度递增的系统设计,
⏹支持功能增强,
⏹支持复用。

⏹对标准化的支持。

⏹可测试性。

⏹并不是每个系统都可以很容易地划分为分层的模式,效率的降低:
⏹很难找到合适的、正确的层次抽象方法:
14、服务器的分类:
–信息/数据库服务器:存储和处理数据;
–操作服务器:提供业务逻辑服务;
–管理类服务器:DNS服务器、路由服务器、消息服务器等;
15、三层C/S结构:
⏹Tier 1: GUI; (第一层:用户界面—表示层)
⏹Tier 2: Business Logic; (第二层:业务逻辑—功能层)
⏹Tier 3: Data; (第三层:数据库—数据层)
16、(名词)
数据分片:将全局数据模型划分为若干个局部数据模型;
数据分配:将局部数据模型分配到不同的物理服务器上。

17、软件开发环境的发展阶段:
阶段1:手工将一个工具的输出为另一个工具的输入)
阶段2:脚本语言用来按照固定顺序调用工具)
阶段3:以数据为中心的体系结构,多个工具共同访问共享的程序信息。

18、图形化的体系结构描述:
优点:
可视化、直观
容易理解
缺点:
二义性:图形的本质所决定的模糊性,不同人有不同的理解;
矛盾性:模型中可能存在相互冲突的陈述;
不完备:无法描述所有的细节;
异构性:各个建模规范不同,模型也不同,难以支持模型在各个建模工具之间的交换;
无法自动化:只能人理解,靠软件工具来理解比较困难,因此无法实现自动化的验证与推理。

19、采用形式化的方法对SA进行建模和分析:
精确的语义描述;
为系统的关键属性提供严格的、正确的刻画;
发现当前SA设计中存在的错误、矛盾;
验证期望性能是否得到满足;
采用通用的形式化语言,可进行SA设计的交换。

20、(可能B卷出)三类主要的评审方式:
基于调查问卷的评审方式
基于场景的评审方式
基于度量的评审方式
21、选择广播式的两种策略:
⏹Point-to-Point (message queue) (点对点模式:基于消息队列)
⏹Publish-Subscribe (发布-订阅模式)。

相关文档
最新文档