《《软件系统设计与体系结构复习重点纲.doc》由会员分享,可在线阅读,更多相关《《软件系统设计与体系结构复习重点纲.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date软件系统设计与体系结构复习重点纲数据结构(C#)复习大纲第1章 软件体系结构概论软件危机:是指计算机软件的开发和维护过程中所遇到的一系列严重问题。危机的表现:软件成本日益增长、开发进度难以控制、软件质量差、软件维护困难。消除软件危机的方法:软件工程,软件工程三要素:方法、工具和过程。成因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高。软件重
2、用:是指在两次或多次不同的软件开发过程中重复使用相同或相近元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。构件:是指语义完整、语法正确和有可用性价值的单位软件。构件分类方法:关键字分类法、刻面分类法和超文本组织方法。构件重用的过程:检索与提取构件、理解与评价构件、修改构件、构件组装。构件重用内容:需求重用、设计重用、代码重用和组织机构重用3掌握软件体系结构的定义、软件体系结构的意义及发展史、软件体系结构研究内容软件体系结构定义:software architecture,是具有一定形式的结构化元素,即构件的集合,包括处理构件,数据构件和连结构件。意义:
3、1体系结构是风险承担者进行交流的手段 2是早期设计决策的体现3是可传递和可重用的模型体现原因:1 明确了对系统实现的约束条件 2 构决定了开发和维护组织的组织结构 3制约着系统的质量属性 4通过研究软件体系结构可能预测软件的质量 5使推理和控制更改更简单 6有助于循序渐进的原型设计 7可以作为培训的基础四个发展阶段:1“无体系结构”设计阶段:以汇编语言进行小规模应用程序开发为特征2萌芽阶段:出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征3初期阶段:出现了从不同侧面描述系统的结构模型,以UML为典型代表4高级阶段:以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结
4、构模型与传统软件结构的界限,该阶段以Kruchten提出的“4+1”模型为标志第2章 软件体系结构建模软件体系结构模型的种类:结构模型、框架模型、动态模型、过程模型和功能模型,最常用的是结构模型和动态模型。“4+1”模型:逻辑视图、进程视图、物理视图、开发视图和场景视图。-逻辑视图logic view:最终用户:功能需求开发视图:编程人员:软件管理进程视图:系统集成人员:性能可扩充性、吞吐量等物理视图:系统拓扑、安装、通信等 逻辑视图开发视图进程视图物理视图场景逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。简答:描述模型和各模型的功能。开发视图:也称为模块(mo
5、dule)视图,主要侧重于软件模块的组织和管理。核心模型:构件、连接件、配置、端口和角色,其中,构件、连接件和配置是最基本的元素。构件:是具有某种功能的可重用的软件模板单元,表示系统中主要的计算机元素和数据存储。连接件表示构件之间的交互;配置表示构件和连接件的拓扑逻辑和约束。构件分为原子构件和复合构件。软件体系结构处于需求分析之后、总体设计之前。软件体系结构的生命周期中各阶段任务P3839软件需求的类型包括:功能需求和非功能需求。功能需求(开发的软件做什么):为用户提供的服务、本系统为其他系统提供的服务非功能需求:质量属性(系统在其生命周期过程中所表现出的各种特征)、约束(规定了开发软件系统时
6、必须遵守的限制条件)。情景(场景):由人物、环境、事件、反应和结果等要素组成。在软件开发中,借助场景说明用户对功能和质量的要求,对应为用例场景和质量场景。场景:就是对某个实体与系统的一次交互的简要描述。质量属性场景是一个有关质量属性的特定需求。质量属性场景由六部分组成: 刺激源:可以是风险承担者、计算机系统等。刺激:可以看作是一个事件。 环境:系统当前的状态。制品:系统中对事件作出反应的部分,可以是整个系统或系统的某一部分。反应:事件到达后系统的相关行为。 反应度量:对反应结果提供某种形式的衡量。第3章 软件体系结构风格(software architecture style)软件体系结构风格
7、:是描述某一特定应用领域中系统组织方式的惯用模式。经典种类:数据流风格(批处理序列、管道和过滤器)、调用/返回风格(主程序和子程序、面向对象系统风格、层次结构)、独立构件风格(进程通信、事件系统)、虚拟机风格(解释器、基于规则的系统)和仓库风格(数据库系统、超文本系统、黑板系统)。C/S结构包括:数据库服务器、客户应用程序和网络。服务器任务:数据库安全性的要求;数据库访问并发性的控制;数据库前端的客户应用程序的全局数据完整性规则;数据库的备份与恢复。客户应用程序任务:提供用户与数据库交互的界面;向数据库服务器提交用户请求并接收来自数据库服务器的信息;利用客户应用程序对存在于客户端的数据执行应用
8、逻辑要求。C/S优点:1、C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受,一种分布式系统的模型。2、系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小,服务器符合较轻。3在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。C/S缺点:开
9、发成本较高、客户端程序设计复杂、信息内容和形式单一、用户界面风格不一,使用繁杂,不利于推广使用、软件移植困难:不同平台的客户端需要不同版本客户端软件、软件维护和升级困难、新技术不能轻易应用。三层C/S体系结构是将应用功能分成表示层、功能层和数据层三部分。P59 图3-10C/S和B/S的异同:B/S结构:浏览器、Web服务器和数据库服务器相同:B/S和C/S都是架构,均是基于web的服务。不同点:1 B/S是零客户端,C/S则需要客户端安装软件。2 B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。3 B/S体系结构的扩展能力差,安全难以控制。4 B/S的数据提交一般以页面
10、为单位,数据的动态交互性不强,不利用在线事务处理应用。正交软件体系结构是由组织层和线索的构件构成,是一种以垂直线索构件族为基础的的层次化结构。其线索之间是相互独立的(正交)。在软件演化过程中,体系需求会不断变化,在正交软件体系结构中,因线索的正交性,每一个需求变动仅影响某一条线索,而不会涉及到其他线索。正交软件体系结构优点:结构清晰,易于理解;易修改,可维护性强;可移植性强,重用粒度大。判断:一种软件体系结构只能有一种风格是错误的。DSSA:domin specific software architecture,特定领域软件体系结构,简单的说就是一个在特定应用领域中为一组应用提供组织结构参考
11、的标准软件体系结构。基本活动:领域分析、领域设计、领域实现。人员及任务:领域专家:提供关于领域中系统的需求规约和实现的知识,帮助组织规范的、一致的领域字典,帮助选择样本系统作为领域工程的依据,复审领域模型、DSSA等领域工程产品等。领域分析师:控制整个领域分析过程,进行知识获取,将获取的知识组织到领域模型中,根据现有系统、标准规范等验证领域模型的准确性和一致性,维护领域模型。领域设计人员:控制整个软件设计过程,根据领域模型和现有的系统开发出DSSA,对DSSA的准确性和一致性进行验证,建立领域模型和DSSA之间的联系。领域实现人员:根据领域模型和DSSA,或者从头开发可重用构件,或者利用再工程
12、的技术从现有系统中提取可重用构件,对可重用构件进行验证,建立DSSA与可重用构件间的联系。第4章 软件体系结构描述软件体系结构描述方法:图形表达工具、模块内连接语言、基于软构件的系统描述语言、软件体系结构描述语言。结构描述语言:UniCon,Wright,C2,Rapide,SADL,Aesop,ACME。软件体系结构描述标准:体系结构的存档要求;能识别人员及其关系;体系结构视点的选择;体系结构视点;体系结构视点之间的一致性;体系结构原理。ADL:architecture description language,软件体系结构描述语言ADL基本元素:构件:计算或数据存储单元;连接件:用于构件之
13、间交互建模的体系结构构造块及其支配这些交互的规则;体系结构配置:描述体系结构的构件与连接件的连接图。UML:统一建模语言(Unified Modeling Language)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。UML发展进程:1994年Booch和Rumbaugh将Booch-93与OMT-2统一,1995年Jacobson加盟,将OOSE合并;1997年11月,OMG采纳UML1.1作为基于面向对象技术的标准建模语言。XML:extensible markup language,可扩展标记语言。XML应用领域:设计置标语言;数据交换;WEB服
14、务(最主要领域)。第5章 web服务体系结构Web服务:使用标准技术在Internet上运行的商务流程,它可以使用标准的Internet协议,将功能纲领性地体现在Internet和Intranet。Web服务技术核心基于可扩展标记语言(XML)的标准,包括简单对象访问协议、Web服务描述语言和统一描述、发现、集成协议。五个逻辑层:数据层、数据访问层、业务层、业务面、监听者。特点:使用标准协议规范、使用协约的规范性、高度集成能力、完好的封装性、松散耦合。模型:包含三种逻辑构件:服务提供者、服务代理、服务请求 操作:发布、发现、绑定。Web开发生命周期:构建、部署、运行、管理。 过程:P174优势
15、:高度的通用性和易用性;完全的平台、语言独立性;高度的集成性;容易部署和发布。SOA:service-oriented architecture,面向服务的体系结构。定义:客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成,SOA与大多数通用的客户端/服务器模型不同之处,在于它着重强调软件构件的松散耦合,并使用独立的标准接口。SOA特性:松散耦合、粗粒度服务、标准化接口。第6章 基于体系结构的软件开发设计模式:是一些设计面向对象的软件开发的经验的总结。组成部分:模式名称、问题、解决方案、后果模式名称:用于描述模式的名字,说明模式的问题、解决方案和效果。 问题:说明在何种场合使
16、用模式。解决方案:描述设计的组成成分、它们之间的相互关系、各自的职责和合作方式。后果:描述应用模式后的结果及使用模式应当权衡的问题。MVC设计模式:模型-视图-控制器,简述MVC组成。(P192)设计模式的目录按照创建性、结构性和行为性三种目的划分为23种设计模式。ABSD:architecture-based software design,基于软件体系结构的设计方法。ABSD生命周期(P203)ABSDM模型的过程:基于体系结构的软件开发模型,简称ABSDM。过程划分为体系结构需求、设计、文档化、复审、实现、演化六个子过程。 基于软件体系结构的开发过程可以分为独立的两个阶段:实验原型阶段和
17、演化开发阶段。体系结构需求分析:从系统的质量目标、系统的商业目标和系统开发人员的商业目标分析。文档:是在系统演化的每一个阶段,系统设计与开发人员的通信媒介,是为验证体系结构设计和提炼或修改这些设计所执行预先分析的基础。文档的完整性和质量是软件体系结构成功的关键因素。复审的目的是标识潜在的风险,及早发现体系结构设计中的缺陷和错误,包括体系结构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件的划分是否合理、文档表达是否明确、构件的设计是否满足功能和性能的要求等。测试是最后一步,包括单个构件的功能性测试和被组装应用的整体功能和性能测试。第7章 软件体系结构的分析与测试可靠性:是软件系统
18、在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。(可靠性是抽象的,但是可以计算其可靠性因子)基于软件体系结构的软件测试与程序测试有所不同,它是检查软件设计的适用性,这种测试不考虑软件的实现代码,主要关注系统的结构和组装,保证软件的可靠性。测试方法:测试内容、测试准则、测试需求和测试用例的生成(P252-253)测试过程:单元测试、集成测试、系统测试。严重性分析中失效方式的识别分为两种:单个构件的失效方式和单个连接件的失效方式。严重性级别:灾难性的,危急的,边际性的和较小的。P250体系结构主要关注系统的结构和组装。基于体系结构描述的软件测试准则:测试应覆盖所有的
19、构件及各个构件的接口、各个连接件的接口、构件之间的直接连接、构件之间的简介连接。第8章 软件体系结构评估评估人员所关注的是系统的质量属性,所有评估方法所普遍关注的质量属性有以下几个:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、集成性和互操作性。可修改性包括四个方面:可维护性、可扩展性、结构重组和可移植性。敏感点和权衡点是关键的体系结构决策。敏感点是一个或多个构件的特性。权衡点是影响多个质量属性的特定,是多个质量属性的敏感点。2熟悉软件体系结构评估的三类主要的评估方式及适合场景。软件体系结构评估方式:基于调查问卷或检查表的方式、基于场景的方式和基于度量的方式。第9章 软件产品线体系结
20、构软件产品线:就是由在系统的组成元素和功能方面具有共性和个性的相似的多个系统组成的一个系统族。领域工程三个阶段:领域分析、领域设计、领域实现。框架:由抽象类及其实现的操作和对具体子类的期望组成。软件产品线的基本活动软件产品线组成:核心资源和产品集成。软件产品线特点:过程驱动、特定领域、技术支持、体系结构为中心双生命周期模型:分为领域工程和应用过程。两个过程都分为分析、设计和实现三个阶段。P283从整体来看,软件产品线的发展过程有三个阶段:开发阶段,配置分发阶段和演化阶段。建立方式:1将现有产品演化为产品线 2用软件产品线替代现有产品集3全新软件产品线的演化4全新软件产品线的开发。基本活动:核心资源开发、产品开发和管理。核心资源库的开发也可称为领域工程,产品开发称为应用工程。应用题:1 为系统写出功能需求、非功能需求2 画出系统的用例图3 设置合适的架构,并说出原因。