《清华大学信息学院软件工程ppt04二教学提纲.ppt》由会员分享,可在线阅读,更多相关《清华大学信息学院软件工程ppt04二教学提纲.ppt(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、清华大学信息学院软件工程ppt04二n n软件设计是后续开发步骤及软件维软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只护工作的基础。如果没有设计,只能建立一个不稳定的系统结构能建立一个不稳定的系统结构软件设计任务软件设计任务n n从工程管理的角度来看,软件设从工程管理的角度来看,软件设计分两步完成。计分两步完成。uu 概要设计概要设计,将软件需求转化,将软件需求转化为数据结构和软件的系统结构。为数据结构和软件的系统结构。uu 详细设计详细设计,即过程设计。通,即过程设计。通过对结构表示进行细化,得到过对结构表示进行细化,得到软件的详细的数据结构和算法软件的详细的数据结构和算法。软
2、件设计过程软件设计过程1.1.制定规范制定规范n n在进入软件开发阶段之初,首先在进入软件开发阶段之初,首先应为软件开发组制定在设计时应应为软件开发组制定在设计时应该共同遵守的标准,以便协调组该共同遵守的标准,以便协调组内各成员的工作。包括内各成员的工作。包括:u 阅读和理解软件需求说明书,确阅读和理解软件需求说明书,确认用户要求能否实现,明确实现认用户要求能否实现,明确实现的条件,从而确定设计的目标,的条件,从而确定设计的目标,以及它们的优先顺序以及它们的优先顺序uu 根据目标确定最合适的设计方法根据目标确定最合适的设计方法uu 规定设计文档的编制标准规定设计文档的编制标准uu 规定编码的信
3、息形式,与硬件,规定编码的信息形式,与硬件,操作系统的接口规约,命名规则操作系统的接口规约,命名规则2.2.软件系统结构的总体设计软件系统结构的总体设计n n基于功能层次结构建立系统。基于功能层次结构建立系统。uu 采用某种设计方法,将系统按功采用某种设计方法,将系统按功能划分成模块的层次结构能划分成模块的层次结构uu 确定每个模块的功能确定每个模块的功能uu 建立与已确定的软件需求的对应建立与已确定的软件需求的对应关系关系uu 确定模块间的调用关系确定模块间的调用关系uu 确定模块间的接口确定模块间的接口uu 评估模块划分的质量评估模块划分的质量3.3.处理方式设计处理方式设计n n确定为实
4、现系统的功能需求所必需确定为实现系统的功能需求所必需的算法,评估算法的性能的算法,评估算法的性能n n确定为满足系统的性能需求所必需确定为满足系统的性能需求所必需的算法和模块间的控制方式的算法和模块间的控制方式uu 响应时间响应时间uu 吞吐量吞吐量uu 精度精度n n确定外部信号的接收发送形式确定外部信号的接收发送形式4.4.数据结构设计数据结构设计n n确定软件涉及的文件系统的结构以确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数及数据库的模式、子模式,进行数据完整性和安全性的设计据完整性和安全性的设计n n确定输入,输出文件的详细的数据确定输入,输出文件的详细的数据结构结构n
5、 n结合算法设计,确定算法所必需的结合算法设计,确定算法所必需的逻辑数据结构及其操作逻辑数据结构及其操作n n确定对逻辑数据结构所必需的那些确定对逻辑数据结构所必需的那些操作的程序模块操作的程序模块(软件包软件包)5.5.可靠性设计可靠性设计n n可靠性设计也叫做质量设计可靠性设计也叫做质量设计n n在运行过程中,为了适应环境的在运行过程中,为了适应环境的变化和用户新的要求,需经常对变化和用户新的要求,需经常对软件进行改造和修正。在软件开软件进行改造和修正。在软件开发的一开始就要确定软件可靠性发的一开始就要确定软件可靠性和其它质量指标,考虑相应措施,和其它质量指标,考虑相应措施,以使得软件易于
6、修改和易于维护以使得软件易于修改和易于维护6.6.编写概要设计阶段的文档编写概要设计阶段的文档n n概要设计阶段完成时应编写以下文档:概要设计阶段完成时应编写以下文档:uu 概要设计说明书概要设计说明书uu 数据库设计说明书数据库设计说明书uu 用户手册用户手册uu 制定初步的测试计划制定初步的测试计划7.7.概要设计评审概要设计评审n n可追溯性可追溯性:确认该设计是否复盖了所:确认该设计是否复盖了所有已确定的软件需求,软件每一成份有已确定的软件需求,软件每一成份是否可追溯到某一项需求是否可追溯到某一项需求n n接口接口:确认该软件的内部接口与外部:确认该软件的内部接口与外部接口是否已经明确
7、定义。模块是否满接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内范围是否在其控制范围之内n n风险风险:确认该设计在现有技术条件下:确认该设计在现有技术条件下和预算范围内是否能按时实现和预算范围内是否能按时实现n n实用性实用性:确认该设计对于需求的解决:确认该设计对于需求的解决方案是否实用方案是否实用n n技术清晰度技术清晰度:确认该设计是否以一种:确认该设计是否以一种易于翻译成代码的形式表达易于翻译成代码的形式表达n n可维护性可维护性:确认该设计是否考虑了方:确认该设计是否考虑了方便未来的维护便未来的维护n n质量质
8、量:确认该设计是否表现出良好的:确认该设计是否表现出良好的质量特征质量特征n n各种选择方案各种选择方案:看是否考虑过其:看是否考虑过其它方案,比较各种选择方案的标它方案,比较各种选择方案的标准是什么准是什么n n限制限制:评估对该软件的限制是否:评估对该软件的限制是否现实,是否与需求一致现实,是否与需求一致n n其它具体问题其它具体问题:对于文档、可测:对于文档、可测试性、设计过程试性、设计过程.等进行评估等进行评估n n在详细设计过程中,需要完成的在详细设计过程中,需要完成的工作是:工作是:1.1.确定软件各个组成部分内的确定软件各个组成部分内的算法以及各部分的内部数据组织算法以及各部分的
9、内部数据组织2.2.选定某种过程的表达形式来选定某种过程的表达形式来描述各种算法。描述各种算法。3.3.进行详细设计的评审进行详细设计的评审8.详细设计详细设计软件设计基础u 自顶向下,逐步细化自顶向下,逐步细化u 软件结构软件结构u 程序结构程序结构u 结构图结构图u 模块化模块化u 抽象化抽象化u 信息隐蔽信息隐蔽自顶向下,逐步细化自顶向下,逐步细化n n将软件的体系结构按自顶向下方将软件的体系结构按自顶向下方式,对各个层次的过程细节和数式,对各个层次的过程细节和数据细节逐层细化,直到用程序设据细节逐层细化,直到用程序设计语言的语句能够实现为止,从计语言的语句能够实现为止,从而最后确立整个
10、的体系结构。而最后确立整个的体系结构。软件结构软件结构n n软件结构包括两部分。程序的模块软件结构包括两部分。程序的模块结构和数据的结构结构和数据的结构n n软件的体系结构通过一个划分过程软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确来完成。该划分过程从需求分析确立的目标系统的模型出发,对整个立的目标系统的模型出发,对整个问题进行分割,使其每个部分用一问题进行分割,使其每个部分用一个或几个软件成份加以解决,整个个或几个软件成份加以解决,整个问题就解决了问题就解决了程序结构程序结构n n程序结构表明了程序各个部件程序结构表明了程序各个部件(模块模块)的组织情况,是软件的过程表示。的
11、组织情况,是软件的过程表示。结构图结构图n n结构图反映程序中模块之间的层结构图反映程序中模块之间的层次调用关系和联系:它以特定的次调用关系和联系:它以特定的符号表示模块、模块间的调用关符号表示模块、模块间的调用关系和模块间信息的传递系和模块间信息的传递 模块:模块用矩形框表示,并用模块:模块用矩形框表示,并用模块的名字标记它。模块的名字标记它。模块的调用关系和接口:模块之模块的调用关系和接口:模块之间用单向箭头联结,箭头从调用模间用单向箭头联结,箭头从调用模块指向被调用模块,表示调用模块块指向被调用模块,表示调用模块调用了被调用模块。调用了被调用模块。模块间的信息传递:当一个模块模块间的信息
12、传递:当一个模块调用另一个模块时,调用模块把数调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,据或控制信息传送给被调用模块,以使被调用模块能够运行。而被调以使被调用模块能够运行。而被调用模块在执行过程中又把它产生的用模块在执行过程中又把它产生的数据或控制信息回送给调用模块数据或控制信息回送给调用模块 在模块在模块A的箭头尾部标以一个菱的箭头尾部标以一个菱形符号,表示模块形符号,表示模块A有条件地调用有条件地调用另一个模块另一个模块B。当一个在调用箭头。当一个在调用箭头尾部标以一个弧形符号,表示模块尾部标以一个弧形符号,表示模块A反复调用模块反复调用模块C和模块和模块D。程序的系统结
13、构图程序的系统结构图模块化模块化n n软件系统的模块化是指整个软件软件系统的模块化是指整个软件被划分成若干单独命名和可编址被划分成若干单独命名和可编址的部分,称之为模块。这些模块的部分,称之为模块。这些模块可以被组装起来以满足整个问题可以被组装起来以满足整个问题的需求。的需求。n n把问题子问题的分解与软件开把问题子问题的分解与软件开发中的系统子系统或系统模发中的系统子系统或系统模块对应起来,就能够把一个大而块对应起来,就能够把一个大而复杂的软件系统划分成易于理解复杂的软件系统划分成易于理解的比较单纯的模块结构。的比较单纯的模块结构。模块的独立性模块的独立性n n模块(模块(Module)“模
14、块模块”,又称,又称“组件组件”。它一般。它一般具有如下三个基本属性具有如下三个基本属性:uu功能:描述该模块实现什么功功能:描述该模块实现什么功能能uu逻辑:描述模块内部怎么做逻辑:描述模块内部怎么做uu状态:该模块使用时的环境和状态:该模块使用时的环境和条件条件n n在描述一个模块时,还必须按模块在描述一个模块时,还必须按模块的的外部特性外部特性与与内部特性内部特性分别描述分别描述n n模块的模块的外部特性外部特性uu 模块的模块名、参数表、其中的模块的模块名、参数表、其中的输入参数和输出参数,以及给程序输入参数和输出参数,以及给程序以至整个系统造成的影响以至整个系统造成的影响n n模块的
15、模块的内部特性内部特性uu 完成其功能的程序代码和仅供该完成其功能的程序代码和仅供该模块内部使用的数据模块内部使用的数据n n模块独立性模块独立性uu 模块独立性模块独立性,是指软件系统中每是指软件系统中每个模块只涉及软件要求的具体的子个模块只涉及软件要求的具体的子功能功能,而和软件系统中其它的模块而和软件系统中其它的模块的接口是简单的的接口是简单的uu 例如例如,若一个模块只具有单一的若一个模块只具有单一的功能且与其它模块没有太多的联系功能且与其它模块没有太多的联系,则称此模块具有模块独立性则称此模块具有模块独立性uu 一般采用两个准则度量模块独立一般采用两个准则度量模块独立性。即模块间性。
16、即模块间耦合耦合和模块和模块内聚内聚u 耦合耦合是模块之间的互相连接的紧是模块之间的互相连接的紧密程度的度量。密程度的度量。uu 内聚内聚是模块功能强度是模块功能强度(一个模块一个模块内部各个元素彼此结合的紧密程内部各个元素彼此结合的紧密程度度)的度量。的度量。uu 模块独立性比较强的模块应是模块独立性比较强的模块应是高高内聚低耦合内聚低耦合的模块。的模块。模块间的耦合模块间的耦合非直接耦合非直接耦合(Nondirect Coupling)如果两个模块之间没有直接关系,如果两个模块之间没有直接关系,它们之间的联系完全是通过主模块它们之间的联系完全是通过主模块的控制和调用来的控制和调用来实现的,
17、这就是实现的,这就是非直接耦合。这非直接耦合。这种耦合的模块独种耦合的模块独立性最强。立性最强。数据耦合数据耦合(Data Coupling)如果一个模块访问另一个模块时,彼如果一个模块访问另一个模块时,彼此之间是通过此之间是通过简单数据参数简单数据参数 (不是控不是控制参数、公共数据结构或外部变量制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种来交换输入、输出信息的,则称这种耦合为数据耦合。耦合为数据耦合。标记耦合标记耦合(Stamp Coupling)如果一组模块通过参数表传递如果一组模块通过参数表传递记录信记录信息息,就是标记耦合。这个记录是某一,就是标记耦合。这个记录是
18、某一数据结构的子结构,而不是简单变量。数据结构的子结构,而不是简单变量。控制耦合控制耦合(Control Coupling)如果一个模如果一个模块通过传送开块通过传送开关、标志、名关、标志、名字等控制信息,字等控制信息,明显地控制选明显地控制选择另一模块的择另一模块的功能,就是控功能,就是控制耦合。制耦合。外部耦合(外部耦合(External Coupling)一组模块都访问一组模块都访问同一全局简单变量同一全局简单变量而而不是同一全局数据结构,而且不是通不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则过参数表传递该全局变量的信息,则称之为外部耦合。称之为外部耦合。公共耦合(公
19、共耦合(Common Coupling)若一组模块都访问若一组模块都访问同一个公共数据环同一个公共数据环境境,则它们之间的耦合就称为公共耦,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆结构、共享的通信区、内存的公共覆盖区等。盖区等。n n公共耦合的复杂程度随耦合模块的个公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种有公共数据环境,则公共耦合有两种情况。松散公共耦合和紧密公共耦合情况。松散公共耦合和紧密公共耦合。内容耦合内容耦合(Con
20、tent Coupling)如果发生下列情形,两个模块之间如果发生下列情形,两个模块之间就发生了内容耦合就发生了内容耦合 (1)一个模块直接访问另一个模一个模块直接访问另一个模块的内部数据块的内部数据;(2)一个模块不通过正常入口转一个模块不通过正常入口转到另一模块内部到另一模块内部;(3)两个模块有一部分程序代码两个模块有一部分程序代码重迭重迭(只可能出现在汇编语言中只可能出现在汇编语言中);(4)一个模块有多个入口。一个模块有多个入口。c 模块内聚模块内聚功能内聚功能内聚(Functional Cohesion)一个模块中各个部分都是一个模块中各个部分都是完成完成某一具体功能某一具体功能必
21、不可少的组成必不可少的组成部分,或者说该模块中所有部部分,或者说该模块中所有部分都是为了完成一项具体功能分都是为了完成一项具体功能而协同工作,紧密联系,不可而协同工作,紧密联系,不可分割的。则称该模块为功能内分割的。则称该模块为功能内聚模块。聚模块。信息内聚信息内聚(Informational Cohesion)这种模块这种模块完成多个功能完成多个功能,各个功各个功能都在同一数据结构上操作能都在同一数据结构上操作,每,每一项功能有一个唯一的入口点。一项功能有一个唯一的入口点。这个模块将根据不同的要求,确这个模块将根据不同的要求,确定该执行哪一个功能。由于这个定该执行哪一个功能。由于这个模块的所
22、有功能都是基于同一个模块的所有功能都是基于同一个数据结构(符号表),因此,它数据结构(符号表),因此,它是一个信息内聚的模块。是一个信息内聚的模块。n n信息内聚模块可以看成是多信息内聚模块可以看成是多个功能内聚模块的组合,并个功能内聚模块的组合,并且达到信息的隐蔽。即把某且达到信息的隐蔽。即把某个数据结构、资源或设备隐个数据结构、资源或设备隐蔽在一个模块内,不为别的蔽在一个模块内,不为别的模块所知晓。模块所知晓。通信内聚通信内聚(Communication Cohesion)如果一个模块内各功能部分都使用如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同了相同的输入数据,或产生了相
23、同的输出数据,则称之为通信内聚模的输出数据,则称之为通信内聚模块。通常,通信内聚模块是通过数块。通常,通信内聚模块是通过数据流图来定义的。据流图来定义的。过程内聚(过程内聚(Procedural Cohesion)一个模块内的处理是相关的,而一个模块内的处理是相关的,而且必须以特定次序执行,则称这个模且必须以特定次序执行,则称这个模块为过程内聚模块。块为过程内聚模块。使用流程图做为使用流程图做为工具设计程序时,把流程图中的某一工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、模块。例如,把流程图中的循环部分、判定部
24、分、计算部分分成三个模块,判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。这三个模块都是过程内聚模块。时间内聚(时间内聚(Classical Cohesion)时间内聚又称为经典内聚。这种时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块模块大多为多功能模块,但模块的各个功能的执行与时间有关,的各个功能的执行与时间有关,通常要求所有功能必须在同一时通常要求所有功能必须在同一时间段内执行。例如初始化模块和间段内执行。例如初始化模块和终止模块。终止模块。逻辑内聚(逻辑内聚(Logical Cohesion)这种模块把几种这种模块把几种 相关的功能组合相关的功能组合 在一起,每次被
25、在一起,每次被 调用时,由传送调用时,由传送 给模块的判定参给模块的判定参 数来确定该模块数来确定该模块 应执行哪一种功应执行哪一种功 能。能。巧合内聚(巧合内聚(Coincidental Cohesion)巧合内聚又称为偶然内聚。当模块内巧合内聚又称为偶然内聚。当模块内各部分之间没有联系,或者即使有联各部分之间没有联系,或者即使有联系,这种联系,这种联 系也很松散,系也很松散,则称这种模则称这种模 块为巧合内块为巧合内 聚模块,它聚模块,它 是内聚程度是内聚程度 最低的模块。最低的模块。结构化设计方法结构化设计方法n n首先研究、分析和审查数据流图。首先研究、分析和审查数据流图。从软件的需求
26、规格说明中弄清数从软件的需求规格说明中弄清数据流加工的过程,对于发现的问据流加工的过程,对于发现的问题及时解决。题及时解决。n n然后根据数据流图决定问题的类然后根据数据流图决定问题的类型。数据处理问题典型的类型有型。数据处理问题典型的类型有两种:两种:变换型变换型和和事务型事务型。针对两。针对两种不同的类型分别进行分析处理。种不同的类型分别进行分析处理。n n由数据流图推导出系统的初始结由数据流图推导出系统的初始结构图。构图。n n利用一些试探性原则来改进系统利用一些试探性原则来改进系统的初始结构图,直到得到符合要的初始结构图,直到得到符合要求的结构图为止。求的结构图为止。n n修改和补充数
27、据词典。修改和补充数据词典。n n制定测试计划。制定测试计划。在系统结构图中的模块在系统结构图中的模块n n传入模块传入模块 从下属模块取得数据,从下属模块取得数据,经过某些处理,再将其传送给上级经过某些处理,再将其传送给上级模块。它传送的数据流叫做逻辑输模块。它传送的数据流叫做逻辑输入数据流。入数据流。n n传出模块传出模块 从上级模块获得数据,从上级模块获得数据,进行某些处理,再将其传送给下属进行某些处理,再将其传送给下属模块。它传送的数据流叫做逻辑输模块。它传送的数据流叫做逻辑输出数据流。出数据流。n n变换模块变换模块 它从上级模块取得数它从上级模块取得数据,进行特定的处理,转换成其它
28、据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工形式,再传送回上级模块。它加工的数据流叫做变换数据流。的数据流叫做变换数据流。n n协调模块协调模块 对所有下属模块进行对所有下属模块进行协调和管理的模块。协调和管理的模块。变换型系统结构图变换型系统结构图n n变换型数据处理问题的工作过程大变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数致分为三步,即取得数据,变换数据和给出数据。据和给出数据。n n相应于取得数据、变换数据、给出相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、数据,变换型系统结构图由输入、中心变换和输出等三部分组成。中心变换和输出等三部分组成
29、。事务型系统结构图事务型系统结构图n n它接受一项事务,根据事务处理的它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的特点和性质,选择分派一个适当的处理单元,然后给出结果。处理单元,然后给出结果。n n在事务型系统结构图中,事务中心在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择模块按所接受的事务的类型,选择某一事务处理模块执行。各事务处某一事务处理模块执行。各事务处理模块并列。每个事务处理模块可理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。模块又可能调用若干个细节模块。过 程 设 计n从软件开发
30、的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。这就是过程设计的任务。n在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具叫做详细设计工具,它可以分为以下三类:F 图形工具F 表格工具F 语言工具程序流程图n程序流程图也称为程序框图,程序流程图使用五种基本控制结构是:示例判定表n判定表用于表示程序的静态逻辑n在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理n要求将程序流程图中的多分支判断都改成两分支判断PDL(Program Design Language
31、)nPDL是一种用于描述功能模块的算法设计和加工细节的语言。称为设计程序用语言。它是一种伪码。n伪码的语法规则分为“外语法”和“内语法”。nPDL具有严格的关键字外语法,用于定义控制结构和数据结构,同时它的表示实际操作和条件的内语法又是灵活自由的,可使用自然语言的词汇。示例:拼词检查程序PROCEDURE spellcheck IS BEGIN split document into single words look up words in dictionary display words which are not in dictionary create a new dictionary
32、 END spellcheck PDL的特点的特点n提供全部结构化控制结构、数据说明和模块特征。能对PDL正文进行结构分割,使之变得易于理解。n为了区别关键字,规定关键字一律大写,其它单词一律小写。或者规定关键字加下划线,或者规定它们为黑体字。n内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。n有数据说明机制,包括简单的(如标量和数组)与复杂的(如链表和层次结构)的数据结构。n有子程序定义与调用机制,用以表达各种方式的接口说明。使用使用PDL语言,逐步求精语言,逐步求精:PROCEDURE spellcheckBE
33、GIN-*split document into single wordsLOOP get next word add word to word list in sort order EXIT WHEN all words processedEND LOOP -*look up words in dictionaryLOOP get word from word list IF word not in dictionary THEN -*display words not in dictionary display word prompt on user terminal IF user re
34、sponse says word OK THEN add word to good word list ELSE add word to bad word list ENDIF ENDIF EXIT WHEN all words processedEND LOOP -*create a new words dictionary dictionary:merge dictionary and good word listEND spellcheck 结束结束7.7.概要设计评审概要设计评审n n可追溯性可追溯性:确认该设计是否复盖了:确认该设计是否复盖了所有已确定的软件需求,软件每一所有已确定的
35、软件需求,软件每一成份是否可追溯到某一项需求成份是否可追溯到某一项需求n n接口接口:确认该软件的内部接口与外:确认该软件的内部接口与外部接口是否已经明确定义。模块是部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内块作用范围是否在其控制范围之内n n风险风险:确认该设计在现有技术条件:确认该设计在现有技术条件下和预算范围内是否能按时实现下和预算范围内是否能按时实现n n实用性实用性:确认该设计对于需求的解:确认该设计对于需求的解决方案是否实用决方案是否实用n n技术清晰度技术清晰度:确认该设计是否以一:确认该设计是否以一种易于翻译成代码的形式表达种易于翻译成代码的形式表达n n可维护性可维护性:确认该设计是否考虑了:确认该设计是否考虑了方便未来的维护方便未来的维护n n质量质量:确认该设计是否表现出良好:确认该设计是否表现出良好的质量特征的质量特征此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