软件设计与体系结构期末复习整理
- 格式:doc
- 大小:340.12 KB
- 文档页数:6
1面向对象编程中是如何体现封装性的?封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
2重载和重写的含义重载是发生在一个类中,方法名相同,参数不同重写(覆盖)是子类继承父类,子类可以通过重写的方法隐藏继承的方法3什么是接口回调,过程细节是什么?概念:把可以实现某一接口的类创建的对象的引用赋给该接口声明接口变量,那么该接口变量可以调用被类实现(重写)的接口方法。
4试举例说明什么是组合关系和依赖关系组合(关联)关系:A类中成员变量是用B类声明的对象。
公司--职员依赖关系:A类中某个方法的参数是用B类声明的对象,或某个方法返回的数据类型是B类的对象5抽象类和接口,区别是什么?如何应用抽象类:抽象类中有抽象方法;抽象类中不能用new运算符创建对象;抽象类的对象做商转型对象接口:(1)接口中只可以有public权限的抽象方法,不能有非抽象方法;(2)接口由类去实现,即一个类如果实现一个接口,那么他必须重写接口中的抽象方法(3)接口回调区别:接口中只有常量,不能有变量;抽象类中既可以有常量也可以有变量;抽象类中也可以有非抽象方法,接口不可以。
应用:定义抽象方法:public abstract void方法名();在子类实现抽象方法:public void方法名(){}接口:public in terface接口名{}接口只负责定义规则,不负责任何实现;实现交给实现接口的类(6)面向对象的六条基本原则包括:开闭原则,里式代换原则,单一职责,依赖倒转、迪米特法则(接口隔离)。
(7)什么是设计模式?设计模式是从许多优秀的软件系统中总结出的成功的可复用的设计方案。
是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性(8)什么是框架?框架与模式的区别有哪些?框架是针对某个领域,提供用于开发应用系统的类的集合。
区别:层次不同、范围不同、相互关系9举例说明面向对象的多态性。
软件设计与体系结构复习题软件设计与体系结构复习题软件设计与体系结构是计算机科学与技术领域中的重要课程,它涉及到软件系统的设计、构建和维护。
在这篇文章中,我们将回顾一些与软件设计与体系结构相关的复习题,以帮助读者巩固知识和提高理解。
一、软件设计原则1. 什么是SOLID原则?请简要介绍每个原则的含义。
SOLID原则是面向对象设计中的五个基本原则,分别是单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。
单一职责原则指一个类只应该有一个引起变化的原因;开放封闭原则指软件实体(类、模块、函数等)应该对扩展开放,对修改关闭;里氏替换原则指子类对象应该能够替换父类对象而不影响程序的正确性;接口隔离原则指客户端不应该依赖它不需要的接口;依赖倒置原则指高层模块不应该依赖于低层模块,它们都应该依赖于抽象。
2. 什么是DRY原则?它的目的是什么?DRY原则(Don't Repeat Yourself)指不要重复自己。
它的目的是避免代码的重复,提高代码的可维护性和可复用性。
通过遵循DRY原则,可以减少代码的冗余,降低了修改代码时的风险,同时也提高了代码的可读性。
二、软件体系结构1. 什么是软件体系结构?它有什么作用?软件体系结构是指软件系统的整体结构和组织方式,它描述了软件系统中各个组件之间的关系和交互。
软件体系结构有助于理解系统的整体架构,提供了对系统进行设计、开发和维护的指导方针。
2. 请简要介绍常见的软件体系结构模式。
常见的软件体系结构模式包括分层结构、客户端-服务器结构、发布-订阅结构、管道-过滤器结构等。
分层结构将系统划分为若干层次,每一层次负责不同的功能;客户端-服务器结构将系统划分为客户端和服务器两部分,客户端发送请求,服务器提供服务;发布-订阅结构中,发布者发布消息,订阅者订阅感兴趣的消息;管道-过滤器结构中,数据通过一系列的过滤器进行处理。
三、设计模式1. 什么是设计模式?为什么使用设计模式?设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
软件体系结构仅供参考Chapter 11.构件的概念,构件的分类方法构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
构件模型是对构件本质特性的抽象描述。
三个主要流派:OMG的CORBA;SUN的EJB;Microsoft的DCOM分类方法:关键字分类法、刻画分类法、超文本组织方法2.软件危机的表现软件成本日益增长、开发进度难控制、软件质量差、软件维护困难3.构件的重用:检索和提取构建,理解和评价构件,修改构件,构件组装。
4.软件体系结构的意义:①是风险承担者进行交流的手段。
②是早期设计决策的体现。
③是可传递和可重用的模型。
5.软件体系结构的发展经历了几个阶段1) "无体系结构" 设计阶段(以汇编语言进行小规模应用程序开发为特征)2) 萌芽阶段(控制流图和数据流图)3) 初期阶段(UML)4) 高级阶段(高层抽象结构为中心)6.软件体系结构定义(填空)软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
Chapter 21.软件体系结构建模的种类结构模型、框架模型、动态模型、过程模型、功能模型2.4+1视图(会画图,详细描述)逻辑视图,主要支持系统的功能需求,即系统提供给最终用户的服务开发视图,主要侧重于软件模块的组织和管理。
进程视图,侧重于系统的运行特性,主要关注一些非功能性的需求。
物理视图,主要考虑如何把软件映射到硬件上场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来3.软件体系结构的核心模型五种元素[Chapter2 ppt 29]构件、连接件、配置、端口、角色4、软件体系结构的核心模型(会画,1对N的关系)5、软件体系结构的生命周期:需求分析阶段,建立软件体系结构阶段,设计阶段,实现阶段,测试阶段。
2021武汉理工软件设计与体系结构复习(仅供参考) 2021武汉理工软件设计与体系结构复习(仅供参考) 软件1 简答题什么是防止变异模式?是如何设计对象,子系统和系统,使这些元素内部的变化或不稳定性不会对其他元素产生不良影响。
解决方案:识别预测的变化或不稳定之处,分配职责用以创建稳定接口。
2.什么是依赖反转原理?把你的类从具体的实现中隔离开,使它们依赖于抽象类或接口。
它促进了代码面向接口而不是实现,这通过保证对实现的低耦合来增加系统的灵活性。
3.仓库风格的组件和连接器是什么?组件:(1)一个能表示出系统的正确状态的数据结构(2)操作主要数据结构的独立组件的集合。
连接器:典型的过程调用或是直接内存访问。
什么是响应时间?measure of the latency an application exhibits in processing a request对一个应用程序在处理请求显示出的潜在因素的测量标准。
常用的中间件有那几种类型?CORBA (Common Object Request Broker Architecture)Message-oriented middlewareJ2EEMessage brokersBusiness process orchestrators(1)常见的对象请求代理架构(2)面向消息的中间件(3) Java2 Enterprise Edition(Java2的企业版)(4)消息代理(5)业务过程代理管道过滤器风格?在管道/过滤器风格的软件体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。
这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。
因此,这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入架构师需要的核心技能是什么?Many responsibilities:Liaison with stakeholdersTechnology knowledgeSoftware engineeringRisk managements(1)涉众之间的交流(2)技术知识。
填空题:1.构件是指语义完整,语法正确和有可重用价值的单位软件是软件重用过程中可以明确便是的系统;构造上它是予以描述,通讯接口和实现代码的复合体.2.构件获取渠道(1)直接使用作适应性修改(2)通过遗留工程(3)市场上购置(4)开发新的构件3.构件分类与组织:关键字分类法,刻面分类法,超文本组织方法4.基于数据的组装技术:这种组装技术也要求库中构件以子程序形式出现5.软件体系构造建模种类:构造模型,框架模型,动态模型,过程模型,功能模型6.体系构造风格定义了一个系统家族即定义了一个词汇表和一组约束7.有两种不同构件:中央数据构造说明当前状态,仓库是一黑板系统8.C/S体系构造有三个主要组成局部:数据库效劳器,客户应用程序,网络9.ADL的根本元素:构件,连接件,体系构造配置10.软件体系构造描述方法:图像表达工具,模块内连接语言,基于软构件的系统描述语言,软件体系构造描述语言11.Web效劳:数据层,数据访问层,业务层,业务面,监听者12.简单对象访问协议:SOAP信封,SOAP编码规那么,SOAP RPC表示,SOAP绑定13.Web效劳特点:使用标准标准协议;使用协议的标准性;高度集成能力;完好的封装;松散耦合选择题:1构件模型的三个主要流派OMG,Sun的E,Microsoft的D2.构件管理:构件描述,构件分类与组织,人员及权限管理3.构件重用:检索与提取构件,理解与评价构件,修改构件,构件组装4.软件体系构造的开展史:无体系构造设计阶段,萌芽阶段,初期阶段,高级阶段5.分层系统优点:支持基于抽象程度递增的系统设计;支持功能增强;支持重用6.黑板系统的构成:知识源,黑板数据构造,控制7.面向对象系统优点:改变一个对象的表示不影响其他对象;分解成一些交互的代理程序集合8.W3C是万维网联盟9.Web效劳作为一种新兴的Web应用模式,是一种崭新的分布式计算模型,是Web上数据和信息集成的有效机制10.Web效劳就像Web上的构件编程,开发人员通过调用Web应用编程接口,将Web效劳集成进他们的应用程序就像调用本地效劳一样11.Web效劳开发生命周期:构件,部署,运行,管理12.Web效劳栈:程序设计语言【程序构件(组成程序的根本元素及其取值或值域范围);操作符(连接构件的各种功能符号); 抽象规那么(有关构件和操作符的命名表达规那么);限制规那么(一组选择并决定具体使用何种抽规那么来作用于有关的根本构件及其操作符的规那么和原理);标准说明(有关句法的语义关联说明);】软件体系构造【系统构件(模块化级别的系统组成成分实体,这些实体可以被施以抽象的特性化处理,并以多种方式得到使用);连接件(对组成系统的有关抽象实体进展各种连接的连接机制); 组合模式(系统中的构件和连接件进展连接组合的特殊方式也就是软件体系构造风格); 限制规那么(决定有关模式能够作为子系统进展大型软件系统构造和开发的合法子系统的有关构件); 标准说明(有关系统组织构造方面的语义关联说明)】1.软件体系构造定义:软件体系构造为软件系统提供了一个构造、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
1.软件设计的特征(1)软件设计的开端是出现某些新的问题需要软件来解决,这些需要促使设计工作的开始,并成为整个设计工作最初的基础(2)软件设计的结果是给出一个方案,它能够用来实现所需的、可以解决问题的软件,方案的描述可能是文字、图表,甚至数学符号、公式等组成的文档或模型(3)软件设计包含一系列的转换过程,即把一种描述或模型转换为另一种描述或模型,转换后的形态可能更加具体,或更接近于实现(4)产生新的想法或思路对软件设计非常重要,因为设计也是一个创造性的过程,不同的问题或需求总会存在各自的特点,即使同样的问题在不同时期和环境下也会存在区别,因此设计不会是一成不变的(5)软件设计的过程是不断解决问题和实施决策的过程,因为整个设计是解决一个大的问题,在设计过程中将会分解成众多小问题,涉及真需要一次解决这些小的问题,并在出现多种方案或策略时进行决策,选择其中最合适的(6)软件设计也是一个满足各种约束的过程,因为软件可能在性能、运行环境、开发时间、成本、人员技术水平等各个方面存在约束,设计必须在满足这些约束的情况下给出最佳的设计方案(7)大多数的软件实际是一个不断演化的过程,因为需求在一开始很可能是不完整或不精确的,在设计过程中还会不断发生变化并逐步稳定下来,因此设计需要根据需求的变化而不断演化。
2.软件设计的要素( 1 ) 目标描述 ( 2 ) 设计约束 ( 3 ) 产品描述 ( 4 ) 设计原理 ( 5 ) 开发规划 ( 6 ) 使用描述3.软件设计体系的定义( 1 )软件设计体系结构是软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系( 2 )软件体系结构是软件系统的基本组织,包含构建、构件之间、构件与环境之间的关系,以及相关的设计与演化原则4.软件设计的主要活动( 1 ) 软件设计计划 ( 2 ) 体系结构设计 ( 3 ) 界面设计 ( 4 ) 模块/子系统设计 ( 5 ) 过程/算法设计( 6)数据模型设计5.体系结构“4+1 ”多视图建模( 1 )逻辑视图:该视图关注功能需求,即系统应该为最终用户提供什么服务,它与应用领域精密相关( 2 )进程视图:该视图捕获设计中关于并发和同步的内容,重视一些非功能需求,例如性能、可扩展性等,定义了运行实体和它们的属性。
软件体系结构复习资料软件体系结构复习资料软件体系结构是指软件系统中各个组成部分之间的关系和交互方式。
它是软件系统设计的基础,决定了软件系统的可靠性、可维护性和可扩展性。
在软件体系结构的学习中,我们需要了解不同的体系结构模式、设计原则和关键概念。
本文将从这些方面进行复习,帮助读者更好地理解软件体系结构。
一、体系结构模式1. 分层结构模式分层结构模式是一种常见的软件体系结构模式,它将软件系统划分为多个层次,每个层次负责不同的功能。
这种模式有助于实现模块化、可维护性和可复用性。
例如,一个三层架构的Web应用程序可以分为表示层、业务逻辑层和数据访问层,每个层次都有不同的责任和职责。
2. 客户端-服务器模式客户端-服务器模式是一种常见的分布式体系结构模式,它将软件系统划分为客户端和服务器两个部分。
客户端负责用户界面和用户交互,而服务器负责处理业务逻辑和数据存储。
这种模式有助于实现系统的可伸缩性和可扩展性。
3. 主从模式主从模式是一种常见的并行计算体系结构模式,它将软件系统划分为一个主节点和多个从节点。
主节点负责协调和控制整个系统的运行,而从节点负责执行具体的任务。
这种模式有助于提高系统的处理能力和性能。
二、设计原则1. 单一职责原则单一职责原则要求一个类或模块只负责一项功能。
这样可以提高代码的可读性、可维护性和可测试性。
例如,在一个MVC架构中,控制器只负责处理用户请求,模型只负责数据存储和处理,视图只负责展示数据。
2. 开放封闭原则开放封闭原则要求软件系统应该对扩展开放,对修改封闭。
这意味着当需求变化时,我们应该通过扩展现有的代码来满足新的需求,而不是修改已有的代码。
这样可以提高系统的稳定性和可维护性。
3. 依赖倒置原则依赖倒置原则要求高层模块不应该依赖于低层模块,而是应该依赖于抽象。
这样可以降低模块之间的耦合度,提高系统的灵活性和可扩展性。
例如,使用接口来定义模块之间的依赖关系,而不是直接依赖于具体的实现类。
15、DSSA的定义答案:DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构16、构件:答案:构件是一个计算单元或数据存储。
也就是说,构件是计算与状态存在的场所。
17、连接件:答案:连接件是用来建立构件间的交互以及支配这些交互规则的体系结构构造模块。
18、体系结构配置:答案:体系结构配置或拓扑是描述体系结构的构件与连接件的连接图。
体系结构配置提供信息来确定构件是否正确连接、接口是否分配、连接件构成的通信是否正确,并说明实现要求行为的组合含义。
31、模式答案:模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。
42、核心资源答案:是领域工程所有结果的集合,是产品线中产品构造的基础。
33、设计模式答案:一些设计面向对象的软件开发的经验总结,就是系统的命名、解释、和评价某一个重要的面向对象的可重现的面向对象的设计方案。
43、软件产品线答案:软件产品线就是在一个公共的软件资源集合基础上建立起来的共享同一个特性集合的系统集合45、产品线体系结构答案:产品线体系结构是一个软件体系结构和一组在一族产品中可重用的构件,为增加软件重要、为企业降低软件开发和维护的成本提供了一个重要的途径。
3、简要概产生软件危机的原因答案:1.用户需求不明确 2.缺乏正确的理论指导 3.软件规模越来越大 4.软件复杂度越来越高。
4、软件体系结构的定义众多,你是如何理解软件体系结构的?软件体系结构在软件系统中有何作用?答案:(1)软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素继承的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,还显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
(2)体系结构是风险承担者进行交流的手段。
它明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性,可以预测软件的质量,是推理和控制更改更简单,有助于循序渐进的原型设计。
软件设计与体系结构复习软件设计与体系结构复习第⼀章:软件⼯程与软件设计1.1软件⼯程1.1.1 软件概述1. 计算机软件是与计算机系统操作有关的程序、规程、规则及任何与之有关的⽂档及数据,计算机软件=程序+数据+⽂档2. 软件由两部分组成:⼀是机器可执⾏的程序及有关数据;⼆是机器不可执⾏的,与软件开发、运⾏、维护、使⽤、培训有关的⽂档。
3. 软件是逻辑产品⽽不是物理产品4. 软件分为:系统软件、实时软件、嵌⼊式软件、科学和⼯程计算软件、事务处理软件、⼈⼯智能软件、个⼈计算机软件1.1.2 软件危机产⽣软件危机的原因:1. ⽤户对软件需求的描述不精确,可能存在遗漏、⼆义性、错误等。
在软件开发过程中,⽤户甚⾄还提出修改软件功能、界⾯、⽀撑环境等⽅⾯的要求,导致需求不断变更。
2. 软件开发⼈员对⽤户需求的理解与⽤户的期望有所差异,这种差异必然导致开发出来的软件产品与⽤户要求不⼀致。
3. ⼤型软件项⽬需要组织⼀定的⼈⼒共同完成,但多数管理⼈员缺乏开发⼤型软件系统的经验,⽽多数软件开发⼈员⼜缺乏管理⽅⾯额经验。
各类⼈员的信息交流不及时、不准确,有时还会产⽣误解。
4. 软件项⽬开发⼈员不能有效、独⽴⾃主地处理⼤型软件的全部关系和各个分⽀,因此容易产⽣疏漏和错误。
5. 缺乏有⼒的⽅法学和⼯具⽅⾯的⽀持,过分依靠程序设计⼈员在软件开发过程中的技巧和创造性,加剧了软件产品的个性化。
6. 软件产品的特殊性和⼈类智⼒的局限性,导致⼈们⽆⼒处理“复杂问题”。
⼀旦⼈们采⽤先进的组织形式、开发⽅法和⼯具提⾼了软件的开发效率和能⼒,新的、更⼤且复杂的问题⼜出现在⼈们⾯前。
1.1.3 软件⼯程的概念1. 软件⼯程的定义包括:1. 软件⼯程是将系统的、规范的、可度量的⽅法应⽤于软件的开发、运⾏和维护过程,以及对上述⽅法的研究2. 软件⼯程是⽤⼯程、科学和数学的原则和⽅法,研制、维护计算机软件的有关技术及管理⽅法2. ⼀般认为,软件⼯程由⽅法、⼯具和过程三个要素组成。
软件设计与体系结构复习软件设计与体系结构是软件工程中的两个重要概念,它们分别涉及到软件的设计和整体的组织结构。
软件设计关注的是如何将软件的需求转化为设计方案,而体系结构则关注如何合理地组织软件的各个组件以及它们之间的关系。
本文将介绍软件设计与体系结构的基本概念,以及复习相关知识点。
一、软件设计的基本概念软件设计是指根据软件需求对软件进行结构性设计的过程。
它涉及到软件的模块划分、模块之间的通信、数据流程的设计等方面。
软件设计的目标是使软件具有良好的可维护性、可扩展性和可重用性。
1.1软件设计的原则在软件设计过程中,需要遵循一些设计原则来保证软件的质量:(1)单一职责原则:一个模块或对象应该只有一个单一的职责。
(2)开放封闭原则:软件实体应该对扩展开放,对修改封闭。
(3)里氏替换原则:子类对象可以替换掉父类对象。
(4)接口隔离原则:使用多个小的接口,而不是一个大的接口。
(5)依赖倒置原则:高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
1.2设计模式设计模式是软件设计中经验总结出的一些通用模式,它可以提供有效的解决方案,帮助我们设计出可重用、可扩展、可维护的软件系统。
常见的设计模式包括单例模式、工厂模式、策略模式等。
1.3UML图UML图是一种用来描述软件模型的图形化表示方法,它包括用例图、类图、时序图、活动图等。
UML图可以帮助我们更好地理解和设计软件系统。
二、体系结构的基本概念软件体系结构是指软件系统的整体组织结构,它关注的是软件系统的架构、模块划分、模块之间的通信等方面。
良好的软件体系结构可以提高软件系统的可维护性、可扩展性和可重用性。
2.1分层结构分层结构是一种常见的软件体系结构模式,它将软件系统划分为多个层次,每个层次都有特定的功能。
不同层次之间通过接口进行通信,使得每个层次都能相互独立地进行开发和维护。
2.2客户-服务器结构客户-服务器结构是一种常见的分布式体系结构模式,它将软件系统划分为客户端和服务器端两部分,客户端发送请求到服务器端,服务器端返回响应结果。
软件体系结构期末复习软件体系结构期末复习要点第⼀章绪论1. 软件⼯程的基本要素过程:⽀持软件开发各个环节的控制和管理。
⽅法:完成软件开发任务的技术⼿段。
⼯具:为软件开发提供⾃动的或半⾃动的软件⽀撑环境。
2. 软件⼯程的过程image-202101091334500853. 软件⼯程的⽅法⾯向服务:在应⽤表现层次上将软件构件化,即应⽤业务过程由服务组成,⽽服务由构件组装⽽成。
⾯向构件:寻求⽐类的粒度更⼤的且易于复⽤的构件,期望实现软件的再⼯程。
⾯向对象:以类为基本程序单元,对象是类的实例化,对象之间以消息传递为基本⼿段。
⾯向过程:以算法作为基本构造单元,强调⾃顶向下的功能分解,将功能和数据进⾏⼀定程度的分离。
第⼆章软件过程1. 软件过程模型的分类image-202101091345593432. 根据不同软件应⽤场景,选择合适的软件过程模型1. 瀑布模型image-20210109135141466特点:以预测性为原则。
以⽂档驱动开发过程。
以过程控制为核⼼。
根据瀑布模型的特点(连续⽆反馈)是对于每⼀个阶段来说,前⼀个阶段⼯作的正确⽆误是⾄关重要的。
因此,瀑布模型不能很好地适应那些需求不易确定和多变的软件项⽬的开发。
由于⼤项⽬在软件开发的前期阶段,⼈们很难详细地了解系统的许多细节,从⽽在项⽬进⾏过程中常会出现需求变化。
因此,瀑布模型适⽤于⼩系统开发项⽬,⽽不适⽤于⼤、中型软件系统开发。
2. 原型化模型image-20210109135859530原型化⽅法⾸先根据系统分析⼈员对⽤户要求的理解,模拟出⼀个系统原型,然后就这个模型与⽤户展开讨论。
所以,原型化⽅法是⼀种适应于需求不确定性的软件系统开发⽅法,即指在获得⼀组软件基本需求说明后,快速分析构造出⼀个⼩型的软件系统,满⾜⽤户的基本要求,使得⽤户可在试⽤原型过程中得到感受和启发,并做出反应、评价;然后开发者根据⽤户的意见对原型加以改进,获得新的原型版本,再次交由⽤户试⽤、评价。
软件体系结构复习内容软件体系结构是指软件系统在组织上的结构和模块之间的关系。
它描述了软件系统的组成部分、它们的关系以及它们与系统环境之间的交互。
软件体系结构的设计对于软件系统的可维护性、可扩展性和可重用性都起着重要的作用。
下面是软件体系结构的复习内容:1.软件体系结构基本概念-软件体系结构是指软件系统的组织结构和模块之间的关系。
-软件体系结构描述了软件系统的组成部分、它们的关系以及它们与系统环境之间的交互。
-软件体系结构设计是软件开发的重要环节,可以提高软件系统的可维护性、可扩展性和可重用性。
2.常见的软件体系结构类型-分层体系结构:将系统划分为多个层次,每个层次提供不同的功能。
-客户-服务器体系结构:将系统划分为客户端和服务器端,客户端向服务器端请求服务。
-基于事件的体系结构:系统通过事件进行组织和通信,每个部分都可以处理事件。
-面向对象体系结构:将系统划分为多个对象,对象之间通过消息进行通信。
-基于组件的体系结构:将系统划分为可独立开发和部署的组件,组件之间通过接口进行通信。
3.软件体系结构设计原则-模块化:将系统划分为多个模块,每个模块负责一个特定的功能。
-高内聚低耦合:模块内部的元素彼此之间紧密相关,而模块之间的关系尽量松散。
-可扩展性:系统能够容易地增加新的功能模块。
-可重用性:系统中的模块能够被多个应用程序共享和重复使用。
-可维护性:系统的设计应该容易理解和修改,以适应变化的需求。
4.软件体系结构设计方法-层次化设计:将系统划分为多个层次,每个层次负责不同的功能。
-面向对象设计:将系统划分为多个对象,对象之间通过消息进行通信。
-事件驱动设计:将系统划分为多个模块,每个模块通过事件进行组织和通信。
-领域驱动设计:将系统划分为多个领域模型,每个模型描述一个特定领域的概念和关系。
5.软件体系结构评估方法-场景分析法:通过分析系统在实际应用中的使用场景来评估其性能和可用性。
-静态分析法:通过对软件系统的源代码、设计文档和配置文件进行分析来评估其结构和质量。
1、各种性能指标的定义及如何到达各种性能指标的方法ppt1-8 119页-124页 ①性能:吞吐量Throughput 、响应时间Response Time 、Deadlines②实现吞吐量:Peak & Average Many system have low average but high peak throughput requirements③实现响应时间: Guaranteed & Average E.g. 95% of responses in sub-4 seconds, and all within 10 seconds④Dealines :Deadlines often associated with batch jobs in IT systems2、常用的中间件有那几种类型(四种)分类:Business Process Orchestrators 业务流程协调器Message Brokers 消息代理Application Servers 应用服务器Transport面向消息的中间件,分布式对象系统(1)CORBA---公用对象请求代理(调度)程序体系结构,它在对象间建立客户-服务器的关系,这样一个客户可以很简单地使用服务器对象的方法而不论服务器是在同一机器上还是Business Process OrchestratorsMessage BrokersApplication ServersTransport Message-Oriented Middleware,Distributed Objects SystemsJ2EE, CCM, .NET BizTalk, WebSphere Message Broker, SonicMQ BizTalk, TIBCO StaffWare, ActiveBPEL通过一个网络访问。
(常见的对象请求代理架构)(2)Basic Message-oriented middleware---- MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
体系结构期末复习一、选择题(一)1. 设计模式的基本原理是( C )A.面向实现编程B.面向对象编程C.面向接口编程D.面向组合编程2. 设计模式的两大主题是( D )A.系统的维护与开发B.对象组合与类的继承C.系统架构与系统开发D.系统复用与系统扩展3. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。
A.组合聚合B.继承C.创建D. .以上都不对4. 关于继承表述错误的是( D )A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
B.泛化类(超类)可以显式地捕获那些公共的属性和方法。
特殊类(子类)则通过附加属性和方法来进行实现的扩展。
C.破坏了封装性,因为这会将父类的实现细节暴露给子类。
D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。
5. 常用的设计模式可分为( A )A.创建型、结构型和行为型B.对象型、结构型和行为型C.过程型、创建型和结构型D.抽象型、接口型和实现型6. “不要和陌生人说话”是对( D )设计原则的通俗表述。
A.接口隔离B.里氏代换C.依赖倒转D. .迪米特法则7. 在适配器模式中,对象适配器模式是对( A )设计原则的典型应用A.合成聚合B.里氏代换C.依赖倒转D. .迪米特法则8. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述A.策略模式B.桥接模式C.适配器模式D.单例模式9. 以下设计模式中属于结构模式的是( D )A. 观察者模式B.单例模式C.策略模式D.外观模式10. 以下不属于对象行为型模式是( D )A. 命令模式B.策略模式C.访问者模式D.桥接模式11. 下面的类图表示的是哪个设计模式( D )A. 抽象工厂模式B.观察者模式C.策略模式D.桥接模式12. Open-Close开闭原则的含义是一个软件实体( A )A.应当对扩展开放,对修改关闭。
B.应当对修改开放,对扩展关闭。
1面向对象编程中是如何体现封装性的?
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
2重载和重写的含义
重载是发生在一个类中,方法名相同,参数不同
重写(覆盖)是子类继承父类,子类可以通过重写的方法隐藏继承的方法
3 什么是接口回调,过程细节是什么?
概念:把可以实现某一接口的类创建的对象的引用赋给该接口声明接口变量,那么该接口变量可以调用被类实现(重写)的接口方法。
4试举例说明什么是组合关系和依赖关系
组合(关联)关系:A类中成员变量是用B类声明的对象。
公司--职员
依赖关系:A类中某个方法的参数是用B类声明的对象,或某个方法返回的数据类型是B类的对象
5抽象类和接口,区别是什么?如何应用
抽象类:抽象类中有抽象方法;抽象类中不能用new运算符创建对象;抽象类的对象做商转型对象
接口:(1)接口中只可以有public权限的抽象方法,不能有非抽象方法;
(2)接口由类去实现,即一个类如果实现一个接口,那么他必须重写接口中的抽象方法
(3)接口回调
区别:接口中只有常量,不能有变量;抽象类中既可以有常量也可以有变量;
抽象类中也可以有非抽象方法,接口不可以。
应用:定义抽象方法:public abstract void 方法名();
在子类实现抽象方法:public void 方法名(){}
接口:public interface 接口名{}接口只负责定义规则,不负责任何实现;实现交给实现接口的类
(6)面向对象的六条基本原则包括:
开闭原则,里式代换原则,单一职责,依赖倒转、迪米特法则(接口隔离)。
(7)什么是设计模式?
设计模式是从许多优秀的软件系统中总结出的成功的可复用的设计方案。
是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性
(8)什么是框架?框架与模式的区别有哪些?
框架是针对某个领域,提供用于开发应用系统的类的集合。
区别:层次不同、范围不同、相互关系
9举例说明面向对象的多态性。
多态性就是多种表现形式,具体来说,可以用"一个对外接口,多个内在实现方法"表示。
举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,
浮点或字符。
不管存储的是何种数据,堆栈的算法实现是一样的。
针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。
多态性也分静态多态性和动态多态性两种。
静态多态性是指定义在一个类或一个函数中的同名函数,它们根据参数表(类型以及个数)区别语义,并通过静态联编实现,例如,在一个类中定义的不同参数的构造函数。
动态多态性是指定义在一个类层次的不同类中的重载函数,它们一般具有相同的函数,因此要根据指针指向的对象所在类来区别语义,它通过动态联编实现。
(10)软件体系结构有哪几种形式?
概念结构:从主要设计元素(构件)及其相互关联、设计原则和性能角度考虑的结构。
模块结构:根据功能分解建立模块的层次结构包括模块接口、模块管理、模块控制和一致性等问题。
代码结构:描述源程序,二进制程序,库文件。
在开发环境下的组织包括系统资源配置管理,系统构造和对象嵌入机制 OEM 等。
执行结构:描述系统的动态结构包括性能、调度、动态配置和不同系统间的接口等。
(11)构件之间的连接方式有哪些?
(1)过程调用: 在某一特定执行路径中传递执行指针。
如普通过程调用、远程过程调用。
(2)数据流: 相互独立的处理通过数据流进行交互,在得到数据的同时被赋予控制权限。
如 UNIX 系统中的管道。
(3)间接激活: 处理因事件的发生而激活,在处理间没有直接交互。
例如,事件驱动系统、自动垃圾回收等。
(4)消息传递: 相互独立的处理间有明确交互,通过显式数据传递。
传递可以是同步的,也可以是异步的。
如TCP/IP 。
(5)共享数据: 构件通过同一数据空间进行并发操作。
如多用户数据库, 数据黑板。
(12)C/S体系结构的主要组成部分有哪些?其作用是什么?
(1) 服务器:负责给其他子系统提供服务。
如,数据库服务器提供数据存储和管理服务,文件服务器提供文件管理服务,打印服务器提供打印服务等。
(2) 客户机:向服务器请求服务。
客户机通常都是独立的子系统,在某段时间内,可能有多个客户机程序在并发运行。
(3) 网络:连接放在不同机器上的客户机和服务器。
(13)三层C∕S体系结构的数据处理流程是怎样的?
(14)软件体系结构的评价指标有哪些?
(1)性能:性能是指系统的响应能力,即响应时间、单位时间的处理量及特定事务的处理时间等。
一般使用基准测试程序对性能进行测试。
(2)可靠性:软件可靠性是指“在特定环境和特定时间内,计算机程序无故障地运行的概率”。
可靠性通常用“平均失效间隔时间”(MTBF)来衡量。
可靠性可以分为两个方面:
容错性。
其目的是在错误发生时确保系统正确的行为,并进行内部“修复”。
健壮性。
这里说的是保护应用程序不受错误使用和错误输入的影响,在遇到意外错误事件时确保应用系统处于已经定义好的状态。
(15)什么是ADL?常见的主流ADL有哪些?
体系结构描述语言(ADL)是参照传统编程语言,并针对软件体系结构特点,重新设计、开发和使用的专门的软件体系结构描述语言。
Aesop支持体系结构风格的应用;
MetaH为设计者提供了关于实时电子控制系统软件的设计指导;
C2支持基于消息传递风格的用户界面系统的描述;
Rapide支持体系结构设计的模拟,并提供了分析模拟结果的工具;
SADL提供关于体系结构细化的形式化基础;
Unicon支持异构的构件和连接类型,并提供了关于体系结构的高层编译器;Wright支持体系结构之间交互的说明和分析。
(16)ADL有哪些特性?
(1)构造能力:ADL能使用较小的独立体系结构元素来建造大型软件系统。