第五章 软件设计过程
- 格式:doc
- 大小:36.00 KB
- 文档页数:3
第五章总体设计经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候了。
总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设计。
通过这个阶段的工作将划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等,但是每个物理元隶仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。
总体设计过程首先寻找实现目标系统的各种不同的方案,需求分析阶段得到的数据流图是设想各种可能方案的基础。
然后分析员从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,并且制定实现这个方案的进度计划。
分析员应该综合分析比较这些合理的方案,从中选出一个最佳方案向用户和使用部门负责人推荐。
如果用户和使用部门的负责人接受了推荐的方案,分析员应该进一步为这个最佳方案设计软件结构,通常,设计出初步的软件结构后还要多方改进,从而得到更合理的结构,进行必要的数据库设汁,确定测试要求并且制定测试计划。
从上面的叙述中不难看出,在详细设计之前先进行总体设计的必要性:可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。
5.1 设计过程总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构没计阶段,确定软件结构。
典型的总体设计过程包括下述9个步骤:1.设想代选择的方案如何实现要求的系统呢,在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。
在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案,一旦选出了最佳的方案,将能大大提高系统的性能/价格比。
软件课程设计过程包括什么一、课程目标知识目标:1. 学生能理解软件课程设计的基本概念,掌握其包含的主要阶段和关键步骤。
2. 学生能描述软件需求分析、系统设计、编码实现、测试与维护等环节的基本任务和方法。
3. 学生能运用所学知识,分析并解决简单的软件设计问题。
技能目标:1. 学生具备运用软件工程方法进行需求分析和系统设计的能力。
2. 学生能运用编程语言实现简单的软件功能,并进行测试与调试。
3. 学生能通过小组合作,完成一个简单的软件项目设计,提高团队协作能力。
情感态度价值观目标:1. 学生培养对软件工程的兴趣,认识到软件课程设计在实际应用中的重要性。
2. 学生在学习过程中,形成严谨、认真、负责的工作态度,提高解决问题的自信心。
3. 学生通过团队协作,学会分享、倾听和沟通,培养团队精神和合作意识。
课程性质:本课程为实践性较强的软件工程课程,旨在培养学生的软件设计能力和团队协作能力。
学生特点:学生具备一定的编程基础,对软件设计有一定了解,但缺乏实际项目经验。
教学要求:结合课程性质和学生特点,注重理论与实践相结合,强调学生在实际操作中掌握软件设计方法,提高团队协作能力。
通过分解课程目标为具体的学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 软件课程设计概述:介绍软件课程设计的基本概念、目的和意义,使学生了解软件工程在软件开发中的重要性。
- 教材章节:第一章 软件工程概述- 内容:软件工程基本概念、软件开发过程、软件工程方法2. 软件需求分析:讲解需求分析的基本方法、工具和技术,指导学生进行需求获取、需求分析及需求规格说明书编写。
- 教材章节:第二章 需求分析- 内容:需求获取、需求分析、需求规格说明书编写、用例分析3. 系统设计:介绍系统设计的基本原理和方法,引导学生进行软件架构设计和详细设计。
- 教材章节:第三章 系统设计- 内容:软件架构设计、模块化设计、接口设计、数据设计4. 编码实现:讲解编程规范和技巧,指导学生进行代码编写、调试和优化。
软件设计的理解和流程一、软件设计的概念软件设计是指在软件开发的过程中,结合用户需求以及技术和资源的限制,设计出软件系统的结构和功能,以及解决方案和实现方法的过程。
其中,包括需求分析、功能设计、模块设计、接口设计、数据结构设计等方面的工作。
二、软件设计的流程1.需求分析根据用户需求以及业务流程,明确软件系统的功能、性能、可靠性等要求,并对需求进行分析和细化,形成需求规格说明书。
2.概要设计根据需求规格说明书,确定软件系统的总体架构,包括系统组成部分、各个模块之间的关系和接口,以及数据流程等。
3.详细设计根据概要设计,对每个模块进行详细设计。
包括界面设计、业务逻辑设计、数据结构设计、算法设计等方面。
4.编码实现根据详细设计,进行编码实现。
编写代码、进行单元测试、进行代码审核,确保代码质量。
5.测试验证根据需求规格说明书,制定测试计划和测试用例,并进行测试,以验证软件系统是否达到用户需求以及规格说明书的要求。
6.维护管理在软件系统交付后,进行维护管理工作。
包括维护文档、修改和发布版本、提供技术支持等方面的工作。
三、软件设计的重要性1.减少开发成本软件设计能够在开发的前期进行需求分析和方案设计,能够在开始动手写代码之前,尽可能多的预测到问题并解决掉。
从而可以在开发后期减少不必要的修改和调试工作,降低开发成本。
2.提高开发效率软件设计可以形成完整的软件设计方案,同时也可以分阶段分模块地进行设计、编码和测试,使得开发流程合理顺畅,提高开发效率。
3.降低风险软件设计可以提前发现和解决一些问题,从而避免软件在正式使用前出现错误和漏洞,降低使用过程中的风险。
4.增强软件质量软件设计是创建软件的基础,能够在设计方案中提前规划好软件各方面的要求和特性,保证软件能够达到预期的质量要求。
总之,软件设计是软件开发过程中必不可少的一环,其重要性不言而喻。
只有通过良好的软件设计,才能使软件开发过程更加科学、规范、高效,从而创造出更优质、更安全、更符合用户需求的软件系统。
第5章软件详细设计软件详细设计是软件开发过程中的一个重要环节,它是在需求分析的基础上,对软件系统进行具体设计的过程。
本章将对软件的各个模块进行详细设计,包括模块之间的关系和功能实现细节。
在进行软件详细设计时,需要考虑以下几个方面:1.模块划分:根据需求分析中的功能点,将系统划分为多个模块,每个模块实现一个或多个功能。
2.模块之间的关系:分析各个模块之间的依赖关系,确定模块之间的调用关系和数据交互方式。
3.功能实现细节:对每个模块进行详细设计,包括具体的算法实现、数据结构设计、界面设计等。
4.系统性能考虑:考虑系统在各种情况下的性能要求,针对性地进行优化设计,提高系统的运行效率。
在软件详细设计中,需要根据需求分析中的功能点进行模块划分。
以一个电商系统为例,可以将系统划分为用户管理模块、商品管理模块、订单管理模块等多个功能模块。
每个模块负责实现相应的功能,同时模块之间需要进行数据交互和调用。
在模块之间的交互设计中,可以采用面向对象的设计思想,通过定义接口和类来描述模块之间的关系。
例如,在用户管理模块中,可以定义一个User类,该类包含了用户的基本信息和操作方法。
在订单管理模块中,可以通过调用User类的方法来获取用户的信息。
在功能实现细节方面,需要根据模块的功能点来进行具体的实现。
例如,在商品管理模块中,需要实现商品的增删改查功能。
可以使用数据库来存储商品信息,通过SQL语句来进行增删改查操作。
在系统性能考虑方面,可以采用多线程、缓存等技术来提高系统的运行效率。
例如,在订单管理模块中,可以使用多线程来处理订单的并发操作,提高系统的并发性能。
总之,软件详细设计是软件开发过程中的一个重要环节,通过对系统的模块划分、模块之间的关系和功能实现细节的设计,可以确保软件系统按照需求进行正确、高效地实现。
同时,考虑系统的性能要求和优化设计,可以提高系统的运行效率和用户体验。
1.概念、方法、实践步骤设计是指根据需求开发的结果,对产品的技术实现由粗到细进行设计的过程。
根据设计粒度和目的的不同可以将设计分为概要设计、详细设计等阶段以便于管理和确保质量。
设计内容也要根据软件系统的实际情况进行定义,比如对于交互性要求高的系统可以有视觉设计等等。
一般来说可以将设计阶段划分为概要设计、详细设计2阶段进行管理,程序设计可以结合项目管理、作业配分、开发团队的能力以及质量要求等因素来决定是否作为单独的阶段进行管理。
■概要设计:定义实现需求的工作产品技功能、技术构架,定义设计准则及共通处理方针,分解划分功能模块,定义各功能模块的功能和业务处理,定义模块间的接口关系。
典型的工作产品有《概要设计书》、《设计准则》及《共通处理方针》。
一般包括系统技术构架,机能一览,机能迁移图,数据库逻辑设计,数据文件逻辑定义,系统各单位功能模块及接口定义,设计准则及共通处理方针(外观、操作、错误处理、日志、提示信息、异常处理、命名规约、编码规约等方针)等内容。
■详细设计:定义各功能模块的功能单元的详细实现,包括接口的物理定义,明确数据库/数据文件的物理定义等。
典型的工作产品:《详细设计书》。
典型的内容包括各模块的功能单元实现的详细描述,数据库物理设计,数据文件物理定义,接口物理定义,状态码物理设计,输出信息(MSG/LOG)设计等内容。
程序设计:结合具体的编码语言,编码过程中对代码的设计。
根据经验对于团队中有大量初学者来说,进行一定量的程序设计可以提高编码的质量和效率。
2.设计阶段的主要流程设计阶段的主要活动包括以下内容:设计阶段的计划或规划、确定设计的准则、设计以及制作设计文档、设计产物评审等。
1.设计阶段的计划或规划内容为确定设计团队的组织并授权、评估设计阶段的工作量、明确设计的工作任务(WBS分解)以及完成时间、定义设计阶段的质量标准以及效率标准。
这部分活动主要是PDCA中首要步骤,除上述内容外,还需要考虑项目管理中一些共同管理规划,比如风险管理、配置管理、干系人管理、变更管理、决策分析管理等等内容。
第五章软件详细设计5.1 详细设计的基本任务(1)为每个模块进行详细的算法设计。
用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(2)为模块内的数据结构进行设计。
对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
(3)对数据结构进行物理设计,即确定数据库的物理结构。
物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。
(4)其他设计:根据软件系统的类型,还可能要进行以下设计:①代码设计。
为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。
②输入/输出格式设计。
③人机对话设计。
对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。
(5)编写详细设计说明书。
(6)评审。
对处理过程的算法和数据库的物理结构都要评审。
5.2 结构化程序设计方法详细设计是软件设计的第二阶段,主要确定每个模块具体执行过程,也称“过程设计”,详细设计的目标不仅是逻辑上正确地实现每个模块的功能,并使设计出的处理过程清晰易读。
过程设计中采用的典型方法是结构化程序设计(简称SP)方法,最早是由E.W.Dijkstra在60年代中期提出的,它是实现详细设计目标的关键技术之一,它指导人们用良好的思想方法开发易于理解、易于验证的程序。
结构化程序设计方法的基本要点是:1. 采用自顶向下,逐步求精的程序设计方法在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。
2. 使用三种基本控制结构构造程序任何程序都可由顺序、选择、重复三种基本控制结构构造。
(1)用顺序方式对过程分解,确定各部分的执行顺序。
(2)用选择方式对过程分解,确定某个部分的执行条件。
(3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。
(4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。
3. 主程序员组的组织形式指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。
计算机软件开发的基本流程解析第一章:需求分析阶段在计算机软件开发的基本流程中,需求分析是至关重要的一步。
在这个阶段,开发团队与客户进行沟通,明确软件的基本功能和需求。
针对软件的预期目标,开发团队需要详细了解客户的业务需求,进行需求调研和分析。
通过与客户的交流,软件开发团队可以获得正确的需求,为后续的开发工作提供指导。
第二章:系统设计阶段系统设计是软件开发过程中的重要环节。
在这个阶段,开发团队基于需求分析的结果,设计软件的系统架构和组件。
首先,根据需求分析结果,确定软件的功能模块和模块间的关系。
然后,绘制系统结构图、数据流图等设计文档,明确软件的工作流程和数据传递方式。
通过系统设计,软件开发团队可以为后续的编码和测试提供清晰的指导。
第三章:编码实现阶段编码实现是系统设计的具体落地阶段。
在这个阶段,开发团队根据系统设计的结果,使用合适的编程语言和开发工具,编写软件的代码。
通过编码实现,开发团队将系统设计的结果转化为可执行的软件。
在编码实现阶段,开发人员需要遵循一定的编程规范和最佳实践,编写高质量、可维护的代码。
第四章:软件测试阶段软件测试是确保软件质量的重要环节。
在这个阶段,开发团队利用各种测试手段和工具,对软件进行全面的测试。
包括单元测试、集成测试、系统测试、性能测试等。
通过不同层次和方式的测试,开发团队可以及早发现和解决软件中的Bug和问题。
同时,测试也需要与需求分析阶段和系统设计阶段紧密配合,验证软件的功能和性能是否满足需求。
第五章:软件发布和维护阶段在软件测试通过后,软件开发团队可以着手进行软件的发布和维护工作。
发布是将软件交付给客户并投入使用的过程,包括安装、部署和配置等工作。
维护是指软件上线后持续对软件进行修复Bug、更新功能和优化性能等工作。
软件的发布和维护需要与客户密切合作,及时解决客户的问题并满足客户的需求。
第六章:持续改进阶段软件开发的基本流程并不是一成不变的,随着技术的发展和客户需求的变化,软件开发团队也需要不断改进和优化软件开发流程。
简述软件设计的过程。
软件设计是一种系统性的过程,旨在通过分析、规划和定义软件系统的架构、组件、接口和数据结构等方面的特征,来满足特定的软件需求和目标。
软件设计的过程大致可以分为以下几个步骤:
1. 需求分析:在这个阶段,软件设计人员需要对软件系统的需
求进行详细的分析和理解,以便能够准确地确定软件系统的规格和功能。
2. 概要设计:在需求分析的基础上,软件设计人员需要制定软
件系统的概要设计方案,包括确定软件系统的架构、模块、接口、数据结构等方面的特征。
3. 详细设计:在概要设计的基础上,软件设计人员需要进一步
制定软件系统的详细设计方案,包括确定软件系统的每个模块的实现细节、算法和数据结构等方面的特征。
4. 编码和测试:在详细设计完成后,软件设计人员需要编写软
件代码,并进行测试,以确保软件系统能够正常运行,并满足软件需求和目标。
5. 软件维护:软件设计的过程并不是一次性的,软件系统的需
求和目标可能会随着时间的推移而发生变化,因此软件设计人员需要进行维护和更新,以确保软件系统能够持续地满足用户的需求和目标。
总体来说,软件设计的过程是一个不断迭代、不断完善的过程,需要软件设计人员具备深厚的专业知识和丰富的实践经验,才能设计出高质量、可靠性、易扩展性的软件系统。
软件设计的一般过程1.软件设计软件设置针对需求分析得到的软件需求规格说明,综合考虑各种制约因素,探求切实可行的软件解决方案并最终给出方案的逻辑表示,包括文档、模型等。
设计元素:指出现在设计模型中的模块,包括子系统、构件、类、过程等。
设计模型:软件问题的解决方案的逻辑表示•体系结构设计——宏观的说明目标软件系统的整体结构•界面设计•用例设计——设计元素如何协同工作以实现各项软件需求•模块设计•数据模型设计——持久数据的设计方案抽象与逐步求精(自顶向下逐步求精)模块化(模块内高内聚、模块间低耦合)信息隐藏(模块只交换必须的信息,强化模块独立性)关注点分离2.软件设计过程(1)设计计划:•明确输入•定义设计过程的目标、输出制品及验收标准•确定全局性设计策略•分配人员职责•指定工作计划(2)设计活动a.体系结构设计目标:建立软件系统的体系结构(顶层架构),既要明确定义软件各子系统、关键构件、关键类的职责划分及写作关系,同时也要描绘它们在物理运行环境下的部署模型。
顶层架构还必须针对软件系统全局性、基础性的技术问题给出技术解决方案,这种方案往往构成目标软件系统的体系结构的技术基础设施。
体系结构模式:•管道与过滤器模式•分层模式•黑板模式•客户服务器模式(CS)b.界面设计为用户使用目标软件系统以实现其所有业务需求而提供友好的人机交互界面。
c.用例设计用户界面模型和体系结构模型中的设计元素如何协同工作以实现每项软件需求。
d.模块设计确定模块的具体接口定义,并设计模块内部结构,即,设置包含于其中的(更小粒度的)模块。
将模块的影响限制在模块的控制范围内,使得软件日后的修改和维护工作更加简单。
e.数据模型设计数据结构设计、数据库设计、数据文件设计统称为数据模型设计。
持久数据设计。
很多软件系统中,数据是核心。
3.软件设计质量4.高可信软件设计形式化方法、形式化验证5.软件设计规格说明软件设计过程中各个活动的结果最终应该文档化形成正式的软件设计规格说明,作为软件设计的输出。
第五章软件设计过程
本章概述:
本章详细讲解软件设计过程,软件设计过程是对程序结构、数据结构和过程细节逐步求精、复审并编制文档的过程。
通过本章的学习,学生应该掌握从软件分析到设计的各个过程。
本章知识点详述:
o软件设计基础设计过程
数据设计把信息描述转换为实现软件所要求的数据结构。
总体结构设计旨在确定程序各主要部件之间的关系。
过程设计要完成每一部件的过程化描述。
根据设计结果编制代码。
然后交给测试人员测试
设计阶段做的决策直接影响软件质量,没有良好的设计就没有稳定的系统,也不会有易维护的软件。
统计表明:设计、编码和测试这三个活动一般占用整个软件开发费用(不包括维护阶段)的75%以上。
o软件设计基本概念
抽象与逐步求精
抽象
在最高抽象级别上,用面向问题域的语言叙述“问题”,概括“问题解”的形式。
不断地具体化,不断地用面向过程的语言描述问题。
在最低的抽象级别上给出可直接实现的“问题解”,即程序。
求精
“逐步求精”的主要思想是针对某个功能的宏观描述用逐步求精的方法不断地分解,逐步确立过程细节,直至该功能用程序语言描述的算法实现为止。
求精的每一步都是用更为详细的描述替代上一层次的抽象描述,在整个设计过程中产生的,具有不同详细程度的各种描述组成系统的层次结构。
层次结构的上一层是下一层的抽象,下一层是上一层的求精
模块化与信息隐藏
模块化
把软件划分为可独立命名和编址的部件,每个部件称为一个模块,当把所有模块组装到一起时则获得满足问题需要的一个解。
软件总体结构体现了模块化思想。
“模块化是软件唯一能使程序获得智能化管理的一个属性”,完全由一个模块构成的程序,程序控制路径错综复杂,变量被远距离引用,使得程序难于理解与掌握。
信息隐藏
模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块不可访问。
每个模块只完成一个相对独立的特定功能。
模块之间仅仅交换那些为完成系统功能必须交换的信息,即模块应该独立。
耦合与内聚度
耦合
内聚度:模块内部各成分彼此结合的紧密程度。
内聚度按其高低程度可分为七级,内聚度越高越好。
o软件总体结构设计
由系统中所有过程性部件(即模块)构成的层次结构, 亦称为程序结构。
输入输出数据结构。
o程序结构设计
程序结构也称为控制层次结构。
仅考虑软件总体结构中模块之间的控制分层关系,而不关心模块内各处理元素和判断元素的顺序。
程序结构与软件过程相互关联,程序结构中任一模块的所有从属模块必将被引用出现在该模块的过程说明中。
o数据结构设计
数据结构描述各数据分量之间的逻辑关系,数据结构一经确定,数据的组织形式、访问方法、组合程度及处理策略基本上随之确定,所以数据结构是影响软件总体结构的重要因素。
数据结构与程序结构一样,也可以在不同的抽象级别上表示。
以栈为例,作为一个抽象数据类型,在概念级上只关心“先进后出”特性,而在实现级上则要考虑物理表示及内部工作的细节,比如,用向量实现,或用链表实现等等。
数据结构对程序结构和过程复杂性有直接的影响,数据结构设计很重要,在很大程度上决定软件的质量。
无论采用哪一种软件设计技术,没有良好的数据结构,不可能导出良好的程序结构。
o软件过程设计
过程设计紧跟在数据结构设计和程序结构设计之后,基本任务是描述模块内各处理元素和判断元素的顺序。
过程包括有关处理的精确说明,如事件的顺序、确切的判断位置、循环操作以及数据的组成等等。
程序结构与软件过程相互关联,程序结构中任一模块的所有从属模块必将被引用出现在该模块的过程说明中。
o过程设计技术和工具
结构化程序设计
图形表示法
判定表
过程设计语言(PDL)
o设计规格说明与评审
软件设计方法
o基本概念和设计过程
变换流:输入信息流沿传入路径进入系统,同时由外部形式变换为内部形式,
经系统变换中心加工、处理,作为输出信息流又沿传出路径离开系统,并还原为外部形式。
事务流:单个数据项称为事务(transaction)沿传入路径(接受通道)进入系统,由外部形式变换为内部形式后到达事务中心,事务中心根据数据项计值结果从若干动作路径中选定一条继续执行。
o变换分析:变换分析由一系列设计步骤组成,经过这些步骤就能把具
有变换流特点的数据流图,按预先确定的模式映射成软件结构步骤一、复审基本系统模型。
步骤二、复审和精化软件数据流图。
步骤三、确定DFD为变换流还是事务流。
步骤四、划定输入流和输出流边界孤立变换中心。
步骤五、执行“一级分解”导出具有三个层次的程序结构。
步骤六、执行“二级分解”。
步骤七、采用启发式设计策略,精化所得程序结构雏形,改良软件质量。
o事务分析
步骤一、复审基本系统模型;
步骤二、复审并精化软件数据流图;
步骤三、确定数据流图的特性;前三步与变换分析法相同
步骤四、指出事务中心,确定由事务中心发出的每一动作路径的数据流特性。
步骤五、把数据流图映射为事务处理型的程序结构。
步骤六、分解并精化事务结构以及每条动作路径所对应的结构。
步骤七、使用启发式设计策略,精化所得程序结构雏形,改良软件质量。
o启发式设计策略
改造程序结构,减小耦合度,提高内聚度。
应从增强模块独立性的角度,对程序结构雏形的模块进行分解或合并,力求降低耦合度,提高内聚度。
改造程序结构,减少高扇出,在增加程序深度的前提下追求高扇入。
改造程序结构,使任一模块的作用域在其控制域之内。
模块作用域指,受该模块内部判定影响的所有模块;模块控制域为其所有下层模块。
改造程序结构,减少界面的复杂性和冗余程度,提高协调性。
模块功能应该可预言,避免对模块施加过多限制。
改造程序结构,追求单入口单出口的模块。
为满足设计或可移植性的要求,把某些软件用包(Package)封装起来。
o设计优化原则
在先不考虑时间复杂性的情况下,设计并精化软件结构;
借用CASE工具模拟分析运行时的性能,找出低效部分
详细设计时对最耗时的模块仔细推敲,以便减少时间开销;
用高级语言编程;
对大量占用CPU资源的模块必要时用低级语言(依赖于机器)重新编码,以便提高效率。