《软件工程》复习资料
软件工程复习资料精选全文完整版
可编辑修改精选全文完整版一、单选题(共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.软件是计算机系统中的程序及其文档。
3.文档一般主要面向管理人员、开发人员、用户、使用维护人员。
4.文档在软件工程中的作用:(1)提高软件开发过程的能见度。
(2)提高开发效率。
(3)某程序设计时代:生产方式是个体手工劳动,使用工具是机器、汇编语言,主要通过汇编来实现,不注重程序设计方法。
某程序系统时代:生产方式是作坊式小集团合作生产,生产工具是高级语言,开始提出结构化方法。
某软件工程时代:生产方式是工程化生产,使用数据库、网络、先进的开发技术和方法。
6.软件既是知识性(逻辑性)工业产品,具有一些独特的特性是:某软件是逻辑产品,具无形性,通过计算机的执行才能体现它的功能和作用。
某软件只会退化,不存在磨损和消耗问题。
某成本主要体现在软件的开发和研制上,可进行大量的复制。
某主要靠脑力劳动生产,开发和维护成本高。
7.软件的主要结构和功能是在分析设计阶段决定的。
8.软件的复杂性主要体现在程序的复杂性,即模块内程序的复杂性。
直接关联到软件的简单和可理解性、开发费用多少、开发周期长短和软件潜伏错误的多少。
二、软件危机1.软件危机是指在软件开发和维护时遇到的一系列难以控制的问题导致的供需矛盾。
出现在软件发展的第二阶段末期,随着第三代计算机的诞生之际。
2.软件危机主要体现在:某软件发展速度跟不上硬件的发展和用户需求。
某软件成本和开发进度不能预先预算,用户不满意。
某软件产品质量差,成本高,可靠性没有保证。
某软件可维护性差,产品没有配套文档。
3.软件危机产生原因:(1)软件规模变大,结构更加复杂。
(2)软件开发管理困难。
(3)软件开发技术和工具落后。
(4)软件开发费用增加。
(5)采用落后的个体手工生产方式开发。
4.解决途径:(1)纠正对软件开发的错误观念。
(2)提高软件工程管理水平,重视文档重要性。
(3)使用好的软件开发工具,研究软件开发技术,规范软件开发流程,提高开发效率。
软件工程复习资料
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.购买大多数计算机系统所需的硬件比软件更昂贵5火箭发射失败的事例告诉我们A.(2)软件后备系统可以通过复制生成B.(3)软件重用必须重新进行系统论证和系统测试C. 选项(1)和(3)D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制9.软件危机的主要原因是A.软件本身的特点及开发方法。
B.软件工具落后。
C.软件生产能力不足。
D.对软件的认识不够。
10.下面的描述正确的是A.软件质量是在开发过程中逐渐构建起来的。
B.软件质量是由产品的功能、性能、易用性等外在特性决定的。
C.运行正确的软件就是高质量的软件。
D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。
软件工程复习资料
软件⼯程复习资料软件⼯程第⼀章⼀、什么是软件?软件(Software)是计算机系统中与硬件相互依存的另⼀部分,它是包括程序(Program),数据(Data)及其相关⽂档(Document)的完整集合。
程序是按事先设计的功能和性能要求执⾏的指令序列数据是使程序能正常操纵信息的数据结构⽂档是与程序开发,维护和使⽤有关的图⽂材料⼆、软件危机原因:与软件本⾝的特点有关(难于维护, 逻辑复杂)与软件开发与维护的⽅法不正确有关:软件≠程序急于求成=拔苗助长各⾃为阵⽆⽅法/学现象:1.成本⾼2.计算机软件和硬件费⽤⽐3.软件质量得不到保证4.由于软件质量问题导致失败的软件项⽬⾮常多5.进度难以控制6.维护⾮常困难办法:软件⼯程(学)三、软件⼯程软件⼯程是应⽤计算机科学、数学及管理科学等原理开发软件的⼯程。
它借鉴传统⼯程的原则、⽅法,以提⾼质量,降低成本为⽬的。
开发、运⾏和维护软件的系统⽅法四、软件⼯程三要素软件⼯程⽅法学包含3个要素:⽅法、⼯具和过程。
五、软件⽣命周期六、软件过程模型瀑布模型瀑布模型适合于⽤户需求明确、完整、⽆重⼤变化的软件项⽬开发。
瀑布模型的成功在很⼤程度上是由于它基本上是⼀种⽂档驱动的模型。
“瀑布模型是由⽂档驱动的”这个事实也是它的⼀个主要缺点。
在项⽬开始的时候,⽤户常常难以清楚地给出所有需求;⽤户与开发⼈员对需求理解存在差异。
实际的项⽬很少按照顺序模型进⾏。
⽤户必须有耐⼼,等到系统开发完成。
缺乏灵活性:因为瀑布模型确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是⾮常困难的,导致“阻塞状态”。
反馈信息慢,开发周期长。
虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在需求被很好地理解的情况下,仍然是⼀种合理的⽅法。
快速原型模型增量模型增量模型是迭代和演进的过程。
增量模型把软件产品分解成⼀系列的增量构件,在增量开发迭代中逐步加⼊。
每个构件由多个相互作⽤的模块构成,并且能够完成特定的功能。
软件工程复习资料
A、语句覆盖:选择测试用例使程序中每条语句至少被执行一次 B、判定覆盖:选择测试用例使程序中每个判定至少都获得一次“真”值和一次“假”值 C、条件覆盖:选择测试用例使每个条件都满足 D、条件组合覆盖:将所有的判定条件都组合起来执行 答案: A B
9. 以下()不属于结构化流程图
A、运行程序并分析运行结果 B、桌前检查与代码会审 C、数据流分析图 D、调用图
答案: B C D
15. 下面()属于可复用的软件级别。
A、代码的复用 B、设计结果的复用 C、分析结果的复用 D、测试信息的复用
答案: A B C D
16. 黑盒测试着重测试软件功能,下列测试法中属于黑盒测试技术的有()。
3. 面向对象方法学的出发点和基本原则是什么?
答案: 面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世 界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一 致。
3. 软件原型
答案: 软件原型是在软件系统开发过程中,可快速建立的,旨在演示目标系统主要功能的可运行的程序。
4. 继承
答案: 广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动 地共享基类中定义的数据和方法的机制。
5. 有穷状态机
答案: 在软件工程领域,有穷状态机可以准确地描述一个系统,它是表达规格说明的一种形式化说明方法。一个有穷状态机包含5 个部分:状态集、输入集、由当前状态和当前输入确定下一个状态的转换函数、初始态和终态集。
A、等价划分法 B、平行运行法 C、边界值分析法 D、错误推测法
软件工程复习资料
软件工程复习题一、选择题,请从四个可选项中选择正确答案。
1、下面哪个选项不是软件工程研究的内容()。
A. 生产无故障的软件B. 精通一门编程语言C. 生产满足用户需求的软件D.生产及时交付的软件2、软件工程的出现是由于 ( )A.软件危机B.计算机硬件技术的发展C.软件社会化的需要 D。
计算机软件技术的发展3、软件工程的研究内容具有层次化结构,最底层是质量保证层,中间层是( ),最上层是工具层.A.过程层B.方法层 C。
过程层和方法层 D。
系统层4、美国著名软件工程专家B.W。
Boehm于1983年提出了软件工程的()条基本原理. A。
7 B。
5 C.3 D.125、结构化分析方法(SA 法)使用的主要描述工具有()。
A.数据库B.模块结构图 C。
PAD 图 D.分层的DFD 图6、源程序的效率与( )阶段确定的算法的效率直接有关。
A.概要设计B。
总体设计 C. 单元设计 D. 详细设计7、可行性研究的主要任务是()。
A.确定系统做什么B. 确定性能C.确定功能D. 进行一次简要的需求分析8、内容耦合是模块间最紧密的耦合,()是模块间最松散的耦合。
A.数据耦合 B.非直接耦合 C.控制耦合 D.外部耦合9、面向对象是“先"确定()“后”()。
A。
属性/方法 B.数据结构/方法 C。
动作的主体/执行动作 D.动作10、UML是一种()语言。
A。
高级编程 B。
可视化建模 C.分析方法 D.过程11、软件工程强调将()的方法应用于软件的开发和维护过程之中。
A。
规范化 B。
系统化 C.可度量 D。
以上全部12、软件开发活动的顺序应该是( ).A。
问题定义、可行性研究、需求分析、设计、编码和测试。
B.问题定义、设计、可行性研究、编码和测试。
C.需求分析、设计、编码和测试。
D。
需求分析、编码和测试、试运行。
13、假定银行的存款年利率是2%,请问现在存5000元,两年后价值应为()元。
A.5202B.4500C.5100D.471214、系统物理模型用()表示.A.系统流程图 B。
国家开放大学《软件工程》复习资料
《软件工程》复习资料一、选择题1.软件工程的研究内容具有层次化结构,最底层是质量保证层,中问层是(C),最主.层是工具层。
A过程层 B.方法层C.过程层和方法层 D.系统层2.可行性研究的四大要素是(D)。
A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平巳经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性3.针对需求不确定的软件开发,比较好的模型是(A)。
A.快速原型化模型B.瀑布模型c.软件成熟度模型。
.系统化模型4.下面的哪个选项不是软件工程的宗旨?(D)A.开发满足用户需求的软件B.研究算法C.及时交付软件D.生产无故障软件5.瀑布模型的主要特点是(A)。
A.将开发过程严格地划分为一系列有序活动B.将开发过程分解为阶段c.提供了有效的管理模式D.缺乏灵活性6.软件结构图中没有(D)元素。
A.模块B.调用参数C.返回结果D.判断7.结构化设计方法划分模块的原则是(C)A.模块扇出小于5B.模块扇人小于5c.低搞合,高内聚 D.模块深度小于78.配置视图体现了系统的实现环境,反映系统的(B)。
A.逻辑架构B.物理架构C组成结构 D.体系结构9.角色可以有四种类型:系统的使用者,硬件设备,外部系统和(D)。
A.数据库B.接口C.对象D.时间10.功能模型用于表达系统的需求,为软件的进一步分析和设计打下基础。
在面向对象方法中,由(C)实现。
A.场景描述B.活动图和1场景描述C.用例图和场景描述D.交互图和场景描述11.在分析模型内表示协调,}I顶序、事务处理以及控制其他对象的类是(A)。
A.控制类B.组件类C.主函数D.事务类12.而信息隐藏的核心内容是(C)。
A.人把数据都放在公共的区域B.数据不能被其他模块访问C.一个模块的内部信息不允许其他模块直接访问D.把信息加密,只能让有密钥的模块访问13.面向过程的方法最关心的是过程,而过程实施的对象是作为过程(A)传递的。
软件工程复习资料
1.什么是软件工程?他的基本原理是什么?1)软件工程是指导计算机软件开发和维护的工程学科。
采用工程的槪念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。
2)用分阶段的生命周期汁划严格管理、坚持进行阶段评审、实行严格的产品控制、采用现代程序设讣技术、结果应能淸楚的审査、开发小组的人员应该少而精、承认不断改进软件工程实践的必要性。
2.是什么导致了软件工程?主要是软件危机的出现导致了软件工程3.通常我们所见的软件工程模型有哪些?瀑布模型、快速原型模型、增量模型(渐增模型)、螺旋模型、喷泉模型。
21.软件危机的现象:1)经费超出预算,项目一再拖延。
02 )不重视需求,开发的软件不能满足用户的要求,项目成功率低。
3)没有规范的软件工程方法,软件可维护性差,软件质量差,可靠性差。
3圄)开发工具落后,手工方式,开发效率低。
2 2 .软件工程的三要素1)"过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质疑开发出软件。
2)"方法”为软件开发提供"如何做”的技术。
它涵盖了项目计划、需求分析、系统程序()实现、测试与维护灯一系列活动的做法。
3) "工具"可为过程和方法提供自动的或半自动的支持。
这些工具既包括软件,也包括硬件,软件工具包括编程、建模、管理等开发工具。
通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为汁算机辅助软件工程,即CASE。
C ASE集成了软件、硬件和()存放开发过程信息的软件工程数据库,形成了一个软件工程环境。
23.简述软件工程的目标,过程和原则佢)目标、过程和原则是一切工程的三维框架,,这里是以工程的观点来看待软件开发。
软件工程的目标:降低成本,及时交付髙质量的软件产品。
m实现目标的过程即完成产品加工的过程:包括:基本过程、支持过程和组织过程进行过程应遵守的原则:原则就是过程中的轨道约朿,包括:选取适宜的开发范型、适合的设计方法、提供高质量的工程支持、重视开发过程的管理。
软件工程复习资料
软件工程复习资料1. 软件工程概述软件工程是一门研究如何构建和维护软件系统的学科。
它涵盖了软件开发的各个方面,包括软件需求、设计、编码、测试、维护等。
本节将对软件工程的基本概念和重要原理进行介绍。
1.1 软件工程的定义软件工程是一种应用工程原理、方法和工具来开发和维护高质量软件的系统工程。
它关注软件开发过程中的各个环节,以提高软件质量和开发效率。
1.2 软件工程的目标软件工程的目标是开发高质量的软件系统,满足用户需求,具备良好的可维护性和可扩展性。
通过采用合适的开发方法和工具,提高软件开发过程的可靠性和效率。
1.3 软件工程的原则软件工程遵循一些重要的原则来指导软件开发过程,包括模块化、抽象、信息隐藏、接口规范、单一职责等原则。
这些原则有助于提高软件质量和可维护性。
2. 软件开发过程软件开发过程是指将软件需求转化为可执行软件的过程。
它包括需求分析、设计、编码、验证和维护等阶段。
本节将介绍常用的软件开发过程模型和相应的方法。
2.1 瀑布模型瀑布模型是一种线性的软件开发过程模型,包括需求分析、设计、编码、测试和维护等阶段。
瀑布模型适用于需求稳定的项目,但不适用于需求频繁变更的项目。
2.2 敏捷开发敏捷开发是一种迭代的软件开发过程模型,强调快速反馈和适应需求变化。
敏捷开发方法包括Scrum、XP等。
它适用于需求不确定或频繁变更的项目。
2.3 增量开发增量开发将软件系统划分为多个增量,每个增量包含了一个或多个功能模块。
每个增量的开发和测试独立进行,逐步完善系统。
增量开发适用于大型项目和复杂项目。
2.4 软件开发过程的选择选择适合项目的软件开发过程模型非常重要。
需要考虑项目的规模、需求的稳定性、团队的能力等因素来决定采用哪种开发过程模型。
3. 软件需求工程软件需求工程是软件工程的一项重要活动,旨在准确捕获用户需求,并将其转化为可执行的软件需求规格。
本节将介绍软件需求的定义、分类和常用的需求获取和分析方法。
软件工程复习资料-完整版
软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。
它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。
软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。
二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。
通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。
2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。
设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。
3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。
编码时应遵循编程规范,确保代码的可读性和可维护性。
同时,要进行单元测试,确保每个模块的功能正确。
4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。
单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。
5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。
同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。
三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。
模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。
2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。
在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。
3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。
在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。
4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。
在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。
5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。
《软件工程》复习材料
一、写出下列缩写英文的中文涵义CFD DFD OOA SA SD SP CMM CMMI UML CASE XP C/S B/SATAM PDL SQA MVC CRC MBS CBSD GUI SQL MTTR MTTFMTBF FTR PERT SCM CPM RMMP二、概念[1] 在《计算机科学技术百科全书中》,对计算机软件作出如下定义:计算机软件指计算机系统中的程序和文档,前者是计算任务的处理对象和处理规则的描述;后者是为了便于了解程序所需的阐述性资料。
[2] 软件和硬件具有完成不同的特性,软件是设计开发的,而不是传统意义上生产制造的。
[3] 软件工程是一种层次化技术,是建立在以质量焦点为基础的,分过程、方法、工具三个研究层次的综合技术。
[4] 软件工程是应用计算机科学、数学及管理学等原理,开发软件的工程,其框架可概括为:目标、过程和原则。
[5] 结构化设计方法中,要把数据流图转换成软件结构,若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的DFD称为事务型的数据流图。
[6] 数据流图仅反映系统必须完成的逻辑功能,所以它是一种功能模型。
[7]耦合性是定性度量模块独立性的标准之一,它根据模块的外部特征提出的,是对软件系统结构中各模块间相互联系紧密程度的一种度量,也称块间关系。
[8] 衡量软件的独立性有两个定性的度量标准,即耦合和内聚。
[9] 任何程序都可由选择结构、循环结构和顺序结构3种基本控制结构构造,其共同点是单入口、单出口。
[10] 统一过程(UP)是一种用例驱动的迭代式增量开发过程,每次迭代过程中主要的工作流包括捕获需求、分析、设计、实现和测试等,这种软件过程的用例图式通过分析得到。
[11] 软件开发是一个自顶向下逐步细化和求精过程,而软件测试是一个自底向上或相反顺序集成的过程。
[12] 软件测试的目的是尽可能多地发现软件中存在的错误,将测试结果作为纠错的依据。
软件工程知识点复习资料
软件工程知识点复习资料一、软件工程概述软件工程是一门研究如何以系统性的、规范化的、可度量的方法进行软件开发、运行、维护和管理的学科。
它涵盖了软件开发生命周期的各个阶段,包括需求分析、系统设计、编码实现、测试和维护等。
二、软件生命周期与开发模型1. 软件生命周期包括需求分析、系统设计、编码实现、测试和维护等阶段。
不同的项目可以采用不同的开发模型,常见的有瀑布模型、迭代模型和敏捷模型。
2. 瀑布模型是一种线性顺序开发模型,各个阶段严格按序进行,适用于需求较为稳定的项目。
3. 迭代模型将软件开发过程划分为多个迭代阶段,每个迭代阶段都包含需求分析、设计、编码和测试等活动,适用于需求较为不确定或需要持续改进的项目。
4. 敏捷模型强调快速响应需求变化和灵活合作,通过迭代、增量的方式进行开发,适用于需求频繁变更的项目。
三、需求工程1. 需求分析是软件开发的第一步,包括需求获取、需求分析、需求建模等过程,目的是明确系统的功能和性能需求,并与客户达成一致。
2. 需求获取可以通过面谈、问卷调查、观察等方式进行,需求分析则要对已收集到的需求进行分析、整理和归纳。
3. 需求建模使用UML(统一建模语言)等工具,将需求表示为用例图、活动图、时序图等形式,便于后续的系统设计和编码实现。
四、设计与架构1. 系统设计是软件开发的关键阶段,包括软件架构设计和详细设计等过程,目的是指导后续的编码和测试工作。
2. 软件架构设计确定系统的整体结构、模块划分和模块间的关系,常见的架构风格包括层次结构、客户-服务器、面向对象等。
3. 详细设计是对系统模块的具体设计,包括数据结构设计、算法设计和接口设计等,常用的设计方法有结构化设计和面向对象设计。
五、编码实现与调试1. 编码实现是将设计阶段得到的设计方案转化为计算机可执行的代码,采用合适的编程语言和开发工具进行。
2. 编码时要注重代码的可读性、可维护性和可重用性,采用良好的编程风格和命名规范。
软件工程复习资料-完整版
一、选择题: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)管理过程模型。
(2)瀑布模型(又称为生命周期模型)。
(3)增量过程模型:包括增量模型,RAD模型。
(4)烟花过程模型:包括原型开发模型,螺旋模型,协同开发模型。
(5)专用过程模型:包括机遇构建的开发模型,形式化方法模型,面向方面的软件开发模型。
2、什么叫软件危机?软件危机包含哪两点?软件危机产生的原因是什么?软件危机是指在计算机软件开发与维护过程中所遇到的一系列严重问题。
包括两点:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。
软件开发和维护过程中存在的许多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。
具体表现如下:(1)软件是逻辑部件而不是物理部件。
(2)软件的规模越来越大,复杂性越来越大。
(3)轻视需求分析的重要性,轻视软件维护的错误观点和方法。
3、软件开发的各阶段的任务是什么?定义阶段:问题定义——任务:关于规模和目标的报告书,可行性研究——任务:系统的高层逻辑模型:数据流图,成本/效益分析:需求分析——任务:系统的逻辑模型:数据流图,数据字典,算法描述。
开发阶段:总体设计——任务:系统流程图,成本/效益分析,推荐的系统结构:层次图结构图,详细设计-任务: HIPO图或PDL图;编码和单元测试——任务:源程序清单,单元测试方案和结果,综合测试——任务:综合测试方案,结果集成测试,验收测试,完整一致的软件配置。
维护阶段:软件维护——任务:维护记录以及改正性维护,适应性维护,完整性维护和预防性维护4、两种软件工程方法学开发软件时要建立哪些模型?软件工程方法学包括:传统方法学和面向对象方法学。
常用的开发模型有:瀑布模型( 需求稳定,而且可以预先指定)原型模型(需求模糊或者随时间变化)增量模型(分析员先作出需求分析和概要设计,用户参与逐步完善)螺旋模型(将瀑布模型与原型化模型结合起来并加入了风险分析)喷泉模型(使开发过程具有迭代性和无间隙性)5、什么叫软件?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合6、UML中的事物有哪些?结构事物UML中的名词,它是模型的静态部分,描述概念或物理元素。
自考_软件工程复习资料
第一章1软件生产率、软件质和量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为软件危机2软件工程定义:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品工程,或以此为研究对象的学科3软件开发的本质概括为:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”两大类技术:过程方向、过程途径。
基本途径:系统建模4所谓模型,是待建系统的任意抽象,其中包括所有的基本能力、特性或其他一些方面,而没有任何冗余的细节。
进一步说,模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述5系统模型分为软件模型、概念模型软件模型分为设计模型、部署模型、实现模型第二章软件需求与软件需求规约6一个需求是有关一个“要与构造”的陈述,描述了待开发产品、系统功能上的能力、性能或者其他性质7需求性质:必要的、无歧义的、可测的、可跟踪的、可测量的8需求分类:功能需求、非功能需求(性能、外部接口、设计约束、质量属性需求)9功能需求规约了系统或系统构建必须执行的功能功能需求是整个需求的主体10接口需求分为:用户接口、硬件接口、软件接口、通信接口、内存约束、运行、地点需求11质量属性:可靠性存活性可维护性用户友好性12需求发现技术:自悟交谈观察小组会提炼13需求规约定义,是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统概念模型性质:重要性和稳定性程度可修改的完整的一致的14需求规约的作用:需求规约是软件开发组和用户之间一份事实上的技术合同书,是产品功能及其环境的体现对于项目的其余大多数工作,需求规约是一个管理控制点对于产品/系统的设计,需求规约是一个正式的、受控的起始点需求规约是创建产品验收测试计划和用户指南的基础,是基于需求规约一般还会产生另外两个文档(初始测试计划和用户系统操作描述)第三章结构化方法15需求工作挑战:问题空间理解人与人之间的通信需求的变化性16好的需求技术具备特征: 提供方便的通信机制鼓励需求分析人员使用问题空间的术语思考问题,编写文档提供定义系统边界的方法提供支持抽象的基本机制为需求分析人员提供多重可供选择的方案提供天特定的技术化、适应需求变化17结构化方法:结构化分析方法结构化设计方案机构化程序设计方法18数据流加工数据存储数据源和数据潭19需求分析的首要任务是建立系统功能模型工具:数据流图DFD图是一种描述数据变化的图形工具20建模过程:建立系统环境图,确定系统语境自顶向下逐步求精,建立系统层次数据流图定义数据字典描述加工(结构化自然语言判定表判定树)21需求阶段的主要任务是完整地定义问题,确定系统的功能和能力22需求验证验证需求规格说明书的每一单一需求是否满足5个性质(必要性无歧义性可测性可跟踪型可测量性),需求沿着我难过规格说明属否满足4个性质(重要性和稳定性程度可修改型完整性一致性)23结构化设计的主要任务是在需求分析的基础上,定义满足需求所需要的结构,即针对给定的问题,给出该问题的软件解决方案,确定“怎么做”的问题24结构化设计分为总体设计(目标,建立系统的模块结构)和详细设计25模块指软件中具有特定标识的独立成分模块调用指模块之间的一种使用关系26总体设计阶段的基本任务是把系统的功能需求分配到一个特定的软件体系结构中工具(Yourdon模块结构图层次图HIPO图)步骤:将系统的DFD图转化为初始的模块结构图,再基于高内聚低耦合的原则,通过模块化,将初始的模块结构图转化为最终的、可供详细设计使用的模块结构图MSD27模块化模块是执行一个特殊任务的一个过程以及相关的数据结构.由两部分组成:接口、模块体28耦合:不同模块之间相互依赖程度的度量(强到弱内容耦合(直接操作修改另一模块数据)、公共耦合(共用一个全局数据项)、控制耦合(控制信号)、标记耦合(A向BC传递一个公共参数)、数据耦合(通过参数传递数据))29内聚:一个模块内部成分之间的相互关联程度的度量(偶然内聚、逻辑内聚(逻辑相关的功能放一块)、时间内聚(同一时间内执行) 、过程内聚(特定次序执行) 、通信内聚(操作同一数据集)、顺序内聚(一个成分的输出为另一个成分的输入)、功能内聚)30启发式规则:1改进软件结构,提高模块独立性2力求模块规模适中3力求深度宽度扇入扇出适中4尽力使模块的作用域在其控制域之内5尽力降低模块接口的复杂度6力求模块功能可以预测31详细设计的目标是将总体设计阶段所产生的系统高层结构映射为以这些术语所表达的低层结构,也是系统的最终结构32详细设计工具:程序流程图N—S图PAD图PDL伪码33所谓模块化,是指按照高内聚低耦合的设计原则,形成一个相互独立又有较少联系的模块结构的过程,使每个模块具有相对独立的功能/过程34逐步求精是指把要解决问题的过程分解为多个步骤或阶段,每一步是对上一步结果的精化,以接近问题的揭发。
软件工程复习资料
一.概述1.什么是软件?什么是软件工程?--软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
软件具有不可见性,是抽象的、形式化和逻辑化的。
--软件会逐渐退化而不会磨损的原因是不断地变更使组件接口之间引起错误。
--软件工程要素:过程、方法、工具。
--软件工程的基本目标是开发高质量的软件。
2.现代软件工程师关注的问题开发过程中遇到的各种困扰。
3.软件生存周期模型--软件生存期由软件定义、软件开发和运行维护3个时期组成,每个时期又可划分若干阶段,即可行性研究、需求分析、概要设计、详细设计、编码、测试、使用与维护。
--软件生存周期模型包括瀑布模型、原型模型、增量模型、螺旋模型。
4.软件开发的各种模型(瀑布、快速原型等)的特点--瀑布模型:1)阶段间具有顺序性和依赖性。
2)推迟实现的观点。
3)质量保证的观点。
瀑布模型适用于需求被清晰定义的情况。
--快速原型模型:适用于客户需求难以清楚定义的情况。
--增量模型:适用于一种需要快速构造可运行程序的方法。
--螺旋模型:螺旋模型是瀑布模型、原型模型的有机结合,同时增加了风险分析。
螺旋模型只适合于大规模的软件项目。
--喷泉模型:喷泉模型是典型的面向对象生命周期模型。
二.需求分析1.需求分析的目的--需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。
需求分析是软件工程中的一个关键过程。
--需求分析中开发人员从用户那里了解软件做什么。
--可行性研究要进行一次“简化的、压缩的”需求分析。
2.主要任务--获取并理解用户的需求是软件工程师所面对的最困难的任务之一--发现和分析问题,并分析问题的原因/结果关系;与用户进行各种方式的交流,并使用调查研究方法收集信息;按照三个成分观察问题的不同侧面,即数据、过程、接口;将获取的需求文档化,形式有用例、决策表、需求表等。
3.功能性需求和非功能性需求--功能性需求:系统需要提供的服务或功能:如图书检索;系统对特定输入的处理方式:如对非法输入的提示;系统在特定环境下的行为:如长时间无操作时的屏保。
软件工程复习资料
第一章概论1.软件工程的主要内容:为了有限的资金、资源和时间条件下开发满足客户要求的高质量软件,就需要研究与软件开发和管理相关的模型、方法、技术、过程、工具和环境等。
2.计算机软件:指的是计算机系统中的程序及其文档,3.程序:指的是计算任务的处理对象和处理规则的描述.4.计算任务:任何以计算机为处理工具的任务都是计算任务。
5.处理对象:是数据(如数字、文字、图形、图像、声音等,它们只是表示,而无含义)或信息(数据及相关的含义)。
6.处理规则:一般指处理的动作和步骤.7.文档:是为了便于了解程序所需的阐述性资料.8.软件工程:是应用计算机科学,数学及管理科学等原理,开发软件的工程。
软件工程借鉴传统工程的原则、方法、以提高质量、降低成本为目的。
其中,计算机科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
9.杨芙清院士指出软件工程的框架可概括为:目标、过程和原则。
10.软件工程目标:只生产具有正确性、可用性和开销合宜的产品。
正确性:指软件产品达到预期功能的程度。
可用性:只软件基本结构、实现及文档为用户可用的程度。
开销合宜:只软件开发,运行的整个开销满足用户要求的程度。
11.软件工程原则包括围绕工程设计、工程支持和工程管理所提出的4条基本原则:(1)选取适宜的开发模型(2)采用合适的设计方法(3)提供高质量的工程支撑(4)重视软件工程的管理。
12.软件的生存周期:软件孕育、诞生、成长、衰亡的生存过程。
软件生存周期是指软件产品或软件系统从产生、投入使用到被淘汰的全过程。
软件生存周期大致可以分为6个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护。
13.软件过程:是生产一个最终满足需求且达到工程目标的软件产品所需的步骤。
过程是活动的集合,活动是任务的集合。
14.软件过程有3层含义:(1)、个体含义:指软件产品或系统存在生存周期中的某一类活动的集合,如软件开发过程、软件管理过程等。
《软件工程》复习材料(有答案)
一、写出下列缩写英文的中文涵义[30T]CFD DFD OOASA SD SP CMM CMMI UMLCASE XPC/S B/SA TAM PDL SQA MVC CRC MBSCBSD GUISQLMTTR MTTF MTBF FTR PERT SCM CPMRMMP【参考答案】计算流体动力学(CFD)Computational Fluid Dynamics数据流图(DFD)Data FlowDiagram面向对象分析方法(OOA)Object—Oriented Analysis结构化分析方法(SA) Structured Analysis结构化设计(SD)Structureddevise结构化编程(SP)Structured Programming成熟度模型(CMM)CapabilityMaturity Model能力成熟度模型集成(CMMI) Capability Maturity Model Integration统一建模语言(UML)Unified Modeling Language计算机辅助软件工程(CASE) Computer Aided Software Engineering极限编程(XP)ExtremeProgramming客户机/服务器网(C/S) Client/Server浏览器和服务器结构(B/S)Browser/Server构架权衡分析方法(ATAM)Architecture Tradeoff AnalysisMethod页描述语言(PDL)Program DesignLanguage软件质量保证(SQA)SoftwareQualityAssurance模型—视图-控制器(MVC)ModelView Controller循环冗余码校验(CRC)Cyclical RedundancyCheck相互广播系统(MBS)Mutual BroadcastingSystem基于构件的软件开发(CBSD)Component—Based SoftwareDevelopment图形用户界面(GUI)Graphical User Interface结构化查询语言(SQL)Structured Query Language平均恢复前时间(MTTR)Mean TimeTo Restoration平均失效前时间(MTTF)MeanTimeTo Failure平均无故障时间(MTBF)Mean Time Between Failure正式技术复审(FTR)Formal Technical Review计划评审技术(PERT) Program EvaluationAnd Review Technique软件配置管理(SCM)Software Configuration Management关键路径方法(CPM)Critical Path Method二、概念[34][1]在《计算机科学技术百科全书中》,对计算机软件作出如下定义:计算机软件指计算机系统中的程序和文档,前者是计算任务的处理对象和处理规则的描述;后者是为了便于了解程序所需的阐述性资料。
软件工程复习资料
软件工程复习资料第一章:软件工程概述1. 计算机软件定义:计算机软件指计算机系统中的程序及文档。
程序是计算任务的处理对象和处理规则描述软件的发展:第一台计算机→高级语言→软件工程软件的特点:逻辑实体、被开发、无磨损和老化、硬件依赖、未自动化、成本昂贵、涉及社会因素现代软件 = 程序 + 软件工程现代软件企业 = 软件 + 商业模式软件构建管理、源代码管理、软件设计、测试、项目管理等是软件工程的核心,用户体验与用户界面是优化程序(算法,数据结构等)是基本功软件工程决定了软件的质量商业模式决定企业成2. 软件工程现代计算机软件的特殊性①非连续性人类通常容易理解连续事件,但软件系统不具备该特性②易变性修改软件代码相对容易,但代码的更改会带来意想不到的问题,如何正确地修改软件是一件很困难的事情③服从性软件不独立存在,需服从系统中其它组成部分的要求现代计算机软件的特殊性(对软件工程师而言)①许多不同的程序设计语言,软件工具和开发平台②许多不同的软件开发流程③软件团队中存在许多不同的角色软件工程定义:1968年NATO(北大西洋公约组织)会议上首次提出定义IEEE:软件工程是①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;②对在①中所述方法的研究《计算机科学技术百科全书》中定义:应用计算机科学、数学及管理科学等原理,开发软件的工程软件工程框架软件工程:创造“足够好”的软件目标:生产具有正确性、可用性、开销合宜的产品过程:如何生产满足需求且达到目标的软件产品原则:适宜的开发模型、合适的设计方法、工程支撑、软件工程管理生命周期(6个阶段):系统工程、需求分析、设计、编码、测试、运行和维护3. 软件过程及其模型能力成熟度模型CMM/CMMI卡内基梅隆软件工程研究所(SEI)瀑布模型(P16)优点结构简单明了;历史较长(70年代W. Royce提出)、应用面广泛、为广大软件工作者所熟悉;已有与之配套的一组十分成熟的开发方法和丰富的支撑工具缺点缺乏灵活性,难以适应需求不明确或需求经常变化的软件开发开发早期存在的问题往往要到交付使用时才发现,维护代价大原型模型(P18)设计者为了及早发现系统难点,或从用户处取得反馈意见,而构造的一个工作演示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1,什么是软件,软件的性质软件是完成某类问题求解的程序和数据以及为维护程序必须提供的一系列文档组成的集合。
软件=程序+数据+文档。
软件的内在性质是:软件具有高度的抽象性和严密的逻辑性。
软件的外在性质是:软件是一种逻辑信息产品,是用文字、符号表达的智力产物。
2,什么是工程化工程化的软件开发方法与早期的程序设计方法的不同点在哪里?将成熟工程领域的方法应用于软件开发。
工程化的方法包括如下四个方面:⑴.具有相应的理论与技术⑵.具备实现工程化的工具和环境⑶.具备统一的工程规范⑷.管理和控制3,软件工程研究的内容软件项目的管理软件工程的知识体系包括如下内容过程:软件开发的步骤。
方法:软件开发各步骤所用到的技术。
管理:控制软件开发按照过程和方法顺利完成的技术和措施。
工具:辅助人们贯彻过程和方法,并实施管理1,可行性分析包含哪些内容,它们的含义是什么?答:⑴.经济上可行性:论证系统有没有经济效益或社会效益?多长时间能回收成本?⑵.技术上可行性:实现新系统需要哪些技术,现有技术能否解决,难点?建议采用的技术先进程度怎样?新技术的应用是否存在风险?是否能够找到胜任该系统的熟练的技术人员?等等⑶.操作上可行性:系统的操作方式在用户所在的组织内是否可行,特别是对原有系统扩展会不会引起矛盾。
⑷.法律上可行性:会不会引起侵权、会不会引起其他的社会问题。
2,下列哪些工作中需要估算软件成本?I)软件可行性研究II)软件计划III)软件需求分析IV)软件运行和维护三1,结构化分析方法的三种描述手段数据流图,掌握数据流图中的基本符号,大题要求给出一个需求能够画出多层数据流图数据字典加工说明的三种描述工具是:结构化语言、判定树和判定表来表示2,结构化方法的特点:自顶向下,逐层分解,抽象和分解3,用户需求:•某学校需要开发一套基于Web的研究生招生管理系统,用户需求如下:–考生可以登录系统提交报名信息,报名信息经过格式确认存入数据库;信息提交成功后能够网上在线支付报名费并记录交费信息;交费成功的考生可以打印报名表。
–各院系教务员能够查看和审核考生提交的报名信息,确定信息是否准确有效,最后给出审核是否通过的标志。
教务员还能够打印报名考生清单。
–招生办公室管理员能够查询有效的报名考生信息和打印统计报表;能够生成报名考生数据文件上报到上级单位(教育部)。
题目要求:•请用SA方法对它进行分析,画出分层数据流图。
(只要求数据流图,不要求数据字典和报名信息库加工说明)•顶层数据流图••••四1,面向数据流的软件设计方法,一般将数据流图分成两种类型,一种称为________,另一种称为________。
变换型,事务型-----大题,变换型转换成软件结构图2,简述结构设计的任务?•答:–制定规范–软件结构的设计–数据结构的设计及接口设计–系统性能设计–软件质量的设计–设计文档的编写–设计的审查和复审3,什么叫做耦合,耦合有哪几种类型,几种类型间的耦合强弱关系?4,什么叫做内聚,内聚有哪几种类型,类型间的内聚强弱关系?5,耦合、内聚与模块独立性的关系?(1)内聚是指模块内部各软件元素之间结合的紧密程度(2)耦合是度量一个软件结构中模块与模块之间联系程度强弱的一个指标(3)内聚程度越高模块独立性越强,耦合程度越低模块独立性越强。
六1,继承的概念,理解泛化关系与聚集关系的概念2,UML统一建模语言,用例图什么是UML?•答:UML是Unified Modeling Language统一建模语言的缩写,统一建模语言是软件系统建模的表示工具。
•本题考核UML基本概念。
UML和C语言、Java语言等不同,它不是程序设计语言,而是用面向对象方法对系统进行分析设计的表示工具,类似与数据流图和软件结构图。
--3,简答题:什么是对象?什么是面向对象?•答:•对象是各种客观实体的抽象,是由一组属性和对这组属性进行操作的一组服务结合在一起所构成的独立实体。
•面向对象就是运用对象、类、继承、封装、消息、结构与连接等面向对象的概念对问题进行分析、求解的系统开发技术,七1,详细设计的任务•详细设计工具(程序流程图与盒图【的转换】(简答题),PAD图之间的转化)•了解程序复杂性度量的McCabe方法,了解环域复杂性的概念大题综合题:求一组数的最大数的算法。
请为上述算法画程序流程图,并分别转换成NS图,最后计算算法的环域复杂度。
2,简答题:详细设计的任务包括哪些?3,简答题:程序复杂性度量的方法有哪些?那种方法是利用环域复杂度计算程序复杂性的。
语句行度量方法McCabe方法Halsead方法八1,程序设计语言的三个特性分别是________,________,________。
•答:工程特性,技术特性,心理特性。
理解每种特性的含义,尤其是心理特性。
2,选择程序设计语言的最关键因素是软件项目的应用领域。
九--1,白盒测试技术的基本原理是什么?构造白盒测试的测试用例有哪几种方法?•答:允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
因此白盒测试又称为结构测试或逻辑驱动测试。
•构造测试用例有逻辑覆盖法和基本路径测试法。
2,黑盒测试黑盒测试技术,不考虑软件内部结构,而是以软件需求规格说明书为根据来设计测试用例的测试技术。
2.1……2.2黑盒测试等价分类法构造测试用例•有一信用卡,其密码号为五位,首位规定A或B,其他4位规定为数字位,请列出二个有效等价密码和四个无效等价密码作为一组测试用例,以便测试密码识别程序。
有效测试用例:①________________,②________________。
无效测试用例:每个无效等价类选一个①________________,②________________,③________________,④________________。
•有效等价类–首位为A或B,A1234–2-5位为数字,B8888•无效等价类–首位非字母,12345–首位字母不是A或B,C5700–2-5位有非数字,A23F4–密码长度不等于5位,B123453,简答题:软件测试的步骤有哪些?其中哪一步是和系统其它元素联合测试,哪一步需要用户参与?•答:单元测试,集成测试,确认测试,系统测试,验收测试•系统测试,验收测试4,黑盒测试技术的基本原理是什么?构造黑盒测试的测试用例有哪几种方法?--5,白盒测试技术属于静态测试还是动态测试?黑盒测试技术属于静态测试还是动态测试?6,软件测试的对象是什么?软件及软件文档配置项7,什么样的测试是一次成功的测试?能找出错误的测试才是成功的测试十1,软件维护的4种类型,理解4种类型的概念2,软件维护的内容非常广泛,可以分为________,________,________和________。
•答:改正性维护,适应性维护,完善性维护,预防性维护•理解每种维护工作需要完成的内容。
3,什么叫做完善性维护?4,因计算机硬件和软件环境的变化而做出的修改软件的过程称为________ 维护?十四1,了解软件过程模型–传统过程模型(瀑布模型、螺旋模型、增量模型)–统一过程模型(RUP)–敏捷过程模型(极限编程)十五1,简答题:什么是软件项目管理,软件项目管理需要完成什么工作。
•答:软件项目管理的定义:为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。
软件项目管理完成的主要工作是:风险分析和管理,时间管理(项目进度安排),成本管理,软件项目计划,软件配置管理等。
2,什么是软件配置管理?3,什么是软件度量?软件度量在软件开发中起什么作用?4,项目管理的9大知识领域包括哪些?2.软件工程正确答案:软件工程是研究如何将完善的科学与工程原理,先进高效的管理技术以及完整规范的设计方法应用于经济地开发即可靠,又能在实际计算机上有效运行的软件的一门工程学科。
3.软件生命周期正确答案:软件生命周期是一个软件系统从目标提出、定义、开发、使用和维护,直到最后丢弃的整个过程。
4.模块独立性正确答案:所谓模块独立性是指模块完成它自身规定的功能而与系统中其它的模块保持一定的相对独立。
6.什么是软件危机?危机的主要表现是什么?正确答案:(1)软件危机是指在软件开发和维护中遇到了一系列严重的问题。
(2)表现:a)对软件开发的成本和进度难于估计。
b)软件质量不高,潜在差错的危害。
c)缺乏完整、正确的文档,维护极困难,难于移植以至于不得不重复开发类似的软件。
d)传统手工生产方式使软件生产率低,难以满足社会对软件日益增长的需要。
7.什么是软件开发的工程化?工程化的软件开发方法与早期的程序设计方法的不同点在哪里?正确答案:软件工程学的核心思想是:用工程化的规范方法指导软件的开发、运行及维护工作。
工程化需要包括如下四个方面:⑴.具有相应的理论与技术⑵.具备实现工程化的工具和环境⑶.具备统一的工程规范⑷.管理和控制早期的程序开发方法没有统一的指导原则,随意编写程序,强调程序执行效率。
工程化的软件开发方法具有统一的指导原则,规范化的开发软件,强调软件的可理解性,可维护性和可复用性。
8.瀑布模型的主要缺点是什么?原型开发方法有什么好处?正确答案:(1)瀑布模型给出了固定的开发顺序,它的突出缺点是缺乏灵活性。
软件需求往往无法一下子彻底弄清,因此瀑布模型可能导致开发出的不是用户真正需要的软件,或者由于需求不能确定而造成项目后续工作无法开始。
(2)瀑布模型很难适应需求的动态变更,特别是用户对需求处于模糊认识时更为困难。
后期更改需求将付出高昂的代价。
(3)原型方法的好处包括:增进了软件开发人员和用户对系统需求的理解,使比较含糊的软件需求明确化;提供了一种有力的学习手段。
9.需求与设计的主要任务是什么?正确答案:(1)需求的任务:a)对问题的识别和理解——需求获取b)对需求信息的分析和综合——需求规约c)编制“需求规格说明书”d)需求分析的复审(2)设计的任务:a)制定规范。
b)软件结构的设计c)数据结构的设计及接口设计:d)系统性能设计e)软件质量的设计f)设计文档的编写g)设计的审查和复审11.什么是对象,什么是类,对象和类的关系是什么?正确答案:(1)对象是各种客观实体的抽象,是由一组属性和对这组属性进行操作的一组服务结合在一起所构成的独立实体。
它构成了系统概念模型的基本单元。
(2)类是一组具有相同数据结构和相同操作的对象的集合。
类的定义包括一组数据属性和在数据上的一组合法操作。
(3)类中的每个对象都称为该类的一个实例。
12.什么是白盒测试,什么是黑盒测试?正确答案:白盒测试技术是从程序内部结构入手来设计测试用例的测试技术;黑盒测试技术则相反,不考虑软件内部结构,而是以软件需求规格说明书为根据来设计测试用例的测试技术。