还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
可行性研究软件工程项目可行性研究实质是一次大大压缩和简化了的分析和设计过程,重要在L较高层次上以较抽象的方式进行,其目的是在尽量短的时间内以最小的代价确定该项目与否可以开发,与否值得开发、可行性研究不是去开发一种软件项目,而是研究该项目能否在给定的资源和2给定的时间开发,与否可以开发,与否值得开发、可行性研究的内容技术可行性(有关技术分析、资源有效性分析、风险分析);3经济可行性(成本估计、效益分析);操作可行性,又称社会可行性和运行可行性(就政治意识形态、法律法规、社会道德、民族意识以及系统运行的组织机构或人员等,分析系统能否运行及运行好坏程度)、可行性研究的环节对系统目的和范围的定义一对现行系统进行分析研究一4导出新系统的逻辑模型-设计新系统的物理方案一推荐可行的方案、可行性研究阶段,成本估计的措施5
①基于已完毕的类似项目进行估算;(自顶向下估计)缺陷:对开发中某些局部问题难以预估,导致考虑不周
②使用简朴的〃分解技术〃来进行成本及工作量的估算;(自底向上估计)
③使用经验模型进行成本及工作量的估算(经验算法估计)重要经验模型静态单变量模型;动态多变量模型;模型COCOMO模型将软件成本估算提成个由粗到细的层次基本COCOMO Boehm3层.中间层和详细层每个层次又按软件项目的应用领域和复杂程序提成种类型组3织型、半独立型和嵌入型、效益分析系统的效益有两部分经济效益和社会效益经济效益是指用使用新系6统而增长的收入,包括使用新系统节省的运行费用,是一种有形的效益(经济效益度量指标货币的时间价值、纯收入、投资回收期、投资回收率);社会效益是一种无形的效益,重要从性质上、心理上进行衡量,很难直接量化,但在某些状况下,无效的效益能转化成有形的效益、系统流程图是描绘物理系统的老式工具,可以采用系统流程图来描述项目的大概业7务处理流程,其基本思想是用图形符号以黑盒子形式描绘系统各部件(如程序、数据库、文档、人工过程等)系统流程图体现的是信息在系统中各部件之间流动的状况,而不是对信息进行加工处理的控制过程(信息有流动无处理)、数据流图描述的是系统的逻辑模型,图中没有详细的物理元素,只是描绘信正错误8的过程针对测试中发现的错误进行改正,这便是调试的工作测试和调试往往交替进行、软件测试的主线任务就是发现软件中存在的错误5由于软件错误往往出目前软件的分析和设计中,并且错误发现越晚,改正错误的工作量也越大,因而在开发前期运用静态测试非常重要,并且发现错误的效率也往往比较高、测试只能阐明软件中存在错误,不能表明程序没有错误,因而任何软件通过测试后6不能保证软件中不再存在错误白盒测试白盒测试是一种以程序的内部逻辑构造为根据设计测试用例的措施,因而又称构造测试或坡璃盒测试合理的白盒测试就是要选用足够的测试用例,对源代码实行比较充足的覆盖,以便尽量多地发现程序中的错误(原因穷举测试不合理)重要有两种措施一种称为逻辑覆盖法,另一种称为途径覆盖法除此外,对循环的测试,可采用循环覆盖法
①逻辑覆盖语句覆盖,测试用例能使被测程序的每条执行语句至少执行一次;鉴定覆盖测试用例能使被测程序中的每个鉴定至少获得一次真和一次假又称分支覆盖;条件覆盖测试用例能使被测程序中每个鉴定的每个条件至少获得一次真和一次假假如鉴定中只有一种条件,则条件覆盖便满足鉴定覆盖,否则,不一定;鉴定/条件覆盖测试用例既满足鉴定覆盖,又满足条件覆盖;条件组合覆盖测试用例使每个鉴定中所有也许的条件取值组合至少执行一次其中语句覆盖最弱
②基本途径覆盖法是在程序图的基础上,通过度析环形复杂性,导出基本途径集,然后设计测试用例使基本途径集中的每条途径至少通过一次独立途径包括一组此前从未被处理的语句或条件的一条途径
③循环覆盖法逻辑覆盖法和基本途径覆盖法对于循环只进行了循环一次的测试,显然是不充足的而循环是大多数软件实现算法的关键部分,因此对循环的测试是十分重要的对于构造化程序而言,循环重要有三种简朴循环、嵌套循环和串接循环黑盒测试黑盒测试又称功能测试、数据驱动测试等,它将待测试对象当作是一种黑盒子,不考虑程序内部的逻辑构造和特性,只根据规格阐明书检查程序的功能与否能正常使用一般,白盒测试用于测试的初期,而黑盒测试由于不需理解程序内部状况,因而被许多后期测试如确认测试、系统测试采用测试用例设计措施用黑盒测试发现程序中的错误,重要根据输入条件和输出条件确定测试数据,来检查程序与否能产生对的的输出进行黑盒测试,重要有下述几种措施等价分类法、边界值分析法、猜错法、因果图法等价分类法和边界值分析法通过选择有代表性的测试数据来暴露程序错误但不一样类型不一样特点的程序一般又有某些特殊的轻易出错的状况并且,有时分别使用某些测试用例测试时程序工作正常,但其组合也许会使程序出错;猜错法是根据经验和直觉设计测试用例,尽管能考虑到输入组合的状况,但显得不充足;因果图法借助图形来设计测试用例,尤其合用于被测程序具有多种输入条件,程序的输出又依赖于输入条件的多种组合的状况黑盒法综合方略首先用边界值分析法设计测试用例;必要时用等价分类法补充测试用例;必要时再用猜错法补充测试用例;假如在程序的阐明中具有输入条件的组合,宜在一开始末就采用因果法,然后再按上述环节进行动态测试动态测试通过运行软件来检查其动态行为与运行成果的对的性单元测试又称模块测试或分调,是动态测试中的第一步,一般在编码阶段进行1单元测试集中检查软件设计的最小单元一模块,即程序中最小的独立编译单位单元测试一般总是把白盒法和黑盒法结合运用先用黑盒法设计出一组基本的测试用例,然后用白盒法,根据覆盖原则规定补充新的测试用例满足覆盖原则在一般状况下,单元测试应以白盒法为主单元测试在于考察模块的接口和内部构造,检查与否符合程序规格阐明即详细设计阐明书的规定测试的重点在如下几种方面模块的接口;局部数据构造;重要的执行通路;出错处理途径;影响以上各项的边界条件测试软件一般地,驱动模块应完毕接受测试数据,并把数据传给被测模块,然后打印有关成果等任务;桩模块应当模拟实际模块完毕少许数据处理,并检查和打印入口处的信息,然后将控制返回给被测模块面向对象单元测试最小的可测试单元是类,包括一组不一样操作对面向对象软件的类测试等价于构造化软件的单元测试类测试措施基于故障的测试、随机测试和划分测试集成测试集成测试,又称组装测试、综合测试或联调,是在单元测试完毕之后,2将所有模块按概要设计规定组装成系统的时候进行的测试重要目的是发现与接口有关的问题重要检查模块接口和全局数据集成测试有组装和检查两重意义,首先将各通过单元测试的模块拼装起来形成完整可运行的系统;另首先要检查每一步拼装过程与否对的测试方略集成测试一般应由独立的测试小组进行,由测试小组提出测试用例,记录测试成果,并编制测试汇报测试用例的设计一般采用黑盒法,其实行方略又分为非渐增式和渐增式两种非渐增式测试采用非渐增式测试,一般应先通过单元测试,然后再把所有模块一次性组装在一起进行测试,最终得到规定的软件系统将模块一次性组装在一起运行成功的也许性并不大其成果往往是发既有错误,但由于程序中模块一次性引入过多,难于进行错误定位同步,一旦修正错误之后,新的错误很也许立即会出现除规模很小的程序,一般很少采用此种测试方略渐增式测试渐增式测试采用逐渐加入模块或功能簇的方式进行,在加入过程中边连接边测试,比较轻易定位和修正错误,且接口也可以更轻易进行彻底地测试按照添加模块的方式,又可分为自顶向下的渐增测试和自底向上渐增测试刍顶向下的渐增式测试首先集成主控模块,然后按照软件构造的控制层次自上而下进行集成,把主控模块的直接(或间接)调用模块按深度优先或广度优先的方式集成到整个软件构造中特点
①能较早地显示整个程序的轮廓,对增强开发人员的信心,获得顾客的支持,有重要的作用;
②只需编写桩模块供测试用,驱动模块可以运用实际模块;
③能尽早发现重要控制中的问题,减少后来的返工;
④可先对逻辑输入的分支进行组装和测试,检查和克服潜藏的错误,为其后对主加工分支的组装和测试提供了保证;
⑤由于每添加一种新模块,就进行一次测试,这样虽然花费某些时间,但却使被测程序测试更彻底,尤其是上层模块刍底向上的渐增式测试()把低层模块组合成实现某个特定的子功能的模块1簇,并用编写的驱动模块控制它进行测试;可以对若干功能簇并行进行测试;()用实际模块换掉驱动模块,沿软件构造自下而上移动,把子功能簇组合起来形2成更大的子功能簇,并进行测试;()反复()直到所有模块组装完毕32特点
①不能在测试的初期显示出程序的轮廓程序的总体构造,要等到加入最终一种模块时才能最终形成;
②测试软件只需要驱动模块,不需要桩模块,并且伴随组装层次的上移,驱动模块将大为减少在多数状况下,编写驱动模块要比桩模块轻易;
③由于从低层模块开始组合,因此较易产生测试用例在模块组装起来后,新的数据流途径建立起来了,新的控制逻辑也许激活了等等这些变化也许会使原本工作正常的功能产生错误,因此,应对某些已经进行过的测试的测试用例再重新执行一遍,以保证上述变化不会传播意外的副作用,称之为归测试确认测试就是验证所开发软件的功能和性能及其他特性与否符合软件需求3规格阐明书的规定因此,确认测试又称之为有效性测试内容功能测试;性能测试;强度测试;配置复审确认测试是由软件开发单位组织进行的最终一次测试,也是把软件交给顾客,进行正式的安装和验收之前所作的一次重要的准备为了保证测试质量,首先应组织独立的测试小组进行测试,另首先吸取任务委托单位及顾客代表参与测试,以提高测试的可信度同步,应将测试中发现的错误填入问题清单,交开发者处理系统测试是在更大范围内进行的测试,它将通过确认测试的软件作为整个基4于计算机的系统的一种元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对系统进行的一系列集成和确认测试系统测试一般由任务委托单位或顾客组织的验收小组负责,一般应根据需求分析阐明书来设计测试用例,在实际使用环境中运行系统测试的内容对不一样的系统各不相似软件维护所谓软件维护是指软件交付使用之后,为了改正错误或满足新的需求等而修改软件L以到达延长软件寿命为目的的过程软件维护阶段的长短决定了软件寿命的长短;软件维护阶段的费用占软件总成本的大部分、软件维护不一样于硬件维护,重要原因是软件维护不是由于使用时软件磨损或老化2引起,而是由于软件设计不对的、不完善或使用环境的变化等引起、软件维护类型改正性维护,识别和纠正软件错误,改正性能上的缺陷,排除实行3中的误使用而进行的诊断和改正错误的活动约占整个维护的适应性维护,使20%;软件适应处理环境或数据规定的变化而修改软件的活动约占整个维护的;完善25%性维护,修改或再开发软件,以扩充软件功能,增强软件性能等约占整个维护的50%;防止性维护或再工程,采用先进的软件工程措施对需要维护的软件或软件的某一部分(重新)进行设计、编码和测试连同其他维护约占整个维护的5%、软件维护成本软件维护活动所花费的工作量占软件整个生存期工作量的以470%上影响软件维护工作量的原因有诸多,就软件系自身而言,有如下几种重要方面系统的大小;程序设计语言;系统年龄;数据库技术的应用;软件开发新技术的运用、软件维护有关的模型模型;与模型5Boehm BeladyLehman、软件维护过程本质上是修改和压缩了的软件定义和软件开发过程
6、软件可维护性是指纠正软件系统中出现的错误或缺陷,以及为满足新的规定进行修7改、扩充和压缩软件的轻易程度软件可维护性的个度量指标可理解性,可测试性,可修改性,可靠性,可移植7性,可使用性及效率、影响软件可维护性的软件属性可理解性,体现为人们通过阅读源代码和有关文档,8理解软件的构造、接口、功能和内部过程的轻易程度;可测试性,一种软件轻易被测试的程度;可修改性,程序轻易修改的程度、软件再工程技术是一类软件工程活动,通过对旧软件(遗留系统)实行处理,以9增进对软件的理解,同步又提高了软件自身的可维护性、可复用性等逆向工程软件逆向工程,通过对程序的分析,导出更高抽象层次的表达,如从现存的程序中抽取数据、体系构造、过程的设计信息等,是一种设计恢复过程软件重构是对源代码和/或数据进行修改,使其易于理解或维护,以适应未来的变更软件重构规定关注模块细节正向工程也称为改造,用从现存软件恢复设计中得到的信息去重构现存系统,以改善其整体质量、软件维护的副作用因修改软件而导致的错误(编码副作用、数据副作用、文档10副作用)小结软件工程学的一种重要目的便是提高软件的可维护性,减少软件维护的代价;软件维护是软件生存周期的最终一种阶段,也是成本最高的阶段;软件维护大多要波及到软件设计内容的修改,从而要重视软件维护的副作用,对软件维护要有正式的组织,制定规范化的过程,实行严格的维护评价软件质量、软件质量度量的两个方面软件复杂性分析、软件可靠性分析
1、软件质量控制认证、软件配置管理、2IS09000SCM CMM
0、评价软件质量可从三个方面进行,即产品或中间产品、过程即软件生产所3需的资源和活动和项目、复杂性度量措施环形计数法4McCabe程序环形复杂度=程序流程图中的“鉴定数二程序图中的“环形数VG+1=m-n+2其中对应于程序图中的弧数,对应于程序图中的节点数m n、软件可靠性软件在给定的时间间隔及规定的使用环境条件下,按分析和设计规定5的规定成功地运行程序的概率;是与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性软件可靠性三要素失效,是指最终执行成果与有关规格不相符或顾客在软件系统边界察觉到不期望的软件出错行为;时间,即软件失效的时间;环境,软件运行时所需要的支持系统及有关的原因软件可靠性、硬件可靠性和操作可靠性三者综合起来反应整个计算机系统的可靠性软件可靠性测试
①植错模型Gilb假设表达软件中原有残留的错误数;表达植入软件中的错误数;表达N Sn测试中发现的原有错误数;表达测试中发现的植入错误数s则N=n/s*S
②分别测试模型Hyman假定表达软件中原有的残留错误数;表达甲测试员在某一时间内发现的错B0B1误数;表达乙测试员在同一时间内发现的错误数;表达甲乙两人发现的相似错B2Be误数贝U BO=B1*B2/Bc、软件配置管理是一组用于计算机软件的整个生命周期内管理变化的活动
6、年,美国卡内基-梅隆大学软件工程研究所7CMM:1987Software Engineering在美国国防部的支持下,提出了软件过程能力成熟度模型Institute,SEI CMMCapabilityMaturity Model0作用首先,可以用来评价软件组织的质量保证能力;另首先,也为软件组CMM织改善软件过程,提高软件过程能力提供了根据、软件过程能力成熟度等级初始级,混沌的软件过程焦点英雄人物;可反复级,8通过训练的软件过程焦点项目管理;已定义级,原则一致的软件过程焦点工程过程;定量管理级,可预测的软件过程焦点产品和过程质量;优化级,能持续改善的软件过程焦点持续的改善O、与的重要区别明确强调持续的过程改善,而则确9CMM IS09001CMM IS09001定可接受的质量体系的最低规定;严格合用于软件;而范围很广,涵CMM ISO9001盖了硬件、软件、加工材料和服务小结提高软件质量,首先要在软件开发过程中对开发成果进行验证,另首先要重视软件开发过程的规范化和可视化前者重视的是产品自身的质量,后者重视的是产品管理的质量软件复杂性和可靠性分析技术为软件质量的分析提供了量化的措施软件复用所谓软件复用是指运用已经有的.对建立新系统有用的软件制品来形成新系L统的活动目前,人们对软件复用寄予厚望,认为其有也许成为突破软件危机的一条出路、软件复用目的缩短软件开发和维护的时间;减少软件开发和维护的成本;2保证软件的可靠性呆证软件的一致性;保护投资者的利益;、软件复用可以分为横向复用和纵向复用两种类型横向复用是指复用不一样应用领3域中的软件成分,如数据构造、算法、人机界面构件等面向对象设计模式是一种经典的横向复用机制纵向复用是指在一类具有较多共性的应用领域之间复用软件成分纵向复用活动的关键在于领域分析息在系统中的流动和处理状况(数据流图是逻辑系统的图形表达)软件项目计划软件项目计划的目的就是提供一种框架,使管理者有可以对资源、成本、风L险及进度进行合理的估算分析和调度,为软件工程过程提供管理根据项目计划一般由软件项目的管理员、系统分析员与顾客通过可行性研究后共同制定,并在“需求分析”阶段确定软件系统的详细需求后定稿,伴随项目的进展定期更新
2、软件项目计划的重要内容:风险分析.进度安排和项目组织、风险分析活动风险标识(项目风险、技术风险和商业风险),风险估计.3风险评价和风险管理与监控、进度安排措施技术和图措施(看看书上的过程)4PERT Gantt、小结由于通过风险分析,可以做到知已知彼(彼即风险),从而“百战不殆,5使得开发者可以战胜风险带来的损失,使项目成功进度安排的落空不仅会导致项目开发成本的提高,导致有形的经济损失,并且会使客户的不满意度、不信任度增长,导致无形的经济损失在软件开发过程中,人是最活跃的部分需求分析、需求分析是指开发人员通过细致的调查分析,详细、精确和完整地理解顾客1需要什么样的软件,将顾客非形式的需求陈说转化为完整的需求定义,再将需求定义转换到对应的需求规格阐明的过程、一般,把一整套的需求分析措施,技术和工具等的集合称为建模措施
2、需求搜集的方式访谈(程式化的访谈和非程式化的访谈);问卷调直;使用用例;3顾客资料搜集;建立迅速原型、需求分析重要任务问题分析.需求描述.需求评审
4、需求分析重要目的确定顾客需要系统做什么
5、需求规格阐明需求分析的重要成果是得到需求规格阐明()需求规格阐6SRS明为顾客、分析人员、设计人员和测试人员之间的理解和交流提供了以便,是系统设计、测试和验收的根据大量记录数字表明,软件系统中的错误来源于需求的错误一种有效的需求规15%格阐明应具有如下特性对的性、无歧义性、完整性、一致性、可验证性、可理解性、可修改性、可追踪性和注释等需求分析阐明书的作用
①顾客与开发人员之间的协议
②概要设计的根据
③软件验收测试的根据数据流建模(功能建模)、数据流建模数据流建模措施是一种构造化分析措施();自顶向下.7SA逐层分解地定义系统需求;重要是运用数据流图()来对顾客需求进行分析DFD、数据流图数据流图描述的是系统的逻辑模型,图中没有详细的物理元素,8只是描绘信息在系统中的流动和处理状况(数据流图是逻辑系统的图形表达)、数据流图的四种基本符号数据流(用箭头表达);加工(加工一般用一种9圆圈或圆角方框来表达);数据存储(一般用开口的矩形框或双划线来表达);数据的源点和终点(一般用正方形或立方体来表达)、分层数据流图将数据流图分为顶层数据流图,中间层数据流图以及底层10数据流图,可以防止一次引入过多的细节,有助于控制问题的复杂度,从而便于对大型系统描述的实现
①顶层数据流图:重要描述整个系统的作用范围,阐明系统的边界,反应系统和外部环境之间的关系,即系统的输入和输出数据流顶层数据流图只有一张
②中间层数据流图通过度解高层加工得到的,其中有些加工还需深入分解
③底层数据流图底层数据流图由某些不必再进行分解的加工构成数据流建模环节:原则上是由外向里、自顶向下去模拟问题的处理过程.
11.画顶层数据流图;画分层数据流图;用数据词典定义数据流图中的所有数据;用加工阐明描述数据流图中的基本加工、数据词典又称数据字典,是有关数据信息的集合,是对数据流图中的每12个数据,包括数据流和数据存储,进行严格定义的场所,以保持数据在系统中的一致性
③便于需求分析阶段定义各类条数据字典的作用
①为顾客与开发人员之间统一认识
②作为概要设计的根据、加工阐明数据流图中的〃基本加工〃由于没有深入分解得到子图,因而13需要加工阐明来对其进行描述加工阐明是描述基本加工怎样把输入数据流变换成输出数据流的加工规则,是描述实现加工的方略而不是实现加工的细节图、构造化语言(伪代码,是一种介于自然语言和形式语言之间的一种IPO PDL,半形式语言人鉴定表.鉴定树等均可作为加工阐明的工具图(功能建模)IDEF0功能建模措施是一套用来对复杂系统进行建模分析和设计的系统措
14.IDEFO:IDEF施进行功能建模,用来建立数据模型,措施则用于面向对象IDEFO IDEF1X IDEF4设计,等等、措施用严格的自顶向下、逐层分解的方式来构造系统的功能模型,15IDEFO用图来描述IDEFO图只能反应系统做什么,系统功能由谁做,但不能反应系统怎样做,由IDEFO于盒子内部的构造怎样无从得知图:也称为活动图形重要元素是简朴的盒子及箭头盒子代表系统的功
16.IDEFO能(活动)箭头表达系统处理的数据约束,可以是详细的事物,也可以是抽象的信息功能建模措施规定一张图中的盒子最多只能有个(子图形还规IDEFO IDEFO6定不少于个)3建模环节:措施在详细的功能需求调研基础上,用严格的自顶向
17.IDEFO IDEFO下、逐层分解的方式来进行;确定建模的范围、观点及目的;建立系统的内外关系图,即图;建立图的一系列子图;书写文字阐明()A-0A0P49(数据建模)IDEF1X数据建模措施是措施的扩展版本用来表达
18.IDEF1X IDEF1X IDEF1IDEF1系统的信息构造和语义措施增强了图形的体现能力,丰富了语义和简化了IDEF1X开发过程图实体是具有相似属性或特性的现实或抽象事物的集合,这个集合中
19.IDEF1X的一种元素便称为实体的一种实例在一张图中,一种实体只能在图中出现IDEF1X一次属性表达现实或抽象的事物一种特性或性质建模环节阶段一一确定建模目的和计划;阶段一一定义实体;阶段IDEF1X012——定义联络;阶段——定义键;阶段——定义属性34需求分析⑵面向对象措施、建模语言是一种可以应用于任面向对象软件开发措施的标识法和语义语言1UML、多种图动态模型图(反应系统行为)用例图、次序图、协作图、状态图、2UML活动图静态模型图(反应系统构造)类图、包图、组件图、布署图、对象图、特点统一了面向对象措施的基本概念(融合了措施、3UML UMLBooch OMT措施和措施中的有关概念);具有更强的建模能力(正如在他的一OOSE G.Booch本书中所说假如你有好的思想,那它也是我们的);独立于特定的开发语言和开发过程、应用需求分析(用例图--功能的需求;类图--静态构造;状态图、次序图4UML和协作图等--类之间所需的协作,实现用例);设计(定义软件系统中的技术细节用到的类,如引入处理顾客交互的类、处理数据的类、处理通信和并行性的类等);实现(组件图--代码组件的物理构造以及组件之间的关系;布署图---硬件的拓扑构造和组件的分布);测试(类图---单元测试;组件图、协作图-一集成测试;用例图一-确认测试)概要设计软件设计需求分析软件系统必须“做什么;软件设计怎样做L才可以满足需求规格阐明中规定的各项需求的是回答概括地说,软件系统应如实现这一问题因、概要设计的基本
3、从工程管理的角度来看,软件设计一般分为两步,即概要设计和详细设计2此,概要设计有时称为初步设计或总体设计概要设计的重要任务是确定软件的总体构造,即确定软件系统的构成成分(子系统或模块)以及各构成成分之间的互相关系措施构造化措施、面向对象措施详细设计是对概要设计成果的深入细化,其重要任务是确定软件系统各构成成分内部的数据构造和算法过程、抽象与求精抽象,即过程抽象、数据抽象和控制抽象抽象使得设计人员可以避4开过早地陷入细节之中刻画过程和数据求精可以协助设计人员伴随设计过程的深入而不停展现更低层次的信息、模块化和信息隐藏软件应当分解成可单独命名的且可访问的部件,这些部件称为5模块由倡导的信息隐藏”是指模块中所包括的信息(包括数据和过程)对Parnas不需要这些信息的其他模块是不可访问的抽象有助于定义构成软件的过程(或信息)实体;隐藏定义并加强了对模块内部访问的约束,有助于分离模块的实现者和使用者、模块独立性模块独立性是模块化、抽象和信息隐藏的直接产物模块的功能独立6性可以使得模块既轻易开发又轻易维护模块独立性有两个定性的度量原则内聚度和耦合度、内聚度模块内部各成分联络紧密的程度内聚度越高,模块的独立性就越强内7聚程度从高到低的次序是功能内聚、信息内聚、通信内聚(数据有关一数据或标识耦合)、过程内聚(程序流程图;过程有关---控制耦合八时间内聚(初始化模块八逻辑内聚和偶尔内聚设计模块时,应当尽量防止使用偶尔内聚等低级内聚的模块,争取高级内聚的模块,以提高模块的独立性、耦合度模块之间互相关联紧密的程度模块的耦合度越低,模块的独立性8越强耦合程度从低到高也可分为七种非直接耦合、数据耦合、标识耦合、控制耦合、外部耦合、公共耦合、内容耦合在设计模块时,应当尽量使用数据耦合,必要时使用标识耦合,少用控制耦合”艮制使用公共耦合,最佳不要使用内容耦合构造化设计措施面向数据流图的软件构造设计面向数据流图的设计措施是一种构造化设计措施过程首先,研究、分析和审查数据流图,保证数据流图符合实际,必要时还要深入精化数据流图;然后,确定数据流图的类型,即变换型数据流或事务型数据流;再根据数据流图的类型采用变换分析法或事务分析法导出系统初始的软件构造;最终,根据软件设计原理和某些优化方略改善系统初始的软件构造,形成最终的软件构造在构造化设计措施中,软件构造是软件系统模块层次构造,反应了整个系统功能及L其之间的关系软件构造图的重要内容有模块、模块间的调用关系和模块之间传递的信息、模块在软件系统的软件构造图中,有种类型的模块传入模块、传出模块、26变换模块、协调模块、源模块和漏模块在软件构造图中,模块用方框来表达,并用名字标识该方框、调用关系在软件构造图中,模块间的调用关系重要有三种次序调用、选择调用3和循环调用方框之间的箭头表达模块之间的调用与被调用关系模块间调用的次序,习惯上是从左至右、数据或控制信息在软件构造中,模块传递的信息用带名称的短线箭头来表达箭4头方向代表信息传递的方向若箭头线尾是带空心圆圈,则表达该箭头线代表的是数据;若箭头线尾是带实心圆圈,则表达该箭头线代表的是控制、数据流变换分析法一种将变换型数据流图映射为变换型软件构造图的软件系统设5计措施()P
101、数据流事务分析法是将事务型数据流图映射为事务型软件构造图的软件系统设计6措施()P
103、软件构造图的改善模块大小适中、模块扇入扇出合理、模块的作用域应在控制域7内模块的扇出是指模块直接调用多少其他模块模块的扇入是指共有多种模块直接调用本模块良好的软件构造图,上层模快(重要是控制模块)往往具有较高的扇出,底层的模块(重要是功能型模块)具有较高的扇入,呈两头小、中间大的清真寺状模块的作用域是指模块中鉴定的作用范围,它是指所有受这个鉴定影响的模块模块的控制域是指模块自身及其直接或间接调用的模块假如模块的作用域不在控制域之内,则会增长模块间数据的传递量,使模块之间出现控制耦合面向IDEFO图的软件构造设计、面向图的软件构造设计是一种构造化设计措施,它以系统的功能模型和信8IDEFO息构造(数据)为基础设计系统的软件构造、概要设计时,一般可按照图的分解层次,逐层将其转换成软件构造9IDEFO面向对象设计模式、对象建模重要任务是理解某个特定应用问题域内所波及的对象,以及多种各样的1构造和通信关系简介面向对象分析措施来进行对象建模,在表达符Coad/Yourdon号上采用建模语言提供的标识法UML、确定对象类的措施三视图模型法(实体一关系模型、数据流模型、状态一迁移2模型)、面向对象设计是在对象建模的基础进行逐渐扩充的过程在对象建模中,是以问题3域为中心,而面向对象设计要在软件系统环境,即解空间,处理对象建模中要完毕的事情对象建模是以问题域为中心确定做什么,面向对象设计则以软件系统实现环境为中心确定怎样做、面向对象设计重要设计内容问题域部分设计、人机交互部分设计、任务管理部分4设计、数据管理部分设计、系统交互部件的设计()P
110、面向对象设计模式是一般面向对象设计问题的处理方案,此类问题以一组交互类的5形式出现,顾客根据需要定制这些交互类以形成专门的设计作用设计模式不仅使人们可以愈加以便地复用成功设计方案,提高软件的灵活性和可复用性,也能提高已经有系统的文档管理和系统维护的有效性、创立型模式创立型模式协助系统独立于对象的产生、组合和表达6作用首先均将有关系统使用哪些详细的类的信息封装起来;另首先隐蔽了这些详细类的实例是怎样被创立和放在一起的因此,创立型模式在什么被创立、怎样被创立、谁创立它以及何时创立等方面带来了很大的灵活性,有助于设计可复用的软件成分重要有两种工厂措施模式、抽象工厂模式构造型模式构造型模式波及怎样组合类和对象构成更大的构造一种措施是采用继承机制来组合接口或实现来形成更大的构造;另一种措施通过对象组合方式对某些对象进行组合来形成由于对象组合可以在运行时刻变化,而继承机制为静态类组合,因而对象组合方式具有更大的灵活性重要有两种适配器模式、组合模式行为型模式行为型模式不仅描述对象或类的模式,还描述它们之间的通信模式这些模式刻划了在运行时难以跟踪的复杂的控制流行为型模式使设计者的注意力从控制流转移到对象间的联络方式上重要有两种迭代器模式、观测者模式、框架中类的交互当顾客进行某些输入动作后,控制器接受顾客事件,并根7MVC据事件的类型来变化模型;视图事先会在模型中登记,当模型数据发生变化时,立即告知已向此模型登记的每个视图,视图从模型中获得最新的数据并刷新自己概要设计文档、概要设计阐明包括软件系统的基本处理流程、软件构造、模块划分、功能分派、接1口设计、运行设计、数据构造设计和出错处理设计等概要设计阐明为软件的详细设计提供了基础,也是系统集成测试的重要根据、概要设计文档复审目的较初期地发现设计中存在的错误和缺陷参与者除开2发人员外,必须要有顾客代表参与,必要时还应邀请有关领域的专家参与内容重点在软件系统的总体构造、模块划分、内外接口以及人机界面上方式正式复审和非正式复审小结:
①概要设计是由软件构造设计、内外接口设计、数据逻辑构造设计和顾客界面设计等活动构成,是将顾客需求转化为计算机可实现的系统的一种重要环节
②面向数据流图的设计措施和面向图的设计措施是两种常用的构造化设计措施,其特IDEFO点是自顶向下,逐层细化
③措施在面向对象设计措施中比较系统的Coad/Yourdon一种措施,其四个部分的设计实际是对面向对象分析模型在五个层次上扩充,扩充的内容实质也就是顾客界面设计、内外接口设计、数据逻辑构造设计等方面的内容详细设计、详细设计的目的与任务概要设计确定了软件系统的总体构造,详细设计则1对概要设计成果深入细化,给出目的系统的精确描述,以便在编码阶段直接翻译成计算机上可以运行的程序代码详细设计的任务算法过程的设计;数据构造的设计;数据库物理设计;信息编码设计;测试用例的设计;编写详细设计阐明书”(重要任务确定软件系统各构成成分内部数据构造和算法过程)、详细设计图形描述工具详细设计中用于过程设计的图形工具,包括程序流程图、2盒图、问题分析图和协作图、程序设计措施是一种面向数据构造的构造化程序设计措施通过度析问3Jackson题的输入、输出数据构造(用图表达)的对应关系,按一定的映射规则将Jackson其映射成软件的过程描述,用伪代码表达()、程序设Jackson P1344Warnier计措施(逻辑构造程序)程序设计措施LCP、程序规格阐明文档及复审又称详细设计阐明,与概要设计阐明相比,程序规格阐5明着重描述模块的细节,包括算法过程和数据构造假如软件系统比较简朴,则可将程序规格阐明并入概要设计阐明中程序规格阐明的复审类似于概要设计阐明的复审,但重点在于各个模块的详细设计上小结详细设计是进行逻辑系统开发的最终一种阶段,其质量的好坏将直接影响到系统的编码实现合理选择和对的使用有关工具、深入理解和掌握有关设计思想和措施,对搞好详细设计是非常重要的构造化程序的详细设计与面向对象程序的详细设计有许多共性软件测试、软件验证是通过检查和提供客观证据表明软件已经满足规定的需求,是保证软件1质量和减少软件成本的重要手段,波及软件的整个生存周期进行软件验证的方式大体有两种测试和证明测试又分静态测试和动态测试两种(静态测试,又称评审,是对软件进行的一种分析和检查活动动态测试是通过运行软件来检查其动态行为和运行成果的对的性)证明是一种通过形式化的数学措施来保证软件对的性的活动、软件测试是在软件2投入运行前,对软件需求分析、设计规格阐明和编码的复审,是为了发现错误,通过检查和提供客观证据表明软件已经满足规定的需求软件测试是保证软件质量和减少软件成本的重要手段,波及软件的整个生存周期软件测试就是试图以至少的代价发现软件分析、设计和编码中存在的多种不一样类型的错误,从而提高软件质量,减少软件成本一般的软件开发组织要将的项目精力投入到测试之中,某些人命悠关的30%~40%软件(如航空器的飞行控制软件)其测试费用往往更高、软件测试对象软件生存周期各阶段文档和代码
3、测试与调试测试是查找错误症状的过程,调试则是查找错误症状原因并改4。
个人认证
优秀文档
获得点赞 0