软件工程简单

第一章 绪论

1.软件产品的特性是什么?⑴软件是一种逻辑产品,看不见也摸不着,因而具有无形性.⑵软件产品的生产主要是研制,通过复制就产生大量的软件产品.⑶软件产品不会用坏,不存在磨损,消耗问题.⑷软件产品的生产还未完全摆脱手工开发方式,大部分产品是"定做"的.⑸软件费用不断增加,软件成本相当昂贵.

2.什么是软件危机?产生原因是什么?⑴由于计算机运行速度,容量,可靠性有显著提高,为计算机的广泛应用创造了条件.但量,软件开发技术的进步一直未能满足发展出来的要求.在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机.⑵软件危机的原因是由于软件产品本身的特点以及开发软件的方式,方法,技术和人员引起的:①软件的规模越来越大,结构越来越复杂;②软件开发的管理困难而复杂;③软件开发费用不断增加;④软件开发技术落后;⑤生产方式落后;⑥开发工具落后,生产率提高缓慢.

3.软件工程的性质,目标和内容是什么?⑴性质:是一门综合性交叉学科,它涉及计算机科学,工程科学,管理科学,数学等领域.⑵目的:是成功建造一个大型软件系统,所谓成功是要达到以下几个目标:①付出较底的开发成本;②达到要求的软件功能;③取得较好的软件性能;④开发的软件易于移植;⑤需要较低的维护费用;⑥能按时完成开发任务,及时交付使用;⑦开发的软件可靠性高;⑶内容:是软件开发技术和开发管理两个方面.主要研究软件开发方法,软件开发过程,软件开发工具和环境.在软件开发管理中,主要研究软件管理学,软件经济学,软件心理学.

4.软件工程面临的问题是什么?摆在软件工程面前有许多需要解决的棘手问题,如软件费用,软件可靠性,软件可维护性,软件生产率和重用等.

5.软件生产有几个阶段?各有何特征?⑴程序设计时代46-59.生产方式是个体手工劳动,使用的工具是机器语言.开发方法是追求编程技巧,不重视程序设计方法.⑵程序系统时代60-69.生产方式是作坊式的小集团合作生产,生产工具是高级语言,开发方法依旧靠个人技巧,但开发技术没有新的突破,大量软件开发的需求已提出,产生了尖锐的矛盾,导致软件危机的产生.⑶软件工程时代70-.生产方式是工程化的生产,使用数据库,开发工具,开发环境,网络,分布式,面向对象技术来开发软件.软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机.

6.软件工程过程有哪些过程?获取,供应,开发,操作,维护,管理,支持.

7.软件生存周期有哪几个阶段?由可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护等阶段组成.

8.软件生产周期模型有哪些主要模型?瀑布模型,增量模型,螺旋模型,喷泉模型,变换模型,基于知识的模型等.

9.有哪些主要软件开发方法?开结构化方法,Jackson方法,维也纳开发方法(VDM),面向对象的开发方法等.

第二章 软件可行性研究与项目开发计划

1.可行性研究的任务是什么?首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制.然后进行简要的需要分析,抽象出该项目的逻辑结构,建立逻辑模型.从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决办法,对每种解决方法都要研究它的可行性.可从技术可行性,经济可行性,社会可行性三方面分析研究每种解决方法的可行性.

2.可行性研究有哪些步骤?⑴确定项目规模和目标;⑵研究正在运行的系统;⑶建立新系统的高层逻辑模型;⑷导出和评价各种方案;⑸推荐可行的方案;⑹编写可行性研究报告.

3.可行性研究的目的?就是用最小的代价在尽可能短的时间确定该软件项目是否能够开发,是否值得开发.注意,可行性研究的目的不是去开发一个软件项目,而是研究该软件项目是否能够,是否值得去开发.

4.可行性研究报告的主要内容?主要内容有:⑴引言;⑵可行性研究前提;⑶对现有系统的分析; 1⑷所建议系统的技术可行性分析;⑸所建议系统的经济可行性分析;⑹社会因素可行性分析;⑺其他可供选择方案;⑻结论意见.

5.怎样计算投资回收期和纯收入?投资回收期就是使累计的经济效益等于最初的投资费用所需的时间.投资回收期越短,就越快获得利润,则该项目就越值得开发.项目纯收入的计算方法是在整个生存周期之内的累计经济效益(折合成现在值)与投资之差.

6.项目开发计划有哪些主要内容?⑴项目概述;⑵实施计划;⑶人员组织及分工;⑷交付使用期限.

第三章 软件需求分析

1.什么是需求分析?该阶段的基本任务是什么?⑴需求分析是指,开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程.⑵基本任务是要准确地定义新系统的目标,为了满足用户需求,回答系统必须"做什么"的问题.

2.简述结构化分析方法的步骤.⑴了解当前系统的工作流程,获得当前系统的物理模型;⑵抽象出当前系统的逻辑模型;⑶建立目标系统的逻辑模型;⑷作进一步补充和优化.

3.简述SA方法的优缺点.⑴是软件需求分析中公认的,有成效的,技术成熟,使用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析.该方法利用图形等半形式化工具表达需求,简明,易读,也易于使用,为后一阶段的设计,测试,评价提

供了有利条件.⑵在解决需求分析过程中的诸难点方面能力不足,主要表现在:①传统的SA方法仅是一个静态模型,没有反映处理的顺序,不适合描述实时控制系统.②SA方法使用数据流图DFD在分析与描述"数据要求"方面是有局限的,DFD应与数据库技术中的ER实体联系图结合起来.③DFD不适合描述人机界面系统的需求.SA方法往往对这一部分用自然语言作补充,对这类系统可采用其它的分析方法.④为了更精确地描述软件需求,提高软件系统的可靠性,安全性,也便于实现自动化,SA方法可与形式化方法结合起来.⑤借助于需求分析CASE工具,提高需求分析的质量及效率.

4.数据流图的作用是什么?画数据流图应注意什么?⑴数据流图(DFD)是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.⑵画数据流图注意事项有:①命名.要易于理解其含义.②画数据流而不是控制流.反映系统"做什么".只能是名词或名词短短.③一般不画物质流.④第个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工结果.⑤编号.子图应编号,子图上所有加工也要编号,子图的编号就是父图中相应加工的编号.加工的编号由子图号,小数点及局部号组成.⑥父图与子图的平衡.子图的输入输出数据流同父图相应加工的输入输出数据流必须一致.⑦局部数据存储.当某层数据流图中的数据存储不是父图中相应加工的外部接口而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储.一个局部数据存储只要当它作为某些加工的数据接口或某个加工特定的输入或输出时,就把它画出来,这样有助于实现信息隐蔽.⑧提高数据流图的易理解性.注意合理分解,要把一个加工分解成几个功能相对独立的子加工.分解时注意子加工的独立性,还应注意均匀性.

5.数据字典的作用是什么?数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅.数据字典和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分.

6.简述建立IDEF0图的步骤.⑴确定建模的范围,观点及目的;范围指所讨论的对象是什么,它的边界和外部接口是什么;观点是指从什么角度去考虑民研究的问题;目的是指确定所研究问题的意图及理由.⑵建立系统的内外关系图—A-0图.图中只有一个活动.用进入和离开的箭头表示系统与环境的数据接口,确定了系统边界.⑶建立顶层图—A0图.把A—0图分解为3-6个主要部分得到A0图,从结构上反映了模型的观点,从结构上反映了模型的观点,

是系统功能模型真正的顶层图.⑷建立低层次的图形.按照自顶向下的方法,从A0开始逐层分解.分解时遵循两条原则:首先,保持在同一水平上的分解(即宽度优先),如A1,A2,A3等图,而不是A1,A11,A111(此为深度优先),可避免较高层次的变化影响较低层次,造成可能的重复工作,同时可较早地查出错误及遗漏.其次,对于同一水平层次上的各个方框, 2

选择难度最大的部分往下分解.

7.应用题:用DFD描绘功能的需求.首先分析功能说明,先找出哪些是属于系统之外的外部实体,获得系统的输入和输出,其次考虑系统内部功能,然后画出顶层数据流图,随后分解系统,每个子系统有哪些流动着的数据,哪些需要暂时保存数据,通过什么加工使数据发生变换.(→数据流.○加工.□源或终点.=数据存储.)

第四章 软件概要设计

1.什么是软件概要设计,该阶段的基本任务是什么?⑴在软件设计阶段,需要把软件的逻辑模型变换为物理模型,着手实现软件的需求,并将设计的结果反映在"设计规模说明书"文档中,是一个把软件需求转换为软件表示的过程.软件概要设计只描述软件总的体系结构,因此也称为软件结构设计.⑵基本任务包括:①设计软件系统结构(简称软件结构);②数据结构及数据库设计;③编写概要设计文档;④评审.

2.软件设计的基本原理包括哪些内容?⑴模块化,指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程;⑵抽象,指抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其它因素;⑶信息隐蔽,指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这此信息的其它模块来说,是不能访问的;⑷模块独立性,指每个模块只完成系统要求的独立子功能,并且与其它模块的联系最少且接口简单.模块独立性包括两个度量标准:耦合性,内聚性.

3.模块的耦合性,内聚性包括哪些种类?各表示什么含义?⑴耦合性包括:①无直接耦合,指两个模块之间没有直接联系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息;②数据耦合,指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值的传递;③标记耦合,指两个模块之间传递的是数据结构,如高级语言中的数组名,记录名,文件名等这此名字即为标记,其实传递的是这个数据结构的地址;④控制耦合,指一个模块调用另一个模块时,传递的是控制变量(如开关,标志等),被调用模块通过该控制变量的值有选择地执行块内某一功能;⑤公共耦合,指通过一个公共数据环境相互作用的那些模块间的耦合;⑥内容耦合,指一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部.⑵内聚性包括:

