1、. .1什么是软件工程?根本原理有哪些?22本钱_效益分析可用哪些指标进展度量?写出公式23什么是数据流图?其中的根本符号各表示什么含义?画出定货系统根本数据流图。24非渐增式测试与渐增式测试有什么区别?25试从根本符号和设计法分析HC图与JACKSON图异同点26软件测试的目的是什么?27构造化程序设计的思想是什么?28请解释极限编程和自适应软件开发,并说明其异同?29需求工程的起始阶段,需求工程师的主要工作是?210请画出“在餐厅使用信用卡付费这一活动的完整用例图?211分析说明构造化分析和面向对象分析的区别?212 请简要给出评价软件设计质量的标准?213 一个良好的设计类需要满足四个特
2、点,请详细描述这四个特点?214软件工程估算容与步骤215面向对象设计的准那么是什么?有哪5个层次和4个局部?216简述软件工程目标和面临的主要问题。217简述软件工程过程。218简述模块独立性的原那么。219简述构造化程序设计法的根本要点220简述软件生命期开发法的根本过程及每个阶段的任务。221复印机的工作流程大致如下:222简述文档在软件工程中的作用。223简述软件工程管理过程。224简述系统分析员应该具备的主要知识构造和根本素质。225简述谓软件开发法?请列举四种主要法。226简述单元测试的根本容。227什么是软件生存期模型?请至少列举四种主要模型?228衡量模块独立的两个标准是什么?
3、它们各表示什么含义?网上229简述白盒测试的思想,并列举两种典型的测试技术。230简述CMM软件能力成熟度模型5个等级的含义231简述软件维护的定义232简述软件测试的定义233 UML建模中主要包括哪九种图?并说明类图的定义及其中常见的关系有哪些?234什么是字据字典?其作用是什么?它有哪些条目?235软件工程的两大型分别是什么?它们有什么不同?236如画分层数据流图?237面向对象程序设计有哪些优点?238在软件测试中,应注意哪些原那么?239程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。240面向对象分析与面向对象设计的关系?241本钱-效益分析的目的是什么?可用哪
4、些指标进展度量?242软件设计分哪几个阶段,它们的主要任务是什么?243用户需求和系统需求各有什么特点?244面向对象设计的准那么?245需求分析过程主要有哪几个步骤?246软件设计分哪几个阶段,它们的主要任务是什么?247什么是软件构造图?它有哪些主要元素?248面向对象法的特点是什么?为什么要用面向对象法开发软件?249什么是编码风格?请根据自己的编程经历编写一个编程本卷须知。250软件生命期各阶段的任务是什么?251非渐增式测试与渐增式测试有什么区别?252面向对象程序设计有哪些优点?253模块间的耦合性有哪几种?254软件开发步骤包括哪些过程?255数据字典有哪几类元素构成?256大型
5、软件系统的设计思想是什么?257、数据库设计一般分为哪几个阶段?形成哪三种模式?P101258什么是软件危机?其产生的原因是什么?P7259、概要设计的原那么?P72260阐述构造化设计的主要思想?P79261软件工程主要研究哪些领域?P16262以G.J.Myers的观点,简述对软件测试的目的。263就程序设计语言的工程特性而言,对程序编码有哪些要求?264模块的聚性包括哪些类型?265可行性研究报告的主要容有哪些?266系统设计的容是什么?267什么是软件危机?软件危机的表现是什么?其产生的原因是什么?268软件质量保证应做好哪几面的工作?269软件复用270、Case技术271请说明软件
6、文档的作用?软件开发工程生存期各阶段都包含哪些文档?272什么是数据字典?其作用是什么?它有哪些条目?273采用黑盒技术设计测试用例有哪几种法?这些法各有什么特点?274谓软件生存期?其可以划分为几个时期?每个时期又可分为几个阶段?每个阶段的主要任务是什么?275如做好软件质量保证工作?276什么是软件工程?什么是软件危机?277软件的可行性研究主要研究哪些问题?并对此进展说明。278什么是黑盒测试,适用的法有哪些?什么是白盒测试,适用的法有哪些?279什么是软件维护?软件维护包括哪四类活动?280有人说:软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。请问这句话对否?请解释你的答
7、复。281请将下述有关模块独立性的各种模块聚,按其聚度强度从高到低排列起来。21什么是软件工程?根本原理有哪些?软件工程是指导计算机软件开发和维护的工程学科。用分阶段的生命期方案管理、坚持阶段评审、实行格产品控制、采用现代设计技术、结果审查、开发小组人员少而精、并不断改进法。2本钱_效益分析可用哪些指标进展度量?写出公式可用投资回收期、纯收入、投资回收率指标,通过P=F/(1+i)n计算求得。3什么是数据流图?其中的根本符号各表示什么含义?画出定货系统根本数据流图。用符号描绘信息在系统中流动的情况,源点、终点、处理、数据存储、数据流。仓库管理员采购员定货系统事务定货报表4非渐增式测试与渐增式测
8、试有什么区别?两种都用于集成测试。渐增式是把下一个要测试的摸块同已经测试好的模块结合起来进展测试,每次增加一个模块。非渐增式先分别测每个模块,再把所有模块按设计要求放在一起结合成所要的程序。5试从根本符号和设计法分析HC图与JACKSON图异同点答:HC图是面向DFD,而JACKSON图是面向数据构造的。符号省略。6软件测试的目的是什么?测试的目的是为了发现错误.7构造化程序设计的思想是什么?答:自上而下,逐步求精8请解释极限编程和自适应软件开发,并说明其异同?答:极限编程和自适应软件开发都属于敏捷过程模型。极限编程是应用最广泛的敏捷过程2分。按照方案、设计、编码和测试四个框架活动组织。极限编
9、程建议一系列新颖和有力的技术,保证敏捷团队创立能力表达客户指定优先级特征和功能的频繁软件开发2分。自适应软件开发强调人的合作和团队的组织,按思考、协作和学习的三个框架活动组织,其使用迭代过程。该过程由自适应循环方案、相对格的需求收集法和一个迭代开发循环构成2分。9需求工程的起始阶段,需求工程师的主要工作是?答:需求工程的起始阶段,工程师的主要工作为:1建立根本的问题需求2分2定义最重要的工程约束以及述主要的特征和功能2分3与共利益的各建立根本的谅解2分10请画出“在餐厅使用信用卡付费这一活动的完整用例图?11分析说明构造化分析和面向对象分析的区别?答:分析建模的目标是创立各种表现形式,以描述软
10、件信息、功能和行为的需求2分。为实现这一目标,可采用构造化分析和面向对象分析法1分。构造化分析把软件看作信息装换器,辅助软件工程师识别数据对象、对象间的联系以及这些数据对象流经软件处理功能时转换的式2分。面向对象分析就是检查定义为一组用例的问题域,尽量提取定义问题的类1分。12请简要给出评价软件设计质量的标准?答:评价软件设计质量的标准如下:1设计必须实现所有包含在分析模型中的明确需求,以及用户期望的所有隐含需求2分2对于那些生成代码的人和那些进展代码测试以及随后维护软件的人而言,设计必须是可读、可理解的指南2分3设计必须提供软件的全貌,从实现的角度水明数据域、功能域和行为域2分13一个良好的
11、设计类需要满足四个特点,请详细描述这四个特点?答:一个良好的设计类需要满足:1完整性和充分性1分2原始性2分3高聚性2分4低耦合性1分14软件工程估算容与步骤15面向对象设计的准那么是什么?有哪5个层次和4个局部?准那么:模块化、抽象、信息隐蔽、高聚、低耦合、可重用16简述软件工程目标和面临的主要问题。目标:支付较低的开发本钱、到达要求的软件功能、获取较好的软件性能、开发的软件易于移植、需要较低的维护费用、能按时完成开发任务,几时交付使用、开发的软件可靠性高面临的主要问题是:软件费用软件可靠性软件维护软件生产率软件重用。17简述软件工程过程。软件工程过程是为获得软件产品,在软件工具支持下由软件
12、工程师完成的一系列软件工程活动。软件工程过程通常包含四种根本的过程活动:P(Plan):软件规格说明。规定软件的功能及其运行的限制;D(Do):软件开发。产生满足规格说明的软件;C(Check):软件确认。确认软件能够完成客户提出的要求;A(Action):软件演进。为满足客户的变更要求,软件必须在使用的过程中演进。事实上,软件工程过程是一个软件开发机构针对某一类软件产品为自己规定的工作步骤,它应当是科学的、合理的,否那么必将影响到软件产品的质量。18简述模块独立性的原那么。模块独立性是指软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的模块独立性的概念是模块化
13、、抽象、信息隐蔽和局部话概念的直接结果由耦合和聚2个标准度量19简述构造化程序设计法的根本要点1. 采用自顶向下,逐步求精的程序设计法在需求分析,概要设计中,都采用了自顶向下,逐层细化的法。2. 使用三种根本控制构造构造程序任程序都可由顺序、选择、重复三种根本控制构造构造。1)用顺序式对过程分解,确定各局部的执行顺序。2)用选择式对过程分解,确定某个局部的执行条件。3)用循环式对过程分解,确定某个局部进展重复的开场和完毕的条件。4)对处理过程仍然模糊的局部反复使用以上分解法,最终可将所有细节确定下来。3. 主程序员组的组织形式20简述软件生命期开发法的根本过程及每个阶段的任务。1问题定义阶段,
14、尽可能清楚地描述问题,搞清楚要解决的问题是什么;2可行性研究阶段,主要是确定待解的问题是否有可行的解决方法。需要做经济可行性分析、技术可行性分析、操作可行性分析和法律可行性分析;3需求分析阶段,主要是确定目标系统必须具备的功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。4总体设计阶段,从总体上解决问题,确定可实现的案,并设计出软件的层次构造图;5详细设计,把解法具体化,确定如具体地实现这个系统。针对每个模块设计相应的算法;6编码和单元测试阶段,把详细设计的结果翻译成选定的语言所写的程序,并对每个模块进展单元测试。7测试阶段,系统地设计测试用例,尽可能多地发现软件中的错误,并调试改
15、正软件中的错误;8软件维护阶段,主要目的是通过修改软件使所开发的软件能够持久地满足用户的需要。21复印机的工作流程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令那么进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令:如果执行复印命令时发现没纸,那么进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,那么进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。试用状态转换图描绘复印机的行为。从问题述可知,复印机的状态主要有闲置、复印、缺纸和卡纸。引起状态转换的事件主要是复印命令、完成复印命令、发现缺
16、纸、装满纸、发生卡纸故障和排除了卡纸故障22简述文档在软件工程中的作用。1、提高软件开发过程的能见度2、实现对软件开发的工程管理3、提高开发效率4、作为开发人员在一定阶段的工作成果和完毕标志5、提供软件运行、维护和培训有关资料6、记录开发过程中有关信息便于协调以后的软件开发使用和维护7、便于用户了解软件功能、性能。23简述软件工程管理过程。24简述系统分析员应该具备的主要知识构造和根本素质。系统分析员应该既是信息系统专家,又是企业管理专家,同时还应该是优秀的领导者。系统分析员应该具有的知识构造为:首先应该具有深入扎实的信息系统面的专业知识和实践经历,即他们必须具有计算机软硬件的知识和开发应用的
17、实践经历,以及信息处理,包括IS、网络、通讯、数据库等面的知识和实践经历;其次,应该具有经济管理或企业管理面较丰富的理论知识和实践经历;同时应该具有优秀领导者的素质、才能和领导艺术,在信息系统开发的实践中不断丰富自己、提高自己,使自己的知识构造更趋于合理。25简述谓软件开发法?请列举四种主要法。软件开发法是一中使用定义好的技术集和符号表示组织软件生产的过程。构造化法 jackson法维也纳开发法面向对象开发法26简述单元测试的根本容。测试构造软件系统的模块对象和子系统模块接口主要检查数据能否正确通过模块;属性及对应关系是否一致局部数据构造说明不正确或不一致;初始化或缺省值错误;变量名未定义或拼
18、写错误;数据类型不相容;上溢下溢或地址错误等重要的执行路径重要模块要进展根本路径测试,仔细地选择测试路径是单元测试的一项根本任务错误处理主要测试程序对错误处理的能力,应检查是否不能正确处理外部输入错误或部处理引起的错误;对发生的错误不能正确描述的容,难以理解;在错误处理之前,系统已经进展干预等边界条件程序最容易在边界上出错,如输入输出数据的等价类边界,选择条件和循环条件的边界,复杂数据构造的边界等都应进展测试27什么是软件生存期模型?请至少列举四种主要模型?软件生存期模型是描述软件开发过程中各种活动如执行的模型。软件生存期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准那么,确立
19、开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。常见的软件生存期模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。28衡量模块独立的两个标准是什么?它们各表示什么含义?网上两个定性的度量标准:耦合与聚性耦合性:也称块间联系。指软件系统构造中各模块间相互联系严密程度的一种度量。模块之间联系越严密,其耦合性就越强,模块的独立性那么越差。聚性:也称块联系。指模块的功能强度的度量,即一个模块部各个元素彼此结合的严密程度的度量。模块元素联系越严密,聚性越高。29简述白盒测试的思想,并列举两种典型的测试技术。白盒测试又称构造测试,它把测试对象看作一个透
20、明的盒子。测试人员须了解程序的部构造和处理过程,以检查处理过程的细节为根底,对程序中尽可能多的逻辑路径进展测试,检查部控制构造和数据构造是否有错,实际的运行状态和预期的状态是否一致典型测试技术:逻辑驱动、根本路径测试等30简述CMM软件能力成熟度模型5个等级的含义第一级根本集软件工程是混乱无序的,对工程几乎没有定义,成功依靠的是个人的才能和经历,管理式属于反响式第二级重复级建立了根本的工程管理来跟踪进度。费用和功能特征,制定了必要的工程管理,能够利用以前类似的工程应用取得成功第三级确定级已经将软件管理和过程文档化,标准化,同时综合成该组织的标准软件过程,所有的软件开发都使用该标准软件第四级管理
21、级收集软件过程和产品质量的详细度量,对软件过程和产品质量有定量的理解和控制。第五级优化级软件过程的量化反响和新的思想和技术促进过程的不断改进31简述软件维护的定义在软件运行或维护阶段对软件产品所进展的修改,这些修改可能是改正软件中的错误,也可能是增加新的功能以适应新的需求,但一般不包括软件系统构造上的重大改变32简述软件测试的定义广义:软件产品生存期所有的检查评审和确认活动狭义:对软件产品质量的检验和评价,一面检查软件产品质量中存在的质量问题同时对产品质量进展客观的评价。33 UML建模中主要包括哪九种图?并说明类图的定义及其中常见的关系有哪些?用例图类图对象图状态图顺序图协作图活动图组件图分
22、布图类图描述系统的的静态构造。表示系统中类、类与类之间的关系以及类的属性和操作。常见关系:关联分为聚合和组合、化、依赖、实现34什么是字据字典?其作用是什么?它有哪些条目?数据字典是用于定义数据流图中的各个成分的具体含义。它以一种准确的无二义的说明式为系统的分析设计及维护提供了有关元素的一致的定义和详细的描述有4类条目:数据流、数据存储、数据项和加工35软件工程的两大型分别是什么?它们有什么不同?分别是传统的构造化型和面向对象型。构造化型要么面向行为要么面向数据,但没有既面向数据又面向行为的;而面向对象型把数据和行为看成同等重要,即将对象视作一个融合了数据及在其上操作的行为的统一的软件组件。面
23、向对象相对于构造化技术,无论对象的部细节如变化,只要对象提供的法即接口保持不变,那么整个软件产品的其他局部就不会受到影响,不需要了解对象部的变化。36如画分层数据流图?第一步,画子系统的输入输出:把整个系统视为一个大的加工,然后根据数据系统从哪些外部实体接收数据流,以及系统发送数据流到那些外部实体,就可以画出输入输出图。这图称为顶层图。第二步,画子系统的部:把顶层图的加工分解成假设干个加工,并用数据流将这些加工连接起来,使得顶层图的输入数据经过假设干加工处理后,变成顶层图的输出数据流。这图称为0层图。从一个加工画出一数据流图的过程就是对加工的分解。37面向对象程序设计有哪些优点?1易维护采用面
24、向对象思想设计的构造,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常便和较低本钱的。2质量高在设计时,可重用现有的,在以前的工程的领域中已被测试过的类使系统满足业务需求并具有较高的质量。3效率高在软件开发时,根据设计的需要对现实世界的事物进展抽象,产生类。使用这样的法解决问题,接近于日常生活和自然的思考式,势必提高软件开发的效率和质量。4易扩展由于继承、封装、多态的特性,自然设计出高聚、低耦合的系统构造,使得系统更灵活、更容易扩展,而且本钱较低。38在软件测试中,应注意哪些原那么?1认真执行测试方案2“尽早和不断地进展软件测试/评审3优选测试工具、技术和法
25、4精心设计测试用例5穿插进展软件检测6重点测试群集现象7全面检查并分析测试结果8妥善保管测试文档39程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个面加以注意。40面向对象分析与面向对象设计的关系?面向对象分析与面向对象设计的任务一样,面向对象分析的结果可以作为开场面向对象设计的模型,面向对象的设计结果可以作为蓝图,利用面向对象编程法最终实现一个系统。41本钱-效益分析的目的是什么?可用哪些指标进展度量?本钱/效益分析的目的是从经济角度论证开发一个特定的新系统开发是否划算,是决定是否投资开
26、发新系统的依据。1货币的时间价值:货币的价值本身随时间的增加而产生增值2投资回收期:累计的经济效益等于最初的投资所需的时间。3纯收入:在整个生存期系统的累计经济效益折合现在的与投资之差。4投资回收率-投资的年利率42软件设计分哪几个阶段,它们的主要任务是什么?软件设计可以分为概要设计和详细设计两个阶段。概要设计就是构造设计,其主要目标就是给出软件的模块构造,用软件构造图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据构造,次要任务就是设计数据库,常用法还是构造化程序设计法。43用户需求和系统需求各有什么特点?用户需从用户角度来描述系统功能和非功能需求,以便让不具备专业技术面知识的用户
27、能看懂。用户需描述系统的外部行为,用自然语言、图表和直观的图形来表达。系统需比用户需求更详细的需求描述,是系统实现的根本依据,因此,是一个完全的、一致的系统描述,是软件工程人员系统设计的起点。系统需求描述可能包括多不同的模型,如对象模型和数据流模型。44面向对象设计的准那么?1模块化2抽象3信息隐藏4弱耦合5强聚6可重用45需求分析过程主要有哪几个步骤?需求分析过程主要有沟通、导出需求、分析与精化、可行性研究、协商与沟通、规格说明、需求验证、变更管理等步骤。46软件设计分哪几个阶段,它们的主要任务是什么?总体设计概要设计、软件构造设计、高层设计,仔细地分析需求规格说明,研究开发产品的模块划分。
28、详细设计模块过程设计、低层设计,为构造设计中的各个模块设计过程细节,确定模块所需的算法和数据构造等。设计测试测试和复审,确保设计的正确和优化。47什么是软件构造图?它有哪些主要元素?软件构造图是软件系统的模块层次构造,反映了整个系统的功能实现,即将来程序的控制层次体系。主要元素有:48面向对象法的特点是什么?为什么要用面向对象法开发软件?面向对象法的特点是:法的唯一性,即法是对软件开发过程所有阶段进展综合考虑而得到的。从生存期的一个阶段到下一个阶段的高度连续性,即生存期后一阶段的成果只是在前一阶段成果的补充和修改。把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成
29、到生存期的相应阶段。使用面向对象法开发软件的好处是:开发法的唯一性,开发阶段的高度连续性,表示式的一致性;问题空间实体的自然表示,减轻了设计者的负担,在设计系统之初不必考虑一个很完整的解决案。建立稳定的系统构造,可促进复用性,易于维护,易于修改,可合理利用共同性,减少复杂性。49什么是编码风格?请根据自己的编程经历编写一个编程本卷须知。是指一个人编制程序时所表现出来的特点、习惯和逻辑思路等。本卷须知:源程序文档化、数据说明、语句构造、输入输出、追求效率等。1源程序文档化(1)标识符应按意取名。(2)程序应加注释。2数据说明原那么(1)数据说明顺序应规,使数据的属性更易于查找,从而有利于测试、纠
30、错与维护。例如按以下顺序:常量寿命、类型说明、全程量说明、局部量说明。(2)一个语句说明多个变量时,各变量名按字典序排列。(3)对于复杂的数据构造,要加注释,说明在程序实现时的特点。3语句构造原那么:简单直接,不能为了追求效率而使代码复杂化4输入输出原那么(1)输入操作步骤和输入格式尽量简单。(2)应检查输入数据的合法性、有效性,报告必要的输入状态信息及错误信息。(3)输入一批数据时,使用数据或文件完毕标志,而不要用计数来控制。(4)交互式输入时,提供可用的选择和边界值。(5)当程序设计语言有格的格式要求时,应保持输入格式的一致性。(6)输出数据表格化、图形化。5)追求效率原那么(1)效率是一
31、个性能要求,目标在需求分析给出。(2)追求效率建立在不损害程序可读性或可靠性根底上,要先使程序正确,再提高程序效率,先使程序清晰,再提高程序效率。50软件生命期各阶段的任务是什么?答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必须做什么4、总体设计:系统如实现,包括系统设计和构造设计5、详细设计:具体实现设计的系统6、实现:编码和测试7、运行维护:保证软件正常运行。51非渐增式测试与渐增式测试有什么区别?非渐增式测试法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段
32、完成集成测试。而渐增式测试往往把单元测试与集成测试和在一起,同时完成。非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一局部接口出错。渐增式比较彻底,已测试的模块和新的模块再测试。渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时间。非渐增式开场可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。52面向对象程序设计有哪些优点?53
33、模块间的耦合性有哪几种?耦合度由高到低1容耦合2公共耦合3外部耦合4控制耦合5标记耦合6数据耦合7非直接耦合54软件开发步骤包括哪些过程?需求分析解决系统做什么的问题概要设计解决系统怎么做详细设计每个模块部过程的描述具体化设计软件详细规格说明书编码设计根据详细设计说明书写出程序模块系统测试发现和排除错误写出软件测试报告55数据字典有哪几类元素构成?数据流,在一个数据流中数据以数据流为单位进展传输数据元素,也称数据项,数据的最小单位数据存储,数据保存或保存的地处理,一段程序外部实体,系统的人机界面,数据流从外部实体流入,又从系统向外部实体流出56大型软件系统的设计思想是什么?一个大型的软件系统是
34、变换型构造和事务型构造的混合构造,通常采用变幻设计为主,事物设计为辅的式进展软件构造设计,以到达高聚低耦合,具有独立性,便于修改的目的。57、数据库设计一般分为哪几个阶段?形成哪三种模式?P101数据库的设计分为四个阶段,需求分析,概念设计,逻辑设计,物理设计。形成概念模式,模式,外模式三种模式。58什么是软件危机?其产生的原因是什么?P7当软件开发技术跟不上硬件技术的进步,不能满足开发的要求时,导致软件开发中遇到的问题找不到解决的方法,使问题积累起来,形成了锋利的矛盾,从而导致了软件危机。原因:1软件的规模越来越大,构造越来越复杂。2软件开发管理困难且复杂。5软件开发费用不断增加。4软件开发
35、技术落后。5生产式落后。6开发工具落后,生产效率缓慢。59、概要设计的原那么?P72概要设计的原那么的根本思想是:模块化设计,自顶向下逐步求精,模块独立性,信息隐蔽性。模块化就是将程序划分成假设干模块,每个模块完成某个子功能,然后吧这些模块集合起来组成一个整体,可以完成指定的功能来解决问题的要求。自顶向下逐步求精是先设计顶层构造,在逐层向下设计。模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系少且接口简单,独立性较强的模块应该是高聚低耦合的模块。信息隐蔽是指在设计和确定模块时,使得一个模块包含的信息,对于不需要这些信息的其他模块来说是不能访问的,60阐述构造化设计的主要
36、思想?P79构造化设计法是基于模块化,自顶向下逐步求精,构造化程序设计等程序设计技术开展起来的。构造化设计可以非常便的进展数据流框图到软件架构的转换。在构造化设计中,模块构造图能够表示出一个软件系统的层次分解关系,模块调用关系,模块之间数据流和控制信息流的传递关系,是构造化设计的主要工具。模块构造图是有数据流图转换而得到的。在将数据流图转换成软件构造之前,首先要进一步细化数据流图,然后对数据流图分类,确认是事务型还是变换型,不同的数据流图采用不同的设计过程。61软件工程主要研究哪些领域?P16 1软件工程法学。在软件开发生存期全过程使用的一套技术的集合 2软件工具和软件支撑环境,软件工具是用来
37、帮助开发,测试,分析维护其他计算机程序及其文档资料的一类程序。3软件管理是软件工程中的一项非常重要的工作,多软件工程的开发失败的主要原因就是管理不善。 4软件的规与标准指软件开发过程中的作业标准化。简述容错技术的四种主要手段,并解释。构造冗余:包括静态冗余、动态冗余和混合冗余。信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一局部信息。时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。冗余附加技术:指为实现上述冗余技术所需的资源和技术。62以G.J.Myers的观点,简述对软件测试的目的。软件测试是1为了发现错误而执行程序的过程;2一个好的用例能够发现至今尚未发现的错误的测试。3一
38、个成功的测试是发现至今尚未发现的错误的测试。63就程序设计语言的工程特性而言,对程序编码有哪些要求?就程序设计语言的工程特性而言,对程序编码有如下要求:1可移植性2开发工具的可利用性3软件的可重用性4可维护性64模块的聚性包括哪些类型?模块的聚性包括:1偶然聚2逻辑聚3时间聚4通信聚5顺序聚6功能聚65可行性研究报告的主要容有哪些?解:一个可行性研究报告的主要容如下:1引言:说明编写本文档的目的;工程的名称、背景;本文档用到的专门术语和参考资料。2可行性研究前提:说明开发工程的功能、性能和根本要求;到达的目标;各种限制条件;可行性研究法和决定可行性的主要因素。3对现有系统的分析:说明现有系统的
39、处理流程和数据流程;工作负荷;各项费用支出;所需要各类专业技术人员的数量;所需要各种设备;现有系统存在什么问题。4所建议系统的技术可行性分析:所建议系统的简要说明;处理流程和数据流程;与现有的系统比较的优越性;采用所建议系统对用户的影响;对各种设备、现有软件、开发环境、运行环境的影响;对经费支出的影响;对技术可行性的评价。5所建议系统的经济可行性分析:说明所建议系统的各种支出,各种效益;收益投资比;投资回收期。6社会因素可行性分析:说明法律因素,对合同责任、侵犯专利权、侵犯等问题的分析;说明用户使用可行性,是否满足用户行政管理、工作制度、人员素质的要求。7其他可供选择案:逐一说明其他可供选择的
40、案,并说明未被推荐的理由。8结论意见:说明工程是否能开发;还需要什么条件才能开发;对工程目标有什么变动等。解析做软件的可行性研究的目的就是用最小的代价在尽可能短的时间确定该软件工程是否能够开发,是否值得去开发,其中的问题能否解决,报告共分为八个根本容。66系统设计的容是什么?解:系统设计阶段先从高层入手,然后细化。系统设计要决定整个构造及风格,这种构造为后面设计阶段的更详细策略的设计提供了根底。1系统分解。系统中主要的组成局部称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、时间和约束的集合。每次分解的各子系统数目不能太多,最底层子系统称为模块。2确定并发性。分析模型、现实世
41、界及硬件中不少对象均是并发的。系统设计的一个重要目标就是确定哪些是必须同时动作的对象,哪些不是同时动作的对象。后者可以放在一起,而综合成单个控制线或任务。3处理器及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元,必须完成下面的工作:估计性能要求和资源需求,选择实现子系统的硬软件,将软件子系统分配给各处理器以满足性能要求和极小化处理器之间的通信,决定实现各子系统的各物理单元的连接。4数据存储管理。系统中的部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据构造、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量以及可靠性之
42、间做折中考虑。5全局资源的处理。必须确定全局资源,并且制定访问全局资源的策略。全局资源包括:物理资源,如处理器、驱动器等;空间,如盘空间、工作站屏等;逻辑名字,如对象标识符、类名、文件名等。如果资源是物理对象,那么可以通过建立协议实现对并发系统的访问,以到达自身控制;如果资源是逻辑实体,如对象标识符,那么在共享环境中有冲突访问的可能,如独立的事务可能同时使用同一个对象标识符,那么各个全局资源都必须有一个保护对象,由保护对象来控制对该资源的访问。6选择软件控制机制。分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种法中选择某种法来实现软件的控制。7人机交互接口设计。设计中的大局部工
43、作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。67什么是软件危机?软件危机的表现是什么?其产生的原因是什么?解:软件开展第二阶段的末期,由于计算机硬件技术的进步,计算机运行速度、容量、可靠性有显著的提高,生产本钱显著下降,这为计算机的广泛应用创造了条件。一些复杂的、大型的软件开发工程提出来了,但是,软件开发技术的进步一直未能满足开展的需要。在软件开发中遇到的问题找不到解决方法,使问题积累起来,形成了锋利的矛盾,因而导致了软件危机。软件危机表现在以下四个面:1经费预算经常突破,完成时间一再拖延。由于缺乏软件开发的经历和软件开发数据的积累,使得开发工作的方案很难制定。主观盲目制定方案
44、,执行起来与实际情况有很大差距,使得开发经费一再突破。由于对工作量估计缺乏,对开发难度估计缺乏,进度方案无法按时完成,开发时间一再拖延。2开发的软件不能满足用户要求。开发初期对用户的要求了解不够明确,未能得到明确的表达。开发工作开场后,软件人员和用户又未能及时交换意见,使得一些问题不能及时解决,导致开发的软件不能满足用户的要求,因而导致开发失败。3开发的软件可维护性差。开发过程中没有同意的、公认的规,软件开发人员按各自的风格工作,各行其是,开发过程无完整、规的文档,发现问题后进展杂乱无章的修改。程序构造不好,运行时发现错误也很难修改,导致维护性差。4开发的软件可靠性差。由于在开发过程中,没有确
45、保软件质量的体系和措施,在软件测试时,又没有格的、充分的、完全的测试,提交给用户的软件质量差,在运行中暴露出大量的问题。造成软件危机的原因是:1软件的规模越来越大,构造越来越复杂。2软件开发管理困难而复杂。3软件开发费用不断增加。4软件开发技术落后。5生产式落后。6开发工具落后,生产率提高缓慢。68软件质量保证应做好哪几面的工作?解:软件质量保证是软件工程管理的重要容,软件质量保证应做好以下几面的工作:1采用技术手段和工具。质量保证活动要贯彻开发过程始终,必须采用技术手段和工具,尤其是使用软件开发环境来进展软件开发。2组织正式技术评审。在软件开发的每一个阶段完毕时,都要组织正式的技术评审。标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。3加强软件测试。软件测试是质量保证的重要手段,因为测试可发现软件多数潜在错误。4推行软件工程规标准。用户可以自己制定软件工程规标准,但标准一旦确认就应贯彻执行。5对软件的变更进展控制。软件的修改和变更常常会引起潜伏的错误,因此必须格控制软件的修改和变更。6对软件