《《软件工程》学习辅导.docx》由会员分享,可在线阅读,更多相关《《软件工程》学习辅导.docx(11页珍藏版)》请在课桌文档上搜索。
1、我们知道,软件设计是把一个软件需求转换为软件表示的过程.而概要设计(乂称结构设计)就是软件设计最初形成的一个发示(这里的表示是一个名词,它描述了软件的总的体系结构.简垠地说软件假要设计就是设计出软件的总体结构框架,而后对结构的进一步细化的设计就是软件的详细设计或过程设计,本章所学内容主要就是软件的概要设计内容.二、软件横要设计的根本任务软件概要设计阶段要做的事情是什么呢?总的来看有四个方面:它们是1、设计软件系统结构(软件结构)2、数据结构及数据库设it3、编写概要设计文档4、评审在雷求分析阶段,已经把系线分解成层次结构,面在概要设计阶段,需鬟进一步分解,划分为模块以及模块的层次结构.划分的具
2、体过程是:(D采川某种设计方法.构一个复杂的系统按功能划分成模块.(2)确定每个模块的功能.13)确定模块之间的调用关系,(4)确定模块之间的接口,即模块之间传递的信息.(5)评价模块结构的质S1.对于大型效处理的软件系统,还要对数据结构及敷据库进行设计.在概要设计阶段,还要桀概要设计文档,我们初学者有个不是很好的做法,就是在编程序时,往往不注遨文档的编写,导致以后软件修改和升级很不方便,用户使用时也得不到帮助。所以应该在软件设计的每个阶段编写相应文档,在概要设计阶段.主要有以下文档需要编写:(I)概要设计说明书.(2)数据库设计说明书.(3)用户手册,(4)修订测试方案.最后一个任务就是评审
3、,在做要改汁中,对设计局部是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内外部接口定义正确性、有效性,各局部之间的致性等都要进行评审,以免在以后的设计中发现大的何膻而返工。以上就是软件概要设计的四个根本任务,总结一下用八个字表示:两类结构文档评审.(两类结构就是指软件结构和数抠结构及数据.摩设计)在了解了软件慨要设计的根本任务之后,我们来看看软件设计的根木原理,也就是用于密状软件设计的技术筋度的一些标准.三、软件设计的根本原理1、4UMt帙块就是指在程序中的数据说明、可执行语句等程序对象的集合,或者是总独命名和编址的元素。如裔侬语言中的过程,函数、子程序等。每个模
4、块可以完成一个特定的子功能,各个模块可以按一定方法组装起来成为个整体.从而实现整个系统的功能.模块化就是指解决个复杂问遨时自顶向下逐层把软件系统划分成若干模块的过程.为了解决更杂的问SS,在软件设计中就必须把整个何咫进行分解来降低到杂性,这样就可以M少开发工作愤并降低开发本钱和提高软件生产率。但是划分模块并不是越多越好,因为这会增加模块之间接I的匚作St所以划分模块的层次和数量应该防止过多或过少.2、抽象抽象这个词本身也比较抽象,(老师要小明用抽象和具体造一个句子,可是他不懂,就问妈妈,什么是抽象,什么是具体?姆姆告诉他:抽象就是看不见摸不希的,具体就是看得见摸得希的.小明怪了.很快造好r一个
5、句子.是这样的:今天我很早起床,存见具体的妈妈在炒具体的菜,我翻开窗户,抽象四、软件结构的优化准JH首先应学会用图形及示软件结构,软件结构图反映了整个系统的功能实现,即将来编好程序中的控制层次体系,软件结构往往用树状或网状结构的图形来表示。请大家对照课本的解择来看软件结构图包括哪些内容,我们已经知道了软件概要设计的主要任务就是软件结构的设计,为了提高设计的质S1.可以根据下面的设计优化准则进行优化:在这些准则中.林是针对模块及模块间关系来提出的.1、模块的划分:要做到岛内聚,低耦合,保持相对独立性,2,模块的控制:模块的作用范困要在他的控制范的内,判定所在的模块应与受其影响的模块在层次上尽量就
6、近)3、形成的结构:软件结构的深度、宽度、扇出、网入要适当k模块的大小:要适中。5、模块的接口,模块的接口要的单、清晰、含义明确,便于理解、易于实现、测试与维护)。五、播要设计的设计方法1.)面向数据流的谀计方法(这是需要我们熟练掌旌的方法面向数据流的设计方法是以需求阶段产生的数据流图为基础,按一定的步骤映射成软件结构,因此又称为结构化设计(SIrUe1.UredDesignSD)。这是目前使用最广泛的软件设计方法之一,应该熟练以握它.1、Ir先要研究数流BBeFD)的类型,无怆何种软件系h,DFD一般髭可分为交换型和事务型两类一I先来看变换型数据流图,题名思义,变换就是把输入的数据处理后变成
7、另外的数据输出,所以匆换取数据的工作过程就是三步:取得数据、变换数据和输出数据丁!在图46中,可以看到两股数据流经过冬换中心变成一股数据流进行输出.虚线为标iB的渔界.再来看事务型数据流图.所谓邓务也是一个处理.但不是致我变换,而辿将输人数据滋别总成次多发散的数据流,形成许多加工路径,并根据值选择其中一个路径来执行。帏个例子,好比有个邮件分发中心,把收进的邮件根据其发送地址进行分流,有的用飞机邮送,有的用汽车来运输等等.在大型软件系统中的DH)数据流图中,这两种类型特征都有可能存在2、SD方法设计过程1)精化DFD.2)检定DFD类型并进行相应的映射。3)分解上层模块,设计中下层模块结构4)盘
8、据优化准则对软件结树求精.5)描述模块功能、接口及全局数据结构6)fiS,如果有错则转向2)修改完警,否则进入详细设计。下面我们通过例子来说明变换分析设计和事务分析设计方法。3、变换分析设计以课本页图为例说明变换分析设计。根据面向数据流的设计方法,第一步是精化DFD,也就是研究分析这个数据流图,我的可以看到图中从A到H的数据流向和加工,图形比较简单.第二步是确定外。类型并确定加工中心,在这里已羟说明为本图为变换组,在实际分析中应该极据每个相关操作来确定其类型。在图中,我In可以宜观胞看到中间几股数据流的集合处是系统的变换中心,也Ur以通过双向寻找法来确定,左边是物理输入端,从f1.沿着单向路径
9、一向到f3,后面的f4是从C流出的.同时C还有f5流出,则可见f4,f5不能再看作是系统的输入因此可确定f4,f5前一个数据流F3就是系统的逻辑输入.同样,我们从右边的物理输出端往左边沿数据流的反向寻找,可以发现4,i-6不能后作是整个系统的输出,因此可以确定f7,f8是逻辑输出端,然后在这两个分界处添上虎战,这样,I)FD的三部份就确定了。第三步设计软件结构的II层和第一层.根据变换中心可以时应知到主模块的位置,就可以画出顶这就比上面的单是判定涉盅要严格得多了,如上例.(a=2)or(x1.:在这里必须使a=2、x1.,a2,x1.均出现一次.(4)判定/条件”:上面条件用IK也不一定涧足判
10、定该,因为只符合条件覆族的用例可能会不洞足每个划定语句均有JXtfi或假假出现.因此要两者兼Wb判定条件覆盖就是指设计足够的测试用例,使褥列定表达式中每个条件的所行可旎取值至少出现一次并且每个判定表达式所有可能的结果也至少出现一次.(5)条件蛆合H1.是指设计足然的测试用例,使得姆个判定表达式中条件的各种或能的值的组合都至少出现一次.这就是前面两个用盖的搬合.(6)是指测设计足够的测试用例,II盖被测试程序中所有可能的路径这六种桁曲进行比较有下面个表:笈件绢合发现停洪的能力汝强,凡满足其京港:的测试可例,也必然漏足而四种茂高标布.在实际的逻川刈试中般以笈仰组公苞养为1.Q计测试用例然.后山讣先
11、上混山田为先这跖%:濯京i的刈i标准.2、循环IM1.芍程序中存在循环结构时,要覆靛所行的路径是不可能的,但是可以通过限制循环结构来测试,3、根本路径试:由于实际何题中.程序的路在是庞大的因此要将覆维的路径压缩到一定限度才能解决这个何时.根本路轻测试就是在程序控制流程图的基础上,通过分析控制构造的环路狂杂性,导出根本路径集合从面设计测试用例保证这些路径至少通过一次。再来看看黑盒技术IR盒窝试是功能窝试.测试的是程序的接口.在设计测试用例时有以下几种方法:等价类的划分、边界值分析、错误推测和因果图.这几种方法郎不能提供一组完整的测试用例,在实际测试中应把各种方法结合起来使用。1、类的M分,是将输
12、入数据按有效的或无效的(也称合理的或不合理的)划分成若干个等价类,测试句个等价类的代表值就等于对该类其他值的测试.用该法设计测试用例的步.骤为:1)划分等价类(列一个衣)2)确定测试用例:根据已划分的等价类,按以下步骤设计测试用例:1)为母个等价类编号2)设计一个测试用例.使其尽可能多的用或尚未被没盅过的合理等价类.重复这步直到所有合理等价类被测试用例前蛊,3)设计一个测成用例,使其只留施一个不合理等价类。重视这一抄直到所有不合理等价类被股靛。要注意课本上的例子,会应用这种方法设计测试用例2、边界值分析,也就是在为设计测试用例时,在等价类愆阚内选择一些边界值作为测试用例,这样可以比通用等价类划
13、分法所选的测试用例能查出更多错误,因为实践说明,程序更容易在处理边界值时发生错误.3、储识推测,通常根据经粉或出觉来推测程序中可能出现福说的情况,并有针对性的编:弓检变这叫福误的测试用例.4、因果图:因果图能够有效地检测输入条件的各种组合可能会引起的错误”它的根本原理是通过留闪果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的好列设计一个测试用例。在以上几科软件测状方法,各有所长,做各有所题,在实际测试,J应该枭用综合策略,通常先川黑噌法设计根本的测试用例.百用白盒法补充一些必要的测试用例.一本节具体要掌提的就是等价类燧分及边界曲的混试用网没计.四、软件测试过程GR记)I软件测试的步
14、骤通常有四步:单元测试、集成测谎、确认测试和系统测试。I1、单元,试广覆针对模块的五个根本特征进行测试:模块接II、局部数据结构、重要的执行路径、错误处理和边界条件,单元测试时要用到驱动模块和桩模块.注意要概念:提动模块是用来模拟被测试模块的上级两用模块.脏模块则用来代替被测试模块所调用的模块.2、集成Ie诚疔两种方法:非渐增式测试和渐增式测试,非渐增式测试是指首先对母个模块分别进行单元测试,再把所有模块拒装成一个完整的系统进行的测试.而渐增式测试就是逐个把未经测试的模块组装到已经过测试的模块上去进行集成测试,每参加一个新模块进行一次集成测试,曳显此过程宜到程序配装完毕.渐增式测试有两种不同的
15、组装方法:自顶向下和自底向上结合。注意两者区别,3、确认流祓乂称有效性测试,它的任务是检音软件的功能与性能是否与需求规格说明书中确定的指标相符合.因而需求说明规格说明是确认测试的基础.确认测试有两项工作:进行确认测试与软件配置审查.4、系统费试;即要时软件所运行的整个系统(包括硬件、外设、其他软件和操作人功等)结合在一起进行测试,确过其是否能弊协调工作。五、辑试GR记)软件测试的目的是尽可能多地发现程序中的错俣,而I1.Ii试则是在进行了成功的测试之后才开始的工作。调试的口的是确定错误的原因和位以,并改正错误,因此调试也肺为相错(Debug).调试方法有简单的调试方法、归纳法、演择法和回溯法等
16、.第8章一软件维护软件雉护是软件工程的一个或要任务,作为理论,本疏的内容比较简单,多为识记康会内容,主耍应注意一些微念.其中的软件可维护性是本童的垂点内容.一、软件健护的内容有四种:校正性维护,适应性维护,完善性维护和预防性维护.1、校正性罐护:指为了识别和纠正错误,悻改软件性能上的缺陷,进行确定和修改错误的过程.占整个维护工作的21%2、JfiftftW:为了使本软件适应硬件和软件的变化而修改软件的过程称为适应性维护.占整个维护活动的25%3、完性堆护:墙加软件功能、增强软件性能、提高运行效率而进行的维护活动称为完善性维护,占整个维护工作的50%.4、覆防性维护:为了提乩软件的可雉护性和可靠
17、性而对软件进行的修改拗为预防性维护.只占假.二、修护的格点I、非结构化维护和结构化维护:主要是开发过程是否用软件工程方法,若各阶段均有相应的文档记录.则容易维护.采用结构化维护可以大大提高软件维护效率.2,软件维护的困碓性:是由于软件葡求分析和开发方法的缺陷,3、软件维护的费用;在总贽用中的比武不断增和,己经上升到了70%80%或更多,我们看到的软件不断升媛就是维护的表达。三、雉护任务的实证1、维护工作要建立维护机构.通常是成立维妒小组,有临时维护小组和长期维护小组之分,2,维护的流程是:(1)制定维护申请报告。(2)审杳申请报告并批准,(3)进行维护并做详细记录.(4)复审。3、维护技术:有
18、两类维护技术,即面向维护的技术和维护支援技术.(1)面向维护技术是在软件开发阶段用来减少错误、提高软件可维护性的技术.(2)维妒支援技术是在软件维护阶段用来提高维护作业的效率和顺量的技术。4、维护的副作用:有三种:Stt码副作用,即在修改淑代码时可能引入惜误.(2)数据副作用:在修改数据结构时,有可能造成软件设计与数据结构不匹毛,因而导致错误,数据剧作用是修改软件信息结构导致的结果,(3)文档副作用:即对UJ执行软件的修改没有反映在文档中,就会产生文档副作用,四、软件可堆护性为了使软件能够切于维护必须考虑使软件具有可维护性.1、软件可维护性是指软件能鲂被理解、校正、适应及增强功能的容易程度。软
19、件的可维护性、可使用性、可粘性是衡的软件柄埴的几个主要特性。软件的可维护性是软件开发阶段的关键目标.软件可淮护性的七个质敏特征:可理解性、可测试性、可修改性、可娑性、可移植性、可使用性和效率.2、度量软件可维护性的方法:顺法检杳表、质量测试、质量标准,3、提高可维护性的方法:(D建立明确的软件质量目标(2)利用先进的软件开发技术和工具(3)建立明确的痂量保证工作4)选择可维护的程序设让语言(5)改良程序文档注:本章的习遨及答案根本上就是以上内容,在复习时,并不一定会出到这些咫目,主要是对整个维护工作特点和过程的理解领会,在此茶础上,不需要太多的记忆也能正确答题,第9章一软件开发的增届模型本章介
20、绍了增晟模型协根本思想将特点、模型的分类和模型的表示以及快速潦型的根本原理,学习理论时还足以识记为主。实践则M廉会在毕业设计时用到,一、增模型的根本思想浮布模型有其局限性:很碓适应需求可变、模糊不定的状件系统的开发,而且在开发过程中用户很难多与进去,只有到开发结束才能看到整个软件系统。这种理想的、成性的开发过程威乏灵活性,不适应多际的开发过程。为/克极瀑布模型的闹眼件,产生了增七模型它是在渗布模型的基础上加以修改而形成的.增麻模型和海布模型的本版区别是:渗布模型属于整体开发模型,它规定在开始下一个阶段的工作之徜,必须完成前一阶段的所有细节。而增收模型属于#整体开发模型,它推迟某些阶段或所有阶段
21、中的细节,从而较早的产生工作软件.增量模型是在工程的开发过程中以一系列的地St方式开发的系统.增肽方式包括增况:开发和增Ift提交.根据增景的方式和形式的不同,增景模型的分类分为渐增帙型和原型模型|。二、懒,:又包括增量构造模型和演化提交模型。增量构造模型中,需求分析阶段和设计阶段都是按温布模型的整体方式发.但是娘妈阶段是按增址方式开发,在这种模里的开发中,用户可以及F看到同部软件功能,可以及V发现全面向,以使在开发其他软件功能时及时解决向题。演化提交模型中,工程开发的各个阶段都是用量方式,该模型是增优开发的极端形式,它不仅是增益开发也是增值提交.用户将最早收到局部工作软件.三、(快速)及型模
22、型:包括麻祓二萩原初和温化型原型.1、9:是指模拟某种产品的原始模型,软件开发中的原形是一个早期可运行的版本,它反映了最终系统的申要特性。2、快速JK型的思想:尤H相对少的本钱、较短的周期开发一个简单的、但可以运行的系统原型向用户演示或让用户试用,以便及9澄清并检验一些主要的设计谋略.在此基础上再开发实际的软件系统.3、快速泉型运用方式:行撤ff第略和附黑策珞:(D抛弃策略是将原型用于开发过程的某一阶段,促使该阶段的开发结果更加完整、准确、一致、可绑.该阶段结束后,原翌随之作废.探索型和实验型快速原型就是采用此策略.(2)附加策略是符原型用于开发的全过程,原型中最根本的核心开始.逐步增加新的功
23、能和新的需求.反复修改反复犷充,最后开展为用户满意的系统,演化型快速原型就采用此策略。4、快速原型模型表示:(1)对于探索型,用原鞭过程来代替需求分析,把原型作为需求说明的补充形式,运用原型尽可能使需求说明完整、一致、准确、无二义性,但整体上仍采用渗布模型.(2)对于实验型.用原形过程来代替设计阶段,即在设计阶段引入用理,快速分析实现方案,快速向造原型,通过运行,考察设计方案的可行性与合理性,原形成为设计的总体框架或设计站果的一局部.(3)对于演化型,用原鞭过程开代普全部开发阶段。这是典型的演化提交模型的形式,它是在强有力的软件工具和环境支持下,通过原型过程的反红循环,宜接得到软件系统.四、鼻
24、型开发过程1、快速分析2、构造原型3.运行原型4、评价原型5、修改五、其他内容:开发快速原型不使用通常的软件开发工具来实现采用一些特别的技术和工具如可执行的班格说明、基于脚本的设计、采用靠常高级语吉或专门语言和能曳用软件等.扶速釐型模型的作用、适用情况及优缺点等,注意其要点.第10章面向对象的方法面向对荻的方法是今后软件开发方法的主流*学习本醺,最好是学过面向对象粹序设计语言,唐样可以对对余、类、类讷层次结构、方法、泌息等概念更容易理解.本章总的嗓求循,常拱胤祠对豫的策本思想、出本概念、根本原理.学婵:种模型的根本概念和构造方法,掌握面向对象的分析、Htiffif实现的过程。一、面向对J1.I
25、的根林念1、什么面向对望?先了解几个霰念:(1)对我:对象定人们要进行研究的任何事物.具体一点讲就是研究对象.它可以是有形实体,也可以是作用、任件、性Ife说明等,当然,如果女朋友成为你研究的刻象时,对飘也可以是你的女朋友.(2)对象的状蠡和行为:对象有自身的状态,比方你的女朋友有她的姓名(叫小丽)、年龄(22岁)、I作单位等.对象还有操作用于改变对象的状态,对象及其操作就是对象的行为比方小丽.晓柏到(某公司)”这个行为将使她的工作通位这个状态发生变化.(3)类:具仃相同或相似性侦的对象的抽象就是哭,如桃树、李树、樟树等是具体的树,抽象之后得到树”这个类.类具有属性,属性是状态的抽象,如一棵李
26、树的高度是3米,樟树是10米,树则抽象出一个礴性.高度二类具有操作,它是对象行为的抽象.(4)类的编构:有两种.一种是一般-具体”结构,如植物、树都是类,它们之间是抽象到具体的关系,即树是一种(isa)植物,还有一种就是一整体-局部”结构,如计算机是类、CPU也是类,则计算机与CpV之间就是整体与局部的关系,(6)消息和方法:对象之间进行通信的构造叫做消息,比方小丽是一个对象上可发出个消息:小明.出差到(深圳),这样,相应的对负接收到这个泊.&就会给予响应,在这个消息中,小明是对象名,出差到就是方法名,深圳就是参数,在类中操作的实现过程叫做方法,上面的出差到(某地)这个方法如何实现呢,就是买车
27、票,乘车到某地。这个过程就是方法。总之面向对象这种思想很符合人们观察世界的自然思想.在很多时候我们可以用自然的观点去理解面向对望.2、面向对象的梅征有四点:的软有性、号类性、继承性和匕苍性,3、面向对量的要素:鼬欧、封装性、$再而4、面向对象技术量调的是对跳结构而不是程序结构5、面向对象的开发方法主要有以下几科Coad方法、Booch方法、OMT方法和(K)SE方法,最新的统建模语言UM1.则不仅统一了Booch方法,0灯方法、OOSE方法,而旦时其作了进一上的开展,最终统一为群众所接受的标准建模语言。二、面向对象的模型(简单应用)面向对象的模型包括三个,它们分别是:述系统数挹结构的对U模里、
28、描述系统控制结构不诩态般型和和描述方统功能的功能丽,这三种模型都涉及到数据、控制和掾作等共同的概念,只是每种模型描述的侧重点不同。这二种模型从三个不同但又密切相关的角度模拟目标系统,它们各自从不同的侧面反映了系统的实质性内容,综合起来则全面反映了对目标系统的需求.1、对象模型:它衣示了静态的、结构化的系统数据性质,描述了系统的静态结构,它玷从客观世界实体的对象关系角度来描述,表现了对象的相互关系,该模型主要关系的是系统中对象的结构、国性和操作,使用了对象图的工具来刻画,它是分析阶段三个模型的核心,也是其他两个模型的框架,涉及及的概念有,对象和类、美联和链.2、动态模型:是与时间和变化有关的系统
29、性质.该旗型描述了系统的控制结构,它表示了瞬时的、行为化的系统控制性旗,它关系的是系统的控制,愫作的执行顺序,它从对象的犷件和状态的角度出发,表现了对象的相互行为。该模型描述的系统属性是触发事件,事件序列、状态、事件与状态的如织。使用状态图作为描述工具.涉及的重要概念是小件、状态、操作等.3、功能轶型:描述了系统的所有计算,功能模型指出发生了什么,动态模型确定什么时帔发生,而对象模型确定发生的客体。功能模型说明一个计算如何从输入值得到输出伯,它不考虑所计算的次序。功能模型由多张数据流图组成.数据流图说明数据流是如何从外部钻入.经过操作和内部存储输出到外部的.功能模型也包括对望模型中值的约束条件
30、,功能模星说明时象模型中操作的含义、动态模型中动作的意义以及对象模型中约束的意义.相关的概念有:数据流图中的处埋、数据流、动作对象、数据存储对象等,三、面向对象的分析(简单应用)I面向对分析的”的是对客观世界的系线进行建心分析问时后三种用途:用来明确何虺偌求:为用户和开发人员提供明确需求:为用户和开发人员提供一个协商的基础,作为后继的设计和实现的框架,通过分析,建立对象模型、动态模型和功能模型。四、面向对象的设计(会)1、面向对象设计的准则:(1)模块化:对领就是模块,它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块.(2)抽象:包括过程抽象、数据抽象、规格说明抽象及多数化抽象等
31、。(3)信息隐蔽:在面向时象方法中.信息隐蔽通过对象的封装性来实现。(4)低稿合:低耦合足设计的一个理要标准,应该防止对象之间的高朋合.强词对象间的低耦合.5Ifti内聚:在面向对象设计中存在种内聚:怫作内聚、类内聚及一般-具体内聚,紧密的继承朋合与商厦的一般一具体内聚是一致的,2、面向对象设计的启发提Jr(D设计结果应该清晰易愤2一般一具体结构的深度应适当(3)设计简单的类(G使用简单的梆议(5)使用简单的操作6)把设计变动减至最小五、面向对象的实现(领会)面向时象实现主要包括两项工作,把面向对象设计结果翻洋成用某种程序设计语言写成的面向对象程序:测试并调试面向对象程序.在开发过程.类的实现
32、是核心问起.在用面向对象风格所写的系统中,所有的数楙都被封装在类的实例中,而整个程序则被封装在一个更高级的类中.第11章软件质量与质保证本涿主樱介绍了软件炒球的定义、软件/at的度酸与评价、软件旗减保证的根本念:软件演审:度/模型、软件支杂性、软件可需性设计痰僦评审和程序质地评审拉具体内容以及软件容错技术.以领会识记为主。一、软件质量的定义从实际应用来说,软件质定义包括三个一致性,(1)与所确定的功能和性能需求的一致性:(2)与所成文的开发标准的一致性:(3)与所有专业开发的软件所期的隐含特性的一致性.眩响软件质*的因素分为可以直接度墩的因素(如单位时间内T行代码中所产生的错误)和只能I间接鸟
33、胃的因素(如可用性和可推碉。收件质量保证尾指确定到达和亲护所需要的软件质址而进行的所行行方案.案系统的管理活动朋量保证策鬲元展经历了三个阶段:(1)以总测为虫(2)以过程管理为重(3)以新产品开发为理.由上可知,状件质hi保证应从产品方案和设计开始,直到投入使用和官后效劳的忱件生存期的每,阶段中的每步骤,成城保证的主要什务包括以卜几点:(1)正确定义用户的要求.(2)技术方法的应用.(4)软件的笑用.(5)发挥毋个开发者的能力。(7)排除无效劳动。(6)殂织外部力玳协作,(8)提高方案和管理质量。(3)提高软件开发的工程能力.二、uaa本节主要提到两个质疑度瓜模型,一个是MCCAn质成度量模型
34、,一个是IS()(国际标准化组织)原燧度IR模型。三、软件复杂性软件更杂性度量的参数主要包括:(1)规模,即总共指令数或源程序行数.(2)难度,通常由程序中出现的操作数的数目所决定的信来表示。(3)结构,通常与程序结何有关的度量来表示.(4)智能度,即算法的难易程度.软件熨杂性主要我现在程序的复杂性.程序的兔杂性主要指模块内程序的狂杂性.软件复杂性的度,方法:1、代码行度或法:以源代码行数作为程序反杂性的度埴”2、MCCabe度fit法:一种基于程序控制流的立杂性度盘方法.四、软件可靠性软件可舔性是指在给定的时间内,在规定的环境条件下系统完成所指定功能的慨率,衡盘软件UJ独性的两个常用指标是平
35、均失效等待时间WTTF和平均失效间隔时间VBF.软件可战性模型的研究工作尚在初始阶段,目前的可澈性模型可分为如下三类:(1)由硬件可靠性理论导出的模型.(2)基于程序内部特性的模型。(3)植入模型。五、软件评审通常,质鼠被理解为用户满意程度.软件质垃包括“i殳计质限和程序痂量J设计痂眼是指设计的规格说明书符介用户的要求,程序质业是指程序要按照设计.规格说明规定的情况正确执行。设计质量评审的时象是在需求分析阶段产生的软件需求规格说明、数据需求规格说明,花软件概要设计阶段产生的软件概要设计说明书等.程序版限评审的柬点在于软件本身的结构、与运行环境的接口、变更带来的影响而进行的评审活动,六、软件容情
36、加提高软件质量和可靠性的技术大致可分为两类:一类是避开描误.一类是容佛技术.容错软件简地地说就是在一定程度上具有容错能力的规定功能软件.实现容错技术的主要手段是冗余。冗余通常分为四类:(D结构冗余,又分为静态、动态和混合冗余三种.2)信息冗余3)时间冗余(力冗余附加技术容错软件的设许过程:(D常规设计,展量保证设计正确2对可能出现的错误进行分类,确定容错范围3)按一本钱-效率最优原则,选择容错的冗余手段实现错误的屏蔽。4)分析或粉证上述冗余结构的容错效果。如果没有到达赖期的程度,则重新进行冗余结构设计,如此反复到达满意效果为止.第12章软件工程管理本章的主蛰内容是软件管理的内容、软件工程方案内
37、容、软件开发本钱估算、软件工程迸度安排、软件附送浮理等檄念.堂点跄福关概念的记忆犯领会”一、软件IS管理的一软件I:程泞芹就是对软件工程的开发管理具体地说,就是对软件生存期的一切活动进行管理;软件工程管理的具体内容包括对开发人员、组织机构.用户.文档资料等方面的管理.二、软件工程方案在软件工程管理过程中一个关键的活动是制定工程方案,它是软件开发工作的第一步.软件工程方案是由系统分析员与用户共同经过-Ur行性研究与方案”阶段后制定的,所以瞅件工程方案足可行性研究阶段的结果福.软件工程方案内容包括:(I)Su1.S(2)资源(3)进度安排GD木钱估算(5)培训方案软件开发本钱估算的方法主要有:(D
38、自璐向下估方法(2)自底向上估算方法(3)差异估算方法以及专家估算法、类推估算法、算式估算法等几类方法.本钱估算模量有:(DCOCoMO估算模型:结构性本钱模型,足加精确、最易于使用的本钱估算方法之一.该模型还分为:根本COCOMO模型,是一个静态单变量模型,它是对整个软件系统进行估算:中蝮C(ICoMo模型,是个静态多变显模型,中级COCOYO模型利软件系统型分为系统和部件两个层次,它用于部件级的估W更精确些:详细COCOMo模型,将软件系统模里分为系统、子系统和模块三个层次,(2)PUInam本钱估算经般模鞭:是一种动态多变量模型,它是假设在软件开发的整个生存期中工作显的分布.软件工程进度
39、安排:了解软件开发任务并行图、Gantt图、工程脾络图的表示和应用.软件质量保证要做的工作:(1)采用技术手段和工具。(2)组织正式技术评审.(3)加强软件测试。(4)推行软件工程标准。(5)对软件的变更进行控制.(6)对软件质筮进行度量.三、软件IE岂管理软件配置管理,简称SG1.(SoftareCOnfigUratiOnManagenen1.),是指一级管理整个软件生存期各阶段中变更的活动,软件配置管理技术可以使软件变更所产生的错误到达最小并最有效地提高生产率.1、基线:是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以使于
40、检杳与肯定阶段成果。因此她战可以作为一个检性点,在开发过程中,当采用的括线发生错误时,我们可以知遒处于的位置,返回到最近和最恰当的荔戏上。2、软件氐E1.足软件1:程中产生的信息,加.,工记置管理的根本舱位,对已成为基线的软件配置项(SC1).修改时必须按照一个特殊的正式的过程进行评估,确认每一处修改.3、版本控制与交更控制.软件的短一个版本都是SCI(源代码、文档、数据)的一个收集,且各个版本都可能由不同的变种纲成,变更控制就是时软件配置的变更进行严格控制和管理,保持脩改信期,并把清晰的信息传递到软件过程的下一步骤.四、软件工程标准化与软件文档软件工程标准化可以为软件工程各个阶段的活动提供统
41、一的行动标准和衡盘准则,使得各种工作都能有章可循。软件工程标准根据其制定机构与适用范用,可分为:1、国际标准2、国家标准3、行业标准4、企业标准5,工程(课题)标准仗档是指某种数据煤体和其中所记录的数据,在软件工程,文档川来表示对需求、工程函竦Iia行描述、定义、规定、?告城认证的任何下面或图示的信息。软件文档的作用是:假高软件开发过程的能见便:提高开发效率:作为下发人员阶段工作成果I和结束标上江京邪妇过程fj行关信息使W史川1.j维护:提供软件运行、维妒和培训仃关费料:便I于用户了解纨件功能、性能。软件开发工程生存期各阶段应包括的文档包括如下:何一性研究报告工程开发方窠软件需求说明数据要求说
42、明书冽试方案概要i殳计说明书详细改计说明书用户手册理作于周测试分析报行开发进度月报I.一开发总结程呼级护手册第13章软件开发环境软件开发环境主要H标是提嬴软件生产率,改善软件颂球和降低软件本钱,而这些H标的实现只施长满软件工具的广泛应用,所以软件工具是开发环境中戢主暨的组成局部。本章内容的要煎在于软件开发环境、软件工具及CASE等根本微念的/.一、软件开发环境软件开发环境是指在计豫机的根本软件的基础上,为支持软件的开发而提供的一组工具软件系统,软件开发环境的定义可从三方面理解:(1)软件开发环境是一组相关工具的集合.(2)这些相关工具按一定的开发方法或一定开发处理模型组织起来的.(3)这些相关
43、工具支持整个软件生存期的各阶段或同部阶段。二、软件工具软件工具的定义是:可用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移植或管理而编制的计算机程序或软件.核件工具是一个程序系统.软件工具通常由工具、工具接口和工具用户接口三用部构成。三、计MIt助软件工程(CASE)I、CASE毡一组工具和方法的集合,可以岫助软件开发生命周期各阶段进行软件开发.CASE把状件开发技术、软件工具和软件开发方法集成到一个统一而一致的架中,并且吸收了CRD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术.因而,CASE领域是一个应用、集成和综合的领城.2、集成化CASE的五级模型(D平台集成:工具运行在相同的硬件/操作系统平台上(2)数据集成:工具使用块中数据模里来操作(3)表示集成:工具使用相同的用户界面4控制集成:工具激活后能控制其他操作5)过程集成:工具在一个过程模型和“过程机”的指导下使用3、CRSE工作台CRSE工作台是一组工具集支持像设计、实现或测试等特定的软件开发阶段.CASE工具组装成一个工具台后工具能协同工作,可提供比单一工具更好的支持.
链接地址:https://www.desk33.com/p-1541780.html