①偶然内聚,指一个模块内的各处理元素之间没有任何联系;②逻辑内聚,指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能;③时间内聚,把需要同时执行的动作组合在一起形成的模块;④通信内聚,指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据;⑤顺序内聚,指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入;⑥功能内聚,指模块内所有元素共同完成一个功能,缺一不可.

4.简述软件结构设计优化准则.⑴划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性.并以此原则优化初始的软件结构.⑵一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近.⑶软件结构的深度,宽度,扇入,扇出应适当.⑷模块的大小要适中.⑸模块的接口要简单,清晰,含义明确,易于实现,测试与维护.

5.变换型数据流图与事务性数据流图有什么区别?⑴变换型数据流图包含输入,变换(或称处理)和输出3个部分,即数据处理的工作过程为三步:取得数据,变换数据和给出数据.变换是系统的主加工,对输入数据进行变换得到输出数据,因此变换型的DFD是一个顺序结构.⑵事务型数据流图的事务中心将输入流分离成许多发散的数据流,形成多个加工路径,根据输入的值选择其中一个路径来执行.

6.简述变换分析设计与事务分析设计的设计步骤.⑴变换分析设计步骤:①确定DFD中的变换中心,逻辑输入和逻辑输出;②设计软件结构的顶层和第一层→变换结构;③设计中,下层模块;④根据设计准则对初始的软件结构进行优化.⑵事务分析设计步骤:①确定DFD中的事务中心和加工路径;②设计软件结构的顶层和第一层→事务结构;③事务结构中,下层模块的设计,优化等工作同变换结构.

第五章 软件详细设计

1.详细设计的基本任务是什么?①为每个模块进行详细的算法设计;②为模块内的数据结构进行

设计;③对数据库进行物理设计,即确定数据库的物理结构;④其它设计;⑤编写详细设计说明书;⑥评 3

审;

2.结构化程序设计方法的基本要点是什么?该方法是综合应用一些手段来构造高质量程序的思想方法.基本要点有:⑴采用自顶向下,逐步求精的程序设计方法;⑵使用3种基本控制结构构造程序;⑶主程序员组的组织形式;

3.详细设计主要使用哪些描述工具?各有什么特点?描述工具主要是图形工具,过程设计语言和

表格.⑴图形工具包括程序流程图和PAD图等.程序流程图的优点是直观清晰,易于使用,是开发者普遍采用的工具.PAD

图是一种由左向右展开的二维树型结构,控制流程为自上而下,从左到右地执行.⑵过程设计语言是一种用于描述模块算法设计和处理细节的语言,一般分为内外2层,外层语法应符合一般程序设计语言常用的方法规则,而内层语法则用一些简单的句子,短语和通用的数学符号,来描述程序应执行的功能.⑶表格工具如判定表可作为详细设计中描述逻辑条件复杂的算法.

4.JSP方法有哪些设计步骤?该方法有哪些特点?㈠共有5个步骤:①分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构.②找出输入数据结构和输出数据结构中有对应关系的数据单元.③按一定的规则由输入,输出的数据结构导出程序结构.④列出基本操作与条件,并把它们分配到程序结构图的适当位置.⑤用伪码写出程序.㈡特点:①适用于输入数据和输出数据结构之间有对应关系的问题求解;②JSP方法主要体现程序结构的设计,不明确地划分软件概要设计和详细设计的两个阶段;③JSP方法主要用于规模不大的数据处理系统,以及输入,输出数据结构能较容易地描述出来的情况.

第六章 软件编码

1.在项目开发时,选择程序设计语言通常考虑哪些因素?程序设计语言是人机通信的工具之一,使用这类语言"指挥"计算机"干什么,是人类特定的活动.选择程序设计语言通常需要考虑语言的心理特性,工程特性和技术特性.语言的心理特性对通信质量有影响.编码过程是软件工程中的一个步骤,语言的工程特性对软件开发的成功与否有重要影响.此外,语言的技术特性也会影响设计的质量.

2.什么是程序设计风格?应在哪些方面注意培养好的设计风格?⑴程序设计风格是指一个人编制程序时所表现出来的特点,习惯,逻辑思路等.良好的编程风格可以减少编码错误,减少读程序的时间,从而提高软件的开发效率.⑵与编程风格有关的因素包括:①源程序文档化;②数据说明;③语句构造;④输入和输出;⑤效率.注意从这几个方面培养和学习良好的编程风格,使编出的程序清晰易读,易于测试与维护,从而提高软件的质量.

1、可行性研究的任务是什么?

首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否

能实现。㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。

2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?

一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。

3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?

非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试与集 4成测试和在一起,同时完成。㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。㈣渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。㈤渐增式比较彻底,已测试的模块和新的模块再测试。㈥渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时间。㈦非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。渐增式测试有以下两种不同的组装模块的方法:㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所有模块。㈡自低向上结合。该方法仅需编写驱动模块。其步骤为:①把底层模块组合成实现一个个特定子功能的族。②为每一个族编写一

个驱动模块,以协调测试用例的输入和测试结果的输出。③对模块族进行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。⑤重复②至④步,直至软件系统全部测试完毕。

4、软件质量与软件质量保证的含义是什么? 从实际应用来说,软件质量定义为:㈠与所确定的功能和性能需求的一致性。㈡与所成文的开发标准一致性。㈢与所有专业开发的软件所期望的隐含特性的一致性。软件质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。5、软件工程标准化的意义是什么?都有哪些软件工程标准?积极推进软件工程标准化,其道理是显而易见的。仅就一个软件开发项目来说,有许多层次,不同分工的人员相互配合,在开发项目的各个部分以及各开发阶段之间也都存在许多联系和衔接问题。如何把这些错综复杂的关系协调好,需要有一系列统一的约束和规定。在软件开发项目取得阶段成果或最后完成是时,需要进行阶段评价和验收测试。投入运行的软件,其维护工作中遇到问题又与开发工作者有着密切的关系。软件的管理工作则渗透到软件生存期的每一个环节。所有这些都要要求提供统一的行动规范和衡量准则,使得各种工作都有章可循。软件工程的标准主要有以下三个:㈠FIPS135是美国国家标准局发布的《软件文档管理指南》㈡NSAC ——39是美国核子安全分析中心发布的《安全参数显示系统的验证与确认》。㈢ISO5807是国际标准化组织公布(现已成为中国的国家标准)的《信息处理—数据流程图、程序流程图、程序网络图和系统资源图的文件编制符号及约定》。 5、需求分析阶段的基本任务是什么? 需求分析阶段的基本任务是要准确的定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工作:㈠问题识别。双方确定对问题的综合需求,这些需求包括:功能需求、性能需求、环境需求、用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。㈡分析与综合,导出软件的逻辑模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成份,并用图文结合的形式,建立起新系统的逻辑模型。㈢编写文档。编写“需求规格说明书”、编写初步用户使用手册、编

写确认测试计划、修改完善软件开发计划。

6、采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点? ㈠等价类划分。等价类划分是将输入数据域按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试。

㈡边界值分析。该方法是将测试边界情况作为重点目标,选取正好等于,刚刚大于或刚刚小于边界值的情况,根据这些情况选择测试用例。

㈢错误推测。错误推测法没有确定的步骤,凭检验进行。它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例。

㈣因果图。 因果图能有效的检测输入条件的各种组合可能会引起的错误。因果图的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。 57、说明动态建模的过程。 ㈠准备脚本。动态分析从寻找事件开始,然后确定各对象的可能事件的顺序。在分析阶段不考虑算法的执行,算法是实现模型的一部分。 ㈡确定事件。 确定所有外部事件。事件包括所有来自或发往用户的信息、外部设备的信号、输入、转换和动作。㈢准备事件跟踪表。 把脚本表示成一个事件跟踪表,对象为表中的列,给每一个对象分配一个独立的列。 ㈣构造状态图。 对各对象类建立状态图,反映对象接收和发送的事件,每个事件跟踪都对应于状态图中一条路径。

8、软件生产经历了几个阶段?各有何特征? 软件生产至今已经历了三个阶段:㈠程序设计时代(1946-1956):这个阶段的生产方式是个体手工劳动,使用的工具实际其语言、汇编语言。开发方法是追求编程技巧,追求程序运行效率。硬件特征是价格贵、存储容量小,运行可靠性差。软件特征是只有程序、程序设计概念,不重视程序设计方法。㈡程序系统时代(1956-1968):这个阶段的生产方式是作坊式的小集团合作生产,生产工具是高级语言,开发方法仍就靠个人技巧,但开始提出结构化方法。硬件特征是速度、容量、工作可靠性有明显提高。软件特征是程序员数量猛增,但开发技术没有新的突破,开发人员的素质和落后的开发技术不适应规模大、结构复杂的软件开发,导致软件危机的产生。㈢软件工程时代(1968至今):这个阶段的生产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。硬件特征是向超高速、大容量、微型化以及网络化方向发展。软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危

机。5、简述Gantt图的功能及不足。Gantt图常用水平线段来描述把任务分解成子任务,以及每个子任务的进度安排,动态反映软件开发进度情况,该图可以:表示任务分解成子任务情况;表示每个任务的开始时间和完成时间,线段的长度表示子任务完成所需要的时间;表示子任务之间的并行和串行关系。Gantt图只能表示任务之间的并行与串行的关系,难以反映多个任务之间存在的复杂关系,不能直观表示任务之间相互依赖制约关系,以及哪些任务是关键字任务等信息,因此仅仅用Gantt图作为进度的安排是不够的。6、什么是数据字典?其作用是什么?它有哪些条目?数据字典(简称DD)是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。他和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。数据项是组成数据流和数据存储的最小元素。源点、终点不在系统之内,故一般不在字典中说明。7、调试的目的是什么?调试有哪些技术手段?调试的目的是确定错误的原因和位置,并改正错误,因此调试也成为纠错。调试技术主要有:简单的调试方法,主要有在程序中插入打印语句、运行部分程序等;归纳法调试,他从测试结果发现的线索(错误迹象、征兆)入手、分析他们之间的联系,导处错误原因的假设,然后再证明或否定这个假设;演绎法调试,该方法列出所有可能的错误原因的假设,然后利用测试数据排除不适当的假设,最后再测试数据验证余下的假设确实是出错的原因;回溯法调试,该方法从程序产生错误的地方出发,人工沿程序的逻辑路径反向搜索,直到找到错误的原因为止。

