- 第一章
- 什么是软件重用?软件重用的层次可以分为哪几个级别?
软件重用:是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。
可以分为三个层次:
- 代码重用
- 设计结果重用
- 分析结果重用
- 什么是可重用构件?相对于普通的软件产品,对可重用构件有什么特殊要求?
可重用构件表示在软件重用过程中,可重用的软件构件元素。
特殊要求:
- 可重用构件应该具有功能上的独立性与完整性;
- 可重用构件应该具有较高的通用性;
- 可重用构件应该具有较高的灵活;
- 可重用构件应该具有严格的质量保证;
- 可重用构件应该具有较高的标准化程;
- 基于构件的软件开发的优势是什么?基于构件的软件开发面临哪些挑战和困难?
优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用。
困难和挑战:
- 在同一系统中采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻问题。
- 采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场的竞争力;
- 第三方的构件开发商可能歇业,这会使购买的构件失去维护服务。
- 你是如何理解软件体系结构的?软件体系结构在软件系统中有什么作用?
软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
作用:
- 体系结构是风险承担者进行交流的手段。
- 体系结构是早期设计决策的体现。
- 软件体系结构是可传递和可重用的模型
- 程序结构、软件结构和软件体系结构三者之间有什么区别和联系?
- 区别:程序结构:指的是代码的结构,一般的程序结构有三种:顺序、选择和循环。软件结构:软件结构是组成软件的模块结构。体系结构:指的是软件的设计风格、范式等。
- 联系:这三种结构其实讲的是同一种产品——同一个软件,是在不同层次对软件构成的抽象。
- 软件危机的表现
- 软件成本日益增长
- 开发进度难以控制
- 软件质量差
- 软件维护困难
- 软件危机的原因
- 用户需求不明确
- 缺乏正确的理论指导
- 软件规模越来越大
- 软件复杂度越来越高
- 构件获取
- 从现有构件中获得符合要求的构件。
- 从市场上购买现有的商业构件
- 开发新的符合要求的构件
- 第二章
- 尝试用自己的语言介绍Kruchten的“4+1”模型。
- 逻辑视图:主要支持系统的功能需求
- 开发视图:侧重于软件模块的组织和管理。
- 进程视图:侧重于系统的运行特性。
- 物理视图:描述了软件到硬件的映射,反映了分布式的特性
- 场景视图:可以看作重要系统活动的抽象,它使四个系统有机联系起来。
- 软件体系结构的生命周期
- 软件体系结构的非形式化描述
- 软件体系结构的规范描述和分析
- 软件体系结构的求精及其验证
- 软件体系结构的实施
- 软件体系结构的演化和扩展
- 软件体系结构的提供、评价和度量
- 软件体系结构的终结
- 第三章
- 选择一个熟悉的大型软件系统,分析其体系结构中用到的风格,以及表现出的特点。(为什么要采用这种风格?采用这种风格带来哪些优势?具有哪些不足?)
对社交软件QQ的分析:采用C/S风格,在一定程度上算三层C/S风格。
表示层:社交信息的展示,并提供了更新和搜索等操作。
功能层:具有搜索、在线聊天、离线留言、文件传输等功能。
数据层:有数据库服务器提供留言、相册、好友信息等数据。
优点:使逻辑结构更为清晰、分类明确、给用户更好的体验。
缺点:需要数据通信的支持,对网络的依赖很高,没有网络,许多功能将没有意义。
- 特定领域软件体系结构:
(1)简单地说,DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构。
- DSSA的基本活动
- 领域分析
- 领域设计
- 领域实现
- 第四章
- 软件体系结构描述方法:
- 图形表达工具
- 模块内连接语言
- 基于软构件的系统描述语言
- 软件体系结构描述语言
- 软件体系结构描述框架标准:
- 体系结构的存档要求
- 能识别人员及其关系
- 体系结构视点的选择
- 体系结构视点
- 体系结构视点之间的一致性
- 体系结构原理
- 第五章
- 活动图与用例图之间的关系?
用例图···································································································································中描述了一组用例的结构,而没有描述用例执行的次序控制。
活动图:一个活动图可描述多个用例的控制流,也可描述一个用例的详细计算过程。
- 如何使用四层元模型来描述体系结构:
四层元模型:元-元模型、元模型、模型和用户对象4个层次
- 第六章
- XML、HTML、SGML的区别
XML与HTML一样都来自于SGML。
SGML是一种用标记描述文档资料的通用语言
HTML是一种格式化的语言
XML是一种元标记语言
- XML与数据库的区别
- 数据库可以进行数据的海量储存,而XML主要处理数据在网上的传输标准问题。
- XML是文档形式,利于长期保存,可读性高,数据库是关系型数据库,某些关系表现不出;
- XML是存储数据的标准格式,便于网络数据传输和交互;数据库能够进行大量数据的存储和分析;
- XML的应用
- 应用于客户需要与不同的数据源进行交互时
- 应用于将大量运算负荷分布在客户端
- 应用于将同一数据以不同的面貌展现给不同的用户
- 应用于网络代理对所取得的信息进行编辑、增减以适应个人用户的需要。
- API
- DOM
文档对象模型为XML文档的已解析版本定义了一组接口。
- SAX
为了解决DOM问题,就产生了SAX接口。
- JDOM
用DOM和SAX模型完成某些任务的困难使他们创建了JDOM包。
- JAXP
该API为使用DOM、SAX处理文档提供了公共接口。
- 第七章
- 什么是动态软件体系结构?动态软件体系结构的动态性主要体现在哪3个方面?
允许在系统运行时发生更新的软件体系结构称为动态软件体系结构。
三个方面:
- 交互式动态性
- 结构化动态性
- 体系结构动态性
- 请简述基于构件的动态体系结构模型是如何支持运行系统的动态更新的?
- 检查更新的范围
- 更新准备工作
- 执行更新
- 存储更新
- 第八章
- 什么是SOA?SOA具有哪些特征?
SOA是一种在计算环境中设计、开发、部署和管理离散逻辑单元模型的方法。
特征:
- 松散耦合
- 粗粒度服务
- 标准化接口
- Web服务作为web服务体系结构的核心,简要说明web服务的核心技术及其作用。
- 底层传输层,主要负责消息的传输机制。
- 服务通信协议层,服务通信协议层主要是以一种统一的方式描述并定义服务之间进行通信传输所需的技术标准。
- 服务描述层,主要以一种统一的方式描述服务的接口和消息交换方式。
- 服务层,主要功能是将遗留系统进行包装,并通过发布的WSDL接口描述被定位和调用。
- 业务流程层,主要功能是支持服务发现,服务调用和点到点的服务调用,并将业务流程从服务的底层调用抽象出来。
- 服务注册层,主要功能是使服务提供者能够通过WSDL发布服务定义,并支持服务请求者查找所需的服务信息。
- 简述面向服务的体系结构的概念及其设计原则。
面向服务的体系结构是一种新的体系结构风格,它具有松散耦合和面向软件服务的特点,具有很高的重用性和灵活性。
- 第九章
- 请从体系结构发展的角度回答,为什么要使用RIA技术?
- RIA利用相对健壮的客户端描述引擎,这个引擎能够提供内容密集、响应速度快和图形丰富的用户界面。
- 数据能够被缓冲在客户端,从而实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面。
- 第十章
- 什么是软件体系结构的可靠性?软件体系结构的可靠性可以从哪些方面进行评估?
软件系统的可靠性依赖于状态的执行顺序和每一个状态的可靠性。
软件体系结构的可靠性可以从以下方面进行评估:
- 通过系统的详细说明书,确定系统所采用的体系结构风格。
- 把每一种体系结构风格转换成状态视图,并计算状态视图中每一个状态的可靠性及其相应的迁移概率。
- 通过整个系统的体系结构视图,把所有的状态视图集成为一个整体状态视图。
- 通过整体状态视图构造系统的迁移矩阵,并计算系统的可靠性。
- 第十一章
软件体系结构的评估方法有哪些?简要说明其各自的优势和缺点。
- ATAM评估方法:优点:ATTM评估方法不但揭示了体系结构如何满足特定的质量目标,而且还提供了这些质量目标是如何进行交互的。
- SAAM评估方法:优点:SAAM方法可用于对许多质量属性及系统功能进行快速评估,易学易用。缺点:评估过程复杂
评估的主要方式:
- 基于调查问卷或检查表的评估方式:这一评估方式比较自由灵活,可评估多种质量属性。
- 基于场景的评估方式:场景是一系列有序的使用或修改系统的步骤。
- 基于度量的评估方式:度量是指为软件产品的某一属性所赋予的数值,如代码行数,构件个数等。
- 第十二章
- 什么是设计模式?
设计模式是前人经验的总结,它使人们可以方便地复用成功的设计和体系结构。
使用设计模式的目的:提高代码的可重用性,让代码更容易被他人理解,并保证代码可靠性。
- 模式和软件体系结构
- 模式作为体系结构构造块:在开发软件使,模式是处理受限的特定设计方面的有用构造块。
- 构造异构体系结构:为了有效使用模式,需要将它们组织成模式系统。
- 模式和方法:好的模式描述也包含它的实现指南。
- 实现模式:模式可以与构造软件体系结构用到的每一个范例进行集成。
- 设计模式的层次
- 面向对象模式
- 代码模式
- 框架应用模式
- 形式合约
- 设计模式的分类
- 创建型模式
- 结构型模式
- 行为型模式
- 中间件
它是处于系统软件和应用软件之间的一类软件,它使设计师集中设计与应用有关的部分,大大简化了设计和维护工作。
- ABSD方法与生命周期
ABSD方法的输入由下列部分组成
- 抽象功能需求
- 用例
- 抽象的质量和业务需求
- 质量因素
- 体系结构选项
- 约束
- 第十三章
- 什么是软件产品线?软件产品线在软件开发过程中有什么作用?
软件产品线就是在一个公共的软件资源集合基础上建立起来的,共享同一个特性集合的系统集合。
作用:能有效地提高软件生产率和质量、缩短开发时间、降低总开发成本;
- 双生命周期模型
两个重叠的生命周期:领域工程和应用工程。两个周期内部都分为分析、设计和实现三个阶段,
领域工程阶段的主要任务如下:
- 领域分析:利用现有系统的设计、体系结构和需求建立领域模型。
- 领域设计:用领域模型确定领域的共性和可变性,为产品线设计体系结构。
- 领域实现:基于领域体系结构开发领域可重用资源。
应用工程阶段的主要任务如下:
- 需求分析:将系统需求与领域需求比较,划分为领域公共需求和独特需求两部分,得出系统说明书。
- 系统设计:在领域体系结构基础上,结合系统独特需求设计应用的软件体系结构。
- 系统实现:用定制开发的构件满足系统独特需求,构建新的系统。