三、简答题
1、软件开发与写程序有何不同?
答:软件包含程序,程序是软件的一部分。软件是程序、数据及其相关文档的完整集合。程序只是为了实现软件的功能和性能要求而编写的指令序列。
2、软件的结构设计可以采用多种方法,目前主要使用的方法有哪几种?内容分别是什么?
3、软件质量保证的主要功能是什么?
4、什么是DFD?其意义如何?解释DFD四要素的内容。
答:(1)是数据流图英文缩写,是一种描述数据在系统中流动的图形工具;(2)是以图形方式表达数据处理系统中信息的传递和变换处理过程,它从数据加工的角度来描述一个企事业组织中的业务活动;(3)A圆框符号 转换数据流的处理过程,又称泡。B方框符号代表位于软件系统边界之外的信息生产着或消费者。 C箭头符号代表转换之间的有向流动的数据项或数据项集合。 D双杠符号代表为一个或多个转换提供数据源或数据存储服务的缓冲区、文件或数据库。
5、需求分析的难点主要表现在哪几个方面?
答:(1) 问题的复杂性。因用户需求所涉及的因素繁多引起,如运行环境和系统功能等等。
(2)交流障碍。需求分析涉及人员较多,如软件系统用户、问题领域专家、需求工程师和项目管理员等,这些人具备不同的背景知识,处于不同的角度,扮演不同角。造成了相互之间交流的困难。
(3)不完备性和不一致性。由于各种原因,用户对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾,需求分析要消除矛盾,形成完备及一致性的定义。
(4)需求易变性。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。
为了克服上述困难,人们主要围绕着需求分析的方法及自动化工具(如CASE技术)等方面进行研究。
6、白盒测试中的逻辑覆盖有哪几种常用的覆盖技术?试对它们的检错能力进行比较。
答: (1)语句覆盖
计算机软件开发培训(2) 判定覆盖 (比语句覆盖严格些)
(3) 条件覆盖(比单是判定覆盖要严格)
(4) 判定/条件测试 (条件覆盖也不一定满足判定覆盖,因为只符合条件覆盖的用例可能会不满足每个判定语句均有真值或假值出现。因此要两者兼顾)
(5) 条件组合覆盖 (是前两个覆盖的组合)
(6) 路径覆盖 (指设计足够的测试用例,覆盖被测程序中所有可能的路径)
条件组合发现错误的能力较强,凡满足其标准的测试用例,也必然满足前四种覆盖标准,在实际的逻辑测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例来达到路径覆盖的测试标准。
7、简述文档在软件工程中的作用。
答:(1)提高软件开发过程的能见度 (2)提高开发效率
(3)作为开发人员阶段工作成果和结束标志
(4)记录开发过程的有关信息便于使用与维护;
(5)提供软件运行、维护和培训有关资料; (6)便于用户了解软件功能、性能。
8、需求分析的难点主要表现在哪几个方面?
答:(1) 问题的复杂性。因用户需求所涉及的因素繁多引起,如运行环境和系统功能等等。
(2) 交流障碍。需求分析涉及人员较多,如软件系统用户、问题领域专家、需求工程师和项目管理员等,这些人具备不同的背景知识,处于不同的角度,扮演不同角。造成了相互之间交流的困难。
(3) 不完备性和不一致性。由于各种原因,用户对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾,需求分析要消除矛盾,形成完备及一致性的定义。
(4) 需求易变性。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。
为了克服上述困难,人们主要围绕着需求分析的方法及自动化工具(如CASE技术)等方面进行研究。
9、软件开发分哪几个阶段?哪几个步骤?
答:软件开发分软件计划、软件开发和运行维护三个阶段;制定计划、需求分析、软件设计、编码设计、软件测试、运行维护六个步骤。
10、软件计划的任务? 答:规划与调度
11、说明结构化程序设计的主要思想是什么?
答:(1)采用自顶向下逐步求精的设计方法;(2)使用3种基本控制结构、单入口、单出口来构造程序。
12、说明软件测试和程序调试的目的有何区别?
答:测试的目的是判断和发现软件是否有错误;调试的目的是定位软件错误并纠正错误。
13、需求分析与软件设计二个阶段任务的主要区别是什么?
答:需求分析定义软件的用户需求,即定义待开发软件能做什么;
软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。
14、什么是编码风格?为什么要强调编码风格?
答:编码风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维性。
15、软件测试包括哪些步骤?说明这些步骤的测试对象是什么?
答:(1)单元测试,测试对象为单元模块
(2)集成测试,测试对象为组装后的程序模块
(3)确认测试,测试对象为可运行的目标软件系统
(4)最后一步是系统测试,检查软件与系统中其他元素是否协调。
16、什么是α测试和β测试?
答:α测试是指软件开发公司组织内部人员模拟各类用户行为对即将面市的软件产品(称为α版本)进行测试,试图发现错误并修改。
β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见。
17、系统设计的内容是什么?
答:系统设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。
(1)系统分解。系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。
(2)确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个控制线或任务。
(3)处理器及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。
(4)数据存储管理。系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之间做折中考虑。
(5)全局资源的处理。必须确定全局资源,并且制定访问全局资源的策略。全局资源包括:物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。
如果资源是物理对象,则可以通过建立协议实现对并发系统的访问,以达到自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,则各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。
(6)选择软件控制机制。分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。
(7)人机交互接口设计。设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。
18、什么是软件危机?软件危机的表现是什么?其产生的原因是什么?答:软件发展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产成本显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发项目提出来了,但是,软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
软件危机表现在以下四个方面:
(1)经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经验和软件开发数据的积累,使得开发工作的计划很难制定。主观盲目制定计划,执行起来与实际情况有很大差距,使得开发经费一再突破。由于对工作量估计不足,对开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。
(2)开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确的表达。开发工作开始后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。
(3)开发的软件可维护性差。开发过程中没有同意的、公认的规范,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规范的文档,发现问题后进行杂乱无章的修改。程序结构不好,运行时发现错误也很难修改,导致维护性差。
(4)开发的软件可靠性差。由于在开发过程中,没有确保软件质量的体系和措施,在软件测试时,又没有严格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。
造成软件危机的原因是:
(1)软件的规模越来越大,结构越来越复杂。
(2)软件开发管理困难而复杂。
(3)软件开发费用不断增加。
(4)软件开发技术落后。
(5)生产方式落后。
(6)开发工具落后,生产率提高缓慢。
19、软件质量保证应做好哪几方面的工作?
答:软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:
(1)采用技术手段和工具。质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。
(2)组织正式技术评审。在软件开发的每一个阶段结束时,都要组织正式的技术评审。国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。
(3)加强软件测试。软件测试是质量保证的重要手段,因为测试可发现软件中大多数潜在错误。
(4)推行软件工程规范(标准)。用户可以自己制定软件工程规范(标准),但标准一旦确认就应贯彻执行。
(5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。
(6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质量情况。
1.分析软件危机产生的主要原因有哪些?
答:(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加
2.说明结构化程序设计的主要思想是什么?
答:(1)自顶向下、逐步求精的程序设计方法(2)使用3种基本控制结构、单入口、单出口来构造程序。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论