软件工程
名词解释
而提供的自动的或半自动
的软件支撑。
通过这些工具有效提高软件开发效率、降低开发成本。
过程:为了获得高质量的软件所需要完成各项任务的工作步骤。
定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理。
是第i年底
了满足这类要求,需要进行完善性维护。
重用,软件成分重用。
界的接口,外界只能通过这个接口与对象发生联系。
己还可以定义自己特有的属性和服务。
问答题
1、软件的特点?
1.软件是一种逻辑实体,而不是具体的物理实体,所以它具有抽象性。
2.软件的生产与硬件不同,在它的开发过程中没有明显的制造过程。
3. 软件在运行、使用期间虽然不存在磨损、老化问题,但它存在退化问题,开发人员必须维护软件。
4. 软件的开发和运行受硬件系统的限制,对硬件系统有着很强的依赖性。
5.软件开发至今没有完全摆脱手工操作的开发模式。
6. 软件本身是复杂的。
7. 软件成本相当昂贵软件的成本远远高于硬件的成本
2、数据字典中的数据元素组成数据方式有几种?
数据字典定义下列4类元素:
数据流描述、数据流分量(数据元素)描述、数据存储、加工逻辑说明(处理)
3、数据字典中对数据存储定义包括哪些?
顺序,即以确定次序连接两个或多个分量。
选择,即从两个或多个可能的元素中选取一个。
重复,即把指定的分量重复零次或多次。
可选,即一个分量是可有可无的(重复0次或一次)。
4、什么是数据字典,作用是什么?
数据字典是对数据流程图中的各个元素作完整的定义与说明的集合,是数据流程图的补充工具。
数据字典最重要的用途是作为分析阶段的工具。
在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。
对数据的这一系列严密一致的定义也有助于改进在不同的开发人员或不同的开发小组之间的通信。
如果要求所有开发人员都根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题。
5、耦合性有几种,它们具体表示什么?
耦合是指两个实体相互依赖于对方的一个量度。
分为以下几种:
非直接耦合:同级的两个模块没有直接关系(模块1和模块2),他们之间的联系完全通过主模块的控制和调用实现的,模块独立性最强。
数据耦合:一个模块访问另一个模块时,彼此之间是通过数据参数交换信息,而且参数都是简单的数据。
标记耦合:如两个模块通过传递数据结构(不是简单数据,而是记录、数组等)加以联系,共享这一数据结构,则称这两个模块间存在标记偶合。
控制耦合:一模块向下属模块传递的信息(开关量、标志等控制被调用模块决策的变量) 控制了被调用模块的内部逻辑。
外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
公共耦合:一组模块引用同一个公用数据区(也称全局数据区、公共数据环境)。
内容耦合:一模块直接访问另一模块的内部数据;一个模块不通过正常入口转到另一模块内部,好象B的一部分就属于A
6、内聚性有几种,它们具体表示什么?
巧合内聚(偶然内聚):模块内各部分间无联系,或者有联系也很松散。
逻辑内聚:把几种相关任务(逻辑上相似的任务)组合在一模块内,每次调用由传给模块的参数确定执行哪种任务,通常为单入口多任务模块。
时间内聚:模块内的各个功能的执行与时间有关,所有功能必须在同一时间段内
执行,这些功能只因时间因素关联在一起,放在一个模块内。
过程内聚:模块内各处理成分相关,且必须以特定次序执行。
通信内聚:如果一个模块内各功能部分使用相同的输入数据,或产生相同的输出数据,仅仅是由于它们使用了相同的数据才联系在一起则称之为通信内聚。
信息内聚:一个模块完成多个功能,各个功能部分都在同一数据结构上操作,每一项功能有一个唯一的入口点。
功能内聚:一个模块完成一个单一的功能,模块中各部分都是完成这一功能必不可少的组成部分,是不可分割的。
7、详细设计阶段算法有几种?
1.程序流程图程序流程图也称为程序框图,用图形符号描述程序的大致走向,内部控制流程的图形工具。
2. 盒图(N-S图) 用方框图代替传统的流程图描述三种基本控制结构的图形构件
3.问题分析图(PAD) PAD图是用二维树形结构图来表示程序的控制流的图形工具。
4.判定表:用于表示复杂的条件组合与应做动作之间对应关系的一种表格工具。
5.判定树判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。
6.过程设计语言(PDL)也称伪码,是一种用于描述功能模块算法的“混杂”语言。
8、面向数据设计方法、过程是什么?
1.研究、分析、审查、精化数据流图。
确保数据流图给出了目标系统的正确逻辑模型,每个处理都代表一个规模适中相对独立的子功能,否则还需进行分解。
2.确定DFD类型,并针对两种不同的类型分别进行分析处理,数据流图可分为两种类型:变换型数据流,事务性数据流。
3变换分析设计方法
4.实务分析设计方法
5完成映射后,用启发式设计规则精化软件结构。
9、如何用PAD图描述三种基本结构?
10,Jackson算法结构?
重复结构的数据,根据使用条件由一个数据元素出现零或多次构成。
11,Jackson 算法的方法步骤?
1、分析并确定输入数据和输出数据的逻辑结构,并用Jackson 图描绘这些数据结构。
2、找出输入数据结构和输出数据结构中有对应关系的数据单元。
3、根据三条规则,由Jackson 图导出相应的程序结构的Jackson 图。
4、列出并分配所有操作和条件,将它们分配到程序结构图的适当位置。
5、用伪码表示程序。
12,什么是测试用例?
测试用例(Test Case )目前没有经典的定义。
比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
13动态测试的方法有哪些?
黑盒测试:把测试对象看做一个黑盒子,完全不考虑程序的内部结构和处理过程,检查程序的功能是否符合它的功能说明。
白盒测试:把测试对象看做一个透明的盒子,按照程序内部的逻辑结构测试程序,检查程序中的主要执行通路是否能按预定要求正确工作。
13维护的工作阶段有哪些,分别表示哪些含义? 1.维护组织
虽然通常并不需要建立正式的维护组织,但是,即使对于一个小的软件开发团体而言,非正式地委托责任也是绝对必要的。
2.维护报告
应该用标准化的格式表达所有
软件维护要求。
软件维护人员通常给用户提供空白的维护要求表——有时称为软件问题报告表,这个表格由要求一项维护活动的用户填写。
3.维护的事件流
用户常常把一项要求看作是为了改正软件的错误(改正性维护),而开发人员可能把同一项要求看作是适
应性或完善性维护。
4.保存维护记录
保存维护记录遇到的第一个问胚就是,哪些数据是值得记录的? 5.评价维护活动
缺乏有效的数据就无法评价维护恬动。
如果已经开始保存维护记录了,则可以对维护工作傲一些定量度量。
制作说明:大三近末,大学之日亦无多。
思旧怜今,所学之技未多,近试赖于题库者甚重。
悲哉!然今时不如往日,题库渺如江海之独木,长空之孤云。
已有人手写题库,广为流传,余不甘寂寞,以多重材料为据,作此题库,供大家指点,并做留念,已调成适合打印版本,供大家赏玩
——王福来 2012-6-21。