软件工程期末复习资料非常全
软件工程期末考试复习资料1
软件工程期末考试复习资料1版权声明:本文版权归05112114、05112125 所有,未经许可,任何任何媒体均不得改变其形式,进行转载或摘录,违者必究!软件工程期末考试复习资料一(仅参考)拟订人:超越吉他手、朱古力、哖_少オ輕狂第一章:软件工程的产生和发展有关复习资料一、软件工程的定义:1、软件危机的产生:软件危机的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
2、软件危机主要表现:两个方面:①软件产品质量低劣,甚至开发过程就夭折②软件生产率低,不能满足需要3、软件工程的三要素:①方法:完成软件开发各项任务的技术方法②工具:研究支撑软件开发方法的工具③过程:为开发高质量软件所规定的各项任务的工作步骤4、软件工程研究的标准及目标:标准:分为4个层次,国际标准、行业标准、企业规划、项目规划目标:以较少的投资获取高质量的软件。
有易于维护、低的开发成本、高性能、缩短开发期5、软件工程研究的主要内容:以下两个方面:①软件开发方法、技术;软件开发工具及环境②软件管理技术、软件规范(国际规范)7、软件工程学的目的:①以较少的投资获取高质量的软件②运用科学的方法和工程化的规范管理来指导软件开发③克服软件危机8、软件工程的基本原则:如下4条基本原则①必须认识软件需求的变动性,采取适当措施来保证结果产品能忠实地满足用户需求②稳妥的设计方法大大地方便了软件开发,以达到软件工程的目标③软件工程项目的质量与经济开销直接取决于对它所提供的支撑的质量与效用④有效的软件工程只有在对软件过程进行有效管理的情况下才能实现9、软件工程过程及特性:是指在软件工具的支持下,所进行的一系列软件工程活动包括4类基本过程:1)软件规格说明书2)软件开发3)软件确认4)软件演进特性:可理解性、可见性、可靠性、可支持性、可维护性、可接受性、开发效率和健壮性等。
二、软件与软件生存周期1、软件的概念和特点1)概念:软件是程序以及开发使用维护程序所需的所有文档2)软件的构成:由应用程序、系统程序、面向用户的文档及面向开发者的文档4部分构成即:软件=程序+文档3)特点:①软件是一种逻辑实体,不是具体的物理实体②软件产品的生产主要是研制③软件具有复杂性,开发和运行常受到计算机系统的限制、④软件成本昂贵,开发方式还没完全摆脱手工生产方式⑤软件不存在老化和磨损,存在在退化问题2、软件的分类1)按照软件功能划分①系统软件②支撑软件③应用软件2)按照软件规模划分微型、小型、中型、大型、甚大型、极大型3)按照软件工作方式划分实时处理软件、交互式软件、批处理软件4)按照软件服务对象的范围划分项目软件、产品软件3、软件结构及结构图衡量软件结构的有关指标:1)深度2)宽度3)扇出数扇入数软件结构的形态准则:顶部宽度小,中部宽度大,底部宽度次之;在顶部有较高的扇出数底部有较高的扇入数软件结构:1)模块(构成软件系统结构的基本元素)2)模块化3)软件的层次结构4)树状结构:特点是是程序的主模块、整个结构只有一个顶层模块、也只有一个上级模块、同一层模块之间没有横向联系5)网状结构:特点是任何两个模块之间有双向的关系、都是平等的结构图的构成:主要有模块、调用、数据4、软件生存期有关资料1)定义:是指从软件开始开发到报废的全过程,亦称软件生存期(l i f e c y c l e)。
软件工程复习资料精选全文完整版
可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。
(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。
(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。
(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。
(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。
(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。
(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。
软件工程基础期末复习资料完整版
2.文档有何作用?程序代码属不属于文档?答:文档指的是在软件开发和维护过程中形成的文字记录。
从软件计划、分析、设计、实现(编码和测试)、维护等开发活动中形成的各种文件。
文档属于软件的一部分,是软件维护和升级的重要依据,并且文档内容要与代码同步更新。
没有文档的软件维护不但不能延长反而会缩短软件寿命。
文档包括需求规格说明书、设计说明书、用户使用说明书、在线帮助等,当然程序代码是必不可少的一种软件文档。
3.什么是软件危机?什么原因产生了软件危机?答:软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。
产生的原因是主客观不相适应。
见书图1-2。
●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等;●主观上:传统的个体化开发观念和方法,无开发过程指导,无开发过程管理;由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。
5.软件工程三要素是什么?答:软件工程三要素是从计算机科学观点看软件工程,即从软件开发的技术层面应该有过程、方法和工具。
见图1-4。
(2)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量和及时地开发出软件。
过程定义的活动集合及其序列见第2章。
(3)“方法”为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列活动的做法。
如经常说的面向结构、面向对象、面向组件等开发方法,项目管理中估算、度量、计划等管理方法。
软件工程以介绍方法为主,本书从第3章开始逐步介绍开发过程所用到的方法。
(4)“工具”为过程和方法提供自动的或半自动的支持。
这些工具既包括软件也有硬件。
软件工具包括编程、建模、管理等开发工具。
通过网络环境把这些软件工具集成起来搭建一个支持团队开发的平台,称之为计算机辅助软件工程 (Computer Aided Software Engineering,CASE)。
CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。
软件工程期末考试资料
软件工程第一章:1.软件的组成不仅是程序、数据和文档,而且还有完成一定功能和性能所蕴含的知识和经验。
2.领域知识是基于计算机的系统的设计、软件需求获取和系统测试不可或缺的。
3.软件发展的历史给我们的启发是社会需求和硬件进步是软件技术发展的基础。
4.软件的进步和成就促进了信息社会和知识经济的发展。
5.按照应用领域、基本属性和特点研究软件有助于对软件的理解,提高了软件开发、使用和维护的针对性。
6.软件工程学科具有鲜明的工程特性。
第二章:1.面向对象方法是现代软件工程技术体系的基石,它以分类、继承、聚合、封装、多态和消息传递等贴近人类思维习惯的概念。
2.因面向对象与生俱来的自然性、直观性,以及支持软件复用、改善软件结构等许多优势,面向对象方法后来居上,迅速取代结构化方法而成为当前主流的软件开发方法学。
3.UML通过图形化的表示机制从多个侧面表示软件系统的分析和设计模型。
4.UML定义了5类图形机制:用例视图,包括用例描述和用例图;结构视图,包括视图,包括包图、类图和对象图;行为视图,包括交互图、状态图与活动图;构件视图和部署视图。
5.RUP将软件生存周期(即软件制品的进化状态)划分为初始、细化、构造、移交、生产5个阶段。
6.RUP将软件开发过程分解为业务建模、需求、设计、实现、V&V、部署、配置和变更管理、项目管理、环境9个工作流。
7.软件项目团队可利用5个阶段、9个工作流组织管理软件项目的开发活动。
RUP 过程中生成的各类制品通常以UML表示。
8.软件开发过程是基于面向对象方法学的,包括需求获取、需求分析、体系结构设计、人机交互设计、详细设计、实现、测试、维护与进化等重要的软件开发阶段。
第三章:1.软件需求是指利益相关方对目标软件系统在功能、性能和质量等方面的期望,以及对目标软件系统在运行环境、资源消耗等方面的约束。
2.软件需求可划分为功能需求、质量需求和约束性需求3种类型,其中质量需求和约束性需求统称为非功能需求。
软件工程复习资料-完整版
软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。
它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。
软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。
二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。
通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。
2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。
设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。
3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。
编码时应遵循编程规范,确保代码的可读性和可维护性。
同时,要进行单元测试,确保每个模块的功能正确。
4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。
单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。
5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。
同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。
三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。
模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。
2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。
在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。
3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。
在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。
4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。
在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。
5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。
软件工程复习资料-完整版
一、选择题:1、用例图中,用来表示用例的符号为( B ) 。
2、协作图中包含的元素包括(A ) 。
A. 对象 B. 链 C. 激活 D. 消息3、在类图中,哪种关系表达整体与部分的关系( D ) 。
A .泛化 B. 实现 C. 依赖 D. 聚合4、下列各种图形符号中,用来表示组成关系的符号为 (B )。
A. B. C. D.5 、(A )工具在软件的详细设计中不能使用。
A . DFD B. N-S 图 C. 流程图 D. PDL6 、 “软件危机”是指 (C )。
A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统7 、 快速原型是利用原型辅助软件开发的一种新思想,它是在研究 (A )的方法和技术中产生 的。
A. 需求阶段B. 设计阶段C. 测试阶段D. 软件开发的各个阶段8、从严格意义上讲,下列 4 个选项中属于顺序图的元素是(ABCD ) 。
A.对象B. 参与者C. 消息D. 激活9、下列 UML 图形中, (ABCD )属于 UML 的动态视图。
A. 协作图B. 状态图C. 活动图D. 顺序图10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是( D ) 。
A. 数据库设计B. 数据通信C. 数据关系描述D. 数据定义11、详细设计与概要设计衔接的图形工具是 (D )。
A. DFD 图B. 程序图C. PAD 图D. SC 图12 、UML 中,大多数建模者把节点分为(AC )A . 设备 B. 构件 C. 处理器 D. 显示器13 、(C)是一种特殊形式的状态机,用于对计算流程和工作流程建模。
A .时间图 B. 流程图 C. 活动图 D. 状态图14 、(A )描述从状态到状态的控制流程,常用来对系统的动态特征进行建模。
A. 状态图B. 序列图C. 协作图D. 活动图15、下列特点属于描述用例的特点的是( D ) 。
软件工程 期末复习提纲完美版
《软件工程》复习提纲1 软件与软件工程1.1软件的基本概念(例如,软件的定义、文档、软件的特点等)简单地说,软件由程序和文档两部分组成,一是机器可以执行的程序及有关的数据,二是机器不能执行的文档,软件的两种普遍定义:①软件是与计算机系统操作有关的程序,规程、规则及任何与之相关的文档和数据。
②软件是程序以及开发,使用和维护程序所需要的文档,包括机器运行所需要的各种程序及有关资料。
程序:为了解决某一问题而按事先设计的功能和性能要求执行的指令系列,或者说,用程序设计语言描述的适合于计算机处理的语句序列。
数据:使程序能正常操纵信息的数据结构。
文档:描述程序、数据和系统开发以及使用的各种图文资料。
它具有永久性并能供人或机器阅读。
软件的基本特点:·①计算机软件产品是一种逻辑产品部件而不是物理产品部件。
·②软件产品的生产主要是研制,是通过人们的智力活动,把知识与技术转化成信息的一种产品。
·③软件具有“复杂性”,其开发和运行常受到计算机系统的限制。
而且,软件投入使用后,仍需要进行维护,这就带来软件维护复杂性的问题。
·④软件不存在磨损,物理上不会老化,但存在软件退化问题。
·⑤软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。
1.2软件危机的概念软件危机是指在软件开发和维护过程中所遇到的一系列严重问题。
【由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。
致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。
】“软件危机”主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折;(2)软件生产率低,不能满足需要。
1.3软件工程学的概念(定义)、研究的内容(三要素)1993年IEEE定义:(1)把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;(2)研究(1)中提到的途径。
软件工程期末复习
软件工程期末复习第一章概述1、软件工程方法学的三个要素:方法、工具和过程2、目前广泛使用的软件工程方法学是传统方法学(结构化范型)和面向对象方法学3、软件生命周期分成哪几个阶段?软件定义、软件开发、运行维护(软件维护)3个时期软件定义分为3各阶段:问题定义、可行性研究和需求分析软件开发:总体设计、详细设计、编码和单元测试、综合测试(系统设计和系统分析)4、典型的生命周期模型包括瀑布模型、快速原型模型、螺旋模型、喷泉模型、RUP等第二章可行性研究1、可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决3种解法的可行性:技术可行性、经济可行性、操作可行性2、什么是系统流程图?它包括哪些符号?基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件。
处理(能改变数据值或数据位置的加工或部件)输入输出(表示输入或输出)连接换页连接数据流3、什么是数据流图?它包括哪些符号?(符号:正方形、圆角矩形、开口矩形、箭头)4、数据流图为什么要分层?在一张数据流图中包含多少个元素合适?一般来说,如果一张数据流图中包含的处理多于9个,人们就难于领会它的含义,因此数据流图应该分层,并且在功能级数据流图细化后得到的处理超过9个时,应该采用画分图的方法,也就是把每个主要功能都细化为一张数据流分图,而原有的功能级数据流图用来描绘系统的整体逻辑概貌。
5、什么是数据字典?它的用途是什么?它包括哪四类元素的定义?(元素定义:数据流、数据流分量(即数据元素)、数据存储、处理)6、成本估计的三种技术代码行技术、任务分解技术、自动估计成本技术第三章需求分析1、需求分析的基本任务是什么?主要包括哪几项?(任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题)主要包括:确定对系统的综合要求、分析系统的数据要求、导出系统的逻辑模型、修正系统开发计划。
软件工程期末复习资料
软件工程期末复习资料一、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
二、软件危机包括两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
三、软件危机具体表现:1、对软件开发成本和进度的估计常常很不准确;2、用户对“已完成的”软件系统不满意的现象经常发生;3、软件产品的质量往往靠不住;4、软件通常没有适当的文档资料;5、软件成本在计算机系统总成本中所占比例逐年上升;6软件开发生产率提高的速度,跟不上计算机应用迅速普及深入的趋势。
四、软件工程是指导计算机软件开发和维护的一门工程学科。
五、软件工程的7条基本原理:1、用分阶段的生命周期计划严格管理;2、坚持进行阶段评审;3、实行严格的产品控制;4、采用现代程序设计技术;5、结果应能清楚地审查;6、开发小组的人员应该少而精;7、承认不断改进软件工程实践的必要性。
六、软件工程方法学包含3个要素:方法、工具和过程。
七、软件定义时期的3个阶段:问题定义、可行性研究和需求分析。
八、软件生命周期的每个阶段的基本任务和成果:1、问题定义:确定要解决的问题是什么;2、可行性研究:研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法,其结果是客户作出是否继续进行这项工程的决定的重要依据;3、需求分析:确定目标系统必须具备哪些功能,其成果是需求分析报告;4、总体设计:应该设计出实现目标系统的几种可能的方案,设计程序的体系结构;5、详细设计:设计出程序的详细规格说明;6、编码和单元测试:写出正确的容易理解、容易维护的程序模块;7、综合测试:关键任务是通过各种类型的测试使软件达到预定的要求;8、软件维护:改正性维护、即诊断和改正正在使用过程中发现的软件错误,适应性维护、修改软件以适应环境的变化,完善性维护、根据用户的要求改进或扩充软件使它更完善,预防性维护、修改软件为将来的维护活动预先做准备。
九、软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件工程期末复习资料一.
《软件工程》期末复习第一章软件工程概述一、重点掌握的内容:软件和软件工程的基本概念二、一般掌握内容:软件生存周期及软件开发的各种模型。
三、主要知识点:软件:软件定义由以下三部分组成:(1在运行中能提供所希望的功能和性能的指令集(即程序;(2使程序能够正确运行的数据结构;(3描述程序研制过程、方法所用的文挡。
软件是一种产品,同时又是开发和运行产品的载体。
作为一种产品,它表达了由计算机硬件体现的计算潜能。
作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。
软件的特点:①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
③在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。
④软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
⑤软件的开发至今尚未完全摆脱手工的开发方式。
⑥软件的开发费用越来越高,成本相当昂贵。
软件的分类:软件依据不同的标准,可划分为不同的分类。
软件工程:是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程准则可以概括为六条基本原理:(1用分阶段的生存周期计划严格管理;(2坚持进行阶段评审;(3实行严格的产品控制;(4采用现代程序设计技术;(5应能清楚地审查结果;(6合理安排软件开发小组的人员。
软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。
软件工程的基本内容:软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。
软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。
软件生存周期一般可分为以下阶段:·问题定义·需求分析与可行性研究·设计·编码·测试·运行与维护软件生存期也可以分为三个大的阶段:计划阶段。
软件工程期末复习知识点整理
复习整理一、绪论1.软件的定义软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。
(软件=程序+文档)2.软件工程的定义●是指导计算机软件开发和维护的一门工程学科;●采用工程化的原理与方法对软件进行计划、开发和维护;●把证明正确的管理技术和最好技术综合运用到软件开发中;●研究经济地开发出高质量的软件方法和技术;●研究有效维护软件的方法和技术。
3.软件危机的概念,及出现的原因软件开发技术的进步未能满足发展的要求。
在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。
产生原因:⑴软件规模越来越大,结构越来越复杂⑵软件开发管理困难而复杂。
⑶软件开发费用不断增加。
⑷软件开发技术落后。
⑸生产方式落后,仍采用手工方式。
⑹开发工具落后,生产率提高缓慢。
4.三种编程范型的特点(1) 过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本控制结构,粒度最小(2) 面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对象,粒度比较大(3) 基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大二、软件生存周期与软件过程1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动●定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期●目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。
●主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护(P19)2、软件生命周期划分为哪几个阶段软件生命周期分为三个时期八个阶段:●软件定义:问题定义、可行性研究;●软件开发:需求分析、概要设计、详细设计、编码、测试;●软件运行:软件维护3、瀑布模型的特点和缺陷特点:线性模型,每一阶段必须完成规定的文档(阶段间的顺序性和依赖性)优点:●可强迫开发人员采用规范化的方法。
软件工程期末复习资料
一、判断题1、成功的测试是没有发现错误的测试。
(×)2、软件是指程序设计语言编写的程序。
(×)3、程序设计语言中应绝对禁止使用GOTO语句。
(×)4、可行性研究的结果有可能将软件开发项目否定。
(√)5、类是关于对象性质的描述,由方法和数据组成。
(√)6、概要设计阶段完成的主要文档是概要设计说明书。
(√)7、软件维护的前提是不能失去原有软件的基本功能。
(√)8、用盒图和PAD图设计出来额算法必定是结构化的。
(√)9、面向对象技术的最大优点是减少软件的开发时间。
(×)10、白盒测试无需考虑模块内部的执行过程和程序结构。
(×)11、如果通过软件测试没有发现错误,则说明软件是正确的。
(×)12、螺旋模型是在瀑布模型和增量模型的基础上增加风险分析活动。
(√)13、可行性研究的根本的目的不是解决问题,而是确定问题是否值得去解。
(√)14、在面向对象方法学中,“事件”是瞬时完成的,而“状态”是有持续性的(√)15、模块化、信息隐蔽等软件设计原则有助于得到高内聚低耦合度的软件产品√二、选择题1、软件工程的概念是1968年提出的2、对象的操作是对象的特征3、各种不同的软件维护中,以预防性维护所占的维护量最小4、准确的解决“软件必须做什么”是需求分析阶段的任务5、数据字典中,一般不包括源点和终点6、软件可行性研究实质上是要进行一次简化、压缩的需求分析、设计过程。
7、为高质量地开发软件项目,在软件结构设计时,必须遵循信息隐蔽原则。
8、研究开发所需要的成本和资源是属于可行性研究中的经济可行性研究的一方面。
9、软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试程序内部逻辑。
10、在确定属性时,所有修饰性名词词组和形容词是候选的属性。
11、下列的开发一个简单的问题解决方案不是分析建模的目的。
12、确认测试主要涉及的文档是需求规格说明书。
13、软件需求规格说明书的内容不应包括对算法的详细过程的描述。
软件工程期末复习(超详细!!!)
软件工程期末复习(超详细!!!)一:软件工程概述软件工程学的存在价值:促进软件项目成功。
软件的概念:软件(software):软件是计算机系统中与硬件相互依存的另一部分。
它包括程序、数据及其相关文档的完整集合。
(1)能够完成预定功能和性能的可执行指令(program)(2)使得程序能够适当地操作信息的数据结构(data)(3)描述程序的操作和使用的文档(document)软件危机:软件危机定义:软件在开发和维护过程中遇到的一系列严重问题。
软件危机包含两层含义:如何开发软件。
如何维护数量不断膨胀的已有软件。
软件工程(Software Engineering):是研究和应用功能如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。
软件生存周期:是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。
一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。
计划阶段确定待开发系统的总体目标和范围。
研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。
分析阶段分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。
设计阶段(总体设计和详细设计)设计阶段的目标是决定软件怎么做。
软件设计主要集中于软件体系结构、数据结构、用户界面和算法等方面。
实现阶段(编码)实现阶段是将所设计的各个模块编写成计算机可接受的程序代码。
测试阶段设计测试用例,对软件进行测试,发现错误,进行改正。
运行和维护阶段应当在软件的设计和实现阶段充分考虑软件的可维护性。
维护阶段需要测试是否正确实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。
维护常常是软件生命周期中最具挑战性的一个阶段,其费用是相当昂贵的。
软件工程三要素:工具、方法、开发过程瀑布模型:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。
软件工程期末考试复习(精)
第一章软件工程的概述软件工程的三要素:过程: 为建造高质量的软件所需完成的任务框架方法: 为软件开发提供了“如何做”的技术工具: 为软件工程方法提供了自动的或半自动的软件支撑环境软件生命周期的概念:软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生存周期.软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。
这个过程即为计算机软件的生命周期生命周期阶段的划分原则: 各阶段的任务相对独立;同一阶段任务的性质相同;软件的生存期划分的几个阶段:1、软件定义:问题定义可行性研究(软件计划需求分析2、软件开发:系统设计软件实现软件测试3、软件使用、维护和退役软件工程的过程模型(4 个瀑布模型(生存周期模型就是传统的生命周期方法学(既自顶向下结构化开发模型方法。
优点:奠定了软件工程方法的基础;流水依赖;便于分工协作;推迟实现;文档易修改;有复审质量保证。
缺点:用户需求明确困难;用户见面晚;纠错慢;难于克服系统分析员不懂专业领域的知识,用户不懂计算机的困难,成功率低。
适合于系统要求明确的小系统。
原型模型(rapid prototype model是为了确定需求而提出的实际模型。
打破传统的自顶向下结构化开发模型方法,在计划和需求分析后,把系统主要功能接口做为设计依据,快速开发出软件样机,及时征求用户意见,正确确定系统需求,然后再进一步准确地进行系统设计与实现。
优点:与用户见面快;开发成功率高,适合于需求不确定的大系统。
缺点:周期长,开发成本高。
螺旋模型(spiral model沿着螺线旋转(一个螺旋式周期,在四个象限上分别表达四个方面的活动制定计划:确定软件目标,选定实施方案,弄清项目开发的限制,选定完成目标的策略风险分析分析所选方案,考虑如何识别和消除风险,风险角度分析该策略实施工程实施软件开发,启动一个开发阶段客户评估评价前一步开发工作,提出修正建议,计划下一轮的工作特点:瀑布模型+快速原型+风险分析迭代过程统一过程过程模型RUP 的特点:用例驱动基于用例模型,开发人员可以创建一系列实现这些用例的设计和实现模型。
软件工程复习资料全
软件工程复习材料一、考试复习围:1、软件工程基本概念、基本原理2、需求分析,结构化分析、面向对象分析,结构化分析建模、面向对象分析建模3、软件设计,结构化程序设计,概要设计、详细设计4、软件测试二、考试题型:单项选择题、简答题、综合应用题(要求会画:数据流图、软件结构图、用例图、类图、N-S盒图、PAD图)三、复习容:1、什么是软件危机?人们把软件开发和维护中的各种问题称为“软件危机”。
2、软件危机主要包含哪两方面的问题?①如何开发软件以满足软件日益增长的需求。
②如何维护数量不断增长的已有软件。
3、软件危机的表现有哪些?①对软件开发成本和进度的估算很不准确。
②用户对完成的软件很不满意。
③软件产品的质量很不可靠。
④没有完整的文档。
⑤软件成本比重上升。
⑥软件开发生产效率低下,软件开发技术进步落后与需求的增长,造成“供不应求”的局面。
4、什么是软件工程?软件工程的定义:采用工程的概念、原理和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。
5、.软件工程包括3个要素有哪些?方法、工具和过程。
6、软件生命周期各阶段有哪些?软件生命周期包括:软件定义、软件开发、软件维护三个时期。
其中:软件定义包括:问题定义、可行性研究、需求分析阶段;软件开发包括:总体设计、详细设计、编码、软件测试阶段。
7、需求分析的任务有哪些?需求分析的任务主要有两个方面:①通过对问题及环境的理解、分析和综合,建立分析模型。
②在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。
8、软件系统需求分类是哪些?软件系统需求可以分为功能需求、非功能需求和领域需求:1)功能需求描述系统所预期提供的功能或服务。
即定义系统应该做什么,系统要求输入什么信息,输出什么信息,以及如何将输入变换为输出。
它由开发的软件类型、软件未来的用户以及开发的系统类型决定。
软件工程 期末复习备考资料
1. 软件开发的各阶段以及各自的任务软件开发一般分为五个阶段:1.问题的定义及规划此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性。
2.需求分析在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析。
需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础。
“唯一不变的是变化本身”,同样软件需求也是在软件开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行。
3.软件设计此阶段中偶要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计、数据库设计等。
软件设计一般分为总体设计和详细设计。
还的软件设计将为软件程序编写打下良好的基础。
4.程序编码此阶段是将软件设计的结果转化为计算机可运行的程序代码。
在程序编码中必定要制定统一、符合标准的编写规范。
以保证程序的可读性、易维护性。
提高程序的运行效率。
5.软件测试在软件设计完成之后要进行严密的测试,一发现软件在整个软件设计过程中存在的问题并加以纠正。
整个测试阶段分为单元测试、组装测试、系统测试三个阶段进行。
测试方法主要有白盒测试和黑盒测试。
需要大家掌握软件开发模型,瀑布、原型、演化、增量 等2. 可行性研究部分需要大家掌握系统流程图、数据流图(DFD)的画法.模型不用画,会描述就可以了。
如果能画出更好。
可行性研究从哪几个方面进行的?包括经济可行性研究,技术可行性研究,法律可行性研究和开发方案这4个部分考生 原始分 标准分 计算 标准分 计算 录取线分 招生计划 招生数 标准分 考生分数文件 标准分 录取线文件录取分数 解:3.第三章需求分析需求分析包括功能和性能(参PPT)功能:系统做什么?系统何时做什么?系统何时及如何修改或升级?性能:存储容量限制执行速度、响应时间吞吐量需求建模部分:DFD导出软件结构图。
4.第四章软件设计模块独立性模块完成独立的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、下列哪一模型是软件的基础模型A.瀑布模型B.快速原型C.增量模型D.螺旋模型2、划分软件生存周期的阶段时所应遵循的基本原则是A.各阶段的任务尽可能相对独立B.各阶段的任务在时间上连续C.各阶段的任务尽可能相关性D.各阶段的任务在时间上相对独立3、下列哪个办法不属于解决软件危机的途径之一A.采用软件工程的解决途径B.研制新一代智能计算机C.采用面向对象的软件设计方法D.大力扶持软件企业4、下列哪个不属于软件工程的内涵之一A.扶持培养软件高手的学院B.开发既可靠又能有效运行的软件C.应用完善的科学与工程原理D.经济地开发软件5.造成大型软件开发困难的根本原因在于A.开发人员缺乏足够的开发经验B.项目开发进度不合理C.软件系统的复杂性D.对软件开发的资金投入不足6.软件会逐渐退化而不会磨损,其原因在于A.软件备件很难订购B.不断的变更使组件接口之间引起错误C.软件错误在经常使用之后会逐渐增加D.软件通常暴露在恶劣的环境下7.下面说法正确的是A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功D.购买大多数计算机系统所需的硬件比软件更昂贵8.Ariane 5火箭发射失败的事例告诉我们A.(2)软件后备系统可以通过复制生成B.(3)软件重用必须重新进行系统论证和系统测试C. 选项(1)和(3)D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制9.软件危机的主要原因是A.软件本身的特点及开发方法。
B.软件工具落后。
C.软件生产能力不足。
D.对软件的认识不够。
10.下面的描述正确的是A.软件质量是在开发过程中逐渐构建起来的。
B.软件质量是由产品的功能、性能、易用性等外在特性决定的。
C.运行正确的软件就是高质量的软件。
D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。
11、可行性研究主要包括哪几项?A.技术可行性、经济可行性和操作可行性B.技术可行性、经济可行性和道德可行性C.技术可行性、法律可行性和操作可行性D.技术可行性、操作可行性和法律可行性12、成本/效益分析的目的是帮助()正确地作出是否投资于这项开发工程的决定。
A.系统分析员B.客户组织的负责人C.项目经理D.软件开发人员13、在进行成本/效益分析的时候,需要考虑()A.开发成本B.运行费用C.系统带来的经济效益D.系统使用寿命14、数据流图和数据字典共同定义了新系统的逻辑模型。
A.错B.正确15、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。
A. 正确B.错误16、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。
A. 正确B.错误17、结构化分析方法遵守的准则之一——定义软件需要完成的功能,需要建立的模型是A.功能模型B.数据模型C.行为模型D.动态模型18、下列叙述中,()不属于数据字典的作用。
A.为用户与开发人员之间统一认识B.为需求分析阶段定义各类条目C.作为概要设计的依据D.作为编码阶段的描述工具19、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描述了系统的()。
A.总貌B.软件的作者C.细节D.抽象20、结构化分析方法以数据流图、()和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。
A.PAD图B.IPO图C.DFD图D.数据字典21、不适于作为数据流图处理(加工)框名称的是()。
A.打印工资支票B.工资支票数据C.人工校核工资数据D.计算职工工资22、需求分析过程中,分析员是()。
A. 用户和软件人员的中间人B.用户和软件人员的领导B. C.软件的编程人员 D.用户中系统的直接使用者23、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于下列哪个系统。
A.管理信息B.决策支持C.需求不确定的D.需求确定的24、数据字典是用来定义下列哪个选项中的各成分的具体含义的。
A.功能结构图B.数据流图C.流程图D.系统结构图25、下列哪一项不是用来获取用户需求的。
A.与业务人员进行访谈B.绘制时序图C.发放调查问卷D.绘制数据流图26、获取用户需求的时候,定义数据流图中包含的元素使用下列哪一项进行描述?A.数据字典B.实体关系图C.系统流程图D.IPO图27、数据流图的四个基本符号是下列哪一组。
A.数据源点,处理,数据存储,数据流B.数据源点,数据终点,处理,数据存储C.外部实体,处理,数据终点,数据流D.外部实体,数据存储,处理,数据流28、下列哪一项的作用是“用来明确系统和环境的界限”的?A.数据终点B.数据存储C.外部实体D.数据流29、数据流图中的处理必须有流入的数据流和流出的数据流。
A.正确B.错误30、可行性研究可行性研究需要的时间长短和所研究系统的规模关系不大。
A.错误B.正确31、把可行性研究各个步骤的工作结果写成清晰的文档,请用户、客户组织的负责人及评审组审查,以决定是否继续这项工程及是否接受分析员推荐的方案。
A.正确B.错误32、一个软件项目是否进行开发的结论是在可行性报告文档中作出。
A.错误B.正确33、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。
A.错误B.正确34、数据流图中的数据流可以从外部实体直接到数据存储。
A.错误B.正确35、同一个外部实体只能在一张数据流程图中出现一次。
A.正确B.错误36、处理又称功能,表示对数据进行的操作。
A. 正确B.错误非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
特征耦合:一组模块通过参数表传递记录信息,就是标记耦合。
这个记录是某一数据结构的子结构,而不是简单变量。
其实传递的是这个数据结构的地址;控制耦合:如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。
外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。
公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合(1) 一个模块直接访问另一个模块的内部数据;(2) 一个模块不通过正常入口转到另一模块内部;(3) 两个模块有一部分程序代码重叠(只可能出现在汇编语言中);(4) 一个模块有多个入口。
耦合强度,依赖于以下几个因素:(1)一个模块对另一个模块的调用;(2)一个模块向另一个模块传递的数据量;(3)一个模块施加到另一个模块的控制的多少;(4)模块之间接口的复杂程度偶然内聚如果一个模块的各成分之间毫无关系,则称为偶然内聚,也就是说模块完成一组任务,这些任务之间的关系松散,实际上没有什么联系。
逻辑内聚几个逻辑上相关的功能被放在同一模块中,则称为逻辑内聚。
如一个模块读取各种不同类型外设的输入。
尽管逻辑内聚比偶然内聚合理一些,但逻辑内聚的模块各成分在功能上并无关系,即使局部功能的修改有时也会影响全局,因此这类模块的修改也比较困难。
时间内聚如果一个模块完成的功能必须在同一时间内执行(如系统初始化),但这些功能只是因为时间因素关联在一起,则称为时间内聚。
过程内聚构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。
模块完成多个需要按一定的步骤一次完成的功能。
(过程相关---控制耦合)。
例如:在用程序流程图设计模块时,若将程序流程图中的一部分划出各自组成模块,便形成过程内聚。
通信内聚(信息内聚)如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
模块完成多个功能,各个功能都在同一数据结构上操作,这个模块的所有功能都是基于同一个数据结构(符号表),因此,它是一个信息内聚的模块。
顺序内聚如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。
功能内聚模块的所有成分对于完成单一的功能都是必须的,则称为功能内聚。
37、下列耦合关系中,模块之间最差的耦合是( )A.控制耦合B.内容耦合C.数据耦合D.公共耦合38、一组模块均与同一外部环境关联,并受到约束时,这种耦合称之为()A.外部耦合B.数据耦合C.控制耦合D.数据耦合39、如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称之为()A.过程内聚B.顺序内聚C.功能内聚D.通信内聚40、在结构图中,将上级模块获得的数据,经过处理,再传给下属模块的模块是()A.加工模块B.协调模块C.传出模块D.传入模块41、耦合是影响软件复杂程度的一个重要因素。
应该采取下述分哪些设计原则()A.尽量使用数据耦合B.限制公共环境耦合的范围C.偶尔可以使用内容耦合D.少用控制耦合和特征耦合42、在考虑模块内聚时的设计原则是()A.应该力求做到模块的高内聚B.通常中等程度的内聚(通信、过程)也是可以采用的C.对于低内聚的模块可以考虑进行模块分割D.低内聚(偶然、逻辑、时间)建议不要使用42、局部化的概念和信息隐藏概念是密切相关的。
A. 错误B.正确43、程序流程图中表示分支的图形是()。
A.矩形B.平行四边形C.圆角矩形D.菱形44、下列哪一项既可用于表示程序逻辑,也可用于描绘数据结构。
()A.流程图B.判定表C.PAD图D.盒图45、在结构化程序设计当中,不建议使用()A.循环语句B.子程序调用语句C.转向语句D.分支语句46、下面哪个不属于良好的人机界面设计原则?()A.力求用户输入量最少B.具有帮助功能C.为不同的用户和功能提供一致的界面服务D.系统的全部界面格式和风格一致47当模块中包含复杂的条件组合,下列哪一项能够清晰地表达出各种动作之间的对应关系。
()A.流程图B.盒图C.关系图D.判定表和判定树48、流程图中的矩形表示()A.处理B.输入输出C.分支D.开始49、判定表由四部分组成,右下部列出的是下列哪一项()A.条件组合与动作之间的对应关系B.所有条件C.所有可能的动作D.可能的条件组合50、下列关于伪码的描述,哪个是不准确的?()A.描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单;B.可以嵌入在源程序中一起作为程序文档;C.利用伪码可自动生成程序代码。
D.伪码和图形工具一样形象直观;1. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。