版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 64软件工程概述软件软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。软件的特点1Logiccal raather than physiical(软软件是一种逻逻辑实体,而而非具体的物物理实体)2Develloped or Enngineeered, not mmanufaactureed in the cclassiical ssense(在在研制、开发发活动中被创创造出来,但但不能按传统统的生产含义义加以理解)3Doesnnt weear ouut(在软件件的运行和使使用期间,没没有磨损、老老化问题)软件的发展软件的发展可以以分为这样
2、三三个阶段:1程序设计阶阶段,约为550至60年年代2程序系统阶阶段,约为660至70年年代3软件工程阶阶段,约为770年代以后后时期特点程序设计程序系统软件工程软件所指程序程序及说明书程序、文档及数数据主要程序设计语语言汇编及机器语言言高级语言软件语言*软件工作范围程序编写包括设计和测试试软件生存期需求者程序设计者本人人少数用户市场用户开发软件的组织织个人开发小组开发小组及大、中中型软件开发发机构软件规模小型中、小型大、中、小型决定质量的因素素个人程序设计技技术小组技术水平管理水平开发技术和手段段子程序、程序库库结构化程序设计计数据库,开发工工具,开发环环境,工程化化开发方法,标标准和规范,
3、网网络和分布式式开发,面向向对象技术,软软件过程与过过程改进维护责任者程序设计者开发小组专职维护人员硬件特征价格高,存储容容量小,工作作可靠性差降价,速度、存存储容量及工工作可靠性有有明显提高向超高速、大容容量、微型化化及网络化方方向发展软件特征完全不受重视软件技术的发展展不能满足需需求,出现软软件危机开发技术有进步步,但未获突突破性进展,价价格高,未完完全摆脱软件件危机软件危机*软件需求增长长得不到满足足;*软件生产成本本高,价格昂昂贵;*软件生产进度度无法控制;*软件需求定义义不准确,易易偏离用户需需求;*软件质量不易易保证;*软件可维护性性差等等软件工程采用工程的概念念、原理、技技术和方
4、法来来开发与维护护软件,把经经过时间考验验而证明正确确的管理技术术和当前能够够得到的最好好的技术方法法结合起来,这这就是软件工工程。Boehm曾为为软件工程下下了定义:运运用现代科学学技术知识来来设计并构造造计算机程序序及为开发、运运行和维护这这些程序所必必需的相关文文件资料。Fritz BBauer: The estabblishmment aand usse of soundd engiineeriing prrincipples iin ordder too obtaain ecconomiicallyy softtware that is reeliablle andd workks
5、effficienntly oon reaal macchiness.软件工程程是建立和使使用一系列完完善的工程化化原则以便经经济地获得能能够在实际机机器上有效运运行的可靠软软件。1983年,IIEEE(IInstittute oof Eleectriccal & Electtronicc Engiineerss,电气和电电子工程师学学会)做出的的定义是“软件工程是是开发、运行行、维护和修修复软件的系系统方法。”它的核心内容是是“以工程化的的方式组织软软件的开发”,其中涉及及软件计划、开开发和维护各各个阶段。软件工程三个要要素:方法、工工具和过程。软件工程方法为为软件开发提提供了“如何做”的技
6、术。软件工具为软件件工程方法提提供自动的或或半自动的软软件支撑环境境。软件工程过程指指将软件工程程的方法和工工具综合起来来,以达到合合理、及时地地进行计算机机软件开发的的目的。软件工程过程(SSoftwaare Enngineeering Proceess)软件工程过程是是指为了获得得软件产品,在在软件工具支支持下由软件件工程师采用用软件工程方方法完成的一一系列软件工工程活动。软件工程的七条条原理著名的软件工程程专家B.WW.Boehhm于19883年在一篇篇论文中提出出了软件工程程的七条基本本原理。他认认为这七条原原理是确保软软件产品质量量和开发效率率的原理的最最小集合。分阶段的生命周周期计
7、划严格格管理坚持进行阶段评评审实行严格的产品品控制采用现代程序设设计技术结果应能清楚地地审查开发小组的人员员应少而精承认不断改进软软件工程实践践的必要性软件工程的目标标组织实施软件工工程项目是为为了获得项目目的成功,即即达到以下几几个主要的目目标:出较低的开发成成本到预期的软件功功能取得较好的软件件性能使开发的软件易易于移植需要较低的维护护费用能按时完成开发发工作,及时时交付使用概括地说,基本本目标,四个个字:优质、高高效。即质量量高、效率高高。软件工程的原则则软件工程基本本目标适用于于所有软件工工程项目。为为达到这些目目标,在软件件开发过程中中必须遵循下下列软件工程程原则。1抽象2信息隐蔽3
8、模块化4局部化5确定性6一致性7完备性8验证性使用一致性、完完备性和可验验证性的原则则可以帮助开开发者设计一一个正确的系系统。软件生命周期(llife ccycle)同其它事物一样样,软件也有有孕育、诞生生、成长、成成熟、衰亡的的生存过程,称称为软件的生生命周期。包包括六阶段内内容:制定计划需求分析系统设计程序编写软件测试运行和维护软件生命周期经经典模型瀑布模型软件生命周期模模型是从软件件项目需求定定义直至软件件经使用后废废弃为止,跨跨越整个生存存期的系统开开发、运作和和维护所实施施的全部过程程、活动和任任务的结构框框架。软件开发模型瀑布模型:按照照软件生命周周期经典模型型-瀑布模型型的各个阶
9、段段实施开发工工作优点:1提供了软件件开发的基本本框架,优于于“手工作坊”式的开发方方法2有利于大型型软件开发过过程中人员的的组织、管理理3有利于软件件开发方法和和工具的研究究与使用,从从而提高了大大型软件项目目开发的质量量和效率缺点:1在软件开发发的初始阶段段指明软件系系统的全部需需求是困难的的,有时甚至至是不现实的的2需求确定后后,用户和软软件项目负责责人要等相当当长的时间(经经过设计、编编码、测试、运运行)才能得得到一份软件件的最初版本本。如果用户户对这个软件件提出比较大大的修改意见见,那么整个个软件项目将将会蒙受巨大大的人力、财财力、时间方方面的损失。渐进模型(演化化模型、原型型模型)
10、原型模型在克服服瀑布模型缺缺点、减少由由于软件需求求不明确而给给开发工作带带来风险方面面,确实有着着显著的效果果原型化方法是用用户和软件开开发人员之间间进行的一种种交互过程,适适用于需求不不确定性高的的系统螺旋模型它是生命周期模模型与原型模模型的结合,不不仅体现了两两个模型的优优点,还增加加了新的成分分风险分析析螺旋模型是支持持大型软件开开发并具有广广泛应用前景景的模型例题1开发软件时时,对于提高高软件开发人人员工作效率率至关重要的的是(A)。软软件工程中描描述软件生存存周期的瀑布布模型一般包包括计划、(BB)、设计、编编码、测试、维维护等几个阶阶段。其中,设设计阶段在管管理上又可以以依次分成
11、(CC)和(D)两两个步骤。供选答案:A: 程程序开发环境境 操作系统的的资源管理功功能开发程序人员员数量 计算机的并并行处理能力力B: 需需求分析 需求调查可行性分析 问题定义C、D:方案案设计代码设计概要设计 数据设计运行设计详细设计故障处理设设计 软件体系结结构设计答案:A. B. C. D. 2有人将软件件的发展过程程划分为4个个阶段:第一阶段(200世纪50年年代)称为“程序设计的的原始时期”。这时既没没有(A),也也没有(B),程程序员只能用用机器指令编编写程序。第二阶段(200世纪60年年代)称为“基本软件期期”。出现了(AA),并逐渐渐普及。随着着(B)的发发展,编译技技术也有
12、较大大的发展。第三阶段(200世纪60年年代末-700年代中)称称为“程序设计方方法时代”。这一时期期,与硬件价价格下降相反反,软件开发发费用急剧上上升。人们提提出了(C)和和(D)等程程序设计方法法,设法降低低软件的开发发费用。第四阶段(200世纪70年年代中期至今今)称为“软件工程时时期”,软件开发发技术不再仅仅仅是程序设设计技术,而而是包括了与与软件开发的的各个阶段,如如(E)、(FF)、编码、单单元测试、综综合测试、(GG)及其整体体有关的各种种管理技术。供选择的答案:AD:汇编编语言 操作系统 虚拟存储器器概念 高级语言结构化程序设设计 数据库概念念 固件 模块化程序序设计EG:使用
13、用和维护 兼容性的确确认 完整性的确确认 设计需求定义 图象处理答案:A. B. C. D. E. F. G.问题定义关于问题性质、工工程目标和规规模的书面报报告可行性研究(也也称可行性分分析,Feaasibillity AAnalyssis)目的就是要用最最小的代价在在尽可能短的的时间内确定定问题是否能能够解决。具体任务:1进一步分析析和澄清问题题定义。2导出系统的的高层逻辑模模型。从系统统逻辑模型出出发,探索若若干种可供选选择的主要解解法(即系统统实现方案)。对对每种解法都都应该至少从从下述几方面面研究其可行行性:Economiic feaasibillity,经经济可行性。这这个系统的经
14、经济效益能超超过它的开发发成本吗? Techniccal feeasibiility,技技术可行性。使使用现有的技技术能实现这这个系统吗?Legal ffeasibbilityy,法律可行行性。确定系系统开发可能能导致的任何何侵权行为、妨妨碍性后果和和责任。Operatiional feasiibilitty,操作可可行性。系统统的操作方式式在这个用户户组织内行得得通吗?3、对以后的行行动方针提出出建议。基于计算机系统统的成本效益分析是是可行性研究究的重要内容容,它用于评评估计算机系系统的经济合合理性。给出出系统开发的的成本论证,并并将估算的成成本与预期的的利润进行对对比。成本软件开发成本主主
15、要表现为人人力消耗(乘乘以平均工资资则得到开发发费用)。一般来说,基于于计算机系统统的成本由四四个部分组成成:1购置并安装装软硬件及有有关设备的费费用2系统开发费费用3系统安装、运运行和维护费费用4人员培训费费用1、代码行技术术代码行技术是比比较简单的定定量估算方法法,也是一种种自底向上的的估算方法。它它把开发每个个软件功能的的成本和实现现这个功能需需要用的源代代码行数联系系起来。通常常根据经验和和历史数据估估计实现一个个功能需要的的源程序行数数。一旦估计出源代代码行数以后后,用每行代代码的平均成成本乘以行数数即可确定软软件的成本。每每行代码的平平均成本主要要取决于软件件的复杂程度度和开发小组
16、组的工资水平平。大致分如下两步步: = 1 * GB2 对要求设计计的系统进行行功能分解,直直到可以对为为实现该功能能所要求的源源代码行数做做出可靠的估估算为止。根根据经验和历历史数据,对对每个功能块块估计一个最最有利的、最最可能的和最最不利的LOOC值。设最最有利的LOOC值为a,最最可能的LOOC值为m,最最不利的LOOC值为b,则则代码行的期期望(平均)值值L = 2 * GB2 再根据历史史数据和经验验,选择每个个软件功能块块的LOC价价格计算每个功能块块的价格及工工作量,并确确定该软件项项目总的估算算价格和工作作量。可行性论证的提提纲大致包括如下内内容:背景情况。问题题描述,市场场需
17、求等系统描述。简略略的范围描述述,计划目标标和阶段目标标等候选方案。候选选方案的配置置,选择最终终方案的准则则等价格利益分析。经经费概算和预预期经济效益益技术冒险评价。包包括技术实力力、设备条件件和已有工作作基础操作可行性。用用户组织对操操作方式的希希望法律可行性。系系统开发可能能导致的侵权权、违法等其它与项目有关关的问题。可可能的未来变变化结论。需求分析所谓软件需求是是指用户对目目标软件系统统在功能、行行为、性能、设设计约束等方方面的期望。需求分析具体任任务:确定对系统的综综合要求系统功能要求系统性能要求运行要求将来可能提出的的要求分析系统的数据据要求(需求求分析的本质质就是对数据据和加工进
18、行行分析)导出系统的逻辑辑模型修正系统开发计计划开发原型系统(可可选)需求获取技术访谈与会议书面调查法观察用户工作流流程用户和开发人员员共同组成联联合小组需求调查主要包括四部分分内容:组织概况组织的业务活动动:组织的业务状态态业务的详细内容容输入输出信息从从六个方面着着手:*信息流向*信息种类*利用的目的*信息的使用者者和制造者*输入和输出地地点*输入和输出信信息量存在问题、约束束条件未来要求结构化分析方法法(SA方法法)就是面向向数据流自顶顶向下逐步求求精进行需求求分析的方法法。分析的过程:面面向数据流,采采用自顶向下下、分支分层层、逐步分解解、逐步细化化、逐步求精精,最后落实实到具体加工工
19、、基本加工工、简单加工工。用逐步求求解的方法控控制系统的复复杂度,使得得复杂系统简简单化、抽象象系统具体化化。数据流图(DFFD)数据流图描绘系系统的逻辑模模型,或者说说描绘信息在在系统中流动动和处理的情情况。基本系统模型数据流分析将系系统模型视作作一种数据变变换,它接受受各种形式的的输入,通过过变换产生各各种形式的输输出。例,下图是一个个飞机机票预预定系统的基基本系统模型型 数据流图的成分分下图是机票预定定系统的DFFD。可以看出,数据据流图是由以以下四个基本本成分组成的的:数据流(用箭头头表示)加工(用圆圈表表示)文件(用单线或或双线表示)数据源点和终点点(用方框表表示)几点说明:一个加工
20、并不一一定是一个程程序。一个数据存储也也不等同于一一个文件。数据存储和数据据流都是数据据,但所处状状态不同。自顶向下逐层画画DFD的步步骤如下:把基本系统模型型加上源点和和终点作为顶顶层DFD。画出各层DFDD,逐层画DDFD的过程程也就是逐层层分解的过程程。为便于管理,要要对分层DFFD和图中的的加工进行编编号。子图的图号就是是分解的父图图中相应加工工的编号。子图中的加工编编号是由子图图号、小数点点、局部顺序序号组成。画出总的DFDD。(可选)画DFD时要注注意的几个问问题:画DFD不是画画流程图。DDFD只描述述“做什么”,不描述“怎么做”和做的顺序序。而流程图图表示对数据据进行加工的的次
21、序和细节节。父图和子图的平平衡。父图某某加工的输入入输出和分解解这个加工的的子图的输入入输出必须完完全一致。局部文件。文件件总是局部于于分层DFDD的某一层或或某几层。分解的深度与层层次。逐层分分解要求分解解到加工成为为足够简单、易易于理解的基基本加工为止止。所谓基本本加工就是加加工的意义明明确、操作单单一。但是究究竟分解的层层次多少合适适,应当根据据问题的复杂杂程度来确定定。一般来说说,可参考以以下准则:一个加工的分解解,最多不要要超过7个子子加工。若超超过7个时,可可以用增加层层次的办法来来减少子加工工数。分解在逻辑上应应合理、自然然,不能硬性性分割。在保证数据流的的易理解性的的前提下,尽
22、尽量少分解层层次。这样可可以减少层次次的界面。分解要均匀。即即在一张DFFD中,不要要有些加工已已是基本加工工,另一些加加工还要分解解好几层。绝绝对均匀不可可能,但不要要相差太大。数据字典(DDD)数据字典是关于于数据的信息息的集合,也也就是对数据据流图中包含含的系统元素素(所有数据据流、加工、文文件)的定义义的集合。数据流图和数据据字典是需求求规格说明书书的主要组成成部分。数据流条目数据流条目是定定义数据流的的。定义的方方式一般是列列出该数据流流的各组成数数据项。在定定义数据流时时,通常借助助于一些简单单的符号。如如=等价价于(定义为为)+ “与” x=aa+b,x由由a和b组成成|,,“或
23、”x= , ,xx=a|bb x由由a或b组成成重复 xx=a x由0个个或多个a组组成mn重复 如如x=3aa8 表表示x中至少少出现3次aa,至多出现现8次a()可选选(选择)如x=a+(b)+cc b可可以在x中出出现,也可以以不出现“”基基本数据元素素 x=“a” x为取取值为a的数数据元素.连连接符 xx=1.99 x可取取1至9中的的任一值如数据流“存折折”可以定义:存折=户名+所号+帐号号+开户日+性质+(印印密)+1存取行5500000000000999999999户名=2字母母24所号=“0011”“999”帐号=“0000000011”“999999999”开户日=年+月月
24、+日性质=“1”.“6”印密=“0”存取行=日期+(摘要)+支出+存入入+余额+操操作+复核日期=年+月+日年=“00011”.“9999”月=“01”.“12”日=“01”.“31”摘要=1字母母4支出=金额金额=“00000000.01”.“99999999.999”操作=“000001”.“999999”数据文件条目文件条目是定义义文件的,一一般只需列出出文件的组成成数据项,以以及文件的组组织方式如数据文件(数数据存储)“存折”可定义为存折=户名+所号+帐号号+开户日+性质+(印印密)+1存取行5500000000000999999999组织:按帐号次次序从小至大大排列加工条目(小说说明
25、)小说明集中描述述一个加工“做什么”,即加工逻逻辑。所谓加加工逻辑是指指用户对这个个加工的逻辑辑要求,即这这个加工的输输出数据流和和输入数据流流的逻辑关系系。目前用于写小说说明(加工逻逻辑说明)的的工具有结构构化英语、判判定表和判定定树。结构化英语下面是商店业务务处理系统中中“检查发货单单”的例子IF the invoiice exxceedss $5000 THENN(发货单金额额超过$5000)IF thee accoount hhas anny invvoice more than 60 daays ovverduee THENN(欠款超过过60天)the cconfirrmatioon
26、 pennding resollutionn of tthe deebt(在偿还欠款款前不予批准准)ELSE (accouunt iss in ggood sstandiing)(欠款未超期期)issuee conffirmattion aand innvoicee(发批准书及及发货单)ENDIFELSE (iinvoicce $5000 or less)(发货单金额额未超过$5500)IF thee accoount hhas anny invvoice more than 60 daays ovverduee THENN(欠款超过660天)issuee conffirmattion, in
27、voiice annd wriite meessagee on ccreditt actiion reeport(发批准书,发发货单及赊欠欠报告)ELSE (accouunt iss in ggood sstandiing)(欠款未超超期)Issuee conffirmattion aand innvoicee(发批准书及及发货单)ENDIF判定表在某些数据处理理问题中,某某数据流图的的加工需要依依赖于多个逻逻辑条件的取取值,就是说说完成这一加加工的一组动动作是由于某某一组条件取取值的组合引引发的。这时时使用判定表表来描述比较较合适。下面面以“检查发货单单”为例,说明明判定表的构构成。1234
28、条件发货单金额$500$500$500$500赊欠情况60天60天60天60天操作不发出批准书发出批准书发出发货单发出赊欠报告判定表由四个部部分组成,虚虚线分割开的的四部分是:条件茬(Connditioon Stuub)左上部分分条件项(Connditioon Enttry)右上部分分动作茬(Acttion SStub)左下部分分动作项(Acttion EEntry)右下部分分例题 请用判判定表表示下下面描述的耗耗电计费系统统中电费的计计算方法耗电计费系统可可以采用固定定价格收费和和浮动价格收收费两种方式式。若采用固固定价格方式式收费,对每每月耗电1000KWh以下的用用户只征收最最低标准费,
29、超超过100KKWh的用户按按价格表A收收费;若采用用浮动价格方方式收费,则则每月耗电1100KWh以下的用用户按价格表表A收费,超超过100KKWh的用户按按价格表B收收费。答案:条件收费方式固定固定浮动浮动耗电规模100100100100操作征收最低标准费费按价格表A收费费按价格表B收费费条件固定固定浮动浮动100100100100操作按价格表A收费费征收最低标准费费按价格表B收费费按价格表A收费费判定树判定树也是用来来表达加工逻逻辑的一种工工具,有时它它比判定表更更直观。下面面把前面的“检查发货单单”的例子用判判定树表示。我们用DFD描描述了系统中中数据流动和和加工的状况况,用DD描描述
30、了其中的的一些数据流流、文件和加加工,但是还还不能满足需需求分析阶段段的要求。任任何一个软件件系统都可能能有成千上万万个数据项,仅仅仅描述它们们是不够的,更更重要的是如如何把它们以以最优的方式式组织起来,以以满足系统对对数据的要求求。E-R图(Enntity-Relattionshhip,实体体-关系图)1、实体是现实世界中实实体的数据侧侧面;或者说说,数据对象象是现实世界界中省略了功功能和行为的的实体。2、联系客观世界中的事事物彼此间往往往是有联系系的。同样,应应用问题中的的任何数据对对象都不是孤孤立的,它们们与其它数据据对象一定存存在各种形式式的联系。联系可分为三类类:一对一联系(11:1
31、)一对多联系(11:N)多对多联系(MM:N)3、属性属性是实体或联联系所具有的的性质软件需求规格说说明引言。编写目的的,项目背景景等任务概述。目标标,运行环境境等数据描述。功能需求。性能需求。运行需求。其他需求。例题1软件需求分分析的任务不不应包括(AA)。进行需需求分析可使使用多种工具具,但(B)是是不适用的。在在需求分析中中,分析员要要从用户那里里解决的最重重要的问题是是(C)。需需求规格说明明书的内容不不应当包括(DD)。该文档档在软件开发发中具有重要要的作用,但但其作用不应应当包括(EE)。供选答案:A:问题分分析信息域分析析结构化程序设设计确定逻辑模模型B:数据流流图判定表PAD图
32、数据词典C:要让软软件做那么要给软件提提供哪些信息息要求软件工作作效率如何要让软件具具有什么样的的结构D:对重要要功能的描述述对算法的详详细过程性描描述软件确认准则则软件的性能能E:软件设设计的依据用户和开发发人员对软件件要“做什么”的共同理解解软件验收的依依据软件可行性性分析的依据据答案:A. B. C. D. E.2在结构化分分析方法中,用用以表达系统统内数据的运运动情况的工工具有()。供选答案:A.数据流图 B.数据据词典 CC.结构化英英语 D.判定表与判判定树答案:A一旦软件需求确确认之后,就就进入开发阶阶段。开发阶阶段由3个互互相关联的步步骤组成,即即设计、实现现(编码)和和测试。
33、从工程管理的角角度看,软件件设计可分为为概要设计/总体设计和和详细设计两两大步骤。从技术角度来看看,软件设计计可分为数据据设计、系统统结构设计和和过程设计。现现在越来越多多的人把界面面设计也单独独取出作为一一个方面。概要设计基本目的是用比比较抽象概括括的方式确定定系统如何完完成预定的任任务,即确定定软件系统的的总体结构,给给出系统中各各个组成模块块的功能和模模块间的接口口。涉及的概念主要要有:模块化化,抽象与逐逐步求精,信信息隐藏,模模块独立在进行软件结构构设计时应该该遵循的最重重要的原理是是模块独立原原理。采用模块化原理理的优点:可以使软件结构构清晰,容易易设计、容易易阅读和理解解、容易测试
34、试和调试。提高软件的可靠靠性。易于软件开发工工程的组织管管理。所谓模块的独立立性,是指软软件系统中每每个模块只涉涉及软件要求求的具体的子子功能,而和和软件系统中中其他模块的的接口是简单单的。模块独立性可用用两个定量准准则来度量耦合(couppling):各个模块之之间相互关联联的度量内聚(coheesion):模块内部各各元素之间相相互关联的度度量耦合共分七级非直接耦合、数数据耦合、特特征耦合/标标记耦合、控控制耦合、外外部耦合、公公共耦合、内内容耦合按上述顺序,耦耦合性逐渐升升高,模块独独立性逐渐降降低。内聚共分七级偶然内聚、逻辑辑内聚、时间间内聚、过程程内聚、通信信内聚、顺序序内聚、功能能
35、内聚按上述顺序,内内聚性逐渐加加强,功能趋趋于单一,模模块独立性也也逐渐加强。软件概要设计的的目标是力求求增加模块的的内聚,尽量量减少模块间间的耦合。但但增加内聚比比减少耦合更更重要,应当当把更多的注注意力集中到到提高模块的的内聚程度上上来。系统结构设计的的七条启发式式原则:改进软件结构提提高模块独立立性模块规模应该适适中深度、宽度、扇扇出和扇入都都应适当模块的作用范围围应在控制范范围之内力争降低模块接接口的复杂程程度设计单入口单出出口的模块模块功能应该可可以预测概要设计常用图图形工具有:层次图、HHIPO图、结结构图(SCC图)。常见的软件概要要设计方法有有3大类:以数据流图为基基础构造模块
36、块结构的结构构化设计方法法(SD,SStructtured Desiggn)以数据结构为基基础构造模块块结构的Jaacksonn方法和LCCP(Loggical Consttructiion off Proggrams)(WWanierr)逻辑构造造方法以对象、类、继继承和通信为为基础的面向向对象的设计计方法(OOOD)此外,以信息隐隐藏为原则的的Parnaas方法虽然然没有给出系系统化的设计计方法,但提提出了一组原原则。结构化设计方法法(Struuctureed Dessign,SSD)是基于于模块化、自自顶向下细化化、结构化程程序设计等程程序设计技术术基础而发展展起来的。概要设计的步骤骤:
37、分析/重画DFFD确定DFD的特特点及边界映射为软件结构构细化后,得到初初始结构图获得最终的软件件结构图概要设计说明书书引言。编写目的的,项目背景景等任务概述。目标标,运行环境境,需求概述述,条件与限限制等总体设计。处理理流程,系统统总体结构等等接口设计。外部部接口,内部部接口等数据结构设计运行设计出错处理设计其它问题例题1在众多的设设计方法中,SSD方法是最最受人注意的的,也是最广广泛应用的一一种,这种方方法可以同分分析阶段的(AA)方法及编编程阶段的(BB)方法前后后衔接,SDD方法考虑如如何建立一个个结构良好的的程序结构,它它提出了评价价模块结构质质量的两个具具体标准-块块间联系和块块内
38、联系。SSD方法的最最终目标是(CC),用于表表示模块间调调用关系的图图叫(D)。另一种比较著名名的设计方法法是以信息隐隐藏为原则划划分模块,这这种方法叫(EE)方法。供选择的答案:A-B:JaacksonnSASCParnaasSPC: 块间联联系大,块内内联系小 块间联系大大,块内联系系小块间联系小,块块内联系大 块间联系小小,块内联系系小D: PADDHCPSCSADTHIPONSE: Jacckson Parnaas Turinng Wirthh Dijksstra答案:A. B.C.D.E.2块间联系和和块内联系是是评价程序模模块结构质量量的重要标准准。联系的方方式、共用信信息的作用
39、、共共用信息的数数量和接口的的(A)等因因素决定了块块间联系的大大小。在块内内联系中,(BB)的块内联联系最强。SD方法的总的的原则是使每每个模块执行行(C)功能能,模块间传传送(D)参参数,模块通通过(E)语语句调用其它它模块,而且且模块间传送送的参数应尽尽量(F)。此外,SD方法法还提出了判判定的作用范范围和模块的的控制范围等等概念。SDD方法认为,(GG)应该是(HH)的子集。供选择的答案:A:友好性 健壮性 简单性 安全性B:巧合内聚聚 功能内聚 通信内聚 信息内聚C:一个多个D:数据型 控制型 混合型E:直接引用用标准调用 中断 宏调用F:少多G-H:作用用范围控制范围答案:A. B
40、. C. D. E. F. G. H.3从下列有关关系统结构图图的叙述中选选出正确的叙叙述A系统结构图图中反映的是是程序中数据据流的情况。B系统结构图图是精确表达达程序结构的的图形表示法法。因此,有有时可将系统统结构图当作作程序流程图图使用。个模块的多个下下属模块在系系统结构图中中所处的左右右位置是无关关紧要的。系统结构图中,上上级模块与其其下属模块之之间的调用关关系用有向线线段表示。这这时,使用斜斜的线段和水水平、垂直的的线段具有相相同的含义。答案:D5在完成软件件概要设计,并并编写出相关关文档之后,应应当组织对概概要设计工作作的评审。评评审的内容包包括:分析该软件的系系统结构、子子系统结构
41、,确确认该软件设设计是否覆盖盖了所有已确确定的软件需需求,软件每每一成分是否否可(A)到到某一项需求求。分析软件各部分分之间的联系系,确认该软软件的内部接接口与外部接接口是否已经经明确定义。模模块是否满足足(B)和(CC)的要求。模模块(D)是是否在其(EE)之内。供选择的答案:A:覆盖 演化 追溯 等同 连接B:多功能 高内聚 高耦合 高效率 可读性C:多入口 低内聚 低耦合 低复杂度 低强度D-E:作用用范围 高内聚 低内聚 取值范围 控制范围答案:A. B. C. D. E.详细设计详细设计就是要要在总体设计计阶段成果的的基础上,考考虑如何实现现定义的软件件系统,直到到对系统中的的每个模
42、块给给出足够详细细的过程描述述。结构化程序设计计技术是进行行详细设计的的逻辑基础。它它采用自顶向向下逐步求精精的设计方法法和单入口单单出口的控制制结构。结构化程序设计计的三种基本本控制结构是是顺序、选择择、循环。详细设计的工具具有程序流程程图、盒图、PAD图、判定表、判定树和PDL语言等。程序复杂性度量量程序复杂性主主要指模块内内程序的复杂杂性。它直接接关联到软件件开发费用的的多少、开发发周期的长短短和软件内部部潜伏错误的的多少等。代码行度量法度量程序的复杂杂性,最简单单的方法就是是统计程序的的源代码行数数。该方法的的基本考虑是是统计一个程程序模块的源源代码行数目目,并以源代代码行数作为为程序
43、复杂性性的度量。Lipow及其其他研究者得得出一个结论论:对于少于于100个语句句的小程序,源源代码行数与与出错率是线线性相关的。随随着程序的增增大,出错率率以非线性方方式增长。McCabe度度量法McCabe度度量法是一种种基于程序控控制流的复杂杂性度量方法法。McCaabe定义的的程序复杂性性度量值又称称环路复杂性性,它是基于于程序图中环环路的个数。如果把程序流程程图中每个处处理符号都退退化成一个结结点,原来联联结不同处理理符号的流线线变成连接不不同结点的有有向弧,这样样得到的有向向图就叫做程程序图。计算有向图G的的环路复杂性性的公式:其中,V(G)是有向图G中的环路个个数,m是图G中有向
44、弧个个数,n是图G中结点个数数。详细设计说明书书引言总体设计。软件件结构程序描述。逐个个模块描述其其功能、性能能、输入、输输出、算法等等例题软件详细设计工工具可分为33类,即图形形工具、设计计语言和表格格工具。图形形工具中,(A)简单而应用广泛。(B)表示法中,每个处理过程用一个盒子表示,盒子可以嵌套。(C)可以纵横延伸,图形的空间效果好。(D)是一种设设计和描述程程序的语言,它它是一种面向向(E)的语言。供选答案:A-C:NSS图流程图HIPO图PAD图D:CPDLPROLOOGPascaalE:人机器数据结构对象答案:A.B.C.D.E.2001年统统考下面是两个个程序流程图图,试分别用用
45、N-S图和PAD图表示示之,并计算算它们的MccCabe复复杂性度量。答案:PAD图略McCabe复复杂性度量都都为3。(7-6+2)下图是使用BAASIC语言言编写的一个个打印A、B、C三数中最小小者的程序流流程图。其中中出现了6个GOTO语句句,1个向前,5个向后,程程序可读性很很差。if (ABB) gotto 1200;if (BCC) gotto 1100;print CC;goto 1440;print BB;goto 1440;if (ACC) gotto 1300;goto 1000;print AA;140试利用基本控制制结构,将程程序中的GOOTO语句消消去。使用if-th
46、hen-ellse结构化化构造,则上上述程序段可可改成如下形形式:if (ABB and A=B andd Bc) thennprintt Belse print CC编码所谓编码就是把把软件设计的的结果翻译成成计算机可以以“理解”的形式用某种程序序设计语言书书写的程序。按照软件工程的的方法论,程程序的质量基基本上由设计计的质量决定定。但是,编编码使用的语语言,特别是是写程序的风风格和途径也也对程序质量量有相当大的的影响。程序设计语言的的分类、选择择大量实践表明,高高级程序设计计语言较汇编编语言有很多多优点。程序设计风格包包括四个方面面:源程序文档化、数数据说明、语语句结构和输输入/输出方法例
47、题从下列叙述中选选出5条符合程序序设计风格指指导原则的叙叙述。嵌套的重数应应加以限制尽量多使用临临时变量不滥用语言特特色不用可以省略略的括号使用有意义的的变量名应尽可能把程程序编得短些些把常见的局部部优化工作留留给编译程序序去做注解越少越好好程序的格式应应有助于读者者理解程序应尽可能多用用GOTO语句句答案:、是正确的从下列关于模块块化程序设计计的叙述中选选出5条正确的叙叙述。程序设计比较较方便,但比比较难以维护护便于由多个人人分工编制大大型程序软件的功能便便于扩充程序易于理解解,也便于排排错在主存储器能能够容纳得下下的前提下,应应使模块尽可可能大,以便便减少模块的的个数模块之间的接接口叫做数
48、据据文件只要模块之间间的接口关系系不变,各模模块内部实现现细节的修改改将不会影响响别的模块模块间的单向向调用关系叫叫做模块的层层次结构模块越小,模模块化的优点点越明显。一一般来说,模模块的大小都都在10行以下答案:、是正确的测试软件测试的目的的就是软件投投入生产性运运行之前,尽尽可能多地发发现软件中的的错误。目前前软件测试仍仍然是保证软软件质量的关关键步骤。软件测试在软件件生命周期中中横跨两个阶阶段:编码和和测试。Grenforrd J.MMyers就就软件测试目目的提出以下下观点:测试是程序的执执行过程,目目的在于发现现错误。一个好的测试用用例在于能发发现至今未发发现的错误一个成功的测试试是
49、发现了至至今未发现的的错误的测试试软件测试的原则则应当尽早地不断断地进行软件件测试测试用例应由测测试输入数据据和与之相对对应的预期输输出结果这两两部分组成程序员应避免检检查自己的程程序在设计测试用例例时,应当包包括合理的输输入条件和不不合理的输入入条件充分注意测试中中的群集现象象严格执行测试计计划,排除测测试的随意性性应当对每个测试试结果做全面面检查妥善保存测试计计划、测试用用例、出错统统计和最终分分析报告,为为维护提供方方便常分单元测试/模块测试,集集成测试,确确认测试和系系统测试。关关系重大的还还可做平行运运行。设计测试方案是是测试阶段的的关键技术问问题,基本目目标是选用最最少量的高效效测
50、试数据,做做到尽可能完完善的测试,从从而尽可能多多地发现软件件中的问题。动态测试两个基基本方法黑盒测试/功能能测试等价类划分边界值分析错误推测法因果图法白盒测试/结构构测试语句覆盖:使使得每一可执执行语句至少少执行一次判定覆盖:使使得程序中每每个判断的取取真分支和取取假分支至少少执行一次条件覆盖:使使得程序中每每个判断的每每个条件的可可能取值至少少执行一次判定-条件覆覆盖:使得判判断中每个条条件的所有可可能取值至少少执行一次,同同时每个判断断的所有可能能判断结果至至少执行一次次条件组合覆盖:使得每个判判断的所有可可能的条件取取值组合至少少执行一次路径覆盖:覆覆盖程序中所所有可能的路路径设计测试
51、方案的的实用策略是是,用黑盒法法设计基本的的测试方案,再再用白盒法补补充一些必要要的测试方案案。应该认识到,软软件测试不仅仅仅指利用计计算机进行的的测试,还包包括人工进行行的测试(例例如,代码审审查)。两种种测试途径各各有优缺点,互互相补充,缺缺一不可。因果图方法最终终生成的就是是判定表。它它适合于检查查程序输入条条件的各种组组合情况。例题2000年统统考设要对一个个自动饮料售售货机软件进进行黑盒测试试。该软件的的规格说明如如下:有一个处理单价价为1元5角钱的盒装装饮料的自动动售货机软件件。若投入11元5角硬币,按按下“橙汁”、“啤酒”或“红茶”按钮,相应应的饮料就送送出来。若投投入的是2元硬
52、币,在在送出饮料的的同时退还55角硬币。1)(5分)试试利用因果图图法,建立该该软件的因果果图;2)(5分)设设计测试该软软件的全部测测试用例。因果图(加入了了两个中间结结点11和12。11表示已投投币,12表示已按按钮)测试用例1234567891011输入投入1元5角硬硬币(1)11110000000投入2元硬币(2)00001111000按”橙汁”按钮钮(3)10001000100按”啤酒”按钮钮(4)01000100010按”红茶”按钮钮(5)00100010001中间结点已投币(11)11111111000已按钮(12)11101110111输出退还5角硬币(21)000011100
53、00送出橙汁饮料(22)10001000000送出啤酒饮料(23)01000100000送出红茶饮料(24)00100010000软件测试是软件件质量保证的的主要手段之之一,测试的的费用已超过过(A)的30%以上。因因此,提高测测试的有效性性十分重要。“高产”的测试是指(B)。根据国家标准GB8566-88计算机软件开发规范的规定,软件的开发和维护划分为8个阶段,其中,单元测试是在(C)阶段完成的,集成测试的计划是在(D)阶段制定的,确认测试的计划是在(E)阶段制定的。供选择的答案:A:软件开发费费用软件维护费费用软件开发和维维护费用软件研制费费用软件生存期全全部B:用适量的的测试用例运运行程
54、序,证证明被测程序序正确无误用适量的测试试用例运行程程序,证明被被测程序符合合相应的要求求用少量的测试试用例运行程程序,发现被被测程序尽可可能多的错误误用少量的测试试用例运行程程序,纠正被被测程序尽可可能多的错误误C-E:可行行性研究和计计划需求分析概要设计详细设计实现集成测试确认测试使用和维护护答案:A.B.C.D.E.集成测试也叫做做(A)或(B)。通常,在在(C)的基础上上,将所有模模块按照设计计要求组装成成系统。子系系统的集成测测试特别称为为(D),它所作作的工作是要要找出子系统统和系统需求求规格说明之之间的(E)。需要考考虑的问题是是在把各个模模块连接起来来的时候,穿穿越模块接口口的
55、数据是否否会(F);一个模模块的功能是是否会对另一一个模块的功功能产生不利利的影响;各各个(G)组合起来来,能否达到到预期要求的的(H);(I)是否有问问题;单个模模块的误差累累积起来是否否会放大。供选择的答案:A-D:单元元测试部件测试组装测试系统测试确认测试联合测试E-I:子功功能丢失父功能局部数据结结构全局数据结结构不一致一致答案:A.B.C.D.E.F.G.H.I.软件测试方法可可分为黑盒测测试和白盒测测试两种。黑盒测试法是通通过分析程序序的(A)来设计测测试用例的方方法。除了测测试程序外,它它还适用于对对(B)阶段的软软件文档进行行测试。白盒测试法是根根据程序的(C)来设计测试用例的
56、方法。除了测试程序外,它也适用于对(D)阶段的软件文档进行测试。白盒法测试程序序时常按照给给定的覆盖条条件选取测试试用例。(EE)覆盖比(FF)严格,它它使得每个判判定的每条分分支至少经历历一次。(GG)覆盖既是是判定覆盖,又又是条件覆盖盖,但它并不不保证使各种种条件都能取取到所有可能能的值。(HH)覆盖比其其他条件都要要严格,但它它不能保证覆覆盖程序中的的每一条路径径。单元测试一般以以(I)为主,测测试的依据是是(J)。供选择的答案:A、C:应用用范围内部逻辑功能输入数据B、D:编码码软件详细设设计软件总体设设计需求分析E、F、G、HH:语句判定条件判定/条件多重条件路径I:白盒法黑盒法J:
57、模块功能能规格说明系统模块结结构图系统需求规规格说明答案:A.B.C.D.E.F.G.H.I.J.从下列关于程序序设计风格和和软件测试的的叙述中,选选出5条正确的叙叙述用黑盒法测试试时,测试用用例是根据程程序内部逻辑辑设计的。尽量用公共过过程或子程序序去代替重复复的代码段。测试是为了验验证该软件已已正确地实现现了用户的要要求。对于连锁型分分支结构,若若有n个判定语句句,则有2n条路径。尽量采用复合合的条件测试试,以避免嵌嵌套的分支结结构。GOTO语句句概念简单,使使用方便。在在某些情况下下,保留GOOTO语句反反能使写出的的程序更加简简洁。发现错误多的的程序模块,残残留在模块中中的错误也多多。
58、黑盒测试方法法中最有效的的是因果图法法。在做程序的单单元测试时,桩桩(存根)模模块比驱动模模块容易编写写。程序效率的提提高主要应通通过选择高效效的算法来实实现。答案:、调试软件调试是在在进行了成功功的测试之后后才开始的工工作。调试活动由两两部分组成:确定程序中可疑疑错误的确切切性质和位置置对程序(设计、编编码)进行修修改,排除这这个错误几种主要的调试试方法:强行排错回溯法排错归纳法排错演绎法排错测试和调试是软软件测试阶段段的两个关系系极端密切的的过程,它们们通常交替进进行。测试中的可靠性性分析在软件开发的过过程中,利用用测试的统计计数据,估算算软件的可靠靠性以控制软软件的质量是是至关重要的的。
59、推测错误的产生生频度估算错误产生频频度的一种方方法是估算平平均失效等待待时间MTTTF(Mean Time To Faailuree)。MTTFF估算公式(SShoomaan模型)是是:其中,K是一个个经验常数,美美国一些统计计数字表明,K的典型值是200;ET是测试之前程序中原有的故障总数;IT是程序长度(机器指令条数或简单汇编语句条数);t是测试(包括排错)的时间;EC(t)是在0-t期间内检出并排除的故障总数。公式的基本假定定是:1)、单位(程程序)长度中中的故障数EET/IT近似为常数数,它不因测测试与排错而而改变。统计计数字表明,通通常ET/IT值的变化范范围在0.55*10-222
60、*10-22之间。2)、故障检出出率正比于程程序中残留故故障数,而MMTTF与程程序中残留故故障数成正比比。3)、故障不可可能完全检出出,但一经检检出立即得到到改正。可靠性累积曲线线公式例题对一个长度为1100,0000条指令的的程序进行测测试,记录下下来的数据如如下:.测试开始,发发现错误个数数为0;.经过160小小时的测试,累累计改正1000个错误,此此时,MTTTF=0.44小时;.又经过1600小时的测试试,累计改正正300个错误误,此时,MMTTF=22小时。估计程序中固有有的错误总数数。为使MTTF达达到10小时,必必须测试和调调试这个程序序多长时间?给出MTTF与与测试时间tt之
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年仓储与配送协议3篇
- 2024年建筑合作项目详细合同模板版B版
- 证券经纪协议三篇
- 2024年度二手房买卖合同(南京市买卖)3篇
- 2024年仓储设施拆卸协议3篇
- 2024年二手车交易保障合作合同一
- 校园科技文化节的社团参与计划
- 博物馆管桩施工合同
- 2024年应收账款管理协议(含消费贷款)3篇
- 2024年度国际FBA货物运输与配送合同
- 校企携手共建产业学院合作协议书(参考范本)
- SSOP:卫生标准操作规程
- 废品回收合伙协议书
- 论语选读-04知其不可而为之教学课件
- T-TPPA 0005-2023 藿香正气方优质产品质量标准
- 城中村改造清产核资审计工作方案
- 智能检测技术与传感器PPT完整全套教学课件
- 罐头厂设备清单
- 河南省2022-2023学年普通高中学业水平考试解析与检测综合测试(二)英语试题( 含答案解析 )
- 2023阻塞性睡眠呼吸暂停与难治性高血压(全文)
- 湘教版八上音乐 都达尔和玛利亚 课件(共19张PPT)
评论
0/150
提交评论