什么是软件?什么叫软件工程?它的目标是什么?
软件:程序与文档。定义一:应用于计算机软件的定义,开发和维护的一整套方法、工具、文档、实践标准和工序。定义二:在软件设计、实现、检查、运行、维护各个过程中适用的立足于科学基础上的实用方法。软件工程目标:用较少的投资获得高质量的软件。
什么是软件危机?主要表现?
计算机软件系统包括
软件危机:在计算机软件的开发和维护过程中,所遇到的一系列严重问题,这一系列问题使软件产生了危机。表现在:⑴ 对软件开发成本和进度的估计常常很不准确。⑵ 用户易对“已完成的”软件系统产生不满。⑶ 软件质量不可靠。⑷ 软件常常是不可维护的。⑸ 软件通常没有适当的文档资料。⑹ 软件成本越来越高。⑺ 软件开发生产率提高速度慢,跟不上发展。
可行性研究的目的是什么?
用最小的代价在尽可能短的时间内确定问题是否能够解决。若值得解,则推荐一个较好的方案,并制定一个初步的计划;若无可行解,则建议停止开发工程(以免浪费时间、人力、和金钱)
数据流图的基本要点是什么? 
描绘“做什么”,而不考虑“怎样做”。
软件生成期分几个阶段?几阶段的主要工作是?
生命周期各阶段的基本任务:1、问题定义:要解决的问题是什么?2、可行性研究:问题是否有行得通的解决办法?3、需求分析:确定目标系统必须具备哪些功能。4、总体设计:应如何解决这个问题。5、详细设计:如何具体实现这个系统?6、编码和单元测试:写出正确的、容易理解的、容易维护的程序模块,并测试编写出的每一个模块。7、综合测试:通过各种类型的测试使软件达到预定的要求。8、软件维护:通过各种必要的维护活动使系统持久地满足用户的需要。
何为功能模块?设计模块?
功能模块:在分析阶段由系统分析员对该系统应完成的功能进行规定的模块。设计模块:在后面设计阶段对如何实现这些功能进行描述的模块。
HIPO  PSL  PAD  SADT 中文意思
SADT:结构分析设计方法。PSL:问题说明。PSA:问题说明分析器。HIPO:H图加IPO,即层次图加输入/处理/输出图。PAD:问题分析图的英文缩写。
何为模块化?评价好的模块的标准是?
模块化是指把整个系统按照一定的规则分隔成各个模块的过程。评价标准:主要从四方面来评价:模块大小、模块之间的联系程度、模块内的联系程度、模块的信息隐蔽程度。
模块间的调用方式有哪几种?
调用方式一般有二种:直接引用、通过CALL语句调用(实践即为过程调用或子程序调用)
系统设计基础有哪几种?
有两种:以控制为中心的设计、以数据为中心的设计。
结构程序设计的方法采用哪几种结构?画出结构图?
三个基本控制结构是:顺序、选择、重复。
程序设计工程有哪些步骤?
大致可分为六步:⑴了解具体使用的计算机的性能和环境。① 计算机性能② 操作系统③ 程序设计语言 ⑵ 充分理解系统设计的详细规格书。⑶ 考虑程序在机器上的管理方式。⑷ 了解编译程序的特点与规定。⑸ 编码。⑹ 检查
一个正确的软件能否说它是可靠的?为什么?
不能。因为正确性与可靠性是二个不同的概念。正确性是从系统开发者的立场出发,指开发出的软件满足该规格的要求;而可靠性是从用户立场出发,指系统完全满足用户的要求与各种性能指标。
大中小模块的软件开发分析顺序是什么?
大规模软件系统的开发分析顺序:⑴ 问题的初步认识:明确需求的标准,了解问题的结构。⑵ 分析准备:确立系统分析计划,确定分析员,对小组成员与用户方面参加分析的人员进行必要的教育与训练。⑶ 环境分析:明确系统的目的与限制条件。⑷ 物理分析:了解实际业务活动状况。⑸ 功能分析:决定系统的范围,明确该系统应具备的功能,对功能的
结构及各功能的相互关系进行分析。⑹ 信息分析:调查信息,明确信息的结构与各信息之间的关系。 ⑺ 动态分析:对系统各部分的动态进行调查与分析。以上⑴——⑺是完成对系统“理解”。⑻ 确立系统方案:把目标逻辑模型描述出来。⑼ 系统基本设计:描述系统的全体映象(基本结构、基本功能、数据结构等)。⑽ 系统需求规格的明确化:进一步明确业务需求、处理需求、人机界面需求、文件需求、硬件需求、系统运行需求。 ⑾ 评价系统方案以及制订计划:评价己确立的系统方案,确定开发方针与目标,制订开发计划。⑿ 作出文档:系统计划书;需求规格书;系统分析报告书。中小系统分析顺序:问题的明确、确立系统方案、系统基本设计、系统需求规格的明确化、系统方案评价、制订系统计划。
什么是测试?测试的目的是什么?
测试的恰当定义是:为了发现错误而执行程序。
测试的目的是:设法使软件发生故障,暴露软件错误。
软件测试由哪些步骤组成?每步骤主要工作?
1 模块测试(单体测试):这一测试发现的问题往往是编码和详细设计的错误。
2 子系统测试(组合测试):主要测试模块间的接口,也就是模块间的协调和通信。
3 系统测试:这一步发现的问题往往是软件设计中的错误,也可能发现需求说明中的错误。子系统测试和系统测试都含有检测和组装两重含义,故又叫集成测试或综合测试。
4 验收测试:使用实际数据进行测试,以验证系统能否满足用户需求。
5 平行运行:平行运行是一种试运行。
软件维护的内容有哪几类?各自的含义?
维护内容分为修改、适应新环境的变更和改良三类。(1)修正(改正性维护,也叫正确性维护)改正在开发阶段发生,在测试阶段又没有发现的错误。(2)适应新环境的变更(适应性维护)为适应软件外界环境改变,而对它们进行的修改。(3)更加完善的改良(完善性维护)为扩充功能或改善性能而进行的修改。
什么叫文档?包括哪些内容?
文档:各种规格书、说明书、用户手册等等的总称。
1.可行性研究要进行一次简化、压缩的需求分析。
2.开发软件所需要成本和产品的低质量之间有着尖锐的矛盾。这种现象称作软件危机
3.模块内聚性最高的是功能内聚
4.在SD方法中全面指导模块划分最重要的原则是模块的独立性
5.软件详细设计主要采用的方法是结构化程序设计
6.黑盒测试在设计测试用例时,主要需要研究需求规格说明与概要设计说明
7.若有一个计算机类型的程序,它的输入量只有一个x,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001,设计这组测试用例的方法是边界值分析法
8.下列属于维护阶段的文档是:软件问题报告
9.快速原型模型的主要特点之一是:及早提供工作软件
10.因计算机硬件和软件环境的变化二作出的修改软件的过程称为:适应性维护
11.软件按照设计要求在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为:可靠性
12.下列文档与维护人员有关的有:概要设计说明书
13.采用Gantt图表示软件项目进度安排,下列说法中正确的是:能够表示子任务之间的并行和串行关系
14.下列模型属成本估算方法的有:COCOMO模型
15.与设计测试用例无关的文档是:项目开发计划
16.程序的三种基本控制结构是:顺序、选择和重复
17.在软件开发过程中,为了充分发挥少数经验丰富,技术高超的程序员的作用,程序设计小组可采用主程序员组的组织形式。
18.所谓软件过程的里程碑通常指:基线
19.提高测试的有效性非常主要,成功测试是指:发现了至今为止尚未发现的错误。
20.软件配置管理的主要任务包括:标识软件配置中的对象、版本控制和变化控制、配置审计、状态报告
1.使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标准
2.自顶向下结合的渐增性测试法,在组合模块时有两种组策略:深度优先策略和宽度优先策略
3.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。
4.汇编语言是面向机器的可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
5.详细设计的任务是确立每一个模块的内部特性,即模块的算法、使用的数据
6.黑盒测试有称为功能测试,白盒测试也称为结构测试
7.度量软件规模的常用技术主要有代码行技术功能点技术
8.在单位测试中,使用驱动程序模拟被测单元的调用和数据传递动作,存根程序模拟被测模块的子程序。
9.Jackson程序设计方法是一种面向数据结构的设计方法。
10.在软件开发的各个阶段经过阶段评审后的文档和程序代码称为基线
1解决软件危机的途径:组织好各类人员,互相配合,共同完成;革新软件生产方式,使软件生产的手工方式自动化;
软件重复使用,语言标准化和结构化程序设计。既要有技术措施,又要有必要的组织管理措施。
2需求分析大致分为四个阶段:① 调查用户的现状和环境;
② 明确问题关键和系统要达之目标;③ 确立系统方案;
④ 讨论、评价方案,制定系统计划。
3需求分析方法:归纳法、推论法、比较、舍取法
4从哪些方面验证软件需求的正确性?一致性、完整性、现实性、有效性。
5系统分析的方法有哪几种:问题定义、可行性研究、需求分析
6总体设计是指问题的逻辑结构,对于硬件与操作系统独立性强;详细设计是指在特定的处理设备上的物理结构。
7数据库设计四个步骤:模式设计、子模式设计、完整性和安全性设计、优化
8模块评价标准主要从四方面来评价:模块的大小、模块之间的联系程度、模块内的联系程度、模块的信息隐蔽程度
1程序设计语言分类:从应用特点分,可分为三类:基础语言、
结构化语言、专用语言。从内在特点分,可分为四类:系统实现语言、静态高级语言、块结构高级语言、动态高级语言。
2软件测试准则:⑴ 所有测试都应该能追溯到用户需求;⑵ 应该远在测试开始之前就制定出测试计划;⑶ 把Pareto原理应用到软件测试中;⑷ 应该从“小规模”测试开始,并逐步进
行“大规模”测试;⑸ 穷举测试是不可能的;⑹ 为了达到最佳的测试效果,应该由独立的第三方从事测试工作。
3黑盒法有如下几种:等价分类法、边缘值分析法、因果图法、错误推测法。
4目前常用的一些覆盖标准有以下几种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。
5选择测试用例(分三步进行):① 为每个等价类编号;② 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的合理等价类,重复进行,直至覆盖所有的合理等价类;③ 设计一个新的测试用例,使其覆盖一个(仅仅是一个)尚未被覆盖的不合理等价类,重复进行,直至覆盖所有的不合理等价类。
6影响软件可维护性的三个主要因素:可理解性(理解能力)、可测试性(测试能力)可修改性(更新能力)、可移植性、可重用性