




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、弟一早什么是软件?软件和程序的区别是什么?答:软件是程序、数据以及开发、使用和维护程序需要的所有文档的完整集合。软件的定 义是:计算机程序、方法、规则、相关的文档资料以及在计算机上运行程序时所必须的数 据。软件不是程序,程序是软件的一部分。程序是为了解决某个特定问题而用程序设计语言 描述的适合计算机处理的语句序列。它是由软件开发人员设计和编码的。程序执行时一般 要输入一定的数据,也会输出运行的结果。没有相关文档,仅有程序是不能称之为软件产 品的。什么是软件生存周期?划分生存周期的主要原则是什么?答:(1)软件的生存周期是指某一软件项目被提出并着手实现开始,直到该软件报废或停止 使用为止所经历的
2、时间。(2)主要原则:各阶段的任务彼此间尽可能相对独立,同一个阶段各项任务的性质尽可 能相同,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发 过程的组织管理。1. 3什么是软件危机?它有哪些主要表现?为什么会产生软件危机?答:(1)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。(2) 主要表现:对软件开发成本和研制进度的估计常常很不精确,导致经费预算经 常突破,进度超时完成;由于开发人员常常对用户需求只有模糊的了解以及开发人 员和用户又未能及时交换意见,导致已完成的软件不能满足用户的需要;软件产品 质量差,可靠性得不到保证;软件产品可维护性差;软件成本
3、在计算机系统总成本 中所占的比例逐年上升,软件的发展跟不上硬件的发展;软件开发生产率提高的速 度远远跟不上计算机应用速度普及深入趋势,软件发展跟不上用户的要求。(3) 产生软件危机的原因:造成软件危机的原因与软件自身的特点有关,也与软件 开发人员在开发和维护时采用的生产方式、方法、技术有关。软件是计算机系统中 的逻辑部件,软件产品往往规模庞大,结构复杂。给软件的开发和维护带来客观的 困难;软件开发的管理困难。由于软件规模大、结构复杂、又具有无形性,导致管 理困难,进度控制困难,可靠性无法保证;软件开发费用不断增加,维护费用急剧 上升,直接威胁计算机应用的扩大;软件开发技术落后;生产方式落后;开
4、发工具 落后,生产效率提高缓慢。另外软件开发人员忽视需求分析的重要性,轻视软件维 护也是造成软件危机的原因。什么是软件工程?怎样利用软件工程消除软件危机?答:(1)软件工程是指导计算机软件开发和维护的一门学科(2)首先应该对计算机软件有一个正确的认识,彻底消除“软件就是程序”的错误观念;要使用好的开发技术和方法,并且要不断研究探索更好更有效的技术和方法;要有良好的组织、严密的管理,各类人员要相互配合,共同完成任务,充分认识软件开发不是某种个 体劳动的神秘技巧;应该开发和使用好的软件工具,从而有效提高软件生产率。采用“工程 化”的思想做指导来解决软件研究中面临的困难和混乱。何谓面向对象软件工程?
5、简述它和传统软件工程的区别与联系?答:(1)以面向对象程序设计为基础的软件工程。(2) 传统软件工程是以结构化程序设计为基础,而面向对象软件工程是以面向对象程序 设计为基础。与面向过程的软件工程的开发思想相比,面向对象开发方法不再是以功能划分 为导向,而是以对象作为整个问题分析的中心,围绕对象展开系统的分析与设计工作。在开 发过程方面,面向对象软件工程和传统软件工程一样也是把软件开发划分为分析、设计、编 码和测试等几个阶段,但各个阶段的具体工作不同,除了在编码阶段使用的语言不同外,面 向对象软件工程为待开发软件确定“类与对象” 一般在需求分析阶段进行,设计阶段则主要 完成对象内部的详细设计;而
6、在传统软件工程中,将软件设计划分为“总体设计”和“详细 设计”,分别完成软件的总体结构图的设计和各个模块内部算法的详细设计。即:传统软件 工程开发过程包括需求分析、总体设计、详细设计、面向过程的编码和测试;面向对象软件 工程开发过程包括需求分析与对象抽取、对象详细设计、面向对象的编码和测试。什么是软件生存周期模型?试比较本章介绍的四种模型的优缺点,说明每种模型的使用范围答:(1)软件生存周期模型即为软件开发模型,是描述软件开发过程中各种活动如何执行 的模型,是软件过程、活动、任务的结构框架。优点缺点适用范围瀑布模型能清晰直观地表达软 件开发全过程,明确 规定要完成的主要活 动和任务,用来作为
7、软件项目工作的基 础。只有当分析员能够做出 准确的需求分析时,才 能得到预期的止确结 果。它是一种理想的线 性开发模式,缺乏灵活 性,特别是无法解决软 件需求不明确或不准确 的问题。适合于需求很明 确的软件项目开 发的模型,对于 经常义化的项目 而百,瀑布模型 量无价值。快速原型模 型通过实践让用户了解 未来目标系统的概 貌,以便判断哪些功 能是符合需要的,哪 些方面需要改进。反 复改进,最终建立完 全符合用户需求的新 系统。克服瀑布模型 的缺点,减少由于软 件需求不明确带来的 开发风险。这种模型 适合预先不能确切定 义需求的软件系统的 开发。在实际中开发原型系统 使用的语百效率启时会 很低,
8、所选用的开发技 术和工具不一定符合主 流的发展;快速建立起 来的系统结构加上连续 的修改可能会导致产品 质量低下。适合于一些需求 可变、模糊不定 的软件系统的开 发增量模型有较大的灵活性。能 够在较短的时间内向 用户提交一些有用的 工作产品。开发出一 部分,向用户展示一 部分,可让用户及早 看到部分软件,及早 发现问题。整个系统 是由一个个构件集成 在一起的,当需求变 更时只变更部分部 件,而/、必影响整个 系统。各个构件是逐渐并入已 有的软件体系结构中 的,所以加入构件必须 不破坏已构造好的系统 部分,冒所有构件集成 /、到一起的风险。适合于软件要求 不明确,设计方 案后 aE风除的 软件项
9、目。螺旋模型加入了瀑布模型与增 量模型都忽略了的风 险分析,使用原型及 其他方法来尽量降低 风险该模型需要有相当丰富 的风险评估经验和这方 面的专门技术,这使该 模型的应用受到f限 制。将瀑布模型和快 速原型模型结合 起来,强调了其 他模型所忽视的 风险分析,特别 适合于大型复杂 的系统。弟早在软件开发早期阶段为什么要进行可行性研究?可行性研究的任务是什么?应该从哪几个方面研究目标系统的可行性? 答:(1)避免或者减轻项目开发后期可能出现的困境。(2)其主要任务是,首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项 目的约束和限制,必须分析几种可能解法的利弊,从而判定原定系统的目标和
10、规模是 否现实,系统完成后带来的效益是否大到值得投资开发这个系统的程度。(3)经济可行性、技术可行性、操作可行性、法律可行性。2.2 成本一效益分析可用哪些指标进行度量?答:成本方面包括开发成本和运行维护成本;效益方面包括经济效益和社会效益,经济效益 可以用货币的时间价值、投资回收期、纯收入来度量。2.3 有人认为,只懂技术的分析员不一定能圆满完成可行性研究的任务。你同意这种看法吗?为什么?答:同意。因为可行性研究的任务包括三个方面,除了技术可行性之外,还需要进行经济可 行性、操作可行性、社会和法律方面的可行性研究,而只懂技术的分析员对其他方面的研究 有可能不满足用户的要求,所以只懂技术的分析
11、员不一定能圆满完成可行性研究的任务。2.4 在【例】中,把投资改为6000元,每年节约金额改为2000元,年利率为6%,试计算投资回收期和纯收入。解:如卜表年将来值(元)(1+n*I )现在值(元)累计的现在值(元)1234520002000200020002000投资回收期为/ +3=(年)纯收入为=(元)2.5 为方便旅客,某航空公司拟开发一个飞机票预定系统。旅游公司把预定机票的旅客信 息(姓名、年龄、工作单位、身份证号码、旅游时间、旅游目的地等)输入进该系 统,系统为旅客安排航班,打印出取票通知和账单,旅客在飞机起飞前的3天之内凭取票通知和账单交款取机票,系统校对无误即打印出飞机票给旅客
12、。请写出开发此系统的问题定义,并通过可行性研究分析此系统的可行性。答:问题定义:飞机票预定系统主要实现以下功能:查询功能:把旅游时间、旅游目的地等输入进该系统,系统显示符合要求的航班。预定机票:把预定机票的旅客信息(姓名、年龄、工作单位、身份证号码、旅游时间、 旅游目的地等)输入进该系统,系统为旅客安排航班,打印出取票通知和账 单,并更新记录。校对并打印机票:旅客在飞机起飞前的 3天之内凭取票通知和账单交款取机票,系统 校对无误即打印出飞机票给旅客。可行性研究应从经济可行性、技术可行性、操作和社会、法律的角度阐述其可行性,这部分 省略试为习题 写可行性研究报告的主要内容。(本题略)ATy 1
13、弟二早为什么要进行需求分析?需求分析要经过哪些步骤?答:(1)可行性研究阶段粗略了解了用户的需求,甚至还提出了一些可行的方案,但是可行 性研究的基本目的是最小的代价在尽可能短的时间内确定问题是否存在可行的解法,因此许 多细节都被忽略了,可行性研究并不能代替需求分析,它实际上并没有准确地回答“系统必须做什么”这个关键问题。(2)步骤:1 .需求获取:调查研究。从分析当前系统包含的数据开始,分析当前信息处理的方法与存储的不足,用户希望改进的主要问题及其迫切性等。2 .需求提炼:分析建模。需求提炼的主要任务是建立分析模型。把来自用户的信息加以分析,通过抽象建立起目标系统的分析模型。3 .需求描述:编
14、写SRS。为了使需求描述具有统一的风格,可以采用已有的且可满足 项目需要的模板,也可以根据项目特点和软件开发小组的特点,对标准进行适当的改动,形 成自己的SRS模板。4 . 需求验证。由分析员和用户一起对需求分析结果进行严格的审查、验证。确保需求说明可作为软件设计和最终系统验收的依据。需求分析阶段的基本任务是什么?怎样理解分析阶段的任务是决定“做什么”,而不是怎样做”? 答:(1) 1.确定对系统的综合需求。分析员和用户双方确定对软件系统的综合要求,具体 有功能需求、性能需求、环境需求、接口要求、用户界面需求,另外还有可靠性、安全 性、保密性、约束、可移植性和可维护性等方面的需求,这些需求通常
15、可以通过双方交流、 调查研究来获取,并达到共同的理解。2 .分析系统的数据需求。因为绝大多数软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌。3 .建立软件的逻辑模型。4 .编写软件需求规格说明书。 目的是使用户和开发者能对未来软件有共同的理 解,明确定义未来软件的需求、系统的构成及有关的接口。需求说明相当于用户和开发者之 间的一份技术合同,是测试验收阶段对软件进行确认和验收的基准,是软件开发的基础。5 .需求分析评审(2)需求分析实际上是调查、评价以至肯定用户对软件需求的过程,其目的在于精化软件 的作用范围,也是分析和确认软件系统构成的过程,
16、以确定未来系统的主要成分及它 们之间的接口细节。因此需求分析实际上是一个对用户意图不断进行揭示和判断的过 程,它并不考虑系统的具体实现,而是完整地、严密地描述应当“做什么”的一种过 程。什么是结构化分析方法?该方法使用什么描述工具?答:(1)结构化分析方法是一种从问题空间到某种表示的映射方法,软件功能由数据流图表 示,是结构化方法中重要的,被普遍采用的方法,它由数据流图和数据字典构成系统的逻辑 模型。(2)数据流图、数据字典、结构化语言、判定树和判定表。什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?答:(1)数据流图是SA方法中用于表示系统逻辑模型的一种工具。(2)它描述系统由哪
17、几部分组成,各部分之间的联系等, 以直观的图形清晰地描述了系统数据的流动和处理过程。(3) 箭头,表小数据流;O 圆或椭圆,表示变换数据的处理;口 方框,表示数据的三原点或终点;=双杠或单杠,表示数据存储(文件)。除上述4种基本符号之外,有时也使用几种附加符号,星号(*)表示数据之间的关 系(同时存在);加号(+)表示“或"关系,号表示只能从中选一个(互斥的关系)。画数据流图的步骤是什么?应该注意什么事项?答:(1)第一步,先找外部实体(可以是人、物或其他软件系统),找到了外部实体,则系统与外部世界的界面就得以确定,系统的源点和终点也就找到了;第二步,找出外部实体的输入和输出数据流;
18、第三步,在图的边上画出系统的外部实体;第四步,从外部实体的输出流(源点)出发,按照系统的逻辑需要,逐步画出一系列变换数据的加工,直到找到外部实体处所需的输入流(终点) ,形成数据流的封闭;第五步,按照上述原则进行检查和修改。最后按照上述步骤画出所有子图。(2) 画数据流图时,只考虑数据流的静态关系,不考虑其动态关系(如启动、停止等 与时间有关的问题),也不考虑出错处理问题。 画数据流图时,只考虑常规状态,不考虑异常状态,这两点一般留在设计阶段解决。 画数据流图不是画程序流程图,二者有本质的区别。数据流图只描述“做什么”,不描述“怎么做”和做的顺序,而程序流程图表示对数据进行加工的控制和细节。不
19、能期望数据流图一次画成,而是要经过各项反复才能完成。 描绘复杂系统的数据流图通常很大,对于画在几张纸上的图很难阅读和理解。一个比较 好的方法是分层的描绘这个系统。在分层细画时,必须保持信息的连续性,父图和子图 要平衡,每次只细画一个加工。什么是数据字典?其作用是什么?它有哪些条目? 答:(1)数据字典是对数据流图中所包含元素的定义集合。(2) 数据字典的作用正是在软件分析和设计的过程中,给人提供数据描述,即对数据存 储(文件)和加工(处理)等名字进行定义。(3) 数据流、数据流分量(数据基本项)、数据存储(文件)和加工(处理)。描述加工逻辑有几种工具?各是什么?写出其优缺点。答:(1)描述加工
20、逻辑一般用结构化语言、判定表和判定树优点缺点结构化语百既有结构化程序的清晰易读的 优点,又有自然语言简单易懂 的优点,又避免了自然语百/、 精确可能产生二义性的缺点。只有顺序、循环、条件三种 控制结构。判定表能清晰地表示复杂的条件组合 与应做动作之间的关系。不能描述循环的处理特征。判定树它比判定表更观,且易于理解 和使用。(同判定表)某高校计算机教材购销系统有以下功能。学生购买书时,要先填写购书单,系统根据各班学生用表及售书登记表审查有效性,如果有效,系统根据教材库存量 表进一步判断书库是否有书,如果有书,系统把领书单返回给学生,学生凭书单到书库领书,对短缺的教材,系统用缺书单的形式通知书库,
21、新书购进书库后,也由书库将进书通知返回给系统。请采用SA方法画出该系统的分层数据流图,并建立相应的数据字典。a)b)据字典(1)数据流条目:购书单=学院+专业+班级+购书种类+购书数量+价格进书通知=书名+进书数量+书类型+作者名称+出版社+价格领书单:书名+作者名称+出版社跋量+学院+专业+班级+价格缺书单=书名+作 者名称+出版社+剩余数量+再购进数量(2)数据存储条目:文件名:库存清单组成:书名+书籍编号+价格+作者名称+出版社+类型+现有数量组成方式:索引文件,以书籍编号为关键文件名:售书登记表组成:书名+书籍编号+售出数量+价格组成方式:索引文件,以书籍编号为关键文件名:各班学生用表
22、组成:班级+人数+领书量组成方式:索引文件,以班级为关键(3)数据项(4)加工条目加工名:图书管理系统编号:无输入:购书单、进书通知、库存清单、售书登记表、各班学生用表输出:领书单、缺书单加工名:录入存储处理编号:1输入:进书通知加工逻辑:IF没有所输入的书籍记录THEN建立新的书籍记录,存入该书籍的基本记录ELSE输入书籍记录ENDIF加工名:查询处理编号:2输入:购书单输出:领书单、缺书单加工逻辑:根据购书单、售书登记表、各班学生用表及库存清单IF审查售书登记表及各班学生用表有效有库存THEN IFTHEN输出领书单ELSE输出缺书单加工名:审查、分类编号:输入:进书通知输出:书籍信息加工
23、逻辑:根据进书通知将书审查、分类加工名:审查有效性编号:输入:购书单输出:有效 加工逻辑:根据购书单、售书登记表、各班学生用表IF审查售书登记表及各班学生用表有效THEN输出有效加工名:判断书库是否有书编号:输入:有效输出:领书单、缺书单加工逻辑:IF有库存THEN输出领书单ELSE输出缺书单ENDIF某计算机公司为本科以上学历的人重新分配工作的政策是:年龄在25岁以下者,学历是本科男性要求报考研究生,女性则担任行政工作;年龄在 25岁至45岁之间者,学历本科,不分男女,任中层领导职务,学历是硕士,不分男女,任课题组 组长;年龄在45岁以上者,学历本科,男性任研究人员,女性则担任资料员,学历
24、是硕士,不分男女,任课题组组长。请用结构化语言、判定表和判定树描述上述问题的加工逻辑答:结构化语言:if 年龄 <25 thenif 性别=男thenif 性另1J =女thenif 学历=本科then报考研究生endif担任行政工作endifendif endif if25<=# 龄=<45 thenif学历=本科then担任中层领导职务endifif学历=®± then任课题组组长endif endif if 45< 年龄then if学历=本科thenif性别=男then任研究人员endifif 性别=女then任资料员endif endifi
25、f学历=®± then任课题组组长endifendif判定表:年龄<2525<=# 龄 <=4545<性别男女男/女男/女男女男/女学历本科本科硕士本科硕士报考研究生V担任行政工作V任中层领导职务任课题组组长VV担任研究人员V担任资料员V判定树男性:要求报考研究生4 二龄 <25女性:担任行E_本科:任重新分配工作25V年龄=硕士:男性:担任研究本科攵工作中层领导职务:<45本科任课题组组长人员45年龄女性:担任资料员硕士:任课题组组长数据库内容的需求分析工作主要从哪几方面进行?答:(1)信息需求 信息需求指用户需要从数据库中获得的信息的
26、内容和性质,信息需求是 软件数据需求中最基本的需求,主要是确定系统需要存储和使用哪些数据,用户需要从数据 库中获得信息的内容和性质。(2)处理需求处理需求是用户要求软件系统完成的功能,以及对系统功能的处理时间、方式等方面的要求,如是要求批处理还是联机处理等。(3)使用需求使用需求包括:使用数据库时在安全性、完整性和一致性等方面的限制;查询方式、输入 / 输出格式和多用户等方面的要求;响应速度、故障恢复等性能要求。建立全局E-R模型时,各分E-R模型之间可能出现的冲突有哪些?应如何处理?答:(1)各局部E-R模型之间的冲突主要有3类:属性冲突、命名冲突和结构冲突。(2)属性冲突:突理论上好解决,
27、但实际上需要各部门讨论协商,解决起来也并非易事。命名冲突:处理方法与属性冲突的解决方法一样,也是通过讨论、协商等手段解决。结构冲突:使集成后的该实体取各局部 E-R模型中属性的并集,再适当调整属性的次 序;实体间的联系在各局部 E-R模型中具有不同的类型,解决办法是根据应用的语义对实 体之间联系的类型进行综合或调整。第四章总体设计阶段的主要目的和任务是什么?答:总体设计阶段的基本目标就是回答“概括地说,系统应该如何实现?”这个问题,因此 总体设计又称为概要设计或初步设计。通过这个阶段的工作,开发人员将划分出组成系统的物理元素,如程序、文件、数据库等。但是这些物理元素还处于黑盒子的形式,具体的内
28、 部细节在详细设计阶段考虑。总体设计的另一项任务是设计软件的总体结构,即确定系统中 的每个程序是由哪些模块组成的,每个模块的功能及模块和模块之间的接口、调用关系等, 但所有这些都不要求涉及模块内部过程的细节。为每种类型的模块耦合和模块内聚各举一个具体例子。答:无直接耦合模块B和C模块D和E模块B和D模块B和E数据耦合函数调用时的值传递模块A:完成两个数的输入 模块B:完成两个数的比较,求出最大并返回比较输入的两个数的大小模块B标记耦合模块A模块bUmlC数据结构数据结构控制耦合模块A控制信息公共环境耦合公共模块模块A :学生信息查询模块B:选课查询模块C:成绩查询 数据结构:学号+院系+课程内
29、容耦合/奠块务模块B (公共数a)A|据)模块A b)模块Bh ENTRYO one:偶然内聚move a to b ; read disk file ; move c to d ;逻辑内聚I模块I a参数信息模块B时间内聚模块完成各种初始化工作,同时打开若干个文件,同时关闭若干 个文件等。通信内聚 模/A |模块A :学生信息查询数据结构模块B :选课一J 一 查询及成绩查询数据结构:学号+院系+课程四B顺序内聚、功能内聚元二次方程的根模块的耦合性和软件的可移植性有什么关系?说明理由。答:模块的耦合性越低软件的可移植性越高。模块的耦合性是指模块之间相互独立的度量,耦合强弱取决于借口的复杂程
30、度,在软件的设计中尽可能设计弱的耦合的系统,这样程序容易测试、修改和维 护,也便于移植到其他计算机上。如何区分数据流图的类型?试述“变换型数据流图”和“事务型数据流图”的 设计步骤答:(1)按照数据流图的性质可以将数据流图分成两种基本类型:变换型和事务 型。变换型数据流图基本呈线性形状的结构,由输入、变换、输出 3部分组成; 当一个数据项到达处理某个模块时,将有多个动作之一,这就是事务型的。这种 类型的数据流图常呈辐射状,即数据沿着输入通路到达下一个处理T,这个处理根据输入数据的类型分离成一束平行的数据流,然后选择执行若干个动作序列中 的某一个来执行。(2)变换型数据流图的设计步骤:确定逻辑输
31、入和逻辑输出的边界,找出变换中心;设计软件结构的顶层和第一层;设计中下层模块;对初始结构图优化。 事务型数据流图的设计步骤:在数据流图上确定事务中心,输入流和活动路径; 设计事务结构的顶层和第一层;设计事务结构的中下层;对初始的事务结构优化 工作同变换结构。画出习题3中的第题的软件结构图输出缺 书 单计算机教材购销系统领书单购书审查有效性读取进书通知试将图的变换型数据流图转换成软件结构图图变换型数据流图工资管理系统中的一个子系统有如下功能(1)由基本工资计算应扣除(如水电气费等)的部分;(2)根据职工的出勤情况计算奖金部分;(3)根据输入的扣除额及奖金计算工资总额部分;(4)由工资总额计算应扣
32、除税金部分;(5)根据计算总额部分和计算税金部分传递来的有关职工工资详细 信息生成工资表。试根据需求画出该问题的数据流图,并将其转换为软件结构图。数据流图软件结构图比较软件结构图和层次图的异同。答:软件结构图是软件系统的模块层次结构,结构图的主要内容有:模块、模块 的调用关系、辅助符号。两个模块之间用单向箭头或直线连接起来表示它们的调 用关系,用直线而不用箭头表示模块之间的调用关系。在调用线两旁通常还有带 注释的箭头表示模块调用过程中来回传递的信息,箭头指明传送的方向,以同一 名字命名的模块在结构图中仅允许出现一次,一般总是位于上方的模块调用位于 下方的模块,调用关系只能从上到下,调用次序可以
33、依据数据传递关系来确定, 一股由左向右。层次图是软件系统的模块层次结构,层次图中的每一个矩形框代表一个模 型,矩形框之间的关系表示调用关系,层次方框图中方框代表一个数据,方框之 间的连线表示组成关系。弟五早软件详细设计的基本任务是什么?有哪几种描述方法?答:(1)软件详细设计的基本任务就是为软件结构图中每一个模块确定采用的算 法和块内数据结构,用某种选定的详细设计工具更清晰地描述,从而在编码阶段 可以把这些描述直接翻译成某种程序设计语言书写的源程序。(2)有图形、表格和语言三种描述方法。结构化程序设计的基本要点是什么?答:结构化程序设计使用三种基本控制结构,有顺序、条件和重复;结构化程序 设计
34、采用自顶向下,逐步求精的设计方法和单入口单出口的控制结构。逐步求 精,在总体设计阶段用逐步求精法可以把一个复杂问题解法分解和细划成由许多 模块组成的层次结构和软件系统。使用流程图、PAD图、N-S图和PDL语言描述下列程序的算法:(1)在数据A (1)A (10)式中求最小数和次小数;答:流程图PAD图N-S图PDL语言proceduRE块名(形式参数);PUT (“请输入十个数字”);FOR i=1 to 10Get(A(i)ENDFOR; i=1;WHILE i<=10j=i+1;Min=A(i);WHILEj<=10IF Min>A(i)THEN B=Min;Min=A
35、(i);A(i)=B;ENDIF; j+;ENDWHILE;A(i)=Min; i+;ENDWHILE;PUT(“输出最小数:”);PUT(A (1);PUT(“输出次小数:”);PUT(A (2);(2)输入3个正整数作为边长,判断由这 3条边构成的三角形是直角、等腰或一般三角形。答:流程图PAD图N-S图PDL语言PROCEDURE块名(形式参数); PUT (“请输入三个正整数”); FOR i=1 to 3Get(A(i) ENDFOR;i=1; WHILEi<=3j=i+1;Min=A(i);WHILE j<=3IF Min>A(i)THEN B=Min;Min=A
36、(i);A(i)=B;ENDIF; j+;ENDWHILE;A(i)=Min; i+;ENDWHILE;IF A1A2+A2A2=A3A2THEN IF A1=A2THEN PUT("等腰直角三角形”) ELSE PUT("直角三角形”) ENDIF;ELSE IF A1=A2THEN PUT("等腰三角形”)ELSE PUT("一般三角形”)ENDIF;ENDIF;任选一种排序(从大到小)算法,分别用流程图、NS图和PDL语言描述其详细过程。见题第一问画出下列程序的PAD图repeat ifx >0 thenx1 else x2 endif ;
37、S1; ify >0 theny1 ifz >0 thenz1 elsez2 endif ; S2;elsey2 ;endif ; untill ;程序流程图、NS图、PAD图和PDL语言的特点各是什么?你认为这 4种详细设计工具哪一种最好?为什么?答:程序流程图:优点:易学、表达算法直观。缺点:程序流程图本质上不是逐 步求精的好工具,程序流程图中用箭头代表控制流,因此程序员 不受任何约束,可以完全不顾结构程序设计的精神,随意转移控 制,容易造成非结构化的程序结构;程序流程图不易表示数据结 构和层次结构。NS图:优点:功能域表达明确,功能域从盒式图上可以明显地看出来;很容 易确定局
38、部和全局数据的作用域;不可能随意转移控制;很容易 表达模块的层次结构,并列或嵌套关系;使得软件设计人员遵守 结构化程序设计的规定,自然地养成良好的程序设计风格。缺点: 主要特点就是只能描述结构化程序所允许的标准结构PAD图:优点:用PAD图设计出来的程序必然是结构化程序; PAD图所描绘 的程序结构十分清晰,图中最左面的竖线就是程序的主线,即第一 层结构。随着程序的层次增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数;PAD图的符号支持自顶向下,逐步求精的方法,左边层次中的内容可以抽象,然后利用def从左向右逐步细化;用PAD图表示的程序
39、逻辑易读、易懂、易记,使用方便;既可表示程序逻辑,也可用于描绘数据结构;可自动生成程序。利用 软件工具自动完成,省去人工编码工作,有利于提高软件的 可靠性和软件生产率。PDL语言:特点:所有关键字都有固定语法,以便提供结构化的控制结构、数 据说明和模块化的特征;为了使结构清晰和可读性好,通常在所有 可能嵌套使用的控制结构的头和尾部都有关键字;描述处理过程的 说明性语言没有严格的语法限制;具有数据说明机制,既包括简单 的数据结构(例如,简单变量和数组)又包括复杂的数据结构(例如,链表或层次的数据结构);具有模块定义和调用机制,因此,开 发人员应根据系统编程所用的语种,说明过程设计语言表示的有关程
40、序结构。在软件项目开发时,选择程序设计语言通常考虑哪些因素?答:为了使程序容易测试和维护以减少软件开发总成本,选用的高级语言应该有 比较理想的模块化机制,以及可读性好的控制结构和数据结构;为了便于调试和 提高软件的可靠性,语言的特点应该使编译程序能够尽可能地发现程序中的错 误;为了降低软件开发和维护的成本,选用的语言应该有良好的独立编译机制。 这些要求是选择程序设计语言的理想标准,但在实际选用程序设计语言时,不能 仅仅考虑理论上的标准,还必须同时考虑实际应用方面的各种因素和限制,如不 同应用问题的特性、用户要求、应用环境等。主要的实用标准有下述几条:待开 发软件的应用领域、用户的要求、软件的运
41、行环境、软件开发人员的知识、软件 的可移植性要求举例说明各种程序设计语言的特点及适用范围。答:FORTRA昭言,它不仅面向科学计算,数据处理能力也极强。适用于科学工 程计算Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰 富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算 法和科学计算,操作系统的编写C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的 操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率 高。可用于许多领域,特别是在操作系统等方面有较大优势。Coble语言,它具有极强的数据定义能力,程序说明与硬件环
42、境说明分开、数 据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据处理。SQL:结构化查询语言,用于对数据库进行存取管理。汇编语言和Ada语言,主要用于实时处理和编写系统软件。Prolog > Lisp语言。Lisp是一种函数型语言,特别适用于组合问题中符号运 算和表处理,用于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理 的句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。C+卡Java语言,是面向对象的设计语言,用于面向对象的方开发软件。什么是程序设计风格?为了具有良好的程序设计
43、风格,应该注意哪些方面的问题?答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路 等。要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输 入输出和追求效率几个方面加以注意。以下3个表达式表示的是同一个内容:(A) -6*A/3*B ;(b) - (6*A/3)*B;(c) +(6*A)/(-3)*x)(1)你认为哪一种可读性最好?哪一种最差?(2)如果让你列出几条关于书写表达式的指导原则,你对表达式中运算符的数量和圆括号的层数将做何规定?答:(1) b的可读性最好,c的可读性最 差(2)表达式中运算符的数量应该以满足表达式为宜,不应加入过多无谓的运 算符:括号
44、的数量不应过多,适合恰当的括号使逻辑表达式的运算次序清晰直 观,过多或过少的括号都会降低可读性。第4代语言有哪些主要特征?为什么受到广大用户欢迎?答:主要特征是:友好的用户界面、非过程性,程序员只需告诉计算机“做什 么”,而不必描述“怎样做”。由于易学易用而受到广大用户欢迎。第七章软件测试的基本任务是什么?简述测试的目标和基本原则。答:(1)测试阶段的基本任务应该是根据软件开发各阶段的文档资料和程序内部结 构,精心设计一组“高产”的测试用例,利用这些用例执行程序,找出软件 中潜在的各种错误缺陷。(2)目标:暴露程序中的错误。基本原则:1 .测试用例既要有输入数据,又要有对应的输出结果。这样便于
45、对照检查, 做到“有的放矢”。2 .测试用例不仅要选用合理的输入数据,还应选择不合理的输入数据。这样 能更多地发现错误,提高程序的可靠性,还可以测试出程序的排错能力。3 .除了检查程序是否做了它应该做的工作,还应该检查程序是否做了它不应 该做的工作。例如,程序正确打印出用户所需信息的同时还打印出用户不需要的 多余信息,即程序做了不应该做的工作仍然是一个大错。4 .应该远在测试开始之前就制定测试计划。实际上,一旦完成了需求分析模 型就可以开始制定测试计划。在建立了设计模型之后,就可以立即开始设计详细 的测试方案。因此在编码之前就可以对所有测试工作进行计划和设计,并严格执 行,排除随意性。5 .测
46、试计划、测试用例、测试报告必须作为文档长期保存。因为程序修改以 后有时可能会引进新的错误,需要进行回归测试。同时可以为以后的维护提供方 便,对新人或今后的工作都有指导意义。to原理说明,测试发现的错误中80脸艮可能是由程序中20%的模块造成 的,即错误出现的“群集性”现象。可以把 PAre to 原理应用到软件测试中。但 关键问题是如何找出这些可疑的有错模块并进行彻底测试。7 .为了达到最佳的测试效果,程序员应该避免测试自己的程序。测试是一种 “挑剔性”的行为,测试自己的程序存在心理障碍。另外,对需求规格说明的理 解而引入的错误则更不容易发现。因此,应该由独立的第三方从事测试工作,会 更客观、
47、更有效。简述静态测试与动态测试的含义。它们之间有什么不同点和相同点。答:静态测试就是静态分析,是指被测程序不在机器上运行,对模块的源代码进 行研读,查找错误或收集一些度量数据,采用人工检测和计算机辅助静态分析手段对程序进行检测,只进行特性分析。动态测试是指通过运行程序发现错误。一般所讲的测试大多是指动态测试。相同点:都可以进行软件测试。不同点:静态测试的执行可以在程序编码编译前,动态测试只能在编译后执 行;静态测试用于预防,动态测试用于矫正。白盒测试用例和黑盒测试用例设计的基本方法。答:白盒测试用例:逻辑覆盖、循环覆盖、基本路径测试黑盒测试用例:等价类划分法、边界值分析法、错误推测法、因果图法
48、测试用例设计、组织和测试过程组织之间的关系和实践过程。简述测试和调试的含义,它们之间有什么区别?答:测试的含义:软件测试是为了发现错误而执行程序的过程;一个好的测试用 例能够发现至今尚未发现的错误;一个成功的测试是发现了至今尚未发现的错误 的测试。调试的含义:为了解决存在的错误,即对错误定位、分析并找出原因改正错 误。软件测试要经过哪些步骤?这些测试与软件开发各阶段之间有什么关系?答:单元测试、集成测试、确认测试、系统测试。单元测试以详细设计的说明为指导,测试模块内的重要控制路径,力求在模 块范围内发现错误;进行集成测试来发现与模块接口有关的错误,最终组装成一 个符合设计要求的软件系统;确认测
49、试又称有效性测试,它和验收测试比较接 近,合理的期望则是指软件需求规格说明书中所确定的指标。因此,需求规格说 明书是确认测试的基础;系统测试保证个组成部分不仅单独的正常运行,而且在 系统各部分统一协调下也能正常运行。什么是单元测试,什么是集成测试,什么是确认测试?答:单元测试是对软件基本组成单元进行的测试。检查每个独立模块是否正确地 实现了规定的功能。单元测试所发现的往往是编码和详细设计中的错误。各模块经过单元测试后,接下来需要进行集成测试。集成测试是将已分别通过测试的单元按设计要求组合起来再进行测试,以 检查这些单元之间的接口是否存在问题,同时检查与设计相关的软件体系结构 的有关问题。在这个
50、测试阶段发现的往往是软件设计中的错误,也可能发现需 求中的错误。确认测试是检查所开发的软件是否满足需求规格说明书中所确定的功能和性 能的需求。在这个测试阶段发现的是需求分析阶段的错误,如对用户需求的误 解,有冲突的用户需求等。完成确认测试后,得到的应该是用户确认的合格的软 件产品。一个C语言程序,读入3个正整数作为三角形的边长,要求程序打印如下信息:该三角形是等边的、等腰的或一般三角形。试设计一组测试用例,用来测试此程序。输入等价类测试用例说明测试数据期望结果输入三个正整数且两个整数相等2,3,2等腰二角形两边之和大于第三 边三个整数相等3,3,3等边三角形三个整数皆不相等2,3,4一
51、1;三角形输入两个整 数、一个整数、零 个整数两个整数2,3输入无效一个整数2输入无效零个整数输入无效输入二个数中启 负数、0或小数输入中启负数-2,1,3显示出错输入中启02,0,3显示出错输入中启小数、2、显示出错输入三个整数两个 整数之和小于等于 第三个整数两个整数之和等于第三 个整数2,2,4显示出错两个整数之和小于第三 个整数1,2,4显示出错某高校拟对参加计算机应用水平考试成绩好的学生进行奖励,成绩合格者奖励50元,成绩在80分以上者奖励100元,成绩在90分以上者奖励200元,并公布奖 励成绩及所获奖金,编写程序流程图,设计测试用例,写出测试路径及所满足的 覆盖条件。测试用例:1
52、 .成绩不合格者,覆盖路径:abcegik2 .成绩合格且80分以下者,覆盖路径:abceghjk3 .成绩80分以上90分以下者,覆盖路径:abcefjk4 .成绩90分以上者,覆盖路径:abcdjk设某个程序用于求一元二次方程 Ax+bx+c=0的根,A、b和c为整数。试采 用等价类划分法和边界值分析法来设计测试用例。输入等价类测试用例说明测试数据期望结果aw02 ,一b -4ac>0a=3,b=5,c=1后两个不同的根2 ,一b -4ac=0a=1,b=2,c=1有一个根2 ,一b -4ac<0a=3,b=2,c=1无实数根a=0b=0 且 cw0a=0,b=0,c=3显示出
53、错b=0 且 c=0a=0,b=0,c=0根为任意值bw0a=0,b=-6,c=3有一个根说:“程序测试只能证明错误的存在,不能证明错误不存在。”Myers 说:“测试是为了证明程序有错,而不是证明程序无错。”如何理解这两句话所蕴涵的 意义。答:软件测试是为了发现错误而执行程序的过程,主要体现了测试的特点:挑衅性 和不彻底性。一个折半查找程序可搜索按字母顺序排列的名字列表,如果查找的名字在列表中则返回真,否则返回假。为了对它进行功能测试,应该设计哪些测试用例?输入等价类测试用例说明测试数据期望结果字符皆为字母名子在列表中May返回真名字/、在列表中Sky返回假字符中有数字或其他 字符一个数字M
54、ay3显示出错多个数字May143显示出错其他字符May-*.显示出错第八章为什么软件需要维护?维护有哪几种类型?简述它们的维护过程答:(1)因为软件系统投入使用后还经常会发生一些变化,如对隐含错误的修改,新功能的加入,环境变化造成的程序变动等。(2) (3)要求进行软件维护的原因多种多样,概括起来有以下4种类型。改正在特定使用条件下暴露出来的,测试阶段未能发现的,潜在软件错误 和设计缺陷。因在软件使用过程中数据环境发生变化(如事务处理代码改变),或处理环境发生变化(如安装了新硬件或更换了操作系统),需要根据实际情况,修改软件 以适应这些变化。用户和数据处理人员在使用软件过程中,经常会提出改进现有功能、增加 新的功能或者改善系统总体性能等要求,为满足此类要求而对软件进行的修改。为预防软件系统的失效而对软件系统所实施的修改。什么是软件可维护性?可维护性度量的特性是什么?提高可维护性的方法有哪答:(1)软件可维护性是指纠正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运用原始物理问题提升高中生模型建构能力的实践研究
- 基于能源利用效率的低碳园区综合能源系统优化研究
- 2025至2030中国智慧停车市场运行形势分析及项目投资可行性报告
- 黄石市X高中高一语文课前口语活动教学研究
- 医疗沟通技巧培训心得体会
- 桐乡市铭明纺织科技有限公司年产1200万米高档纺织面料新建项目环评报告
- 新能源产品销售业务流程探讨
- 企业乒乓球健身活动计划
- 招生代理合同集锦(18篇)
- 二年级玩具评比活动的作文范文
- 商场运营部的培训
- 四年级 人教版 数学《小数的意义》课件
- 《糖尿病与肥胖》课件
- 医疗纠纷防范与医患沟通
- 服装设计与工艺基础知识单选题100道及答案
- 钢结构施工管理培训课件
- 护理MDT多学科联合查房
- 易制毒化学品采购员岗位职责
- 《浅析我国绿色金融体系的构建》5600字(论文)
- 儿科病例分析课件
- 2024年同等学力人员申请硕士学位英语试卷与参考答案
评论
0/150
提交评论