版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件是计算机系统中与硬件互相依存的另一部分,它是包括程序、数据及1.Logicalratherthanphysical(软件是一种逻辑实体,而非详细的物理实体)2.DevelopedorEngineered,notmanufactsense(在研制、开发活动中被发明出来,但不能按老式的生产含义加以理解)3.Doesn'twearout(在软件的运行和有效期间,没有磨损、老化问题)1.程序设计阶段,约为50至60年代2.程序系统阶段,约为60至70年代3.软件工程阶段,约为70年代后来时期特点软件工程所指程序程序及阐明书程序、文档及数据语言语言高级语言软件语言*软件工作范围程序编写软件生存期需求者本人少数顾客市场顾客开软的织发件组开发小组及大、中型软件开发机构规模小型中、小型大、中、小型定量原个人程序设计技术小组技术水平管理水平开技和段发术手序库构造化程序设计数据库,开发工具,开发环境,工程化开发措施,原则和规范,网络和分布式开发,面向对象技术,软件过程与过程改善者专职维护人员价格高,存储容量小,工作可靠性差降价,速度、存靠性有明显提高向超高速、大容量、微型化及网络化方向发展完全不受重视软件技术的发展不能满足需求,出现软件危机展,价格高,未完全挣脱软件危机软件危机*软件需求增长得不到满足;*软件生产成本高,价格昂贵;*软件生产进度无法控制;采用工程的概念、原理、技术和措施来开发与维护软件,把通过时间考验而证明对的的管理技术和目前可以得到的最佳的技术措施结合起来,这就是软Boehm曾为软件工程下了定义:运用现代科学技术知识来设计并构造计算FritzBauer:Theestablishmentanduseofsoundengineeringprinciplesinordertandworksefficientlyonrealmachines.软件工程是建立和使用气和电子工程师学会)做出的定义是“软件工程是开发、运行、维护和修复软件的系统措施。”它的关键内容是“以工程化的方式组织软件的开发”,其中波及软件计1)软件工程措施为软件开发提供了“怎样做”的技术。2)软件工具为软件工程措施提供自动的或半自动的软件支撑环境。3)软件工程过程指将软件工程的措施和工具综合起来,以到达合理、及时地进软件工程过程(SoftwareEngineeringPro软件工程过程是指为了获得软件产品,在软件工具支持下由软件工程师采著名的软件工程专家B.W.Boehm于1983年在一篇论文中提出了软件工程的七条基本原理。他认为这七条原理是保证软件产品质量和开发效率的原理的最1.分阶段的生命周期计划严格管理2.坚持进行阶段评审3.实行严格的产品控制4.采用现代程序设计技术5.成果应能清晰地审查6.开发小组的人员应少而精7.承认不停改善软件工程实践的必要性1.出较低的开发成本3.获得很好的软件性能5.需要较低的维护费用4.局部化5.确定性6.一致性7.完备性1.制定计划3.系统设计4.程序编写5.软件测试6.运行和维护软件开发模型瀑布模型:按照软件生命周期经典模型-瀑布模型的各个阶段实行开发工作长处:1.提供了软件开发的基本框架,优于“手工作坊”式的开发措施2.有助于大型软件开发过程中人员的组织、管理3.有助于软件开发措施和工具的研究与使用,从而提高了大型软件项目开发的质量和效率缺陷:1.在软件开发的初始阶段指明软件系统的所有需求是困难的,有时甚至是不现实的2.需求确定后,顾客和软件项目负责人要等相称长的时间(通过设计、编码、测试、运行)才能得到一份软件的最初版本。假如顾客对这个软件提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力、时间方面的损失。渐进模型(演化模型、原型模型)原型模型在克服瀑布模型缺陷、减少由于软件需求不明确而给开发工作带来风险方面,确实有着明显的效果原型化措施是顾客和软件开发人员之间进行的一种交互过程,合用于需求不确定性高的系统螺旋模型它是生命周期模型与原型模型的结合,不仅体现了两个模型的长处,还增长了新的成分——风险分析螺旋模型是支持大型软件开发并具有广泛应用前景的模型例题1.开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。软件工程中描述软件生存周期的瀑布模型一般包括计划、(B)、设计、编码、测试、维护等几种阶段。其中,设计阶段在管理上又可以依次提成(C)和(D)两个A:①程序开发环境②操作系统的资源管理功能③开发程序人员数量④计算机的并行处理能力C、D:①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系2.有人将软件的发展过程划分为4个阶段:第一阶段(20世纪50年代)称为“程序设计的原始时期”。这时既没有第二阶段(20世纪60年代)称为“基本软件期”。出现了(A),并逐渐普及。伴随(B)的发展,编译技术也有较大的发展。第四阶段(20世纪70年代中期至今)称为“软件工程时期”,软件开发技术(F)、编码、单元测试、综合测试、(G)及其整体有关的多种管理技术。A-D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤构造化程序设计⑥数据库概念⑦固件⑧模块化程序设计E-G:①使用和维护②兼容性确实认③完整性确实认④设计问题定义有关问题性质、工程目的和规模的书面汇报可行性研究(也称可行性分析,FeasibilityAnalysis)目的就是要用最小的代价在尽量短的时间内确定问题与否可以处理。1.深入分析和澄清问题定义。2.导出系统的高层逻辑模型。从系统逻辑模型出发,探索若干种可供选择的重要解法(即系统实现方案)。对每种解法都应当至少从下述几方面研究其可行Economicfeasibility,经济可行性。这个系统的经济效益能超过它的开发成本吗?Technicalfeasibility,技术可行性。使用既有的技术能实现这个系统吗?Legalfeasibility,法律可行性。确定系统开发也许导致的任何侵权行为、阻碍性后果和责任。Operationalfeasibility,操作可行性。系统的操作方式在这个顾客组织内行得通吗?3、对后来的行动方针提出提议。基于计算机系统的成本—效益分析是可行性研究的重要内容,它用于评估计算机系统的经济合理性。给出系统开发的成本论证,并将估算的成本与预期的利润进行对比。成本软件开发成本重要体现为人力消耗(乘以平均工资则得到开发费用)。一般来说,基于计算机系统的成本由四个部分构成:1.购置并安装软硬件及有关设备的费用2.系统开发费用3.系统安装、运行和维护费用4.人员培训费用1、代码行技术代码行技术是比较简朴的定量估算措施,也是一种自底向上的估算措施。它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联络起来。一般根据经验和历史数据估计实现一种功能需要的源程序行数。一旦估计出源代码行数后来,用每行代码的平均成本乘以行数即可确定软件的成本。每行代码的平均成本重要取决于软件的复杂程度和开发小组的工资水平。(1)对规定设计的系统进行功能分解,直到可以对为实现该功能所规定的源代码行数做出可靠的估算为止。根据经验和历史数据,对每个功能块估计一种最有利的、最也许的和最不利的LOC值。设最有利的LOC值为a,最也许的LOC值为m,最不利的LOC值为b,则代码行的期望(平均)值L计算每个功能块的价格及工作量,并确定该软件项目总的估算价格和工作1、背景状况。问题描述,市场需求等2、系统描述。简略的范围描述,计划目的和阶段目的等3、候选方案。候选方案的配置,选择最终方4、价格利益分析。经费概算和预期经济效益5、技术冒险评价。包括技术实力、设备条件和已经有工作基础6、操作可行性。顾客组织对操作方式的但愿7、法律可行性。系统开发也许导致的侵权、违法等8、其他与项目有关的问题。也许的未来变化所谓软件需求是指顾客对目的软件系统在功能、行为、性能、设计约束等2)系统性能规定3)运行规定4)未来也许提出的规定2、分析系统的数据规定(需求分析的本质就是对数据和加工进行分析)5、开发原型系统(可选)1、访谈与会议2、书面调查法3、观测顾客工作流程1、组织概况1)组织的业务状态2)业务的详细内容3)输入输出信息从六个方面着手:*信息流向*信息种类*运用的目的*信息的使用者和制造者*输入和输出地点*输入和输出信息量3、存在问题、约束条件4、未来规定构造化分析措施(SA措施)就是面向数据流自顶向下逐渐求精进行需求分析的措施。分析的过程:面向数据流,采用自顶向下、分支分层、逐渐分解、逐渐细化、逐渐求精,最终贯彻到详细加工、基本加工、简朴加工。用逐渐求解的措施控制系统的复杂度,使得复杂系统简朴化、抽象系统详细化。数据流图(DFD)数据流图描绘系统的逻辑模型,或者说描绘信息在系统中流动和处理的状基本系统模型数据流分析将系统模型视作一种数据变换,它接受多种形式的输入,通过变换产生多种形式的输出。输入2输出1输出2例,下图是一种飞机机票预定系统的基本系统模型数据流图的成分下图是机票预定系统的DFD。可以看出,数据流图是由如下四个基本成分构成的:1、数据流(用箭头表达)2、加工(用圆圈表达)3、文献(用单线或双线表达)4、数据源点和终点(用方框表达)备票1、一种加工并不一定是一种程序。2、一种数据存储也不等同于一种文献。3、数据存储和数据流都是数据,但所处状态不一样。自顶向下逐层画DFD的环节如下:1)把基本系统模型加上源点和终点作为顶层DFD。2)画出各层DFD,逐层画DFD的过程也就是逐层分解的过程。为便于管理,要对分层DFD和图中的加工进行编号。A、子图的图号就是分解的父图中对应加工的编号。B、子图中的加工编号是由子图号、小数点、局部次序号构成。3)画出总的DFD。(可选)画DFD时要注意的几种问题:1、画DFD不是画流程图。DFD只描述“做什么”,不描述“怎么做”和做的次序。而流程图表达对数据进行加工的次序和细节。2、父图和子图的平衡。父图某加工的输入输出和分解这个加工的子图的输入输出必须完全一致。3、局部文献。文献总是局部于分层DFD的某一层或某几层。4、分解的深度与层次。逐层分解规定分解到加工成为足够简朴、易于理解的基本加工为止。所谓基本加工就是加工的意义明确、操作单一。不过究竟分解的层次多少合适,应当根据问题的复杂程度来确定。一般来说,可参照1)一种加工的分解,最多不要超过7个子加工。若超过7个时,可以用增长层次的措施来减少子加工数。2)分解在逻辑上应合理、自然,不能硬性分割。3)在保证数据流的易理解性的前提下,尽量少分解层次。这样可以减少层4)分解要均匀。即在一张DFD中,不要有些加工已是基本加工,另某些加工还要分解好几层。绝对均匀不也许,但不要相差太大。数据字典(DD)数据字典是有关数据的信息的集合,也就是对数据流图中包括的系统元素(所有数据流、加工、文献)的定义的集合。数据流图和数据字典是需求规格阐明书的重要构成部分。数据流条目是定义数据流的。定义的方式一般是列出该数据流的各构成数据项。在定义数据流时,一般借助于某些简朴的符号。如二等价于(定义为)+{…}反复x={a}x由0个或多种a构成m{…}n反复如x=3{a}8表达x中至少出现3次a,至多出现8次a()可选(选择)如x=a+(b)+cb可以在x中出现,也可以不出现连接符x=1..9x可取1至9中的任一值如数据流“存折”可以定义:存折={户名+所号+帐号+开户日+性质+(印密)+1{存取行}50}99户名=2{字母}24所号=“001”…“999”帐号=“00000001”…“99999999”开户日=年+月+日性质=“1”..“6”印密=“0”存取行=日期+(摘要)+支出+存入+余额+操作+复核日期=年+月+日年=“0001”..“9999”月=“01".."12”日=“01".."31”摘要=1{字母}4支出=金额金额=“0000000.01”..“9999999.99”操作=“00001”..“99999”文献条目是定义文献的,一般只需列出文献的构成数据项,以及文献的组织方式如数据文献(数据存储)“存折”可定义为存折={户名+所号+帐号+开户日+性质+(印密)+1{存取行}50}9993、加工条目(小阐明)小阐明集中描述一种加工“做什么”,即加工逻辑。所谓加工逻辑是指顾客对这个加工的逻辑规定,即这个加工的输出数据流和输入数据流的逻辑关目前用于写小阐明(加工逻辑阐明)的工具有构造化英语、鉴定表和鉴定(欠款超过60天)theconfirmationpendingresolutELSE(accountisingoodstanding)(欠款未超期)(欠款超过60天)ELSE(accountisingoodstanding)(欠款未超期)Issueconfirmationandinvoice单)在某些数据处理问题中,某数据流图的加工需要依赖于多种逻辑条件的取值,就是说完毕这一加工的一组动作是由于某一组条件取值的组合引起的。这时使用鉴定表来描述比较合适。下面以“检查发货单”为例,阐明鉴定表的构成。1234条件发货单金额赊欠状况>60天≤60天>60天≤60天操作不发出同意书√发出同意书√√√发出发货单√√√发出赊欠汇报√条件茬(ConditionStub)——左上部分条件项(ConditionEntry)——右上部分动作茬(Action动作项(Action例题请用鉴定表表达下面描述的耗电计费系统中电费的计算措施耗电计费系统可以采用固定价格收费和浮动价格收费两种方式。若采用固定价格方式收费,对每月耗电100KW·h如下的顾客只征收最低原则费,超过100KW·h的顾客按价格表A收费;若采用浮动价格方式收费,则每月耗电100KW·h如下的顾客按价格表A收费,超过100KW·h的顾客按价格表B收费。条件收费方式固定固定浮动浮动耗电规模征收最低原则费√按价格表A收费√√按价格表B收费√条件固定固定浮动浮动操作按价格表A收费征收最低原则费按价格表B收费按价格表A收费鉴定树鉴定树也是用来体现加工逻辑的一种工具,有时它比鉴定表更直观。下面把前面的“检查发货单”的例子用鉴定树表达。欠款≤60天——发出批准书、发货单检查发货单我们用DFD描述了系统中数据流动和加工的状况,用DD描述了其中的某些数据流、文献和加工,不过还不能满足需求分析阶段的规定。任何一种软件系统都也许有成千上万个数据项,仅仅描述它们是不够的,更重要的是怎样把它们以最优的方式组织起来,以满足系统对数据的规定。E-R图(Entity-Relationship,实体-关系图)是现实世界中实体的数据侧面;或者说,数据对象是现实世界中省略了功能和行为的实体。2、联络客观世界中的事物彼此间往往是有联络的。同样,应用问题中的任何数据对象都不是孤立的,它们与其他数据对象一定存在多种形式的联络。N学教系1联络可分为三类:1)一对一联络(1:1)2)一对多联络(1:N)属性是实体或联络所具有的性质软件需求规格阐明1.引言。编写目的,项目背景等2.任务概述。目的,运行环境等3.数据描述。4.功能需求。5.性能需求。6.运行需求。7.其他需求。例题1.软件需求分析的任务不应包括(A)。进行需求分析可使用多种工具,但(B)是不合用的。在需求分析中,分析员要从顾客那里处理的最重要的问题是(C)。需求规格阐明书的内容不应当包括(D)。该文档在软件开发中具有重要的作用,但其作用不应当包括(E)。A:①问题分析②信息域分析③构造化程序设计④确定逻辑模型③规定软件工作效率怎样④要让软件具有什么样的构造③软件确认准则④软件的性能E:①软件设计的根据②顾客和开发人员对软件要“做什么”的共③软件验收的根据④软件可行性分析的根据2.在构造化分析措施中,用以体现系统内数据的运动状况的工具有()。A.数据流图B.数据词典C.构造化英语D.鉴定表与鉴定树一旦软件需求确认之后,就进入开发阶段。开发阶段由3个互有关联的环节构成,即设计、实现(编码)和测试。从工程管理的角度看,软件设计可分为概要设计/总体设计和详细设计两大环节。从技术角度来看,软件设计可分为数据设计、系统构造设计和过程设计。目前越来越多的人把界面设计也单独取出作为一种方面。概要设计基本目的是用比较抽象概括的方式确定系统怎样完毕预定的任务,即确定软件系统的总体构造,给出系统中各个构成模块的功能和模块间的接口。波及的概念重要有:模块化,抽象与逐渐求精,信息隐藏,模块独立在进行软件构造设计时应当遵照的最重要的原理是模块独立原理。采用模块化原理的长处:1)可以使软件构造清晰,轻易设计、轻易阅读和理解、轻易测试和2)提高软件的可靠性。3)易于软件开发工程的组织管理。所谓模块的独立性,是指软件系统中每个模块只波及软件规定的详细的子功能,而和软件系统中其他模块的接口是简朴的。模块独立性可用两个定量准则来度量耦合(coupling):各个模块之间互相关联的度量内聚(cohesion):模块内部各元素之间互相关联的度量耦合共分七级非直接耦合、数据耦合、特性耦合/标识耦合、控制耦合、外部耦合、公共耦合、内容耦合按上述次序,耦合性逐渐升高,模块独立性逐渐减少。内聚共分七级偶尔内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、次序内聚、功能内聚按上述次序,内聚性逐渐加强,功能趋于单一,模块独立性也逐渐加强。软件概要设计的目的是力争增长模块的内聚,尽量减少模块间的耦合。但增长内聚比减少耦合更重要,应当把更多的注意力集中到提高模块的内聚程度系统构造设计的七条启发式原则:1)改善软件构造提高模块独立性2)模块规模应当适中3)深度、宽度、扇出和扇入都应合适4)模块的作用范围应在控制范围之内5)力争减少模块接口的复杂程度6)设计单入口单出口的模块7)模块功能应当可以预测常见的软件概要设计措施有3大类:1)以数据流图为基础构造模块构造的构造化设计措施(SD,StructuredConstructionofPrograms)(Wanier)逻辑构造措施3)以对象、类、继承和通信为基础的面向对象的设计措施(0OD)构造化设计措施(StructuredDesign,SD)是基于模块化、自顶向下细3、映射为软件构造4、细化后,得到初始构造图5、获得最终的软件构造图1.引言。编写目的,项目背景等2.任务概述。目的,运行环境,需求概述,条件与限制等3.总体设计。处理流程,系统总体构造等4.接口设计。外部接口,内部接口等5.数据构造设计6.运行设计7.出错处理设计8.其他问题例题1.在众多的设计措施中,SD措施是最受人注意的,也是最广泛应用的一种,这种措施可以同分析阶段的(A)措施及编程阶段的(B)措施前后衔接,SD措施考虑怎样建立一种构造良好的程序构造,它提出了评价模块构造质量的两个详细原则-块间联络和块内联络。SD措施的最终目的是(C),用于表达模块间另一种比较著名的设计措施是以信息隐藏为原则划分模块,这种措施叫C:①块间联络大,块内联络小②块间联络大,块内联络小③块间联络小,块内联络大④块间联络小,块内联络小E:①Jackson②Parnas③Turing④Wirth⑤Dijk2.块间联络和块内联络是评价程序模块构造质量的重要原则。联络的方式、共用信息的作用、共用信息的数量和接口的(A)等原因决定了块间联络的大小。SD措施的总的原则是使每个模块执行(C)功能,模块间模块通过(E)语句调用其他模块,并且模块间传送的参数应尽量(F)。D:①数据型②控制型③混合型E:①直接引用②原则调用③中断④宏调用G-H:①作用范围②控制范围3.从下列有关系统构造图的论述中选出对的的论述A.系统构造图中反应的是程序中数据流的B.系统构造图是精确体现程序构造的图形表达法。因此,有时可将系统构造图C.个模块的多种下属模块在系统构造图中所处的左D.系统构造图中,上级模块与其下属模块之间的调用关系用有向线段表达。这5.在完毕软件概要设计,并编写出有关文档之后,应当组织对概要设计工作的分析该软件的系统构造、子系统构造,确认该软件设计与否覆盖了所有已分析软件各部分之间的联络,确认该软件的内部接口与外部接口与否已经明确定义。模块与否满足(B)和(C)的规定。模块(D)与否在其(E)之供选择的答案:B:①多功能②高内聚③高耦合④高效率⑤可读性C:①多入口②低内聚③低耦合④低复杂度⑤低强度D-E:①作用范围②高内聚③低内聚④取值范围⑤控制范围详细设计就是要在总体设计阶段成果的基础上,考虑怎样实现定义的软件系统,直到构造化程序设计技术是进行详细设计的逻辑基础。它采用自顶向下逐渐求精的设计措程序复杂性重要指模块内程序的复杂性。它直接关联到软件开发费用的名少、开发1)代码行度量法度量程序的复杂性,最简朴的措施就是记录程序的源代码行数。该措施的基本考虑是Lipow及其他研究者得出一种结论:对于少于100个语句的小程序,源代码行数与出2)McCabe度量法McCabe度量法是一种基于程序控制流的复杂性度量措施。McCabe定义的程序复杂性假如把程序流程图中每个处理符号都退化成一种结点,本来联结不一样处理符号的流2.总体设计。软件构造3.程序描述。逐一模块描述其功能、性能、输入、输出、算法等例题软件详细设计工具可分为3类,即图形工具、设计语言和表格工具。图形工具中,(A)简朴而应用广泛。(B)表达法中,每个处理过程用一种盒子表达,盒子可以嵌套。(C)可以纵横延伸,图形的空间效果好。(D)是一种设计和描述程序的语言,它是一种面向(E)的语言。供选答案:D:①C②PDL③PROLOGE:①人②机器③数据构造④对象ABFPTFQT[统考]下面是两个程序流程图,试分别用N-S图ABFPTFQTFPTBFQTWhilePABMcCabe复杂性度量都为3。(7-6+2)下图是使用BASIC语言编写的一种打印A、B、C三数中最小者的程序流程图。其中出现了6个GOTO语句,1个向前,5个向后,程序可读性很差。FF打印CT打印BT试运用基本控制构造,将程序中的GOTO语句消printAprintBprintC编码所谓编码就是把软件设计的成果翻译成计算机可以“理解”的形式一用某种程序设计按照软件工程的措施论,程序的质量基本上由设计的质量决定。不过,编码使用的语例题从下列论述中选出5条符合程序设计风格指导原则的论述。⑩应尽量多用GOTO语句从下列有关模块化程序设计的论述中选出5条对的的论述。⑨模块越小,模块化的长处越明显。一般来说,模块的大小都在10行如下测试软件测试的目的就是软件投入生产性运行之前,尽量多地发现软件中的错误。目前软1)测试是程序的执行过程,目的在于发现错误。2)一种好的测试用例在于能发现至今未发现的错误3)一种成功的测试是发现了至今未发现的错误的测试1)应当尽早地不停地进行软件测试2)测试用例应由测试输入数据和与之相对应的预期输出成果这两部分构成3)程序员应防止检查自己的程序4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件5)充足注意测试中的群集现象6)严格执行测试计划,排除测试的随意性7)应当对每个测试成果做全面检查8)妥善保留测试计划、测试用例、出错记录和最终分析汇报,为维护提供以便常分单元测试/模块测试,集成测试,确认测试和系设计测试方案是测试阶段的关键技术问题,基本目的是选用至少许的高效测试数据,鉴定-条件覆盖:使得判断中每个条件的所有也许取值至少执行一次,同步每个判条件组合覆盖:使得每个判断的所有也许的条设计测试方案的实用方略是,用黑盒法设计基本的测试方案,再用白盒法补充某些必应当认识到,软件测试不仅仅指运用计算机进行的测试,还包括人工进行的测试(例如,代码审查)。两种测试途径各有优缺陷,互相补充,缺一不可。有一种处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“橙汁”、“啤酒”或“红茶”按钮,对应的饮料就送出来。若投入的是2元硬币,在送出饮料的同步退还5角硬币。1)(5分)试运用因果图法,建立该软件的因果图;2)(5分)设计测试该软件的所有测试用例。输入条件(原因)因果图(加入了两个中间结点11和12。11表达已投币,12表达已按钮)测试用例123456789投入1元5角硬币11110000000投入2元硬币00001111000100010001000100010001000100010001中间结点已投币11111111000已按钮11101110111输出退还5角硬币00001110000100010000000100010000000100010000软件测试是软件质量保证的重要手段之一,测试的费用已超过(A)的30%以上。因此,提高测试的有效性十分重要。“高产”的测试是指(B)。根据国标GB8566-88《计算机软件开发规范》的规定,软件的开发和维护划分为8个阶段,其中,单元测试是在(C)阶段完毕的,集成测试的计划是在(D)阶段制定的,确认测试的计划是在(E)阶段制定:A:①软件开发费用②软件维护费用B:①用适量的测试用例运行程序,证明被测程序对的无误②用适量的测试用例运行程序,证明被测程序符合对应的规定③用少许的测试用例运行程序,发现被测程序尽量多的错误④用少许的测试用例运行程序,纠正被测程序尽量多的错误C-E:①可行性研究和计划②需求分析⑤实现⑥集成测试⑦确认测试⑧使用和维护集成测试也叫做(A)或(B)。一般,在(C)的基础上,将所有模块按照设计规定组装成系统。子系统的集成测试尤其称为(D),它所作的工作是要找出子系统和系统需求规格阐明之间的(E)。需要考虑的问题是在把各个模块连接起来的时候,穿越模块接口的数据与否会(F);一种模块的功能与否会对另一种模块的功能产生不利的影响;各个(G)组合起来,能否到达预期规定的(H);(I)与否有问题;单个模块的误差累积起A-D:①单元测试②部件测试③组装测试④系统测试⑤确认测试⑥联合测试⑦一致黑盒测试法是通过度析程序的(A)来设计测试用例的措施。除了测试程序外,它还合用于对(B)阶段的软件文档进行测试。白盒测试法是根据程序的(C)来设计测试用例的措施。除了测试程序外,它也合用于对白盒法测试程序时常按照给定的覆盖条件选用测试用例。(E)覆盖比(F)严格,它使得每个鉴定的每条分支至少经历一次。(G)覆盖既是鉴定覆盖,又是条件覆盖,但它并不保证使多种条件都能取到所有也许的值。(H)覆盖比其他条件都要严格,但它不能保证单元测试一般以(I)为主,测试的根据是(J)。A、C:①应用范围②内部逻辑③功能④输入数据B、D:①编码②软件详细设计③软件总体设计④需求分析E、F、G、H:①语句②鉴定③条件④鉴定/条件⑤多重条件⑥途径J:①模块功能规格阐明②系统模块构造图③系统需求规格阐明从下列有关程序设计风格和软件测试的论述中,选出5条对的的论述④对于连锁型分支构造,若有n个鉴定语句,则有2"条途径。⑤尽量采用复合的条件测试,以防止嵌套的分支构造。⑥GOTO语句概念简朴,使用以便。在某些状况下,保留GOTO语句反能使写出的程序愈加简洁。⑦发现错误多的程序模块,残留在模块中的错误也多。⑧黑盒测试措施中最有效的是因果图法。⑨在做程序的单元测试时,桩(存根)模块比驱动模块轻易编写。⑩程序效率的提高重要应通过选择高效的算法来实现。答案:④、⑤、⑥、⑦、⑩答案:④、⑤、⑥、⑦、⑩调试软件调试是在进行了成功的测试之后才开始的工作。调试活动由两部分构成:1)确定程序中可疑错误确实切性质和位置2)对程序(设计、编码)进行修改,排除这个错误几种重要的调试措施:强行排错回溯法排错归纳法排错演绎法排错测试和调试是软件测试阶段的两个关系极端亲密的过程,它们一般交替进行。测试中的可靠性分析在软件开发的过程中,运用测试的记录数据,估算软件的可靠性以控制软件的质量是至关重要的。推测错误的产生频度估算错误产生频度的一种措施是估算平均失效等待时间MTTF(MeanTimeToFailure)。MTTF估算公式(Shooman模型)是:其中,K是一种经验常数,美国某些记录数字表明,K的经典值是200;Er是测试之前途序中原有的故障总数;Ir是程序长度(机器指令条数或简朴汇编语句条数);t是测试(包括排错)的时间;Ec(t)是在0-t期间内检出并排除的故障总数。公式的基本假定是:1)、单位(程序)长度中的故障数Er/Ir近似为常数,它不因测试与排错而变化。记录数字表明,一般Er/Ir值的变化范围在0.5*10-²—2*10-²之间。2)、故障检出率正比于程序中残留故障数,而MTTF与程序中残留故障数成正比。3)、故障不也许完全检出,但一经检出立即得到改正。可靠性累积曲线公式例题对一种长度为100,000条指令的程序进行测试,记录下来的数据如下:.测试开始,发现错误个数为0;.通过160小时的测试,合计改正100个错误,此时,MTTF=0.4小时;.又通过160小时的测试,合计改正300个错误,此时,MTTF=2小时。1)估计程序中固有的错误总数。2)为使MTTF到达10小时,必须测试和调试这个程序多长时间?3)给出MTTF与测试时间t之间的函数关系得1)解得程序中固有的错误总数Er=350,此外,K=1000。解得x=340(即为使MTTF到达10小时,需要改正340个错误)。由可靠性累积曲线340=350(1-e-.01)得t=(n(35因此求得为使MTTF=10,测试和调试该程序需要时间约为356小时。3)MTTF与测试时间t之间的函数关系:维护所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件工程学的重要目的就是提高软件的可维护性,减少维护的代价。软件可维护性,是指纠正软件系统出现的错误和缺陷,以及为满足新的规定进行修改、扩充或压缩的轻易程度。软件的可理解性、可测试性和可修改性是决定软件可维护性的基本原因。软件维护一般包括四类活动:1)为了纠正使用过程中暴露出来的错误而进行的改正性维护;2)为了适应外部环境的变化而进行的适应性维护;3)为了改善原有的软件而进行的完善性维护;4)为了改善未来的可维护性和可靠性而进行的防止性维护。在软件维护中,影响维护工作量的程序特性有如下6种:a.系统大小b.程序设计语言c.系统年龄d.数据库技术的应用e.先进的软件开发技术维护有三种副作用:文档、代码、数据。软件维护工作流程1、确认维护规定2、由维护组织管理员确认维护类型严重错误改正性维护用户请求维护确定维护用户请求维护维护非严重错误高优先级低优先级列入日常维护计划可理解性:表明人们通过阅读源代码和有关文档,理解程序及其怎样运行的轻易程度。可靠性:表明一种程序按照顾客的规定和设计目的,在给定的一段时间内对的执行的概率。可测试性:表明论证程序对的性的轻易程度。可修改性:表明程序轻易修改的程度。可移植性:表明程序转移到一种新的计算环境的也许性的大小,或者它表明程序可以轻易地、有效地在多种各样的计算环境中运行的轻易程度。效率:表明一种程序能执行预定功能而又不挥霍机器资源的程度。可使用性:从顾客观点出发,把可使用性定义为程序以便、实用及易于使用的程度。各阶段结束原则问题定义有关规模和目的的汇报书可行性研究可行性论证汇报(系统的高层逻辑模型)需求分析需求规格阐明书(系统的逻辑模型)概要设计阐明书(系统层次图或构造图)详细设计阐明书(各模块内部详细算法)编码综合测试方案和成果实行阶段维护软件管理成本估算代码行技术功能点技术效益估计系统效益包括经济效益和社会效益两部分。货币的时间价值、纯收入、投资回收期、投资回收率进度安排进度安排是软件项目管理中的一项重要内容。管理复杂的工程项目非常困难,最佳的措施是把它分解成一系列比较轻易管理的子任务。不过度解后又轻易只注意对各个子任务的管理,以致忽视了对工程总体状况的理解和管理。因此需要有某种工具既支持把项目分Gantt图能很形象地描绘任务分解状况,以及每个子任务(作业)的开始时间和结束时间,因此是进度计划和进度管理的有力工具,它具有直观简要和轻易掌握、轻易绘制的长当把一种工程项目分解成许多小任务,并且它们彼此间的依赖关系又比较复杂时,仅仅用Gantt图作为安排进度的工具是不够的,不仅难于作出既节省资源又保证进度的计工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解状况以及每项作业的开始时间和结束时间。此外,它还显式地描绘各个作业彼此间的依赖关系。因在制定进度计划时仔细考虑和运用工程网络中的机动时间,往往可以安排出既节省资人员组织一般来说,程序设计小组的规模应当较小,视工程规模以2-8人为宜。主程序员组用经验多、技术好、能力强的程序员作为主程序员。同步,运用人和计算软件项目的开发实践表明,软件开发各个阶段所需要的技术人员类型、层次和数量是不一样的。软件项目的计划与分析阶段只需要少数人,重要是系统分析员、从事软件系统论证和概要设计的软件高级工程师和项目高级管理人员。概要设计时增长一部分高级程序员,详细设计时,要增长软件工程师和程序员,在编码和测试阶段还要增长程序员、软件测试员。到测试阶段结束时,软件项目开发人员的数量到达顶峰。软件运行初期,参与软件维护的人员比较多,过早解散软件开发人员会给软件维护带来意想不到的困难。软件运行一段时间后,由于软件开发人员参与改正性维护,软件出错率会很快衰减,这时软件开发人员可以逐渐撤出。假如系统不做适应性或完善性维护,需要留守的维护人员就不多Babich曾说过:“协调软件开发使得混乱减到最小的技术叫做配置管理。配置是一种标识、组织和控制修改的技术,目的是使错误到达最小并最有效地提高生产率。”软件配置管理(SCM,SoftwareConfigurationManagement)应用于整个软件生存期。由于变更在任何时刻都也许发生,因此,软件配置管理活动的目的就是为了标识变基线是软件生存期中各开发阶段末尾的特定点,又称里程碑得到的软件配置协议和软件配置的正式文本构成基线。它的作用是把各阶段工作的划分愈CMM(CapabilityMaturityModel)软件机构能力成熟度模型对建立软件目的系统而言,所谓复用(reuse),就是运用某些已开发的、对建立新软件系统有用的软件元素来生成新系统。这里所说的软件元素可以包括需求规格阐明、设计过程、设计规格阐明、程序代码、测试用例、度量等。对于新的软件开发项目而言,这些元素或者是构成新软件系统的构件,或者能在软件开发过程中发挥某种作用面向对象=对象+类+继承+通信对象可以定义为系统中用来描述客观事物的一种实体,它是构成系统的一种基本单位,由一组属性和一组对属性进行操作的服务构成。三个重要特点:自治性、封装性、通操作又称为措施或服务,它描述了对象执行的功能,若通过消息传递,还可认为其他而所谓的消息是一种对象与另一种对象的通信单元,是规定某个对象执行类中定义的把具有相似特性和行为的对象归结在一起就形成了类。类是某些对象的模板,抽象地假如某几种类之间具有共性的部分(信息构造和行为),将其抽取出来放在一种一般类中,而将各个类的特有的部分放在特殊类中分别描述,则可建立起特殊类对一般类的继继承是软件开发中重用概念的关键,此外便于模块修改,同步继承可使模块简化,导1)形式地阐明所面对的应用问题,最终成为软件系统基本构成的对象,尚有系统所必须遵2)明确地规定构成系统的对象怎样协同合作,完毕指定的功能。OOA要建立分析模型,有五个层次:类和对象层、属性层、服务层、构造层、主通过00A建立的系统模型是以概念为中心的,因此称为概念模型。这样的模型由一组有关的类构成。构造和评审OOA概念模型的次序由5个层次构成,即类和对象层、属性层、服务层、构造层、主题层。这5个层次不是构成软件系统的层次,而是分析过程中的层次也可以说是问题的不一样侧面。每个层次的工作都为系统的规格阐明增长了一种构成部分。当5个层次的工作所有完毕时,OOA的任务也就完毕了。OOD还是采用这样五个层次,但分别用在建立系统的四个构成成分上:问题论域、人机交互、数据管理、任务管理。OOD模型怎样用特定的实现技术建立起一种目的系统。在0OA模型和OOD模型中使用了共同的表达法,这有助于从分析到设计的转换,并有助于在目前的设计和实现中维护OOA模型。与OOA模型同样,OOD模型也有5层构造,又被划分为四个部分:问题论域、人机交互、数据管理、任务管理。这些构成部分把实现技术隐藏起来,使之与系统的基本问题论域行为分离开。在0OA中,实际上只波及到问题论域部分,其他3个部分是在OOD中加进来的。即,对于问题论域部分只是做深入的细化,其他3个部分中将识别和定义新的类OMT(ObjectModelingTechnique对象建模技术)以面向对象思想为基础,通过构造一组有关模型(对象模型、动态模型和功能模型)来获得有关问题的全面认识(即问题的领域模型)。对象模型(objectmodel)代表了系统的静态的、构造方面的特性。动态模型 (dynamicmodel)代表了系统对象之间的时间的、行为的、控制方面的特性。功能模型 (functionalmodel)重要描述值与值之间的函数关系。其中,对象模型是3个模型中最关键的模型,它的作用是描述系统的静态构造,包括构成系统的类和对象,它们的属性和操作,以及它们之间的关系。在OMT中,类与类之要想对一种系统理解得比较清晰,首先应考察它的静态构造,即在某一时刻它的对象和这些对象之间互相关系的构造。然后,应考察在任何时刻对对象及其关系的变化。系统的这些波及时序和变化的状况,用动态模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省高三12月月考语文试题及答案
- 小学英语学科教学工作计划-
- 北师大版小学数学第七册复习计划
- 2021年商场客服部工作计划
- 开学之后的计划安排
- 2024年上半年幼儿园中一班下学期保教工作计划
- 老师课堂教学计划和安排
- 开展精神文明创建工作计划范文
- 2024年办公室绿植租赁协议范本一
- 8中学总务处年度工作计划
- xxxx学校教学楼(技术标)
- 2025年设备监理师考试题库及答案(新版)
- 撂荒耕地养殖合同模板
- 《生命·生态·安全》教学记录(25篇)
- 工抵房转让购买合同范例
- 树脂瓦棚子施工方案
- 2024年天津市中考语文试卷
- 2024年心心相印:在线婚恋平台用户协议
- 2024届高考语文古代文化常识题库及答案
- 成都锦城学院《数据库原理与应用》2023-2024学年期末试卷
- 电子课件中职英语基础模块下册双色U2-Role-Models
评论
0/150
提交评论