




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程自从1968年首次提出软件工程一词以来,软件工程已成为计算机软件的一个重要分支和研究方向。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。其目的是提高软件生产率、提高软件质量、降低软件成本。一、软件工程基本概念早期的软件主要指程序。程序的开发采用个体工作方式,开发工作主要依赖于开发人员的个人技能和程序设计技巧。当时的软件通常缺少与程序有关的文档,软件开发的实际成本和进度往往与预计的相差甚远,软件的质量得不到保证,开发出来的软件常常不能使用户满意。随着计算机应用的需求不断增长,软件的规模也越来越大,然而软件开发的生产率远远跟不上计算机应用的迅速增长。此外,由于软件开发时缺少好的方法指导和工具辅助,同时又缺少有关的文档,使得大量已有的软件难以维护。上述这些问题严重地阻碍了软件的发展,20世纪60年代中期,人们把上述软件开发和维护中的各种问题称为“软件危机”。1968年在德国召开的NATO会议上,首次提出了“软件工程”一词,希望用工程化的原则和方法来克服软件危机。在此以后,人们开展了软件开发模型、开发方法、工具与环境的研究,提出了瀑布模型、演化模型、螺旋模型、喷泉模型等开发模型,出现了面向数据流方法、面向数据结构的方法、面向对象方法等开发方法,以及一批CASE(computeraidedsoftwareengineering)工具和环境。(一)软件生存周期如同人的一生要经历婴儿期、少年期、老年期直至死亡这样一个全过程一样,任何一个软件产品或软件系统也都要经历软件定义、软件开发、软件维护直至被淘汰这样一个全过程,我们把软件的这一全过程称为软件生存周期。软件定义、软件开发、软件维护等阶段还可分为若干个阶段,每个阶段相对独立又彼此有联系,上一阶段的工作结果是下一阶段工作的依据,下一阶段是上一阶段的进化,它更接近于问题的解。1.软件定义软件定义阶段主要解决的问题是待开发的软件要“做什么”,也就是要确定软件的处理对象,软件与外界的接口,软件的功能和性能,界面以及有关的约束和限制。软件定义阶段通常可分成系统分析、软件项目计划、需求分析等阶段。(1)系统分析这里讲的系统是指计算机系统,包括计算机硬件、软件和使用计算机的人。系统分析的任务是确定待开发软件的总体要求和适用范围,以及与之有关的硬件、支撑软件的要求。系统分析阶段的参加人员有用户、项目负责人、系统分析员。该阶段产生的文档可合并在软件项目计划阶段的文档(项目计划书)中。(2)软件项目计划软件项目计划的任务是确定待开发软件的目标,对其进行可行性分析,并对资源分配、进度安排等做出合理的计划。软件项目计划阶段的参加人员有用户、项目负责人、系统分析员。该阶段所产生的文档有可行性分析报告、项目计划书。(3)需求分析需求分析的任务是确定待开发软件的功能、性能、数据、界面等要求,从而确定系统的逻辑模型。需求分析阶段的参加人员有用户、项目负责人系统分析员。该阶段产生的文档有需求规约(requirementsspecification),习惯上称它为需求规格说明书。2.软件开发软件开发阶段主要解决的问题是该软件“怎么做”,包括数据结构和软件结构的设计,算法设计,编写程序,测试,最后得到可交付使用的软件。软件开发阶段通常可分成软件设计、编码、软件测试等阶段。(1)软件设计软件设计通常还可分成概要设计和详细设计。概要设计的任务是模块分解,确定软件的结构,模块的功能和模块间的接口,以及全局数据结构的设计。详细设计的任务是设计每个模块的实现细节和局部数据结构的设计。概要设计阶段的参加人员有系统分析员和高级程序员,详细设计阶段的参加人员有高级程序员和程序员。设计阶段产生的文档有设计规约(designspecification),也称为设计说明书,它也可分为概要设计说明书和详细设计说明书。根据需要还可产生数据说明书和模块开发卷宗。(2)编码编码的任务是用某种程序语言为每个模块编写程序。编码阶段的参加人员有高级程序员和程序员,产生的文档有程序清单。(3)软件测试软件测试的任务是发现软件中的错误,并加以纠正。软件测试阶段的参加人员通常由另一部门(或单位)的高级程序员或系统分析员承担,该阶段产生的文档有软件测试计划和软件测试报告。3.软件维护软件开发阶段结束后,软件即可交付使用。软件的使用通常要持续几年甚至几十年,在整个使用期间,都可能因为某种原因而修改软件,这便是软件维护。引起修改软件的原因主要有三种:一是在软件运行过程中发现了软件中隐藏的错误而修改软件;二是为了适应变化了的环境而修改软件;三是为修改或扩充原有软件的功能而修改软件。因此软件维护的任务就是为使软件适应外界环境的变化、实现功能的扩充和质量的改善而修改软件。软件维护阶段的参加人员是维护人员,该阶段产生的文档有维护计划和维护报告。目前,软件生存周期各阶段的划分尚不统一,有的分得粗些,有的分得细些。许多场合软件开发阶段都是从需求分析阶段开始的。本书中,我们也将需求分析看作为软件开发的开始阶段。(二)软件开发模型为了指导软件的开发,用不同的方式将软件生存周期中的所有开发活动组织起来,形成不同的软件开发模型。常见的软件开发模型有瀑布模型、演化模型、螺旋模型、喷泉模型等。瀑布模型如下图所示,它是1970年由W.Royce提出的。该模型给出了软件生存周期各阶段的固定顺序,上一阶段完成后才能进入到下一阶段,整个过程就像流水下泻,故称之为瀑布模型。图中的虚线部分表示在某一阶段发现错误时,其错误可能是由上一阶段造成的,因此开发过程可能要反馈到上一阶段。在瀑布模型中,各阶段结束后,都要进行严格的评审。(三)软件开发方法软件开发过程模型规定软件开发活动的组合应用方式,要保证开发活动的高质量,还需要有相应的软件开发方法作为技术支持。近10年来,软件工作者研制出了许多工程化的软件开发方法,例如70年代初提出的用于编写程序的结构化程序设计方法,确实起到了提高效率,减少错误的效果。但是70年代中期,软件工作者认识到编写程序仅仅是软件开发的一个环节,而合理地建立系统结构比编定程序更为重要。所以研究的重点前移到设计阶段,出现了设计阶段的结构化设计(SD)方法和JACKSON等方法,到了70年代后期,人们又发现事先对用户的要求进行分析更为重要,故又把重点前移到分析阶段。出现了用于分析阶段的结构化分析(SA)方法、结构化分析与设计技术(SADT)等。随着计算机技术的迅速发展,在80年代初期的实时、并发和网络等软件的开发过程中,特别是在第五代计算机研究工作中,又提出了面向对象的设计方法。现在流行的方法有多种,它们的适用范围也各不相同。有的适用于一般的数据处理系统,如SA、SD(两者统称为结构化分析与设计方法,即Yourdon方法)、JACKSON方法;有的适用于大型的复杂系统,如SADT技术;有的适用于实时事务处理系统,如FSM方法;有的适用于并发软件系统,如PETRI网方法;作为90年代代表作的面向对象方法,其应用已几乎遍布各个领域。这些方法除了适用范围不同外,方法形成的基础、处理规则和对所开发软件风格的要求等都各有侧重。用什么方法来说明用户的要求、用什么方法来设计软件以及用什么方法对软件进行测试和维护,直接影响所开发软件的质量。性(四)软击件开发工具涛早期的软件椅开发除了一另般的程序设沉计语言外尚规缺少工具的肆支持,致使纤编程工作量枝大,质量和资进度却难以线保证,导致争人们将很多粥的精力和时舌间花费在程溉序的编制和做调试上;相忧比之下,在节更重要的软茅件的需求和铺设计上反而毫得不到必要颠的精力和时撞间投入。软见件开发工具劫的发展促进辞了软件开发小的高速度和成高质量。工咳具的发展是漠从单项工具水的开发逐步置走向集成的柴工具发展的该。同时,软谜件开发方法贯的有效应用用也必须得到距相应工具的寒支持,否则伟方法将难以艇有效的实施泪。工具的完邮善和发展将换促进软件开介发的进步和比完善。原型夏化方法的实喂施基础就奇是得股到了开发工喜具的支持。煮快速原型化敞之所以能够价实现的基础湿就是原型化御人员在快速叫建模时得到蛾了工具的支掌持,否则原权型化方法是眨无法实施的陶。押(五)软嫌件开发环境诉软件工程环财境或称软件迈开发环境是较全面支持软勒件开发全过汪程的软件工应具集合。这耕些软件工具夜按照一定的某方法或模式肃组合起来,都并能支持软晃件开发生命监周期的各个迫阶段和各项诚任务的完成喜。CASE番,即计算机子辅助软件工娱程环境是当岛前软件开发颂环境中富于乞特色的研究销工作和发展啄方向,它的量成功将最大弄限度地降低誉软件工程的鉴技术难度并庸使软件开发摔的质量得到艳保证。刃二、结构化奉生命周期方棒法持结构化分析彻与设计方法由在软鞠件工程中应范用已很普遍恢,并且越来乡越成熟。有叔许多大、中胡型项目都采勺用了这种方亩法进行开发片并取得了显讨著的成果。党按B.W.富Boehm话的描述,羞瀑布模型的丰的软件生命孔周期可划分莫七个阶段:炒系统需求分僚析、软件需剧求分析、概景要分析、详睁细设计、编魄码溪、备测试和运行仅维护短。目(一)系诊统需求攀“系统需求秃”包括:问归题定义、可断行性研究及攀软件计划。更1.问题定馋义轻软件开发的棋第一步就是竞进行问题定兼义。问题定舍义阶段必须灵回答的关键堤问题:“软顾件要解决的绩问题是什么胖?”如果不糠知道问题是矿什么就试图否解决这个问责题,显然是劲盲目的,只牛会白白浪费度时间和金钱口,最终得出业的结投果很伏可能是毫无上意义的。尽喉管确切地定镰义问题的必立要性是十分狐明显的,但热是在实践中鹅它却可能是雪最常被忽视固的一个步骤软。这里所说注的问题,就穗是指用户的何基本要求。侧说得通俗些鼠,问题定义城实际上就是垫了解用户到验底要建立什暗么系统,并赚确定分析员四下一步应该嫌做什么。因那此,问题定水义的来源是撇用户。通过省问题定义阶暖段的工作,赔系统分析员踩应该提出关型于问题性质仙、工程目标炊和规模的书壳面报告。这叼一阶段的分窗析员应尽可谅能站在较高由的角度去抽瓜象、概括所队要干的事情负,不要拘泥菠于问题实现掩的细节。尽祥管用户可能常总是习惯于厅这样做,但针分析员在这蛇一阶段必须守超脱出来,出居高临下鸟颤瞰系统的影全貌册。通过对系品统的实际用挡户和使用部里门负责人的絮访问调查,尝分析员扼要卡地写出他对迅问题的理解巷,并在使用惕部门负责人俊的会议上认爸真讨论这份厅书面报告,文澄清含糊不春清的地方,盯改正理解不糊正确的地方耕,最后得出蠢一份双方都奏满意的文档券。当用户的欺要求不是很味多并且不太知复杂时,一苹两个分析员谎用上一两天袖就可以完成奶这一工作了穴。但当系统弊比较大,且徐复杂时,恐劲怕就要组织或一个问题定面义小组,花劣上一两个星愉期,甚至数砍月来定义用六户的问题。法如果分析员谁和用户及使庭用部门的负重责人对所要渡解决的问题炸取得完全一允致的看法,广而且使用部隶门的负责人刮同意开发工轨程继续进行忠下去,那么胳开发工程策将转视入生命周期林的下一个阶该段———可步行性研究。胜2.可行性店研究前并不是所有再问题都有简集单明显的解尼决办法,事廊实上,许多尾问题不能在散预定的系统镜规模之内解城决。如果问着题没有可行斜的解,那么是花费在这项尼开发工程上禁的任何时间什、资源、人余力和经费和倦都是无谓的钥浪费。可行泄性研究的目犁的在于用最偶小的代价确毙定在问题定帖义阶段所确供定的系统的菊目标和规模具是否现实,古所确定的问叉题是否可以醉解决,系统帆方案在经济虽上、技术上滔和操作上是逝否可以接受翅。可行性研链究着重对如泊下具体方案羽考虑:来(1)经济偷可行性。估累计开发费用皇以及新系统未可能带来的袜收益,将两墓者进行权衡台,看结果是撑否活可以伏接受。候(2)技术博可行性。对吴要求的功能篮、性能以及累限制条件进粗行分析,是冲否能够做成半一个可接受思的系统。所熊考虑的因素垂通常还应包旗括开发的风倾险,是否能杠够得到需要陆的软件和硬逼件资源和一态个熟练的有节能力的开发俩队伍,与系渐统开发有关钉的技术是否次足以支持系丘统的研制。蠢技术可行性呼的估计,需狸要有经验的墨人员去完成贩。修(3)操作阳可行性。判签断系统的操说作方式在该爷用户组织内拌是否可行。尤分析、设计颂人员应以新雀系统的目标你和作用范围莫为依据提出井一种以上的亏设计方案,佛从技术可行安性、经济可屑行性、操作绒可行性等方坦面进行比较敢,并选择出受综合最优的嗽方案。根据抢可行性研究兴结果要沫做出蔑的决定是:桐是否继续按绵预定目标进锦行这项开发秒工程,可行追性分析人员嚼必须清楚地糟表明他对这胶个关键性决季定的建议。吴如果认为值凝得继续进行抓这项开发工馒程,则应提搂供选择一种仆最好的解法辟并说明理由糠。可行性分炸析是在问题仆的目标和约寿束之间的一势种权衡,还去可能有的结材果则是修改姥目标或放宽真约束。注3.软件计拌划胶分析人员应耀该为推荐的肆系统草拟一问份软件计划肚,其中描述箱的是为了成膀功地进行一障个软件项目棒,其所需要贴做的工作、炭需要的资源唇、需要的工禁作量和费用冶以及应遵循什的进度安排术。软件计划互由两项任务傍组成:分析声和估算。分规析是对系统午内各软件功裙能的界限的竟划定。估算慰是指根疫据已泊有的定性数或据和已往的冲经验对系统笛开发的资源片、费用和进剑度进行定量绕的估计。软狐件开发项目泡的进度安排葡可以从两种积观点来考虑哀:一是项目量的交付日期庭已定,负责档开发工作的赴软件机构被误限制在一个俊规定的时间午范围内分配档其工作量。您二是项目最臂后的交付日疯期由软件机垂构自已确定怕,可以从最玻佳的利用各填种资源的角概度出发来分蜓配工作量,庸项目最后的注交付日期经缺过对软件各乖部分仔细分膨析后才确定雁。在多数项袄目中,遇到侍的往往是第故一种情况。灿软件计划的阀阅读者可以功包括软件主纷管部门、用填户和技术人喂员。所确定泊的成本与进炭度可供主管点部门复审。剧它同时也给付出了整个软纠件生命周期援的基本成帐本预垄算的进度安枕排。扮(二)软跑件需求分析按软件需求分绕析工作是软重件生存期中榆重要的一步挑,也是决定喂性的一步。缩只有通过软躲件需求分析达,才能把软招件功能和性严能的总体概铅念描述为具葡体的软件需而求规格说明屈,从而奠定泄软件开发的诞基础。软件起需求分析工唤作也是一个黑不断认识和底逐步细化的考过程。该过汗程将软件设睛计阶段所确昏定的软件范疗围(工作域兰)逐步细化缓到可详细定例义的程度,准并分析出各是种不同的软愿件元素,然嫌后为这些元崖素找到可行拒的解决方法粘。制定软件丝的需求规格松说明不只是成软件开发人欣员的事,用足户也起着至智关重要的作但用。用户必乡须对软件功轧能和性能提蜓出初步要求误,并澄清一俩些模埋糊概念。而挣软件分析人绸员则要认真袭了解用户的典要求,细致扬地进行调查狭分析,把用宽户“做什么尾”的要求最积终转换成一好个完全的、框精细的软件交逻辑模型并军写出软件的副需求规格说庙明,准确地妻表达用户的阻要求。恼1.软件需善求分析任务板需求分析所粥要做的工作判是深入描述迎软件的功能寇和性能,确许定软件设计但的限制和软陈件同其他系搞统元素的接谜口细节。定轰义软件的其艘他有效性需物求。分析员鸦通过需求分棕析,逐步细雨化对软件的萝要求,描述减软件要处理桨的数据域,墨并给软件开艘发提供一种许可转化为数宅据设计、结兄构设计和过乓程设计的数蛮据与功能表杠示。在软件陈完成后,制昨定的软件需储求规格说明定还要为评荷价软耳件质量提供线依据。需求申分析阶段研惩究的对象是挤软件项目的巨用户要求。脂需要注意的炊是,必须理拖解用户的各浩项要求,但诚又不能全盘料接受所有的宵要求。因为洋并非所有用闷户要求都是防合理的。对环其中模糊的帅要求还需要益澄清,然后锦才能决定是渐否可以采纳袜。对于那些伸无法实现的衬要求应向用袍户做充分的猫解释,以求妙得谅解。准金确地表达所轿接受的用户荷要求,是需踩求分析的另卵一个重要方卷面。只有经乞过确切描述信的软件需求涉才能成为软袖件设计基础务。通常软件详开发项目是杰要实现目标透系统的物理往模型,即确舱定待开发软声件系统的系缺统元素,并摇将功能和数筋据结构分配厘到这些系统戒元素中。它馋是软件实现稠的基础。终但是斥目标系统的傍具体物理模逗型是由它的拿逻辑模型经由实例化,即深具体到某个磁业务领域而碎得到的。与刮物理模型不里同,逻辑模植型忽视实现趣机制与细节跟,只描述系不统要完成的侵功能和要处畏理的数据。蠢作为目标系秒统的参考,艺需求分析的阴任务就是借狡助于当前系粘统的逻辑模辅型导出目标直系统的逻辑穷模型,解决卖目标系统的向“做什么”样的问题。虑(1)获得陪当前系统的般物理模型。迫当前系统可类能是需要改滑进的某个已局在计算机运谨行的数据处哪理系统,也俗可能是一个吐人工的数据菌处理过程。译在这一步首敲先分析、理帅解当前系统现是如何运行圈的,了解当歌前系统的组顽织机构、输握入输出、资赵源利用情况治和日常数据死处理过程渴,并红用一个具体泥模型来反映坐自己对当前变系统的理解盘。这一模型右应客观地反芒映现实世界苍的实际情况封。诞(2)抽象夺出当前系统摆的逻辑模型矿。在理解当蜓前系统“怎键样做”的基平础上,抽取仁其“做什么反”的本质,朵从而从当前箭系统的物理宵模型抽象出杏当前系统的伤逻辑模型。书在物理模型秩中有许多物中理因素,随汇着分析工作丧的深入,有塑些非本质的提物理因素就呢成为不必要掘的负担,因劫而需要对物相理模型进行换分析,区分征出本质的和栋非本质的因毅素,去掉那久些非本质的哭因素即可获童得反映系统牵本质的逻辑伪模型。俯(3)建立撞目标系统的均逻辑模型。借分析目标系同统与当前系架统逻辑上的英差别,明确罗目标系统统研到底要哲“做什么”岂,从当前系召统的逻辑模但型导出目标凯系统的逻辑趴模型。(4脏)为了对目译标系统做完蜜整的描述,除还需要对得佳到的逻辑模边型做一些补期充。①说明竿目标系统的斧用户界面。僚根据目标系膛统所处的应练用环境及它感与外界环境铺的相互关系疑,研究所有征可能与它发越生联系和作盘用的部分,稀从而决定人衣机界面。②端说明至今尚搬未详细考虑居的细节。这煤些细节包括笑系统的启动脏和结束、出译错处理、系揪统的输入输样出和系统性嘉能方面的需俗求。③其他斯。例如系统盖的其他必须想满足的性能返和限制等等省。盼2.需求分牵析的过程川需求分析阶血段的工作,传可以分成以运下4个方面寄:对问题的然识别、分析钓与综合、制反定规格说氏明和其评审。我(1)问题宽识别首先系位统分析人员冶要研究计划闻阶段产生的杀可行性分析破报告(如果垃有的话)和栽软件项目实立施计划。主哭要是从系统殃的角度来理易解软件并评界审用于产生毙计划估算的纸软件范围是煌否恰当。确喘定对目标系节统的综合要怪求,即软件球的需求。并搬提出这些需涛求实现条件抄,以及需求熄应达到的标蛛准。也就是究要求所开发炒软件做什么哥,做到什么蜂程度。这些顶需求包括:泛•功能需求宫:列举出所字开发软件在在职能上应做毒什么。这是地最主要的需驼求。椅•性能需求棋:给出所开膊发软件的技趋术性能指标狮,包括存储巩容量限制、域运行时间限撕制、安全保艘密性等。甚•环境需求积:这是对软画件系统运行睁时掘所处英环境的要求唇。例如在硬疯件方面,采股用什么机型册、有什么外肥部设备、数笛据通信接口妖等等。在软蕉件方面,采亲用什么支持他系统运行的且系统软件(把指操作系统闷、网络软件泽、数据库管拆理系统等)管。在使用方戒面,需要使酒用部门在制哭度上、操作看人员的技术单水平上应具与备什么样的阴条件等等。助•可靠性需渗求:各种软恩件在运行时浩,失效的影讨响各不相同时。在需求分赚析时,应对捧所开发软件蝶在投入运行祝后不发生故捎障的概率,霉按实际的运贸行环境提出办要求,对于粉那些重要的散软件,或是水运行失效会删造成严重后米果的软件,竭应当提出较摩高的可靠性密要求,以期鉴在开发的过判程中采取必紧要的措施,术使软件能够菜高度可浑靠地乡稳定运行,窄避免因运行更事故而带来誉的损失。语•安全保密比要求:工作挥在不同环境淹的软件对其血安全,保密寄的要求显然恭是不同的。页应当把这方标面的需求恰巴当地做出规渣定,以便对乐所开发的软捞件给予特殊凡的设计,使饲其在运行中倒其安全方面淘的性能得到剧必要的保证佛。悉•用户界面妨需求:软件既与用户界面苏的友好性是萝用户能够方选便、有效、超愉快地使用法该软件的关掏键之一。从的市场角度来径看,具有友望好用户界面雅的软件有很竞强的竞争力迈。因此,必艘须在需求分殿析时,为用继户界面细致备地规定达到某的要求。局•资源使用魔需求:这是矩指所开发软哪件运行时所阵需的数据、指软件、内存罗空间等各项文资源外,软大件开敢发时甘所需的人力榨、支撑软件隐、开发设备茫等则属于软遣件开发的资斤源,需要在脉需求分析时漂加以确定。共•软件成本夺消耗与开发秧进度需求:为在软件项目壶立项后,要般根据合同规慢定,对软件利开发的进度况和步骤的费柿用提出要求倍,作为开发尸管理的依据帆。探•预先估计宰以后系统可练能达到的目做标。这样,哭在开发过程非中,可对系孔统将来可能兆扩驻与修改集做准备。一爱旦需要时,命就比较容易栏进行补充和位修改。工•功能性需拐求是人们普攀遍关注的,甘但常常忽视立对非功能性绪需求的分析凝。其实非功计能性需求并图不是无关紧忆要的,它们置涉及到的方叉面多而广,晌因而容易被窜忽略。如果窃在进行需求图分析之前没住有做过可行臂性分绍析,砍那么补充完叉成这部分工术作往往是必辰要的。从问宿题定义和调帝查研究入手凝,与用户密铸切联系,详卸细了解问题攀提出的背景秒,弄清要解军决什么问题香。然后从软石件系统特性齐和用户目标残出发,做市咬场调查和现健场考察。仔觉细收集信息荐之后进行数忆据分析和功思能分析,建企立系统的高隆层逻辑模型滔,再进一步并做成本/效来益分析。最框后提交一份舌可行性分析说报告,从技仿术、经济、驳社会效应等傍方面论证可歇行性,以确测认软件开发赴的目标是否战可行。问题赔识别的另一笑项工作是建氧立分析所需孩要的通信途傲径,以保证柱能顺利地对把问题进行分扫析。分析员影必须与用户玉、软件开发何机构的管理并部门、软件爆开发组的人仪员建立联炸系。捉项目负责人毯在此过程中纱起协调人的嚼作用。分析威员通过这种恨通信途径与仆各方商讨,乖以便能满足西用户的要求洒。蒜(2)分析返与综合需求罗分析的第二尽步工作是问判题分析和方爆案的综合。博分析员需从鼻数据流和数修据结构出发勤,逐步细化吃所有的软件息功能,找出头系统各元素妖之间的联系沈、接口特性蹈和设计上的甘限制,分析盈它们是否满沉足功能要求袜,是否合理忽。依据功能摸需求、性能露需求、运行危特性和设计侵上的限制分嫁析它们是否盗满足功能要调求,是否合痕理。依据功厅能需求、性底能需求、运夏行环境需求说等,剔除其债不合理的部疲分,增加其茎需要的部分药。最终综合告成系统的解厘决方案,给祖出目标系统接的详细逻辑屿模型望。在忆这个步骤中哗,分析和综饶合工作反复旺地进行。在鼠对现行问题互和期望的信盲息(输入和拜输出)进行弯分析的基础曲上,分析员咐开始综合出嘴一个或几个俩解决方案,鸭然后检查这傍些方案是否革符合软件计深划中规定的室范围等等,枯再进行修改占。总之,对两问题进行分摘析和综合的脂过程将一直列持续到分析柏员与用户双设方都感到有拍把握正确地肢制定该软件绑的规格说明厉为止。常用奏的分析方法木有面向数据购流的结构化到分析方法(鸭简称SA)臂、面向数据飘结构的Ja浴ckson状方法(简称扫JSD)、程面向对象的住分析方法(驳简称OOA投)等,以及教用于建立动灭态、模型的港状态迁移图浮或Petr窗i网等。这筑些方法都采染用图文结糕合的圈方式,可以饼直观地描述禾软件的逻辑流模型。拥(3)编制圆需求分析的挂文档已经确痕定的需求应塌当得到清晰日准确的描述瓣。通常把描痒述需求的文毯档叫做软件劲需求规格说息明书。同时粗,为了确切漠表达用户对锁软件的输入炼输出要求,恰还需要制定括数据要求说锹明书及编写贸初步的用户茄手册,着重介反映被开发背软件的用户州界面和用户殿使用的具体秀要求。此外王,依据在需随求分析阶段签对系统的进忆一步分析,纳从目标系统及的精细模型挤出发,可以岂更确切地估帜计所开发项诸目的成本与厚进度,从而式修改、完善娇与确定软件税开发的实施明计划。屑(4)需求窑分析评审作皇为需求分析兵阶段工作的枝复查手段,同在需求分析吴的最后一步海,尸应该孕对功能的正忽确性、完整奸性和清晰性场,以及其他沸需求给予评似价。评审的碗主要内容是林:棚•系统定义捕的目标是否宅与用户的要迅求一致;告•系统需求返分析阶段提炉供的文档资马料是否齐全绍;悔•文档中的描所有描述是缠否完整、清铅晰、准确所滔反映用户要她求;活•与所在其话他系统成分智的重要接口桃是否都已经河描述;恐•所开发项注目的数据流玩与数据结构坊是否足够,女确定;谢•所有图表食是否清楚,哲在不补充说糠明时能否理态解;市•主要功能惜是否已包括参在规定的软撇件范围之内攻,是否都已恶充分说明;拼•设计的约假束条件或限骂制条件是否述符合实际;叠•开发的技湾术风险是什渠么;咸•是否考虑面过软件需求恳的鹊其他臭方案;熟•是否考虑宅过将来可能削会提出的软狠件需求;慕•是否详细词制定了检验旷标准,它们亏能否对系统回定义是否成准功进行确认榴;盗•有没有遗峰漏、重复或驴不一致的地摆方;刘•用户是否动审查了初步吓的用户手册莲;鸦•软件开发闻计划中的估全算是否受到船了影响。为腰保证软件需者求定义的质俭量,评审应晨以专门指定释的人员负责泥,并按规程砍严格进行。勤评审结束应辣有评审负责莲人的结论意辽见及签字。催除分析员之属外,用户,差开发部门的坑管理者,软新件设计、实个现、测试的欣人员都应当率参加评审工情作。通常,爷评审的结果秤都包括了一帽些修改意见愧,待修改完秤成后再经评涌审通过,才竹可进入设计锻阶段。滥3.软件衬需求吊分析的原则霉近年来已提乡出了许多软单件分析与说手明的方法,殃虽然各种分申析方法都有拉其独特的描滴述方法,但借总的看来,戚所有分析方锯法还是有它鸡们共同适用亦的基本原则寨。深(1)必须服能够表达和永理解问题的芹数据域和功承能域所有软兆件定义与开墙发工作最终逗是为了解决它数据处理问且题,就是将参一种形式的拆数据转换成论另一种形式运的数据。其竹转换过程必贺定经历输入祸、加工数据鲜和产生结果山数据等步骤脸。对于计算希机程序处理戒的数据,其稀数据域应包鲜括数据流、脏数据内容和役数据结构。距数据流即数剃据通过一个盐系统时的数挨据存储(如亿磁盘文件或卵内存缓冲区茅)中引入附篇加数据。对尸数据进行转唯换是程序中卷应抚有的粪功能或子功孟能。两个转暗换功能之间抗的数据传递芳就确定了功址能间的接口潜。数据内容匆即数据项。妻例如,学生切名册包含了临班级、人数兴、每个学生冻的学号、姓触名、性别、真各科成绩等贸。学生名册慎的内容由它绳所包含的项鸟定义。为了狠理解对学生型名册的处理乱,必须要理顾解它的数据棚内容。数据毯结构即各种林数据项的逻良辑组织。数净据是组织成诞表格,还是恢组织成有层吴次的树型结徐构?在结构渐中数据项与比其他哪些数禽据项相关?配所有数据是步在一个数据伞结构中,还劈是在几个数嘉据结构中?赵一个结构中去的数据与其亲他结构中的改数据如何联责系?这些问所题都由数据境结构分析来忌解决。监(2)必须爱按自项向下垒、逐层分解凝的方抓式对问题进玉行分解和不来断细化如果惑将软件要处担理的问题作桨为一个整体芽来看,显得醉太大太复杂砌很难理解。行如果把问题众以某种方式谱分解为几个湖较易理解的身部分,并确搜定各部分间养的接口,从惊而实现整体绵功能。在需桨求分析阶段另,软件的功难能域和信息狗域都能做进搬一步的分解民。这种分解愁可以是同一贡层次上的,演称为横向分户解;也可以乏是多层次的聋纵向分解。既例如,把一幸个功能分解歪成几个子功届能,并确定御这些子功能炊与父功能的窝接口,就属恢于横向分解候。但如果继懒续分解,把盼某些子功能膀又分解为小谣的子功能,丸某个小的子揪功能又分解铸为更小的功怒能,这就属强于纵向分解标了。赢(3)要给京出系统的逻块辑版视图益和物理视图顺给出系统的册逻辑视图(奸逻辑模型)但和物理视图羞(物理模型密),这对系菜统满足处理刺需求所提出墓的逻辑限制盈条件和系统亩中其他成分岭提出的物理确限制条件是番必不可少的挡。软件需求蚊的逻辑视图载给出软件要隐达到的功能响和要处理的走数据之间的省关系,而不气是实现的细周节。例如,宵一个商店的细销售处理系蜡统要从顾客霸那里获取订歪单,系统读汪取订单的功寒能并不关心聋订单数据的夕物理形式和勺用什么设计勉读入,也就开是说无需关香心输入的机明制,只是读使取顾客的订剧单而已。类瓦似的,系统向中检查库存口的功能只关前心库存文件梯的数据结构名,而不关心紫在计算机中鉴的具体存储外方式。软件塑需求的逻辑附描述是软羡件设丛计的基础。豆软件需求的受物理视图给传出处理功能疯和数据结构辱的实际表示贺形式,这往狸往是由设备规决定的,如厨一些软件靠摊终端键盘输斩入数据,另肢一些软件靠针模拟数据转荒换设备提供伟数据。分析宽员必须弄清愿系统元素对或软件的限制障并考虑功能放和信息结构摸的物理表示袋。尸4.软件需茄求分析方法玩需求分析方裤法由对软件饺的数据域和身功能域的系播统分析过程偏及其表示方辱法组成。大燕多数的需求黎分析方法是揉由数据驱动悲的,也就是忙说,这些方湿法提供了一瓦种表示数据缸域的机制。另分析员根据五这种表示,夸确定软件功钢能及其他特是性,最终建朝立一个待开四发软件的抽仇象模型,即雨目标系统的前逻辑模型。窑数据域具有巨3绸种属坛性:数据流伯、数据内容表和数据结构到。通常,一筐种需求分析应方法总要利肝用其中的一馋种或几种属京性。目前已副经出现了许歉多需求分析洪方法,每一此种分析方法核都引入了不傻同的记号和狡分析策略。良但是它们仍鹅具有以下的岸共性。泰(1)支持从数据域分析碰的机制胖尽管每种方次法进行数据加域分析的方蛮式不同,但秧它们仍有一株些共同点。谅所有的方法缠都直接或间稼接地涉及到矮数据流、数帐据内容或数馆据结构域的盈属性。在多缎数情况下,沙数据流特征叫是用将输入籍转换成输出导的变换(功紧能)过程来染描述的,数震据内容可以洽用数据词典责机制明确表晌示,或者通即过描述数据饲或数据对象恳的层次结构崭隐含地表示吧。钩(2)功座能表间示的方法重功能一般用趋数据变换或记加工来表示哭,每项功能贯可用规定的剩记号(圆圈昨或方框)标碌识。功能的呢说明可以用转自然语言文村本来表达,吼也可以用形厌式化的规格挎说明语言来凝表达,还可绒以用上述的壳两种方式的语混合方式—灵——结构化蠢语言来描述登。举(3)接口衰的定义倒接口的说明森通常是数据诵表示和功能脊表示的直接丘产物。某个茶具体功能的巨流进和流出秀数据流应是那其他相关功匠能的流出或贫流入的数据朵流。因此,洋通过数据流泊的分析可以胖确定功能间胳的接口。诉(4)问题迅分解的机制拼以及对抽象轧的支持栗问题分解和先抽象主要依外靠分析员在屿不同抽象层歉次上表示数响据域和功能巩域,以逐层兽细化的手胆段建堆立分层结构援来实现。例谁如,无论使袖用哪种分析陈方法,都能度表示“计算出职工每月工击资”之类的让功能,并在谊这个抽象层武次上操纵这玻个功能。另熄外,所有的肢分析方法都到提供逐层分辛解的机制,的把“计算职歪工每月工资排”功能划分膝成一些子功勾能,如计算澡房租、计算搜用电费、计亭算用水费、寿计算养老保演险费等等。达其中,每项新子功能还可秩以在更低的渐一级抽象层婚次上表示。越(5)逻辑皆视图和物理设视图获大多数方法峡允许分析员袖在着手问题垦的逻辑解决籍方案之前先们分析物理视哑图。通常,排同一种表示库法既可用来摩表示逻辑视躺图,也可用冶来表示物理逆视图。快(6)系统蹦抽象模型绸为了能够比域较精确地定盯义腰软件扶需求,可以雪建立待开发身软件的一个每抽象的模型林,用基于抽抄象模型的术张语来描述软铃件系统的功校能和性能,梁形成软件需肢求规格说明座。这种抽象况的模型是从偶外部现实世耐界的问题领预域抽象而来雨,在高级层反次上描述和引定义系统的匙服务。对于捉比较简单的争问题,不必宿建立抽象系呀统模型。或尤者可以认为魂,系统模型肃在分析员头盯脑中形成,混直接由分析虽员写成规格岸说明。但对再于比较复杂庙的问题,仅父有在头脑中池想象的模型悟是不够的,每必须建立适就当的比较形崖式化的抽象贿系统模型,辆才能准确全请面地反映问烧题领域中各春种复杂的要美求。不同类瓣型的问题有答不同的需要晨解决的中心揭问题,因而冈要建立不同眨类型的系地统模稀型。对于数症学软件,设旗计的中心问剂题是算法,固软件人员主音要力量要花兄在数学模式从算法的考虑艇上。对于数下据通信软件狂,中心问题更是数据传送并和过程控制嘉,实现算法狼简单,采用瓜数据流模型届比较合适。求对于涉及大圈量数据的数筋据处理软件众,中心问题雹是数据处理事,包括数据胞的采集、数捉据的传送、奶存储、变换趁、输出等,皮一旦了解了慈数据结构,助与它相关的旷算法就很简卫单了。如果笨系统要求有袄数据支持,化通过数据库区获取和存放轨信息,还需牺要考虑数据解在数据库中懂的组织方式竞和存取方法错,建立数据趴库模型。因仍此,在分析杂过程中数据坊模型是首先诵要集中精力究考虑的问题讯。系统模型铜的建立是对播现实世界尸中存勾在的有关实兴体和活动的剥抽象和精化搏,其建立过袜程包括观察平分析、模型千表示和模型别检查3个阶矩段。首先,脸分析员和用算户合作,从译各方面观察分现实世界中拾的有关实体栋和活动,建减立理解的共买同基准,分断清哪些概念链与系统相关委,必须纳入听系统模型,琴哪些是系统寸模型不必关寒心的,分析船员和用户在巾共同理解的桂基础上,建荷立系统模型凯,包括系统估提供的各种窝系统服务,腊模型表示的宣细节应有:究系统输入、威系统输出、危系统数据处亩理、系统控旷制等。建立揭系统模型以缩后,还要进糕行检查。除尘了静态检查痒之外,系统拳描述可以部停分地模拟执如行,将执行风情况与对外祸部现实世界喉系统观察得境到的系统跟费踪信息进横行对济照,检查模钩型是否符合劲要求。这种饶建立系统模鸣型并模拟执增行和检查的冬方法叫做系奏统原型开发习。然(三)结阴构化分析方亿法伪结构化分析产是面向数据昂流进行需求赚分析的方法晃。20世纪投70年代末雕,经You室rdon勇E.,Co木nˉsta咽ntine薄L.,D道eMarc厕oT.等下人提出和发银展,至今已膨得到广泛应位用。结构化弄分析方法的断一些重要概椅念也渗透在识其他开发方亮法中。例如椅,结构化分辉析与设计技讽术(Str父uctur犁edAn喜alysi悼sand辟Desi蹄gnTe伯chniq麦ue,SA版DT)、面包向对象技术顶(Obje责ct-Or丙einte蜓dTec签hniqu钩e,OOT慌)、IDE碌F方法等。跨结构化分析奔方法适合于砖数据处理类胶型软件的需气求分析。由垒于利用图形耗表达需求,小显得清晰、蜓简明,易于柱学习和掌握攻。具体来说浓,结构化分这析方法就是捧用抽象模型连的概念,按屑照软件内部丰数据传递、楼变换的关系车,自顶向下店逐层分解,酱直到找到满昌足功能要求表的所有可实证现的软件为器止。根据D币eMarc狂o的论述,宪结构化分析邻方法使用的山工具有:数妇据流图、数露据词典、结湿构化英语、践判定表、判厚定树。结构互化分析方法酬有两个明显打特点:耽(1)自顶蜓向下逐层分吓解。采用简遗明易懂、直苹观的描述方热式皇1.数据流转图尘数据流图也殊称为Bub蒜ble事Char锐t或dat另aFlo钥wGra展ph。是描袖述数据处理丧过程的工具依。数据流图披从数据传递梯和加工的角值度,以图形固的方式刻画累数据流从输销入到输出的厌移动变换过内程。做(1)数据签流图居的主要图形卵元素从数据犯流图中可知亡,数据流图善的基本图形蔬元素有4种庭。数据流是扑沿箭头方向绒传送数据的梳通道,它们萍大多是在加健工之间传输展加工数据的害命名通道,胶也有连接数吼据存储文件轧和加工的没迈有命名的数豆据通道。这敏些数据流虽偿然没有命名坑,但因联接族着有名加工过和有名文件蜂,所以其含韵意也是清楚炼的。同一数坦据流图上不坏能有同名的固数据流。多犬个数据流可肝以指向同个执加工,也可马以从一个加喉工散把发出许多数记据流。加工定是以数据结撤构或数据内顶容作为加工纪对象的。加兔工的名字通鼠常是一个动占词短语,简剑明扼要地表巡明完成的是础什么加工。团文件在数据验流图中起保裳存数据的作血用,因而称延为数据存储妖(Data富Stor福e)。它可报以是数据库侮文件或任何弄形式的数据参组织。指向葬文件的数据狂流可理解为盒写入文件或相查询文件,拼从文件中引搁出的数据流奸可理解为从痛文件读取数位据或得到查锁询结果。数纱据流图中第旬4种元素是步数据源点或尿汇点,它表宫示图中要处柔理数据的输徐入来源及处挤理结果要送丽往何处。由板于它在图中驱的出现仅仅屑是一个符号蜓,并不需要仅以软件的形冤式进行设计销和实现,因蜓而,它只点是数槽据流图的外闲围环境中的铃实体,故称活外部实体。忘在实际问题浸中它可能是吵计算机外围榆设备或是传绿感装置。枪(2)数据短流与加工之殊间的关系在早数据流图中悬,如果有两室个以上的数叔据流指向一他个加工,或孩是从一个加岔工中引出两校个以上的数势据流,这些硬数据流之间筒往往存在一包定的关系。校(3)分层氧的数据流图碗为了表达数涂据处理过程惠的数据加工谅情况,用一钥个数据流图赶是不够的。客为表达稍为念复杂的实际协问题需要按膀照问题的层卵次结构进行垃逐步分解,规并以分层的狸数据流图反雀映这种结构自关系。先把潜整个数据处雄理过程暂且波看成一个加颈工,它的输翼入数据和输单出数据实际路上反映了系络统与外界环掠境的接后口。挑这就是分层门数据图的顶芽层。但只此仇一图并未表傍明数据的加槐工要求,需祥要进一步细巧化。如果这性个数据处理团包括3个子怖系统,就可村以画出表示谨这3个子系钱统1、2、宾3的加工及停其相关的数竟据流。这是稠顶层下面的嚼第一层数据仔流图,记为钓DFD/L宪1。继续分凳解这3个子月系统,可得留到第二层数此据流图DF嚷D/L2.帐1、DFD能/L2.2序、及DFD蛛/L2.3防,它们分别滚是子系统。饱1、2和3冰的细化。仅驰以DF/2穴为例,其中碗的4个加工筛的编号均可免联系到其上宜层图中的子堆系统2。这负样得到的多拳层数据流图找可十分清晰晕地表达整个馒数据加工系泡统的真实情亡况。对任何祥一层数据流推图来说,绢称它绪的上层图为哥父图,在它绑下一层的图倦则称为子图均。在多层数英据流图中,璃可以把顶层留流图、底层页流图和中间只层流图区分惭开。顶层流根图仅包含一紫个加工,它航代表被开发温系统。它的游输入流是该己系统的输入娘数据,输出肥流是系统的该输出数据。络顶层流图的蛋作用在于表理明被开发系舞统的范围,伪以及它和周仰围环境的数舍据交换关系穿。底层流图握是指其加工厌不须再做分松解的数据流孟图,其加工碌称为“原子原加工”。中猾间层流图则盗表示对其上严层父图的细讽化。它的每错一加工可以秋继续细化,没形成子图。货中间层次的友多少视系统句的复杂程度铅而定。另(4)数据运流图画法画津数据流图的浅基本步骤概侄括地说,就凭是自外向内站,自流顶向下,逐遇层细化,完蜡善求精。具愧体步骤可按酷如下来做。台①先找系统派的数据源点援与汇点。它雨们是外部实欣体,由它们鸦确定系统与冻外界的接口名。命②找出外部派实体的输出志数据流与输期入数据流。子③在图的边绣上画出系统歇的外部实体临。窗④从外部实嘉体的输出数躲据流(即系栗统的源点)卖出发,按照惜系统的逻辑棋需要,逐步拴画出一系列吵逻辑加工,身直到找到外发部实体所需尽的输入数据滚流(即系统猪的汇点),茅形成数据流巾的封闭。春⑤按照下面泄所给的原则妇进行检查和册修改。鲜⑥按照上述舒步骤,再从唇各加工出发拆,画出所需页的子图。含(5)进行丝检查和修改品的原则料①数据流图乖上所有图形敢符号只限于惧前述佩四种基本图翅形元素。验②数据流的栽主图必须包有括前述4种珠基本元素,旗缺一不可。加③数据流图究的主图上的牺数据流必须昨封闭在外部贼实体之间,仔外部实体可挨以不只一个斤。摘④每个加工嗓至少有一个矛输入数据流装和一个输出捎数据流。意⑤在数据流毛图中,需按旗层给加工框鸣编号。编号窃表明该加工忙处在哪一层秩,以及上下汤层的父图与晶子图的对应蛮关系。叔⑥任何一个喜数据流子图录必须与它上葡一层的一个抢加工对应,得两者的输入皱数据流和输掌出数据流必珠须一致。即皆父图与子图量的平衡,它傍表明了在细苍化过程中输愧入与输出不津能有丢失和狸添加。疮⑦图上每个领元素都必须枯有名字。表蔽明数据流和劲数据文件是嚼什么数邪据,刘加工做什么炼事情。殊⑧数据流图纹中不可夹带纸控制流。因岩为数据流图票是实际业务止流程的客观猛映象,说明裹系统“做什姿么”而不是某要表明系统门“如何做”励,因此不是造系统的执行陈顺序,不是俗程序流程图就。污⑨初画时可皮以忽略琐碎膛的细节,以惧集中精力于弦主要数据流逢。在需求分男析期间,有剧时会要求修殿改系统的某简些方面。使益用数据流图酷可以很容易脸地把需要修转改的区域分遗离出来。只椒要清楚地了宽解穿过要修昏改区域边界施的数据流,护就可以为将要来的修改做辩好充分的准理备,而且在驼修改时能够祖不打乱系统吴的其他部分蒙。括2.数据词战典凯数据词典的错任务是对于摆数据流图中份出现的所有疗被命名的图想形元素在奉数据楚词典中作为屿一个词条加扩以定义,使领得每一个图复形元素的名张字都有一个寄确切的解释杏。数据词典梅中所有的定叮义应是严密铁的、精确的步,不可有半盈点含糊,不否可有二义性想。烫(1)数据翼词典的定义愁对在数据流惧图中每一个梳命名的图形惑元素均给予楚定义,其内皆容有图形元平素的名字、怀别名或编号慢、分类、描堤述、定义、笛位置等。以默下是不同词犬条应给出的屯内容。秧①数据流词耽条描述数据要流是数据结忘构在系统内定传播的路径演。一个数据著流词条应有妙以下几项内杜容:数据流熊名:说明:制简要介绍作妹用即它产生黄的原因和结并果。数据流扇来源:来自受何方。数据辰流去向:去叶向何方。数搞据流组成:锦数据结构。设每个触数据政量:数据量搅,流通量。吓②数据元素班词条描述图玉中的每一个宝数据结构都蛛是由数据元活素构成的,梳数据元素是晓数据处理中老最小的,不搜可再分的单悲位,它直接殿反映事物的寨某一特征。畏对于这些数翠据元素也必饶须在数据词暖典中给出描帅述。其描述部需要以下信成息:数据元骄素名类型:山数字(离散止值,连续值死),文字S眼(编码类型粗)。长度。际取值范围。泽相关的数据捡元素及数据岁结构。数据帽元素的取值沫可分数字型炭与文字型。闹数字型又有隆离散值与连忠续值之分。茫离散值或是统枚举的,或受是介于上界歇的一组数;叮连续值一般管是有取值范经围的实数集船。对于文字拍型,需给予委编码类型,扩文字值需加觉以定义。秒③数据驶文件切词条描述数壤据文件是数词据结构保存稳的地方。一多个数据文件慎词条应有以锻下几项内容奖。数据文件磨名。简述:并存放的是什沿么数据。输葛入数据。输前出数据。数勇据文件组成复:数据结构加。存储方式言:顺序,直末接,关键码子。存取频率奏。撒④加工逻辑障词条描述加龙工比较复杂寨,它到后来刊就是一段程庸序。加工的嘉表达方式有蝴判定表,判海定树和结构掀化英语等等赚,它们要全崇部写在一个安词条中是有兰困难的。主距要描述有。君加工名。加迹工编号:反绪映该加工的耍层次。简要斯描述:加工最逻辑及功能盲简述。输入览数据流。输查出数据流。筋加工逻辑:吓简述加工程容序,加工顺态序。捷⑤源点及汇器(终)点词忆条描述对于仓一个数据别处理掉系统来说,派源点和汇点粘应当比较少评。如果过多筝就缺少独立接性,人—机离界面太复杂继,这时就要偷考虑减少,慕提高系统独某立性。定义凉源点和汇点扭时,应包括蜡。名称:外字部实体名。滩简要描述:庄什么外部实失体。有关数苹据流。数目奴。赖(2)数据召词典的使用揭在结构化分促析的过程中散,可以通过灰名字,方便衔地查阅数据省的定义:同湿时可按各种哄要求,随时露列出各种表拣,以满足分蔬析员的需要统。还可以按挑描述内容(殃或定义)来僵查询数据的清名字,通过英检查各个加蔬工的逻辑功万能,可以实杰现和检查在慎数据与程序爪之间的一致娃性和完整性弃,在以后的副设计与实现详阶段,以至哗于到维护阶足段。都需要莫参考数据词艳典进护行设讯计、修改和佩查询。班(3)数据题结构的描述或在数据词典文的编制中,发分析员最常趋用的描述数犯据结构的方病式有定义式秩或Warn独ier图。阵①定义式在纱数据流图中玉,数据流和充数据文件都盘具有一定的必数据结构。染因此必须以季一种清晰、拳准确、无二相义性方式来付描述数据结妈构。这种定仪义方法是自逃顶向下,逐显级给出定义雄式,直到最岛后给出基本忆数据元素为须止。络②Warn副jer图W凡arnje性r图是表示让数据层次结泰构的一种图誉工具。它用伏树形结构描税绘数据结构魔,它还能指士出某一类数闹据或某一数夹据元素重复闻出现的次数坏,并能指明卵某一特定数养据在某一类泳数据中是否焦是有条件的顿出现。在进遍行区软件平设计时,从御Warnj叙er图入手浩,能够很容再易转换成软蓝件的设计描促述。脏3.加工逻缩辑说明午在数据流图档中,每一个览加工框只简庭单地写上了安一个加工名耀,这显然不穗能表达加工侵的全部内容妄。随着自顶搅向下逐层细怀化,功能越欺来越具体,贴加工逻辑也泽越来越精细先。到最底一配层,加工逻究辑详细到可兔以实现的程参序,因此称兵为“原子加挺工”或“基症本加工”。闭如果能够写搜出每一个基甘本加工的全翻部详细逻辑游功能,再自败底向上综合穿,就能完成高全部逻辑加灰工。在写基舟本加工逻辑详的说明时,通应满足如下逃的要求。踩•对数据流碎图的每一个撞基本加工,江必须有一个策加工逻辑说头明;斤•加工逻辑乳说明必须决描述丹基本加工如冻何把输入数翁据流变换为昆输出数据流凳的加工规则氏;拍•加工逻辑寺说明必须描趁述实现加工匀的策略而不倡是实现加工客的细节;目觉前用于写加板工逻辑说明殃的工具有结的构化英语、鹅判定表和判他定树。下面神分别介绍。芳(1)结构访化英语月结构化英语胁也称为PD娇L,是一种孝介于自然语立言和形式化虫语言之间的育半形式化语邀言。它是在涌自然语言基曾础上加了一堵些限制而得羽到的语言,耐是使用有限杜的词汇和有倦限的语句来船描述加工逻鞠辑。结构化祸英语的词汇翠表由英语命落令动词、数农据词典中定槐义的名字、京有限的自定秤义词和控制贞结构关键词滚IF-TH春EN-EL斯SE、WH久ELE-D匪O、REP瑞EA触T-UNT哲IL、CA只SE-OF钱等组成。其河动词的含义阔要具体,尽爱可能少用或促不用形容词鸭和副词。语党言的正文用改基本控制结屋构进行分割帽,加工中的慨操作用自然的语言短语来什表示。其基荣本控制结构帖有简单陈述路句结构,判羞定结构和重守复结构。此令外在书写时赌,必须按层状次横向向右流移行,续行喷也同样向右贪移行,对齐粥。要了解基鸭本加工逻辑液的来龙去脉蠢、在数据流库图中的位置形、加工的使浆用情况等有疫更清楚的了耽解,一般对叙结构化英语掠的描述加一缴些外层说明晃。萌(2)判定仔表结在某些数据闹处理问题中肾,某数据流怨图的加工需的要依赖于多疫个逻辑条件园的取值,就迈是说完成这脂一加工的一垦组动作是由沫于某律一组泳条件取值的杆组合而引发蚁的。这时使泪用判定表来寒描述比较合恐适。下面以趴“检查发货惭单”为例,阿说明判定表能的构成。判疑定表由4个劫部分组成,镰双线分割开芬的4部分是后:条件茬(捎Condi据tion猛Stub)工———左上耕部分:列出艘了各种可能数的条件。除稳去某些问题诞中对各个条谅件的先后次苍序有特定的假要求以外,杆通常判定表带中对各条件间的先后次序狱不要求。条摄件项(Co戏nditi遍onEn比try)—盐——右上部环分:给出各弹个条件的条冬件取值的组叉合。动作茬忘(Acti润onSt繁ub):—贱——左下部御分:列出了天可能采取的粒动作。这些处动作的排列惕顺序没有限梅制,但为便届于阅读也此可令郑共按适当的贿顺序排列。妻动作项(A赵ction喘Entr赏y):——血—右下部分滴:是和条件柴项紧密相关隐的,它指出浅了在条件项牢的各种取值价的组合情况惨下一步应采吵取什么动作痕。这里将任幸一条件取值榜组合及其相希应要执行动尼作作称为规睡则,它在判炕定有中是纵伞贯条件项和纹动作项的一杰列。显然,脱判定表中列找出了多少个温条件取值的全组合,也就拣有多少条规糠则,即条件摇项一动作项逝有多少列。陶在实际使用啊判定表时,巷常常先把它挽化简。如果昂表中有两条钢或更多的规晋则具有相同碌的动作,并燕且其条件项居之间存在着荡某些关系,毅就可设法将幸它们合并。批就是说要执止行的动作与搞第三条件的缝取值无关,房这样,便粗可将眉这两条规则魔合并,合并答后的第三条与件取值用“认—”表示,蜡即与取值无蛛关。类似地忧,无关条件凭项“—”,切在逻辑上又璃可包含其他马项值,具有坏相同动作的例规则还可以倒进一步合并侨。判定表能棚够把在什么宁条件下,系剖统应完成哪淋些操作,表涌达得十分清傍楚、准确、记一目了然。控这是用语言泡说明难以准芹确、清楚表更达的,但是轨用判定表描飞述循环比较哥困难。有时碎,判定表可占以和结构化构英语结合起羽来使用。隐(3)判定定树施判定树也是余用来表达加耕工逻辑的一骄种工具。有克时候它比判贼定表更直观赖,用它来描树述加工,很仪容易为用户地接受。没有杜一种统一的款方法来构造客判定树,也件不可能有统赏一的方法。爹因为参客观润存在是用结贿构化英语,然甚至是自然盗语言写成的构叙述文作为是构造树的原绕始依据的,弹但可以从中孔找些规律。技首先,应从对文字资料中炮分清哪些是鄙判定条件,虽哪些是判定瑞做出的结论粉。在表达一幸个基本加工诱逻辑时,结市构化英语、荡判定表和判伏定树常常交要叉使用,互贱相补充。因梢为这3种手赛段各有优缺低点。总之,肥加工逻辑说吐明是结构化谎分析方法的辅一个组成部凝分,对每个游加工都要加颗以说明。使赠用的手段,缎应当以结构赔化英语为主沫,对存在判清断问题的加古工逻辑,可物辅之以判定也表和判定树偿。何4.软件需购求说明炎软件需求规蜂格说明书包乱括的主要内筛容如下。秘(1)概述团(2)数据薯描述①数据加流图罩②数蹲据字典③系求统接口说明唇④内部接口郑说明迹(3)功能劫描述①功能喂②处理说明愁③设计的限必制崖(4)性能速描述①性能蜓指标②测试等种类③预期华的软件响应背性能④其它顶(5)参考拐文献目录义(6)附录茅其中概述是遣从系统的角饿度描述软件匠的目标和任蝴务。软件需商求文档的生曾成方法有以孟下两种。脚(1)计算爆机辅助生成利:由于需求全文档的规模戒较大,并且兼需要经常查趋询、维护,滨所以使用计饰算机辅助的石软件需求分束析工具,来披实现软件需沙求文档的自浩动生成,是扒非常有意义抽的。197筝7年最先推约出了需求陈耀述语言RS阵L(RSL善中的语句是圆计算机可以吧处理的)。古同年美国密棋执安大学开味发了P倘SL/PS错A(问题陈植述语言/问胀题陈述分析驱程序)系统馋。它是信息够系统开发自铸动化支持环置境1SDO零S的一个组级成部分。其赚中PSL是模用来描述系桥统的形式语嚼言,它可以站对系统需求趋的一致性进偷行检查,并狗可根据开发闪者的需要,刮随时生成需醉求文档。那(2)手工佳与半手工方巴式:这种方顺法难以保证孔文档质量。毅半手工方式仗是利用正文克编辑程序及罢其他实用程摘序辅助手工山方式来生成犹文档,这类担方法难以保宅证文档的正培确性、一致堵性和完整性足。嚷(四)软膏件设计漏在明确了用海户的需求以指后,下一步斧的任务就是补对未来的软盒件系统进行狱设计。软件捐设计通常可晃分为概要设灭计和详细设动计。概要设弱计的暑任务是确定把软件系统的哨结构,进行谷模块划分,上确定每个模摄块的功能、垒接口以及模摇块间的调用孙关系。详细骡设计的任务惩是为每个模站块设计实现京的细节。此嫌外,在概要添设计阶段还仔应对全局数怨据结构进行切设计,详细堤设计阶段还仆应对局部数步据结构进行或设计。有的肉设计方法不池区分概要设剑计和详细设链计,统称为慰软件设计。伙人们在开发驾过程中,总旁结出许多软漠件设计的概滋念和原则,棚这些概念和思原则对提高肚软件的设计锻质量有很大笑的帮助。问1.抽象秧抽象是指忽司视一个主题集中与当前目励标无关的那犹些方面,以仔便更充分地富注意与当前槽目标有关的汤方面。抽象彻是认识复杂傻问题的过程察中人类使用赤的最有力俭的思摧维工具,它福抽取出事物则的本质特性击而暂时不考帆虑它的细节抢。软件工程巷中从软件定倘义到软件开箭发要经历多货个阶段,在乎这个过程中点每前进一步水都可看作是宵对软件解法逐的抽象层次真的一次细化危。抽象的最胶低层次就是瓦实现该软件猎的源程序代浊码。在进行描模块化设计趟时可以有多狗个抽象层次沫,最高抽象改层次的模块浅用概括的方踢式叙述问题弦的解法,较膏低抽象层次恨的模块是对阀较高的抽象奶层次模块对端问题解决描贷述的细化。征过程抽象和予数据抽象是挺常用的两种怒主要抽象手烧段。过程抽誓象是指任何虫一个完成明雅确功能的操斑作都可被使胳用者当作单绢个的实体看变待,尽管这呀个操作实际嫌上可能由一秤系列更低级阴的操作来姑完成砍。过程抽象其常常也称为贯功能/子功泡能抽象。例闷如函数、子找程序。数据胜抽象定义了悬数据类型和碰施加于该类帖型的操作,替并限定了对窑象值的范围毕,只能通过船使用这些操团作修改和观艰察这些数据障。例如抽象俘数据类型。益2.模块化携模块化是指艰将一个待开朋发的软件分么解成若干个世小的简单的寿部分———框模块,每个庄模块可独立式地开发、测漫试,最后组芒装成完整的拳程序。这是巴一种复杂问镜题的“分而哥治之”的原组则,模块化仍的目的是使归程序的结构紧清晰,容易孟阅读,容易狡理解,容易棋测试,容易勤修改。模块身是指执行某大一特定任务行(也可以是阵实现某一特丸定的抽象数敌据类型)的习数据结构和莫程序代码。漏一个驶模块营有它的外部裳特征和内部匪特征。外部扁特征包括模僚块的接口(桥即它的输入否/输出参数遗,引用的全幼局变量和它峰需调用的其捐他模块)和拼模块的功能题,内部特征子包括模块的劣局部数据和兄实现该模块帜的程序代码妄。调用一个阁模块只需知谅道它的外部获特征,而不事必了解其内散部特征。帖3.信息隐丸蔽璃信息隐蔽是荐开发整体程卵序结构时使朽用的法则,耕即将每个程顽序的成分隐进蔽或封装在起一个单一的补设计模块中志,定义每一缩个模块时尽梅可能少地显远露其内部的匹处理。在设饼计时首先列捧出一些可能罩发生变化的匠因素,在划雷分模块时将系一个可能发楼生变化的因箩素隐蔽在某姐个模块的内跪部,使其他覆模块与这个匆因素无关。糠在这驾个因经素发生变化滥时,我们只站需修改含有筐这个因素的惠模块,而与衰其他模块无慧关。隐蔽的辨对象可以有召:什么的决稠策,可能修叙改的决策,效数据结构的侧内部连接以贿及对它所做腊的操作细节笨,内部特征问码,与计算横机硬件有关编的细节等。趟信息隐蔽原厉则对提高软惨件的可修改仰性、可测试凳性和可移植猎性都有重要吗的作用。枯4.模块独布立睛模块独立是罗指每个模块值完成一个相渣对独立的特樱定子功能,摔并且与其他摄模块之间的子联系简单。膨衡量模块独哭立程序的度榆量标准有两测个:耦合和届内聚。耦合坑是指模块之榆间联系的紧罢密程度。耦视合度越高则碌模块的独立们性越差。内陕聚是指模块慕内部各元素耐之间联系的驼紧密程度。大例如季一个揪完成多个功外能的模块的兽内聚度就比塑完成单一功沃能的模块的妨内聚度低。蝴内聚度越低寄模块的独立踢性越差。因旁此,模块独抹立就是希望住每个模块都张是高内聚低榨耦合的。碗(1)耦合晌两个模块之蹦间的耦合方土式通常有如授下7种,下涝面按它们的汗耦合度从低句到高的次序掘依次作介绍摇。评①非直接圈耦合:非直麻接耦合是指尾两个模块没劣有直接的联伤系,它们中妹的任一个都哥能不依赖于遭对方而独立突地工作。息②数据耦蓝合:数据耦现合是指两个察模块借助于果参数表传递嗓简单数据。群③标记耦纵合(sta衫mpco茶uplin闸g):当一奥个数据结构歌的一部分(笑如记录的一先部分)借助狗于模块接口揭被传递时就商发生润标记耦合。默④控制耦舞合:控制耦漫合指两个模迹块间传递的拿信息中包含竭用于控制模剖块内部逻辑丽的控制信息觉。革⑤外部耦碧合:当模块墨与软件以外蕉的环境有关滚时就发生外站部耦合。例返如,输入/井输出把一个翻模块与特定维的设备、格盖式、通信协画议耦合在一爱起。民⑥公共耦冈合:多个模巡块引用一全响局数据区的劳模式称为公旺共耦合。例慰如FORT窝RAN语言逐中的COM本MON语句肿,C语言中浓的exte街rnal数米据类型,一遥个磁盘文件罩等都是全局纱数据区。匙⑦内容耦合用:内容耦合均指两上模块洞之间出现了录下列情况之荡一:悟•一个模块锯访问另一个勿模块的内部免数据;校•一个模块颤不通过正常鞠入寒口转到另一扩模块的内部设;喷•两个模块永有一部分程阔序代码重叠净;精•一个模块病有多个入口竟。层(2)内聚纤模块的内聚赞种类通常可岸分成7种,耗下面按内聚害度从低到高壶的次序依次宽作介绍。拆①偶然内聚恨:如果一个康模块完成一三组任务,这扭组任务彼此辜间即使有关逃系,其关系忙也是很松散里的,这个模滴块属于偶然昏内聚。匹②逻辑内聚护:如果一个艳模块完成逻枣辑上相关的谁一组任务,柴这个模块是父逻辑内聚的竭。例如,产伙生与类型无金关的全部输义出的模块。众③瞬时内聚淹(temp大oral怠cohes庭ion):提如果一个模之块所包含的肾任务必须在贪同一时间间菊隔内执行,债这个模块属殊于瞬时内聚幅。例如初棒始化模块。历④过程内聚语:如果一个迟模块的处理承元素是相关佩的,而且必扇须按特定的大次序执行,谈这个模块属愿于过程内聚毛。渡⑤通信内聚焦:如果一个颠模块的所有翼处理元素集犁中在一个数增据结构的区虏域上,该模那块属于通信针内聚。例如地,一个模块者中的所有处绿理元素使用语同一输入数美据。驰⑥顺序内聚锦:如果一个填模块的处理吵元素是相关铃的,而且必纲须顺序执行扔,这个模块引属于顺序内采聚。武⑦功能内聚悦:如果一个纷模块完成一警个单一的功沃能,模块中易的各部分在衰此目标下协邪同工作,而怎且都是为完盆成这一功能退而不可缺少号的,那么这盒个模块是功涛能内聚的。出5.模块分跌解时应遵循眼的准则枕(1)满足访信息东隐蔽原则谁(2)尽量卧使得模块的影内聚度高,盏模块间的耦从合度低。膛(3)模块于的大小适中常(通常一个导模块以50宫~100个澡语句行为适岩宜)。遭(4)模块轿的调用深度驶不宜过大。钻一个模块A炸可以调用另桨一模块B,橡模块B还可图调用模块C挖,称模块A糊直接调用模蜡块B,模块摆A间接调用巾模块C,被仗间接调用的夏模块还可调限其他模块,融这样可形成改一棵调用树冤,我们把以铲某个模块为握根结点的调抄用树的深度途称为该模块绞的调用深度君。龄(5)模块会的扇入应尽匹量大,扇出凳不宜过大。络一个模块的谱扇入是指直帆接调用该模帐块的上级模式块个数。一畅个模块的扇臂出是指该模沈块直接调用央的下级模块包的个数。扇侦入大表示模勾块的复用程遵序高,扇出完大表示模块启的复杂度高慎。钉(6)设计挂单入口和单批出口的模块爆。缩(7)模块近的作用域应成在控制域之菌内。模块的更作用域是指咽受该模块内迎一个判定影校响的所在模停块的集合。菜模块的控制胸域是指该模川块本身以及大被该模块直茎接或间接调族用的所有模低块的集合。装在设计时,议作用域应是垫控制域的子际集,作用域根最好是做出佳判定的模块励本身以及它垮的直属下级鸣模块(直接撤调用的模块乱)。看(8)模块扰的功能应是判可以预测的糠,功能可预俘测是指对相冲同的输入数少据能产生相亩同的输出。钻三、软件测葵试葡在软件开发准的一列活动运中,为了保近证软件的可却靠性,人们狠研究并使用催了隶很多方法进逗行分析、设坑计及编码实青现。但是由档于软件产品吩本身无形态浙,它是复杂尽的、知识高载度密集的逻便辑产品,其猛中不可能没膊有错误。物积理产品在出杂厂前都要进佳行严格的检层验,软件产框品也不例外满。软件开发垮总伴随着软爪件质量保证般的活动,而降软件测试是岔主要活动之它一。软件测亚试代表了需馅求分析、设泽计、编码的诉最终复审。屯测试是一项协很艰苦的工萌作,其工作刺量约占软件测开发总工作帅量的40%挨以上,特别发对一些关系蹄到人的生命芽安全的软件净,共测试成辽本可能相当希于开发阶段刻总成本的3禁~5倍。龟(一)测碍试的基本概柏念菜1.测试的内目的细软件测试的伤目的是尽可锋能多地发现堪软件产品(栏主俱要是指程序有)中的错误蛛和缺陷烧。明确测试本的目的是一秘件非常重要缝的事,因为隶在现实世界子中对测试工屡作存在着许神多模糊或者恳错误的看法史,这些看法挨严重影响着姑测试工作的建顺利进行。而有人认为测浴试是为了证手明程序是正些确的,也就与是说程序不兔再有错误,套事实证明这宰是不现实的例。因为要通饿过测试来发扯现程序中的洒所有错误就旋要穷举所有下可能的输入描数据,检查愁它们是否产税生正确的结吃果。例如,份一个需要3拳个16位字滋长的整型输绘入数据的程那序,输入数造据的所有组啊合情况大约耍有3×10泄14种淋,若每组数娘据的测试时畜间为1ms俭,那么即使屑一年365志天,每天2握4小时地测春试,也大约遍需要1菊万年的时间挨。护2.测试用剃例仇要进行测试浪,除了要有箱测试数据(干或称输入数械据)外,还活应同时给出刻该组测试数抓据应该得以动怎样的输出盗结果,我们贫称它为预期雀结果。在测香试时将实际克的输出结果校与预期结果扁比较,若不搜同则表示发柿现了错误,想因此测试用斜例是由测试绞数据和预期眠结果构成的躬。为了发现责程序中的错螺误,应竭力渡设计能暴露述错误的测试至用例。一个末好的测试用株例是极有可扮能发现迄今宝为止尚未发降现的错误的举测试用例。捉一次成功的别测试是发现树了至今为止己尚未发现的岂错误的测试丸。贱3.测试的脂原则向基于上述测雨试目的,我日们可以考虑误以下有关测仅试的原则:偏(1)确定挺预期输出结扫果以是测试用例芬必不可少的从一部分。如围果只有测试颤数据而无预值期结果,那垂么就不易判倚断测试结果繁是否正确。互(2)程序唉员应避免测母试自己的程闷序,程序设辛计机构不应串测试自己的搞程序。这是甜因为程序中销的错误往往畜是由于程序镇员对问题说班明的误解,词由他来测试蛛自己的程序避就不易找出印因这种误解北而产生的错鸭误。此外,似开发程序是奶一项建设性圾的工作,而才测试则是一退项破坏性的勤工作(证明邀程序有错)努,这对开发劳人员或机构夹来说在心理诞上是难以容躲忍的。为了敲证明自己的买程序没有错答误或错误很图少,他们往牵往不去选择嗓容易发现错恶误的测试用野例,而选择堪容易通过的胆测试用例。团当然,这并恳不意味着程今序员都不能肚测试自己的局程序,如单立元测试通常制就是由程序查员自己测试关的。读(3)彻底辞检查每个测退试结果。如起果不仔细检织查测试结果旺,有些已经保测试出来的咬错误也可能聋被遗漏掉。糟(4)对非分法的非预期屠的输入数据才也要像合法贫的和预期的肆输入数据一慕样编写测试伶用例。祥(5)检查诸程序是否做估了应做的事会是成功的一绪半,另一半黎是看程序是屿否做了不该盗做的事。语(6)除了虹真正没有用皇的程序外,互一定不要扔勇掉测试用例颜。因为在改尚正错误或程瞧序维护后还此要进行重新黑测试。粒(7)在规疏划测试时不砍要设想程序咱中不会查出车错误。斜(8)程序分模块经测试雨后,残存的袍错误数目往暮往与已发现里的错误数目菌成比例。实屿践证明,程诱序中的大量际错误仅与少蓝量的程序模去块有关,因售此当A模块拾找出的错误拉比B模块多临得多时,很舱可能A模块夜残存的错误冈仍比B模块慕残存的错误念多多。冈4.白盒测足试和黑盒测绿试恨测试的关键摧是测试用例取的设计,其扩方法可分成物两类:白盒磁测试和黑盒制测试。略白盒测试是狸把程序看成浮装在一只透对明的白盒子障里,测试者舒完全了解程舟序结构和处维理过程蜻。它根据程哀序的内部逻挠辑来设计测医试用例,检捉查程序中的漆逻辑通路是骗否都按预定电的要求正确壁地工作。景黑盒测试是科把程序看成夸一只黑盒子劈,测试者完慧全不了解(粗或不考虑)菠程序的结构木和处理过程糖。弃它根据规格悬说明书规由定的功能来泛设计测试用县例,检查程员序的功能是去否符合规格袜说明的要求粮。胶(二)测孝试步骤摘软件测试的景主要步骤有脂单元测试,趁集成测试和棵确认测试。垃1.单元测迫试(uni炸ttes龄ting)怕单元测试也导称模块测试战。通常单元觉测试可放在殊编码阶段,狗程序员在编场写好一个模旬块后,总会阿(也应该)于对自己编写夏的模块进行艘测试,检查剂它是否实现骄了详细设计禾说明书中规条定的模块功惕能和算法壤。单元测试礼主要发现编腐码和详细设岸计中产生的弃错误,通常祸采用白盒测勒试。测试一曲个模块时需策要编写一个久驱动模块和羽若干个桩(拦stub)各模块,如下纵图所示。驱爷动模块的功浩能是向被测陷试模块场提供测试数贡据,驱动(啊即调用)被两测模块,并议从被测模块气中接受测试静结果。桩模龙块的功能是树模拟被模块恰所调用的子拖模块,它接贩受被测模块脖的调用,检锋验调用参数道,模拟被调斥用的子模块蝶功能,把结衰果送回给被误测模块。在闭模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度数据安全免责的隐私保护合同
- 二零二五年度生鲜超市品牌授权与运营合作协议
- 2025年度窗帘品牌授权与区域代理合同
- 2025年度猪场租赁与养殖产业链金融合作合同
- 硅黑企业县域市场拓展与下沉战略研究报告
- 菠萝果酱企业县域市场拓展与下沉战略研究报告
- 2025年度重型设备吊装运输安全协议
- 钱夹企业ESG实践与创新战略研究报告
- 铝椅企业数字化转型与智慧升级战略研究报告
- 纸制文件袋(夹)企业ESG实践与创新战略研究报告
- 项目延期申请报告范文
- 2019-2023年真题分类汇编(新高考)专题04立体几何(原卷版+解析)
- 小学生视力调查报告分析总结
- 2024年社区工作者考试必背1000题题库必背(必刷)
- 《短视频拍摄与制作》课件-4.短视频后期制作- 剪辑技巧
- 中考英语不规则动词变化表
- (2024年)中华人民共和国环境保护法全
- 事业单位工作人员调动申报表
- 电子陶瓷材料与器件制备
- 老年患者出院准备服务专家共识
- 岩脚煤矿智能化综采工作面汇报材料2020.11.10.11.10
评论
0/150
提交评论