软件工程复习资料(1)
软件工程复习资料精选全文完整版
可编辑修改精选全文完整版一、单选题(共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、耦合是模块之间的相对独立性的度量。
软件工程复习资料
一、单选题1. 为了提高测试的效率,应该( D )A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2. 与设计测试数据无关的文档是( D ) A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以( B )为基础、自顶向下、逐步求精和模块化的过程A、数据流B、数据流图C、数据库D、数据结构4. 概要设计的结果是提供一份( A ) A、模块说明书B、框图C、程序D、数据结构5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出( B )A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的( D )A、1/6 B、1/5 C、1/4 D、1/37. PAD(Problem Analysis Diagram)图是一种( B )工具。
A、系统描述B、详细设计C、测试D、编程辅助8. 排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的( A )。
A、95%B、5%C、50%D、20%9.分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的( A ) 。
A、总貌B、细节C、抽象D、软件的作者10. 分析员是( B )。
A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导11.在软件开发中,有利于发挥集体智慧的一种做法是( A )。
A、设计评审B、模块化C、主程序员制D、进度控制12.在开发软件时,( A )可用来提高程序员的工作效率。
A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机二、多选题1. 数据流图的3种成分为①、②和③,②是数据流中①的变换,③用来存储信息,④对①、②、③进行详细说明,用⑤对③进行详细描述。
[理学]软件工程复习资料1
一、单选题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.基于Jackson图的设计 B.基于IDEF0图的设计-结构化方法-数据流C.交换分析设计 D.事务分析设计7.为高质量地开发软件项目,在软件结构设计时,必须遵循()原则。
A.信息隐蔽 B.质量控制 C.程序优化 D.数据共享8.软件复杂性主要体现在()A.数据的复杂性B.程序的复杂性C.控制的复杂性D.问题的复杂性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、共享性C、封装性D、抽象性15.单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现()的错误。
软件工程复习资料
软件工程复习资料1. 软件工程概述软件工程是一门研究如何构建和维护软件系统的学科。
它涵盖了软件开发的各个方面,包括软件需求、设计、编码、测试、维护等。
本节将对软件工程的基本概念和重要原理进行介绍。
1.1 软件工程的定义软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的系统工程。
它关注软件开发过程中的各个环节,以提高软件质量和开发效率。
1.2 软件工程的目标软件工程的目标是开发高质量的软件系统,满足用户需求,具备良好的可维护性和可扩展性。
通过采用合适的开发方法和工具,提高软件开发过程的可靠性和效率。
1.3 软件工程的原则软件工程遵循一些重要的原则来指导软件开发过程,包括模块化、抽象、信息隐藏、接口规范、单一职责等原则。
这些原则有助于提高软件质量和可维护性。
2. 软件开发过程软件开发过程是指将软件需求转化为可执行软件的过程。
它包括需求分析、设计、编码、验证和维护等阶段。
本节将介绍常用的软件开发过程模型和相应的方法。
2.1 瀑布模型瀑布模型是一种线性的软件开发过程模型,包括需求分析、设计、编码、测试和维护等阶段。
瀑布模型适用于需求稳定的项目,但不适用于需求频繁变更的项目。
2.2 敏捷开发敏捷开发是一种迭代的软件开发过程模型,强调快速反馈和适应需求变化。
敏捷开发方法包括Scrum、XP等。
它适用于需求不确定或频繁变更的项目。
2.3 增量开发增量开发将软件系统划分为多个增量,每个增量包含了一个或多个功能模块。
每个增量的开发和测试独立进行,逐步完善系统。
增量开发适用于大型项目和复杂项目。
2.4 软件开发过程的选择选择适合项目的软件开发过程模型非常重要。
需要考虑项目的规模、需求的稳定性、团队的能力等因素来决定采用哪种开发过程模型。
3. 软件需求工程软件需求工程是软件工程的一项重要活动,旨在准确捕获用户需求,并将其转化为可执行的软件需求规格。
本节将介绍软件需求的定义、分类和常用的需求获取和分析方法。
软件工程复习题[1]
软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是(C )A模块高内聚B模块低耦合C模块独立性D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?(D )A产生危机B质量保证C开发效率D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标B软件的性能C软件的功能D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A。
功能需求B。
非功能需求 C.性能需求 D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D)A。
需求分析 B.软件设计C。
程序编码 D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A。
原型化方法B。
结构化方法 C.面向对象方法. D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.(A )A。
软件模型 B.软件功能 C.软件结构 D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A。
软件开发方法 B.软件开发工具 C.软件工程环境D。
软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的( B )A。
可理解性 B.可维护性C。
可扩展性 D.可靠性10、从( C)语言开始,软件摆脱了对硬件的依赖。
A。
第一代B。
第二代C。
第三代D。
第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分?(B )A。
实体 B.数据存储C。
关系D属性12、在下面的概念模式中,哪种描述的不是动态数据结构或属性?( C )A。
框图 B.结构图C。
实体关系图D。
软件工程知识点复习资料
软件工程知识点复习资料一、软件工程概述软件工程是一门研究如何以系统性的、规范化的、可度量的方法进行软件开发、运行、维护和管理的学科。
它涵盖了软件开发生命周期的各个阶段,包括需求分析、系统设计、编码实现、测试和维护等。
二、软件生命周期与开发模型1. 软件生命周期包括需求分析、系统设计、编码实现、测试和维护等阶段。
不同的项目可以采用不同的开发模型,常见的有瀑布模型、迭代模型和敏捷模型。
2. 瀑布模型是一种线性顺序开发模型,各个阶段严格按序进行,适用于需求较为稳定的项目。
3. 迭代模型将软件开发过程划分为多个迭代阶段,每个迭代阶段都包含需求分析、设计、编码和测试等活动,适用于需求较为不确定或需要持续改进的项目。
4. 敏捷模型强调快速响应需求变化和灵活合作,通过迭代、增量的方式进行开发,适用于需求频繁变更的项目。
三、需求工程1. 需求分析是软件开发的第一步,包括需求获取、需求分析、需求建模等过程,目的是明确系统的功能和性能需求,并与客户达成一致。
2. 需求获取可以通过面谈、问卷调查、观察等方式进行,需求分析则要对已收集到的需求进行分析、整理和归纳。
3. 需求建模使用UML(统一建模语言)等工具,将需求表示为用例图、活动图、时序图等形式,便于后续的系统设计和编码实现。
四、设计与架构1. 系统设计是软件开发的关键阶段,包括软件架构设计和详细设计等过程,目的是指导后续的编码和测试工作。
2. 软件架构设计确定系统的整体结构、模块划分和模块间的关系,常见的架构风格包括层次结构、客户-服务器、面向对象等。
3. 详细设计是对系统模块的具体设计,包括数据结构设计、算法设计和接口设计等,常用的设计方法有结构化设计和面向对象设计。
五、编码实现与调试1. 编码实现是将设计阶段得到的设计方案转化为计算机可执行的代码,采用合适的编程语言和开发工具进行。
2. 编码时要注重代码的可读性、可维护性和可重用性,采用良好的编程风格和命名规范。
软件工程复习资料
软件⼯程复习资料《软件⼯程》复习资料1.解释什么是软件⼯程?运⽤⼯程学的原理和⽅法来组织和管理软件的⽣产和管理,以保证软件产品开发、运⾏和维护的⾼质量和⾼⽣产率。
2.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重的问题。
它包含两个⽅⾯的问题:如何开发软件,以满⾜对软件⽇益增长的需求,如何维护数量不断膨胀的已有软件。
3.简述软件与硬件的区别。
硬件是计算机系统中的物理部件,⽽软件则是计算机系统中的逻辑部件。
4.简述软件⼯程专家B.W.Boehm提出的软件⼯程七条原理。
七条基本原理:(1)⽤分阶段的⽣命周期计划严格管理;(2)坚持进⾏阶段评审;(3)实⾏严格的产品控制;(4)采⽤现代程序设计技术;(5)结果应能清楚地审查;(6)开发⼩组的⼈员应该少⽽精;(7)承认不断改进软件⼯程实践的必要性。
5.软件⼯程的三个要素的是什么?⽅法、⼯具和过程(其中⽅法是完成软件开发的各项任务的技术⽅法,回答“怎样做”的问题;⼯具是为运⽤⽅法⽽提供的⾃动或半⾃动的软件⼯程⽀撑环境;过程是为了获得⾼质量的软件所需要完成的⼀系列任务的框架,它规定了完成各项任务的⼯作步骤。
)6.⼀个软件的⽣命周期分为哪⼏个阶段?软件定义,软件开发和运⾏维护7.什么是软件过程?主要有那些过程模型?1)、软件过程是为了获得⾼质量软件所需要完成的⼀些列任务的框架,它规定了完成各项任务的⼯作步骤。
2)、主要有:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。
8.简述瀑布模型的特点。
1)、阶段间具有顺序性和依赖性,2)、推迟实现的观点,3)、保证质量的观点9.简述原型法的基本思想。
所谓快速原型是快速建⽴起来的可以在计算机上运⾏的程序,它能够完成的功能往往是最终产品能完成的功能的⼀个⼦集。
10.Rational统计过程的“最佳实践”指的是什么?迭代式开发、管理需求、使⽤基本构件的体系结构、可视化建模、验证软件质量、控制软件变更。
软件工程复习资料(1)
软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
产生于软件发展的第二阶段(软件系统阶段)末期。
软件危机---主要表现对软件开发成本和进度的估计不准确用户不满意软件质量不高、可靠性差软件常常不可维护、错误难以改正缺乏适当的文档资料软件成本占系统总成本的比例逐年上升(1985----90%)软件开发速度跟不上计算机发展速度归结为主要为三方面----“时间、成本、质量”软件危机--原因1软件规模日渐庞大(数量、功能、成本、质量、时间)软件开发的管理困难。
逻辑部件而不是物理部件。
在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价。
因此,管理和控制软件开发过程相当困难。
开发人员错误的观念、方法和技术重编程、轻需求。
生产方式落后:个体手工方式。
开发技术落后。
开发工具落后软件危机---原因2忽视软件开发前期的需求分析开发过程缺乏统一的、规范化的方法论的指导文档资料不齐全或不准确忽视与用户之间、开发组成员之间的交流忽视测试的重要性不重视维护或由于上述原因造成维护工作的困难需求变化预料不足软件工程--定义1软件工程是指导计算机软件开发和维护的工程学科。
它采用工程的概念、原理、技术和方法来开发与维护软件把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来软件工程--目标付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;易于移植需要较低的维护费用;能按时完成开发工作,及时交付使用;开发软件质量指标高;统一为——“如何提高软件生产率”软件生存期技术》定义的软件过程过程元素之间的关系标准软件过程体系结构图软件生命周期它是指一个软件从提出开发要求开始到该软件报废为止的整个时期(生存过程)。
从时间角度,把整个周期划分为若干个阶段(步骤),每个阶段有明确的任务,然后再逐步完成每个阶段的任务软件从孕育、诞生、成长、成熟、衰亡的生存过程软件生存期各阶段一般可分为六个步骤/阶段:1.制定计划(Planning)2.需求分析和定义(Requirement Analysis and Definition)3.软件设计(Software Design)4.程序编写(Coding/Programming)5.软件测试(Testing)6.运行/维护(Running/Maintenance)线性顺序模型瀑布模型瀑布模型--特点❑优点:❑提供了软件开发的基本框架,比靠“个人技艺”开发好的多。
软件工程复习提纲
软件工程复习提纲第一章软件与软件工程1. 什么是软件工程?构成软件工程的要素是什么?2. 什么是软件危机?软件危机有那些表现?3.软件开发的三种最主要方法是什么?4.软件工程实践中的五个面向理论的含义是什么?5.用图表方式说明软件的生存周期6.结合软件生存周期理论,阐述几个重要的软件开发模型的特点及适用条件(如瀑布模型、快速原型模型、增量模型、迭代模型等)第四章需求分析基础1.什么是软件需求?软件需求的属性是什么?2.需求分析阶段的一般工作流程是什么?3.什么是需求分析?需求分析的任务、目的是什么?4.什么是需求定义?5.简述软件需求分析的任务与步骤,并以图书管理系统为例说明6.需求的分析的方法与切入点?(过程分析、对象分析;功能分析、对象分析、数据分析?)7.需求分析的描述工具?8.什么是业务流程图?业务流程图的主要绘图元素有哪几种?9.什么是数据流图?数据流图的绘图元素有哪几种?10.分别画出图书管理系统的业务流程图和数据流图11.画出图书管理系统的用例图12.画出一个网上招聘系统(招聘网站)的用例图第五章面向数据流的分析方法1. 阐述数据流图、数据字典和E-R图的构成2. 阐述基于数据流图进行需求分析的大致过程。
3. 归纳总结CASE工具的核心思想。
4. 如何判断数据流图的一致性和完全性?可否用CASE工具自动或半自动地完成这两类检查?如果可以,请给出相应的软件设施途径。
5. 设计一个简单图书信息系统上网E-R模型第六章面向对象的需求分析1. 基本概念:对象、类、消息、继承、聚集2. 简述利用UML尽心需求分析的主要步骤。
3. 简述面向对象的消息传递机制在程序设计语言中的实现过程。
4. 绘制表示“书籍”的UML类图,“书籍”可以描述为:一本书由许多部分组成,每一部分又由许多章组成,每一张由许多节组成。
部分、章和节都具有标题和序号属性。
第八章软件设计基础1.什么是软件设计?软件设计过程的输入和输出是什么?2.理解软件设计的原理3.什么是软件架构?理解软件的三层架构的内容及特点4软件设计有两大类方法是什么?5.面向过程设计的主要任务和内容和方法是什么?6.面向对象设计的内容和步骤是什么?第九章面向数据流的设计方法1. 简述SD方法将数据流图转换为软件结构的过程与步骤。
软件工程复习资料(提纲+答案)
软件工程复习资料(提纲+答案)第一章软件工程的实质1、什么是软件?由什么组成?软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。
可以写作为:软件=程序+数据+文档。
2、什么是软件危机?为什么会产生?(原因)软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高3、为什么要进行软件开发?4、软件工程的三段论?三段论:软件项目管理论、软件项目开发论、软件过程改进论5、软件工程生存期模型概念、类型、每种类型的特点?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。
6、了解复用的原则第二章软件项目的需求分析1、需求分析的主要任务?(基本任务)答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。
本阶段要主要有以下几方面工作:(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。
(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。
(3)编写文档,也就是完成“需求规格说明书”的编写工作。
2、需求分析分两大块(功能与非功能)功能需求描述系统所预期提供的功能或服务。
非功能需求是对系统提供的服务或功能给出的约束。
包括时间约束、开发过程的约束、标准等。
3、(P27)需求建模的基本方法?答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)4、结构化方法的代表?(P29)7状态图活动图8、理解好数据流图为什么要分层?9、UML中常用的9种图?(P32 把包图去掉)静态图:类图、对象图、构件图、实施图和包图。
软件工程复习资料整理
了解典型的普适性活动
适用于任何一个框架活动:
软件项目跟踪和控制;风险管理;软件质量保证;正式技术评审;测量;软件配置
管理;可复用管理;工作产品的准备和生产
了解什么是 CMMI 能力成熟度模型集成( 力
CMMI ),用于预测软件开发组织所开发的系统和软件工程能
(5 个能力成熟等级) CMMI 定义了每一个过程域的“特定目标” ,以及达到该目标所需的“特定实践” 。
问题。
产生软件危机的原因:
客观原因:
软件缺乏“可见性” ,管理和控制其开发过程相对困难
软件大多规模庞大,而复杂性随规模以指数速度上升
主观原因:
错误的认识和做法
忽视软件需求分析的重要性—急于求成,仓促上阵
认为软件开发就是写程序—编程只占全部工作量的
10%--20%,软件配置主要包括程序、
文档和数据
轻视软件维护—维护费用占总费用的 55%--70%
动态系统开发;
动态系统开发 (Dynamic System Development Method, DSDM )--- 通过在可控项目环
境中使用增量原型开发,模式完全满足对时间有约束的系统的构建和维护。
特点:在每个增量的环节,并不完全完成任务。留下
20%在以后完成。
Crystal 目的是开发一种提倡“机动性的”的软件开发方法 特征驱动开发
软件神话一些错误认识 管理神话: 我们已经有了一本写满软件开发标准和规程的宝典。它无所不包,囊括了我们可能 问到的所有问题 如果我们未能按时完成计划,我们可以通过增加程序员人数而赶上进度 如果将一个软件外包给另一家公司,则我们可以完全放手不管。 用户神话: 有了对项目目标的大概了解,便足以开始编写程序,我们可以在之后的项目开发过 程中逐步了解细节。 虽然项目需求不断变更,但是因为软件是弹性的,因此可以很容易地适应变化 从业者神话: 当我们完成程序并将其交付使用之后,我们的任务就完成了。 直到程序开始运行,才能评估其质量 对于一个成功的软件项目,可执行程序是惟一可交付的成果。 软件工程将导致我们产生大量无用文档,并因此降低工作效率。
软件工程必考知识点(一)
软件工程必考知识点(一)软件工程必考知识点详解软件工程概述•软件工程定义:软件工程是一门研究和使用工程原理、方法和工具来进行软件开发和维护的学科。
•软件工程目标:提高软件的质量、降低开发成本、缩短开发周期。
•软件工程生命周期:软件需求分析、软件设计、软件编码、软件测试、软件维护。
软件需求工程•软件需求定义:需求是对软件产品或系统应具备的功能、性能、界面等方面的描述。
•软件需求分类:功能性需求、非功能性需求、用户需求、系统需求、设计约束等。
•需求获取方法:面谈、观察、问卷调查、原型法、场景法、用户故事等。
软件设计原理•软件设计定义:软件设计是根据需求分析的结果,对软件进行整体结构和模块的设计,并确保满足质量要求。
•软件设计原则:高内聚低耦合、开闭原则、单一职责原则、接口隔离原则、依赖倒置原则等。
•设计模式:单例模式、工厂模式、适配器模式、观察者模式、装饰器模式等。
软件开发方法•瀑布模型:线性的开发过程,依次进行需求分析、设计、编码、测试和维护。
•增量模型:将软件开发过程划分为多个增量,每个增量逐步完善软件功能。
•原型模型:快速创建原型,通过用户反馈进行迭代开发。
•敏捷开发:迭代开发,强调个体和团队的互动、合作和响应变化。
软件测试方法•软件测试定义:通过执行软件系统或组件,以评估其特性是否满足特定的需求。
•黑盒测试:只关注软件的输入和输出,不考虑内部实现。
•白盒测试:详细了解程序内部结构,设计测试用例。
•单元测试:测试最小的可测试单元,如函数或模块。
•集成测试:将各个单元进行组合测试,测试模块之间的接口。
•系统测试:测试整个系统的功能和性能是否满足需求。
•验收测试:由用户验证软件是否符合需求。
软件维护与项目管理•软件维护类型:改错维护、适应性维护、完善性维护、预防性维护。
•软件项目管理:计划、组织、控制和监督软件开发活动。
•软件项目管理知识体系:范围管理、时间管理、成本管理、质量管理、风险管理等。
以上是软件工程必考的主要知识点,通过深入了解和掌握这些知识,可以提高软件开发和维护的能力,实现更高质量、更高效率的软件工程实践。
软件工程复习资料
《软件工程》试题参考答案(1)卷一、单向选择题(四选一、每小题3分,共18分)1、需求分析的任务不包括(B)。
A.问题分析B.系统设计C.需求描述D.需求评审。
2、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。
0802A.判定表和判定树B.盒图C.流程图D.关系图3、以下不属于逻辑覆盖的是(D)。
1402A.语句覆盖B.判定覆盖C.条件覆盖D.基本路径4、为适应软件运行环境的变化而修改软件的活动称为(B)。
1501A.纠错性维护B.适应性维护C.改善性维护D.预防性维护二、填空题(每空2分,共18分)1.软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。
01012.高级语言:独立于机器,面向过程或面向(对象)01013.软件项目管理的范围主要集中于3个P上,即:People人员、Problem问题和(过程)。
02014.由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。
15045.在公式V(G)= E –N + 2中:E为程序图G中边的总数;N 为程序图中结点的总数。
V(G)又称为图G的环形(复杂度)0204。
6.任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型。
03037.为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”。
12048.文档是一种数据媒体和其上所记录的(数据)。
0101三、判断题(每小题2分,共24分,错误打X、正确打√)1.用户对软件需求的描述不准确,往往是产生软件危机的原因之一。
(√)01022.一个好的开发人员应具备的素质和能力包括善于与周围人员团结协作,建立良好的人际关系,善于听取别人的意见。
(√)02063.目前的绝大多数软件都不适合于快速原型技术。
(X)04024.面向数据的设计方法适用场合是具有明显的层次信息结构的应用如:企事业的信息管理系统;系统软件(如操作系统)等。
软件工程复习资料-
一、选择题:1、用例图中,用来表示用例的符号为〔B〕。
A C.2、协作图中包含的元素包括〔A〕。
A. 对象B. 链C. 激活D. 消息3、在类图中,哪种关系表达整体与局部的关系〔D〕。
A.泛化B. 实现C. 依赖D. 聚合4、以下各种图形符号中,用来表示组成关系的符号为(B)。
A. B.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〕。
A. 相对独立:不需要与其他用例交互,即功能是完备的B. 用例的执行结果是可观测有意义的C. 用例由参与者发起〔不能自启动,或者由其他用例启动〕D. 一个用例是一个单元(需求单元、分析单元、设计单元、开发单元、测试单元、部署单元)16、在图书管理系统中,读者与书籍之间的“借阅〞关系的多重性是〔D〕A. 1:nB. n:1C. 0:1…nD. 0…n:0…n17、我希望ATM能够支持跨行业务;我插入卡片输入密码后可以让我选择是取还是存;为了便,可以设置一些默认的存取金额按钮;我可以修改密码,可以挂失;我希望可以缴纳费、水费、电费等;为平安起见,ATM应该有警示小心骗子的提示条,有摄像头;如果输入三次密码错误,卡片应当可以自动吞没;以下那些是有效的用例〔BCD〕A. 支持跨行业务B. 取C. 存D. 选择效劳18、快速原型法适用于〔A〕系统的开发。
软件工程-复习资料1
软件工程-复习资料1第四章面向对象方法基础1、以对象为中心各种构造系统,而不是以功能为中心,能很好地适应需求变化。
2、面向对象的基本概念面向对象:主要是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。
面向对象=对象+分类+继承+通信3、对象(Object)属性(attribute) --对象本身的性质,描述对象的静态特征。
方法(operation) --用于改变对象的状态,描述对象的动态特征。
对象之间的联系主要是通过传递消息来实现的。
4、类(Class)类具有属性,用数据结构来描述类的属性。
类具有操作,它是对象的行为的抽象,操作实现的过程称为方法(method) ,方法有方法名、方法体和参数。
对象的抽象是类,类的具体化就是对象。
5、继承(Inheritance)子类自动共享其父类的属性和操作的机制。
继承性分为:(1)、单重继承:一个子类只有一个父类。
即子类只继承一个父类的数据结构和方法,它的类层次结构是树型。
(2)、多重继承:一个子类可有多个父类。
继承多个父类的数据结构和方法,它的类层次结构是格型。
6、消息(Message)消息就是向对象发出的服务请求(互相联系、协同工作等),是对象之间在交互中传送的通信信息。
7、多态性(Polymorphism)多态性是指相同的操作或函数、过程作用于不同的对象上并获得不同的结果。
8、OOAOOA可以采用自顶向下的方法,逐层分解建立系统模型,也可以自底而上地从已定义的基类出发,逐步构造新类。
9、OMT 方法讨论的核心就是建立三类模型:对象模型、动态模型和功能模型。
10、建立对象模型分为5个层次:(1)、确定对象和类◆找出候选的类与对象◆筛选出正确的类与对象(2)、确定关联◆初步确定关联◆筛选◆进一步完善(3)、划分主题(4)、确定属性◆分析◆选择(5)、识别继承关系11、类图:由类名、属性和操作三部分组成。
12、类的关联关系——表示类与类之间存在某种联系有:普通关联、限定关联、关联类13、类的层次结构:聚集关系:共享聚集——部分对象可同时参与多个对象的构成复合聚集(组成)——如果部分类完全隶属于整体类,部分与整体共存亡,则称该聚集为复合聚集,简称组成。
[理学]软件工程复习资料1
[理学]软件工程复习资料1软件工程是一门包含多个领域的复杂学科,其中涉及了许多的理论和实践知识。
在软件开发中,必须具备坚实的理论基础和实践经验才能保证软件质量和开发效率。
本文将对软件工程的一些基础理论进行归纳,以便读者们更好地复习和巩固知识。
软件过程软件生命周期模型软件生命周期模型指的是软件开发全过程中,不同阶段的活动、输出和里程碑。
软件生命周期模型可以指导软件开发团队制定开发计划和执行软件开发过程。
目前常用的软件生命周期模型有:瀑布模型、迭代模型和增量模型、螺旋模型等。
其中瀑布模型常用于简单的软件项目。
迭代模型和增量模型在中小型项目中广泛应用。
而大型高风险的项目通常采用螺旋模型。
软件过程模型软件过程是指为了实现一定的软件目标,所需执行的一系列过程、方法和规范。
软件过程模型包括:线性顺序模型、增量模型、并行开发模型、演化模型和自适应模型。
其中,线性顺序模型和增量模型在建设期较短、初期需求固定的软件项目上,有着广泛应用。
而并行开发模型和演化模型则主要用于更复杂更大型的项目。
软件质量软件质量是指软件产品满足用户需求和用户所期望的品质。
软件质量保证包括质量计划、质量保证、质量控制等方面。
其中质量计划包括软件质量目标、软件质量标准和软件质量保证计划。
软件质量保证是在软件过程开发、测试和评审过程中采取各种规范和方法,以确保软件产品质量符合质量标准的一种方法。
软件质量控制是在软件开发过程中对产品进行监控、分析、评估、测试和改进的方法。
需求分析软件需求软件需求是指软件应该具备的功能、性能和质量等方面的要求。
软件需求分析是对软件需求的全面、深入的研究和分析。
软件需求分析的成果是需求规格说明书。
需求规格说明书描述了软件需求的完整性、一致性和准确性等方面的要求。
软件质量属性软件质量属性包括可靠性、可用性、可维护性、可移植性和可扩展性等方面的要求。
其中,可靠性是指软件在正常使用情况下的正确性、可用性、容错性和安全性等方面的指标。
- 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.基于Jackson图的设计 B.基于IDEF0图的设计-结构化方法-数据流C.交换分析设计 D.事务分析设计7.为高质量地开发软件项目,在软件结构设计时,必须遵循()原则。
A.信息隐蔽 B.质量控制 C.程序优化 D.数据共享8.软件复杂性主要体现在()A.数据的复杂性B.程序的复杂性C.控制的复杂性D.问题的复杂性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、共享性C、封装性D、抽象性15.单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现()的错误。
A、接口错误B、编码错误C性能、质量不合要求D、功能错误16.软件工程管理对软件项目的开发管理,即对整个软件()的一切活动的管理。
A、软件项目B、生存期C、软件开发计划D、软件开发17.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们()A.前者属于静态测试,后者属于动态测试 B.都属于静态测试C.前者属于动态测试,后者属于静态测试D.都属于动态测试18.软件工程管理的具体内容不包括对()管理。
A.开发人员 B.组织机构 C.控制 D.设备19.软件调试技术包括()A.错误推断B.集成测试C.回溯法D.边界值分析20.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC21.软件复杂性度量的参数包括()①规模:②难度:③结构:④智能度A.效率B.规模 C.完整性 D.容错性22.模块的耦合性最强的是( )A.数据耦合B.控制耦合C.公共耦合D.内容耦合23.在SD方法中全面指导模块划分的最重要的原则是( )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性24.软件详细设计主要采用的方法是( )A.模块设计B.结构化设计C.PDL语言D.结构化程序设计25.黑盒测试在设计测试用例时,主要需要研究( )A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明26.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是( )A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法27.下列属于维护阶段的文档是( )A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告28.快速原型模型的主要特点之一是( )A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件29.因计算机硬件和软件环境的变化而作出的修改软件的过程称为( )A.教正性维护B.适应性维护C.完善性维护D.预防性维护30.软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( )A.可用性B.可靠性C.正确性D.完整性31.下列文档与维护人员有关的有( )A.软件需求说明书B.项目开发计划C.概要设计说明书D.操作手册32.下列模型属于成本估算方法的有( )A.COCOMO模型B.McCall模型C.McCabe度量法D.时间估算法33.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
(第九章)A.结合 B.隐藏C.封装 D.抽象34.软件调试技术包括()A.边界值分析B.演绎法 C.循环覆盖 D.集成测试35.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()A.把软件划分成模块B.确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码36.软件生命周期中所花费用最多的阶段是()A.详细设计 B.软件编码 C.软件测试D.软件维护37.“软件危机”是指( )A. 计算机病毒的出现B. 利用计算机进行经济犯罪活动C. 软件开发和维护中出现的一系列问题D. 人们过分迷恋计算机系统38.确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于()A、集成测试 B恢复测试C验收测试D单元测试39.盒图(N-S图)为()提供了有力的工具。
A、系统分析B软件的自动化生成C自动分析数据 D测试软件40.程序的三种基本控制结构是()A、过程、子程序和分程序B、顺序、选择和重复C、递归、堆栈和队列D、调用、返回和转移41.具有风险分析的软件生存周期模型是()A.瀑布模型B.喷泉模型C.螺旋模型D.增量模型42.下列有关软件工程的标准,属于行业标准的是( )A. GBB. DINC. ISOD. IEEE43.DFD中的每个加工至少需要( )A. 一个输入流B. 一个输出流C. 一个输入或输出流D. 一个输入流和一个输出流44.为了提高模块的独立性,模块之间最好是( )A. 控制耦合B. 公共耦合C. 内容耦合D. 数据耦合45.软件设计的方法有多种,()方法不属于面向数据流的设计方法。
A.基于Jackson图的设计 B.基于IDEF0图的设计C.交换分析设计 D.事务分析设计46.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为()A.数据耦合 B.公共耦合 C.标记耦合D.内容耦合47.详细设计与概要设计衔接的图形工具是( )A. DFD图B. 程序图C. PAD图D. SC图48.测试的关键问题是( )A. 如何组织对软件的评审B. 如何验证程序的正确性C. 如何采用综合策略D. 如何选择测试用例49.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )A.软件工程B.软件周期C.软件危机D.软件产生50.模块的内聚性最高的是( )A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚51.软件详细设计主要采用的方法是( )A.模块设计B.结构化设计C.PDL语言D.结构化程序设计52.结构化程序设计主要强调的是()A.程序的规模 B.程序的效率C.程序设计语言的先进性D.程序易读性53.下列关于功能性注释不正确的说法是( )A. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以及数据的状态B. 注释用来说明程序段,需要在每一行都要加注释C. 可使用空行或缩进,以便很容易区分注释和程序D. 修改程序也应修改注释54.下列关于效率的说法不正确的是( )A. 效率是一个性能要求,其目标应该在需求分析时给出B. 提高程序效率的根本途径在于选择良好的设计方法,数据结构与算法C. 效率主要指处理机时间和存储器容量两个方面D. 程序的效率与程序的简单性无关55.可维护性的特性中,相互矛盾的是( )A. 可理解性与可测试性B. 效率与可修改性C. 可修改性和可理解性D. 可理解性与可读性56.快速原型是利用原型辅助软件开发的一种新思想,它是在研究( )的方法和技术中产生的。
A. 需求阶段B.设计阶段C. 测试阶段D.软件开发的各个阶段57.从目前情况来看,增量模型存在的主要问题是( )A. 用户很难适应这种系统开发方法B. 该方法的成功率很低C. 缺乏丰富而强有力的软件工具和开发环境D. 缺乏对开发过程中的问题和错误具有应付变化的机制58.可行性分析研究的目的是()A.项目是否值得开发 B .争取项目 C.开发项目 D.规划项目59.描述复杂系统时,最好采用()的描绘方法。
A.按系统流程描述B.分层次C.分阶段D.对系统数据分类60.下述方法中,属于形式化说明方法的是()。
A. Petri网B. 数据流图C. PDLD. PAD图61.需求分析阶段的基本任务是准确地回答()。
A. 系统的规模有多大B. 系统如何实现C. 系统有些什么输入信息D. 系统必须做什么62.在软件结构设计时,下面哪一项不是应该遵循()的原则。
A.信息隐蔽 B.抽象C.数据共享 D.逐步求精63.软件详细设计的主要任务是确定每个模块的()A、算法和使用的数据结构B外部接口 C功能 D编程64.软件是一种()A、程序 B数据C逻辑产品D物理产品65.研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.法律可行性66.中级结构性成本模型COCOMO是一个( )A、静态单变量模型 B动态单变量模型C静态多变量模型D动态多变量模型67.PAD图为()提供了有力的工具。
A、系统分析B软件的自动化生成C自动分析数据 D测试软件68.在软件结构设计完成后,对于下列说法,正确的是()A.软件层数过多,可能是因为各管理子模块功能过于复杂的原因。
B.对软件宽度影响最大的因素是扇入。
C.一个模块的扇出太多,说明该模块过分复杂,缺少中间层D.一个模块的扇入太多,说明该模块过分复杂,缺少中间层69.源程序的效率与( )阶段确定的算法的效率直接有关。
A.概要设计 B. 总体设计 C. 单元设计 D. 详细设计70.关于软件测试,下面说法正确的是( )。
A.软件测试只能依靠手工进行B.子模块并入系统时,只要此子模块是经过单元测试,且没有问题的,就不用再对系统进行测试了。
C.软件不能进行“穷举”测试D.测试计划是在软件测试开始之初制定的。
71.关于白盒法覆盖程度的论述中正确的是( )。