软件体系期末复习终结版
软件设计与体系结构期末复习整理
![软件设计与体系结构期末复习整理](https://img.taocdn.com/s3/m/359137ec87c24028915fc3ee.png)
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举例说明面向对象的多态性。
软件体系结构期末考试复习资料
![软件体系结构期末考试复习资料](https://img.taocdn.com/s3/m/5deb7e1ca8114431b90dd8eb.png)
软件体系结构仅供参考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、软件体系结构的生命周期:需求分析阶段,建立软件体系结构阶段,设计阶段,实现阶段,测试阶段。
(完整版)软件工程期末考试复习总结知识点+必考题型,推荐文档
![(完整版)软件工程期末考试复习总结知识点+必考题型,推荐文档](https://img.taocdn.com/s3/m/d1760be243323968001c9251.png)
软件工程复习资料1.软件危机产生的原因(1)软件不同于硬件,它是计算机系统的逻辑部件而不是物理部件。
在写出程序代码并在计算机上试运行之前软件开发过程的进展情况较难衡量。
很难检验开发的正确性且软件开发的质量也较难评价。
因此控制软件开发过程相当困难。
此外在软件运行过程中发现错误很可能是遇到了一个在开发期间引入的但在测试阶段没有能够检测出来的错误,所以软件维护常常意味着修改原来的设计。
这样维护的费用十分惊人,客观上使得软件较难维护。
(2)软件开发的过程是多人分工合作分阶段完成的过程,参与人员之间的沟通和配合十分重要。
但是,相当多的软件开发人员对软件的开发和维护存在不少错误的观念。
在实践的过程中没有采用工程化的方法,或多或少采用了一些错误的方法和技术。
这是造成软件危机的主要原因。
(3)开发和管理人员只重视开发而轻视问题的定义,使软件产品无法满足用户的要求。
对用户的要求没有完整准确的认识就急于编写程序。
这是许多软件开发失败的另一主要原因。
事实上,许多用户在开始时并不能准确具体地叙述他们的需要。
软件人员需要做大量深入细致的调查研究工作,反复多次与用户交流信息,才能真正全面、准确、具体地了解用户的要求。
(4)软件管理技术不能满足现代软件开发的需要,没有统一的软件质量管理规范。
首先是文档缺乏一致性和完整性,从而失去管理的依据。
因为程序只是完整软件产品的一个组成部分。
一个软件产品必须由一组的配置组成,不能只重视程序而应当特别重视软件配置。
其次,由于成本估计不准确,资金分配混乱,人员组织不合理,进度安排无序,导致软件技术无法实施。
(5)在软件的开发和维护关系问题上存在错误的观念。
软件维护工作通常是在软件完成之后进行的,因此是极端艰巨复杂的工作,需要花费很大的代价。
所以做好软件的定义工作是降低软件成本,提高软件质量的关键。
如果软件人员在定义阶段没有正确、全面地理解用户要求,直到测试阶段才发现软件产品不完全符合用户的需要,这时再修改就为时已晚了。
软件工程复习提纲总结3篇
![软件工程复习提纲总结3篇](https://img.taocdn.com/s3/m/4458b4c6f9c75fbfc77da26925c52cc58bd6903c.png)
软件工程复习提纲总结3篇七、软件维护1.软件维护的含义及类型?2.软件维护过程?3.◆需要把握的内容:4.1、面对对象分析(OOA)的任务?5.面对对象分析(OOA)过程中包括哪些活动?6.2、三种面对对象模型各自表示的内容?7.3、对象模型的表示工具?动态模型的表示工具?功能模型的表示工具?8.4、结合软件开发实例,理解三种面对对象模型之间的关系9.以及面对对象分析环节完成的主要工作。
10.11.---------------? 课堂练习题目一、填空题1.软件主要包括程序、和三部分内容。
2.软件可行性讨论的任务是从技术、和三个方面分析软件项目的可行性。
3.软件测试的目的是;通常把软件测试方法分为和两大类。
4.结构化分析方法中,功能模型用描述;数据模型用描述。
5.在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以根据自己的需要为同名行为设计不同的算法,此性质称为类的__。
二、选择题1.产生软件危机的主要缘由有(C)。
①软件本身的特点②用户使用不当③硬件牢靠性差④程序员水平⑤缺乏好的开发方法和管理手段A.③④B.①②④C.①⑤D.①③2.需求分析阶段,开发人员需从用户那里获得的最重要信息是(C)。
A.用户能接受的开发费用B.用户能接受的开发周期C.用户要让软件做什么D.软件应具有何种结构3.数据流图中的每个处理至少有(B)。
A.一个输入流或一个输出流B.一个输入流和一个输出流C.一个输入流D.一个输出流4.在面对数据流的设计方法中,一般把数据流图划分为(C)两种类型。
A.数据流和事务流B.变换流和数据流C.变换流和事务流D.掌握流和事务流5.数据流图所描述的是实际系统的(A)。
A.规律模型B.物理模型C.程序流程D.数据结构6.由变换型数据流图转换成模块结构图,其中包括变换模块,则(B)。
A.变换模块就是主模块B.变换模块的功能是将规律输入变换为规律输出C.变换模块没有下层模块D.变换模块只能有一个输入量、一个输出量7.为了提高软件测试的效率,应当(C)。
(完整版)软件工程期末复习要点归纳总结(可编辑修改word版)
![(完整版)软件工程期末复习要点归纳总结(可编辑修改word版)](https://img.taocdn.com/s3/m/142c1548680203d8cf2f2489.png)
第一章软件工程学概论1、软件危机产生的原因软件本身的特点:难于维护、逻辑复杂软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护课本表述:1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的增加而呈现指数上升。
3、软件本身特有的特点确实给开发和维护带了一些客观困难4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护)5、对用户要求没有完整准确的认识就匆忙开始着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现(什么是软件危机)(1)、成本高:(2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多(3)、进度难以控制:●项目延期比比皆是●由于进度问题而取消的软件项目较常见●只有一小部分的项目能够按期完成(4)、维护十分困难:▼软件维护的多样性▼软件维护的复杂性▼软件维护的副作用3、克服软件危机(1)、管理的角度:软件开发过程的研究、文档的标准化以及人员的交流方式等(2)、软件开发方法的研究结构化软件开发方法, 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。
(2)、①把系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
他借鉴传统工程的原理、方法,以提高质量,降低成本为目的。
5、软件工程的本质特性1、关注与大型程序的构造2、中心课题是控制复杂度3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人创造产品6、软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组应该少而精7、承认不断改进软件工程实践的必要性软件工程学包含3 个要素:方法、工具和过程7、软件生命周期(1)、概念:软件生命周期由软件定义、软件开发和运行维护(也成软件维护)3 个时期组成。
软件体系结构复习资料
![软件体系结构复习资料](https://img.taocdn.com/s3/m/7f1d04622e60ddccda38376baf1ffc4ffe47e2df.png)
软件体系结构复习资料软件体系结构复习资料软件体系结构是指软件系统中各个组成部分之间的关系和交互方式。
它是软件系统设计的基础,决定了软件系统的可靠性、可维护性和可扩展性。
在软件体系结构的学习中,我们需要了解不同的体系结构模式、设计原则和关键概念。
本文将从这些方面进行复习,帮助读者更好地理解软件体系结构。
一、体系结构模式1. 分层结构模式分层结构模式是一种常见的软件体系结构模式,它将软件系统划分为多个层次,每个层次负责不同的功能。
这种模式有助于实现模块化、可维护性和可复用性。
例如,一个三层架构的Web应用程序可以分为表示层、业务逻辑层和数据访问层,每个层次都有不同的责任和职责。
2. 客户端-服务器模式客户端-服务器模式是一种常见的分布式体系结构模式,它将软件系统划分为客户端和服务器两个部分。
客户端负责用户界面和用户交互,而服务器负责处理业务逻辑和数据存储。
这种模式有助于实现系统的可伸缩性和可扩展性。
3. 主从模式主从模式是一种常见的并行计算体系结构模式,它将软件系统划分为一个主节点和多个从节点。
主节点负责协调和控制整个系统的运行,而从节点负责执行具体的任务。
这种模式有助于提高系统的处理能力和性能。
二、设计原则1. 单一职责原则单一职责原则要求一个类或模块只负责一项功能。
这样可以提高代码的可读性、可维护性和可测试性。
例如,在一个MVC架构中,控制器只负责处理用户请求,模型只负责数据存储和处理,视图只负责展示数据。
2. 开放封闭原则开放封闭原则要求软件系统应该对扩展开放,对修改封闭。
这意味着当需求变化时,我们应该通过扩展现有的代码来满足新的需求,而不是修改已有的代码。
这样可以提高系统的稳定性和可维护性。
3. 依赖倒置原则依赖倒置原则要求高层模块不应该依赖于低层模块,而是应该依赖于抽象。
这样可以降低模块之间的耦合度,提高系统的灵活性和可扩展性。
例如,使用接口来定义模块之间的依赖关系,而不是直接依赖于具体的实现类。
河北师范大学软件体系结构期末复习总结
![河北师范大学软件体系结构期末复习总结](https://img.taocdn.com/s3/m/e496671a591b6bd97f192279168884868762b8c1.png)
河北师范⼤学软件体系结构期末复习总结软件体系结构复习第⼀章概述1.模式是⼀条由三部分组成的规则:⼀个特定的环境,⼀个问题,⼀个解决⽅案。
2.设计模式基于惯⽤法;体系结构模式基于设计模式。
3.好的系统设计应该具备的3个性质:可扩展性;灵活性;可插⼊性。
4.⾯对对象设计的原则:单⼀职责原则:⾼内聚性原则;避免相同的职责(功能)分散到不同的类中实现;避免⼀个类承担过多的职责——可以减少类之间的耦合;(类的设计主要⼯作是“发现职责”并“分离职责”;⼯⼚模式,模板⽅法模式,命令模式,代理模式遵守该设计模式);单⼀职责原则的体系结构模式:⼀个模块,⼦系统也应该仅有⼀个引起他变化的原因。
开闭原则:Open: 模块的⾏为必须是开放的,⽀持扩展的,⽽不是僵化的;Closed:在对模块的功能进⾏扩展时,不应该影响或把规模的影响已有的程序模块;绝⼤部分的设计模式都符合开闭原则;抽象化是开闭原则的关键——要求开发⼈员在不修改系统中现有的功能代码前提下,⽽实现对应⽤系统功能进⾏扩展。
依赖倒置原则:将依赖关系倒置为依赖接⼝:上层模块不应依赖于下层模块,它们共同依赖于⼀个抽象;⽗类不能依赖⼦类,他们都要依赖抽象类;抽象不能以来具体,具体应该依赖于抽象。
接⼝原则:⼀个类对另外⼀个类的依赖应当是建⽴在最⼩的接⼝上;客户端不应该依赖那些它不需要的接⼝。
如何避免不良好的接⼝设计:⽤多个专门的接⼝,⽽不使⽤单⼀的接⼝;⼀个接⼝就只代表⼀个⾓⾊;使⽤接⼝隔离原则拆分接⼝时,⾸先必须满⾜单⼀职责原则。
合成复⽤原则:⼜称为组合/聚合复⽤原则;尽量使⽤对象组合,⽽不是继承来达到复⽤⽬的;⼀个新的对象⾥通过关联关系(包括组合关系和聚合关系)来使⽤⼀些已有的对象;新对象通过委派调⽤已有对象的⽅法达到复⽤其已有功能的⽬的;继承复⽤:(“⽩箱”复⽤)实现简单,易于扩展,没有⾜够的灵活性。
组合/聚合复⽤:(“⿊箱”复⽤)耦合度相对较低,选择性地调⽤成员对象的操作;可以在运⾏时动态进⾏。
(完整word版)《软件系统分析与设计》期末复习知识点总结
![(完整word版)《软件系统分析与设计》期末复习知识点总结](https://img.taocdn.com/s3/m/9d0d410aa26925c52dc5bf2f.png)
一、方法论模型。
1、BOOCH、OMT、OOSE、Coad-Yourdon(前三者组成UML)2、UML包括9种图,分别为用例图、静态图(包图、类图、对象图)、实现图(构件图、部署图)、行为图(活动图、状态图、交互图(顺序图、协作图))基本规范,泛化关联,包含关联,扩展关联3、基本模型——类图、需求模型——用例图、辅助模型——其他各种图4、两大工具:Rose、PowerDesigner5、方法三要素:模型、工具和过程6、结构化分析三视图模型E-R、DFD、STD7、OMT方法的三大模型:对象模型、功能模型、动态模型8、Coad/Yourdon方法的五大层次:对象-类、结构、主题、属性、服务二、基本建模(类图与对象图)1、类之间的关系:关联关系、依赖关系、泛化关系。
2、抽象类与接口:抽象类有些方法可以提供实现代码,接口所有的方法都没有提供实现代码。
抽象类只能被继承,接口只能被实现。
3、类的版型:实体类(数据库、文件等)、边界类(如窗体、对话框)、控制类(协调交互)三、需求建模(用例图)1、参与者指系统以外的、需要使用系统或与系统交互的外部实体。
可以分为:人、外部设备、外部系统。
2、参与者之间的关系:泛化关系,参与者与用例之间的关系:关联关系。
用例之间的关系:泛化关系,包含关系,扩展关系。
包含关系和扩展关系都是依赖关系的特例。
3、用例是对一个参与者使用系统的一项功能时所进行的交互过程的一个文字描述序列。
是参与者可以感受到的系统服务或功能单元。
4、用例描述是一个关于参与者与系统如何交互的规范说明(包含用例用例名称、用例描述、基本事件流、参与者、前置后置条件等)5、用例的进一步描述:活动图、顺序图(通信图)四、行为建模(状态图与活动图)1、行为模型包括:状态模型(状态图,单对象)、活动模型(活动图,多对象)、交互模型(顺序图,多对象)。
2、调用事件表示的是对操作的调用,变化事件一个布尔表达式变量的值发生变化。
软件工程复习重点总结
![软件工程复习重点总结](https://img.taocdn.com/s3/m/61430e577ed5360cba1aa8114431b90d6d858958.png)
软件工程复习重点总结第一篇:软件工程复习重点总结第一章软件过程:需求设计实现发布软件过程三要素: 过程+方法+工具瀑布rup scrum IconixScrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。
Product Owner、Scrum Master、Team Product Backlog、SprintBacklog、Burndown Chart、Sprint、Sprint Planning Meeting、Daily Standup Meeting、Review Meeting、Retrospective Meeting ICONIX软件开发过程愿景、业务建模、需求分析、健壮性分析、系统设计……思想是重点;过程是方式;方法和工具是载体第二章敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。
敏捷是一种思想•Scrum是一个框架敏捷开发过程知多少?•Scrum、•极限编程(XP)、•Crystal Methods(水晶方法族)•特性驱动开发(FDD)•动态系统开发(DSDM)•轻量型统一过程(RUP)调查结果:敏捷开发方法—Scrum最流行!Scrum的适用场景•7人,+or-2•偏小一些会更适合•最好能坐在一起•客户参不度高•快速移动互联网项目•自主性研发的产品第三章软件项目是为了改善某个组织的某些方面–老大就是要改善的组织中最有权力的干系人。
用户建模四步曲列出尽可能多的用户识别关键用户(购买决策者/主要使用者)分类,合并次要用户4添加虚拟和极端用户第四章•产品backlog是Scrum的核心产品功能列表格式•ID(标示符)–统一标识符•Name(标题)–简短的、描述性的故事名•Story(故事)–故事内容描述•Priority(重要性)–产品负责人评出一个数值,指示这个故事有多重要•Initial estimate(初始估计)–团队的初步估算,表示不其他故事相比,完成该故事所需的工作量•How to demo(如何做演示)–它大略描述了这个故事应该如何在sprint 演示上进行示范•Notes(注解)–相关信息、解释说明和对其它资料的引用等等产品功能列表由谁来写?•思考:由谁来写?–主要是Product Owner–Team也有权利,但最终由PO进行取舍。
完整版软件体系结构期末试题+答案文档良心出品
![完整版软件体系结构期末试题+答案文档良心出品](https://img.taocdn.com/s3/m/42f757dc0b4c2e3f562763d6.png)
1. 以下关于系统性能的叙述中,不正确的是(17)。
(17)扎常见的Web 服务器性 能评估方法行基准测试、圧力测试和町靠性测试B.评价Web 服务器的主要性能指标有最人 并发连接数、响应延迟和吞吐最C.对运行系统进行性能评估的主要目的是以更好的性能/ 价格比更新系统D.当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈2某公司欲对其内部的信息系统进行集成,需要实现在系统之间快速传递町定制格式的数 据包,并fl 当有新的数据包到达时,接收系统会自动得到通知。
另外还要求支持数据甫传, 以确保传输的成功。
针对这些集成需求,应该采用(21)的集成方式。
(21) A.远程过 程调用 B.共享数据库C.文件传输D.消息传递3在RUP 中釆用“巾+1”视图模型来描述软件系统的体系结构。
在该模型中,最终用户侧 重于(26),系统工程师侧重于(27)。
(26) A.实现视图 B.进程视图 C.逻 辑视图 D.部署视图(27) A.实现视图 B.进程视图 C.逻辑视图 D.部署 视图4.某银行系统采用Factory Method 方法描述其不同账户之间的关系,设计出的类图如 F 所示。
其中与Factory Method 中的**Creator *角色相对应的类是(33);与u Product °角色相对应的类是(34) oA. BankB. Account象系统中的对象(Object ) B.模块化程序设计中的子程序(Subroutine ) C.基于构件开发 中的构件(Component ) D.系统模型中的包(Package ) 6软件的横向重用是指重用不同应用领域中的软件元素。
(31)是一种典型的、原始的 横向垂用机制。
(31) A.对象B.构件C.标准函数库D.设计模式7.在基于构件的软件开发中•(36)描述系统设计蓝图以保证系统提供适当的功能;(37)用来了解系统的性能、吞吐率等非功能性属性c (36) A.逻辑构件模型B.物理构件模型C.组件接II 模型 D.系统交互模型(37) A.逻辑构件模型B.物理构件模型C.组件接口模型D.系统交互模型&对象管理组织(0HG )基于C0RBA®础设施定义了四种构件标准。
软件体系结构期末复习
![软件体系结构期末复习](https://img.taocdn.com/s3/m/af99ae18591b6bd97f192279168884868762b8d4.png)
软件体系结构期末复习软件体系结构期末复习要点第⼀章绪论1. 软件⼯程的基本要素过程:⽀持软件开发各个环节的控制和管理。
⽅法:完成软件开发任务的技术⼿段。
⼯具:为软件开发提供⾃动的或半⾃动的软件⽀撑环境。
2. 软件⼯程的过程image-202101091334500853. 软件⼯程的⽅法⾯向服务:在应⽤表现层次上将软件构件化,即应⽤业务过程由服务组成,⽽服务由构件组装⽽成。
⾯向构件:寻求⽐类的粒度更⼤的且易于复⽤的构件,期望实现软件的再⼯程。
⾯向对象:以类为基本程序单元,对象是类的实例化,对象之间以消息传递为基本⼿段。
⾯向过程:以算法作为基本构造单元,强调⾃顶向下的功能分解,将功能和数据进⾏⼀定程度的分离。
第⼆章软件过程1. 软件过程模型的分类image-202101091345593432. 根据不同软件应⽤场景,选择合适的软件过程模型1. 瀑布模型image-20210109135141466特点:以预测性为原则。
以⽂档驱动开发过程。
以过程控制为核⼼。
根据瀑布模型的特点(连续⽆反馈)是对于每⼀个阶段来说,前⼀个阶段⼯作的正确⽆误是⾄关重要的。
因此,瀑布模型不能很好地适应那些需求不易确定和多变的软件项⽬的开发。
由于⼤项⽬在软件开发的前期阶段,⼈们很难详细地了解系统的许多细节,从⽽在项⽬进⾏过程中常会出现需求变化。
因此,瀑布模型适⽤于⼩系统开发项⽬,⽽不适⽤于⼤、中型软件系统开发。
2. 原型化模型image-20210109135859530原型化⽅法⾸先根据系统分析⼈员对⽤户要求的理解,模拟出⼀个系统原型,然后就这个模型与⽤户展开讨论。
所以,原型化⽅法是⼀种适应于需求不确定性的软件系统开发⽅法,即指在获得⼀组软件基本需求说明后,快速分析构造出⼀个⼩型的软件系统,满⾜⽤户的基本要求,使得⽤户可在试⽤原型过程中得到感受和启发,并做出反应、评价;然后开发者根据⽤户的意见对原型加以改进,获得新的原型版本,再次交由⽤户试⽤、评价。
软件工程期末复习要点归纳总结
![软件工程期末复习要点归纳总结](https://img.taocdn.com/s3/m/81447cb1b14e852458fb57fe.png)
第一章软件工程学概论1、软件危机产生的原因软件本身的特点:难于维护、逻辑复杂软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护课本表述:1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的增加而呈现指数上升。
3、软件本身特有的特点确实给开发和维护带了一些客观困难4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护)5、对用户要求没有完整准确的认识就匆忙开始着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现(什么是软件危机)(1)、成本高:(2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多(3)、进度难以控制:●项目延期比比皆是●由于进度问题而取消的软件项目较常见●只有一小部分的项目能够按期完成(4)、维护十分困难:▼软件维护的多样性▼软件维护的复杂性▼软件维护的副作用3、克服软件危机(1)、管理的角度:软件开发过程的研究、文档的标准化以及人员的交流方式等(2)、软件开发方法的研究结构化软件开发方法, 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。
(2)、①把系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
他借鉴传统工程的原理、方法,以提高质量,降低成本为目的。
5、软件工程的本质特性1、关注与大型程序的构造2、中心课题是控制复杂度3、软件经常变化4、开发软件的效率非常重要5、和谐的合作是开发软件的关键6、软件必须有效地支持它的用户7、在软件工程领域中通常由具有一个文化背景的人替另外一种文化背景的人创造产品6、软件工程的基本原理1、用分阶段的生命周期计划严格管理2、坚持进行阶段评审3、实行严格的产品控制4、采用现代程序设计技术5、结果应能清楚地审查6、开发小组应该少而精7、承认不断改进软件工程实践的必要性软件工程学包含3个要素:方法、工具和过程7、软件生命周期(1)、概念:软件生命周期由软件定义、软件开发和运行维护(也成软件维护)3个时期组成。
软件工程期末考试总复习题及答案
![软件工程期末考试总复习题及答案](https://img.taocdn.com/s3/m/1ba342487f21af45b307e87101f69e314232fa54.png)
软件工程期末考试总复习题及答案复习题填空题1.在信息处理和计算机领域内,一般认为软件是_程序____、_文档____ 和_数据____ 。
2.数据流图的基本组成部分有_数据的源点与终点____、数据流_____、加工_____、数据文件_____。
3.数据流图和数据字典共同构成了系统的_逻辑____模型,是需求规格说明书的主要组成部分。
4.划分模块时尽量做到__高内聚、低耦合______,保持模块的独立性,尽量使用公共模块。
5.类的实例化是_对象_______。
6.人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可7.靠性的两个指标是_成功地运行的概率_______和_平均故障时间_______。
8.将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,9.将得到软件的总开发量。
这种成本估算方法称为_自底向上_______。
10.如果一个模块被n 个模块调用,其中直接的上级模块的个数是m个(m<=n )那么该模块的扇入数是____N_______ 个。
11.结构化设计以__数据流图_________ 为基础,按一定的步骤映射成软件结构。
12.软件的风险分析可包括风险识别、风险预测和风险驾驭(或风险管理)等3项活动。
13.软件著作权登记的3种主要类型:(1)著作权登记;(2)著作权延续登记;(3)权利转移备案登记。
14.软件工程管理的主要内容有:项目经费管理,软件质量管理,项目进度管理和人员管理。
15.面向对象分析的目的是对客观世界的系统进行___建模_______________ 。
16.软件维护工作的生产性活动包括分析评价、修改设计和____编写程序代码_______ 等。
17.为了使应用软件适应计算机环境的变化而___修改软件_______________ 的过程称为适应性维护。
18.一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是__________顺序内聚________ 。
(精编)软件工程期末考试总复习题及答案
![(精编)软件工程期末考试总复习题及答案](https://img.taocdn.com/s3/m/06ffe21458f5f61fb73666ed.png)
(精编)软件工程期末考试总复习题及答案复习题填空题1.在信息处理和计算机领域内,一般认为软件是程序文档____ 和数据 ____ 。
2.数据流图的基本组成部分有数据的源点与终点、加工、数据文件3.数据流图和数据字典共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。
4.划分模块时尽量做到高内聚、低耦合,保持模块的独立性,尽量使用公共模块。
5.类的实例化是对象6.人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可7.靠性的两个指标是_成功地运行的概率和平均故障时8.将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,9.将得到软件的总开发量。
这种成本估算方法称为自底向上10.如果一个模块被n个模块调用,其中直接的上级模块的个数是m个(mv=n )那么该模块的扇入数是个。
11. 结构化设计以数据流图为基础,按一定的步骤映射成软件结构。
12. 软件的风险分析可包括风险识别、风险预测和风险驾驭(或风险管理)等3项活动。
13. 软件著作权登记的3种主要类型:(1)著作权登记;(2)著作权延续登记;(3)权利转移备案登记。
14. 软件工程管理的主要内容有:项目经费管理,软件质量管理,项目进度管理和人员管理。
15. 面向对象分析的目的是对客观世界的系统进行建模16. 软件维护工作的生产性活动包括分析评价、修改设计和编写程序代码等。
17. 为了使应用软件适应计算机环境的变化而修改软件的过程称为适应性维护。
18. 一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是内聚19. 投资回收期就是使累计的经济效益等于最初的投资费所需的时间。
20. 软件生存周期是指一个软件从提出开发要求开始直到软件废弃____ 止的整个时期。
21. 曾被誉为“程序设计方法的革命”的结构化程序设计,使程序设计从主要依赖于程序员个人的自由活动变成为有章可循的一门科学。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章软件体系结构概论一、软件危机的表现:①软件成本日益增长②开发进度难以控制③软件质量差④软件维护困难二、软件危机的原因:①用户需求不明确②缺乏正确的理论指导③软件规模越来越大④软件复杂度越来越高三、如何克服软件危机:①人们面临的不光是技术问题,更重要的是管理问题,管理不善必然导致失败。
②要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。
③在技术上,应该采用基于重用的软件生产技术;在管理上,应该采用多维的工程管理模式。
软件工程包含的三个要素:方法、工具和过程。
四、构件的定义:构件是指语义完整、语义正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述,通讯接口和实现代码的复合体。
五、构件模型的三个主要流派:OMG(对象管理集团)的CORBA(通用对象请求代理结构)SUN的EJB (Enterprise Java Bean)Microsoft的DCOM(分布式构件的对象模型)六、构件获取的途径:①从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可重用的构件。
②通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件。
③从市场上购买现成的商业构件(COTS)构件。
④开发新的符合要求的构件。
七、构件管理:1、构件描述2、构件分类与构件库组织3、人员及权限管理构件分类方法:1、关键字分类法2、刻面分类法3、超文本组织法八、构件重用:为了让构件在新的软件项目中发挥作用,库的使用者必须完成以下工作:①检索与提取构件:基于关键字的检索:优点:简单,易于实现;刻面检索法:优点:易于实现相似构件的查找;超文本检索法:优点:用户界面友好;其他......②理解与评价构件③修改构件④构件组装:基于功能的组装技术:构件以子程序/过程/函数形式出现;采用“子程序调用”和“参数传递”的方式将构件组装起来;强内聚,松耦合。
基于数据的组装技术:子程序调用与参数传递;面向数据的设计方法。
面向对象的组装技术:构造法和子类法。
九、软件重用概念:软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
软件元素包括:程序代码,测试用例,设计文档,设计过程.....十、软件体系的结构的定义:软件体系结构为软件系统提供了一个结构,行为和属性的搞基抽象,由构成系统的元素的描述。
这些元素的相互作用,指导元素集成的模式以及这些模式的约束组成,软件体系结构不仅仅指定了系统的组织结构和拓扑结构。
并且显示系统需求的构成,系统的元素之间的对应关系。
提供了一些设计决策的基本原理。
第二章软件体系结构建模一、根据建模侧重点不同,可以将软件体系结构的模型分为5种:①结构模型最直观,最普遍②框架模型③动态模型④过程模型⑤功能模型二、“4+1”视图模型“4+1”视图模型从5个不同的视角包括逻辑视图、物理视图、开发视图、进程视图和场景视图来描述软件体系结构。
逻辑视图也成为概念视图,主要支持系统功能需求的抽象描述,即系统最终将提供给用户什么样的服务。
开发视图也称为模块视图,主要侧重于软件的组织和管理,软件可以通过程序库或子系统进行组织。
进程视图(过程分解)也称过程视图侧重于系统的运行特性,主要关注一些非功能性的需求(并发性,分布性,系统集成性,容错能力)物理视图:主要考虑如何把软件映射到硬件上,它通常要考虑到系统系能、规模、可靠性等。
场景视图:场景可以看作是那些重要系统活动的抽象,它使4个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。
场景可以用文本表示,也可以用图形表示。
场景视图的作用:a. 以视图为驱动来发现体系结构元素b. 在体系结构设计结束后,此视图承担验证和描述的角色。
三、 体系结构的核心模型由5种元素组成:构件、连接件、配置、端口、角色;其中构件、 连接件、配置是最基本的元素。
构件:具有某种功能的可重用的软件模板单元,表示系统中主要的计算元素和数据存储; 连接件:表示构件之间的交互;配置:表示构件和连接件的拓扑逻辑和约束; 端口:表示构件的外部环境的交互点;角色:定义了该连接件表示的交互参与者。
四、 软件体系结构的生命周期① 软件体系结构的非形式化描述 ② 软件体系结构的规范描述和分析 ③ 软件体系结构的求精及验证 ④ 软件体系结构的实施⑤ 软件体系结构的演化和扩展⑥ 软件体系结构的提供、评价和度量 ⑦ 软件体系结构的终结。
第三章 软件体系结构风格一、软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。
词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
体系结构风格反映了领域中众多系统所共有的结构和语义特性,并描写如何将各个模块和子系统有效地组织成一个完整的系统。
二、通用软件体系结构风格:① 数据流风格(批处理序列,管道/过滤器)② 调用/返回风格(主程序/子程序,面向对象风格,层次结构) ③ 独立构件风格(进程通信,事件系统) ④ 虚拟机风格(解释器,基于规则的系统)⑤ 仓库风格(数据库系统,超文本系统,黑板系统) 管道/过滤器风格优点:① 具有良好的隐蔽性、高内聚、低耦合的特点 ② 简单性③ 支持软件重用④ 具有较强的可维护性和可拓展性⑤ 允许对一些如吞吐量、死锁等属性的分析 ⑥ 支持并行执行 缺点:① 通常导致进程成为批处理的结构软件体系结构配置连接件构件端口角色1:N1:N1:N②不适合处理交互的应用③因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
三、经典软件体系结构风格①管道和过滤器②数据抽象和面向对象组织③基于事件的隐式调用④分层系统⑤仓库系统及知识库⑥C2风格四、客户/服务器风格C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
C/S优点:①C/S体系结构的主要优点在于:系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
②C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
③在C/S体系结构中,系统中的功能构件允许隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必再每一个新的应用程序都要对一个DBMS进行编码,将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
C/S缺点:①开发成本较高②客户端程序设计复杂③信息内容和形式单一④用户界面风格不一,使用繁杂,不利于推广使用⑤软件移植困难⑥软件维护和升级困难⑦新技术不能轻易使用五、三层C/S增加了一个应用服务器将应用功能分成表示层、功能层和数据层。
六、B/S和C/S混合异构风①内外有别(内部C/S;外部B/S)②查改有别(维护修改C/S;查询B/S)七、DSSA的基本活动(特定领域软件体系结构)领域分析;领域设计;领域实现八、正交软件体系结构:正交软件体系结构由组织层和线索的构建构成。
层是由一族具有相同抽象级别的构件构成。
线索是子系统的特例。
由完全不同层次动能的构建组成。
(画图)正交软件体系结构特点:1.正交软件体系结构由完全不同功能的n(n>1)个线索组成2.系统具有m(m>1)个不同抽象级别的层3 .线索之间是相互独立的4.系统有一个公共驱动和公共数据结构。
正交软件体系结构的优点:1.结构清晰易于理解2.易修改维护性强3.可移植性强重用粒度大4章、软件体系结构描述一、软件体系结构的描述和表达图像表达工具(主要符号:矩形框+有向线段);模块内连接语言;基于软构件的系统描述语言;软件体系结构描述语言二、ADL是在底层语义模型的支持下为软件系统的概念体系结构建模提供了具体语法和概念框架。
基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。
体系结构描述语言ADL的三个基本元素是:构件、连接件和体系结构配置。
主要的体系结构描述语言有:Aesop、MetaH、C2、Rapide、SADL、Unicon和Wright等ADL与其他语言的比较:构造能力;抽象能力;重用能力;组合能力;异构能力;分析和推理能力Unicon:关注软件体系结构化特征支持异构;C2:是用于图形界面(GUI)密集系统的软件体系结构,实例会议安排系统;为了更好的使用ADL,一个配套的开发环境,提供以下工具:创建和浏览设计的图形化编辑体系结构的一致性检查,代码生成器,模式仓储等。
第五章动态软件体系结构一、由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变化,称之为软件体系结构演化,运行时刻的变动称为体系结构的动态性、静态修改称为结构的扩展。
二、基于构件的动态系统结构模型支持运行系统的动态更新,分为三层:应用层、中间层和体系结构层。
三、更新执行步骤:①检测更新的范围②更新准备工作③执行更新④存储更新四、动态软件体系结构概念体系结构的动态性:交互式动态性;结构化动态性;体系结构动态性根据所要修改的不同内容,软件体系结构的动态演化主要包括四个方面:属性改变;行为改变;拓扑结构改变;风格改变。
动态软件体系结构用处主要研究方向:1、研究模拟和描述体系结构动态更新的语言,2.研究支持体系结构动态更新的执行工具。
五、更新分为局部更新和全局更新局部更新只涉及中间层和应用层;全局更新涉及三个层。
第六章 web服务体系结构一、Web服务是使用标准技术在Internet上运行的商务流程,它可以使用标准的Internet协议将功能纲领性地体现在Internet和Intranet(企业内部网)上。
二、Web服务特点:使用标准协议规范;使用协约的规范性;高度集成能力;完好的封装性;松散耦合。
三、Web 服务体系结构模型包括三种逻辑构件:服务提供者,服务代理,服务请求发现updi wsdl 发布 绑定soap定义三种操作:发布、发现、绑定四、web 服务开发生命周期(四个阶段):构建;部署;运行;管理 Web 服务栈: 发现服务层 UDDI ,DISCO 描述服务层 WSDL ,XML ,Schema 消息格式层 SOAP 编码格式层XML传输协议层HTTP 、TCP/IP 、SMTP 等Web 服务体系结构的优势:① 高度的通用性和易用性② 完全的平台,语言的独立性 ③ 高度的集成性 ④ 容易部署和发布Web 服务的核心技术:① 作为web 服务基础的XML ② 简单对象的访问协议 SOAP ③ Web 服务描述语言WSDL④统一描述、发现和集成协议UDDI面向服务的软件体系结构特征:松散耦合;粗粒度服务;标准化接口第七章 基于软件体系结构的软件开发一、设计模式基本成分:模式名称;解决方案;问题;后果。