




已阅读5页,还剩356页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/360,软件工程,东北大学信息科学与工程学院CollegeofInformationSciencep2)E(p1;p2)=E(p1)+E(p2)E(p1+p2)E(p1)+E(p2),205/360,6.2分治(3/6),分治的优点2)便于并发执行,缩短开发周期3)适合团队协作,降低了实施难度4)预防了开发中的多米诺骨牌效应5)容易产生可复用部件,206/360,6.2分治(4/6),分治要考虑的问题1)分治是否可以无限分解,是否越细越好,207/360,6.2分治(5/6),分治要考虑的问题2)从技术的角度讲,如何分治?程序设计方法部件重用可理解性独立性有界性,208/360,6.2分治(6/6),分治要考虑的问题3)如何将任务分解到不同的时间域上?需求的优先级基础部件项目风险任务执行的难易程度,209/360,6.3抽象(1/7),抽象思想为了降低复杂度,应该隐藏细节或推迟考虑细节抽象的优点有利于认识事物的普遍特征和基本原理帮助设计人员制定出模块的“框架”有利于软件的复用提高系统的的可扩展性,210/360,6.3抽象(2/7),基于抽象的设计原则1)里氏替换原则(LiskovPrinciple)子类可以替换父类,可以出现在父类能出现的任何地方如果对于每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。,211/360,6.3抽象(3/7),基于抽象的设计原则2)开闭原则(Open-ClosedPrinciple)即一个软件实体应当对扩展开放,对修改关闭,212/360,6.3抽象(4/7),基于抽象的设计原则3)依赖倒转原则(DependenceInversionPriciple)要依赖于抽象,不要依赖于具体类,213/360,6.3抽象(5/7),传统软件工程中的抽象信息隐蔽指一个模块内的数据和模块的实现细节对于该模块的客户即调用者模块有不可见的性质数据局部化缺点仅对模块细节的封装,没有继承的概念,虽然可以“到处复用”,却也需要“到处修改”,214/360,6.3抽象(6/7),面向对象软件工程中的抽象继承传统,发展深化抽象类,215/360,6.3抽象(7/7),面向对象软件工程中的抽象接口,216/360,6.4内聚和耦合(1/18),内聚是一个模块内部各部件之间联系紧密程度的度量强调分解时将相关的内容放到一起一个模块内的各个部件联系越紧越好耦合是模块间相互联系强弱的度量耦合的强弱取决于模块间传递数据的方式、接口复杂情况以及传递数据的类型各模块之间的耦合越松散越好,217/360,6.4.1内聚(1/10),内聚的分类1)功能内聚(FunctionalCohesion)所有部件处理同一组数据,共同完成单一的功能易于理解、易于诊断、易于维护、易于替换、易于复用,218/360,6.4.1内聚(2/10),内聚的分类2)顺序内聚(SequentialCohesion)各部件之间既有数据联系又有控制联系较为理想,219/360,6.4.1内聚(3/10),内聚的分类3)通信内聚(CommunicationalCohesion)所有的部件都访问同一组数据,各部件之间只有数据关系,没有控制关系较为理想,220/360,6.4.1内聚(4/10),内聚的分类4)过程内聚(ProceduralCohesion)各部件之间只有控制联系,而没有数据联系较弱的内聚,221/360,6.4.1内聚(5/10),内聚的分类5)时间内聚(TemporalCohesion)所有部件之间既无数据联系,也无控制联系,但是部件之间具有时间关系,即把在执行过程中同一阶段内完成执行任务的部件放到一起,而排除其它部件内聚更弱,222/360,6.4.1内聚(6/10),内聚的分类6)实用程序内聚(UtilityCohesion)部件常常是一些相关的、可重用的实用程序内聚很弱,223/360,6.4.1内聚(7/10),内聚的分类7)偶然内聚(CoincidentalCohesion)模块内部的各部件之间没有任何关系最不好的一种内聚类型,224/360,6.4.1内聚(8/10),内聚的分类8)层内聚(LayerCohesion)将相关服务的功能放到一起,成为一层,而将其它内容排出在外替换低层时可以用等价层(实现原层所有的API)而不必修改高层,替换高层模块对低层模块没有影响(低层服务不访问高层服务)层内聚被广泛地应用在软件的分层架构上,225/360,6.4.1内聚(9/10),内聚的分类8)层内聚,226/360,6.4.1内聚(10/10),相互嵌套的内聚模块,227/360,6.4.2耦合(1/6),解耦的原因牵一发而动全身很难快速地理解紧耦合的模块独立性较差,228/360,6.4.2耦合(2/6),耦合的分类1)内容耦合(Contentcoupling)一个模块直接进入另一个模块中存取其数据或使用其服务最不好的一种耦合,229/360,6.4.2耦合(3/6),耦合的分类2)公共耦合(Commoncoupling)两个模块间通过一个公共环境进行数据交换较差的耦合,应该避免使用,230/360,6.4.2耦合(4/6),耦合的分类3)外部耦合(Externalcoupling)模块对外部系统(如软件操作系统、数据库、硬件设备,以及可复用的组件库等)有依赖关系有时无法避免,应该尽量减少4)控制耦合(Controlcoupling)两个模块之间通过接口的参数表交换开关数据,旨在控制另一个模块的执行逻辑较差,231/360,6.4.2耦合(5/6),耦合的分类5)印记耦合(Stampcoupling)Pressman:指两个模块之间通过参数交换方式产生耦合,并且交换的是数据结构而不是数据元素TimothyC.Lethbridge:当应用程序的类被声明为方法参数类型时,就会产生印记耦合允许使用,232/360,6.4.2耦合(6/6),耦合的分类6)数据耦合(Datacoupling)两个模块之间通过接口的参数表交换信息数据,并且这些信息数据的类型是基本数据类型需要传递的参数较少时,数据耦合较好需要传递的参数较多时,印记耦合要更好,233/360,6.4内聚和耦合(18/18),内聚谱系和耦合谱系,234/360,6.5复用(1/20),提高软件生产率的办法改进过程改善需求分析方法改进设计方法改进工具然而复用最有效率的方法之一,案例,235/360,6.5.1复用的概念(1/4),复用的定义Biggerstaff和Ritcher:在新的开发项目中使用以前已获得的概念和对象Tracz:特别为复用目的而设计的软件的过程Freeman:是一种通过使用以前开发工作的某些东西来生产(或帮助生产)一个系统的过程,其关键问题是复用什么、什么是导致成功复用的过程,236/360,6.5.1复用的概念(2/4),一个典型的复用分层体系,237/360,6.5.1复用的概念(3/4),涉及的内容复用的管理问题软件组织资产复用过程领域工程技术(可复用构件)复用经济学,238/360,6.5.1复用的概念(4/4),复用的分类根据对可复用信息进行复用的方式黑盒复用和白盒复用按照复用的规模小规模复用与大规模复用按照复用方法组合式复用和生成式复用按照软件复用所应用的领域范围横向复用和纵向复用按复用的构件的物理形式子程序、类、组件、Web服务组件等,239/360,6.5.2复用技术(1/6),代码复制(共享公共函数和子例程)代码公开(版权)复杂改动,而不是继承(版本).,240/360,6.5.2复用技术(2/6),面向对象的复用源码复用依赖语言粒度较小脆弱的基类不可独立部署第三方市场不够繁荣,241/360,6.5.2复用技术(3/6),基于组件的复用(概念)组件概念:组件(Component)是指有定义完备接口的、明确规定了上下文依赖关系的合成单元,它可以被第三方用不同语言开发,并且能够被独立的部署,它具有自包含的属性,其内部构造和特征不可见EJB、COM、.NET和CORBA等是主要的组件模型,基于接口的程序设计,242/360,6.5.2复用技术(4/6),基于组件的复用(不足)Internet(协议、防火墙)跨平台组件环境部署和升级远程服务需要实例化,243/360,6.5.2复用技术(5/6),基于Web服务的功能复用Web服务概念基于开放的标准,通过Web接口在网络上提供的某个功能的组件术语:HTTP,SOAP,WSDL,UDDI,XML开发商:应用程序越来越变得松散耦合被分解为多个组件被分布在多个计算机上Web服务提供商:服务变得更专业,244/360,6.5.2复用技术(6/6),基于Web服务的功能复用优点避免了组件的不足(前页)更简单使用者,而非所有者充分利用第三方的技能和经验版权和版本不足速度,245/360,6.5.3案例(1/9),宠物商店系统各种角色(如顾客、管理员、商店经理等)要登录到系统中,需要填写用户名、口令为了防止非法入侵,还要填写验证码。验证码的相关代码相对复杂,涉及到验证码图片的生成和验证码的校验。很多网站都有类似的功能。,246/360,6.5.3案例(1/8),宠物商店系统的登录,247/360,6.5.3案例(3/9),验证码控件,248/360,6.5.3案例(4/9),验证码控件,249/360,6.5.3案例(5/9),验证码控件,250/360,6.5.3案例(6/9),判断验证代码是否正确if(!ValidateCodeImage1.Validate(textValidateCode.Text)lblErr.Text=验证码错误,请重新填写;,251/360,6.5.3案例(7/9),252/360,6.5.3案例(8/9),调用,publicvoidRefresh()/产生一个验证码字符串ValidateCode./调用Web服务,生成图片MemoryStreamstrmBuffer=newMemoryStream(PicService.CreateSpecialPic(ValidateCode);Bitmapobj=newBitmap(strmBuffer);obj.Save(FileName,ImageFormat.Jpeg);,253/360,6.5.3案例(9/9),扩展思维站在服务提供商的角度考虑图像Web服务站在服务使用者的角度考虑面向服务的架构(SOA)站在复用工程师的角度考虑可复用构件的管理,254/360,6.6设计描述方法(1/15),设计模型原因:完全使用文字描述的方法来表达软件复杂的设计结果,往往会造成语义模糊、过于冗长、不够抽象等问题模型更易于被快速的编档、理解和执行学术界和企业界传统:层次图、结构图、HIPO(HierachicalInputProcessOutput)图、ER图、程序流程图、盒式图、PAD(ProblemAnalysisDiagram)图、PDLOO:包图、类图、构件图、部署图,255/360,6.6.1传统的设计描述方法(1/9),1)层次图用于描述程序的组成,即组成系统的程序模块及其调用关系能够清楚地表明系统的结构,并可用来粗略地估计系统的尺寸广泛地应用,256/360,6.6.1传统的设计描述方法(2/9),257/360,6.6.1传统的设计描述方法(3/9),2)结构图表明模块之间的相互作用关系,258/360,6.6.1传统的设计描述方法(4/9),2)结构图简单的工资计算程序的结构图,259/360,6.6.1传统的设计描述方法(5/9),3)程序流程图又称程序框图,是详细设计中广泛使用的工具之一,260/360,6.6.1传统的设计描述方法(6/9),4)盒式图Nassi和Shneiderman提出,261/360,6.6.1传统的设计描述方法(7/9),5)PDL(ProcedureDescriptionLanguage)又称伪码,用英文ifthen-elseendif和whiledoenddo等表示控制结构的保留字及用设计者本土语言所构成的算法的描述,连接数据库;打开数据库的员工表;执行SQL语句:Select*from员工表whileUserName=username,Password=password;if(员工表存在相关记录)then转移到主页面;else转移到报错页面,通知用户用户名或秘密错;,262/360,6.6.1传统的设计描述方法(8/9),6)E-R图实体联系图,用以表示应用领域中的实体及其相互关系通过E-R图可以很快转成关系数据库概念实体:一切事物,如操作员、顾客、宠物等联系:事物间关系属性:客观实体和联系实体所拥有的性质,263/360,6.6.1传统的设计描述方法(9/9),264/360,6.6.2OO的设计描述方法(1/7),1)包把元素组织成组的通用机制例子,265/360,6.6.2OO的设计描述方法(2/7),2)类图类加上它们之间的关系就构成了类图设计原则设计模式,266/360,2)类图例子,267/360,6.6.2OO的设计描述方法(4/7),3)构件图构件是系统中遵从一组接口且提供其实现的物理的、可替换的部分输出接口(exportinterface)和引入接口(importinterface),268/360,6.6.2OO的设计描述方法(5/7),3)构件图例子,269/360,6.6.2OO的设计描述方法(6/7),4)部署图用来表示系统中的计算节点的拓扑结构和通信路径与节点上运行的软构件等节点是存在于运行时的代表计算资源的物理元素,一般拥有处理能力和内存,如处理器或设备,270/360,6.6.2OO的设计描述方法(7/7),4)部署图例子,271/360,6.7人机交互界面设计(1/7),大量的项目因为没有让用户充分参与界面的设计而失败市场部门的问题开发人员的问题用户的问题设计模型的问题,272/360,6.7人机交互界面设计(2/7),一些典型的不良界面对用户的主观臆测不友好晦涩难懂行为不当界面复杂,273/360,6.7人机交互界面设计(3/7),以用户为中心的设计(User-CenteredDesign,UCD)理解用户的特征理解用户的任务确保用户参与遵循良好的界面设计原则,274/360,6.7人机交互界面设计(4/7),界面设计指导原则全部界面格式和风格应保持一致适当组织菜单层次和菜单项为不同的用户或功能提供不同的界面服务力求用户需要的输入量最少破坏性命令或功能选项应确认提供有效的系统保障能力布局合理简单易懂,整洁有序,条理清晰帮助功能一定的智能,275/360,6.7人机交互界面设计(5/7),界面设计基础字符型界面和图形界面,276/360,6.7人机交互界面设计(6/7),界面设计基础界面控件菜单、命令控件、静态文本控件、文本控件、数据窗口控件、下拉列表框控件、单选按钮控件、复选框控件、树形结构控件、图形控件、微调框控件、滑动条控件自定义的控件,277/360,6.7人机交互界面设计(7/7),多通道人机交互强调计算机输入信息的自然性和多样性语音交互虚拟现实高级交互,278/360,6.10相关文档规范,相关设计文档1)软件工程实践者的研究方法2)RUP:软件架构文档3)国家标准:软件设计书的编写内容概要设计说明书(GB856788)详细设计说明书(GB856788)数据库设计说明书(GB856788)4)企业标准,279/360,Chapter7软件实施与测试方法,7.1程序设计语言7.2编码风格7.3软件测试原则7.4白盒测试7.5黑盒测试7.6单元测试7.7集成测试7.8相关文档规范,280/360,7.1程序设计语言(1/2),广泛应用的程序设计语言汇编语言BASIC语言Fortran语言COBOL语言C语言Ada语言Java语言.NET系列语言,281/360,7.1程序设计语言(2/2),程序设计语言的选择生产率因素软件应用领域程序员的知识/用户的要求CASE工具支持,282/360,7.2编码风格(1/4),程序的内部文档程序块头部注解程序内部注解程序的标识符程序文件数据文件变量和常数,283/360,7.2编码风格(2/4),程序清单的安排同一层次的语句序列写在相同的列上,全部语句的第一个字母要对齐循环语句的语句体部分要适当的缩进条件选择语句中的then部分和else部分,应该写在不同的行上,并且相应部分的语句序列应有适当的缩进。,284/360,7.2编码风格(3/4),程序中的语句由表达式构成的语句适当使用括号分解成更小的表达式IF语句尽量避免否定的布尔条件尽量避免ifthenif形式避免elsereturn的形式,285/360,7.2编码风格(4/4),程序中的语句输入语句有明确的提示如有必要,进一步确认合法性检查输出语句加说明信息,286/360,7.3软件测试原则(1/1),遵循的原则所有测试的标准都是建立在用户需求之上所有的需求都是可验证的测试活动可提前展开增量测试穷举所有的测试是不现实的不要忽略非正常的输入数据不能忽略回归测试对问题较多的代码单元,需要进行更细致的测试专业人员测试或委托第三方测试,287/360,7.4白盒测试-7.4.1概念(1/4),概念导出测试用例是依据模块的编码,即模块的内部逻辑对测试者是可见的只要测试了程序的所有路径,程序就应该是100%正确的?是否能穷尽所有路径?即使穷尽了路径,是否能保证测试的结果可靠?,288/360,7.4.1白盒测试的概念(2/4),41+42+4201.4661012,289/360,7.4.1白盒测试的概念(3/4),if(x+y+z)/3=xthenoutput(“x,y,z的值相等”)elseoutput(“x,y,z的值不相等”)endif,测试1:x=1,y=2,z=3测试2:x=2,y=2,z=2测试3:x=2,y=1,z=3,290/360,7.4.1白盒测试的概念(4/4),白盒测试能保证模块中所有独立途径至少测试一次测试所以逻辑决策真和假两个方面在所有循环的边界内部和边界上执行循环体检查内部数据结构以保证其有效性,291/360,7.4.2基本途径测试(1/4),概念指覆盖基本途径集合的试验用例将使程序中的每个语句至少执行一次基本途径的集合是由一组独立途径组成的独立途径是指程序中至少引入一个新(执行)语句的路径,292/360,7.4.2基本途径测试(2/4),途径1-2-101-2-3-4-6-8-9-2-101-2-3-4-7-8-9-2-101-2-3-5-9-2-101-2-3-4-6-8-9-2-3-5-9-2-10,293/360,7.4.2基本途径测试(3/4),294/360,7.4.2基本途径测试(4/4),途径1-2-3-6-101-2-3-4-5-101-2-3-4-7-8-101-2-3-4-7-9-10测试实例a=5,b=2,c=2a=2,b=2,c=2a=2,b=2,c=3a=3,b=4,c=5,295/360,7.4.3条件测试(1/7),概念检查程序中所包含的逻辑条件简单条件是一个布尔变量或者一个关系表达式,可以在它们前面有一个非操作(NOT)E1和E2:算数表达式关系算子:“”,E1E2,296/360,7.4.3条件测试(2/7),概念组合条件由两个或多个简单条件、布尔算子和括号构成布尔算子:OR(“|”),AND(“&”),NOT(“”)条件中包含的错误类型如下:布尔算子错误布尔变量错误括号不匹配关系算子错误算术表达式错误,297/360,7.4.3条件测试(3/7),分支和关系算子测试方法(BRO)所有布尔变量与关系算子都不重复出现对于一个有n个简单条件的条件C的约束定义为(D1,D2,Dn)Di(1in)是规定了条件C中第i个简单条件输出的约束符号如果在条件C的执行中,其每个简单条件的输出满足D中对应的约束,则称C的执行覆盖了C的条件约束D。,298/360,7.4.3条件测试(4/7),例子1C1:B1&B2约束形式为(D1,D2)(t,t),(t,f),(f,t)例子2C2:B1&(E3=E4)约束形式为(D1,D2)(t,=),(f,=),(t,),(t,E2)&(E3=E4)约束形式为(D1,D2)(,=),(=,=),(,),(,)例子4判断三角形类型的三个判定条件C1:(ab+c)(ba+c)(ca+b)(t,f,f),(f,t,f),(f,f,t),(f,f,f)C2:(a=b)(b=c)C3:(a=b)(b=c)(a=c),300/360,7.4.3条件测试(6/7),例子4条件C1:测试用例1:a=5,b=2,c=2测试用例2:a=2,b=5,c=2测试用例3:a=2,b=2,c=5测试用例4:a=2,b=3,c=4条件C2:测试用例5:a=2,b=2,c=2,301/360,7.4.3条件测试(7/7),例子4条件C3:测试用例6:a=2,b=2,c=3测试用例7:a=2,b=3,c=2测试用例8:a=3,b=2,c=2,302/360,7.4.4循环测试(1/4),简单循环,嵌套循环,级联循环,303/360,7.4.4循环测试(2/4),简单循环n为允许通过循环的最大次数1)完全跳过该循环2)仅仅通过循环体一次3)通过循环体二次4)通过循环体m次,其中mn5)通过循环体n-1次,n,n+1次,304/360,7.4.4循环测试(3/4),嵌套循环1)从最内层循环开始,把所有外层循环置为最小值2)将外层循环控制在最小循环参数上,对内层循环进行简单循环测试。然后再为外层控制参数的某些值增加其它的测试3)向外加工,为下一个循环进行测试4)继续进行,直至所有的循环测试完成,305/360,7.4.4循环测试(4/4),级联循环通常使用简单循环测试方法分别进行如果这两个级联循环是相关的,如将第一个循环的结束循环参数作为第二个循环的开始参数,或者是某些状态变量互相关联,则应该使用嵌套循环的测试方法,306/360,7.5黑盒测试-7.5.1概念,概念在程序或模块的接口级进行,而不考虑程序的内部逻辑用于检测程序中下列类型的错误不正确或漏掉的功能接口错误数据结构或外部数据库存取中的错误初始化或结束错误性能方面的问题,307/360,7.5.2等价类划分(1/3),概念把一个程序输入的定义域划分成不同的数据类,然后根据这些数据类可以导出测试用例等价类是由相对于程序的功能具有相同作用的一些输入数据元素构成的数据集合,这些数据元素之间具有等价关系利用等价类中一个元素作为代表对程序进行测试,而不是使用该类的全体成员,藉此以减少总的测试用例数量,308/360,7.5.2等价类划分(2/3),指导原则如果输入条件规定了一个范围如果输入条件规定的是某集合中的一个成员如果输入条件规定了一个特殊的值如果输入要求是布尔值,309/360,7.5.2等价类划分(3/3),例子:数据库产品规范要求该产品必须能够处理从1到65535(216-1)等价类1:少于一个记录。等价类2:从1到65535个记录。等价类3:多于65535个记录,310/360,7.5.3边界值分析(1/2),概念等价类分析技术的补充专门选择等价类“边”上的元素如果输入条件规定类由值a和b界定的范围如果输入条件规定了一些数值如果一个内部数据结构已经规定了边界,311/360,7.5.3边界值分析(2/2),例子:数据库产品测试用例1:0个记录测试用例2:1个记录测试用例3:2个记录测试用例4:100个记录测试用例5:65534个记录测试用例6:65535个记录测试用例7:65536个记录,312/360,7.6单元测试(1/3),概念把一个模块作为独立的程序单元进行测试,以保证它能够正确执行规定的功能黑盒测试方法与白盒测试方法都适用于单元测试,它们是相互补充的,但不能相互代替,313/360,7.6单元测试(2/3),单元测试的考虑模块接口模块执行外部I/O操作模块的局部数据结构模块的计算模块的错误处理例程,314/360,7.6单元测试(3/3),单元测试的环境驱动程序存根模块(Stub),315/360,7.7集成测试(1/6),概念将已经通过彻底测试的模块组装起来,以形成一个系统或软件产品,对其进行测试主要使用黑盒测试法任务是主要是检查和排除模块间接口错误全局数据结构错误模块中某些遗漏的错误,系统的功能和性能是否满足规范要求,316/360,7.7集成测试(2/6),自顶向下集成测试深度优先a,b,e,h,c,f,i,d,g,j,l,m和k宽度优先a,b,c,d,e,f,g,h,i,j,k,l和m,317/360,7.7集成测试(3/6),自顶向下集成测试集成测试的5个步骤1)主控模块作为测试的驱动程序,并用存根代替所有的直接从属模块2)按序一次用一个实际模块代替一个存根模块3)随每一个模块结合进系统,进行测试4)完成每组测试后,再用一个真实模块代替另一个存根模块。5)回归测试,318/360,7.7集成测试(4/6),自底向上集成测试可能的顺序1l,m,h,i,k,e,f,j,g,b,c,d和a可能的顺序2h,e,b,i,f,c,l,m,j,k,g,d和a。,319/360,7.7集成测试(5/6),自顶向下和自底向上相结合的集成测试逻辑模块a,b,c,d和g操作模块h,e,i,f,l,m,j和k,320/360,7.7集成测试(6/6),回归测试当有新模块加入时,要对原测试通过的测试模块进行重新测试并不是重新执行所有的测试用例1)执行测试所有软件功能的代表性测试用例2)测试可能受改变影响的那些功能的测试用例3)测试已经改变的软件部件的测试用例,321/360,7.8相关文档规范,相关测试文档1)软件工程实践者的研究方法2)RUP:测试计划测试用例测试评估摘要3)国家标准:软件测试报告的编写内容4)企业标准,322/360,Chapter8软件项目管理方法,8.1项目管理的概念8.2软件度量8.3软件计划8.4软件组织8.5软件质量管理8.6软件配置管理,323/360,8.1项目管理的概念(1/3),项目管理的内容软件项目跟踪和控制软件质量保证软件配置管理软件度量复用管理风险管理,324/360,8.1,流程,325/360,8.1项目管理的概念(3/3),以架构为中心的项目管理,326/360,8.2软件度量(1/5),度量提供了一个产品过程的某个属性的程度、数量、尺寸、容量等的定量指标度量范围一般涉及到软件成本、工作量、生产率、质量、可靠性、性能、结构和复杂性等方面软件特征量软件规模、开发成本、开发期限、开发工作量、软件质量,327/360,8.2软件度量(2/5),面向尺寸的特征量每KLOC(千行编码)的错误数每KLOC的缺陷数每KLOC的文档页数每KLOC的成本LOC/人-月,328/360,8.2软件度量(3/5),面向功能的特征量FunctionPoint,FP,329/360,8.2软件度量(4/5),面向功能的特征量计算功能点FP=count_total(0.65+0.01Fi),330/360,8.2软件度量(5/5),软件开发成本和工作量的估计EV=(Sopt+4Sm+SPress)/6基于回归技术的模型COCOMO模型COCOMO2.0模型SLIM模型例子:宠物商店,331/360,8.3软件计划和进度控制(1/8),概念是为了完成具体目标任务,服从优先关系、时间要求和资源限制等约束条件的按时间顺序进行的系列行动包括的内容文档简介项目概述项目组织项目计划流程,332/360,8.3软件计划和进度控制(2/8),计划的分类软件开发计划迭代计划需求管理计划质量控制计划测试计划风险管理计划配置管理计划,333/360,8.3软件计划和进度控制(3/8),项目调度技术关键日期表时间条图(Gantt图)里程碑图关键路径法计划评审技术,334/360,8.3软件计划和进度控制(4/8),项目调度技术关键日期表,335/360,Gantt图,336/360,8.3软件计划和进度控制(6/8),项目调度技术里程碑图,337/360,8.3软件计划和进度控制(7/8),进度控制对项目的开发进度保持持续地监督,对与计划不符的偏差采取必要的措施并对计划进行调整,以保证项目能在规定的时间周期和预算范围内高质量地完成,338/360,8.3软件计划和进度控制(8/8),计划调整办法项目持续时间压缩法资源分配平衡技术时差法时间-成本平衡法,339/360,8.3人力资源管理(1/10),软件企业中的人力资源特点高技术更新性高主观经验性效率波动性不可存储性角色灵活性绩效模糊性,340/360,8.3人力资源管理(2/10),人力资源管理的任务在项目的各个阶段启动阶段计划阶段实施阶段收尾阶段内容组织计划编制、项目人员配置和绩效考评、人员招聘、企业角色发展规划、外包人力资源管理、人力资源风险防范、人力资源激励、个人能力培养、团队能力培养,以及企业文化建设,341/360,8.3人力资源管理(3/10),开发单位角色系统分析师软件架构师实施工程师测试工程师部署工程师复用工程师过程过程师领域专家,SQA人员财务人员项目经理企业管理者,342/360,8.3人力资源管理(4/10),开发单位角色(管理角色)企业级管理者事业部经理软件部长项目经理Team负责人,343/360,8.3人力资源管理(5/10),开发单位角色(项目主要技术角色)系统分析师需求阐释者需求复审师主构架师系统构架师构件设计师数据库设计师界面设计师设计复审师,实施工程师程序员代码复审员集成员测试工程师测试员部署工程师部署员包装员文档编写员,344/360,8.3人力资源管理(6/10),开发单位角色(项目辅助角色)首席技术官技术总监主复用师复用工程师过程总监过程管理师SQA总监SQA工程师,领域专家技术专家风险管理师变更控制授权人配置管理师人力资源总监人力资源管理师培训师财务人员市场/销售人员,345/360,8.3人力资源管理(7/10),开发单位角色(企业外部角色)监理工程师外包商第三方商业构件提供商软件服务提供商客户方决策者客户方业务阐释者客户方IT工程师最终用户,346/360,8.3人力资源管理(8/10),双塔结构,347/360,8.3人力资源管理(9/10),团队组织结构民主分权制(Democrat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苏教版七年级秋思古诗文教学教案
- 莆田高三一模数学试卷
- 清远抽查数学试卷
- 攀枝花七中数学试卷
- 青海省历年文科数学试卷
- 德惠市招聘社区工作者考试真题2024
- 宁德小学五年级数学试卷
- 普高单招数学试卷
- 铜川市消防员招聘考试真题2024
- 绵阳市涪城区人民陪审员选任考试真题2024
- 混凝土养护方案
- 围手术期质量评价标准(手术室)
- 化学品安全技术说明(胶水)
- 输血法律法规培训PPT
- 海姆立克急救(生命的拥抱)课件
- 越南语基础实践教程1第二版完整版ppt全套教学教程最全电子课件整本书ppt
- 标准化项目部驻地建设方案(五星级)
- 220kv升压站质量评估报告
- C语言程序设计(第三版)全套教学课件
- 软件系统平台对接接口方案计划
- 硅的基本性质
评论
0/150
提交评论