南京信息工程大学滨江学院李振宏《软件工程》期末复习 个考点完整版
2021最新版《软件工程》期末考试重点背诵内容
1.什么是软件危机及其表现?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
表现:(1)对软件开发成本和进度的估计常常很不准确。
(2)用户对“已完成的”软件系统不满意的现象经常发生。
(3)软件产品的质量往往靠不住。
(4)软件常常是不可维护的。
(5)软件通常没有适当的文档资料。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
2.什么是软件工程?答:软件工程是指导计算机软件开发和维护的一门工程学科,由需求分析、总体设计、详细设计、编码、测试、维护和演化等一系列分工明确的活动组成。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
3.什么是瀑布模型方法?(有利于大型软件开发过程中人员的组织及管理)答:按照时间顺序依次进行可行性分析、项目计划、需求分析、概要设计、详细设计、编码与单元测试、集成测试、确认验证、运行与维护等几个阶段进行软件开发。
图1 瀑布模型(软件生命周期模型)4.瀑布模型方法的优缺点:其优点体现在:(1)促进软件开发的工程化。
(2)提高了软件的成功率和质量。
(3)加强了软件开发的管理过程。
(4)强调了文档的作用,保护了软件开发商的利益。
其缺点体现在:(1)瀑布模型僵化的划分阶段、缺乏灵活性,对于软件需求不明确或不准确的问题,由于其开发模型是线性的,所以瀑布模型的风险控制能力较弱。
一方面用户只有等到整个过程的后期才能见到开发成果,中间提出的变更要求很难响应。
另一方面体现在早期的错误可能要等到开发后期的测试阶段才能发现,这样会带来严重的后果。
(2)增加了软件开发的工作量,由于开发过程各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
软件工程期末考试重点
《软件工程》期末复习重点第一章软件工程1.什么是软件工程。
A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。
2. 软件工程的三要素:方法、工具和过程。
第二章软件过程1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?a.软件定义:确定软件开发工程必须完成的总目标问题定义:要解决的问题是什么可行性研究:上阶段所确定的问题是否有可行的解决办法?需求分析:目标系统必须做什么b.软件开发:具体设计和实现在前一个时期定义的软件。
概要设计:怎样宏观地解决问题详细设计:应如何具体地实现这个系统编码和单元测试:写出正确的、易理解、易维护的程序综合测试:通过各类型测试使达到预定要求。
c.运行维护:修正错误,使软件持久地满足用户需要。
改正性维护:诊断和改正使用中的错误适应性维护:修改以适应环境变化完善性维护:根据用户的要求改进和扩充以完善预防性维护:修改以为将来的维护作准备2.常用的过程模型有哪些?各自的特点及不足。
如:瀑布模型的不足是不能适应需求的动态变更。
A.瀑布模型特点:可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证(评审)的。
缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。
如果需求规格与用户需求之间有差异,就会发生这种情况。
只适用于项目开始时需求已确定的情况。
B.快速原型模型特点:快速软件产品开发基本上是线性顺序进行。
降低了规格说明文档变化的可能性。
减少了后续阶段错误的可能性。
c.增量模型优点:人员分配灵活,刚开始不用投入大量人力资源。
当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。
增量能够有计划地管理技术风险。
缺点:要求构件具备开放式的体系结构。
易退化为边做边改模型,从而使软件过程的控制失去整体性。
软件工程期末复习要点归纳总结精编WORD版
软件工程期末复习要点归纳总结精编W O R D版IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】第一章软件工程学概论1、软件危机产生的原因软件本身的特点:难于维护、逻辑复杂软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护课本表述:1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件2、软件不同于一般程序,它的一个显着特点是规模庞大,而且程序的复杂性将规模的增加而呈现指数上升。
3、软件本身特有的特点确实给开发和维护带了一些客观困难4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护)5、对用户要求没有完整准确的认识就匆忙开始着手编写程序6、在软件不同阶段进行修改需要付出的代价是很不相同的2、软件危机的表现(什么是软件危机)(1)、成本高:(2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多(3)、进度难以控制:●项目延期比比皆是●由于进度问题而取消的软件项目较常见●只有一小部分的项目能够按期完成(4)、维护十分困难:▼软件维护的多样性▼软件维护的复杂性▼软件维护的副作用3、克服软件危机(1)、管理的角度:软件开发过程的研究、文档的标准化以及人员的交流方式等(2)、软件开发方法的研究结构化软件开发方法, 面向对象的开发4、软件工程的定义概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。
(2)、①把系统的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程应用于软件.②研究①中提到的途径总之:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。
软件工程期末考试主要知识点电子版
4.七条基本原理:(1)用分阶段的生命周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)结果应能清楚地审查;(6)开发小组的人员应该少而精;(7)承认不断改进软件工程实践的必要性。
10、RUP是Rational软件公司进过多年的商业化经验的六条最有效的软件按开发经验:迭代式开发、管理需求、使用基本构件的体系结构、可视化建模、验证软件质量、控制软件变更11、.微软过程生命周期的阶段以及各阶段的里程碑:(1)规划阶段(项目目标得到认可);(2)设计阶段(完成产品设计);(3)开发阶段(完成开发工作);(4)稳定阶段(准备好可发布版本);(5)发布阶段(完成产品发布)13、可行性研究的目的是用最小的成本在较短的时间内确定问题是否能够解决。
14. 对问题的每一种解法一般需要进行1.技术可行性2.经济可行性3.操作可行性4.法律可行性15. 在可行性研究阶段使用的描述工具有哪些?系统流程图,数据流图,数据字典。
16. 系统流程图:是概括地描述物理系统的传统工具表达的是数据在系统各部件之间的、流动的情况。
其基本思想是用图形符号从黑盒子描绘组成系统的各个部件(程序、文档、数据库、人工过程等)数据流图:是一个图形化技术,它描述信息流和数据从输入一点到输出的过程中所经受的变换。
数据字典:关于数据的信息的集合,即对数据流图中包含的所有元素的定义的集合17. 数据流图仅反映系统必须完成的逻辑功能,所以只是描绘数据在软件中流动和被处理的逻辑过程18. 数据字典的基本元素:数据流、数据元素、数据存储、处理21. 在进行成本/效益分析时首先需要估计成本。
成本估计可以使用那些技术?代码行技术、任务分解技术、自动估计成本技术22. 需求分析阶段的具体任务是什么?确定对系统的综合要求、分析系统的数据要求;导出系统的逻辑模型;修正系统开发计划23. 需求分析最终结果是什么体现的?分析模型、软件需求规格说明书24. 需求分析阶段完成的文档有哪些?分析模型、软件需求规格说明书25. 需求分析阶段使用的图形工具有哪些?数据流图、E-R图、状态转换图、层次方框图、watnier图、IPO图26. 在大型数据处理系统的功能分析与设计中,数据库的概念设计对应于系统开发的哪个阶段?对应需求分析阶段27. 最常用的表示概念性数据模型的方法是什么?E-R图28. 一般说来,应该从哪几个方面来验证需求分析的正确性?一致性、完整性、现实行、有效性29. 什么有穷状态机?有穷状态机有何作用?有穷状态机又哪几部分组成?有穷状态机:一个5元组(JKTSF)J有穷非空状态集K有穷的非空输入集T是一个从(J-F)*K到J 的转换函数、S属于J,初始状态。
软件工程复习资料-完整版
软件工程复习资料-完整版一、概述软件工程是一门关于开发、维护和管理软件的综合学科。
它涵盖了软件开发的各个阶段,包括需求分析、设计、编码、测试和维护。
软件工程的目标是提供高质量的软件,满足用户的需求,同时将开发过程控制在预定的时间和预算范围内。
二、软件生命周期1. 需求分析阶段在需求分析阶段,开发团队与用户沟通,了解用户的需求和期望。
通过需求分析,确定软件的功能和性能要求,制定详细的需求规格说明。
2. 设计阶段在设计阶段,团队根据需求规格说明,设计软件的整体架构和模块。
设计阶段包括概要设计和详细设计,概要设计主要确定软件的整体结构,详细设计则更加具体,包括模块的功能和接口设计。
3. 编码阶段在编码阶段,根据详细设计,实现软件的各个模块。
编码时应遵循编程规范,确保代码的可读性和可维护性。
同时,要进行单元测试,确保每个模块的功能正确。
4. 测试阶段在测试阶段,对软件进行不同层次的测试,包括单元测试、集成测试和系统测试。
单元测试测试各个模块的功能,集成测试测试模块之间的接口,系统测试测试整个系统的功能和性能。
5. 部署和维护阶段在软件开发完成后,需要将软件部署到目标环境中,并进行用户培训。
同时,还需要对软件进行维护和升级,以解决出现的问题和满足用户的需求变化。
三、软件工程的原则1. 模块化将软件划分为多个模块,每个模块负责特定的功能。
模块化能够提高软件的可维护性和复用性,同时有利于团队的协作开发。
2. 可伸缩性软件应该具备可伸缩性,能够满足不同规模和需求的用户。
在设计和实现软件时,需要考虑未来的扩展和升级,保证软件的灵活性。
3. 可测试性软件应该具备可测试性,方便进行各个阶段的测试。
在设计和编码时,需要考虑如何进行自动化测试,提高测试的效率和覆盖率。
4. 可维护性软件应该具备可维护性,方便对软件进行改进、修复和升级。
在设计和编码时,需要遵循良好的编程规范,提高代码的可读性和可维护性。
5. 文档化软件开发过程需要进行详细的文档记录,包括需求文档、设计文档、测试文档等。
软件工程期末考试复习重点
第一章软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
软件危机的主要表现:1、对软件开发成本和进度的估计常常很不准确。
2、用户对“已完成的”软件系统不满意的现象经常发生。
3、软件产品的质量往往靠不住。
4、软件常常是不可维护的5、软件通常没有适当的文档资料6、软件成本在计算机系统总成本中所占的比例逐年上升7、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势软件工程:定义一:是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。
定义二:1.把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2.研究1.中提到的途径。
软件工程方法学的三个要素:方法、工具和过程。
目前使用的最广泛的软件工程方法学:传统方法学、面向对象方法学。
软件的生命周期:软件生命周期有软件定义、软件开发和运行维护3个时期组成;定义时期分为:问题定义、可行性研究和需求分析阶段;开发时期分为:总体设计、详细设计、编码和单元测试、综合测试;维护时期的任务:是软件持久的满足用户的需求;瀑布模型:最广泛的过程模型;瀑布模型的特点:1、阶段间具有顺序性和依耐性;2、推迟实现的观点;3、质量保证的观点;Rational统一过程(RUP)四个阶段的工作目标:初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围;精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求;构建阶段:开发出所有构件和应用程序,把他们集成为客户需要的产品,并且详尽地测试所有功能;移交阶段:把开发出的产品提交给用户使用;第二章可行性研究的目的是确定问题是否值得去解决;可行性研究的方面:技术可行性、经济可行性、操作可行性;系统流程图描述物理模型;P39(要求会做)数据流图描述逻辑模型;P40(要求会做)数据流图(DFD)描绘信息流和数据从移动到输出的过程中所经受的变换;数据字典有以下4类元素的定义组成:数据流、数据流分量(数据元素)、数据存储、处理;由数据元素组成的数据的方式三种基本类型:顺序、选择、重复;“=”是等价于(或者定义为),“+”是和(用来连接分量),“[ ]”是或(从其中选一),“{ }”是重复,“()”是可选;第三章:需求分析任务:功能需求是指定系统必须提供的服务,通过该分析划出该系统必须完成的所有功能。
软件工程 期末复习提纲完美版
《软件工程》复习提纲1 软件与软件工程1.1软件的基本概念(例如,软件的定义、文档、软件的特点等)简单地说,软件由程序和文档两部分组成,一是机器可以执行的程序及有关的数据,二是机器不能执行的文档,软件的两种普遍定义:①软件是与计算机系统操作有关的程序,规程、规则及任何与之相关的文档和数据。
②软件是程序以及开发,使用和维护程序所需要的文档,包括机器运行所需要的各种程序及有关资料。
程序:为了解决某一问题而按事先设计的功能和性能要求执行的指令系列,或者说,用程序设计语言描述的适合于计算机处理的语句序列。
数据:使程序能正常操纵信息的数据结构。
文档:描述程序、数据和系统开发以及使用的各种图文资料。
它具有永久性并能供人或机器阅读。
软件的基本特点:·①计算机软件产品是一种逻辑产品部件而不是物理产品部件。
·②软件产品的生产主要是研制,是通过人们的智力活动,把知识与技术转化成信息的一种产品。
·③软件具有“复杂性”,其开发和运行常受到计算机系统的限制。
而且,软件投入使用后,仍需要进行维护,这就带来软件维护复杂性的问题。
·④软件不存在磨损,物理上不会老化,但存在软件退化问题。
·⑤软件成本昂贵,其开发方式目前尚未完全摆脱手工生产方式。
1.2软件危机的概念软件危机是指在软件开发和维护过程中所遇到的一系列严重问题。
【由于软件的规模越来越大,复杂度不断增加,软件需求量增大。
而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。
致使大量质量低劣的软件涌向市场,有的花费大量人力财力,而在开发过程中就夭折。
】“软件危机”主要表现在两个方面:(1)软件产品质量低劣,甚至开发过程就夭折;(2)软件生产率低,不能满足需要。
1.3软件工程学的概念(定义)、研究的内容(三要素)1993年IEEE定义:(1)把系统化的、规范化的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;(2)研究(1)中提到的途径。
软件工程导论期末复习重点
软件工程导论期末复习重点软件工程期末复习一、软件工程学概述1.软件危机:计算机开发和维护的过程中所遇到的一系列问题名词解释(需要加上软件危机产生的原因)对用户的要求没有完整准确的认识就匆忙着手编写程序论述题(需要加上软件危机的典型表现)01.对软件开发成本和嫉妒的估计常常不准确02.用户对已完成软件系统的不满意情况经常发生03.软件的质量靠不住2.软件工程:指导计算机开发和维护的一门工程学科?名词解释3.软件工程方法学的三要素:方法、工具、过程4.软件生命周期的三个时期:软件定义、软件开发、运行维护01.软件定义时期的三个阶段:问题定义、可行性研究、需求分析02.软件开发时期的四个阶段:总体设计、详细设计、编码、单元测试,综合测试,前两个称系统设计,后两个称系统实现03.软件维护时期:只要任务是使软件持久的满足用户的需要,具体的说,当软件在使用过程中发现错误时应该加以纠正,当环境改变时应修改软件以适应新的环境,当用户有新的需要时,应该及时改进软件以满足用户新的需求,本时期不在划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程5.可行性研究的结果是客户做出是否继续这项工程的决定的重要依据,只有投资取得较大收益的的那些工程项目才是值得继续进行下去的6.需求分析的目标是:确定出系统必须具备哪些功能,和用户密切配合,充分交流信息,以得出经过系统确认的系统逻辑模型7.软件维护的四类维护活动:01.改正性维护:改正和诊断在使用过程中发生的软件错误02.适应性维护:修改软件以适应新的环境变化03.完善性维护:根据用户的需求改善和扩充软件使它更完善04.预防性维护:为将来的维护活动事先做准备8.瀑布模型: ?论述题01.传统的瀑布模型开发软件的特点A.阶段间具有顺序性和依赖性B.推迟实现的观点C.质量保证的观点02.软件配置:程序、文档、数据03.注释有什么用:提高代码的可读性(有待补充)二、可行性研究1.可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决2.从三个方面研究每种解法的可读性;01.技术可行性:使用现在的技术能实现这个系统吗?02.经济可行性:这个系统的经济效益能超过它的开发成本吗?03.操作可行性:系统的操作方式在这个用户组织内能行得通吗?3.系统流程图:是概括的描绘物理系统的传统工具。
软件工程期末复习(超详细!!!)
软件工程期末复习(超详细!!!)一:软件工程概述软件工程学的存在价值:促进软件项目成功。
软件的概念:软件(software):软件是计算机系统中与硬件相互依存的另一部分。
它包括程序、数据及其相关文档的完整集合。
(1)能够完成预定功能和性能的可执行指令(program)(2)使得程序能够适当地操作信息的数据结构(data)(3)描述程序的操作和使用的文档(document)软件危机:软件危机定义:软件在开发和维护过程中遇到的一系列严重问题。
软件危机包含两层含义:如何开发软件。
如何维护数量不断膨胀的已有软件。
软件工程(Software Engineering):是研究和应用功能如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。
软件生存周期:是指软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程。
一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。
计划阶段确定待开发系统的总体目标和范围。
研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。
分析阶段分析、整理和提炼所收集到的用户需求,建立完整的分析模型,将其编写成软件需求规格说明和初步的用户手册。
设计阶段(总体设计和详细设计)设计阶段的目标是决定软件怎么做。
软件设计主要集中于软件体系结构、数据结构、用户界面和算法等方面。
实现阶段(编码)实现阶段是将所设计的各个模块编写成计算机可接受的程序代码。
测试阶段设计测试用例,对软件进行测试,发现错误,进行改正。
运行和维护阶段应当在软件的设计和实现阶段充分考虑软件的可维护性。
维护阶段需要测试是否正确实现了所要求的修改,并保证在产品的修改过程中,没有做其他无关的改动。
维护常常是软件生命周期中最具挑战性的一个阶段,其费用是相当昂贵的。
软件工程三要素:工具、方法、开发过程瀑布模型:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。
南信大-软件工程期末试卷
南信大-软件工程期末试卷本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March软件工程复习资料一、填空题(每空格1分,共30分)1、软件生存周期模型主要有、、、、、和变换模型等。
2、快速原型的使用策略有和。
3、可行性研究主要从、、,管理可行性等四个方面考虑。
4、成本--效益分析可用、、等指标进行度量。
5、抽象化包括、。
6、黑盒技术测试用例的方法有7、软件维护包含、、和等内容。
8、模块的内聚包含功能内聚、巧合内聚、、、、。
9、软件集成测试的方法主要有两种,它们是、。
二、名词解释(每小题4分,共24分)1、数据流图2、IPO图4、公共耦合5、时间内聚6、黑盒测试法三、简答题(每小题7分,共21分)1、软件工程的目标和内容是什么2、总体设计过程包括几个步骤?3、试述"变换分析"设计步骤。
四、问答题(共11分)试述软件测试的目的是什么软件测试中,应注意哪些原则五、应用题(共15分)1、请用判定表画出以下问题的行为逻辑。
(4分)人们往往根据天气情况决定出门时的行装;天气可能下雨,也可能不下雨;天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。
2、某“调整工资”处理模块接受一个“职称”的变量,根据职称的不同(助教,讲师,副教授,教授)作不同的处理,其中若是助教还必须输入工龄,只有工龄超过两年才能调整工资。
请用等价类划分法设计测试用例。
(7分)3、在数据A(1)~A(10)中求最大数和次大数,已知PDL语言描述,使用PAD图描述算法。
PDL语言描述:(4分)GET(a[1],a[2],...a[10]) max=a[1];max2=a[2];FOR i=2 TO 10IF a[i]>maxmax2=max;max=a[i];ELSE IF a[i]>max2 max2=a[i]; ENDIFENDIFEND FORPUT(max,max2) END答案一、填空题(每空格1分,共30分)1、瀑布模型,增量模型,喷泉模型,螺旋模型,基于知识的模型。
南京信息工程大学滨江学院计算机基础期末复习知识点
南京信息工程大学滨江学院计算机基础期末复习知识点《计算机基础》期末考试复习知识点第一章计算机基础知识1.第一台电子计算机的名称、诞生时间及运算性能;名称:电子数字积分计算机ENIAC(埃尼阿克)。
诞生时间:1946年2月14日。
运算性能:运算速度为每秒5000次加法。
2.计算机发展四个阶段的名称、特点,划分的主要依据;第1代:电子管数字机依据:逻辑元件采用真空电子管。
特点:体积大,功耗大,速度慢第2代:晶体管数字机依据:采用晶体管作为逻辑开关元件。
特点:第二代计算机和第一代相比体积减小、重量减轻、速度加快、可靠性增强第3代:集成电路数字机依据:逻辑元件采用中、小规模集成电路。
特点:体积功能进一步减少,可靠性及速度进一步提高。
第4代:大规模集成电路机依据:逻辑元件采用大规模和超大规模集成电路。
特点:性能到规模提高,价格大幅度降低,广泛应用于社会生活的各个领域,走进办公室和家庭。
3.计算机的特点及分类;特点:1.运算速度快2.计算精度高3.逻辑运算能力强4.存储容量大5.自动化程度高分类:根据计算机综合性能指标划分为如下五大类:1.高性能计算机2.微型计算机3.工作站4.服务器5.嵌入式计算机4.计算机的主要应用领域;1.科学计算2.信息管理3.过程控制4.辅助技术5.人工智能6.电子商务7.数字娱乐5.计算机的发展趋势;计算机运算能力将大幅度提升,应用领域扩展变得更加人性化,未来的计算机将向着巨型化,微型化,网络化,智能化和多媒体化等多方向发展。
6.数据与信息的概念,信息的主要特征;数据概念:记录信息的可识别符号,是信息的具体表现形式。
信息概念:一种被加工为特定形式的数据。
信息的主要特征:1.信息源于物质和能量,它是客观存在的。
2.信息是可以感知的3.信息是可存储加工传递和可再生的7.不同进制数之间的转换(十进制与二进制之间,二进制与八进制、十六进制之间);8.计算机中整数的表示:无符号数与有符号数的表示方法,有符号数的原、反、补码计算;9.计算机中浮点数的表示形式:尾数+阶码;10.常用英文字符的ASCII码的值(十进制值):数字,大小写字母,空格,回车,换行;11.G B2312汉字编码中的区位码,国标码和机内码之间的换算;12.媒体,多媒体,多媒体技术的概念,多媒体技术的特点,六种主要的感觉媒体;媒体:信息的载体,也称媒介。
软件工程期末考试重点整理
软件工程的基本概念:研究软件生产和软件管理的工程学科。
主要内容:软件工程的基本概念。
软件开发模型。
软件开发各阶段的任务、技术、方法。
传统方法、面向对象方法。
软件工程管理。
软件质量保证。
软件工程环境。
软件工程三要素:方法、工具和过程什么是软件生命周期?定义一个软件从开始计划起,到废弃不用为止,称为软件的生存周期。
软件生存周期包括:计划(主要任务:调查和分析,调查用户需求,分析新系统的主要目标,分析开发该系统的可行性)、开发(主要任务:系统分析、设计和实现)与运行(主要任务:做好软件维护,使软件在整个生存周期内保证满足用户的需求和延长使用寿命)3个时期,每一时期又可细分为若干更小的阶段。
将软件开发过程划分生存周期的目的:把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,就能够简化每一步的工作内容,使因为软件规模增长而大大增加了的软件复杂性变得较易控制和管理需求分析的主要任务是1通过对问题及其环境的理解、分析和综合,建立分析模型;2在完全弄清用户对软件系统的确切要求的基础上,用“软件需求规格说明书”把用户的需求不大出来。
需求分析的步骤通过对现实环境的调查研究,获得当前系统的具体模型;去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型;分析当前系统与目标系统的差别,建立目标系统的逻辑模型;对目标系统进行完善和补充,并写出完整的需求说明;对需求说明进行复审简述衡量模块独立性的两个准则。
选择程序设计语言的原则有哪些?简述你对程序设计风格的理解。
程序设计阶段的特点:生产方式:个体手工劳动。
生产工具:机器语言、汇编语言。
开发方法:追求编程技巧,追求程序运行效率。
程序难读、难懂、难修改。
硬件特征:价格贵、存储容量小、运行可靠性差。
软件特征:只有程序、程序设计概念,不重视程序设计方法。
“软件测试不能证明程序的正确性”,谈谈你对这句话的理解。
“软件维护是软件运行时期的工作,与软件开发各阶段联系较少,该阶段工作是简单的,难度也要小得多。
南京信息工程大学滨江学院软件工程期末复习李振宏
软件工程复习知识点:1.选择题:25题,共25分;填空题15题,共15分;简答5题,共30分;设计3题,共30分。
第一章软件工程学概述1.软件危机是什么?软件工程的定义是什么?二者有何关系?(p1,p5)2.软件工程方法学的3要素是什么?(p9)3.软件生命周期的阶段如何划分,每个阶段的主要任务是什么?(p11)4.软件生命周期模型有哪些?各有何特点?(p15)第二章可行性研究1.可行性研究的实质是什么?(p36)2.可行性研究包含哪几方面的工作?(p36)3.数据流图有何用途、有哪几种图形元素?(p40)4.设计数据流图时,分层的原则是什么?(p41)5.数据字典主要用途是什么?(p48)6.投资回收期如何计算?(p52)第三章需求分析1.需求分析阶段应该得到什么文档?(p55)2.什么是ER图、有哪几种图形元素、有何用途?(p64)3.需求分析阶段要使用哪三种类型的模型?(p72)第五章总体设计1.模块的内聚是何含义?(p98)2.耦合有哪些类别,内聚有哪些类型,各是何含义?(p97,p98)3.内聚和耦合程度如何排序?(p97,p98)4.软件结构图中对深度、宽度、扇入及扇出有何要求?(p100)5.软件结构图如何理解?(p102)6.数据流图中,信息流可分为哪两种类型,如何区分?(p105)第六章详细设计1.结构化程序设计有哪几种基本结构,有何特点?有何要求?(p117)2.什么是结构化设计?有何用途?(p118)3.结构化程序设计对goto 语句有何要求?(p119)4.判定表和判定树有何特点?用于何种场合?如何使用?(p127)5.JACKSON方法有何特点?有何用途?(p132)第七章实现1.软件测试和软件调试的目的是什么?(p150,p176)2.软件测试有哪几个步骤?与软件各开发阶段有何关系?(p151)3.集成测试有哪几种策略?(p157)4.什么是驱动模块、什么是存根模块?有何用途?(p155)5.什么是白盒测试、什么是黑盒测试,白盒测试有哪些测试方法、黑盒测试有哪些测试方法?(p162,p171)6.什么是等价类划分方法,什么是边界值分析方法?(p173,p175)第八章维护1.软件维护的分类,及每种维护的含义?(p189)第十三章软件项目管理1.如何度量软件的规模?(p305)2.估算软件项目成本的模型有哪些?(p308)3. 什么是软件配置管理?(p328)4. 什么是软件配置项?(p329)5.CMM包含哪几个等级?(p331)1.什么是CAD,CAM,CAI,CASE?(略)设计三题(第六章详细设计和第七章实现)如何由程序流程图得到流图,如何计算环形复杂度?p(137)如何将程序转化为流程图及N-S图?(p125)如何由流程图设计测试用例?(包括语句覆盖与分支覆盖)。
南京信息工程大学滨江学院操作系统期末复习
Ch11.从用户、资源管理、资源抽象三个角度看,操作系统的作用分别是什么。
(p2-3,选择题、简答题)1)OS作为用户与计算机硬件系统之间的接口2)OS作为计算机系统资源的管理者3)OS实现了对计算机资源的抽象2.操作系统是什么软件?位于哪一层之上?(P1填空题,选择题)操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充3.从资源管理的角度看,操作系统的4大主要功能。
(P16-19填空题、简答题)(1)处理机管理功能(2)存储器管理功能(3)设备管理功能(4)文件管理功能4.理解操作系统的主要特性:并发性、共享性和异步性。
(P13-14选择题)5.理解操作系统的基本类型:批处理操作系统、分时操作系统和实时操作系统。
多道批处理系统的优缺点:(1)资源利用率高(2)系统吞吐量达(3)平均周转时间长(4)无交互能力分时系统的特征:(1)多路性(2)独立性(3)及时性(4)交互性6.分时系统实现中的关键问题1)及时接收2)及时处理3)实时系统硬4)实时任务和软实时任务6.多道程序设计是指什么?(P7-8选择题)多道程序设计,就是在内存中存放多个进程来执行人们赋予计算机的任务这些在内存中的多个进程共享计算机的硬件资源,如CPU,各种I/O 设备等等7.操作系统作为用户与计算机硬件系之间的接口,用户可通过三种方式使用计算机,这些方式是指什么。
(P2填空题)命令方式、调用方式、图标-窗口方式Ch21.理解进程的定义,进程的3个组成部分。
(P35-36选择题、填空题)进程是程序的一次执行、进程是一个程序及其数据在处理机上顺序执行是所发生的活动、进程是具有独立功能的程序在一个数据集合上运行的程序,他是系统进行资源分配和调度的一个独立单位。
3个组成部分:就绪状态、执行状态、阻塞状态2.理解进程的三种基本状态转换及用图表示。
(P37选择题,简答题)3.进程控制块Pcb中的信息(P40-41选择题、填空题)(1)进程标识符(2)处理机状态(3)进程调度信息(4)进程控制信息4.进程控制一般是由什么来实现的?(P42选择题)什么是原语?(P43选择题)进程控制一般是由OS的内核中的原语来实现的;原语是由若干条指令组成的,用于完成一定功能的一个过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择20题,每题1分;填空10题,每题1分;简答5题,每题8分;设计题3题,每题10分(流程图的设计、流图设计和环形复杂度的计算、语句覆盖和判定覆盖测试用例的设计)。
1.详细设计中,过程设计的工具,N-S图,PAD图及判定表和判定树各有何特点和适用情况?(第六章)(1)盒图(N-S图):一种不允许违背结构程序设计精神的图形工具,又称为N-S图。
它有下述特点:①功能域(作用域)明确,可以从盒图上一眼就看出来。
②盒图没有箭头,因此不允许随意转移控制。
③很容易确定局部和全程数据的作用域。
④很容易表现嵌套关系,也可以表示模块的层次结构。
适用:对大部分设计均有适用性,常用于软件工程详细设计中,提供一种结构化的方式,便于思考和解决问题。
(2)PAD图:PAD是问题分析图(problem analysis diagram) ,它用二维树形结构的图来表示程序的控制流。
PAD图的主要优点如下:①使用PAD符号设计的程序必然是结构化程序。
② PAD图所描绘的程序结构十分清晰。
最左面的竖线是程序的主线,即第一层结构。
随着程序层次的增加,PAD图逐渐向右延伸。
每增加一个层次,图形向右扩展一条竖线。
图中竖线的总条数就是程序的层次数。
③PAD图表现的程序逻辑,易读、易懂、易记。
程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。
④容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成。
⑤既可表示程序逻辑,也可描绘数据结构。
⑥支持自顶向下、逐步求精方法的使用。
适用:为FORTTAN,COBOL,PASCAL等每种常用的高级程序设计语言提供了一套相应的图形符号。
开始时可以定义一个抽象的程序,随着设计的深入,使用def符号逐步增加细节,直至完成详细设计,如图6.6所示。
(3)判定表(P127有例子):适于表示复杂的条件组合与应做的动作之间的对应关系。
特点是:①能够间接而又无歧义的描述处理故意则。
②并不适用于作为一种通用的设计工具。
③一张判定表由以下四部分组成:左上部列出所有条件,左下部是所有可能的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。
判定表右半部的每一列实际上就是一个规则,规定了与特定的条件组合相对应的动作。
适用:算法中包含多重嵌套的条件选择。
数据元素多于2个的时候,能够比判定表更简洁的表达,便于理解。
盒图的基本符号(1)盒图的基本符号(2)PAD图的基本符号图6.6 使用PAD图提供的定义功能来逐步求精的例子PAD描述的示例(4)判定树判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。
判定树的优点:形式简单到不需任何说明,一眼就可以看出其含义,易于掌握和使用。
适用:数据元素多的时候,初次接触的人很容易就看懂用判定树表示计算行李费的算法2.白盒测试和黑盒测试技术的区别。
(第七章)白盒测试技术:用白盒方法测试软件时设计测试数据的典型技术。
已知产品的内部工作过程,可以进行测试证明每种内部操作是否符合设计规格要求,所有内部成分是否经过检查。
黑盒测试技术:用黑盒方法测试软件时设计测试数据的典型技术。
已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
黑盒测试着重测试软件功能。
黑盒测试并不能取代白盒测试,它是与白盒测试互补的测试方法,它很可能发现白盒测试不易发现的其他类型错误。
3.白盒测试中的逻辑覆盖测试包含哪几种类型。
(第七章)逻辑覆盖:是对一系列测试过程的总称。
这组测试过程逐渐进行越来越完整的通路测试。
覆盖:测试数据执行源程序的过程。
①语句覆盖的含义:选择足够多的测试数据,使被测程序中每个语句至少执行一次。
②判定覆盖又叫分支覆盖。
含义:不仅每个语句必须至少执行一次,而且每个判定的每个分支都至少执行一次。
③条件覆盖含义:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。
④判定/条件覆盖含义:选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。
判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。
⑤条件组合覆盖含义:使得每个判定表达式中条件的各种可能组合都至少出现一次。
⑥点覆盖含义:选取足够多测试数据,使得程序执行路径至少经过流图的每个结点一次。
⑦边覆盖含义:选取足够多测试数据,使得程序执行路径至少经过流图中每条边一次。
⑧路径覆盖含义:选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。
4.软件维护的类型有哪些,及各自所占比重。
(第八章)①改正性维护,占17%~21%:在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。
这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。
改正性维护:为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程。
②适应性维护,占18%~25%:在使用过程中,外部环境(如:新的硬、软件配置)、数据环境(如:数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。
适应性维护:为使软件适应这种变化,而去修改软件的过程。
③完善性维护,占全部维护活动的50%~66%:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。
为了满足上述要求,需要修改或再开发软件而进行的完善性的维护活动。
以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
完善性维护不一定是救火式的紧急维修,可以是有计划、有预谋的一种再开发活动。
④预防性维护:为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的维护活动。
其他维护活动只占4%左右。
预防性维护的定义:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试的过程。
5.软件项目的可行性研究的实质是什么?(第二章)可行性研究最根本的任务是对以后的行动方针提出建议。
如果问题没有可行的解,分析员应该建议停止这项开发工程。
如果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。
6.可行性研究包括哪些内容。
(第二章)技术可行性、经济可行性、操作可行性(至少以上三种)、运行可行性、法律可行性、开发方案可行性7.衡量模块独立性的标准有哪些?(第五章)模块独立:具有独立功能而且和其他模块之间没有过多的相互作用的模块。
模块独立的概念是模块化、抽象、信息隐藏和局部化概念的直接结果。
模块独立程度的度量标准:内聚和耦合。
耦合:模块间互相依赖(连接)的紧密程度;内聚:模块内部各个元素彼此结合的紧密程度。
8.模块间的耦合有哪些类型,如何区分?(第五章)数据耦合:模块彼此间通过参数交换信息,交换的信息仅仅是数据,数据耦合是低耦合。
标记耦合:若两个模块间传递的参数中至少有一个是数据结构,如字符串或记录,并且在模块中仅用到该数据结构中的部分元素,则称这两个模块之间存在标记耦合。
控制耦合:一个模块向另一个模块传递控制信息,接收信息的模块的动作根据信息值进行调整。
控制耦合是中等程度的耦合,它增加了系统的复杂程度。
在把模块适当分解之后通常可以用数据耦合代替它。
公共耦合:两个模块共享全局的数据区域,称他们为公共耦合,不要使用全局变量。
耦合的复杂程度随耦合模块的个数而变化,随个数的增加显著增加。
内容耦合:有三种情况,是最高程度的耦合性(坚决避免使用这种耦合)模块独立性与耦合的关系图总之,耦合是影响软件复杂程度的一个重要因素。
应该采取下述设计原则:尽量使用数据耦合,少用控制耦合和标记耦合,限制公共环境耦合的范围,完全不用内容耦合。
9.模块内的内聚有哪些类型,如何区分?(第五章)偶然内聚:如果一个模块的各成分之间毫无关系,则称为偶然内聚。
逻辑内聚:几个逻辑上相关的功能被放在同一模块中。
时间内聚:如果一个模块完成的功能只是因为时间因素关联在一起。
过程内聚:如果一个模块内部的各个处理成分必须以特定的次序执行,则称为过程内聚。
通信内聚:如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
顺序内聚:如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入,则称为顺序内聚。
功能内聚:模块的所有成分对于完成单一的功能都是基本的。
设计时,尽量使用内聚度高的模块(顺序内聚,功能内聚);中内聚(过程内聚,通信内聚)也可;低内聚(偶然内聚,逻辑内聚,时间内聚)很坏,不要采用。
10. 结构化程序设计的定义及特点。
定义:是进行以模块功能和处理过程设计为主的详细设计的基本原则。
特点:结构化程序中的任意基本结构都具有唯一入口和唯一出口,并且程序不会出现死循环。
在程序的静态形式与动态执行流程之间具有良好的对应关系11.软件测试的定义及目的。
(第七章)软件测试的定义:是为了发现程序中的错误而执行程序的过程。
软件测试的目的:暴露程序中的错误。
测试目标决定了测试方案的设计,如果为了表明程序的正确,就会设计一些不易暴露错误的测试方案;如果是为了发现程序中的错误,就会设计出最能暴露错误的测试方案。
G.Myers给出了关于测试的一些规则,这些规则也可以看作是测试的目标或定义:(1) 测试是为了发现程序中的错误而执行程序的过程;(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3) 成功的测试是发现了至今为止尚未发现的错误的测试。
测试是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。
12.软件生命周期的阶段划分及每个阶段的任务。
(第一章)软件生命周期:软件生命周期的阶段划分由软件定义、软件开发和运行维护(也称为软件维护),直到最终被废弃所经历的时期。
生命周期每个阶段的基本任务:软件定义阶段:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程总目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,制定工程进度表。
这个时期的工作又称为系统分析,由系统分析员负责完成。
这个时期进一步划分成3个阶段:问题定义、可行性研究和需求分析。
开发时期的任务是:设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。
前两个阶段又称为系统设计,后两个阶段又称为系统实现。
维护时期的主要任务是:使软件持久地满足用户的需要。
具体地说:当软件在使用过程中发现错误时应该加以改正;当环境改变时应该修改软件以适应新的环境;当用户有新要求时应该及时改进软件以满足用户的新需要。
13.面向对象方法的特点、特征。
(第九章)特征:(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。