10、什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据流图有四种基本图形符号:“→”箭头表示数据流;“○”圆或椭圆表述加工;“=”双杠表示数据存储;“”方框表示数据的源点或终点。

21、 什么是确认测试?该阶段有哪些工作? 确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明

书中确定的指标相符合。确认测试阶段有两项工作,进行确认测试与软件配置审查。确认测试一般是在模拟环境中运用黑盒测试方法,由专门测试人员和用户参加的测试。软件配置审查的任务是检查软件的所有文档资料的完整性、正确性。如果发现遗漏和错误,应补充和改正,同时要编排好目录,为以后的软件维护工作奠定基础。

2、详细设计的基本任务是什么?有哪几种描述方法? 详细设计是软件设计的第二阶段,其基本任务有:为每个模块进行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,即确定数据库的物理结构;其它设计,根据软件系统类型,还可能要进行代码设计、输入/输出格式设计、人机对话设计; 6编写详细设计说明书;评审。详细描述处理过程常用三种工具:图形、表格和语言。如结构化程序流程图、盒图和问题分析图。IPO图也是详细设计的主要工具之一。表格工具如判定表可作为详细设计中描述逻辑条件复杂的算法。过程设计语言(PDL)是一种用于描述模块算法设计和处理细节的语言工具。5、什么是软件危机?其产生的原因是什么?当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现为:经费预算经常突破,完成时间一再拖延;开发的软件不能满足用户要求;开发的软件可维护性差;开发的软件可靠性差。造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的。共产生原因主要有以下几方面:软件的规模越来越大,结构越来越复杂;软件开发管理困难而复杂;软件开发费用不断增加;软件开发技术落后;生产方式落后;开发工具落后,生产率提高缓慢。

23、软件维护的特点是什么?主要体现在三个方面:非结构化维护和结构化维护。软件的开发过程对软件的维护有很大的影响。若不采用软件工程的方法开发软件,则软件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护。若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护。维护的困难性。软件维护的困难性是由于软件需求分析和开发方法的缺陷。软件生存周期中的开发阶段没有严格而有科学的管理和规划,就会引起软件运行时的维护困难。

软件维护的费用。软件维护的费用在总费用中的比重是在不断增加的,这是软件维护有形的代价。另外还有无形的代

价,即要占用更多的资源。软件维护费用增加的主要原因是软件维护的生产率非常低。 26、软件概要设计阶段的基本任务是什么?⑴设计软件系统结构(简称软件结构),具体为:①采用某种设计方法,将一个复杂的系统按功能划分成模块。②确定每个模块的功能。③确定模块之间的调用关系。④确定模块之间的接口,即模块之间传递的信息。⑤评价模块结构的质量。⑵数据结构及数据库设计,汉数据结构的设计及数据库的设计。⑶编写概要设计文档。主要有:概要设计说明书;数据库设计说明书;用户手册;修订测试计划。⑷评审。5、快速原型模型有几种?各有何特点?根据原型的不同作用,有三类原型模型:⑴探索型原型。这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。⑵实验型原型。这种原型主要用于设计阶段,考核实现方案是否合适,能否实现,对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。⑶演化型原型。这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框或者包含系统的主要功能。在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程。

27、在划分软件生存周期阶段时,应遵循的基本原则是什么?软件生存周期的各个阶段有不同的划分。软件规模、种类、开发方式、开发环境以及开发使用方法都影响软件生存周期的划分。在划分软件生存周期阶段时,应遵循的一条基本原则是各阶段的任务应尽可能相对独立,同一阶段各项目任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件项目开发的组织管理。

28、请说明软件文档的作用?软件开发项目生存期各阶段都包含哪些文档?软件文档的作用是:提高软件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软件功能、性能。软件开发项目生存期各阶段应包括得文档以及与各类人员的关系如下:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、测试计划、概要设计说明书、详细设计说明书、用户手册、操作手册、测试分析报告、开发进度月报、项目开发总结、程序维护手册

(维护修改建议)。

29、软件开发成本估算方法有哪几种? 自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成本(或总工作量),来推算将要开发的软件的总成本(或总工作量),然后把它们按阶段、步骤和工作单元进行分配,这样方法称为自顶向下的估算方法。自底向上估算方法。自底向上估算方法是将待开 7

发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量。

差别估算方法。差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。专家估算法。依靠一个或多个专家对要求的项目做出估算。类推估算法。算式估算法。

30、简述SA方法的优缺点? 结构化分析方法是软件需求分析中公认的、有成效的、技术成熟、使用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析。该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利的条件。但SA方法也存在有不足之处:⑴传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统“做什么”的功能,但它仅是一个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述实时控制系统。⑵SA方法使用DFD在分析与描述“数据要求”方面是有限的,DFD应与数据库技术中的实体联系图(ER图)结合起来。⑶DFD不是和描述人机界面系统的需求。SA方法则对这一部分用自然语言作补充,对这类系统可采取其它的分析方法。⑷为了更精确地描述软件需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式化方法结合起来。5、什么是软件工程?它的目标和内容是什么?软件工程是一种用科学知识和技术原理来定义、开发、维护软件的一门学科。软件工程是一门工程性学科,目的是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较低的开发成本,达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。软件工程研究的主要内容是软件开发技术和软件开发管理两方面,在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,主要研究软件管理学、软件经济学、软件心理学等。6、简述容错系统的设计过程?容错系统的设计过程包括以下设计步骤:⑴安设计

任务要求进行常规设计,尽量保证设计的正确。⑵对可能出现的错误分类,确定实现容错的范围。⑶按照成本—效益最优原则,选用某种冗余手段来实现对各类错误的屏蔽。⑷分析或验证上述冗余结构的容错效果。如果效果没有达到预期的程度,则应重新进行冗余结构设计。如此重复,直到有一个满意的结果为止。7、渐增模型有几种?各有何特点?渐增模型是瀑布模型的变种,它有两类:⑴增量构造模型。它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。也就是说在前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开发。⑵演化提交模型。它在瀑布模型基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增量提交。8、试述系统开发的生命周期。系统开发是管理信息系统建设中最重要的一个阶段,从项目开发开始到结束的整个过程,称为系统开发的生命周期。系统开发的生命周期一般分为以下阶段:⑴系统分析。这一阶段的主要任务是明确用户的信息需求,提出新系统的逻辑方案。需要进行的工作有系统的初步调查,可行性研究,现行系统的详细调查及新系统逻辑模型的提出等。⑵系统设计。这一阶段的主要任务是根据新系统的逻辑方案进行软、硬件系统的设计,其中包括总体结构设计、输出设计、输入设计、处理过程设计、数据存储设计和计算机系统方案的选择等。⑶系统实施。这一阶段将设计的系统付诸实施,主要工作有软件的程序编制与软件包的购置、计算机与通讯设备的购置、系统的安装、调试与测试、新旧系统的转换等。

34、增量模型的基本思想是什么?为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改性,于是产生了增量模型。它是在瀑布模型的基础上加以修改而形成的。增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件。增量模型是在项目的开发过程中以一系列的增量方式开发系统。增量方式包括增量开发和增量提交。增量开发是指在项目开发周期内,以一定的时间间隔开发部分工作软件;增量提交是指在项目开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。增量开发和增量提交可以同时使用,也可以单独使用。5、对软件开发环境的基本要求有哪些?⑴软件开发环境应是高度集成的一体化的系统。⑵软件开 8发环境应具有

高度的通用性。⑶软件开发环境应易于定制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活性。⑷软件开发环境不但可应用性要好,而且是易使用的、经济高效的系统。⑸软件开发环境应有辅助开发向半自动开发和自动开发逐步过渡的系统。6、项目开发计划有哪些内容?项目开发计划是一个管理性的文档,它的主要内容如下:⑴项目概述:说明项目的各项主要工作;说明软件的功能、性能;为完成项目应具备的条件;用户及合同承包者承担的工作、完成期限及其它条件限制;应交付的程序名称,所使用的语言及存储形式;应交付的文档。⑵实施计划:说明任务的划分,各项任务的责任人;说明项目开发进度,按阶段应完成的任务,用图表说明每项任务的开始时间和完成时间;说明项目的预算,各阶段的费用支出预算。⑶人员组织及分工:说明开发该项目所需人员的类型、组成结构、数量等。⑷交付期限:说明项目最后完工交付的日期。7、软件设计的基本原理包括哪些内容?模块化。是指解决一个复杂问题时自顶向下逐层把软件系统化分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手段。抽象。抽象是认识复杂现象过程中使用的思维工具即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其它因素。软件工程过程中的每一部都可以看作是对软件解决方法的抽象层次的一次细化。信息隐蔽。是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。数据独立性。指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系最少且接口简单。8、白盒测试法有哪些覆盖标准?试对他们的检错能力进行比较。白盒测试法的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。语句覆盖发现错误能力最弱。判定覆盖包含了语句覆盖,但它可能会使一些条件的不到测试。条件覆盖对每一条件进行单独检查,一般情况它的检错能力较判定覆盖强,但有时达不到判定覆盖的要求。判定/条件覆盖包含了判定覆盖和条件覆盖的要求,但由于计算机系统软件实现方式的限制,实际上不一定达到条件覆盖的标准。条件组合覆盖发现错误能力较强,凡满足其标准的测试用例,也必须满足前四种覆盖标准。前五种覆盖

