2、(√)软件在运行和使用中也存在退化问题。
4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和衰亡的生存过程。
应用软件6、(√)原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。
7、(√)软件开发过程中,一个错误发现得越晚,为改正它所付出的代价就越大。
9、(√)喷泉模型适合于面向对象的软件开发。
二、选择题1、软件是一种(C)。
A、程序B、数据C、逻辑产品D、物理产品2、软件开发方法是(A)。
A、指导软件开发的一系列规则和约定B、软件开发的步骤C、软件开发的技术D、软件开发的思想3、软件生存周期中花费最多的阶段是(D)。
A、详细设计B、软件编码(最少)C、软件测试D、软件维护4、软件工程的三要素不包括(D)。
A、工具B、过程C、方法D、环境5、在软件生存周期中,能准确地确定“软件系统必须做什么”的阶段是(D)。
A、总体设计B、详细设计(怎么做)C、可行性研究(能不能做)D、需求分析6、瀑布模型本质上是一种(A)模型。
A、线性顺序B、顺序迭代C、线性迭代D、能及早见到产品的7、瀑布模型突出的缺点是不适应(D)的变动。
A、算法B、程序语言C、平台D、用户需求8、在软件开发模型中,提出最早、应用最广泛的模型是(A)。
A、瀑布模型B、喷泉模型C、快速原型模型D、螺旋模型9、瀑布模型不适合用于(A)的软件开发。
A、需求模糊不清B、用户不能参与开发C、用户对计算机不了解D、开发人员对业务知识不熟悉10、快速原型的主要优点不包括(D)。
A、能让用户参与开发、给出反馈B、尽早把需求分析清楚,以降低风险C、尽早地发现问题、纠正错误D、对软件分析设计人员的素质要求不高11、快速原型的主要问题在于(A)。
A、缺乏支持原型开发的工具B、要严格控制原型构造的迭代C、终端用户对原型不能理解D、软件的测试和文档更新困难12、螺旋模型是一种将瀑布模型和(A)结合起来的软件开发模型。
A、增量模型B、专家系统C、喷泉模型D、变换模型13、在软件生产的程序系统时代由于软件规模扩大和和软件复杂性提高等原因导致了(A)。
A、软件危机B、软件工程C、程序设计革命D、结构化程序设计14、集成化开发环境中的环境集成机制不包括(D)。
A、数据集成B、控制集成C、界面集成D、服务集成15、软件工程的出现是由于(A)。
A、软件危机的出现B、计算机硬件技术的发展C、软件社会化的需要D、计算机软件技术的发展三、简答题1、软件通过你自己使用计算机的经历和对计算机的认识分辨软件和程序的差别,指出区别的关键点。
其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能够正确地处理信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。
软件包括程序,程序只是软件的一部分。
2、简述软件危机产生的原因以及避免的方法。
答:软件危机的产生有两方面因素,一方面与软件本身的抽象性和复杂性有关;另一方面则与软件开发和维护过程中使用的技术和方法有关,这是主观原因。
为了解决软件危机,既要有技术措施(好的方法和工具),也要有组织管理措施。
(1)使用好的软件开发技术和方法。
(2)使用好的软件开发工具,提高软件生产率。
(3)有良好的组织、严密的管理,各方面人员相互配合共同完成任务。
3、简述软件工程在软件开发中的作用和意义。
答:软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。
软件工程的目标是实现软件的优质高产。
软件工程的目的是在经费的预算范围内,按期交付出用户满意的、质量合格的软件产品。
4、软件生命周期概念对软件的开发有哪些指导作用。
答:软件生命周期是软件工程的一个重要的概念。
把整个软件生命周期划分为若干个较小的阶段,每个阶段都有相对独立的任务和完成任务的步骤和方法,然后逐步完成各个阶段的任务,这有利于软件开发过程的组织和管理,从而降低了整个软件开发过程的困难程度,从而使规模庞大、结构复杂和管理复杂的软件开发变得容易控制和管理。
5、分析瀑布模型和螺旋模型的异同,比较它们的适用场合。
答:瀑布模型是线性模型,是整体开发模型,文档驱动的模型,每一阶段必须完成指定的文档,需求明确的中、小型软件开发,不适宜需求模糊或多变的应用软件开发;螺旋模型是典型迭代模型,是风险驱动模型,可用于面向对象开发,适宜风险较大的大型软件开发。
第2章一、选择题1、系统流程图是一种传统工具,用于描绘(D)。
A、逻辑模型B、程序结构C、体系结构D、物理系统2、软件可行性研究的目的是(C)。
A、证明软件开发项目可行B、证明软件开发项目不可行C、阐述软件开发项目值得或不值得做D、为了确定软件开发项目要不要做3、技术可行性研究要解决的问题是(A)。
A、从技术方面说明项目是否可行B、从技术上定义项目要解决的问题C、给出项目开发可行的技术路线D、给出精简的项目需求设计报告4、可行性研究的步骤首先是(A)。
A、确定项目目标,即对要解决的问题进行定义B、研究项目要求C、对项目目标进行可行性分析D、给出可行的解决方案5、可行性研究的任务不包括(D)。
A、技术可行性B、经济可行性C、法律可行性D、政治可行性6、系统流程图是描述(A)的工具。
A、物理系统B、逻辑系统C、体系系统D、程序系统7、可行性研究实质上是要进行一次(A)需求分析,设计过程。
A、简化、压缩的B、详细的C、彻底的D、深入的8D)。
为了降低软件开发失败的可能性,需要进行软件可行性研究。
可行性研究要从经济可行性、技术可行性、运行可行性和法律可行性四方面进行。
2、简述可行性研究的步骤。
答:(1)审核系统的规模和目标;(2)分析研究现行系统;(3)设计新系统的高层逻辑模型;(4)获得并比较可行的方案;(5)撰写可行性研究报告。
3、某航空公司为了方便旅客,拟开发一个机票预订系统。
打印出取票通知和票务账单。
旅客可在航班的前一天凭取票通知和票务账单交款取票。
系统校对无误后即打印出机票给旅客。
要求:(1)提出问题定义;(2)分析此系统的可行性;(3)画出系统流程图。
答:(1)问题定义:航运公司机票预订系统问题定义-------------------------------------------------------------------系统目标和范围说明书1.项目名称:X航运公司机票预订系统。
2.背景:目前,由旅客人工到航运公司排队购票,费时、费力、管理工作量大、手续繁琐效率低,制约了公司业务的发展。
3.项目目标:建立一个网络化的机票预订系统。
4.项目范围:软件开发费用不超过X万元。
5.初步设想:建议在系统中完成安排航班、打印取票通知、打印票务账单、打印机票等主要功能。
6.可行性研究:建议进行大约X周的可行性研究,研究费用不超过X元。
-------------------------------------------------------------------(2)可行性分析技术可行性:使用现有的技术能够实现此系统,在现有资源(包括硬件资源、软件资源、技术人员的技术水平和已有的工作基础)条件下,技术风险不大,项目可以实现。
经济可行性:此系统能够方便旅客订票,具有一定的经济效益和社会效益。
操作可行性:现有制度、人员素质、操作方式可行。
(3)系统流程图第3章一、判断题1、(√)软件需求分析阶段要确定软件系统要“做什么”。
3、(√)需求分析员可以参加最后的需求评审工作。
5、(√)结构化分析模型的核心是数据词典。
用户8、(√)需求分析阶段的任务是确定软件的功能。
做什么二、选择题1、需求分析最终结果是产生(B)。
A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告2、数据流图(DFD)是(A)方法中用于表示系统的逻辑模型的一种图形工具。
A、SAB、SDC、SPD、SC3、需求规格说明书的作用不包括(C)。
A、软件验收的依据B、用户与开发人员对软件要做什么的共同理解C、软件可行性研究的依据D、软件设计的依据4、数据词典是用来定义(D)中的各个成分的具体含义。
A、流程图B、功能结构图C、结构图D、数据流图5、结构化分析方法(SA)是一种面向(B)的分析方法。
A、数据结构B、数据流C、结构化数据系统D、对象6、在数据词典中,以下哪一项表示允许重复0至任意次(A)。
A、{}B、0{}C、0{}nD、{}n7、以下数据流图符号中哪一个表示加工(B)。
AB、C、D、8、软件开发的需求活动,其主要任务是(D)。
A、给出软件解决方案B、给出系统模块结构C、定义模块算法D、定义需求并建立系统模型9、结构化分析的核心是(A)。
A、自顶向下的分解B、用DFD建模C、用DD描述数据需求D、自底向上的抽象10、需求分析的任务是(A)。
A、正确说明让软件“做什么”B、用DFD建模C、用DD建立数学模型D、给出需求规格说明书11、对于分层的DFD,父图与子图的平衡是指(B)。
A、父图与子图的输入输出数据流必须相同B、子图必须继承父图的输入与输出流C、父图与子图相应的输入输出数据流名字保持一致D、子图可以自己的输入输出数据流12、DFD的每个加工都必须有(A)。
A、一个输入和输出数据流B、一个输入数据流C、一个输出数据流D、一个输入或输出数据流13、需求分析是分析员经了解用户的要求,认真细致地调研、分析,最终建立目标系统的逻辑模型并写出(B)的过程。
A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档14、结构化分析方法是以数据流图、(D)和加工说明等描述工具,即用直观的图和简洁的语言来描述软件系统模型。
A、DFD图B、PAD图C、IPO图D、DD15、软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及(B)。
A、阶段性报告B、需求评估C、总结D、都不正确16、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
下面图符名称标识的图符不属于数据流图合法图符的是(A)。
A、控制流B、加工C、数据存储D、源点和终点17、DFD用于描述系统的(D)。
A、数据结构B、控制流程C、基本加工D、软件功能18、数据词典不包括的条目是(C)。
A、数据项B、数据流C、数据类型D、数据加工19、软件需求分析一般应确定的是用户对软件的(D)。
A、功能需求B、非功能需求C、性能需求D、功能需求和非功能需求20、在数据流图中,有名字和方向的成分是(B)。
A、信息流B、数据流C、控制流D、信号流三、简答题1、需求分析的任务是什么怎样理解“做什么”和“怎么做”答:需求分析的基本任务是要准确地理解旧系统、定义新系统的目标,为了满足用户需要,回答“系统必须做什么”的问题,即确定系统必须完成哪些工作,对新系统提出完整、准确、清晰、具体的要求。
具体任务是:明确问题定义、导出软件的逻辑模型、编写软件需求规格说明书。
“做什么”,即深入描述软件的功能和性能,确定软件设计的限制和软件与其他系统元素的接口细节,定义软件的其他有效性需求。
“怎么做”,即着手软件需求的实现:用比较抽象概括的方式确定目标系统如何完成预定的任务,确定系统的物理模型。
2、怎样建立目标系统的逻辑模型答:建立目标系统逻辑模型的一般过程:(1)由当前物理系统导出当前系统物理模型;(2)由当前系统物理模型,导出当前系统逻辑模型;(3)参考当前系统逻辑模型,设想出新系统逻辑模型。
3、数据流图的作用是什么它有哪些基本成分答:数据流图是用于表示系统逻辑模型的一种工具。
它从数据传递和加工的角度,以图形的方式描述数据在系统中流动和处理过程。
它表示了系统内部信息的流向以及系统的逻辑处理功能。
数据流图的主要成分有四种:数据流、数据存储、加工、数据流的源点和终点。
4、数据词典的作用是什么它包括哪些内容答:数据词典是数据的集合,它对数据流图中的各个元素作完整的定义和说明,是数据流图的补充工具。
数据流图和数据词典共同构成系统的逻辑模型,两者缺一不可。
其内容包括:数据流、数据项、数据结构、数据存储、加工逻辑、外部实体6类元素。
四、应用题1、用SA方法对“学生档案管理系统”进行分析,画出DFD图,并建立相应的数据词典。
解:“学生管理系统”的顶层图和0层图。
顶层图:成绩库部分数据词典:学生档案={学号+姓名+性别+年龄+专业+班级}成绩库=学号+课程号+分数课程库=课程号+课程名+学分学生信息=学号+姓名+性别+年龄+专业+班级考试成绩=学号+课程号+分数学号=”00001”(99999)姓名=2{汉字}4专业=”01”...”99”注:专业代号2位数字班级=”01”...”99”注:班级代号2位数字学分=0..992、某录取统分子系统有如下功能:(1)计算标准分:根据考生原始分计算出标准分,并将其存入考生分数文件。
(2)计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线分数,并存入录取线文件。
试根据要求画出该子系统的数据流程图。
解:数据流图如下:考生分数招生计划文件录取线文件3、某考务中心准备开发一个考务管理系统,其需求如下:(1)考生填写考试报名表,经检查合格后在系统中登记注册,并发给学生准考证。
(2)学生按照准考证要求进入考场考试。
考试完后将试卷交给阅卷站。
(3)阅卷站阅卷后把成绩表(包括每个考试科目、每个考生的分项分数)交给本系统并输入计算机。
(4)考试中心负责管理成绩评定标准,并将其交给阅卷站。
(5)系统把考试成绩通知考生,把考试成绩的统计结果交给考试中心。
(6)系统向考生提供按准考证号、考生姓名的考生成绩查询,将按科目的历年考试成绩统计分析和评分标准提供给考试中心。
(7)考生对考试成绩质疑时,系统根据准考证号、姓名可以查询考生某科目的各分项成绩,必要时可查阅阅卷站的试卷。
(8)系统保存并可查询历年每门科目的评分标准。
(9)根据考试成绩统计系统可以向考试中心提供试题难度分析。
请画出系统的数据流程图(顶层图和0层图)。
解:顶层图:顶层图0层图:0层图4、某单位人事部门拟对职工工作进行调整,细则如下:年龄满40岁以上人员,初中或高中文化,若是男性当修理工,若是女性当清洁工;大专文化当技术员。
年龄25岁至40岁,初中或高中文化,若是男性钳工,若是女性当车工;大专文化当技术员。
年龄不满25岁,初中文化脱产学习,高中文化当电工;大专文化当技术员。
请根据以上叙述运用三种加工逻辑说明写出它们的逻辑组合的关系。
解:判定表如下:设:性别:男:M女:F学历:初中:A高中B大专:C最简化:判定树:结构化语言:IF年龄>40THENSWITCH(学历){CASE:“初中”IF性别为“男”THEN做修理工ELSE做清洁工CASE:“高中”IF性别为“男”THEN做修理工ELSE做清洁工CASE:“大专”做技术员ELSEIF年龄>=25且年龄<40THENSWITCH(学历)>4025-40年龄学历性别男------修理工女-----清洁工初中高中男---修理工女–--清洁工25-40男------钳工女-----车工初中高中大专------------------------技术员男---钳工女–--车工大专------------------------技术员初中-----------------脱产学习高中-------------------电工大专------------------技术员{CASE:“初中”IF性别为“男”THEN做钳工ELSE做车工CASE:“高中”IF性别为“男”THEN做钳工ELSE做车工CASE:“大专”做技术员}ELSESWITCH(学历){CASE:“初中”脱产学习CASE:“高中”做电工CASE:“大专”做技术员}5、下面是一项货运收费政策:“航空运费”,重量小于或等于20kg的货物,每千克6元,若重量大于20kg,超重部分每千克元,航空运费的最低起价是12元。
这项标准适用于国内航线,如果是国际航线,运费加倍。
请用判定树、判定表表达。
注:设重量为W(单位为Kg)重量<=2Kg,重量>2Kg且重量<=20Kg,重量>20Kg,分别用L、M、H表示判定树:重量<=2Kg——12元重量>2Kg且<=20Kg——6W元重量>20Kg——(W-20)+120重量<=2Kg——24元重量>2Kg且<=20Kg——12W元重量>20Kg——13(W-20)+2406、下面是中国邮政电子汇兑系统中汇兑资费计算加工中资费计算的方法:无论是本埠(县)还是外埠资费计算方法相同。
每汇款1元(以元为单位计算)收费元,每笔汇款最低汇费为2元,最高汇费为50元。
解:设汇款金额为W元。
判定树如下:汇额本埠/外埠汇费国内国际<=200-----------------------2元>200且<=5000元-----------W*元>5000---------------------50元可简化为:第4章一、判断题1、(√)如果在需求分析阶段采用了结构化分析方法,则软件设计阶段就应采用结构化设计方法。
2、(√)概要设计与详细设计之间的关系是全局和局部的关系。
4、(√)模块间的耦合性越强,则模块的独立性越弱。
6、(√)软件结构图可以利用数据流图映射出来。
8、(√)在结构化设计过程中首先要确认DFD。
二、选择题1、软件结构图的形态特征能反映程序重用率的是(C)。
A、深度B、宽度C、扇入D、扇出2、概要设计的目的是确定整个系统的(B)。
A、规模B、功能及模块结构C、费用D、测试方案3、耦合是对软件不同模块之间互连程度的度量。
各种耦合从强到弱的排列为(C)。
A、内容耦合,控制耦合,数据耦合,公共环境耦合B、内容耦合,控制耦合,公共环境耦合,数据耦合C、内容耦合,公共环境耦合,控制耦合,数据耦合D、控制耦合,内容耦合,数据耦合,公共环境耦合4、当一个模块直接使用另一个模块的内部数据时,这种模块之间的耦合为(D)。
A、数据耦合B、公共耦合C、标记耦合D、内容耦合5、数据耦合和控制耦合相比,则(B)成立。
A、数据耦合的耦合性强B、控制耦合的耦合性强C、两者的耦合性相当D、两者的耦合性需要根据具体情况分析6、衡量模块独立性的标准是(D)。
A、软件需要B、系统分析C、数据库D、软件代码11、概要设计的主要成果是(C)。
A、用户的界面需求B、用户的分析方案C、概要设计说明书D、系统总体方案12、数据结构设计也是概要设计的重要内容,主要是进行数据的(A)设计。
A、逻辑B、存取C、用户视图D、索引13、概要设计与详细设计衔接的图形工具是(B)。
A、DFD图B、SC图C、程序流程图PFDD、PAD图14、在软件开发中,下面任务不属于设计阶段的是(D)。
A、数据结构设计B、给出系统模块结构C、定义模块算法D、定义需求并建立系统模型15、下面不属于软件设计原则的是(C)。
A、抽象B、模块化C、自底向下D、信息隐藏三、简答题1、软件设计应遵循的原则是什么答:软件设计中一般应遵循以下原则:模块化、抽象、信息隐蔽与局部化、一致性、完整性和可验证性。
2、什么是软件的概要设计概要设计阶段完成的主要任务是什么答:总体设计又称概要设计,是将软件需求转化为软件体系结构、确定系统级接口、全局数据结构和数据库模式。
3、启发设计规则有哪些答:(1)模块功能的完善化;(2)消除重复功能,改善软件结构;(3)模块规模应该适中;(4)模块的深度、宽度、扇出和扇入都应适当;(5)模块的作用范围应该在控制范围之内;(6)力争降低模块接口的复杂程度;(7)设计单入口、单出口的模块;(8)模块功能应该可以预测。
四、应用题根据以下的C语言程序段判断模块A和B之间属于哪一种耦合,模块B是哪一种内聚。
1、模块A“开发票”:……water_fee=calc_waterfee(,);模块B“计算水费”:floatcalc_waterfee(floatmount,floatprice);{floatfee;……feturnfee;}答:模块A和B是数据耦合,模块B是功能内聚。
2、模块A:……flag=1;max=max_avg(flag);……模块B:intmax_avg(intflag){……if(flag==1)……elseif(flag==0)……}答:模块A和B是控制耦合,模块B是逻辑内聚。
第5章一、判断题1、(√)详细设计也称模块设计。
二、选择题1、软件详细设计的主要任务是确定每个模块的(A)。
A、算法和使用的数据结构B、外部接口C、功能D、程序2、借助于软件工具,可将(C)容易地转换为高级语言源程序。
A、程序流程图B、N-S图C、PAD图D、判定表3、不属于详细设计工具的是(A)。
A、DFD图B、PAD图C、PDlD、N-S图4、程序的三种基本结构是(C)。
A、过程、子过程和子程序B、递归、堆栈和队列C、顺序、选择和重复D、调用、返回和转移5、下面描述中,符合结构化程序设计风格的是(A)。
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B、模块只有一个入口,可以有多个出口C、注重提高程序的执行效率D、不使用goto语句三、简答题1、软件的详细设计阶段完成的主要任务是什么答:(1)算法设计;(2)数据结构设计;(3)模块接口细节设计;(4)测试用例设计;(5)数据库物理设计;(6)数据代码设计;(7)其他设计;(8)编写详细设计说明书并进行评审。
2、数据输入界面设计的主要原则有哪些答:在设计数据输入界面时应做到:尽量简化用户的工作、减少输入的出错率;减轻用户的记忆负担、尽可能减少输入量并实现自动输入;对共同的输入设置默认值;使用代码或缩写;自动填入已输入过的内容;列表式输入;数据分组输入。
3、代码设计的原则有哪些答:代码设计的原则是标准化、唯一性、可扩充性、简单性、规范性和适应性。
四、应用题1、请分别使用程序流程图、PAD图和N-S图描述下列程序的算法。