1、1 软件与软件工程概念1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序与数据是分离的。程序的最小单位是类。3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。5.什么是软件工程? (课后题)软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验
2、而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。6可以用功能性、可靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。功能性是指软件所实现的功能达到它的设计规范和满足用户需求的程度。可移植性是指软件从某一环境转移到另一环境时所作努力得程度。7.软件生存期由软件定义、软件开发和运行维护三个时期组成。开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。开发过程中的典型文档包括:项目计划、软件测试计划、软件设计说明书、用户手册。8.需求分析的基本任务? (1)建立分析模型,了解系统的各种需求细节。(2)基于分析结果,编写出软件需求
3、规格说明或系统功能规格说明,确认测试计划和初步的系统用户手册,并提交管理机构进行分析评审。2 软件工程方法与工具1. 面向对象方法的出发点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识问题和解决问题的方法与过程,从而使描述问题的问题空间与其解空间在结构上尽可能一致。2. 形式化方法的主要特点是: (课后题)(1) 软件需求规格说明被细化为用数学记号表达的详细的形式化规格说明;(2) 设计、实现和单元测试等开发过程由一个变换开发过程代替。通过一系列变换将形式的规格说明细化成为程序。 3. 面向对象 = 对象 + 类 + 继承 + 消息通信。4. 新类从现有的类
4、中派生的过程,叫做类继承。5. 多态是指一个程序中同名的不同方法共存的情况。6. UML的特点:统一标准、面向对象、可视化、独立于过程、容易掌握使用、与编程语言的关系。 3 软件需求获取与结构化分析方法1. 结构化分析方法的核心是数据字典,包括在目标系统中使用和生产的所有数据对象。2. 顶层数据流图或称环境图的作用是什么?(*)顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统。其作用如下:(1) 确定系统在其环境中的位置,与系统有联系的外部实体(包括硬件、软件、组织机构及人)有哪些。(2) 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能或处
5、理属于系统范围之内,哪些属于系统范围之外,需要由其他系统处理或人工处理。3. 在对数据流图进行分解时需要注意哪些问题?(*)在对数据流图进行分解时,需要注意以下两个问题:(1)当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。(2) 注意分层细化时对编号的处理方法。4.在需求评审的实施过程中可能会遇到得风险包括: (1)需求评审的参与者选取不当。(2)评审规模过大。(3)评审组规模过大。(4)评审时间过长。3.2顶层数据流图或称环境图的作用是什么?顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统
6、。其作用如下:(1) 确定系统在其环境中的位置,与系统有联系的外部实体(包括硬件、软件、组织机构及人)有哪些。(2) 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能或处理属于系统范围之内,哪些属于系统范围之外,需要由其他系统处理或人工处理。3.3 在对数据流图进行分解时需要注意哪些问题?在对数据流图进行分解时,需要注意以下两个问题:(1) 当对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理时,分解前和分解后的输入/输出数据流必须相同。(2) 注意分层细化时对编号的处理方法。4 结构化设计方法1.软件设计的五项原则:分而治之、模块独立性
7、、提高抽象层次、复用性设计、灵活性设。2.耦合是模块之间得相对独立性(互相连接的紧密程度)的度量,内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。耦合程度最高的是内容耦合。3.结构化设计方法得实施要点是:(1)首先研究、分析和审查数据流图。(2)然后根据数据流图决定问题的类型。(3)由数据流图推导出系统的初始结构图。(4)利用一些启发式原则来改进系统的初始结构图,直到得到符合要求的结构图为止。(5)根据分析模型中的实体-关系图和数据字典进行数据设计。(6)在上面设计的基础上,依据分析模型中的加工规格说明、状态转换图及控制规格说明进行过程设计。(7)制定测试计划。4.模块结构
8、最普通的形式是树状结构和网状结构。5.模块结构的层次数称为结构图的深度。6.扇出表示一个模块直接调用(或控制)的下属模块的数目。7. 基于数据流方法的设计过程包括: (1)复查并精化数据流图。(2)确定数据流图中数据流的类型。(3)导出初始的软件结构图。(4)逐级分解。(5)精化软件结构。(6)导出接口描述和全局数据结构。8.变换分析方法由:重画数据流图;区分有效(逻辑)输入、有效(逻辑)输出、和中心变换部分;进行一级分解,设计上层模块;进行二级模块,设计输入、输出和中心变换部分的中、下层模块四个部分组成。9.模块的控制范围包括它本身及其所有的从属模块。10.接口设计的依据是数据流图中的自动化
9、系统边界。5 编码1.程序的效率是指程序的执行速度及程序所占用内存的存储空间。2. 一般情况下,程序的效率和清晰性相比哪一个更重要?在计算机发展的早期,由于CPU效率低,内存小,程序在运行时容易出现运行时间太长或内存溢出问题。因此,人们在编写程序时,很注重程序的时间效率和空间效率,而不太注重程序的清晰性。随着计算机硬件性能的飞速发展以及软件规模和复杂性的急剧增加,这种情况已经发生了根本的转变,程序的清晰性越来越受到重视,程序的清晰性不好会给测试、维护修改带来困难,这对于规模庞大和复杂的软件尤其明显。对于效率没有特殊严格要求的系统来说,要将程序的清晰性放在第一位,在不影响清晰性的情况下,去改进效
10、率。6 软件测试方法1.软件测试是为了发现错误而执行程序的过程。2.在软件测试的对象中,确认包括需求规格的确认和程序的确认。3.逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术,属于白盒测试。4.独立路径是指包括一组以前没有处理的语句或条件的一条路径。5.通常软件测试是按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。6. 调试也称排错或纠错,是紧跟在测试之后要做的工作。6.5 假设汽车的车牌号可由车主人在规定范围内自选,若其规定为:(1) 车牌上应有7个字符; (2) 为首的字符限定为汉字“京”;(3) 第2个字符可任选一字母(AZ);(4) 第37个字符可选任意数字。请为相
11、关的处理程序采用等价类划分方法设计等价类表及相应的测试用例。等价类表输入数据有效等价类无效等价类字符个数 7个(1)06个(2),7个(3)首字符“京”(4)非“京”(5)第2个字符字母(6)非字母(7)第37个字符数字(8)非数字(9)测试用例如下:1)京H87774 (1),(4),(6),(8)2)京H8777 (2)3)京H877745 (3) 4)冀H87774 (5)5)京987774 (7)6)京BA7774 (9) 7 统一建模语言UML概述1.在面向对象的需求分析时,模型的静态结构也称为静态模型,在UML中表示为类图。2. UML中有哪些关系?解释类图中聚合和关联的相同点和不
12、同点。在UML中,常见的关系有泛化、聚合、关联、依赖和实现。在类图中,关联是一种结构关系,它描述了两个或多个类的实例之间的连接关系。聚合描述了整体和部分之间的结构关系。按照关联关系的定义,聚合属于一种特殊的关联关系,只不过这种关联关系具有明确的整体-部分含义而已。从耦合度的角度看,聚合关系要强于关联关系。3. 讨论顺序图与协作图的关系,何时用顺序图建模优于协作图建模,以及相反的情况。顺序图和协作图都能描述对象间的交互关系,但两者的侧重点不同,顺序图着重表现交互的时间顺序,协作图则着重表现交互对象的静态链接关系。但即使他们各有侧重,但从语义上来说是等价的,可从一种图自动转换为另一种图。一般情况下
13、,当需要强调消息传递的时间顺序时,采用顺序图;当表示涉及很多对象的模型时,协作图比顺序图更形象。顺序图在分析中更常用,而协作图则在设计中更常用。8 面向对象分析1. 接口设计的依据是数据流图中的自动化系统边界。2.比较面向对象的分析方法和面向数据流的分析方法,阐述它们各自的特点。面向对象的分析方法使用用例模型来表示用户的功能需求,用例模型相当于功能模型,在对用例模型进行细化的过程中,也伴随着对功能的分解。但面向对象的分析方法并不是以功能分解为核心,在获取并分析用户的功能需求之后,重点以类和对象为核心,建立对象模型,交互模型也是围绕对象模型进行的。面向数据流的分析方法是从建立顶层数据流图(环境图
14、)开始,之后逐层对加工进行分解。面向数据流的分析方法是以功能分解为核心的。8.3 用例建模的主要步骤是什么? 用例建模的主要步骤如下:(1) 确定业务参与者可以是与系统有交互的外部硬件、软件、组织、人等。(2) 确定业务需求用例参与者需要系统提供的完整功能。(3) 创建用例图标识参与者与用例之间、用例与用例之间的关系。8.5 用例与用例之间的关系主要有哪两种?其区别是什么? 用例之间的关系主要有包含(也称使用)和扩展。包含表示一个用例所执行的功能中总是包括被包含用例的功能;扩展是指一个用例的执行可能需要由其他用例的功能来扩展,扩展联系可用于对期望或可选的行为建模,但其主要用途是使基本用例的功能
15、不依赖于扩展用例。9 软件体系结构和设计模式1.软件设计模式是从软件设计过程中总结出来的,针对特定问题的解决方案。2. 风格是带有一种倾向性的模式。3.有两种领域相关的体系结构模型:类属模型和参考模型。4.一个交互式应用系统有模型、视图和控制器3个部件组成。10 面向对象设计1.面向对象设计准则有:模块化、抽象、信息隐藏、弱耦合、强耦合。2.在面向对象软件中,常见的软件模块有类、接口、包、构件。3. 从软件复用角度,构件是指在软件开发过程中可以重复使用得软件元素。10.1 软件模块之间的依赖性可以从哪些角度和抽象层次进行分析?在面向对象软件中,常见的软件模块有类、接口、包、构件。因此,分析软件
16、模块之间的依赖性就可以从类、接口、包和构件的角度和层次进行分析。11 软件维护到结束1.软件运行的外部环境可能发生变化,为了使软件适应这种变化而修改软件的过程叫做适应性维护。2.软件维护活动花费的工作占整个生存期工作量的70%以上。3.软件维护的策略:改正性维护、适应性维护和完善性维护。4.所谓副作用是指因修改软件而造成的错误或其他不希望发生的情况,有修改代码的副作用、修改数据的副作用和文档的副作用三种。5.实施风险管理计划从根本上将就是将风险化解。 P3146. 文档的分类:开发文档、管理文档、用户文档。 P349 第二次复习要点1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序
17、,数据及其相关文档的完整集合,程序只是软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序与数据是分离的。程序的最小单位是类。 P23.可移植性是指软件从某一环境转移到另一环境时所作努力的程度。 P64.软件的分类:系统软件;应用软件;支撑软件;可复用软件。 P45.什么是软件危机?它有哪些典型表现?软件危机出现的原因是什么?软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题典型表现:(1)对软件开发成本和进度的估计常常很不准确。(2)用户对“已完成的”软件系统不满意的现象经常发生。(3)软件产品
18、的质量往往靠不住。(4)软件常常是不可维护的。(5)软件通常没有适当的文档资料。(6)软件成本在计算机系统总成本中所占的比例逐年上升。(7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势产生软件危机的原因: 除了软件本身的特点,其原因主要有以下几个方面:(1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。(2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。(3) 软件开发过程不规范。(4) 随着软件规模的增大,其复杂性往往会呈指数级升高。(5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。6
19、.风格是带有一种倾向性的模式。 P2037.耦合是模块之间得相对独立性(互相连接的紧密程度)的度量,内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。耦合程度最高的是内容耦合。 P678.深度:模块结构的层次数称为结构图的深度。 P739.接口设计的依据是数据流图中的自动化系统边界。 P8910.用例之间的关系有:包含、使用及扩展。 P18611.在面向对象的需求分析时,模块的静态结构也称为静态模型。 P17112.聚合也称聚集,是一种特殊的关联。它描述了整体与部分之间的结构关系。 P16713.顺序图描述对象之间的动态交互关系,着重表现对象间消息传递的时间顺序。 P1731
20、4.从软件复用角度,构件是指在软件开发过程中可以重复使用得软件元素。 P23915.调试也称排错或纠错,是紧跟在测试之后要做的工作。 P15916.逻辑覆盖是以程序内部的逻辑结构为基础得设计测试用例得技术,属于白盒测试。 P13317.软件维护活动花费的工作占整个生存期工作量的70%以上。 P25718.软件过程改进循环步骤:评估-计划-改进-监控。 P29119.文档的分类:开发文档、管理文档、用户文档。 P35020.在需求评审的实施过程中可能会遇到得风险包括: P63(1)需求评审的参与者选取不当。(2)评审规模过大。(3)评审组规模过大。(4)评审时间过长。21.软件设计的五项原则:分
21、而治之、模块独立性、提高抽象层次、复用性设计、灵活性设计P6722.根据维护工作的性质,维护活动可以分为:改正性维护、适应性维护、完善性维护、预防性维护四种类型。 P25623.瀑布模型的优缺点是什么? P9优点:可强迫开发人员采用规范化的方法;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过验证的。缺点:由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要;用户往往需要等待很长时间才能看到可以运行的程序;适应需求变更的能力比较差。适用范围:瀑布模型只适用于项目开始时需求已确定的情况。 24.基于数据流方法的设计过程包括: P7
22、5(1)复查并精化数据流图。(2)确定数据流图中数据流的类型。(3)导出初始的软件结构图。(4)逐级分解。(5)精化软件结构。(6)导出接口描述和全局数据结构。25.面向对象设计准则有:模块化、抽象、信息隐藏、弱耦合、强耦合。 P232 提高题1. 软件工程是为了解决 软件危机 而产生的。2. 增量模型是 瀑布模型 和 快速原型 模型的综合。3. 结构化需求的核心是 数据字典。4. Jackson图既可以表示 数据结构,也可以表示 程序结构。5. 文件设计包括 逻辑设计 和 物理设计 两个阶段。6. 用 类 表示对象属性及关系。7. 状态图主要用来描述对象子系统的生命周期。8. 面向对象设计中,构件图和部署图是用来表示系统物理架构的。9. 黑白盒测试。10. 软件质量控制中,PCDA质量控制法是指计划、执行、检查和行动。11. 软件危机的特殊表现(第一页)。12. 优秀的需求规格说明具有那些特征?13. 概要设计的任务?14. 结构化需求分析的主要步骤?15. 软件模块化设计有哪些常用的设计准则?16. 面向对象程序设计中,如何提高程序的复用性?17. 软件质量保证包含那些?
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100