标准把注意力集中在单个判定或判定的各个条件上,可能会使程序某些路径没有执行到。路径覆盖根据各判定表达式取值的组合,使程序沿着不同的路径执行,查错能力强。但由于它是从各判定的整体组合出发设计测试用例的,可能使测试用例达不到条件组合覆盖的要求。

1. 什么是软件工程?目前有哪几种主要的软件工程方法?

概括地说,软件工程是指导计算机软件开发和维护的一门工程学科.采用工程的概念、原理、技术、和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

但软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。

主要有传统方法也称为经典软件工程方法或生命周期方法或结构化范型和面向对象方法。

2、流程图与数据流图有什么主要区别?(1)数据流图(date flow diagram , DFD),是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是从数据的角度来描述一个系统的;而流程图则是从对数据加工的角度来描述系统的;(2)数据流图中的箭头是数据流,而流程图中的箭头则是控制流,它表达的是程序执行的次序;(3)数据流图适合于宏观地分析一个组织业务概况,而程序流程图只适合于描述系统中某个加工的执行细节。

(4)数据流程图应该重点描述了数据加工的过程,主要是模块内部,数据流图则是描述模块之间的关系。

3.软件需求分析的任务是什么?有哪些主要步骤?

需求分析的基本任务是深入描述软件的功能和性能、确定软件设计的约束和软件同其它系统元素的接口细节、定义软件的其它有效性需求,总之,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。

主要步骤:

91.问题识别

(1) 功能需求:明确所开发的软件必须具备什么样的功能。

(2) 性能需求:明确待开发的软件的技术性能指标。

(3) 环境需求:明确软件运行时所需要的软、硬件的要求。

(4) 用户界面需求:明确人机交互方式、输入输出数据格式。

2. 分析与综合,导出软件的逻辑模型

分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。用图文结合的形式,建立起新系统的逻辑模型。

3. 编写文档

(1) 编写“需求规格说明书”,把双方共同的理解与分析结果用

规范的方式描述出来,作为今后各项工作的基础。(2) 编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用户使用的观点考虑软件。 (3) 编写确认测试计划,作为今后确认和验收的依据。

(4) 修改完善软件开发计划。在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。

4.简述结构化分析、设计的要点:

结构化分析方法适合于数据处理类型软件的需求分析。

其要点是"自顶向下" 地开发系统,由整体到各组成部分,由表及里,由抽象到具体,逐步求精.

(1) 模块化(2)由顶向下,逐步求精.(3)上层模块分解为下层模块,有三种不同的结构形式,即顺序结构,选择结构和循环结构.

5.数据字典包含哪些主要内容?

数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分.

据字典内容包括:

数据库中所有模式对象的信息,如表、视图、簇、及索引等。

分配多少空间,当前使用了多少空间等。

列的缺省值。

约束信息的完整性。

用户的名字。

用户及角色被授予的权限。

用户访问或使用的审计信息。

其它产生的数据库信息。

6.软件测试的目标是什么,有哪几种主要有测试方法?

软件测试的目标:

(1)测试是为了发现程序中的错误而执行程序的过程;

(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

(3)成功的测试是发现了至今为止尚未发现的错误的测试。

软件测试的方法有动态测试、静态测试和正确性证明3种。

7.白盒测试主要有哪些覆盖?

语句覆盖、判定覆盖、 条件覆盖、判定/条件覆盖、条件组合覆盖、 点覆盖、 边覆盖、路径覆盖

8、选择一种程序设计语言的主要有哪些依据?

为了使程序容易测试和维护以减少生命周期的总成本,选用的高级语言应该有理想的模块化机制,以及可读性好的控制结构和数据结构;为了便于调试和提高软件可靠性,语言特点应该使编译程序能够尽可能多地发现程序中的错误;为了降低软件开发和维护的成本,选用的语言应该有良好的独立编译机制。上述这些要求是选择语言的理想标准,但是在实际选用语言时不能仅仅考虑理论上的标准,还必须同时考虑实用方面的各种限制。

10(1)系统用户的要求 (2)可以使用的编译程序 (3)可以得到的软件工具 (4)系统规模 (5)程序员的知识

(6)软件可移植性要求 (7)软件的应用领域

9.软件的维护的目标是什么,有哪几种维护类型?

纠正在使用过程中暴露出来的错误而进行的改进性维护,

适应外部环境的变化而进行的适应性维护,改进原有的软件而进行的完善性维护,以及改进将来的可维护性和可靠性而进行的预防性维护。

软件维护的分类:软件维护主要划分为纠错性维护、适应性维护和完善性维护。

(1)纠错性维护。由于前期的测试不可能揭露软件系统中所有潜在的错误,用户在使用软件时仍将会遇到错误,诊断和改正这些错误的过程称为纠错性维护。

(2)适应性维护。由于新的硬件设备不断推出,操作系统和编译系统也不断地升级,为了使软件能适应新的环境而引起的程序修改和扩充活动称为适应性维护。

(3)完善性维护。在软件的正常使用过程中,用户还会不断地提出新的需求。为了满足用户新的需求而增加软件功能的活动称为完善性维护。

11.面向对象如何实现模块独立性,其偶合和内聚的含义是什么?

因为对象是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。因此,对象内部各种元素彼此结合得很紧密。内聚性相当强,由于完成对象所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少。因此,对象之间的耦合通常比较松。总之,面向对象使用对象、类、继承和消息的方法,既使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信来实现模块的独立性。

12.面向对象和面向过程软件工程有哪些区别?

(1)面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 (2)面向过程是把一件事一项工程分解成为一个个小的功能,用一个个函数来实现.

面向对象是把事情看成是一个个小的对象组成的,或者说一个个小部分组成的,这些对象之间的相互关系,构成了整个项目. 在面向对象的思想中,万物皆对象。而"类",就是对象的抽象或者说是概括。

13.简述对象、类、消息、方法的基本概念。

(1)对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

(2)类是具有相同或相似性质的对象的抽象。对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。 类具有操作,它是对象的行为的抽象,用操

作名和实现该操作的方法来描述。

(3)对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。

(4)类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。

14.简述面向对象分析设计的三个模型。

答:三个模型:对象模型、动态模型、功能模型

(1)对象模型描述系统的静态结构,包括类和对象,它们的属性和操作,以及它们之间的关系。构造对象模型的目的在于找出与应用程序密切相关的概念。对象模型用包含对象及对象的关系图表示。

(2)动态模型着重于系统的控制逻辑,考察在任何时候对象及其关系的改变,描述这些涉及时序和改变的状态。动态模型包括状态图和事件跟踪图。状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。事件跟踪图则侧重于说明系统执行过程中的一个特点“场景”,也叫做脚本(scenarios),是完成系统某个功能的一个事件序列。脚本通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件。

第11/12页

(3)功能模型着重于系统内部数据的传送和处理。功能模型表明,通过计算,从输出数据能得到什么样的输出数据,但不考虑参加计算的数据按什么时序执行。功能模型由多个数据流图组成,它们指明从外部输出,通过操作和内部存储,直到外部输出的整个数据流情况。功能模型还包括了对象模型内部数据间的限制。功能模型中的数据流图往往形成一个层次结构,一个数据流图的过程可以由下一层的数据流图作进一步的说明。

第一章 绪论

1.软件产品的特性是什么?⑴软件是一种逻辑产品,看不见也摸不着,因而具有无形性.⑵软件产品的生产主要是研制,通过复制就产生大量的软件产品.⑶软件产品不会用坏,不存在磨损,消耗问题.⑷软件产品的生产还未完全摆脱手工开发方式,大部分产品是"定做"的.⑸软件费用不断增加,软件成本相当昂贵.

2.什么是软件危机?产生原因是什么?⑴由于计算机运行速度,容量,可靠性有显著提高,为计算机的广泛应用创造了条件.但量,软件开发技术的进步一直未能满足发展出来的要求.在软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机.⑵软件危机的原因是由于软件产品本身的特点以及开发软件的方式,方法,技术和人员引起的:①软件的规模越来越大,结构越来越复杂;②软件开发的管理困难而复杂;③软件开发费用不断增加;④软件开发技术落后;⑤生产方式落后;⑥开发工具落后,生产率提高缓慢.

3.软件工程的性质,目标和内容是什么?⑴性质:是一门综合性交叉学科,它涉及计算机科学,工程科学,管理科学,数学等领域.⑵目的:是成功建造一个大型软件系统,所谓成功是要达到以下几个目标:①付出较底的开发成本;②达到要求的软件功能;③取得较好的软件性能;④开发的软件易于移植;⑤需要较低的维护费用;⑥能按时完成开发任务,及时交付使用;⑦开发的软件可靠性高;⑶内容:是软件开发技术和开发管理两个方面.主要研究软件开发方法,软件开发过程,软件开发工具和环境.在软件开发管理中,主要研究软件管理学,软件经济学,软件心理学.

4.软件工程面临的问题是什么?摆在软件工程面前有许多需要解决的棘手问题,如软件费用,软件可靠性,软件可维护性,软件生产率和重用等.

5.软件生产有几个阶段?各有何特征?⑴程序设计时代46-59.生产方式是个体手工劳动,使用的工具是机器语言.开发方法是追求编程技巧,不重视程序设计方法.⑵程序系统时代60-69.生产方式是作坊式的小集团合作生产,生产工具是高级语言,开发方法依旧靠个人技巧,但开发技术没有新的突破,大量软件开发的需求已提出,产生了尖锐的矛盾,导致软件危机的产生.⑶软件工程时代70-.生产方式是工程化的生产,使用数据库,开发工具,开发环境,网络,分布式,面向对象技术来开发软件.软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机.

6.软件工程过程有哪些过程?获取,供应,开发,操作,维护,管理,支持.

7.软件生存周期有哪几个阶段?由可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护等阶段组成.

8.软件生产周期模型有哪些主要模型?瀑布模型,增量模型,螺旋模型,喷泉模型,变换模型,基于知识的模型等.

9.有哪些主要软件开发方法?开结构化方法,Jackson方法,维也纳开发方法(VDM),面向对象的开发方法等.

第二章 软件可行性研究与项目开发计划

1.可行性研究的任务是什么?首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制.然后进行简要的需要分析,抽象出该项目的逻辑结构,建立逻辑模型.从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决办法,对每种解决方法都要研究它的可行性.可从技术可行性,经济可行性,社会可行性三方面分析研究每种解决方法的可行性.

2.可行性研究有哪些步骤?⑴确定项目规模和目标;⑵研究正在运行的系统;⑶建立新系统的高层逻辑模型;⑷导出和评价各种方案;⑸推荐可行的方案;⑹编写可行性研究报告.

3.可行性研究的目的?就是用最小的代价在尽可能短的时间确定该软件项目是否能够开发,是否值得开发.注意,可行性研究的目的不是去开发一个软件项目,而是研究该软件项目是否能够,是否值得去开发.

4.可行性研究报告的主要内容?主要内容有:⑴引言;⑵可行性研究前提;⑶对现有系统的分析; 1⑷所建议系统的技术可行性分析;⑸所建议系统的经济可行性分析;⑹社会因素可行性分析;⑺其他可供选择方案;⑻结论意见.

5.怎样计算投资回收期和纯收入?投资回收期就是使累计的经济效益等于最初的投资费用所需的时间.投资回收期越短,就越快获得利润,则该项目就越值得开发.项目纯收入的计算方法是在整个生存周期之内的累计经济效益(折合成现在值)与投资之差.

6.项目开发计划有哪些主要内容?⑴项目概述;⑵实施计划;⑶人员组织及分工;⑷交付使用期限.

第三章 软件需求分析

1.什么是需求分析?该阶段的基本任务是什么?⑴需求分析是指,开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程.⑵基本任务是要准确地定义新系统的目标,为了满足用户需求,回答系统必须"做什么"的问题.

2.简述结构化分析方法的步骤.⑴了解当前系统的工作流程,获得当前系统的物理模型;⑵抽象出当前系统的逻辑模型;⑶建立目标系统的逻辑模型;⑷作进一步补充和优化.

3.简述SA方法的优缺点.⑴是软件需求分析中公认的,有成效的,技术成熟,使用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析.该方法利用图形等半形式化工具表达需求,简明,易读,也易于使用,为后一阶段的设计,测试,评价提

供了有利条件.⑵在解决需求分析过程中的诸难点方面能力不足,主要表现在:①传统的SA方法仅是一个静态模型,没有反映处理的顺序,不适合描述实时控制系统.②SA方法使用数据流图DFD在分析与描述"数据要求"方面是有局限的,DFD应与数据库技术中的ER实体联系图结合起来.③DFD不适合描述人机界面系统的需求.SA方法往往对这一部分用自然语言作补充,对这类系统可采用其它的分析方法.④为了更精确地描述软件需求,提高软件系统的可靠性,安全性,也便于实现自动化,SA方法可与形式化方法结合起来.⑤借助于需求分析CASE工具,提高需求分析的质量及效率.

4.数据流图的作用是什么?画数据流图应注意什么?⑴数据流图(DFD)是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,反映系统必须完成的逻辑功能.⑵画数据流图注意事项有:①命名.要易于理解其含义.②画数据流而不是控制流.反映系统"做什么".只能是名词或名词短短.③一般不画物质流.④第个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工结果.⑤编号.子图应编号,子图上所有加工也要编号,子图的编号就是父图中相应加工的编号.加工的编号由子图号,小数点及局部号组成.⑥父图与子图的平衡.子图的输入输出数据流同父图相应加工的输入输出数据流必须一致.⑦局部数据存储.当某层数据流图中的数据存储不是父图中相应加工的外部接口而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储.一个局部数据存储只要当它作为某些加工的数据接口或某个加工特定的输入或输出时,就把它画出来,这样有助于实现信息隐蔽.⑧提高数据流图的易理解性.注意合理分解,要把一个加工分解成几个功能相对独立的子加工.分解时注意子加工的独立性,还应注意均匀性.

5.数据字典的作用是什么?数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅.数据字典和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分.

6.简述建立IDEF0图的步骤.⑴确定建模的范围,观点及目的;范围指所讨论的对象是什么,它的边界和外部接口是什么;观点是指从什么角度去考虑民研究的问题;目的是指确定所研究问题的意图及理由.⑵建立系统的内外关系图—A-0图.图中只有一个活动.用进入和离开的箭头表示系统与环境的数据接口,确定了系统边界.⑶建立顶层图—A0图.把A—0图分解为3-6个主要部分得到A0图,从结构上反映了模型的观点,从结构上反映了模型的观点,

是系统功能模型真正的顶层图.⑷建立低层次的图形.按照自顶向下的方法,从A0开始逐层分解.分解时遵循两条原则:首先,保持在同一水平上的分解(即宽度优先),如A1,A2,A3等图,而不是A1,A11,A111(此为深度优先),可避免较高层次的变化影响较低层次,造成可能的重复工作,同时可较早地查出错误及遗漏.其次,对于同一水平层次上的各个方框, 2

选择难度最大的部分往下分解.

7.应用题:用DFD描绘功能的需求.首先分析功能说明,先找出哪些是属于系统之外的外部实体,获得系统的输入和输出,其次考虑系统内部功能,然后画出顶层数据流图,随后分解系统,每个子系统有哪些流动着的数据,哪些需要暂时保存数据,通过什么加工使数据发生变换.(→数据流.○加工.□源或终点.=数据存储.)

第四章 软件概要设计

1.什么是软件概要设计,该阶段的基本任务是什么?⑴在软件设计阶段,需要把软件的逻辑模型变换为物理模型,着手实现软件的需求,并将设计的结果反映在"设计规模说明书"文档中,是一个把软件需求转换为软件表示的过程.软件概要设计只描述软件总的体系结构,因此也称为软件结构设计.⑵基本任务包括:①设计软件系统结构(简称软件结构);②数据结构及数据库设计;③编写概要设计文档;④评审.

2.软件设计的基本原理包括哪些内容?⑴模块化,指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程;⑵抽象,指抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其它因素;⑶信息隐蔽,指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这此信息的其它模块来说,是不能访问的;⑷模块独立性,指每个模块只完成系统要求的独立子功能,并且与其它模块的联系最少且接口简单.模块独立性包括两个度量标准:耦合性,内聚性.

3.模块的耦合性,内聚性包括哪些种类?各表示什么含义?⑴耦合性包括:①无直接耦合,指两个模块之间没有直接联系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息;②数据耦合,指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值的传递;③标记耦合,指两个模块之间传递的是数据结构,如高级语言中的数组名,记录名,文件名等这此名字即为标记,其实传递的是这个数据结构的地址;④控制耦合,指一个模块调用另一个模块时,传递的是控制变量(如开关,标志等),被调用模块通过该控制变量的值有选择地执行块内某一功能;⑤公共耦合,指通过一个公共数据环境相互作用的那些模块间的耦合;⑥内容耦合,指一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部.⑵内聚性包括:

①偶然内聚,指一个模块内的各处理元素之间没有任何联系;②逻辑内聚,指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能;③时间内聚,把需要同时执行的动作组合在一起形成的模块;④通信内聚,指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据;⑤顺序内聚,指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入;⑥功能内聚,指模块内所有元素共同完成一个功能,缺一不可.

4.简述软件结构设计优化准则.⑴划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性.并以此原则优化初始的软件结构.⑵一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近.⑶软件结构的深度,宽度,扇入,扇出应适当.⑷模块的大小要适中.⑸模块的接口要简单,清晰,含义明确,易于实现,测试与维护.

5.变换型数据流图与事务性数据流图有什么区别?⑴变换型数据流图包含输入,变换(或称处理)和输出3个部分,即数据处理的工作过程为三步:取得数据,变换数据和给出数据.变换是系统的主加工,对输入数据进行变换得到输出数据,因此变换型的DFD是一个顺序结构.⑵事务型数据流图的事务中心将输入流分离成许多发散的数据流,形成多个加工路径,根据输入的值选择其中一个路径来执行.

6.简述变换分析设计与事务分析设计的设计步骤.⑴变换分析设计步骤:①确定DFD中的变换中心,逻辑输入和逻辑输出;②设计软件结构的顶层和第一层→变换结构;③设计中,下层模块;④根据设计准则对初始的软件结构进行优化.⑵事务分析设计步骤:①确定DFD中的事务中心和加工路径;②设计软件结构的顶层和第一层→事务结构;③事务结构中,下层模块的设计,优化等工作同变换结构.

第五章 软件详细设计

1.详细设计的基本任务是什么?①为每个模块进行详细的算法设计;②为模块内的数据结构进行

设计;③对数据库进行物理设计,即确定数据库的物理结构;④其它设计;⑤编写详细设计说明书;⑥评 3

审;

2.结构化程序设计方法的基本要点是什么?该方法是综合应用一些手段来构造高质量程序的思想方法.基本要点有:⑴采用自顶向下,逐步求精的程序设计方法;⑵使用3种基本控制结构构造程序;⑶主程序员组的组织形式;

3.详细设计主要使用哪些描述工具?各有什么特点?描述工具主要是图形工具,过程设计语言和

表格.⑴图形工具包括程序流程图和PAD图等.程序流程图的优点是直观清晰,易于使用,是开发者普遍采用的工具.PAD

图是一种由左向右展开的二维树型结构,控制流程为自上而下,从左到右地执行.⑵过程设计语言是一种用于描述模块算法设计和处理细节的语言,一般分为内外2层,外层语法应符合一般程序设计语言常用的方法规则,而内层语法则用一些简单的句子,短语和通用的数学符号,来描述程序应执行的功能.⑶表格工具如判定表可作为详细设计中描述逻辑条件复杂的算法.

4.JSP方法有哪些设计步骤?该方法有哪些特点?㈠共有5个步骤:①分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构.②找出输入数据结构和输出数据结构中有对应关系的数据单元.③按一定的规则由输入,输出的数据结构导出程序结构.④列出基本操作与条件,并把它们分配到程序结构图的适当位置.⑤用伪码写出程序.㈡特点:①适用于输入数据和输出数据结构之间有对应关系的问题求解;②JSP方法主要体现程序结构的设计,不明确地划分软件概要设计和详细设计的两个阶段;③JSP方法主要用于规模不大的数据处理系统,以及输入,输出数据结构能较容易地描述出来的情况.

第六章 软件编码

1.在项目开发时,选择程序设计语言通常考虑哪些因素?程序设计语言是人机通信的工具之一,使用这类语言"指挥"计算机"干什么,是人类特定的活动.选择程序设计语言通常需要考虑语言的心理特性,工程特性和技术特性.语言的心理特性对通信质量有影响.编码过程是软件工程中的一个步骤,语言的工程特性对软件开发的成功与否有重要影响.此外,语言的技术特性也会影响设计的质量.

2.什么是程序设计风格?应在哪些方面注意培养好的设计风格?⑴程序设计风格是指一个人编制程序时所表现出来的特点,习惯,逻辑思路等.良好的编程风格可以减少编码错误,减少读程序的时间,从而提高软件的开发效率.⑵与编程风格有关的因素包括:①源程序文档化;②数据说明;③语句构造;④输入和输出;⑤效率.注意从这几个方面培养和学习良好的编程风格,使编出的程序清晰易读,易于测试与维护,从而提高软件的质量.

1、可行性研究的任务是什么?

首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否

能实现。㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。

2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?

一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点”或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。

3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?

非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试与集 4成测试和在一起,同时完成。㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。㈣渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。㈤渐增式比较彻底,已测试的模块和新的模块再测试。㈥渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时间。㈦非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。渐增式测试有以下两种不同的组装模块的方法:㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所有模块。㈡自低向上结合。该方法仅需编写驱动模块。其步骤为:①把底层模块组合成实现一个个特定子功能的族。②为每一个族编写一

个驱动模块,以协调测试用例的输入和测试结果的输出。③对模块族进行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。⑤重复②至④步,直至软件系统全部测试完毕。

4、软件质量与软件质量保证的含义是什么? 从实际应用来说,软件质量定义为:㈠与所确定的功能和性能需求的一致性。㈡与所成文的开发标准一致性。㈢与所有专业开发的软件所期望的隐含特性的一致性。软件质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。5、软件工程标准化的意义是什么?都有哪些软件工程标准?积极推进软件工程标准化,其道理是显而易见的。仅就一个软件开发项目来说,有许多层次,不同分工的人员相互配合,在开发项目的各个部分以及各开发阶段之间也都存在许多联系和衔接问题。如何把这些错综复杂的关系协调好,需要有一系列统一的约束和规定。在软件开发项目取得阶段成果或最后完成是时,需要进行阶段评价和验收测试。投入运行的软件,其维护工作中遇到问题又与开发工作者有着密切的关系。软件的管理工作则渗透到软件生存期的每一个环节。所有这些都要要求提供统一的行动规范和衡量准则,使得各种工作都有章可循。软件工程的标准主要有以下三个:㈠FIPS135是美国国家标准局发布的《软件文档管理指南》㈡NSAC ——39是美国核子安全分析中心发布的《安全参数显示系统的验证与确认》。㈢ISO5807是国际标准化组织公布(现已成为中国的国家标准)的《信息处理—数据流程图、程序流程图、程序网络图和系统资源图的文件编制符号及约定》。 5、需求分析阶段的基本任务是什么? 需求分析阶段的基本任务是要准确的定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。本阶段要进行以下几方面的工作:㈠问题识别。双方确定对问题的综合需求,这些需求包括:功能需求、性能需求、环境需求、用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。㈡分析与综合,导出软件的逻辑模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成份,并用图文结合的形式,建立起新系统的逻辑模型。㈢编写文档。编写“需求规格说明书”、编写初步用户使用手册、编

写确认测试计划、修改完善软件开发计划。

6、采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点? ㈠等价类划分。等价类划分是将输入数据域按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试。

㈡边界值分析。该方法是将测试边界情况作为重点目标,选取正好等于,刚刚大于或刚刚小于边界值的情况,根据这些情况选择测试用例。

㈢错误推测。错误推测法没有确定的步骤,凭检验进行。它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例。

㈣因果图。 因果图能有效的检测输入条件的各种组合可能会引起的错误。因果图的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。 57、说明动态建模的过程。 ㈠准备脚本。动态分析从寻找事件开始,然后确定各对象的可能事件的顺序。在分析阶段不考虑算法的执行,算法是实现模型的一部分。 ㈡确定事件。 确定所有外部事件。事件包括所有来自或发往用户的信息、外部设备的信号、输入、转换和动作。㈢准备事件跟踪表。 把脚本表示成一个事件跟踪表,对象为表中的列,给每一个对象分配一个独立的列。 ㈣构造状态图。 对各对象类建立状态图,反映对象接收和发送的事件,每个事件跟踪都对应于状态图中一条路径。

8、软件生产经历了几个阶段?各有何特征? 软件生产至今已经历了三个阶段:㈠程序设计时代(1946-1956):这个阶段的生产方式是个体手工劳动,使用的工具实际其语言、汇编语言。开发方法是追求编程技巧,追求程序运行效率。硬件特征是价格贵、存储容量小,运行可靠性差。软件特征是只有程序、程序设计概念,不重视程序设计方法。㈡程序系统时代(1956-1968):这个阶段的生产方式是作坊式的小集团合作生产,生产工具是高级语言,开发方法仍就靠个人技巧,但开始提出结构化方法。硬件特征是速度、容量、工作可靠性有明显提高。软件特征是程序员数量猛增,但开发技术没有新的突破,开发人员的素质和落后的开发技术不适应规模大、结构复杂的软件开发,导致软件危机的产生。㈢软件工程时代(1968至今):这个阶段的生产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。硬件特征是向超高速、大容量、微型化以及网络化方向发展。软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危

机。5、简述Gantt图的功能及不足。Gantt图常用水平线段来描述把任务分解成子任务,以及每个子任务的进度安排,动态反映软件开发进度情况,该图可以:表示任务分解成子任务情况;表示每个任务的开始时间和完成时间,线段的长度表示子任务完成所需要的时间;表示子任务之间的并行和串行关系。Gantt图只能表示任务之间的并行与串行的关系,难以反映多个任务之间存在的复杂关系,不能直观表示任务之间相互依赖制约关系,以及哪些任务是关键字任务等信息,因此仅仅用Gantt图作为进度的安排是不够的。6、什么是数据字典?其作用是什么?它有哪些条目?数据字典(简称DD)是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。他和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。数据项是组成数据流和数据存储的最小元素。源点、终点不在系统之内,故一般不在字典中说明。7、调试的目的是什么?调试有哪些技术手段?调试的目的是确定错误的原因和位置,并改正错误,因此调试也成为纠错。调试技术主要有:简单的调试方法,主要有在程序中插入打印语句、运行部分程序等;归纳法调试,他从测试结果发现的线索(错误迹象、征兆)入手、分析他们之间的联系,导处错误原因的假设,然后再证明或否定这个假设;演绎法调试,该方法列出所有可能的错误原因的假设,然后利用测试数据排除不适当的假设,最后再测试数据验证余下的假设确实是出错的原因;回溯法调试,该方法从程序产生错误的地方出发,人工沿程序的逻辑路径反向搜索,直到找到错误的原因为止。

10、什么是数据流图?其作用是什么?其中的基本符号各表示什么含义?数据流图简称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据流图有四种基本图形符号:“→”箭头表示数据流;“○”圆或椭圆表述加工;“=”双杠表示数据存储;“”方框表示数据的源点或终点。

21、 什么是确认测试?该阶段有哪些工作? 确认测试又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明

书中确定的指标相符合。确认测试阶段有两项工作,进行确认测试与软件配置审查。确认测试一般是在模拟环境中运用黑盒测试方法,由专门测试人员和用户参加的测试。软件配置审查的任务是检查软件的所有文档资料的完整性、正确性。如果发现遗漏和错误,应补充和改正,同时要编排好目录,为以后的软件维护工作奠定基础。

2、详细设计的基本任务是什么?有哪几种描述方法? 详细设计是软件设计的第二阶段,其基本任务有:为每个模块进行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,即确定数据库的物理结构;其它设计,根据软件系统类型,还可能要进行代码设计、输入/输出格式设计、人机对话设计; 6编写详细设计说明书;评审。详细描述处理过程常用三种工具:图形、表格和语言。如结构化程序流程图、盒图和问题分析图。IPO图也是详细设计的主要工具之一。表格工具如判定表可作为详细设计中描述逻辑条件复杂的算法。过程设计语言(PDL)是一种用于描述模块算法设计和处理细节的语言工具。5、什么是软件危机?其产生的原因是什么?当软件开发技术的进步不能跟上硬件技术的进步,未能满足发展的要求,致软件开发中遇到的问题找不到解决的办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。主要表现为:经费预算经常突破,完成时间一再拖延;开发的软件不能满足用户要求;开发的软件可维护性差;开发的软件可靠性差。造成软件危机的原因是由于软件产品本身的特点以及开发软件的方式、方法、技术和人员引起的。共产生原因主要有以下几方面:软件的规模越来越大,结构越来越复杂;软件开发管理困难而复杂;软件开发费用不断增加;软件开发技术落后;生产方式落后;开发工具落后,生产率提高缓慢。

23、软件维护的特点是什么?主要体现在三个方面:非结构化维护和结构化维护。软件的开发过程对软件的维护有很大的影响。若不采用软件工程的方法开发软件,则软件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护。若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护。维护的困难性。软件维护的困难性是由于软件需求分析和开发方法的缺陷。软件生存周期中的开发阶段没有严格而有科学的管理和规划,就会引起软件运行时的维护困难。

软件维护的费用。软件维护的费用在总费用中的比重是在不断增加的,这是软件维护有形的代价。另外还有无形的代

价,即要占用更多的资源。软件维护费用增加的主要原因是软件维护的生产率非常低。 26、软件概要设计阶段的基本任务是什么?⑴设计软件系统结构(简称软件结构),具体为:①采用某种设计方法,将一个复杂的系统按功能划分成模块。②确定每个模块的功能。③确定模块之间的调用关系。④确定模块之间的接口,即模块之间传递的信息。⑤评价模块结构的质量。⑵数据结构及数据库设计,汉数据结构的设计及数据库的设计。⑶编写概要设计文档。主要有:概要设计说明书;数据库设计说明书;用户手册;修订测试计划。⑷评审。5、快速原型模型有几种?各有何特点?根据原型的不同作用,有三类原型模型:⑴探索型原型。这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。⑵实验型原型。这种原型主要用于设计阶段,考核实现方案是否合适,能否实现,对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。⑶演化型原型。这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框或者包含系统的主要功能。在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程。

27、在划分软件生存周期阶段时,应遵循的基本原则是什么?软件生存周期的各个阶段有不同的划分。软件规模、种类、开发方式、开发环境以及开发使用方法都影响软件生存周期的划分。在划分软件生存周期阶段时,应遵循的一条基本原则是各阶段的任务应尽可能相对独立,同一阶段各项目任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件项目开发的组织管理。

28、请说明软件文档的作用?软件开发项目生存期各阶段都包含哪些文档?软件文档的作用是:提高软件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软件功能、性能。软件开发项目生存期各阶段应包括得文档以及与各类人员的关系如下:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、测试计划、概要设计说明书、详细设计说明书、用户手册、操作手册、测试分析报告、开发进度月报、项目开发总结、程序维护手册

(维护修改建议)。

29、软件开发成本估算方法有哪几种? 自顶向下估算方法。估算人员参照以前完成的项目所耗费的总成本(或总工作量),来推算将要开发的软件的总成本(或总工作量),然后把它们按阶段、步骤和工作单元进行分配,这样方法称为自顶向下的估算方法。自底向上估算方法。自底向上估算方法是将待开 7

发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,得到软件的总开发量。

差别估算方法。差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找出与某个相类似项目的若干不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。专家估算法。依靠一个或多个专家对要求的项目做出估算。类推估算法。算式估算法。

30、简述SA方法的优缺点? 结构化分析方法是软件需求分析中公认的、有成效的、技术成熟、使用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析。该方法利用图形等半形式化工具表达需求,简明、易读,也易于使用,为后一阶段的设计、测试、评价提供了有利的条件。但SA方法也存在有不足之处:⑴传统的SA方法主要用于数据处理方面的问题,主要工具DFD体现了系统“做什么”的功能,但它仅是一个静态模型,没有反映处理的顺序,即控制流程。因此,不适合描述实时控制系统。⑵SA方法使用DFD在分析与描述“数据要求”方面是有限的,DFD应与数据库技术中的实体联系图(ER图)结合起来。⑶DFD不是和描述人机界面系统的需求。SA方法则对这一部分用自然语言作补充,对这类系统可采取其它的分析方法。⑷为了更精确地描述软件需求,提高软件系统的可靠性、安全性,也便于实现自动化,SA方法可与形式化方法结合起来。5、什么是软件工程?它的目标和内容是什么?软件工程是一种用科学知识和技术原理来定义、开发、维护软件的一门学科。软件工程是一门工程性学科,目的是成功的建造一个大型软件系统,所谓成功是要达到以下几个目标:付出较低的开发成本,达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。软件工程研究的主要内容是软件开发技术和软件开发管理两方面,在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,主要研究软件管理学、软件经济学、软件心理学等。6、简述容错系统的设计过程?容错系统的设计过程包括以下设计步骤:⑴安设计

任务要求进行常规设计,尽量保证设计的正确。⑵对可能出现的错误分类,确定实现容错的范围。⑶按照成本—效益最优原则,选用某种冗余手段来实现对各类错误的屏蔽。⑷分析或验证上述冗余结构的容错效果。如果效果没有达到预期的程度,则应重新进行冗余结构设计。如此重复,直到有一个满意的结果为止。7、渐增模型有几种?各有何特点?渐增模型是瀑布模型的变种,它有两类:⑴增量构造模型。它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。也就是说在前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开发。⑵演化提交模型。它在瀑布模型基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增量提交。8、试述系统开发的生命周期。系统开发是管理信息系统建设中最重要的一个阶段,从项目开发开始到结束的整个过程,称为系统开发的生命周期。系统开发的生命周期一般分为以下阶段:⑴系统分析。这一阶段的主要任务是明确用户的信息需求,提出新系统的逻辑方案。需要进行的工作有系统的初步调查,可行性研究,现行系统的详细调查及新系统逻辑模型的提出等。⑵系统设计。这一阶段的主要任务是根据新系统的逻辑方案进行软、硬件系统的设计,其中包括总体结构设计、输出设计、输入设计、处理过程设计、数据存储设计和计算机系统方案的选择等。⑶系统实施。这一阶段将设计的系统付诸实施,主要工作有软件的程序编制与软件包的购置、计算机与通讯设备的购置、系统的安装、调试与测试、新旧系统的转换等。

34、增量模型的基本思想是什么?为了克服瀑布模型的局限性,使开发过程具有一定的灵活性和可修改性,于是产生了增量模型。它是在瀑布模型的基础上加以修改而形成的。增量模型和瀑布模型之间的本质区别是:瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节。而增量模型属于非整体开发模型,它推迟某些阶段或所有阶段中的细节,从而较早的产生工作软件。增量模型是在项目的开发过程中以一系列的增量方式开发系统。增量方式包括增量开发和增量提交。增量开发是指在项目开发周期内,以一定的时间间隔开发部分工作软件;增量提交是指在项目开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。增量开发和增量提交可以同时使用,也可以单独使用。5、对软件开发环境的基本要求有哪些?⑴软件开发环境应是高度集成的一体化的系统。⑵软件开 8发环境应具有

高度的通用性。⑶软件开发环境应易于定制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活性。⑷软件开发环境不但可应用性要好,而且是易使用的、经济高效的系统。⑸软件开发环境应有辅助开发向半自动开发和自动开发逐步过渡的系统。6、项目开发计划有哪些内容?项目开发计划是一个管理性的文档,它的主要内容如下:⑴项目概述:说明项目的各项主要工作;说明软件的功能、性能;为完成项目应具备的条件;用户及合同承包者承担的工作、完成期限及其它条件限制;应交付的程序名称,所使用的语言及存储形式;应交付的文档。⑵实施计划:说明任务的划分,各项任务的责任人;说明项目开发进度,按阶段应完成的任务,用图表说明每项任务的开始时间和完成时间;说明项目的预算,各阶段的费用支出预算。⑶人员组织及分工:说明开发该项目所需人员的类型、组成结构、数量等。⑷交付期限:说明项目最后完工交付的日期。7、软件设计的基本原理包括哪些内容?模块化。是指解决一个复杂问题时自顶向下逐层把软件系统化分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手段。抽象。抽象是认识复杂现象过程中使用的思维工具即抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其它因素。软件工程过程中的每一部都可以看作是对软件解决方法的抽象层次的一次细化。信息隐蔽。是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。数据独立性。指每个模块只完成系统要求的独立的子功能,并且与其它模块的联系最少且接口简单。8、白盒测试法有哪些覆盖标准?试对他们的检错能力进行比较。白盒测试法的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。语句覆盖发现错误能力最弱。判定覆盖包含了语句覆盖,但它可能会使一些条件的不到测试。条件覆盖对每一条件进行单独检查,一般情况它的检错能力较判定覆盖强,但有时达不到判定覆盖的要求。判定/条件覆盖包含了判定覆盖和条件覆盖的要求,但由于计算机系统软件实现方式的限制,实际上不一定达到条件覆盖的标准。条件组合覆盖发现错误能力较强,凡满足其标准的测试用例,也必须满足前四种覆盖标准。前五种覆盖

标准把注意力集中在单个判定或判定的各个条件上,可能会使程序某些路径没有执行到。路径覆盖根据各判定表达式取值的组合,使程序沿着不同的路径执行,查错能力强。但由于它是从各判定的整体组合出发设计测试用例的,可能使测试用例达不到条件组合覆盖的要求。

1. 什么是软件工程?目前有哪几种主要的软件工程方法?

概括地说,软件工程是指导计算机软件开发和维护的一门工程学科.采用工程的概念、原理、技术、和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

但软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。

主要有传统方法也称为经典软件工程方法或生命周期方法或结构化范型和面向对象方法。

2、流程图与数据流图有什么主要区别?(1)数据流图(date flow diagram , DFD),是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是从数据的角度来描述一个系统的;而流程图则是从对数据加工的角度来描述系统的;(2)数据流图中的箭头是数据流,而流程图中的箭头则是控制流,它表达的是程序执行的次序;(3)数据流图适合于宏观地分析一个组织业务概况,而程序流程图只适合于描述系统中某个加工的执行细节。

(4)数据流程图应该重点描述了数据加工的过程,主要是模块内部,数据流图则是描述模块之间的关系。

3.软件需求分析的任务是什么?有哪些主要步骤?

需求分析的基本任务是深入描述软件的功能和性能、确定软件设计的约束和软件同其它系统元素的接口细节、定义软件的其它有效性需求,总之,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。

主要步骤:

91.问题识别

(1) 功能需求:明确所开发的软件必须具备什么样的功能。

(2) 性能需求:明确待开发的软件的技术性能指标。

(3) 环境需求:明确软件运行时所需要的软、硬件的要求。

(4) 用户界面需求:明确人机交互方式、输入输出数据格式。

2. 分析与综合,导出软件的逻辑模型

分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。用图文结合的形式,建立起新系统的逻辑模型。

3. 编写文档

(1) 编写“需求规格说明书”,把双方共同的理解与分析结果用

规范的方式描述出来,作为今后各项工作的基础。(2) 编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用户使用的观点考虑软件。 (3) 编写确认测试计划,作为今后确认和验收的依据。

(4) 修改完善软件开发计划。在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。

4.简述结构化分析、设计的要点:

结构化分析方法适合于数据处理类型软件的需求分析。

其要点是"自顶向下" 地开发系统,由整体到各组成部分,由表及里,由抽象到具体,逐步求精.

(1) 模块化(2)由顶向下,逐步求精.(3)上层模块分解为下层模块,有三种不同的结构形式,即顺序结构,选择结构和循环结构.

5.数据字典包含哪些主要内容?

数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分.

据字典内容包括:

数据库中所有模式对象的信息,如表、视图、簇、及索引等。

分配多少空间,当前使用了多少空间等。

列的缺省值。

约束信息的完整性。

用户的名字。

用户及角色被授予的权限。

用户访问或使用的审计信息。

其它产生的数据库信息。

6.软件测试的目标是什么,有哪几种主要有测试方法?

软件测试的目标:

(1)测试是为了发现程序中的错误而执行程序的过程;

(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

(3)成功的测试是发现了至今为止尚未发现的错误的测试。

软件测试的方法有动态测试、静态测试和正确性证明3种。

7.白盒测试主要有哪些覆盖?

语句覆盖、判定覆盖、 条件覆盖、判定/条件覆盖、条件组合覆盖、 点覆盖、 边覆盖、路径覆盖

8、选择一种程序设计语言的主要有哪些依据?

为了使程序容易测试和维护以减少生命周期的总成本,选用的高级语言应该有理想的模块化机制,以及可读性好的控制结构和数据结构;为了便于调试和提高软件可靠性,语言特点应该使编译程序能够尽可能多地发现程序中的错误;为了降低软件开发和维护的成本,选用的语言应该有良好的独立编译机制。上述这些要求是选择语言的理想标准,但是在实际选用语言时不能仅仅考虑理论上的标准,还必须同时考虑实用方面的各种限制。

10(1)系统用户的要求 (2)可以使用的编译程序 (3)可以得到的软件工具 (4)系统规模 (5)程序员的知识

(6)软件可移植性要求 (7)软件的应用领域

9.软件的维护的目标是什么,有哪几种维护类型?

纠正在使用过程中暴露出来的错误而进行的改进性维护,

适应外部环境的变化而进行的适应性维护,改进原有的软件而进行的完善性维护,以及改进将来的可维护性和可靠性而进行的预防性维护。

软件维护的分类:软件维护主要划分为纠错性维护、适应性维护和完善性维护。

(1)纠错性维护。由于前期的测试不可能揭露软件系统中所有潜在的错误,用户在使用软件时仍将会遇到错误,诊断和改正这些错误的过程称为纠错性维护。

(2)适应性维护。由于新的硬件设备不断推出,操作系统和编译系统也不断地升级,为了使软件能适应新的环境而引起的程序修改和扩充活动称为适应性维护。

(3)完善性维护。在软件的正常使用过程中,用户还会不断地提出新的需求。为了满足用户新的需求而增加软件功能的活动称为完善性维护。

11.面向对象如何实现模块独立性,其偶合和内聚的含义是什么?

因为对象是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。因此,对象内部各种元素彼此结合得很紧密。内聚性相当强,由于完成对象所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少。因此,对象之间的耦合通常比较松。总之,面向对象使用对象、类、继承和消息的方法,既使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信来实现模块的独立性。

12.面向对象和面向过程软件工程有哪些区别?

(1)面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 (2)面向过程是把一件事一项工程分解成为一个个小的功能,用一个个函数来实现.

面向对象是把事情看成是一个个小的对象组成的,或者说一个个小部分组成的,这些对象之间的相互关系,构成了整个项目. 在面向对象的思想中,万物皆对象。而"类",就是对象的抽象或者说是概括。

13.简述对象、类、消息、方法的基本概念。

(1)对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

(2)类是具有相同或相似性质的对象的抽象。对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。 类具有操作,它是对象的行为的抽象,用操

作名和实现该操作的方法来描述。

(3)对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。

(4)类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。

14.简述面向对象分析设计的三个模型。

答:三个模型:对象模型、动态模型、功能模型

(1)对象模型描述系统的静态结构,包括类和对象,它们的属性和操作,以及它们之间的关系。构造对象模型的目的在于找出与应用程序密切相关的概念。对象模型用包含对象及对象的关系图表示。

(2)动态模型着重于系统的控制逻辑,考察在任何时候对象及其关系的改变,描述这些涉及时序和改变的状态。动态模型包括状态图和事件跟踪图。状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为。事件跟踪图则侧重于说明系统执行过程中的一个特点“场景”,也叫做脚本(scenarios),是完成系统某个功能的一个事件序列。脚本通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件。

第11/12页

(3)功能模型着重于系统内部数据的传送和处理。功能模型表明,通过计算,从输出数据能得到什么样的输出数据,但不考虑参加计算的数据按什么时序执行。功能模型由多个数据流图组成,它们指明从外部输出,通过操作和内部存储,直到外部输出的整个数据流情况。功能模型还包括了对象模型内部数据间的限制。功能模型中的数据流图往往形成一个层次结构,一个数据流图的过程可以由下一层的数据流图作进一步的说明。


相关文章

  • 会用神机就会用品茗
  • 会神机就会品茗 轻轻松松不变习惯 步骤 神机 专业工程操作 1.1新建工程 1.1.1新建专业工程 1.2.1输入名称打开1.2.2选择模板 1.2.3出现定额编号与软件狗编号不一致,点击设置定额库对应编号输入信息 2.1.1清单定额套取 ...查看


  • 简单好用的进销存软件,仓库管理软件
  • 一款简单的进销存软件,仓库管理软件 系统概述 启航软件旗下的一套专门针对中小商户的进销存软件,仓库管理软件.系统的模块化程度较高,众多功能经过精心设计,巧妙地集成于一个模块中,使业务操作变得一目了然,简单快捷,无需培训就能够轻松上手,省时又 ...查看


  • 适于数值模拟的三维工程地质建模方法
  • 第31卷 第11期 岩 土 工 程 学 报 Vol.31 No.11 2009年 11月 Chinese Journal of Geotechnical Engineering Nov. 2009 适于数值模拟的三维工程地质建模方法 徐能雄 ...查看


  • 园林施工管理A
  • 2.园林程建设包括计划.和实施三大阶段. 3.园林工程建设施工是对已经完成计划.设计两个阶段的工程项目的 . 4.园林工程建设以 5.园林工程建设施工管理的突出特点就是对 植物 进行养护.修剪.造型.培养. 6.园林工程建设施工工艺要求严. ...查看


  • ××建设项目地灾评估报告 171
  • 前 言 一.任务的由来 根据<地质灾害防治条例>(国务院令第394号)及国土资源部 <关于加强地质灾害危险性评估工作的通知>(国土资发[2004]69号)等有关文件的规定,受××委托,××公司承担了××建设项目的地质 ...查看


  • 简单财务管理软件简介
  • 简单财务管理软件─国内首款与WPS完全兼容的财务软件! ●推广期免费赠送注册文件,可做999帐套,完全兼容最新32.64位操作系统(vista.Win7). ●适用:各类企业.非营利组织.担保公司.农民专业合作社.医院会计... ●有特殊功 ...查看


  • 2014年服装进销存排名
  • 2014年十大服装管理软件服装进销存系统排名情况 随着信息技术的飞速发展,企业进销存的管理应用相应的软件使这一动态的进销存过程更加有条理,应用进销存管理,不仅使企业的进销存管理实现了即时性,结合互连网技术更使进销存管理实现了跨区域管理. 进 ...查看


  • 简单软件项目工作计划范例
  • 简单软件项目工作计划范例 这是一篇简单软件项目工作计划范例,文章用简洁的语言向大家展示了软件项目的工作计划,展示了项目工作的条理性.系统性.下面让我们一起来看看吧! 1.前期工作 (一个月) 人事部.财务部及网络部共同协商.对人力资源部.财 ...查看


  • 新会计准则在建筑企业工程索赔中的要求与应用实践
  • 摘要:随着新会计准则的实施,对于建筑企业中的会计管理的各方面都提出了新的要求,随着建筑行业的快速发展,建筑行业中的工程索赔种类及形式也变得越来越复杂,本文就在对建筑企业工程索赔的基本特点进行简单分析的基础上,探讨新会计准则在建筑企业工程索赔 ...查看


  • 软件编译技术课程总结
  • 软件编译技术论文 学号: 姓名: 班级: 摘要 软件编译技术是计算机及相关专业的一门重要专业课程,在计算机科学中有很重要的地位和作用,已被国内外高校列为计算机专业的主要课程.它主要介绍了高级程序设计语言编译程序构造的一般原理.基本设计方法. ...查看


热门内容